Cómo usar TestRPC con NodeJS/Heroku

Tengo una instancia de nodo que ejecuta testrpc en localhost: 8545, puedo acceder a ella cuando la ejecuto desde otra instancia de nodo desde la misma computadora y le hago llamadas web3.

const port = (process.env.PORT || 8545);
server.listen(port, function(err, blockchain) {})

Entiendo con heroku, todo está mapeado al puerto: 80

web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545")); 
// this works fine

web3 = new Web3(new Web3.providers.HttpProvider("http://192.168.1.254:80")); 
// this should, but does not work

¿Cómo resuelvo este problema o qué PAAS me ayudaría a acceder a una red de prueba personal que se ejecuta en una máquina remota?

Respuestas (2)

Usando heroku y ventana acoplable:

Para compilar el contenedor Docker desde el origen:

clon de git https://github.com/ethereumjs/testrpc.git && cd testrpc docker build -t ethereumjs/testrpc .

Modifique el archivo acoplable:

CMD ["nodo", "./build/cli.node.js"] en lugar de ENTRYPOINT ["nodo", "./build/cli.node.js"]

Modifique cli.js, la línea 64 se convierte en:

puerto: argv.p || puerto.argv || proceso.env.PORT || "8545",

Crea una nueva aplicación heroku luego

heroku git:remote -a tu_nueva_aplicación_creada

entonces :

contenedor heroku: iniciar sesión

contenedor de heroku: empujar web

Et voila! Se está ejecutando un testrpc nuevo en el puerto 80.

Misma respuesta que la anterior pero:

CMD ["node", "./cli.js"] instead of ENTRYPOINT ["node", "./build/cli.node.js"]

En el paso 3, edita cli.js, por lo que debe cargarlo. Si intenta editar cli.node.js y mantener el paso 2 igual, obtendráError: Cannot find module './package.json'