《区块链技术与应用》笔记(五)比特币网络原理

比特币系统的工作过程:用户将交易发布到比特币网络上,节点收到交易后打包到区块中,然后将区块发布到比特币网络上

比特币网络的工作流程

比特币工作于应用层,底层的网络层使用的是P2P覆盖网络。比特币系统中所有节点完全平等,不像有些网络内存在着超级节点。要加入网络,至少需要知道一个种子节点。通过种子节点告知自己它所知道的节点。节点之间的通信采用了TCP协议,便于穿透防火墙。当节点离开时,只需要自行退出即可,其他节点在一定时间后仍然没有收到该节点消息,便会将其删掉。

比特币网络设计原则

简单、鲁棒(最坏情况下能达到最优状况,即健壮性)而非高效。

传输特性

每个节点维护一个邻居节点集合,消息传播在网络中采用洪泛法,某个节点在收到一条消息会将其发送给所有邻居节点并标记,下次再收到便不会再发送该消息。邻居节点选取随机,未考虑网络底层拓扑结构,也与现实世界物理地址无关。该网络具有极强鲁棒性,但牺牲了网络效率

传输规则

比特币系统中每个节点都需要维护一个等待上链的交易集合,我第一次听到交易时,如果是合法交易,则将其加入集合,并转发给邻居节点。以后收到该交易就不再转发,从而避免无限传输。假设网络中存在某个冲突的交易,则取决于节点先接收到哪个交易,之后收到另一个交易会将其放弃。

发布区块在网络中传播方式与新发布交易传播方式类似,每个节点除检查该区块内容是否合法,还要检查是否位于最长合法链上。区块越大,则网络上传输越慢。BTC协议对于区块大小限制为不大于1M大小。

比特币网络传播属于Best effort(尽力而为),不保证一定能传输成功,一个交易发布到网络上,未必所有节点都能收到,也未必所有节点收到的交易顺序都一致

posted @ 2022-05-04 21:17  我永远喜欢石原里美  阅读(173)  评论(0编辑  收藏  举报