|
| 1 | +--- |
| 2 | +title: Bitcoin Core 0.16.0 リリース |
| 3 | +name: blog-release-0.16.0 |
| 4 | +id: ja-blog-release-0.16.0 |
| 5 | +lang: ja |
| 6 | +permalink: /ja/2018/02/26/release-0.16.0/ |
| 7 | +type: posts |
| 8 | +layout: post |
| 9 | +share: true |
| 10 | +version: 1 |
| 11 | + |
| 12 | +excerpt: > |
| 13 | + Bitcoin Core 0.16.0がリリースされ、ウォレットでsegwitがサポートされるようになりました。 |
| 14 | +
|
| 15 | +--- |
| 16 | +{% include _toc.html %} |
| 17 | +{% include _references.md %} |
| 18 | + |
| 19 | +Bitcoin Coreのウォレットでsegregated witness(segwit)をデフォルトサポートした最初のバージョンである |
| 20 | +Bitcoin Core 0.16.0のリリースをお知らせします。 |
| 21 | +このリリースには以下で説明するいくつかの改善とバグフィックスが含まれます。 |
| 22 | + |
| 23 | +最新のリリースは[ダウンロードページ][]からダウンロードできます。 |
| 24 | + |
| 25 | +以下のセクションでは今回のリリースの最も重要な変更について説明します。 |
| 26 | +詳細については[リリースノート][]を参照してください。 |
| 27 | + |
| 28 | +### Segwit ウォレット {#segwit-wallet} |
| 29 | + |
| 30 | +Bitcoin Core 0.16.0はウォレットおよびユーザーインターフェースでsegwitを完全にサポートするようになりました。新しく`-addresstype`引数が追加され、`legacy`, `p2sh-segwit` (デフォルト), および `bech32` アドレスをサポートします。この引数は`getnewaddress`、`getaccountaddress`、`createmultisigaddress`で生成されるアドレスの種類を制御します。`-changetype`も同じオプションで追加され、デフォルトも`-addresstype`と同じで、おつり用のアドレスの種類を制御します。 |
| 31 | + |
| 32 | +新しい`address_type`パラメータが`getnewaddress`と`addmultisigaddress` RPCに追加され、生成するアドレスの種類を指定します。 |
| 33 | +`change_type`パラメータが`fundrawtransaction` RPCに追加され、特定のトランザクションの`-changetype`引数を上書きします。 |
| 34 | + |
| 35 | +- `getnewaddress` もしくは `*multisig` で作成された全てのsegwitアドレスは、明示的にそのredeemscriptがウォレットファイルに追加されます。これはウォレットファイルが最新であれば、segwitアドレスを作成した後のダウングレードが機能することを意味します。 |
| 36 | +- ウォレット内のsegwitの鍵に暗黙的なredeemscriptが追加され、これらはファイルに書かれることはありません。これは新しいソフトウェアを使用している限り、古いバックアップのリカバリが機能することを意味します。 |
| 37 | +- トランザクションで使われているすべてのキープールの鍵は明示的にウォレットファイルに追加されたそのredeemscriptを取得します。これはsegwitアドレスを含むバックアップからのリカバリ後のダウングレードが機能することを意味します。 |
| 38 | + |
| 39 | +一部のRPCではまだsegwitアドレスをサポートしていないことに注意してください。特に、`signmessage`/`verifymessage`はsegwitアドレスをサポートしておらず、`importmulti`も現時点ではサポートしていません。これらのRPCのSegwitサポートは今後のバージョンで引き続き追加される予定です。 |
| 40 | + |
| 41 | +トランザクションの宛先がP2WPKHもしくはP2WSHのアウトプットの場合、おつり用のアドレスにデフォルトでP2WPKHが使用されるようになりました。これはどちらの場合でもおつり用のアウトプットが他のアウトプットとできるだけ区別が付かないようにするためです。 |
| 42 | + |
| 43 | +### BIP173 (Bech32) アドレスサポート ("bc1..."から始まるアドレス) {#bip173-address-support} |
| 44 | + |
| 45 | +ネイティブsegwitアドレス(BIP173 / Bech32)が完全にサポートされるようになりました。 |
| 46 | +これにはBIP173アドレス(v0以外のアドレスも含む)への送金および、それらのアドレス(上記のデフォルトアドレスを含む)を生成する機能が含まれます。 |
| 47 | + |
| 48 | +segwitアドレスを使用する際に、Bech32アドレスもしくはP2SHでラップしたアドレスのどちらを使用するか選択するためのチェックボックスがGUIに追加されました。 |
| 49 | +起動時に`-addresstype=bech32`を付与するとデフォルトでチェックされます。起動時に`-addresstype=legacy`を付与するとチェックされず無効化されます。 |
| 50 | + |
| 51 | +### HD-ウォレットがデフォルトに {#hd-wallets-by-default} |
| 52 | + |
| 53 | +旧バージョンとの互換性のないウォレットデータベースの変更により、バージョン0.16.0で作成されたウォレットは以前のバージョンでは拒否されます。 |
| 54 | +また、バージョン0.16.0では階層的決定性(HD)ウォレットしか作成されません。これは新しいウォレットのみに適用され、以前のバージョンで作成されたウォレットはHDウォレットにはアップグレードされません。 |
| 55 | + |
| 56 | +### GUIでReplace-By-Feeがデフォルトに {#replace-by-fee-by-default-in-gui} |
| 57 | + |
| 58 | +送金画面では、`-walletrbf`に関係なくBIP125のRBFをデフォルトで使用するようになりました。 |
| 59 | +これに伴いトランザクションを最終のものとマークするチェックボックスが配置されます。 |
| 60 | + |
| 61 | +RPCのデフォルトは変更されません。RBFを使用するには、`-walletrbf=1`で起動するか |
| 62 | +個々のトランザクションに`replaceable`引数を使用します。 |
| 63 | + |
| 64 | +### ウォレットディレクトリの設定 {#wallets-directory-configuration} |
| 65 | + |
| 66 | +Bitcoin Coreはウォレットのディレクトリの場所を柔軟に変更できるようになりました。 |
| 67 | +これまでのウォレットデータベースファイルは、bitcoinのデータディレクトリの最上位に格納されていました。 |
| 68 | +この動作が以下のようになります。 |
| 69 | + |
| 70 | +- 新規インストール(データディレクトリが存在しない場合)では、デフォルトでウォレットはデータディレクトリ内の新しい`wallets/`サブディレクトリに格納されます。 |
| 71 | +- 既存のノード(データディレクトリがすでに存在する)場合、ウォレットはデフォルトでデータディレクトリのルートに格納されます。 |
| 72 | + データディレクトリのルートにすでに`wallets/`サブディレクトリが存在する場合、ウォレットはデフォルトで`wallets/`サブディレクトリ内に格納されます。 |
| 73 | +- ウォレットディレクトリの場所は`-walletdir=<path>`オプションを指定することで上書きすることができます。 |
| 74 | + `<path>`は、ディレクトリやディレクトリのシンボリックリックへの絶対パスです。 |
| 75 | + |
| 76 | +ウォレットディレクトリの場所を選択する際は注意が必要で、操作中に使用できなくなった場合、資金が失われる可能性があります。 |
| 77 | + |
| 78 | +### プルーニングノードのシグナリングをサポート (BIP159) {#support-for-signalling-pruned-nodes} |
| 79 | + |
| 80 | +プルーニングノードは、将来のバージョンでBIP159を完全にサポートする準備として、service bitsを使ってBIP159のNODE_NETWORK_LIMITEDを通知できるようになりました。 |
| 81 | +これによりプルーニングノードも直近のブロックを提供できるようになります。ただし、今回の変更ではこれらのプルーニングノードへの接続はまだサポートしていません。 |
| 82 | + |
| 83 | +### パフォーマンス: SHA256アセンプリがデフォルトで有効に {#performance-sha256-assembly-enabled-by-default} |
| 84 | + |
| 85 | +サポートされたハードウェア上でSHA256を〜50%スピードアップするSSE4をサポートするアーキテクチャのSHA256ハッシュ最適化(これにより同期およびブロックの検証が~5%高速に)がデフォルトで有効になりました。 |
| 86 | +以前のバージョンでは、ビルド時に`--enable-experimental-asm`フラグを使用すれば有効になっていましたが、現在はデフォルトになり、もう実験的ではありません。 |
| 87 | + |
| 88 | +### GUIの変更 {#gui-changes} |
| 89 | + |
| 90 | +- GUIで"µBTC"を使用するとBIP176で定義されている"bits"表記で表示されるようになります。 |
| 91 | +- 以前使用したアドレスを再利用するオプションが削除されました。これはインボイスを再送信するために必要でしたが、現在はリクエストの履歴があるため必要なくなりました。 |
| 92 | +- アドレスとラベル以外に、TXIDによる検索がサポートされました。 |
| 93 | +- コインの送金ダイアログに、ウォレットの全ての残高をトランザクションのアウトプットにセットする”利用可能な残高を使用”オプションが追加されました。 |
| 94 | +- パスワードダイアログのパスワードフィールドで入力されたパスワードをアンブラインドするトグルが追加されました。 |
| 95 | + |
| 96 | +### 新しい rescanblockchain RPC {#new-rescanblockchain-rpc} |
| 97 | + |
| 98 | +手動でブロックチェーンの再スキャンを実行する新しいRPC`rescanblockchain`が追加されました。 |
| 99 | +このRPCは再スキャンの開始および終了のブロック高の引数をサポートし、マルチウォレット環境で実行時にブロックチェーンの再スキャンをするのに使用できます。 |
| 100 | + |
| 101 | +### 新しい savemempool RPC {#new-savemempool-rpc} |
| 102 | + |
| 103 | +クラッシュや停電時にメモリプールのデータが失われるのを避けるため、現在のメモリプールをディスクに保存する新しい`savemempool` RPCが追加されました。 |
| 104 | + |
| 105 | +### セーフモードがデフォルトで無効に {#safe-mode-disabled-by-default} |
| 106 | + |
| 107 | +セーフモードがデフォルトで無効になり、使用したい場合は(`-disablesafemode=0`で)手動で有効にする必要があります。 |
| 108 | +セーフモードは、ネットワークで特定の問題や条件が検出された際に、自動的にウォレットと送信に関連するRPCのサブセットを無効にする機能です。 |
| 109 | +しかし、開発者はこれらのチェックは自動的に実行するには十分な信頼性がないと考えてきました。 |
| 110 | +セーフモードを無効にしても、今までどおり`getneworkinfo` RPCの`warnings`には警告が表示され、`-alertnotify`コマンドが起動します。 |
| 111 | + |
| 112 | +### JSON-RPC credentialを作成するスクリプトのリネーム {#renamed-script-for-creating-json-rpc-credentials} |
| 113 | + |
| 114 | +`share/rpcuser/rpcuser.py`スクリプトは`share/rpcauth/rpcauth.py`にリネームされました。 |
| 115 | +このスクリプトはJSON-RPCユーザーの`rpcauth` credentialを作成するのに使われます。 |
| 116 | + |
| 117 | +### validateaddress の改善 {#validateaddress-improvements} |
| 118 | + |
| 119 | +`validateaddress` RPCのアウトプットはいくつかの新しいフィールドで拡張され、segwitアドレス(P2SHとBech32の両方)をサポートします。具体的には |
| 120 | + |
| 121 | +- P2WPKHとP2WSHアドレスであれば新しいフィールド`iswitness`がTrueになります。P2SHでラップしたsegwitアドレスはTrueにはなりません(以下参照)。 |
| 122 | +- 既存の`isscript`フィールドはP2WSHアドレスに対してTrueと報告するようになりました。 |
| 123 | +- スクリプトが知られていて既知のアドレスと合致する全てのスクリプトアドレスに対して新しい`embedded`フィールドが表示されるようになります。これは特にP2SH-P2WPKHアドレスやP2SH-P2WSHアドレスにあてはまります。`embedded`フィールドの値には、埋め込みアドレスに直接`validateaddress`を実行した場合に報告される情報が表示されます。 |
| 124 | +- マルチシグスクリプトの場合、(既知の場合)スクリプトに含まれる全ての公開鍵を報告する新しい`pubkeys`フィールドが追加されました。これは既存の`addresses`フィールド(同じ情報を報告しますがP2PKHアドレスとしてエンコードされています)を置き換えるもので、より便利で混乱のない方法で表現されています。`addresses`フィールドは非segwitアドレスと後方互換のため残されます。 |
| 125 | +- 既知の鍵を持つ単一鍵のアドレス(P2SHもしくはP2WSHでラップされている場合でも)には、`pubkey`フィールドが表示されます。特にこれはアドレスの種類がP2SH-P2WPKHであっても、`getnewaddress`のアウトプットに対して`validateaddress`を実行すると常に`pubkey`が表示されることを意味します。 |
| 126 | + |
| 127 | +### 低レベルの変更 {#low-level-changes} |
| 128 | + |
| 129 | +- 廃止予定のRPC`getinfo`が削除されました。より具体的なRPCを使用するのをお勧めします。 |
| 130 | + * `getblockchaininfo` |
| 131 | + * `getnetworkinfo` |
| 132 | + * `getwalletinfo` |
| 133 | + * `getmininginfo` |
| 134 | +- ウォレットのRPC`getreceivedbyaddress`は、ウォレットに含まれていないアドレスで呼び出された場合エラーを返します。 |
| 135 | +- ウォレットのRPC`addwitnessaddress`が廃止され、バージョン0.17で削除されます。 |
| 136 | + 代わりに`getnewaddress`の引数に`address_type`をセットするか、オプション`-addresstype=[bech32|p2sh-segwit]`をセットしてください。 |
| 137 | +- `dumpwallet`はダンプファイル内ウォレットからの16進エンコードされたスクリプトを含むようになり、 |
| 138 | + `importwallet`はこれらのスクリプトをインポートするようになりましたが、対応するアドレスが正しく追加されない、 |
| 139 | + もしくは関連するトランザクションを見つけるために手動再スキャンが必要な場合があります。 |
| 140 | +- `getblockchaininfo` RPCに`errors`フィールドが含まれるようになりました。 |
| 141 | +- `getrawtransaction` RPCに新しい`blockhash`パラメータが追加されました。これは`-txindex`が有効になっていなくても、既知の場合に特定のブロックからrawトランザクションを取り出すことを可能にします。 |
| 142 | +- `decoderawtransaction`RPCと`fundrawtransaction`RPCが、必要に応じてヒューリスティックなwitnessチェックを無効にするオプション`iswitness`パラメータを持つようになりました。 |
| 143 | +- `walletpassphrase`のタイムアウトの最大設定が2^30秒になりました。 |
| 144 | +- `createmultisig` RPCでアドレスを使うのが廃止され、将来のバージョンでは削除されます。アドレスの代わりに公開鍵を使用します。 |
| 145 | +- ブロックチェーンの再スキャンでは、再スキャンの全プロセスでウォレットをロックしなくなりました。そのため再スキャン中も他のRPCを使用することができます(再スキャンが完了するまで残高やトランザクションの結果は不正確もしくは不完全かもしれません)。 |
| 146 | +- `logging` RPCが公開されるようになりました。 |
| 147 | +- `getblockchaininfo` RPCに`initialblockdownload`のbooleanが追加され、ノードが現在IBD中かどうか示すようになりました。 |
| 148 | +- `getmempoolinfo`のアウトプットに`minrelaytxfee`が含まれるようになりました。 |
| 149 | + |
| 150 | +### その他の変更されたコマンドラインオプション {#other-changed-command-line-options} |
| 151 | + |
| 152 | +- 別のデバッグログファイルを指定するのに`-debuglogfile=<file>`が使えます。 |
| 153 | +- bitcoin-cliにRPCのパスワードを標準入力から読み取れるようにする`-stdinrpcpass`が追加されました。 |
| 154 | +- `-usehd`オプションが削除されました。 |
| 155 | +- bitcoin-cliは、今回削除された`getinfo` RPCと似たアウトプットを返す`-getinfo`フラグをサポートするようになりました。 |
| 156 | + |
| 157 | +### テストの変更 {#testing-canges} |
| 158 | + |
| 159 | +- regtestのJSON-RPCのデフォルトポートが18443に変更され、testnetのデフォルトポート18332との競合が回避されました。 |
| 160 | +- segwitはデフォルトでregtestモードで常にアクティブになりました。このためregtestノードをアップグレードする場合は、regtestのbitcoin.confに-reindexを付与するか、`vbparams=segwit:0:999999999999`を付与して旧ルールを使用する必要があります。これを行わないと、次のようなCheckBlockIndex()アサーションエラーが発生します: Assertion `(pindexFirstNeverProcessed != nullptr) == (pindex->nChainTx == 0)' failed. |
| 161 | + |
| 162 | +## 検証用のハッシュ {#hashes-for-verification} |
| 163 | + |
| 164 | +{% highlight text %} |
| 165 | +f51392e0cbf7940627944602a64890ed65cf44838fc4795d493cf12aafe37012 bitcoin-0.16.0-aarch64-linux-gnu.tar.gz |
| 166 | +59f95da96f40b3a9acfeda9085e6389f2075ee40ef1fe7f023031f86c946c3ea bitcoin-0.16.0-arm-linux-gnueabihf.tar.gz |
| 167 | +d7c173e2921e39df3631b7cd652ae7330c2735b0b221f9dc8f7c899887b4fb59 bitcoin-0.16.0-i686-pc-linux-gnu.tar.gz |
| 168 | +ade85a8e39de8c36a134721c3da9853a80f29a8625048e0c2a5295ca8b23a88c bitcoin-0.16.0-osx64.tar.gz |
| 169 | +df0036bae9f40536095908c9944ed66c0946f178ae8ef07639caf25a390b2ee7 bitcoin-0.16.0-osx.dmg |
| 170 | +8cbec0397d932cab7297a8c23c918392f6eebd410646b4b954787de9f4a3ee40 bitcoin-0.16.0.tar.gz |
| 171 | +7558249b04527d7d0bf2663f9cfe76d6c5f83ae90e513241f94fda6151396a29 bitcoin-0.16.0-win32-setup.exe |
| 172 | +60d65d6e57f42164e1c04bb5bb65156d87f0433825a1c1f1f5f6aebf5c8df424 bitcoin-0.16.0-win32.zip |
| 173 | +6d93ba3b9c3e34f74ccfaeacc79f968755ba0da1e2d75ce654cf276feb2aa16d bitcoin-0.16.0-win64-setup.exe |
| 174 | +42706da1a95b2db8c5808529f73c2063a0dd770f71e0c8506bfa86dc0f3403ef bitcoin-0.16.0-win64.zip |
| 175 | +e6322c69bcc974a29e6a715e0ecb8799d2d21691d683eeb8fef65fc5f6a66477 bitcoin-0.16.0-x86_64-linux-gnu.tar.gz |
| 176 | +{% endhighlight %} |
| 177 | + |
| 178 | + |
| 179 | +[リリースノート]: /ja/releases/0.16.0/ |
| 180 | +[IRC]: https://en.bitcoin.it/wiki/IRC_channels |
| 181 | +[Slack]: https://slack.bitcoincore.org/ |
| 182 | +[ダウンロードページ]: /ja/download |
0 commit comments