web3 no está definido

Leí otras preguntas como esta aquí, pero ninguna resolvió mi problema. Tengo una ventana de terminal en la que ejecuté

geth --networkid=4 --rpc --rpcport 8545 --datadir=$HOME/.rinkeby --syncmode=light --ethstats='yournode:Respect my authoritah!@stats.rinkeby.io' --bootnodes=enode://a24ac7c5484ef4ed0c5eb2d36620ba4e4aa13b8c84684e1b4aab0cebea2ae45cb4d375b77eab56516d34bfbd3c1a833fc51296ff084b770b94fb9028c4d25ccf@52.169.42.101:30303?discport=30304

basado en la sección connect yourself de la cadena de prueba Rinkeby .

También tengo una aplicación de nodo que tiene

var Web3 = require('web3');
var web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));

y que estoy ejecutando después de iniciar geth.

La terminal inicia geth sin problemas y salidas INFO [07-12|15:40:40] HTTP endpoint opened: http://127.0.0.1:8545. No entiendo por qué mi aplicación de nodo tiene problemas para conectarse.

El error ReferenceError: web3 is not definedes

Hola. ¿Tienes la web3biblioteca instalada en tu sistema? (por ejemplo, ¿Usar nodo?)
¿ Necesitas --rpcapi="web3"int el comando geth?
Sí. Lo conecté con éxito antes con la misma aplicación, pero ahora quería conectarlo a la cadena Rinkeby.
Solo intenté ahora con eso (comando completo:) geth --networkid=4 --rpc --rpcapi="web3" --rpcport 8545 --datadir=$HOME/.rinkeby --syncmode=light --ethstats='yournode:Respect my authoritah!@stats.rinkeby.io' --bootnodes=enode://a24ac7c5484ef4ed0c5eb2d36620ba4e4aa13b8c84684e1b4aab0cebea2ae45cb4d375b77eab56516d34bfbd3c1a833fc51296ff084b770b94fb9028c4d25ccf@52.169.42.101:30303?discport=30304y arrojé el mismo error.
Creo que te falta el indicador --rpcaddr "127.0.0.1"?
intente: Web3 (nuevo Web3.providers.HttpProvider (" 127.0.0.1: 8545 " ))
Intenté hacer ambos. Se agregó --rpcaddr "127.0.0.1"jsut antes de --rpcporty se agregó Web3(new Web3.providers.HttpProvider("127.0.0.1:8545")). Todavía arroja el error.
intente var Web3 = require('ethereum_web3.js');y verifique si ha instalado todo correctamente, no sé si es su caso o no, pero aquí vi esto "Incluir web3.min.js en su archivo html. (no requerido para el paquete de meteoros)", revisalo.

Respuestas (1)

He lanzado geth como

geth --networkid=4 --datadir=$HOME/.rinkeby --syncmode=light --bootnodes=enode://a24ac7c5484ef4ed0c5eb2d36620ba4e4aa13b8c84684e1b4aab0cebea2ae45cb4d375b77eab56516d34bfbd3c1a833fc51296ff084b770b94fb9028c4d25ccf@52.169.42.101:30303?discport=30304 --rpc --rpcapi=eth,web3, net, personal, ssh, db, consola de depuración

Y tenga este archivo de prueba index.js

var Web3 = require('web3');
var web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));

console.log(web3.eth.blockNumber);

Y generará el bloque actual en ejecuciónnode index.js

Ok, esto parece funcionar con una advertencia: estoy recuperando el número de bloque 0y eso no cambia. ¿No debería ser descargar la cadena de bloques rinkeby y devolverme el aumento de los números de bloque?
Lo descubrí, el comando debería ser geth --networkid=4 --datadir=$HOME/.rinkeby --syncmode=light --bootnodes=enode://a24ac7c5484ef4ed0c5eb2d36620ba4e4aa13b8c84684e1b4aab0cebea2ae45cb4d375b77eab56516d34bfbd3c1a833fc51296ff084b770b94fb9028c4d25ccf@52.169.42.101:30303?discport=30304 --rpc --rpcapi=eth,web3,net,personal,ssh,db,debug console(la diferencia es " .rinkeby" vs " rinkeby"). El bloque era cero porque no detectaba el archivo rinkeby.json (génesis). Su respuesta es correcta, pero por consistencia, la cambiaría porque así es como se presenta en los tutoriales de rinkeby. ¡Gracias!
Tienes razón, tendría que ejecutar init sin el '.' así que funcionó para mí.