Bitcoind

rpc cookie 身份驗證

  • January 5, 2021

我在啟動 bitcoind 時收到一條消息:

Config options rpcuser and rpcpassword will soon be deprecated. Locally-run instances may remove rpcuser to use cookie-based auth, or may be replaced with rpcauth. Please see share/rpcuser for rpcauth auth generation

什麼是基於 cookie 的身份驗證,我該如何使用它?

謝謝

當沒有提供 rpc 密碼時,使用基於 Cookie 的身份驗證。Bitcoin Core 0.12 版本對此有以下說法:

當未指定 -rpcpassword 時,守護程序現在使用特殊的“cookie”文件進行身份驗證。此文件在守護程序啟動時生成隨機內容,並在其退出時刪除。其內容用作身份驗證令牌。對該文件的讀取權限控制誰可以通過 RPC 訪問。預設情況下,它儲存在數據目錄中,但可以使用選項 -rpccookiefile 覆蓋其位置。

這類似於 Tor 的 CookieAuthentication:參見 <https://www.torproject.org/docs/tor-manual.html.en>

這允許執行 bitcoind 而無需進行任何手動配置。

如果您使用的只是bitcoin-cli不需要 RPC 使用者/密碼的東西,您可能應該只註釋掉或刪除並rpcuser=XXX重新啟動比特幣。它“應該只是工作 [tm]”。rpcpassword=YYY``bitcoin.conf

如果您需要指定的 rpc 使用者/密碼組合,則需要切換到 usingrpcauth而不是rpcuser/ rpcpassword

rpcauth描述為

JSON-RPC 連接的使用者名和雜湊密碼。該欄位採用以下格式:&lt;USERNAME&gt;:&lt;SALT&gt;$&lt;HASH&gt;. 一個規範的 python 腳本包含在 share/rpcuser 中。該選項可以指定多次

share/rpcuser在 github 上)有一個 Python 腳本,可讓您創建這樣的使用者/密碼組合(請注意,您已獲得密碼,您無需自己指定)。

抓住那個 python 腳本,然後執行它。例如

$ python ./rpcuser.py foo
String to be appended to bitcoin.conf:
rpcauth=foo:a14191e6892facf70686a397b126423$ddd6f7480817bd6f8083a2e07e24b93c4d74e667f3a001df26c5dd0ef5eafd0d
Your password:
VX3z87LBVc_X7NBLABLABLABLA

然後rpcuserfoorpcpassword替換VX3z87LBVc_X7NBLABLABLABLA你連接到 bitcoind RPC 的任何地方。

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