Javascript 是否所有区块链阵列实施都不正确?

Javascript 是否所有区块链阵列实施都不正确?,javascript,arrays,blockchain,ethereum,bitcoin,Javascript,Arrays,Blockchain,Ethereum,Bitcoin,我在网络上发现了许多区块链实施,但它们是真正可以扩展的区块链吗? 我们可以看到区块链是作为一个阵列启动的 var blockchain = [getGenesisBlock()]; 我们可以看到相同的实现: constructor() { this.chain = [this.createGenesis()]; } 该条还建议: constructor(genesisNode) { this.chain = [this.createGenesisBlock(

我在网络上发现了许多区块链实施,但它们是真正可以扩展的区块链吗? 我们可以看到区块链是作为一个阵列启动的

var blockchain = [getGenesisBlock()];
我们可以看到相同的实现:

constructor() {
        this.chain = [this.createGenesis()];
    }
该条还建议:

constructor(genesisNode) {
     this.chain = [this.createGenesisBlock()];
然而,这些实现中是否有任何一个已经准备好进行扩展

从技术上说,

根据ECMA-262第5版,阵列的最大长度 由于 ToUint32抽象操作,因此可能存在的最长数组 232-1=4294967295=42.9亿元素

尺寸不是问题。以太坊使用的是“仅限”,比特币使用的是“仅限”,因此未来有足够的空间。我所思考的真正问题是,读取数组的最后一个元素需要多长时间,这是可伸缩的吗? 在区块链中,“块”结构总是需要读取最后一个块的散列,因此我假设随着它的扩展,它需要越来越长的时间来读取

如果比特币和/或以太坊的区块链阵列没有更多存储区块的空间,他们会怎么做?区块链会就此结束吗

可伸缩性问题来自于验证事务和在节点之间达成共识的成本。因此,这里的问题不是访问某个块的成本。 区块链不是阵列。从概念上来说,它更像一个链表 块的数量没有限制,但是硬币的数量有一个限制。存储这些块的空间也不受限制。 回答问题
是的,问题中给出的所有实现都不正确/不足以让区块链工作。对于某些实现,您可以参考或

,听起来您担心的是查找arr[3]比查找arr[123456]花费的时间要少?非常确定的是,无论查找的属性名是什么,查找时间都是非常恒定的。这不是一个ON操作,您所看到的实现都是玩具实现。它们与生产区块链中使用的代码完全不同。一个显著的区别是,您所看到的实现不会将任何数据写入磁盘。谢谢大家。我不知道它们是“玩具”实现,我把它们当作“专业实现”。我还参加了所有关于区块链的课程,所有课程都有相同的问题!