Insert Root Block Process in Goquarkchain

There are 2 ways to add root blocks.

  1. Synchronizer that download blocks starting from a given header going backward to the latest known block in local db

  2. Create Block: adding root block by generated
    Each step starts after the previous one completes (i.e. all the RPCs returned).

  3. If the root block contains shard blocks that are unknown to the root chain, it will ask shards to download and add those missing shard blocks from peer cluster. (SyncMinorBlockListRequest)

  4. The root chain validates the block, updating the local root chain, and put the block in db.

  5. The root chain broadcast the root block to all the shards making the CrossShardTransactionDeposits available for the destination shard to confirm. (AddRootBlockRequest)

  6. Sync Root Blocks Process

  7. Create Block Process