We would like to get all public keys, account and balances for a particular ERC20 contract.
We understand we will need to scan the entire ethereum blockchain to do this.
We also understand that a public key is not visible unless the owner has made one transaction with it.
We have created a geth node which is fully synced. When we hit this node withe following RPC call (for the genesis block), it returns no transactions:
{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x0", false],"id":1}
Result
{
"jsonrpc": "2.0",
"id": 1,
"result":{
"difficulty": "0x400000000",
"extraData": "0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa",
"gasLimit": "0x1388",
"gasUsed": "0x0",
"hash": "0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3",
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"miner": "0x0000000000000000000000000000000000000000",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"nonce": "0x0000000000000042",
"number": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
"sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"size": "0x21c",
"stateRoot": "0xd7f8974fb5ac78d9ac099b9ad5018bedc2ce0a72dad1827a1709da30580f0544",
"timestamp": "0x0",
"totalDifficulty": "0x400000000",
"transactions":[],
"transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
"uncles":[]
}
}
Transactions is empty.
But when we scan block 0 thusly: https://etherscan.io/block/0
we get many transactions back:
Block Information
Height: 0
TimeStamp: 1056 days 22 hrs ago (Jul-30-2015 03:26:13 PM +UTC)
Transactions: 8893 transactions and 0 contract internal transactions in this block
Hash: 0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3
If etherscan is "faking" these 8893 transactions, where is it pulling them from?