github CasperLabs/CasperLabs v0.18.0

latest releases: v0.20.1, v0.20.0, v0.19.1...
pre-release4 years ago

Release 0.18

This release adds some key optimizations to the finalizer to make it fast and more efficient. This release also improves on deploy efficiency by reducing wait time for deploys going to any node by allowing these nodes to produce an Omgea block instead of Omega ballot.

Finalizer optimizations:

  • Calculation of the panorama extracted out of the semaphore. It is capped to the current era messages and stops when it reaches the jRank lower than the previous LFB. The voting matrix beyond the last LFB is not needed to be updated, and it doesn't need those validators in the map. Only votes for the children of LFB are of interest, and not blocks that came earlier than that LFB.

  • Also, finality is checked when lambda message is handled. The voting matrix state is updated on every message but finality is checked only at the beginning of a round (when lambda message is handled).

Omega blocks to improve deploy efficiency and management of orphans:

  • Nodes can now produce their Omega-messages as blocks which allows deploys to get in without much waiting without increasing consensus overhead. This means more blocks will be produced during a round. The round length can be slowed so that production of Omega blocks is dragged over a longer time which in turn would allow validators to circulate that one block, and thus avoid some of the merge conflicts, reaching finality at the end of the long round.

  • Re-queuing of orphaned deploys is moved to where orphan blocks are detected and the FinalityStorage is used to check if all blocks the deploy is included in, are indeed orphaned.

  • This also fixes a bug where orphaned deploys in a block from child era were left unmarked.

Fix

  • Includes a fix to ensure that scheduleRef has no leftover keys which would cause multiple dead eras to show up as active.

Don't miss a new CasperLabs release

NewReleases is sending notifications on new releases.