¿Cómo tomar una instantánea de las direcciones y saldos de todas las direcciones normales?

¿Cómo se tomaría una "instantánea" de direcciones y saldos de las 6.086.374 direcciones normales en el número de bloque 4293752?

Actual y completo parecen mutuamente excluyentes; tal vez puedas tener uno, pero no puedes tener ambos. La cadena de bloques se agrega constantemente. Una complicación adicional es que no hay (¿a menudo?) ninguna cadena canónica. Puede haber varias cadenas competidoras a la vez, aunque al final solo una cadena ganará. En el momento en que descubrimos cuál ganó, hay nuevas bifurcaciones en la parte superior de la cadena que una vez ganó.
Entendido, permítanme reafirmar con clara precisión: "¿Cómo se tomaría una instantánea de direcciones y saldos de las 6.086.374 direcciones normales en el número de bloque 4293752?

Respuestas (2)

Creo que OP significa completo hasta el último nodo actualmente aceptado que se extrajo hace un rato.

Una forma sería crear su propio explorador, ejecutar un nodo geth, adjuntar una consola y usar la biblioteca JavaScript web3 ( https://github.com/ethereum/wiki/wiki/JavaScript-API ), obtener cada bloque usando getBlock. obtenga cada transacción y encuentre las direcciones de origen y destino: obtenga el saldo de la dirección ( https://github.com/ethereum/wiki/wiki/JavaScript-API#web3ethgetbalance )

Por supuesto, probablemente querríamos limitar esto a direcciones de billetera o direcciones de cuenta. No veo cómo podemos saber eso... todavía buscando.

Obtener los saldos es fácil, hay una API web3.eth.getBalance . Puedes especificar de qué bloque quieres el saldo.

La parte difícil es recopilar las direcciones. Si no desea utilizar una API externa como etherscan, debe crear una base de datos que procese todas las transacciones en la cadena de bloques que registre el remitente y el receptor.

Aún le faltarán cuentas creadas por "transacciones internas". Para eso, debe usar API de seguimiento de bajo nivel de geth/parity.