¿La ejecución local de un servidor Geth RPC también requiere tener un nodo Ethereum completo?

He estado tratando de aprender sobre contratos inteligentes y tratando de trabajar con algunos ejemplos. Específicamente, encontré este sobre la creación de Oracle: https://github.com/axic/tinyoracle . Las instrucciones especifican iniciar un servidor RPC usando el comando

geth --rpc --rpcaddr "127.0.0.1" --rpcport "8545" --unlock 0

Noté que esto produjo una gran cantidad de resultados, incluidas líneas como las siguientes

WARN [06-14|15:17:56] Synchronisation failed, retrying         err="block download canceled (requested)"
WARN [06-14|15:18:19] Synchronisation failed, retrying         err="block download canceled (requested)"
INFO [06-14|15:19:18] Imported new block headers               count=192 elapsed=969.455ms number=192 hash=5221b7…6c6c14 ignored=0
INFO [06-14|15:19:18] Imported new block receipts              count=192 elapsed=1.612ms   number=192 hash=5221b7…6c6c14 size=768.00B ignored=0
INFO [06-14|15:19:20] Imported new block headers               count=192 elapsed=26.918ms  number=384 hash=5377ec…85cf44 ignored=0
INFO [06-14|15:19:20] Imported new block receipts              count=192 elapsed=1.504ms   number=384 hash=5377ec…85cf44 size=768.00B ignored=0
INFO [06-14|15:19:21] Imported new block headers               count=192 elapsed=27.780ms  number=576 hash=28e01b…6ebada ignored=0

Esto parece continuar. Eventualmente interrumpí el proceso. No estoy 100% seguro de lo que está sucediendo, pero parece que se está descargando un nodo Ethereum en mi máquina local. ¿Hay alguna manera de ejecutar un servidor Geth RPC sin descargar un nodo completo?

Respuestas (2)

Geth

Cuando usa geth y no especifica la red, usa la red predeterminada, que es la red principal, por lo que comenzará a descargar la cadena de bloques. Al ejecutar ese comando, también puede especificar con qué red está hablando.

por ejemplo, https://github.com/ethereumproject/go-ethereum/wiki/Command-Line-Options#external-chain-configuration-and-handling-multiple-chains

Ganache-Cli - Recomendación de Desarrollo Local

Si está comenzando y solo está haciendo desarrollo local, mi recomendación es simplemente ejecutar un nodo local usando algo como Ganache-CLI , ya que encontré que el conjunto de herramientas para desarrolladores con Truffle es bastante bueno. https://github.com/trufflesuite/ganache-cli

Implementación de red: si aún desea utilizar Geth

Alternativamente, si aún desea sincronizar la cadena de bloques en su máquina para implementarla en la red, puede hacerlo, pero le sugiero que use un método de poda (que ahorrará tiempo y espacio). Esta pregunta ayuda a responder cómo hacer esto. ¿Qué es el modo de poda de luz de paridad?

blockchain es una lista en continuo crecimiento de registros (bloques)

Esto nunca dejará de sincronizarse porque los bloques crecen continuamente