Skip to content
This repository has been archived by the owner on Feb 9, 2021. It is now read-only.

Shelley Roadmap

Damian Nadales edited this page Sep 19, 2019 · 11 revisions

Shelley High-Level Roadmap

The following table shows the progress of the work in this area, where the symbols have the following meaning:

  • 🚧: not started yet
  • 🔨: work in progress
  • ✔️: done

The tasks detailed in the following sections are broadly prioritized.

Sync formal and executable specs

Issues related to synchronising Executable spec with the formal spec:

Updates:

UTxO:

Delegation:

Rewards/epoch boundary:

Blockchain layer:

Integrate with consensus

Expose the ledger rules to the consensus layer, so that they can be used there.

  • Mempool integration

Rewards transfer

Design and implement a mechanism for transferring rewards from rustnet to mainnet. And also probably from AVVM to mainnet.

Add serialization support

Work on a design for serialization, where we can have support for annotated serialization where it is not necessary to deserialize and serialize data to get a serialized version of a part of a data structure.

Write generators

We need to write generators for the different signals used in Shelley. TODO: identify here the minimal set of STS that'd be required for testing the desired properties.

We need to code valid generators, and also failure profiles, which are crucial to prevent the (valid) generators from hiding errors in the specification. For instance, if we generate increasing slots, we have a property that checks this, but the STS checks for <=, when the generator will be hiding this error away.

  • Valid signal generators
  • Invalid signal generators

Draft up properties

Draft up (pen and paper) properties of the Shelley spec. TODO: identify here the aspects of the system for which properties can be written in parallel, by different people.

Code up property tests

Use right crypto

This requires wrapping up the crypto implemented at the Rust side (?) and using it in the executable specs.

Finish the Shelley spec

Two important tasks include legitimizing some security spots: overlay schedule and seed operations. See issues #796 and #797