区块

区块是指一批交易的组合,并且包含链中上一个区块的哈希。 这将区块连接在一起(成为一个链),因为哈希是从区块数据中加密得出的。 这可以防止欺诈,因为以前的任何区块中的任何改变都会使后续所有区块无效,而且所有哈希都会改变,所有运行区块链的人都会注意到。

为什么要有区块?

为了确保PolySmartChain网络上的所有参与者保持同步状态并就交易的确切历史达成共识,我们将交易分为多个区块。 这意味着一次提交、商定和同步数十个(或数百个)交易。

通过间隔提交,即使交易请求每秒发生数十次,我们仍能给所有网络参与者足够的时间达成共识。PolySmartChain上的区块大约每3秒提交一次。

区块如何工作

为了保存交易历史,区块被严格排序(创建的每个新区块都包含一个其父块的引用),区块内的交易也严格排序。 除极少数情况外,在任何特定时间,网络上的所有参与者都同意区块的确切数目和历史, 并且正在努力将当前的活动交易请求分批到下一个区块。

一旦某个区块被网络上的某个矿工放在一起(挖矿),它就会传播到网络的其余部分; 所有节点都将此块添加到其区块链的末尾,并且继续挖掘。

区块包含什么?

  • timestamp – 开采区块的时间。

  • blockNumber – 区块链中区块的长度。

  • baseFeePerGas - 要将交易纳入区块,每个 gas 所需的最低费用。

  • difficulty – 开采所需的努力。

  • mixHash – 该区块的唯一标识符。

  • parentHash – 前一区块的唯一标识符(这是区块形成链的方式)。

  • transactions –包含在区块中的交易。

  • stateRoot –系统的整个状态:帐户余额、合约存储、合约代码和帐户随机数。

  • nonce – 哈希,当与 mixHash 结合使用时,可以证明该块已经通过了工作量证明。

区块时间

区块时间指的是开采一个新区块所需的时间。 在PolySmartChain中,平均区块时间在3秒,并在每个区块后进行评估。 预期区块时间在协议层面被设定为一个常数,当矿工增加计算能力时,用于保护网络的安全。 平均区块时间与预期区块时间进行比较,如果平均区块时间较高,则区块头的难度会降低。 如果平均区块时间较小,则会增加区块头中的难度。

区块大小

最后一个重要的一点是,区块本身的大小是有界限的。 每个区块的目标大小为 1500 万 gas,但区块的大小将根据网络需求而增加或减少。区块限制最多不超过 3000 万(目标区块大小的 2 倍)。 区块中所有交易所消耗的 gas 总量必须低于区块的 gas 限制。 这很重要,因为它可以确保区块不会任意扩大。 如果区块可以任意大,由于空间和速度方面的要求,性能较差的完整节点将逐渐无法跟上网络。

Last updated