一段时间以来,我一直在探索比特币源代码,并且已经成功地创建了具有新创世纪区块的本地比特币网络。
现在,我试图理解硬分叉的过程(如果我在此处使用错误的术语,则是指区块链被拆分而不是挖掘新的起源的那个)。
我正在尝试在BitcoinCash源代码中找到这种方法,但是到目前为止,除了检查点之外,什么都没有。
//UAHF fork block.
{478558, uint256S("0000000000000000011865af4122fe3b144e2cbeea86"
"142e8ff2fb4107352d43") }
因此,据我了解,上述检查点负责链拆分。但是我无法在源代码中找到执行此规则的位置,即在代码编号为478558之后被指定为具有与比特币不同的块的代码。
有人可以在这里为我设定正确的方向吗?
答案 0 :(得分:0)
您在源代码中没有写明“这是派生开始的地方”的特定规则。检查点仅用于引导新节点,将对其进行检查以确保正在下载和验证正确的链。
按照定义,硬分叉只是共识规则的改变。从本质上讲,如果您引入新的打破共识的规则,那么运行比特币的任何节点都将拒绝那些不兼容的区块,并且一旦一个区块被拒绝(并在另一条链上开采),您将拥有不同的链。 >
作为旁注,您可能应该更改chainparams.cpp
中的默认P2P端口和P2P消息标头,以便它不会尝试与其他比特币节点连接。