14 关于区块时间、自动化测试和自由论者的观点
在本章中,中本聪解释了为什么必须要有单一的未决交易池,并且在并行的区块分支存在下如何维持这些交易。他引用了代码中的一些函数。回顾第2章中 关于工作量证明的讨论。并非所有矿工都能收集到同一批交易,部分交易可能来得太迟,没有包含在处理的区块中。当新交易到达而矿工还在计算当前区块的哈希值时,就会暂时把交易存储在交易池中!
然后,他再次谈到交易传播以及创建区块所指定的10分钟间隔,讨论了这个时间间隔是否太短。
最后,他引用了比特币对那些崇尚个人自由的自由主义者的吸引力。
回复:比特币:点对点的电子现金支付
中本聪,星期五,2008年11月14日,14:29:22 UTC-8
哈尔•芬尼写道:
我认为节点有必要为每条候选链维持一个独立的未决交易列表。
有人也许会问……一个节点必须平均同时跟踪多少条候选链?
还好,只需要为当前最好的分支保留一个未决交易池。当新区块进入最好的分支时,ConnectBlock函数从pending-tx池移除该区块的交易。如果另一个分支变得更长,就会调用主分支的DisconnectBlock函数转移主分支,而将主分支区块中的交易恢复到pending-tx池,并调用新分支的ConnectBlock函数,把同时存在于两个分支的所有交易移出来。预计这样的重组会比较罕见,并且较浅。
这样优化后,候选分支就不会成为真正的负担。这些分支只需要存在硬盘上 ,并不需要给予特别的关注,除非它们变成了主链。
或像詹姆斯早些时候提出的那样,如果网络广播可靠,但却依赖于可能很慢的洪算法,那会对性能产生什么样的影响呢?
广播极有可能差不多完全可靠。现在的TCP传输很少丟包,而且广播协议也有重试机制,一段时间后再从其他的节点获得数据。如果在实践中广播速度比预期的慢,可能就需要增加区块间的预定时间以避免浪费资源。我们希望在通常情况下区块传播的时间远小于生成的时间,否则节点会花费太多时间处理废弃的区 块。
我计划运行一套自动化测试,在计算机之间相互随机发送支付,并且随机丟包。
3.比特币系统显示出对社会的作用和价值,因此节点运营者认为他们正在通过自己的努力为世界做出有益的贡献(类似于各种“@Home”计算项目,参加者出于良好意愿自愿提供他们的计算资源)。
因此在我看来简单的利他主义就足以使网络可以正常运行。
如果解释得当,会对自由主义者非常有吸瘾力。尽管我更擅长编码而非言辞 。
中本聪
密码学邮件组
http://btc.mom/8796/