Skip to content

Formal specification of the Gossip layer #15

@lasarojc

Description

@lasarojc

This issue tracks the work of documenting and specifying the interaction between the consensus reactor and the P2P Layer, as well as the interactions inside the consensus reactor itself, between the consensus implementation and the consensus gossip layer.

First, this work will produce an initial set of draft specifications for the abstract behavior expected of the gossip layer and of its interactions Consensus and P2P, both in English and in Quint.
Quint specs will contain tests and will be model checked, once the tooling allows it.

Second, the specs will be refined to produce lower level abstractions, closer to the implementation level.
A primary concern here is to ensure that the abstractions can be efficiently implemented.

Third, the current implementation will be described in documented, in English, and abstracted in Quint.
The implementation will be matched to the abstract specs from the previous steps in a high level refinement mapping.
This work will possibly be completed with formal refinement mapping proofs, manual and/or automated.

The following list breaks these tasks down for easier tracking:

DoD:

  • The current implementation is well understood
    • all components of the current implementation are documented
    • the interaction between the components of the Consensus reactor are is documented.
    • the interaction between the consensus reactor and the P2P layer is documented.
  • There exists a formal specification of the interactions inside the Consensus reactor and between Consensus and P2P
  • Mismatches between the formal specification and the current implementation are identified.

The output of this task will serve as input for #30

Metadata

Metadata

Assignees

Labels

specSpecification-related

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions