总述:
用户将交易发布到比特币网络上;
节点收到这些交易之后,将其打包到区块里;
节点将区块发布到比特币网络中。
新发布的区块在比特币网络中如何传播?
The Bitcoin Network:
比特币工作在应用层 (application layer):BitCoin Block chain
比特币的底层 network layer:P2P Overlay Network
比特币网络的设计原则:simple,robust,but efficient
flooding:节点第一次收到消息时,将其传递给邻居节点,同时记录该消息。邻居节点的选择是随机的,与底层的拓扑结构无关。
每个节点需要维护一个等待上链的交易集合。
新发布的区块在网络上的传播方式跟新发布的交易传播方式类似,每个节点要检查区块内容的合法性还要检查其是否在最长合法链上。越大的区块在网络上传播的就越慢。比特币系统对区块有1M的限制。
比特币网络的传播属于best effort。一个交易发布到比特币网络上,不一定所有节点都能收到,不同节点收到交易的顺序也可能不一样,网络可能出现延迟。