So erhalten Sie die Transaktionsbestätigungen mit dem JSON RPC

Wie erhalte ich die Blockbestätigungen für eine bestimmte Transaktion mit JSON RPC?

Dies sind Informationen, die in Bitcoin in den Transaktions-JSON kommen würden, aber sie scheinen nicht in Ethereum zu kommen.

Was vermisse ich?

Antworten (2)

Wenn Sie eine Transaktion senden, erhalten Sie einen Transaktions-Hash zurück.

Verwenden Sie den Befehl getTransactionByHash({transaction hash}), um die Transaktionsdetails abzurufen. Ihre blockNumber sollte nicht null sein, wenn die Transaktion geschürft und in einen Block aufgenommen wurde.

Der Aufruf ist in https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gettransactionbyhash mit folgendem Beispiel dokumentiert:

// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionByHash","params":["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"],"id":1}'

// Result
{
  "id":1,
  "jsonrpc":"2.0",
  "result": {
    "hash":"0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b",
    "nonce":"0x",
    "blockHash": "0xbeab0aa2411b7ab17f30a99d3cb9c6ef2fc5426d6ad6fd9e2a26a6aed1d1055b",
    "blockNumber": "0x15df", // 5599
    "transactionIndex":  "0x1", // 1
    "from":"0x407d73d8a49eeb85d32cf465507dd71d507100c1",
    "to":"0x85h43d8a49eeb85d32cf465507dd71d507100c1",
    "value":"0x7f110" // 520464
    "gas": "0x7f110" // 520464
    "gasPrice":"0x09184e72a000",
    "input":"0x603880600c6000396000f300603880600c6000396000f3603880600c6000396000f360",
  }
}

Rufen Sie dann eth_blockNumber ( https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blocknumber ) auf, um die aktuelle Blockhöhe zu erhalten. Ihre Anzahl an Bestätigungen ist das Ergebnis von eth_blockNumber minus dem Ergebnis von eth_getTransaction blockNumber.

Ok, aber wie lässt sich das in Bestätigungen übersetzen? Wie hängt die Blocknummer mit den Bestätigungen der Transaktion zusammen?
Das verstehe ich, aber wie hängt das mit den Bestätigungen zusammen? @BokkyPooBah
Siehe eth_blockNumber und Differenzberechnung in der aktualisierten Antwort
Wenn also eine Transaktion zum ersten Mal in den Block aufgenommen wird, hat sie eine Bestätigung? Oder werden Bestätigungen erst ab dem nächsten Block gezählt?

Die Antwort von BokkyPooBah ist perfekt und was das mit den Bestätigungen zu tun hat, habe ich hier die gleiche Frage gestellt: Wie gibt (aktuelle Blocknummer - Blocknummer einer bestimmten Transaktion) die Bestätigungsanzahl an? .

Sie können sich auch auf die Kommentare zu der Frage beziehen: Ethereum Network Transaction Confirmation Coverage . Die Idee ist, dass, wenn Ihre Transaktion in Block Nummer 100 enthalten war (nehmen Sie einfach an) und die aktuelle Blocknummer 160 ist, dies bedeutet, dass 60 zufällige Miner den Block 100 als gültig akzeptiert und dieser Kette hinzugefügt haben, und Sie können also sagen, dass Sie dies getan haben 60 Bestätigungen. Hier dreht sich alles um Konsens.

Wenn also eine Transaktion zum ersten Mal in den Block aufgenommen wird, hat sie eine Bestätigung? Oder werden Bestätigungen ab dem nächsten Block gezählt?
@SlavaFominII Wenn eine Transaktion zum ersten Mal in einen Block aufgenommen wird (z. B. X), kann dies nicht als erste Bestätigung gewertet werden. Soweit Sie wissen, könnte ich versuchen, die Kette zu durchbrechen. Wenn ein anderer Miner einen Block über X platziert, ist dies eine Bestätigung, dass X korrekt sein könnte, und Sie können sagen, dass die Transaktion eine Bestätigung hat.