He creado mi red privada de blockchain Ethereum. Desde diferentes servidores puedo conectarme y agregarme a la red como par sin ningún problema.
La forma en que ejecuto mi servidor:
geth --targetgaslimit "994712388" --port 3000 --networkid 23422 --identity node1
--verbosity 3 --nodiscover --nat none --datadir="/home/miner/MyEthereumEbloc"
--rpccorsdomain '*' --rpc --rpcaddr "localhost" --
rpcport="8545" --nodiscover --maxpeers=6 --ipcapi "admin,eth,web3" --autodag
Como puede ver, el puerto RPC está abierto:
$ telnet localhost 8545
Trying 127.0.0.1...
Connected to localhost.
Dentro de mi consola geth:
> admin.startRPC("127.0.0.1", 8545, "*", "web3,net,eth")
HTTP RPC already running on localhost:8545
http://localhost:8545
es el puerto RPC de mi software de nodo Ethereum que se ejecuta localmente. Pero en mi navegador http://localhost:8545
veo el siguiente error:
{"jsonrpc":"2.0","error":{"code":-32600,"message":"eof"}}
Dentro de la consola geth, donde ejecuto mi nodo de arranque; Estoy ejecutando el siguiente código para comunicarme con mi nodo local:
var Web3 = require("web3");
var web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:8545'));
web3.isConnected() //returns false
Pero web3.isConnected()
sigue devolviendo falso .
[P] Sé que hay mucha documentación relacionada con la conexión web3 al nodo local y he seguido todas las sugerencias. Pero no puedo solucionar el problema de conexión web3 al que me enfrento. ¿Cómo podría solucionar este problema? Gracias por su valioso tiempo y ayuda.
He hecho las sugerencias de las siguientes preguntas: ¿Cómo conectar un sitio web a un nodo geth? , https://forum.ethereum.org/discussion/3414/step-by-step-guide-to-connect-a-web-site-to-a-geth-node , https://gitter.im/ethereum /web3.js/archives/2015/12/31 .
EDITAR: para otros usuarios que leen esto: la solución es encontrar en los comentarios de esta respuesta: los parámetros de lanzamiento eran incorrectos.
Se supone que las solicitudes http al nodo no deben devolver nada útil, está totalmente bien que obtenga esa respuesta en su navegador. Suponiendo que desea desarrollar una dApp para su cadena privada, le recomiendo usar https://github.com/ConsenSys/truffle : le dice a truffle que se comunique con su nodo y luego maneja toda la comunicación entre su sitio web y su cadena privada. . la documentación es realmente útil: https://truffle.readthedocs.io/en/latest/
Que te diviertas ! :)
Mi problema es: estaba tratando de ejecutar todos los comandos web3 dentro geth
de la consola, donde debería haber usado nodejs con la biblioteca web3.
He creado el nombre del archivo: script.js:
var Web3 = require('./node_modules/web3/index.js');
var web3 = new Web3();
web3.setProvider(new web3.providers.HttpProvider('http://localhost:8545'));
if(!web3.isConnected())
console.log("not connected");
else
console.log("connected");
En mi terminal cuando ejecuto: nodejs script.js
da la salida como connected
.
Basado en este hilo: https://github.com/ethereum/remix/issues/588 , he intentado lo siguiente:
geth --datadir ./bc-data --networkid 9001 --nodiscover --rpc --rpccorsdomain "*" --desbloquear 0
Después de este remix podría conectarse a - http://localhost:8545
Creo que el problema es que solo has habilitado --ipcapi
. Debe habilitar --rpcapi
junto con seleccionar qué opciones desea como admin
eth
y web3
. Espero que lo haya resuelto.
Por ejemplo:geth --rpcapi eth,web3 --rpc
Enables the admin, official DApp and miner API over the IPC interface
Enables the official DApp and web3 API over the HTTP interface
alper
Nikita Fuchs
Nikita Fuchs
alper
Nikita Fuchs
--rpc --rpcport 8545 --rpcaddr 0.0.0.0 --rpccorsdomain "*" --rpcapi "eth,web3"
y reemplace todo de acuerdo con sus valores. tiene un --rpccorsdomain '*' innecesario antes de --rpc, que también está mal escrito.