Cómo acceder a testRPC que está en un servidor

¡todas! Construí un dAPP para una competencia y solo lo usé para probarlo en testRPC. Ahora, cuando envié la aplicación, los organizadores querían una versión en ejecución para que la probaran. Intenté implementarlo en un servidor que tenía testRPC ejecutándose, pero cuando hice una transacción, no funcionó. Creé el front end en ReactJS y los contratos en Solidity. Implementé los contratos en testRPC y luego intenté implementar las transacciones.

Pero nuestro dAPP:

Esta es una aplicación de transmisión de información con cuatro entidades. Funciona como; un usuario se registra usando el método convencional (usando MongoDB). Tenemos cuatro cuentas testRPC a través de las cuales hacemos todas las transacciones. De esta forma, el usuario no necesita tener blockchain en su escritorio. Pero la transacción nunca sucede. Sugerencia es bienvenida.

Esto es muy importante para mí, y estaría agradecido si alguien me puede ayudar en este sentido.

¿Qué no funcionó específicamente cuando intentaste enviar una transacción?
@MatthewSchmidt comenzamos a probar RPC e implementamos los contratos en el servidor. Luego, con alguna otra máquina, fuimos a la IP pública de nuestra aplicación e intentamos crear un usuario. (La cosa aquí es que, para crear un usuario, estamos usando una de las cuentas de testrpc). Cuando hago clic en enviar, la transacción nunca ocurre. Información adicional: estoy ejecutando testrpc solo en el servidor. Si hay algo (implementación en ropsten/kovan) que pueda hacer para que la aplicación funcione, entonces también estaría bien.
Necesito urgentemente que esta aplicación funcione en una IP pública.

Respuestas (2)

Sospecho que lo que está experimentando es algún tipo de problema de NAT: testrpc no configura el reenvío de puertos automáticamente, por lo que el puerto 8545 en la IP pública no tiene nada que ver con el puerto 8545 en la computadora en la que se ejecuta testrpc. Por lo tanto, ninguna conexión.

La forma más sencilla es configurar el enrutador para realizar el reenvío de puertos, pero eso está más allá del alcance de este intercambio de pila específico. superuser.com probablemente sería de más ayuda.

Otra opción es, por supuesto, ejecutarlo en Ropsten, ya sea instalando un nodo en la computadora de cada usuario o, posiblemente, usando infura.io. Si está utilizando infura, es posible que deba rediseñar ligeramente su aplicación, ya que no albergará claves privadas.

Gracias por la respuesta. Encontré una manera simple y agregaré la respuesta en unas pocas horas.

Estoy usando el servidor Ubuntu para instalar testRPC y ejecutarlo usando masilla en un VMware (máquina virtual) y luego le doy una dirección IP interna y una dirección IP externa por razones de seguridad. Para acceder a él, todo lo que tiene que hacer es llamarlo a través de esta función: web3.setProvider(new web3.providers.HttpProvider(' Dirección del servidor '));