17 再论交易池、网络广播以及编码细节
中本聪在本章延伸讨论了交易池。然后介绍了网络广播机制实验,其中节点从相邻节点处请求交易数据。中本聪最后提到这些代码已经写了18个月了。
回复:比特币:点对点的电子现金支付
中本聪,星期一,2008年11月17日,13:33:04 UTC-8
詹姆斯_A.唐纳德写道:
中本聪写道:
还好,我们只需要为当前最好的分支保留一个未决交易池。
这需要我们了解一个诚实且行为良好的交易方(其通信和数据存储都正常的节点),知道当前最好的分支是什么。
我的意思是一个节点只需要它所拥有的最好的分支的未决交易池。就是当前它认为最好的那个分支。也就是它想要创建区块的那个分支,这就是需要交易池的那个。
广播极有可能差不多完全可靠。
我们必须建立一种机制,即使消息频繁无法到达,信息也能送到,而不是假设每条消息至少会到达一次。
我想我已经论述过了点对点的网络广播机制。
每个节点向其邻节点发送新区块的哈希值清单及区块所内含的交易。邻节点向该节点发送缺失交易的请求。如果超过一段时间后仍然没有收到请求的数据, 它们就会向另一个拥有该交易数据的其他邻节点发送请求。由于所有或大部分邻节点最终都应该有所有的交易数据,即使通信时丟失了一条,它们也还能从其他邻节点获得,每次试着问一个邻居。
请求库存数据的方案引入了一点延迟,但最终通过从传输队列中剥离多余的数据块节省带宽加快了传输速度。
您已经有了设计方案的大纲和提议,向前迈出了一大步,但是还是要注意小细节。
确实有很多细节,我相信在过去一年半多的编码工作中,已经实现了所有的具体细节。虽然我并没有在论文中介绍功能的细节,但是源代码很快就要完成了。现在我把主要的文件发送给您(当前可以通过申请获取,完整版即将完成)。
中本聪密码学邮件组
http://btc.mom/8806/