计算能力错误:100%的CPU能力可以用于区块验证正确:大约5-10%的CPU能力可用于区块验证百分比如此低主要原因有四个: 我们需要一个安全边际来应对DoS攻击的可能性(攻击者为利用代码弱点而进行的交易比常规交易需要更长的处理时间)节点离线后需要能够同步链。 如果我断开网络一分钟,我应该能够在几秒钟内再次与网络同步运行节点不应太快耗尽电池电量,也不应使所有其他应用程序的运行变慢节点还需要执行其他非区块生产任务,主要围绕在p2p网络上验证和响应传入的交易和请求。请注意,直到最近,大多数针对“为什么只有5-10%?”的解释专注于一个不同的问题:由于PoW区块是随机出现的,因此验证区块所花费的时间较长,会增加同时创建多个区块的风险。 有许多解决此问题的方法(例如,Bitcoin NG,或使用PoS)。 但是这些修补程序不能解决其他四个问题,因此它们无法像许多人最初认为的那样在扩展性方面带来巨大的好处。 并行性也不是万能的。 通常,即使是看似单线程的区块链客户端也已经并行化:签名可以由一个线程验证,而执行则由其他线程完成,并且有一个单独的线程在后台处理交易池逻辑。 而且,越接近所有线程100%的使用率,运行节点所消耗的能量就越多,并且抵御DoS的安全边际也越低。 带宽错误:如果我们每2-3秒就有产出10 MB大小的数据区块,那么大多数用户的网络速度都> 10 MB /秒,因此他们当然可以处理这样的区块正确:也许我们可以每12秒处理1-5 MB的区块。这已经很难了。如今,我们经常听到关于互联网连接可以提供多少带宽的广告统计数据:通常听到100 Mbps甚至1 Gbps的数字。但是,由于以下几个原因,广告中的带宽和预期的实际带宽之间存在很大差异: “ Mbps”是指“每秒数百万个比特”;比特是字节的1/8,因此您需要将广告的比特数字除以8以获得广告中的字节数。就像所有公司一样,互联网提供商经常说谎。总是有多个应用程序使用同一互联网连接,因此节点无法占用整个带宽。p2p网络不可避免地会带来其自身的开销:节点经常最终会多次下载并重新上载同一区块(更不用说在包含在区块中之前通过mempool广播的交易)。Starkware在2019年进行了一次实验,他们首次发布了500 kB的区块,这是因为交易数据gas成本的降低首次使这种可能性成为可能,但实际上有几个节点无法处理该大小的区块。此后,处理大区块的能力得到了改善,并将继续得到改善。但是,无论我们做什么,我们仍然无法天真地获取以MB /秒为单位的平均带宽,让自己相信我们可以接受1 s的延迟,并且能够拥有如此大小的区块。 存储错误:10 TB正确:512 GB (责任编辑:admin) |