Crossing the bridge: Ethereum -> Cosmos on Rinkeby!

This Saturday we hosted Peggy BrokenNet #1. Over the course of our rapid 4 hour test we

  1. Successfully deployed a 10 validator Cosmos blockchain with the Althea-Peggy Cosmos module
  2. Successfully deployed the Peggy Ethereum contract to Rinkeby
  3. Successfully bridged ERC20 tokens from Rinkeby to our Cosmos blockchain.

We also found a couple of bugs that did not reveal themselves in our integration tests.

Validator State Updates

We were unable to update the validator set on the Peggy Ethereum contract, because it was deployed with the validator powers stored in the wrong order.

This means that while the signatures were correct, the sorting was not, and no validator set updates could proceed. This is a trivial problem with the contract deployment script, which grabs and sorts the validator set in order to deploy a ready-to-go Peggy contract pre-loaded with a given chain's validator set.

Oracle problems

While we managed to relay a couple of ERC20 transactions, the relayers pretty quickly stopped successfully relaying Ethereum events. The problem was related to the number of messages being sent. By default the http library we use to query Ethereum logs only allocates 64k of memory for the response.

The Ethereum signer component of the Peggy Orchestrator continuously spammed failed validator set updates due to our signature ordering bug. This quickly overwhelmed the request buffer and caused all Ethereum signers to fail to relay events.

Stabilizing While Developing

What we're trying to do with the BrokenNet concept is to make testnets smaller and more iterative. Instead of waiting until the module is feature complete before testing it in a production like environment and finding these sorts of issues, we can pull that development forward and test some components while we build others.

There's not a moment to waste getting Peggy into production and our goal is to do as much in parallel as possible.


What's Next?

  • Support for transaction batches (Cosmos -> Ethereum transfers). ~2 week ETA
  • Upgrade from Launchpad to Stargate. ~3 week ETA
  • Genesis file support for chain restarts. ~3 week ETA
  • First proper long running Althea Peggy testnet. ~3-4 week ETA
  • Slashing conditions and limited auditing. ~6-8 week ETA

We'd like to thank Interchain and PeggyJV for providing funding and support for this highly accelerated development schedule, our developers alpe, jtremback, and jkilpatr who have provided invaluable assistance in meeting this schedule.

We're looking forward to seeing Peggy ready for production before the end of the year.