The tools for Python developers to build on Cardano are currently limited and existing libraries need updating to wrap recent features.
The Cardano-Tools Python library should be expanded and updated to provide Python developers with more relevant tools.
This is the total amount allocated to Cardano-Tools Python Library
We propose to expand and update the current Cardano-Tools Python library in the following ways.
- Wrap new CLI features in the current Python API: leadership slot computation, incremental multi-signature, and mempool query features.
- Extend the amount of the Cardano Wallet back end wrapped by the library. Currently some of the wallet features are wrapped but we want to extend this to 85% with 100% being the stretch goal. This includes accessing the wallet via both CLI and HTTP methods.
- Increase in units test coverage of the existing library. Much of the existing library centers on interfacing with synced wallets or nodes which makes unit testing difficult. We want to refactor the library to break as much of the functionality into testable pieces as possible.
This project impacts the key KPIs for the challenge:
- This project will increase the number and the quality of Cardano Open Source projects, since it is itself a new Cardano open source project as well as making it easier for additional open source projects to come to the Cardano ecosystem.
- This project can increase the number of contributors to the Cardano ecosystem by bringing in developers from the Python developer community.
- This project will increase the amount of open source tools and frameworks from the community for the community since it is built by a team of long time community members for other developers in the community.
The project will be openly shared through social media channels and developer groups.
Given the team's experience with the tools, this project has very low risk.
Q3 2022: Wrap new CLI features (leadership schedule, mempool, incremental multi-signature) in the NodeCLI Python object.
Q4 2022: Wrap additional Cardano wallet back end functionality (CLI and HTTP). Implement additional library unit tests.
This project depends entirely on manual hours invested to implement the code.
We estimate the required effort to fall roughly at 55 hours per month. With a conservative estimate of hourly labor costs, the total comes to approximately $10,000.00 for the six month effort.
Team member 1: Dylan Crocker Ph.D.
Ph.D. in Electrical Engineering with a minor in Computer Science from Georgia Tech. Engineering professional with over 10 years of experience. Cardano stake pool operator since December 2019.
Team member 2: Willie Marchetto
Received a Bachelor of Science degree in Computer Engineering from Missouri University of Science and Technology and a Master of Science degree in Astronautical Engineering (with a focus in spacecraft electronics and software) from University of Southern California. Willie has 10 years experience in research and development of high-consequence, high-reliability space systems and has spent a great deal of time administrating Linux servers and developing Python and embedded code. Cardano stake pool operator since December 2019.
Both team members have previously had a project funded through Catalyst with successful completion.
The project progress will be measured by a goal of 5 substantial git commits per month. This isn't always the best method of measuring progress so we additionally measure implemented unit tests with the goal of one new unit test implemented and passing each month.
The project work defined under this proposal will be considered "done" when the following criteria are met:
1. New CLI leadership slot computation effectively wrapped.
2. New CLI incremental multi-signature functionality effectively wrapped.
3. New CLI mempool query feature effectively wrapped.
4. 85% of the Cardano Wallet back end (both CLI and HTTP) successfully wrapped.
5. 10% increase in units test coverage of existing library.
This is an entirely new Catalyst project.
We are the primary developers behind the Cardano-Tools Python library and have extensive experience developing Python code in industry and academia. Most of the tools behind the VIPER staking pool and projects are Python based.