cosmos / ethermint

Ethermint is a scalable and interoperable Ethereum, built on Proof-of-Stake with fast-finality using the Cosmos SDK.
https://ethermint.dev/
Apache License 2.0
410 stars 161 forks source link

IBC integration, Testnet, Game of Ethermint Zones #370

Open ColinSchwarz opened 4 years ago

ColinSchwarz commented 4 years ago

Setting up an Ethermint testnet

First we will need to explore and spec out how a mainnet would be designed (mostly relating to hard spoon and how the genesis would be initialized). The testnet will likely take the form of a hard spoon network (using snapshot of Ethereum state), fresh with genesis allocations or both.

Photons and IBC

Many of the details surrounding Photons will be dependent on community and shareholder discussion. However, we can offer some initial ideas to start the conversation. To enable photons to be transferred to the mainnet with a conversion, hard spoon functionality must be included. ChainSafe would also need to provide some way to transfer tokens from Photons to Atoms and have a transfer rate from Photons (name of token denomination in Ethermint) to Atoms (native token denom of Gaia). The rate and approval would be voted on by the community. The plan discussed previously by Cosmos was to use IBC for token transfer. ChainSafe can setup a process for testing how the transfer would be done. First, we would test locally by sending tokens between Ethermint and a modified Gaia node (or one that enables IBC transfers). Then, we would set up testnets for both nodes and send tokens between the two. Finally, using on-going community and shareholder feedback, we would devise a plan for how to move forward. There are two ways this could be achieved. The first would be through a snapshot of the current state which will be stored in a database followed by starting the daemon at the current block number the snapshot was taken at. This would be more efficient than storing all past transactions through Tendermint. The second option would be to replay all blocks and transactions through Ethermint committed to the Tendermint store. With bottlenecks of IAVL+ tree through Tendermint without pruning state this may not be feasible but can still be explored. The eventual goal is to only have to run a lite client of the other node for IBC to be useful, but to begin with we would just run a Gaia and Ethermint daemon and send tokens.

Game of Ethermint Stakes

The final testing phase will be to set up a game of stakes in anticipation of the transition to mainnet. This will be a 4-6 week long testnet that will incentivise people to test security and the protocol. The game of stakes will be based on the same rules as Cosmos’ Game of Stakes.

araskachoi commented 3 years ago

will use "vanilla" IBC that is provided by the cosmos-sdk.