Wie kann ich feststellen, ob Bitcoin einen Block gefunden hat?

Ich verwende das traditionelle bitcoind -genim Testnet, um einige Test-Bitcoins abzubauen. Ich habe das ein paar Stunden lang auf einer Maschine gemacht und aufgehört, als ich einen Wasserhahn fand. Später habe ich jedoch auf magische Weise 50 Münzen in meiner Brieftasche erhalten. Ich denke, weil Blöcke eine lange Bestätigung haben?

Wie auch immer, wie kann ich also feststellen, wann Bitcoin erfolgreich einen Block abgebaut hat (und jetzt nur noch auf Bestätigungen wartet)

Antworten (2)

Wenn Sie in schauen debug.log, sollten Sie eine Nachricht sehen, die besagt, dass "Proof-of-Work gefunden".

Hier ist ein Auszug aus debug.logeinem Testnet-Block, den ich gefunden habe. (Er war sofort verwaist; tatsächlich war ein früherer Block einige Minuten zuvor gefunden worden, hatte mich aber noch nicht erreicht. Sie werden ihn also nicht in der Blockchain finden.)

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

Ich glaube, debug.loges wird regelmäßig überschrieben. Wenn Ihr Block also vor einiger Zeit erstellt wurde, haben Sie diesen Eintrag möglicherweise nicht mehr in Ihrem.

Neu generierte Münzen erfordern 100 Bestätigungen , bevor sie ausgegeben werden können, und bitcoindwerden sie anscheinend erst nach 120 als ausgabefähig anzeigen. Siehe auch diese Frage . Soweit ich weiß, sind diese Regeln im Testnet gleich.

Herzlichen Glückwunsch zu Ihrem neu entdeckten falschen Reichtum!

Das Debug-Protokoll ist viel zu groß, um es manuell zu durchsuchen. Das Durchsuchen nach "Beweis", "Arbeit" oder "gefunden" ergab jedoch nichts Offensichtliches
@Earlz: Ich habe einen Auszug hinzugefügt. Wenn Sie es nicht gefunden haben, wurde es möglicherweise überschrieben. Eine andere Idee wäre, Block Explorer für die Adresse zu verwenden, die die generierten Coins erhalten hat, den Block zu finden, der sie erstellt hat, und debug.log für seinen Hash zu suchen.

Wie unter Ausführen von Bitcoin beschrieben , müssen Sie entweder den Befehlszeilenschalter -blocknotify verwenden oder die Einstellung in Ihrer Bitcoin.conf-Datei aktivieren.

Wie die Seite sagt, verwenden Sie ein Befehlszeilenskript/Programm und das %s in der Befehlszeile wird durch den Hash des neuen Blocks ersetzt. Wenn Sie Informationen über den Block benötigen, können Sie diese dann beispielsweise mit einem JSON-RPC-Befehl wie get-block nachschlagen.

Meine Bitcoin-Installation verfügt über ein Befehlszeilenskript, das CURL verwendet, das ich dann verwende, um eine HTTP-Benachrichtigung an meine Website zu senden. Nur ein Beispiel dafür, wie dies verwendet werden kann.