¿Cómo obtener los parámetros de firma de una transacción?

En mi aplicación, tengo que verificar manualmente ciertas firmas de transacciones en la cadena de bloques de ethereum. Atm Estoy ejecutando nodos geth y parity y consulto información de transacciones a través de la interfaz rpc, pero parece que faltan los parámetros ecdsa sig.

Por lo que veo, tanto geth como parity no parecen exponer los parámetros de firma a través de la interfaz rpc como lo hace bitcoind (expone los scripts de entrada y salida con get_rawtransaction). ¿Hay una manera fácil de acceder a ellos o hacer firmas de tiras de paridad y geth en sus cachés de blockchain locales una vez que las firmas se verificaron por algún motivo? Me pregunto porque incluso ecp solo parece analizar las transacciones sin procesar de los bloques en txhash, rcpt, from, amount, price, gaslimit, payload(=datos), blockidperdiendo los parámetros de firma (¿o están ocultos en el campo de carga útil?).

¿Cuál sería una opción para obtener información completa de la transacción sin procesar como si la hubiera firmado con web3.eth.sign()?

Respuestas (1)

En el objeto de transacción devuelto por eth_getTransactionmi instancia de geth, se incluyen los parámetros ECDSA:

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"
  }
}

Tenga en cuenta los parámetros v, ry s: estos son los que necesita para verificar la firma. No estoy seguro de por qué estos no están en la especificación oficial de RPC, pero están disponibles si los necesita

Lo mismo en paridad.