UTXO增长 Tue Jan 10,2017 11:23 am 发布于 2017年 1月10号 星期二 上午11点23分
在过去一年里,我们看到很多人担心UTXO的增长。 让我们找出原因吧。
这些是我们要知道的背景信息:UTXO是未花费交易输出数据库。是找出一笔新的交易是否真正可以花费的必要数据库。
在Gavin Andresen的博客中解释了这种增长,虽然这个博客已经很长时间了,但是增长仍在继续。
人们声称这是一个问题的原因有很多。我们依次解决他们吧
a.UTXO需要完全包含在内存中。 它的增长速度会超过内存的发展。
答案:在所有比特币完整节点中的实现是整个数据库存储在磁盘上。使用智能内存缓存来加快查找速度。内存缓存可配置,默认值为300MB。如上面的博客所述,(它的dbcache(内存缓存默认值)配置是可选的)整个数据库明显大于300MB。
它(UTXO)必须包含在内存里是奇怪的声明,因为没有一个完整的节点实现实际上这样做。当然,矿工可以调整他们的设置以允许更大的缓存,并与其他人不同。但是这不意味着UTXO应该停止增长。。
b.更大的区块会导致UTXO更快的增长!
答案:UTXO是存储货币的数据库。随着更多的人持有和使用比特币,UTXO将增长。UTXO的增长不是基于更多的交易,UTXO的增长是因为我们有更多的客户。这只能在我们有更大的区块时才能做到。
所以此论证并不是完全错的,只是有偏差。论证漏掉了一个事实即UTXO的增长是基于更多的人使用比特币。或许做出这个指控的人意识到了说他们不想要更多的客户是愚蠢的。
c.将UTXO存在磁盘上,将使矿工因为更慢的区块验证而损失钱。
答案:这在过去可能是真的,但从现在起不再是真的,因为我们引入了xthin区块(瘦区块)。该技术允许任何节点仅用区块头部和一些元数据来传达新区块。然后,接收节点将使用在其存储矿池中的交易来重构该区块。
这样做的直接结果是,当一个新区块被发现时,矿工将不再验证绝大多数交易,因为这些在他们的内存池中的交易已经被验证过了。这意味着使用xthin区块的矿工(在BU和Classic中可用)不再有瓶颈。
底线是;它是数据库。MySql / PostgreSQL / MongoDB等。已经有几十年来完善数据库技术的经验。在当今的硬件中,害怕一个数据库的增长是毫无根据的,也不是一件非常聪明的事。
TueJan回帖:我认为,这是Blockstream 和Core向人们撒的谎,以达到他们阻止区块增长的目的。Blockstream和Core的计划是完全修改比特币,以实现推广他们自己的数字货币。
Rogerver回帖:所以这也可以总结说,UTXO的增长是一件好事,因为它意味着更多的人正在使用比特币?这是我的看法。
原文:https://forum.bitcoin.com/post44125.html?winzoom=1
|