Bitcoind

在 Ubuntu 上使用 bitcoind 獲取最新塊

  • March 13, 2015

我機器上的總數blockcount沒有增加。我試過做 a bitcoind -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

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