几天前,Bitcoin.com矿池出乎意料地出现了一个Bug。由于最新的Bitcoin Unlimited客户端代码出现bug,因此生成了一个大于1Mb的区块。虽然这个Bug很快获得纠正,但仍旧激起了很多问题。如今BU方面已经发布正式公告,对这起事件进行了解释。尽管这次事件并未造成大的损害,不过开发者能够如此认真地对待这个问题还是不错的。
几天前,比特币社区出现一阵恐慌。Reddit很多人指控BU正在尝试硬分叉比特币区块连。结果证明情况并非如此,尽管这次bug事件可能会导致硬分叉。由于最新版本的BU客户端出现bug,一个大于1MB的区块出现在了比特币网络上。这种情况可能会导致灾难性后果,不过形势很快就被控制住了。不幸的是,Bitcoin.com矿池在这次bug事件中损失了超过10BTC。
BU事故的前因后果
这起事件原来是由于BU GitHub库出现了一个Bug。这个Bug与导致比特币2013年分叉的bug相同。这个bug改变了当区块被创建时coinbase的预留空间。考虑到BU的关键全在于扩展性,所以确保这种扩展性能够符合预期非常重要。不幸的是,情况并非如此,因为生成的区块能够超过节点的特定的最大生成大小(MGS)。
然而,Bitcoin.com矿池发现了偶然发现了一个大区块。该区块的体积达到1,000,023字节,因此该区块被Bitcoin Core网络节点所拒绝。BU节点将这个区块标记为过多区块(excessive block)。有趣的是,矿工随着这个‘过多块’之后又开始产生新的区块,但并不是基于这个“错误”区块。相反,他们使用的是这个错误区块之前的区块,因为这个区块才是有效的。
不幸的是,一些BU节点接受了这个“错误”区块,因为BU节点具有更大的过多区块设定。最终,Bitcoin Core节点对于这些BU节点实施了24小时禁令。不过,目前这个问题已经被解决,所有受到影响的节点已经重新被加入白名单。这次Bug事件对于BU开发者来说是一次宝贵的经验教训,最新版本的客户端更新将会防止类似事件再发生。
目前为止,BU开发者已经计划进行事故复查。一旦完成,他们将会公布更多的有关更改开发和测试流程的详细信息。安全地升级到大区块仍旧是BU的头号优先事项,这就意味着这种bug事件必须被避免。幸运的是,这次事件并未对整个 比特币网络遭受实质性损害。
编译:kyle
稿源(译):巴比特资讯(http://www.8btc.com/bitcoin-unlimited-bug-blocksize-over-1-mb) 版权声明:
![BU软件Bug事件前因后果:代码Bug导致出现超过1MB区块,BU被质疑试图分叉比特币](http://7fvhfe.com1.z0.glb.clouddn.com/wp-content/themes/8btctest1/custom/images/by.png)
![BU软件Bug事件前因后果:代码Bug导致出现超过1MB区块,BU被质疑试图分叉比特币](http://7fvhfe.com1.z0.glb.clouddn.com/wp-content/themes/8btctest1/custom/images/nc.png)
![BU软件Bug事件前因后果:代码Bug导致出现超过1MB区块,BU被质疑试图分叉比特币](http://7fvhfe.com1.z0.glb.clouddn.com/wp-content/themes/8btctest1/custom/images/sa.png)