Drogon is a robust, lightweight application development framework used for developing, testing, and deploying smart contracts on the ICON blockchain. The core features of the Drogon makes ICON smart contract developers’ life easy by providing support for multiple contract compilations, tests, and deploying on a public and private network.
Features
Drogon offers:
end-to-end build cycle support for development, testing, and deploying smart contracts
support for testing Unit and integration tests
Scriptable deployment framework
Deployment management for deploying to public and private networks
Interactive console to directly communicate with public and private networks
Clear documentation for developers
Why Drogon?
Lack of smart contract testing setup
Lack of easy to use ICON smart contract life cycle management
Lack of development framework that focuses on ICON smart contract developers
Goals
Development framework that focuses on ICON blockchain
Support for smart contract life cycle management
Support for unit and integration tests for smart contracts
Support for REPL interface to interact with public and private networks
Documentation
Milestones (Months 5-6)
M01
Create Drogon framework that supports compilation and testing
Support deploying contracts to a private network using the Drogon framework
Support deploying contracts to public networks using the Drogon framework
M02 (Months 7-9)
Documentation
Testing Drogon 0.1.0
Release Drogon 0.1.0
M03 (Months 10-12)
Support and Ongoing maintenance of Drogon
Includes bug fixes and on-going updates
Team credentials:
The team is based out of amsterdam and consists of experts in the blockchain and security field (team lead Chai - x.com), having already built a truffle/hardhat version for another non-evm chain (GitHub - ant4g0nist/chinstrap: A development environment, testing framework, and origination pipeline focused solely on Tezos), and in recepit of grants from Coinbase and the Tezos Foundation for both tooling and security in blockchain.
Although the work will require at times a third staff member, the planning will be based on two full-time senior software developers who will build the main frame, improve and release based on feedback, provide solid documentation and guidance and provide around the clock support throughout the entire year.
Salary, based upon a 12 months project:
Senior software developer: $10k/month
Senior software developer: $10k/month
Total: $20k/month
What will be the development organization? Will it be through the same ant4g0nist Github account? Are you putting together a company/community group for this? What will be the IP rights to this product?
It would be cool to see it developed through a github organization with a fully open license, like MIT or something. I would always like for projects like this (i.e. public utility) to be structured to encourage community collaboration. Especially if there is no guarantee that the developers will continue after the contract period ends.
I am really happy you brought this up, I have always championed that work funded by the CPS would be opensource, I totally agree with this method (exception in special circumstances ofcourse). The work will indeed be open license.
Currently, it is unclear whether it will be done through a company or sole proprietorship, this is because the CPS is not a legal entity that provides an invoice. Chai is waiting on a response from his accountant, either way, I have a method of mitigating the issue of no invoice.
One additional thing that was mentioned in Discord that I agree with is to include a feature for Templating / Bootstrapping projects with Drogon. I know that there are some existing templates floating around somewhere, so it would be cool to be able to reference these kind of like cookiecutter or something
Edit: I also would recommend to investigate using Docker for the Compilation and/or Test steps
Template integration is definitely on the cards, besides this, as part of this template command, we can fetch contracts/tests from open source community projects, an example of their work:
Hey by compilation, do you mean optimizing the jar process? How would this tool be different from the current optimizing jar process if that’s the case? Currently, it’s available as grade tasks so can be run from the command line and IDEs UI.
For testing, what difference will it bring from the current unit testing library?
By Compilation, this refers to building and optimizing. The optimization will be to optimize the entire building process off smart contracts on ICON:
Also, it is important to note that the tool aims to be a ‘swiss-army knife’ for the development off dapps on ICON, this implies that it will integrate features found in Java, as well as customizing and optimizing other processes.