Bitcoind
我如何知道 bitcoind 何時找到了一個區塊?
我在測試網上使用傳統
bitcoind -gen
的方法來探勘一些測試比特幣。我在一台機器上做了幾個小時,當我找到一個水龍頭時就停下來了。後來,我神奇地在我的錢包裡得到了 50 個硬幣。我認為是因為區塊的確認時間很長?無論如何,我怎麼知道 bitcoind 何時成功探勘了一個區塊(現在只是等待確認)
如果您查看
debug.log
,您應該會看到一條消息,上面寫著“找到工作證明”。
debug.log
這是我發現的一個測試網塊的摘錄。(它立即成為孤兒;事實上,早在幾分鐘前就發現了一個更早的塊,但還沒有到達我那裡。所以你不會在區塊鏈中找到它。)BitcoinMiner: proof-of-work found hash: 00000000609b21ea1d67f7220d12f7e6f06542907fa24511fa416b286e11cb54 target: 00000000ffff0000000000000000000000000000000000000000000000000000 CBlock(hash=00000000609b21ea1d67f7220d12f7e6f06542907fa24511fa416b286e11cb54, ver=2, hashPrevBlock=00000000b96e8a2e2f27bf209a1059fd10b117cdf5a6373559eb93268853bc04, hashMerkleRoot=f25394d1360a276fa5e3c51b245969d193710d06b5bda12468e11074c8740d50, nTime=1383697696, nBits=1d00ffff, nNonce=2576125723, vtx=1) CTransaction(hash=f25394d1360a276fa5e3c51b245969d193710d06b5bda12468e11074c8740d50, ver=1, vin.size=1, vout.size=1, nLockTime=0) CTxIn(COutPoint(0000000000000000000000000000000000000000000000000000000000000000, 4294967295), coinbase 0330f6010101062f503253482f) CTxOut(nValue=50.00000000, scriptPubKey=0226fe62f7b1812c421efd7638907f) vMerkleTree: f25394d1360a276fa5e3c51b245969d193710d06b5bda12468e11074c8740d50 generated 50.00 keypool keep 6 AddToWallet f25394d1360a276fa5e3c51b245969d193710d06b5bda12468e11074c8740d50 new Committing 1 changed transactions to coin database... SetBestChain: new best=00000000609b21ea1d67f7220d12f7e6f06542907fa24511fa416b286e11cb54 height=128560 log2_work=57.064666 tx=708022 date=2013-11-06 00:28:16 progress=1.000000 ProcessBlock: ACCEPTED
我相信
debug.log
會定期覆蓋,因此如果您的塊是前一段時間創建的,您的塊中可能不再有此條目。新生成的硬幣需要 100 次確認才能使用,並且
bitcoind
顯然要到 120 次才會顯示為可使用。另請參閱此問題。據我所知,這些規則在測試網上是相同的。恭喜你新發現的假財富!
如執行比特幣中所述,您需要使用 -blocknotify 命令行開關或啟用 Bitcoin.conf 文件中的設置。
正如頁面所說,您使用命令行腳本/程序,命令行中的 %s 被新塊的雜湊替換。如果您需要有關該塊的資訊,則可以使用JSON-RPC 命令(例如 get-block)進行查找。
我的 bitcoind 安裝有一個使用 CURL 的命令行腳本,然後我用它向我的網站發布 HTTP 通知。只是一個如何使用它的例子。