【问题标题】:How long before a block hash is invalidated?块哈希失效多长时间?
【发布时间】:2020-03-15 09:24:07
【问题描述】:

文档说“区块哈希是当前区块链中可以应用此交易的区块的哈希。它用于防止区块链分叉和回滚。”

如果我尝试使用“有点过时”的块哈希来签署和发送交易,那么我会收到错误 InvalidTxError::Expired

这个过期超时是否有一些特定的定义,我可以用来预测它是否会发生,因此需要刷新我计划使用的块哈希?

它是在一段时间后发生还是如果块哈希是从链顶部开始的第 N 个或什么?

【问题讨论】:

    标签: nearprotocol


    【解决方案1】:

    有一个系统范围的参数transaction_validity_period 定义了一个交易在多长时间(多少个块)可以被认为是有效的,因为它基于它所基于的块哈希。

    【讨论】:

    • PSA:参数tx_validity_period似乎很少使用,但transaction_validity_period经常出现
    • 对不起我的错误。应该仔细检查确切的名称。
    【解决方案2】:

    根据上面@berryguy 接受的答案进行更多挖掘后,看起来transaction_validity_periodChainGenesis 的传入参数(我猜是按下区块链开始按钮),其中有效期测量为@987654325 @(“从顶部向下”或“从尖端向后”取决于您脑海中播放的动画)

    snip from nearcore source

    pub struct ChainGenesis {
        pub time: DateTime<Utc>,
        pub gas_limit: Gas,
        pub gas_price: Balance,
        pub total_supply: Balance,
        pub max_inflation_rate: u8,
        pub gas_price_adjustment_rate: u8,
        pub transaction_validity_period: BlockIndex, /// <- here
        pub epoch_length: BlockIndex,
    }
    

    并由从~/.near/genesis.json(在我的本地机器上)加载的创世配置文件genesis.json 填充,可能通过调用start_with_config

    【讨论】:

      猜你喜欢
      • 2011-10-26
      • 2011-01-15
      • 2017-03-30
      • 2017-09-13
      • 2014-02-24
      • 2014-09-03
      • 2023-04-11
      • 2015-12-06
      相关资源
      最近更新 更多