我无法获得以太网LES getProofsV2(或getProofs)请求来生成ProofsV2(或Proofs)响应,除了一个空的节点数组外。这是针对打开LES连接的GETH节点的请求。
请求参数为[B_32 (blockHash), B_32 (key), B_32 (key2), P (fromLevel)]
。我从最近开采的块中提供blockHash
; a key
作为20字节帐户的Keccak256哈希值(几个月前的事务),key2
为32字节0,fromLevel
为0.我期待返回一个Nodes
数组,最后一个节点的RLP编码为AccountState
({nonce,balance,...}
。这个期望是正确的吗?或者我只期望获得一个节点数组如果key
在指定的blockHash
中有交易?[事实是,我尝试了两个 - blockHash
w /或没有交易,仍然是[]
}节点。
具体来说,这是请求数据:
ETH: LES-ProofsV2-Req: L 1: [
ETH: LES-ProofsV2-Req: L 4: [
ETH: LES-ProofsV2-Req: I 32: 0x0a89dd55d38929468c1303b92ab43ca57269ac864175fc6208ae739ffcc17c9b
ETH: LES-ProofsV2-Req: I 32: 0x272cf200ca06815ab2170fde0901e7da10ab1dddc31223184f139def3b09f670
ETH: LES-ProofsV2-Req: I 32: 0x0000000000000000000000000000000000000000000000000000000000000000
ETH: LES-ProofsV2-Req: I 0: 0x
ETH: LES-ProofsV2-Req: ]
ETH: LES-ProofsV2-Req: ]
其中blockHash 0x0a89...
为blockNumber 5732521
,key2为帐户0x49f4C50d9BcC7AfdbCF77e0d6e364C29D5a660DF
的哈希值。
为完整起见,回复是:
ETH: LES-PROOFSV2: L 3: [
ETH: LES-PROOFSV2: I 0: 0x
ETH: LES-PROOFSV2: I 4: 0x11d1a228
ETH: LES-PROOFSV2: L 0: []
ETH: LES-PROOFSV2: ]
成功获取GetProofsV2请求需要什么?