1

How would one take an addresses and balances "snapshot" of all 6,086,374 normal addresses at block number 4293752?

  • Current and complete seem mutually exclusive; you can maybe have one, but you can't have both. The blockchain is constantly being appended to. A further complication is that there is (often?) no one canonical chain. There can be several competing chains at once, though only one chain will win in the end. By the time we find out which one has won, there are new forks on top of the once-winning chain. – lungj Sep 20 '17 at 4:24
  • Understood, allow me to restate with clear precision - "How would one take an addresses and balances snapshot of all 6,086,374 normal addresses at block number 4293752? – Document Sep 20 '17 at 6:13
1

I think the OP means complete to the currently accepted last node that was mined a little while ago.

One way would be to build your own explorer - run a geth node - attach a console and use the web3 JavaScript library (https://github.com/ethereum/wiki/wiki/JavaScript-API) - get each block using getBlock - get each transaction and find the from and to addresses - get the balance of the address (https://github.com/ethereum/wiki/wiki/JavaScript-API#web3ethgetbalance)

Of course we would likely want to limit this to wallet addresses or account addresses. I don't see how we can know that...still looking.

0

Getting the balances is easy, there's an api web3.eth.getBalance. You can specify from which block do you want the balance.

The hard part is collecting the addresses. If you do not want to use an external api like etherscan then you have to build a database processing all transactions in the blockchain registering sender and receiver.

You will still be missing accounts created by "internal transactions". For that you have to use low level trace apis from geth/parity.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.