Problemas de conexión con we3.providers

Estoy usando la API web3 y estoy definiendo la instancia web3, configurando un proveedor como este:

if (typeof web3 !== 'undefined') {
  web3 = new Web3(web3.currentProvider);
} else {
  // set the provider you want from Web3.providers
  web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
}

Pero muchas veces tengo problemas con la conexión, estoy trabajando con la red de prueba de Ropsten y solo la uso para probar y aprender sobre Dapps. ¿Cuál es una buena alternativa para solucionar estos problemas de conexión? ¿Quizás Infura? o existen algunos consejos para solucionarlo?

puede usar el navegador solidity para verificar la conexión con su nodo local si se conecta todo está bien; de lo contrario, verifique la configuración local (puerto del nodo, RPC activado, firewall, etc.)
la conexión tal vez no sea el problema porque puedo trabajar, pero este último mes en algún momento no puedo conectarme, obtuve errores como "Conexión perdida" o "no encontré la conexión" espero 5 minutos y se enciende otra vez y funciona de nuevo, pero prefiero no quedarme esperando...

Respuestas (1)

Si está utilizando esto con fines de aprendizaje y prueba, le sugiero que use testrpc , que simula el nodo Ethereum. Es rápido y se ejecuta localmente, por lo que no encontrará ningún problema de conexión.

¿Con testrpc puedo verificar más tarde las transacciones en etherscan.io? no se como funciona...
No, es una herramienta de prueba que se ejecuta localmente y las transacciones no se envían a una cadena de bloques pública. Recomendaría comenzar con testrpc para desarrollar, probar y refactorizar sus contratos y solo después de que sean lo suficientemente maduros para publicarlos en Blockchian público. Infura es una buena opción para conectarse a un nodo público. También geth en modo ligero o paridad con poda se sincronizan extremadamente rápido. Este enfoque de pruebas locales primero le ahorrará mucho tiempo.
Ummm ok, ¿y cómo puedo saber si las funciones de contacto funcionan bien? Por ejemplo, una transacción de eth o algo similar como esto con testrpc.
Primero, tendrá registros de testrpc en la consola informando el estado de la transacción y el gas consumido (similar a lo que puede obtener de testrpc). En segundo lugar, puede escribir pruebas para consultar si los estados del contrato se actualizaron correctamente.
Entonces, ¿los contratos pueden almacenar cosas, por ejemplo, un cambio de estado, como en la red RosptenTest?
Sí, todos los aspectos de Ethereum Virtual Machine funcionan exactamente igual.
Ok amigo, gracias por la explicación, lo intentaré ;)