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?
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'