美文网首页Bitcoin
btcd checkScript的时间点

btcd checkScript的时间点

作者: qishuai | 来源:发表于2019-02-17 08:40 被阅读0次

    在checkConnectBlock(...)方法中,找到了如下的判断规则: 如果当前处于某个checkpoint范围内并且当前需要检测的区块高度比这个chekpoint的高度低,则认为这是一个安全的区块,不进行script的校验。

        // Don't run scripts if this node is before the latest known good
        // checkpoint since the validity is verified via the checkpoints (all
        // transactions are included in the merkle root hash and any changes
        // will therefore be detected by the next checkpoint).  This is a huge
        // optimization because running the scripts is the most time consuming
        // portion of block handling.
        checkpoint := b.LatestCheckpoint()
        runScripts := true
        if checkpoint != nil && node.height <= checkpoint.Height {
            runScripts = false
        }
    
            ....
    
            // 下面提到ECDSA signature 检查是非常耗费CPU资源的。
        // Now that the inexpensive checks are done and have passed, verify the
        // transactions are actually allowed to spend the coins by running the
        // expensive ECDSA signature check scripts.  Doing this last helps
        // prevent CPU exhaustion attacks.
        if runScripts {
            err := checkBlockScripts(block, view, scriptFlags, b.sigCache,
                b.hashCache)
            if err != nil {
                return err
            }
        }
    

    相关文章

      网友评论

        本文标题:btcd checkScript的时间点

        本文链接:https://www.haomeiwen.com/subject/fegweqtx.html