Ethereum eth.getTransactionReceive返回null

Ethereum eth.getTransactionReceive返回null,ethereum,geth,Ethereum,Geth,我们正在设置类似于区块链浏览器的东西,但我们的Eth fullnode似乎缺少某些区块的交易信息 例如,我可以查询eth.getTransaction但是eth.getTransactionReceive返回null eth.getTransaction('0x03a05ea076149ae8cff6b0fbc9b1f29c6bf6b7ab04ded92080c54084688456dd') { 区块散列:“0xfd3b78d9b56e9a911beda3ff488c28c9dd83a9ae49

我们正在设置类似于区块链浏览器的东西,但我们的Eth fullnode似乎缺少某些区块的交易信息

例如,我可以查询
eth.getTransaction
但是
eth.getTransactionReceive
返回
null

eth.getTransaction('0x03a05ea076149ae8cff6b0fbc9b1f29c6bf6b7ab04ded92080c54084688456dd') { 区块散列:“0xfd3b78d9b56e9a911beda3ff488c28c9dd83a9ae4961ba676f852e316cffde89”, 区块编号:5035686, 发件人:“0x0ce287cc90601a891e65efda7037f5682cb1ade6”, 煤气:210000, 加斯普里斯:40亿, 散列:“0x03a05ea076149ae8cff6b0fbc9b1f29c6bf6b7ab04ded92080c54084688456dd”, 输入:“0x”, 暂时:21, r:“0x464F05819D4828DB06CAC5FF21B49D02A1250DF6C4BA1E20ECDB38C558E5B44”, s:“0x1F48C4531A3807B987857B99639B51F54E3718B9F1D808D66AD765EE0F71AB0”, 致:“0xe4bad5a72c04d5473e932f54036376772378b83d”, 交易指数:72, v:“0x26”, 价值:980825700000000016 }

eth.getTransactionReceive('0x03a05ea076149ae8cff6b0fbc9b1f29c6bf6b7ab04ded92080c54084688456dd')
空

这种情况发生的原因是什么?除了完全重新同步之外,还有其他解决方案吗


我确实相信,我第一次同步区块链时使用的是
--fast
,因此它可能遗漏了一些TX,尽管这个参数的文档记录得很差

您的节点似乎有问题。收据从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(),然后在挖掘了几个块之后,停止挖掘,然后尝试获取TransactionReceive


仅供参考:它对我有效。

如何访问Infura节点?我希望能够针对其他节点测试我的节点。它是免费的吗?是的,它是免费的。您只需要通过他们的站点(infuria.io)创建一个API密钥。它们不是唯一的,但它们是比较流行的(它是MetaMask后面的节点场)。Truffle和Infura都有关于如何访问它的文档。请注意,由于负载问题(即过滤器),web3 API的可用性存在限制。