Local Chain Cockpit - Grant Proposal
Intro
Running a local chain for the development of the chain itself or applications building on top of the chain can be quite cumbersome. Many moving parts need to be set up like running nodes, faucets, creating accounts etc. This gets even more complex with the introduction of IBC as more networks need to be run locally. In such a complex setup understanding what goes on and where is notoriously difficult. Data is either unavailable or displayed in such a terrible form that debugging falls back to a guessing game.
We propose a GUI that interacts with local chains and adds a Web2 feeling to chain development. We assume that such a tool would greatly decrease the barrier to entry for newcomers, and ease the development flow for developers in general resulting in a more vibrant developer ecosystem.
Why us
We, Fabian Weber (https://www.linkedin.com/in/fabian-weber-04100a37/) and Joon Whang (https://www.linkedin.com/in/joon-w/) are especially suited to deliver this GUI solution. Fabian lead the development of the first Cosmos wallet. Joon works currently at Composable Finance on Smart Contract visualisation for Cosmos and Polkadot. Both worked at Tendermint on Emeris and therefor have a deep understanding of the Cosmos interactions and data models. We are user-focused GUI first developers that understand visual representations of complex technical problems. We worked on Electron applications before and showed that we can deliver by winning Seoul Hackatom 2022. This project is based on such Hackathon contribution.
Full Feature Set
Data
- Explorer features
- Live blocks
- Live transactions
- Live events
- Live consensus state
- Overview of deployed smart contracts and their data
- Display IBC transactions in a human understandable way
- Live relayer activity
- Live data displaying of the IAVL chain state (data of all modules)
Chain Interactions
- Create key pairs via GUI
- Display all key pairs in GUI
- Fund accounts via faucet interactions via GUI
- Mapping of the CLI as an interactive GUI
Chain Environment
- Start/Stop the chain via GUI
- Start/Stop an additional chain via GUI and connect them via a relayer
- Monitor running nodes statuses from the GUI
Milestones
We propose to break down development into several milestones that get progressively funded. This guarantees that expectations of quality and quantity are met by both sides.
M1 Data Displaying
The delivery of this milestone is a fully bootstrapped repository. The GUI tool will act as a local block explorer. The repository will be open source contribution friendly.
Features
- Application
- Electron application
- UI to specify node endpoints
- Electron application
- Data
- Explorer features
- Live blocks
- Live transactions
- Live events
- Live consensus state
- Overview of deployed smart contracts and their data
- Explorer features
- Repository
- PR templates
- Issue templates
- Code documentation
Mocks
Funding and estimation
A lot of bootstrapping work needs to be done in this step. 40000$ and delivery in 2 months
M2 Chain Cockpit
Developing of IBC chains is a hassle as the developer needs to launch multiple chains and needs to keep track of their status. We propose to integrate running and monitoring chains into the GUI.
Features
- Application
- Specify node binaries
- Chain Environment
- Start/Stop the chain via GUI
- Start/Stop an additional chain via GUI and connect them via a relayer
- Monitor running nodes statuses from the GUI
Mocks
Funding and estimation
Tracking of the chain daemons and interacting with container tools (likely docker) will require many investigative work. 40000$ and delivery in 2 months
M3 IBC Visualisation
IBC transactions are complex executions across multiple chains. Tracking execution involves many queries. We propose a visualisation for IBC transactions across all chains running locally.
Features
- Data
- Explorer features
- Display IBC transactions in a human understandable way
- Live relayer activity
- Explorer features
Mocks
Funding and estimation
The visualisation of the IBC execution requires some design research. 30000$ and delivery in 1.5 month
M4 Node Daemon Interactions
To allow a developer to easily setup developer accounts and fund them we propose adding a GUI for this process.
Features
- Chain Interactions
- Create key pairs via GUI
- Display all key pairs in GUI
- Fund accounts via faucet interactions via GUI
- Mapping of the CLI as an interactive GUI
Mocks
Funding and estimation
30000$ and delivery in 1.5 months
M5 Live State Machine Displaying
To allow a developer to track updates to the state in real-time we propose to show the state of each module live. To achieve this we need to interact with the local binary and write events to a database.
Features
- Data
- Live data displaying of the IAVL chain state (data of all modules)
- Transaction impact on IAVL chain state
Mocks
Funding and estimation
We will base the milestone on work done at Ignite, but displaying live IAVL data has not been done before, so we expect unknowns. 30000$ and delivery in 1.5 months
Funding and estimation
We are estimating 1 FTE working on the project. For the cost analysis we are using a fair market value for senior software developers with strong Cosmos SDK exposure. The cost per month comes to $20k per month including compensation, risk and expenses. The total grant amount therefor is $170k and all milestones should be delivered after 8.5 months.
This product will potentially benefit all of Cosmos SDK chain development. We want to work with the biggest chains to ensure we provide value to them. Of that reason, we think not one entity should carry the burden off funding this project alone. We are therefor seeking funding from several of the biggest networks. The Osmosis Grant Program has already pledged to fund parts of this project and we are in talks with Secret Network.
We propose the money to be held in a multi-sig wallet and only be released after delivering on milestones reducing any risk for misuse of funds.
Outlook
We can imagine this tool becoming the center for Cosmos chain development. Cosmos devs would do any analytics and debugging using the Chain Cockpit. Once done with their local development they would deploy their chains through Spellshape, Saga or other chain incubators from within the tool and continue debugging deployed chains.
Thank you
Thank you for reading through this grant proposal. We are looking forward to your feedback.