SebastianElvis / ebft

ISC License
2 stars 0 forks source link

Spec of PSync ORazor #3

Open SebastianElvis opened 2 years ago

SebastianElvis commented 2 years ago

Problem

We need to implement partially synchronous (PSync) ORazor.

Description

Roughly speaking, from a miner's perspective, PSync ORazor works as follows.

Upon a new block after the longest certified chain:
    If the node produced one of the traling x blocks in the chain, then it becomes a voter.
    Broadcast its vote on the new block to other voters.
    When receiving 2f+1 votes, certify the block. If the block's parent block is unique at its height, then broadcast an uniqueness announcement to other voters.
    When receiving 2f+1 uniqueness announcements, finalise the certified parent block and all its ancestors.

Alternatives

Additional context

jianyu-niu commented 2 years ago

Upon a new block after the longest certified chain: If the node produced one of the traling x blocks in the chain, then it becomes a voter. (Similar with the previous) Set a local timer of 3\Delta, and broadcast its vote on the new block to other voters. (No delta) When receiving 2f+1 votes, certify the block, and broadcast an uniqueness announcement to other voters (announcement condition: only the parent block is unique at its height. i.e., no forks). When receiving 2f+1 uniqueness announcements, finalise the certified (should be parent block ) block and all its ancestors.

SebastianElvis commented 2 years ago

Upon a new block after the longest certified chain: If the node produced one of the traling x blocks in the chain, then it becomes a voter. (Similar with the previous) Set a local timer of 3\Delta, and broadcast its vote on the new block to other voters. (No delta) When receiving 2f+1 votes, certify the block, and broadcast an uniqueness announcement to other voters (announcement condition: only the parent block is unique at its height. i.e., no forks). When receiving 2f+1 uniqueness announcements, finalise the certified (should be parent block ) block and all its ancestors.

Have updated the spec