ERROR DE CONEXIÓN: no se pudo conectar al nodo http://localhost:8545

He comenzado geth usando a continuación:

geth --rpc --rpccorsdomain * --rpcport 8545 --rpcapi personal,web3,eth,net

y este es mi código web3.js:

<script src="/bower_components/web3/dist/web3.min.js"></script>
<script type="text/javascript">
    function send() {
        if (typeof web3 !== 'undefined') {
            web3 = new Web3(web3.currentProvider);
        } else {
            web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
        }
        if(!web3.isConnected()) {
            console.log('not-connected');
        } else {
           console.log('connected');
        }
    }
</script>

primero console.log dijo "not-connected"y recibió un error:Error: CONNECTION ERROR: Couldn't connect to node http://localhost:8545.

verifique si el puerto está abierto usando netstat cmd
si, esta abierto. tcp 0 0 127.0.0.1:8545 0.0.0.0:* ESCUCHAR 1521/geth
prueba 127.0.0.1 en lugar de localhost
lo hice pero el mismo error
instale metamask y verifique si se conecta a su nodo en modo localhost
Ponga comillas simples alrededor * geth --rpc --rpccorsdomain '*' --rpcport 8545 --rpcapi personal,web3,eth,netProbé su código y me dio un error de dominio cruzado con el '*' todo funciona bien, recibo el mensaje conectado

Respuestas (1)

Sólo un pequeño error de alcances. Su variable web3 queda fuera del alcance tan pronto como se declara.

<script src="/bower_components/web3/dist/web3.min.js"></script>
<script type="text/javascript">
    var web3;
    function send() {
        if (typeof web3 !== 'undefined') {
            web3 = new Web3(web3.currentProvider);
        } else {
            web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
        }
        if(!web3.isConnected()) {
            console.log('not-connected');
        } else {
           console.log('connected');
        }
    }
</script>

Tenga en cuenta que he declarado var web3explícitamente fuera de la función

no funciona. ¿Puedes decirme cómo puedo conectar una URL remota? por ejemplo: web3 = new Web3(new Web3.providers.HttpProvider(" 110.249.35.167:8545" ));
const web3 = new Web3(new Web3.providers.HttpProvider(' 110.249.35.167:8545' ));