bcos节点入网以后,与peer端建立session,然后初始化BlockChainSync,并运行如下状态机,进行节点数据下载:
NotSynced, ///< Initial chain sync has not started yet
Idle, ///< Initial chain sync complete. Waiting for new packets
Waiting, ///< Block downloading paused. Waiting for block queue to process blocks and free space
Blocks, ///< Downloading blocks
State, ///< Downloading state
NewBlocks, ///< Downloading blocks learned from NewHashes packet
bcos节点数据下载报文交互类型:
StatusPacket = 0x00,
NewBlockHashesPacket = 0x01,
TransactionsPacket = 0x02,
GetBlockHeadersPacket = 0x03,
BlockHeadersPacket = 0x04,
GetBlockBodiesPacket = 0x05,
BlockBodiesPacket = 0x06,
NewBlockPacket = 0x07,
GetNodeDataPacket = 0x0d,
NodeDataPacket = 0x0e,
GetReceiptsPacket = 0x0f,
ReceiptsPacket = 0x10,