I'm unable to get an Ethereum LES getProofsV2 (or getProofs) request to produce a ProofsV2 (or Proofs) response with anything but an empty array of Nodes. This is for a request targeted to a GETH node open to LES connections.
The request arguments are [B_32 (blockHash), B_32 (key), B_32 (key2), P (fromLevel)]
. I'm providing a blockHash
from any recently mined block; a key
as the Keccak256 hash of a 20-byte account (with transactions from months ago), a key2
as 32-bytes of 0, and fromLevel
as 0. I'm expecting to get back an array of Nodes
with the last node having the RLP encoding of the AccountState
(with {nonce,balance,...}
. Is that expectation correct? Or would I only expect to get an array of Nodes if key
had transactions in the specified blockHash
? [Fact is, I tried both - blockHash
w/ or w/o transactions, still nodes is []
].
Specifically, this is the request data:
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: ]
Where the blockHash 0x0a89...
is blockNumber 5732521
and key2 is the hash of account 0x49f4C50d9BcC7AfdbCF77e0d6e364C29D5a660DF
.
For completeness, the response is:
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: ]
What is needed to make a successful GetProofsV2 request?