¿Cómo conectar web3js a mainnet o testnet?

Puede que sea una pregunta muy básica. Pero esto es lo que quiero lograr:

Quiero hacer una aplicación web que interactúe con un contrato en testnet/mainnet. Puedo ver en la documentación que debe proporcionar el puerto local a web3js para conectarse a una instancia/simulación local de ethereum en ejecución:

web3.setProvider(new web3.providers.HttpProvider('http://localhost:8545'));

Pero quiero conectarlo a testnet o mainnet. ¿Es posible hacer eso sin alojar realmente un nodo real (prueba o principal)?

Y si la única forma de hacerlo es ejecutar un nodo real en una computadora local, ¿cuál es la mejor manera de conectarse con web3? Leí en alguna parte que RPC no es tan seguro.

Por favor, guíeme en estas preguntas de novato.

¡Gracias de antemano!

Respuestas (1)

web3js se conectará a su nodo local o distante de ethereum (es obvio mientras necesita su cuenta para enviar transacciones). Entonces, para usar la red principal o la red de prueba, configure su cliente ethereum para hacerlo, por ejemplo geth --testnet.

Con respecto a la seguridad: debe proteger su nodo contra la conexión entrante al puerto RPC configurando su Firewall para permitir solo las conexiones que se originan desde la computadora local o desde una IP de la lista blanca .

lea: https://blog.ethereum.org/2015/08/29/security-alert-insecurely-configured-geth-can-make-funds-remotely-accessible/

¿La configuración de ethereum usando geth --testnetdescarga la cadena de bloques completa en la máquina local?
sí, no te preocupes por el tamaño porque acaba de iniciar y actualizar el cliente.