Home 比特币源码学习-生成区块
Post
Cancel

比特币源码学习-生成区块

之前学习了隔离见证,这篇主要介绍下生成区块的流程,中间会有部分前面提到的函数。

generatetoaddress(mining.cpp) 是 cli 用来给特定地址生成区块的命令,从这个函数开始。

其中的 DecodeDestination(key_io.cpp) 之前在看隔离见证的时候,讲过后面部分,下面看下前面部分:

得到地址之后,函数里生成了 scriptPubkey,使用的是 GetScriptForDestination(standard.cpp):

这个函数没什么东西,主要看下 CScriptVisitor(standard.cpp):

接下来就是创建主流程了,位于函数 generateBlocks(mining.cpp):

这里最重要的函数是 CreateNewBlock(miner.cpp):

整个创建区块的流程就这些,其中 addPackageTxs 和 ComputeBlockVersion 涉及到内存池和 BIP9,内容很多,以后单独介绍。

整个流程涉及的文件:

  • mining.cpp
  • key_io.cpp
  • standard.cpp
  • miner.cpp
This post is licensed under CC BY 4.0 by the author.