Skip to main content

Consensus Team Update

· 2 min read
Damian Nadales

High level summary

During the past two weeks we brought further improvements into the Genesis design in collaboration with the IO Research and Networking teams. These improvements concern the Genesis selection rule, candidate rule, and root peers usage. See the [Genesis][#genesis] section for more details.

Regarding our UTxO-HD prototype, during the past two weeks we put together a pull-request that improves the DB locking mechanism, started porting the mempool fairness improvements from our main branch, and integrated a new open source library (that implements cancellative monoids) that allowed us to simplify our code and get a small performance gain.

We improved our tooling by releasing an immutable DB server, which can be used for testing and benchmarking purposes, and a db-truncater program, which can be used in disaster recovery and benchmarking scenarios.

Genesis

The consensus team working on Genesis:

  • Improved the genesis selection rule as a result of our interaction with IO Research.
  • Studied how the hard-fork combinator handles forecasting at era transitions, and improved our documentation.
  • Determined that the simplest candidate rule we had considered will work for the Genesis window at era transitions, at least for the MVP.
  • Elaborated concrete proposal for the Genesis State Machine.
  • Met with the Networking Team and advised/co-designed how to implement the stop gap usage of public trusted root peers before Genesis is released (it's similar to the Genesis State Machine).

The team is currently re-analyzing the Limit on Patience, which can be less aggressive now that we've re-introduced the Genesis State Machine.