In meiner Anwendung muss ich bestimmte Transaktionssignaturen auf der Ethereum-Blockchain manuell überprüfen. Atm Ich führe Geth- und Paritätsknoten aus und frage Transaktionsinformationen über die RPC-Schnittstelle ab, aber es scheint, dass die ecdsa-Sig-Parameter fehlen.
Soweit ich sehe, scheinen sowohl Geth als auch Parität keine Signaturparameter über die RPC-Schnittstelle verfügbar zu machen, wie es Bitcoin tut (es legt die Ein- und Ausgabeskripte mit offen get_rawtransaction
). Gibt es eine einfache Möglichkeit, auf sie zuzugreifen oder sowohl Geth- als auch Parity-Strip-Signaturen in ihren lokalen Blockchain-Caches durchzuführen, sobald Signaturen aus irgendeinem Grund verifiziert wurden? Ich frage mich, weil sogar ecp nur die Rohtransaktionen von Blöcken in txhash
, rcpt
, from
, amount
, price
, gaslimit
, payload
(= Daten) zu analysieren scheint, blockid
wobei die Signaturparameter fehlen (oder sind sie im Nutzlastfeld versteckt?).
Was wäre eine Option, um vollständige Rohtransaktionsinformationen zu erhalten, als hätte ich sie gerade mit signiert web3.eth.sign()
?
In dem von eth_getTransaction
meiner Geth-Instanz zurückgegebenen Transaktionsobjekt sind die ECDSA-Parameter enthalten:
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionByHash","params": ["0x47ced780ecca7c273243dded62c6a240f3ba4332ab067345909a304d7294cfda"],"id":1}' localhost:8545
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"blockHash": "0x7126318b5736f655049fcb7c3f6ef02d0986a5553cb1b1fbc0ca188543b1e60a",
"blockNumber": "0x339d04",
"from": "0xea674fdde714fd979de3edf0f56aa9716b898ec8",
"gas": "0x15f90",
"gasPrice": "0x4a817c800",
"hash": "0x47ced780ecca7c273243dded62c6a240f3ba4332ab067345909a304d7294cfda",
"input": "0x",
"nonce": "0x15dcf8",
"to": "0xf34a762291e2578b79646cbf296abf4f5a242b3d",
"transactionIndex": "0x0",
"value": "0x16978c7c04171dc",
"v": "0x26",
"r": "0xe448b291661c63d8add23a8be2eb726e92ace5c100e902ee75a6396f8df8d221",
"s": "0x197fb2e88dc2d4e8f606faf6abdb8012d21b024939756ceaf2d39b4bef619fa4"
}
}
Beachten Sie die Parameter v
, r
, und s
: Diese benötigen Sie, um die Signatur zu verifizieren. Ich bin mir nicht sicher, warum diese nicht in der offiziellen RPC-Spezifikation enthalten sind, aber sie sind verfügbar, wenn Sie sie benötigen
q9f