Skip to content

Simplify the consensus module: Move the calls to the BN out of the consensus module #19

@saltiniroberto

Description

@saltiniroberto

Currently, the consensus module of a node is expected to communicate with the BN to retrieve the data to propose when the node becomes the leader of the current consensus instance. This creates a dependency between the consensus engine and the BN.

This issue proposes to remove such a dependency by moving the call to the BN asking for the data to propose out of the consensus engine.

In this case, the distributed consensus module would

  • be parametrised by a validity function valid
  • take as input a value vi by each of the nodes participating in the protocol
  • ensure that any agreed upon value vo is such that:
    • valid(vo) = True
    • if all the nodes are honest, then vo corresponds to one of the values vi provided in input to one of the nodes participating in the protocol.

Pros

  • Reduced complexity of the consensus module which imply
    • Reduced complexity in developing pluggable consensus protocols that can be used by the DVC

Cons

  • Increased number of API calls to the BNs when using leader based consensus protocols. This is because the DVC will need to communicate with the BN to retrieve the data that the node will need to propose if they become the leader as opposed to communicating with the BN only when the node is actually the leader.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions