Sé que las "transacciones internas" no están incluidas en la cadena de bloques y solo se pueden recuperar reproduciendo las transacciones y escuchando CALL
, CALLCODE
y otros códigos de operación similares. Tanto Parity como Geth proporcionan los medios para hacerlo .
Sin embargo, tengo problemas para realizar una sincronización completa de Geth/Parity. Geth tardó más de un mes en sincronizarse, usa ~800 GB y, a partir de ayer, ya no quiere ejecutarse, fallando con Fatal: Error starting protocol stack: missing block number for head header hash
. No pude encontrar una solución ya que la resincronización no es realmente una opción para mí. Por otro lado, comencé a sincronizar Parity hace aproximadamente una semana y el proceso, rápido al principio, se ralentizó a paso de tortuga alrededor del bloque #2393000.
Por lo que sé, no puedo usar warp/sincronización rápida si quiero obtener transacciones internas. Además, no puedo usar Infura porque no ofrece una interfaz JSON RPC adecuada. Podría usar Etherscan, pero eso parece hacer trampa: ¿cuál es el punto de tener un sistema descentralizado si obtiene sus datos desde un punto final central? Sin embargo, es posible que tenga que usarlo si todo lo demás falla, pero agradecería algunos consejos. Estoy seguro de que no soy el único que intenta hacer esto.
TL; DR: ¿cuál es la forma más rápida de sincronizar nodos para poder recuperar las transacciones internas de ellos? En su defecto, ¿cuáles son otras opciones para obtener estos datos?
Resulta que Parity en el disco SSD se sincroniza mucho más rápido.
EDITAR : ... lo es, pero obtener transacciones internas es muy lento. Recientemente salió Geth 1.8.0 que parece estar sincronizando más rápido (aunque todavía muy lento en HDD) y que admite rastreadores . Veremos cómo va eso.
Buena pregunta,
Según el documento de ayuda de geth, hay 3 formas de sincronizar con la red:
--syncmode full: el cliente Geth descargará Block header + Block data + full Validation [Se llama eth full node]
--syncmode fast: el cliente Geth descargará Block header + Block data + validará las últimas 1k transacciones.
--syncmode light: el cliente Geth descargará el estado actual + pregunta a los nodos según su necesidad. [Nodo ligero [Pedirá bloques faltantes de nodos completos]
Puede cambiar el modo de sincronización especificando --syncmode junto con el símbolo del sistema. rápido es bueno. Pero si no tienes tiempo ni espacio, intenta usar la luz.
syncmode full
obtener las transacciones internas y estoy buscando una forma más rápida de lograrlo, ya que syncmode full
es muy lento.
Nulik
juandodo
SELFDESTRUCT
! No estoy tan preocupado por el explorador en sí, estoy usando una aplicación de Python y Neo4j para eso. Sin embargo, obtener los txs internos de la cadena de bloques es... lento, al menos a través de JSON RPC. ¿Podrá su explorador obtener txs internos más rápido de alguna manera? Si es así, me gustaría mucho saber cómo...Nulik
geth
, por lo que es rápido, aunque todavía no me concentré en la optimización del código. El bloque de génesis con 8893 cuentas tarda unos minutos en procesarse, principalmente porque cada INSERCIÓN está separada y las búsquedas se realizan desde que reemplacé las direcciones conuint
ID, para ahorrar espacio y aumentar el rendimiento. He trabajado con Neo4j, es rápido, pero no tiene sentido exportar datos de un formato NoSQL (LevelDB) a otro formato NoSQL como Neo4j. La clave es exportarlo a SQL porque es mucho más flexible que NoSQL.maljordan
thomas jay prisa
juandodo