eth.getTransactionReceipt returns 空
eth.getTransactionReceipt returns null
我们正在设置类似于区块链浏览器的东西,但我们的 Eth 全节点似乎缺少某些区块的交易信息。
例如,我可以查询 eth.getTransaction
但 eth.getTransactionReceipt
returns null
> eth.getTransaction('0x03a05ea076149ae8cff6b0fbc9b1f29c6bf6b7ab04ded92080c54084688456dd')
{
blockHash: "0xfd3b78d9b56e9a911beda3ff488c28c9dd83a9ae4961ba676f852e316cffde89",
blockNumber: 5035686,
from: "0x0ce287cc90601a891e65efda7037f5682cb1ade6",
gas: 210000,
gasPrice: 40000000000,
hash: "0x03a05ea076149ae8cff6b0fbc9b1f29c6bf6b7ab04ded92080c54084688456dd",
input: "0x",
nonce: 21,
r: "0x464f05819d48288db06cac5ff21b49d02a1250df6c4ba1e20ecdb38c558e5b44",
s: "0x1f48c4531a3807b987857b99639b51f54e3718b9f1d808d66ad765ee0f71aba0",
to: "0xe4bad5a72c04d5473e932f54036376772378b83d",
transactionIndex: 72,
v: "0x26",
value: 98082570000000016
}
eth.getTransactionReceipt('0x03a05ea076149ae8cff6b0fbc9b1f29c6bf6b7ab04ded92080c54084688456dd')
null
发生这种情况是否有原因,除了完全重新同步之外还有其他解决方案吗?
我确实相信我第一次同步我使用的区块链 --fast
,所以它可能会错过一些 txs,尽管这个参数没有很好的记录。
您的节点似乎有问题。收据由 Infura 退回。我建议在没有 --fast
.
的情况下重新同步
truffle(liveI)> web3.eth.getTransactionReceipt('0x03a05ea076149ae8cff6b0fbc9b1f29c6bf6b7ab04ded92080c54084688456dd', (e, r) => console.log(r));
undefined
truffle(liveI)> { blockHash: '0xfd3b78d9b56e9a911beda3ff488c28c9dd83a9ae4961ba676f852e316cffde89',
blockNumber: 5035686,
contractAddress: null,
cumulativeGasUsed: 2154783,
from: '0x0ce287cc90601a891e65efda7037f5682cb1ade6',
gasUsed: 21000,
logs: [],
logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
status: '0x1',
to: '0xe4bad5a72c04d5473e932f54036376772378b83d',
transactionHash: '0x03a05ea076149ae8cff6b0fbc9b1f29c6bf6b7ab04ded92080c54084688456dd',
transactionIndex: 72 }
如果得到null,那么先做miner.start(),然后在挖出几个区块后,停止挖矿,然后尝试获取transactionReceipt。
仅供参考:它对我有用。
我们正在设置类似于区块链浏览器的东西,但我们的 Eth 全节点似乎缺少某些区块的交易信息。
例如,我可以查询 eth.getTransaction
但 eth.getTransactionReceipt
returns null
> eth.getTransaction('0x03a05ea076149ae8cff6b0fbc9b1f29c6bf6b7ab04ded92080c54084688456dd')
{
blockHash: "0xfd3b78d9b56e9a911beda3ff488c28c9dd83a9ae4961ba676f852e316cffde89",
blockNumber: 5035686,
from: "0x0ce287cc90601a891e65efda7037f5682cb1ade6",
gas: 210000,
gasPrice: 40000000000,
hash: "0x03a05ea076149ae8cff6b0fbc9b1f29c6bf6b7ab04ded92080c54084688456dd",
input: "0x",
nonce: 21,
r: "0x464f05819d48288db06cac5ff21b49d02a1250df6c4ba1e20ecdb38c558e5b44",
s: "0x1f48c4531a3807b987857b99639b51f54e3718b9f1d808d66ad765ee0f71aba0",
to: "0xe4bad5a72c04d5473e932f54036376772378b83d",
transactionIndex: 72,
v: "0x26",
value: 98082570000000016
}
eth.getTransactionReceipt('0x03a05ea076149ae8cff6b0fbc9b1f29c6bf6b7ab04ded92080c54084688456dd')
null
发生这种情况是否有原因,除了完全重新同步之外还有其他解决方案吗?
我确实相信我第一次同步我使用的区块链 --fast
,所以它可能会错过一些 txs,尽管这个参数没有很好的记录。
您的节点似乎有问题。收据由 Infura 退回。我建议在没有 --fast
.
truffle(liveI)> web3.eth.getTransactionReceipt('0x03a05ea076149ae8cff6b0fbc9b1f29c6bf6b7ab04ded92080c54084688456dd', (e, r) => console.log(r));
undefined
truffle(liveI)> { blockHash: '0xfd3b78d9b56e9a911beda3ff488c28c9dd83a9ae4961ba676f852e316cffde89',
blockNumber: 5035686,
contractAddress: null,
cumulativeGasUsed: 2154783,
from: '0x0ce287cc90601a891e65efda7037f5682cb1ade6',
gasUsed: 21000,
logs: [],
logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
status: '0x1',
to: '0xe4bad5a72c04d5473e932f54036376772378b83d',
transactionHash: '0x03a05ea076149ae8cff6b0fbc9b1f29c6bf6b7ab04ded92080c54084688456dd',
transactionIndex: 72 }
如果得到null,那么先做miner.start(),然后在挖出几个区块后,停止挖矿,然后尝试获取transactionReceipt。
仅供参考:它对我有用。