define a protocol to handle handshake and sync with peer node at the endorsement layer defined in #14.
Q: With ordering and sequencing at the submitter level, we no longer have any canonical chain — how will peer nodes sync based on their DAG? A: Simplest and brute-force approach is to sync each individual submitter strand upon connect request. However, a more optimized approach is to sync during new submitter block announcement. This has following advantages:
basic premise is that a new submitter block can only initiate from a node that is already “up-to-date” on that submitter’s history (i.e. it can only accept Block N, when it already has information about block N-1 from that same submitter)
now working backwards, when a node receives a new block announcement for block N belonging to a submitter S from a peer, it has one of two possibilities:
node already has information about S's block N-1, and hence accepts the new block N and extents S’s “strand” sequence, or
node does not have S’s block N-1, in which case it initiates a “sync” with the peer for S’s “strand” sequence and updates its local state
in the above approach, peer nodes will sync at the individual submitter’s “strand” level, on-demand when a new block is generated and propagated for that submitter.
one potential problem here is that if submitter is not generating a new block frequently, then network will have inconsistent data about submitter’s “state”
would we need a recurring “heart beat” transaction for each submitter, to make sure its “strand” sequence and “state” information is refreshed periodically across the network?
define a protocol to handle handshake and sync with peer node at the endorsement layer defined in #14.
Q: With ordering and sequencing at the submitter level, we no longer have any canonical chain — how will peer nodes sync based on their DAG?
A: Simplest and brute-force approach is to sync each individual submitter strand upon connect request. However, a more optimized approach is to sync during new submitter block announcement. This has following advantages: