之前学习了区块头验证 和 默克尔树,在区块的验证里都会用到,现在就来看看区块的验证。
从 CheckBlock 函数(validation.cpp)开始:
除了之前看过的区块头和默克尔根的验证,这里还涉及到两个函数,分别看下:
CheckTransaction(tx_verify.cpp):
GetLegacySigOpCount(tx_verify.cpp):
这个函数有个从 txin 统计脚本操作符的过程,我知道在 P2SH (pay to script hash) 中,实际的脚本会存在于 txin 内,但是这个函数其实是计算的非 P2SH 情况,所以这里不是很理解。
整体的 check block 的流程就是上面这些,主要设计到如下两个文件:
- validation.cpp
- tx_verify.cpp