API経由で未加工の TX を送信しようとしましeth.sendRawTransaction
たが、行き詰まりました。私は EthereumJS を使用して TX を生成および署名しています。実際、TX を 経由eth.sendRawTransactin
で送信できますが、TX は常にキューに入れられます (geth doc ごとに処理できません)。
eth.sendRawTransactin
geth コンソールから呼び出すと、通常どおりハッシュが返されます。そのハッシュでトランザクションの詳細を取得できます。
> eth.getTransaction(hash)
{
blockHash: null,
blockNumber: null,
from: "0x89b44e4d3c81ede05d0f5de8d1a68f754d73d997",
gas: 90000,
gasPrice: 50000000000,
hash: "0x69b4a0768e72c3a679a1ae6fb490a831509c3c0a04674b646362d0a3d74689a4",
input: "0x",
nonce: 10,
to: "0xb7e13de69228c37cdff506ea474f31343af33c05",
transactionIndex: null,
value: 2000000
}
ただし、TX は永久にキューに入れられます。
> txpool.status
{
pending: 0,
queued: 5
}
また、送信アドレスは、ガスを完済するのに十分なほど豊富です。
> eth.getBalance("89b44e4d3c81ede05d0f5de8d1a68f754d73d997")
20000000000000000020
比較すると、これは有効なトランザクションです (一部のクライアントによって作成および送信されました)。
> eth.getTransactionFromBlock(11)
{
blockHash: "0x41919469d7ed9232adbcacc820e61ad508b30eb5fc4750d3cebd748c22b110b8",
blockNumber: 11,
from: "0xb7e13de69228c37cdff506ea474f31343af33c05",
gas: 90000,
gasPrice: 50000000000,
hash: "0xa4d4a22aa1fed291a7da00e24304f7093b4fc09b1c6a18692e4240d6d913d674",
input: "0x",
nonce: 4,
to: "0x89b44e4d3c81ede05d0f5de8d1a68f754d73d997",
transactionIndex: 0,
value: 20000000000000000000
}
geth はそれらを解析できるため、TX の形式は正しくなければなりません。残っているのはサインだけだと思います。しかし、TXが適切に署名されていると確信しています。
TX を処理できない理由に関する詳細情報を取得する方法はありますか? 私はgeth
自分のブロックチェーンで使用しているので、ソースコードを変更することができます。