Blockchain

chainparams.cpp 中的這些值有什麼作用?

  • July 30, 2017

chainparams.cpp 中的這些值有什麼作用?

consensus.nMajorityEnforceBlockUpgrade = 2;
consensus.nMajorityRejectBlockOutdated = 3;
consensus.nMajorityWindow = 3;

以及在升級新端時如何在現有區塊鏈中找到它們?

第一次我認為這是開始 diff 長大的時候,但現在認為這是錯誤的。

這些值是 IsSuperMajority 軟分叉部署系統的一部分。這種部署軟分叉的方法現在不再在比特幣中使用,並且已被刪除。這些值用於啟動使用 IsSuperMajority 方法的軟分叉的參數;如果您沒有要部署的任何軟分叉,則它們無關緊要。

nMajorityEnforceBlockUpgrade是執行軟分叉指定的新共識規則的門檻值。 nMajorityRejectBlockOutdated是拒絕所有沒有軟分叉指定版本號的塊的門檻值。 nMajorityWindow是視窗中正在檢查的塊數。

例如,使用您發布的數字,假設您正在啟動一個軟分叉,礦工通過將區塊版本號設置為 2 或更大來發出信號。如果nMajorityEnforceBlockUpgrade最後 3 ( nMajorityWindow) 個塊中的 2 ( ) 個版本號為 2 或更高,則您開始執行軟分叉指定的新規則(例如 coinbase 中的塊高度)。如果nMajorityRejectBlockOutdated最後 3 ( nMajorityWindow) 個塊中的 3 ( ) 個是版本號 2 或更高版本,則版本號小於 2(即 1 或 0)的任何塊現在都無效並且將被拒絕。

引用自:https://bitcoin.stackexchange.com/questions/57320