Número de puerto para conectar web3 a mainnet usando Geth

Estoy tratando de conectar el objeto web3j a la red principal usando geth. No puedo usar infura porque estoy trabajando con la función observable de transacción de reproducción que no funciona con infura. Para conectarnos con la red de prueba usamos el puerto 8545, qué número de puerto debemos usar para conectarnos a la red principal . Además, ¿es necesario permitir que toda la cadena de bloques se sincronice antes de comenzar a usar la red principal?

Respuestas (1)

Puede ejecutar gethcon cualquier puerto que desee y conectarse web3ja ese puerto. La red getha la que se conecta no está definida por el puerto al que expone rpcapi:

https://github.com/ethereum/go-ethereum/wiki/Command-Line-Options

API AND CONSOLE OPTIONS:
  --rpc                  Enable the HTTP-RPC server
  --rpcaddr value        HTTP-RPC server listening interface (default: "localhost")
  --rpcport value        HTTP-RPC server listening port (default: 8545)

por lo que puede usar el mismo 8545 que para la red principal o, si lo desea, establecer su propia convención interna y ejecutar siempre gethcon otro puerto, como 8747, cuando se conecte a la red de prueba.

¿Es necesaria una sincronización completa antes de ejecutar el código?
Depende de tu código. Si quiere decir "implementar el código", entonces, AFAIK, sincronizar con al menos --syncmode=fastayuda a acelerar el proceso y hacerlo más confiable, pero --syncmode=lighttambién es suficiente.
No, solo quiero usar una función de transacción de reproducción que reproduzca el historial de transacciones entre 2 bloques.
Creo que sigue siendo un sí. Sincronicé antes de que los eventos funcionaran para mí. Consulte la pregunta relacionada: ethereum.stackexchange.com/q/29681/11501