web3.eth.blockNumber no está definido

  1. Tengo una cadena de bloques en ejecución en 128.230.208.73.
  2. Creé un nodo local en mi sistema usando los siguientes comandos:

    geth --datadir bkc_data --networkid 89992018 --bootnodes enode://9b46f0691dd12ae427adde13988a56e4691ddcba52f7d6f32d4a4129c709196d1ade96985a9522aa73cac957b666b1f41d69ebceae350643ae83217196e6240d@128.230.208.73:30301 --rpc --rpcaddr "127.0.0.1" --rpcport "8545" --rpcapi=eth,web3,net,personal,ssh,db,debug --nodiscover console 2>console.log
    
  3. Dentro de la consola geth, estoy agregando pares usando el comando:

    admin.addPeer("enode://62bceb7302bf4368858a15c408ab8d57a263cb590fb4a6ccb588a1ecad42266772370c5d6b3cdaa1a1284c80f6f3fe959ba1453761482fbcc9920a4c2c7099ab@128.230.208.73:30303")
    
  4. Ahora en el mismo directorio, tengo abc.js que tiene el siguiente código:

    var Web3 = require('web3');
    var web3 = new Web3(new Web3.providers.HttpProvider("http://127.0.0.1:8545"));
    
    console.log("block number => "+web3.eth.blockNumber);
    
  5. Ahora, en la terminal, me estoy ejecutando node abc.jsdesde el mismo directorio pero obtengoblock number => undefined

Por favor, hágamelo saber, donde estoy cometiendo un error. Cualquier ayuda es apreciada. Gracias.

Nota: (Avísame si necesitas más información).

Respuestas (1)

Intente en su lugar hacer una llamada asíncrona de la siguiente manera:

web3.eth.getBlockNumber(function(error, result){ 
  if (!error)
    console.log("block number => "result)
});
Recibo el siguiente error: No faltan paréntesis. web3.eth.getBlockNumber(devolución de llamada(error, resultado){ if(!error) cosole.log(resultado) }) ^SyntaxError: falta ) después de la lista de argumentos en el nuevo Script (vm.js:74:7) en createScript (vm .js:246:10) en Object.runInThisContext (vm.js:298:10) en Module._compile (internal/modules/cjs/loader.js:657:28) en Object.Module._extensions..js (interno /modules/cjs/loader.js:700:10) en Module.load (interno/modules/cjs/loader.js:599:32) )
¿Podría confirmar una vez que mi (1) comando geth y (2) las declaraciones del proveedor Http son totalmente correctas o no? Gracias.
Tu respuesta está funcionando. Solo necesita reemplazar 'devolución de llamada' con 'función'. ¿Podría decirme cómo puedo ejecutar una 'transacción de envío' a través de un archivo javascript simple (igual que el anterior). Gracias.