天天看点

比特币网络简析

比特币系统分为应用层和网络层,应用层为比特币区块链系统,网络层为P2P覆盖网络,如下图所示:

比特币网络简析
  • 网络中所有节点平等,只要知道一个种子节点(seed node),即可加入比特币网络,种子节点会告诉你他所知道的所有节点;
  • 节点间通过tcp通信,这有利于穿透防火墙;
  • 节点退出应用程序后,别的节点将听不到你的消息,过一段时间会将你删除。

Flooding传播

比特币网络采用flooding传播的方式,第一次听到某交易,则加入到集合中等待上链,并且转发这个交易,后面再收到就不转发了,避免无限传播。

如果集合中已经有一个交易来源A转给B的交易,就不能再将交易来源A转给C的交易加入集合,因为该笔交易为重复花费,如下图所示:

比特币网络简析

区块大小限制

由于P2P网络带宽的限制,需要将区块大小限制在1M字节以内,否则区块无法在短时间内覆盖到全网,导致全网无法达成共识。

总结

比特币的P2P网络足够简单、健壮,但是不高效。(simple, robust, but not efficient)

继续阅读