Bip66
BIP66 何時從啟動切換到強制執行?
最近,BIP66 從啟動(礦工在塊內執行規則)切換到強制執行(網路對所有塊執行規則)。
我很難弄清楚這是什麼時候發生的,或者發生在什麼地方。
來自BIP66:
新規則對 nVersion = 3 的每個塊(高度 H)有效,並且在其前面的 1000 個塊中至少有 750 個塊(高度 H-1000..H-1)也具有 nVersion = 3。此外,當 950在一個塊之前的 1000 個塊中,nVersion = 3,nVersion = 2 個塊變得無效,並且所有進一步的塊都執行新規則。
我編寫了這個腳本來監控最後 1000 個 nVersion 設置為 3 的塊的數量。
require_once 'jsonRPCClient.php'; $daemon = new jsonRPCClient('http://{my_user}:{my_password}@127.0.0.1:8332/'); $blkStart = 364136 - (24 * 14 * 6); $ver3InLast1000 = 0; for ($i = $blkStart;; $i++) { try { $blockHashOld = $daemon->getblockhash($i-1000); $blockHashNew = $daemon->getblockhash($i); $blockOld = $daemon->getblock($blockHashOld); $blockNew = $daemon->getblock($blockHashNew); } catch(Exception $e) { break; } // Don't want to start subtracting until have processed 1000 blocks if ($blockOld["version"] == 3 && ($i - $blkStart >= 1000)) { $ver3InLast1000--; } if ($blockNew["version"] == 3) { $ver3InLast1000++; } if ($i - $blkStart >= 1000) { echo "$i, $ver3InLast1000\n"; } }
結果可以在這個 pastebin中找到。
塊號 363724是為所有其他塊啟用 nVersion=3 強制的塊。