Develop with pleasure!

福岡でCloudとかBlockchainとか。

getblockchaininfoで確認するBIP-9によるソフトフォークの状況

先日、segwitがtestnetで実行できるようになったBitcoin Core 0.13.0がリリースされた。

このソフトフォークのデプロイは、BIP-9で定義されたversion bitsを利用している。

techmedia-think.hatenablog.com

このソフトフォークの状況はgetblockchaininfoというRPCを実行することで確認できる。0.13.0で実行すると↓

...
  "bip9_softforks": {
    "csv": {
      "status": "active",
      "startTime": 1456790400,
      "timeout": 1493596800
    },
    "segwit": {
      "status": "started",
      "bit": 1,
      "startTime": 1462060800,
      "timeout": 1493596800
    }
  }
...

となり、segwitのデプロイメントプロセスが開始されていることが分かる。
(まだこの段階ではactiveにはなっていない)

ただ、0.12.1で実行すると↓となり、segwitに関する情報は表示されない。

...
  "bip9_softforks": [
    {
      "id": "csv",
      "status": "started"
    }
  ]
...

0.12.1にはsegwitのコードは含まれていないので当然と言えば当然なんだけど、BIP-9によるversion bitsを利用したソフトフォークにおいては、ソフトフォークの定義情報(今回であればsegwit)はBitcoin Coreではハードコードされている。version bitsにsegwitが追加されたのは↓のコミット。

github.com

segwitのソフトフォークについて、testnetでBIP-9によるデプロイパラメータが設定されたのが↓のコミット。

github.com

2016/05/01にスタートして、タイムアウトは2017/05/01で、1番目のversion bitを利用。
(ちなみに↑がコミットされたのは2016/05/06)

なので、0.12.1を使っている限りはsegwitのデプロイメントの状態は分からない。