Skip to content

Bind Proposal Ids to root of Merkle Tree when running BFT #2136

@achamayou

Description

@achamayou

Follow-up to #1649 and #2087. Proposal Ids are bound to the state at the read version, and read version selection isn't deterministic in the presence of concurrent transactions. So a possible way to resolve that for BFT is to:

  • Add a "flush" flag to the read version for backup re-execution, which will be useful for both signatures and proposals, since they both need to express not just KV state dependencies but also History state dependencies

Add a mechanism to capture non-deterministic values during primary execution, likely in a KV table, and to send them to secondaries for re-execution. That's one way to capture the merkle tree read version, and the mechanism would be generally useful once we add support for REST requests from CCF etc

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions