Go-Ethereum
為什麼 web3.eth.getBlockNumber().then(console.log) 返回 0
我在 Ubuntu 18.04 中建構了一個乙太坊全節點。
geth
正在通過以下命令執行:
nohup geth --rpcaddr 127.0.0.1 -rpcport 8545 --rpc -rpcapi "wb3,admin,eth,personal,net" --ws --wsaddr 127.0.0.1 --wsport 8546 --wsorigins "*" --datadir "/data/ethereum" --syncmode fast --maxpeers 10000 --cache 8196 >> geth.log 2>&1 &
一行 geth.log 內容:
INFO [06-06|00:59:22.250] Imported new block headers count=1 elapsed=6.793ms number=10206927 hash="92683d…04062d"
truffle
配置如下:development: { host: "127.0.0.1", // Localhost (default: none) port: 8545, // Standard Ethereum port (default: none) network_id: "*", // Any network (default: none) }
在松露控制台中,當我使用命令時
web3.eth.getBlockNumber().then(console.log)
,它只是返回0 undefined
為什麼不是 10206927(來自 geth.log)或接近的數字?
提前致謝!
可能是
web3.eth.getBlockNumber().then(console.log)
返回0
,因為geth
尚未開始塊同步,但只有標頭導入。當標頭的導入完成並且塊同步將開始時,
web3.eth.getBlockNumber().then(console.log)
可能會返回一個非零值。希望這可以幫助。
如果您的節點正在同步,請執行以下操作:
this.web3.eth.isSyncing((error: Error, sync: any) => { if (!error && sync) { console.log(sync.currentBlock); console.log(sync.highestBlock); } });