-
比特币工作在应用层(application layer: Bitcoin block chain),它的底层是一个网络层(network layer:
P2P overlay network),所有节点对等- 要加入P2P网络首先得知道至少有一个
seed node,然后你要跟种子节点联系,它会告诉你它所知道的网络中的其他节点 - 节点之间是通过TCP通信的,这样有利于穿透防火墙
- 当你要离开时直接退出应用程序就行了。别的节点没有听到你的信息,过一段时间之后就会把你删掉
- 要加入P2P网络首先得知道至少有一个
-
比特币网络
- 设计原则:简单、鲁棒,而不是高效
- 每个节点维护一个邻居节点的集合和一个等待上链的合法交易的集合
- 消息传播在网络中采取洪泛
flooding的方式 - 邻居节点选取随机,不考虑底层的拓扑结构
- 新发布的区块在网络上的传播跟新发布的交易是类似,每个节点要检查区块的内容合法性,它是否在最长合法链里
- 比特币协议对区块的大小有
1M字节的限制(一个新发布的区块有可能需要几十秒,才能传输到网络大部分节点) - 尽力交付
best effort delivery