web3.eth.blockNumber ist nicht definiert

  1. Ich habe eine laufende Blockchain auf 128.230.208.73 .
  2. Ich habe mit den folgenden Befehlen einen lokalen Knoten auf meinem System erstellt:

    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. In der Geth-Konsole füge ich Peer mit dem Befehl hinzu:

    admin.addPeer("enode://62bceb7302bf4368858a15c408ab8d57a263cb590fb4a6ccb588a1ecad42266772370c5d6b3cdaa1a1284c80f6f3fe959ba1453761482fbcc9920a4c2c7099ab@128.230.208.73:30303")
    
  4. Jetzt habe ich im selben Verzeichnis abc.js mit folgendem Code:

    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. Jetzt, im Terminal, laufe ich node abc.jsaus demselben Verzeichnis, aber ich bekommeblock number => undefined

Bitte teilen Sie mir mit, wo ich einen Fehler mache. Jede Hilfe ist willkommen. Danke schön.

Hinweis: (Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen).

Antworten (1)

Versuchen Sie stattdessen, einen asynchronen Aufruf wie folgt zu tätigen:

web3.eth.getBlockNumber(function(error, result){ 
  if (!error)
    console.log("block number => "result)
});
Ich erhalte folgenden Fehler: Es fehlt keine Klammer. web3.eth.getBlockNumber(callback(error, result){ if(!error) cosole.log(result) }) ^SyntaxError: missing ) nach Argumentliste bei new Script (vm.js:74:7) bei createScript (vm .js:246:10) bei Object.runInThisContext (vm.js:298:10) bei Module._compile (internal/modules/cjs/loader.js:657:28) bei Object.Module._extensions..js (internal /modules/cjs/loader.js:700:10) bei Module.load (internal/modules/cjs/loader.js:599:32) )
Könnten Sie bitte einmal bestätigen, dass meine (1) geth-Befehls- und (2) HTTP-Provider-Aussagen völlig korrekt sind oder nicht? Danke schön.
Ihre Antwort funktioniert. Ersetzen Sie einfach 'callback' durch 'function'. Könnten Sie mir bitte mitteilen, wie ich eine 'sendTransaction' über eine einfache Javascript-Datei ausführen kann (wie oben). Danke schön.