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.
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
Data
Explorer features
Live blocks
Live transactions
Live events
Live consensus state
Overview of deployed smart contracts and their data
Repository
PR templates
Issue templates
Code documentation
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
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
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
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
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.
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 Ignite, 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.
Local Chain Cockpit - Grant Proposal
Checkout https://cosmos-dashboard.notion.site/Local-Chain-Cockpit-Grant-Proposal-d9294de8c4724445871ea5e1cb4af9a0 for a version including mocks
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.
Full Feature Set
Data
Chain Interactions
Chain Environment
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
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
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
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
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
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.
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 Ignite, 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.
Checkout https://cosmos-dashboard.notion.site/Local-Chain-Cockpit-Grant-Proposal-d9294de8c4724445871ea5e1cb4af9a0 for a version including mocks