在 Ubuntu 上使用 bitcoind 獲取最新塊
我機器上的總數
blockcount
沒有增加。我試過做 abitcoind -reindex -daemon
,但它最終並沒有增加塊的數量。下面附上機器和
bitciond
資訊。作業系統:
my_machine ~ $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.1 LTS Release: 14.04 Codename: trusty
比特幣守護程序:
my_machine ~ $ bitcoind getinfo { "version" : 90300, "protocolversion" : 70002, "walletversion" : 60000, "balance" : 0.00000000, "blocks" : 322082, "timeoffset" : 1, "connections" : 8, "proxy" : "", "difficulty" : 29829733124.04041672, "testnet" : false, "keypoololdest" : 1422374797, "keypoolsize" : 100, "unlocked_until" : 0, "paytxfee" : 0.00000000, "relayfee" : 0.00001000, "errors" : "Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues." }
更新:根據此處解釋的問題:http: //sourceforge.net/p/bitcoin/mailman/message/33222029/,看來 OpenSSL 是問題所在。我嘗試通過執行以下操作來糾正卡在 322082 的最新塊
git clone -b 0.9 https://github.com/bitcoin/bitcoin.git bitcoin-0.9 cd bitcoin-0.9 ./autogen.sh cd src ./configure ./configure --with-incompatible-bdb make make check stop bitcoind bitcoind -daemon -server -reindex
然後我等待重新索引完成,但我仍然遇到同樣的問題。難道我做錯了什麼?如何測試我是否需要正確版本的 OpenSSL?
根據這個GitHub 討論,事實證明問題是由 OpenSSL 移動到
0.9.4.0 binaries
應該解決您的問題引起的。格雷戈里·麥克斯韋
不兼容是由於 OpenSSL 更新更改了 ECDSA 驗證的行為以拒絕任何未以非常嚴格的方式編碼的簽名。這是 OpenSSL 更改 CVE-2014-8275“證書指紋可以修改”的結果。
雖然對於大多數應用程序來說,急切地拒絕某些簽名通常是可以接受的,但比特幣是一個共識系統,所有參與者通常必須就輸入數據的確切有效性或無效性達成一致。從某種意義上說,一致性比“正確性”更重要。
我的回答對上面的“9.4 應該解決您的問題”的回答提出了質疑。這似乎是由沒有實際嘗試過的人提出的。但是,我已經嘗試過了…我的作業系統版本和 OP 相同。他沒有提到更改 openssl,所以可能也和我一樣(與 14.04 一起提供/更新)。0.9.4 沒有工作。我覺得你刪除一個說建議的修復不起作用的答案有點奇怪,但保留未經驗證的修復。我也很想找到一個真正的答案,我花了將近兩週的時間重新索引並發現建議的修復不起作用,也許其他人想知道它在另一個 14.04 系統上不起作用?毫無疑問,這也會被刪除,因為它沒有答案。我有修補的 1.01f