Testnets
web3.eth.getBalance(‘address’) 總是返回零
我正在嘗試將契約部署到“Ropsten Testnet”網路。我有一個帳戶,我通過水龍頭成功地將 6 個乙太幣轉移到了該帳戶。我賬戶的“ETH 餘額”顯示 6 個乙太幣,來自站點https://ropsten.etherscan.io/address/。但
web3.eth.getBalance('address')
由於某種原因,仍然給了我一個zero balance
松露控制台。因此,我無法將我的契約部署到“測試網”。我收到一個錯誤:
Error encountered, bailing. Network state unknown. Review successful transactions manually. Error: insufficient funds for gas * price + value
下面是我的 geth 命令。
geth --testnet --syncmode "fast" --rpc --rpcapi db,eth,net,web3,personal --cache=1024 --rpcport 8545 --rpcaddr 127.0.0.1 --rpccorsdomain "*" --bootnodes "enode://20c9ad97c081d63397d7b685a412227a40e23c8bdc6688c6f37e97cfbc22d2b4d1db1510d8f61e6a8866ad7f0e17c02b14182d37ea7c3c8b9c2683aeb6b733a1@52.169.14.227:30303,enode://6ce05930c72abc632c58e2e4324f7c7ea478cec0ed4fa2528982cf34483094e9cbc9216e7aa349691242576d552a2a56aaeae426c5303ded677ce455ba1acd9d@13.84.180.240:30303"
不知道為什麼 6 個乙太幣沒有反映在我的個人賬戶餘額上。
您的節點是否完全同步?我想這是你的 eth 餘額為 0 的主要原因。除非你同步到你收到測試 ether 的塊,否則餘額將為零。
為了部署合約,你可以使用MyEtherWallet和Remix。相同的步驟非常簡單。
- 從 remix 線上 Solidity 編譯器編譯您的程式碼。從這裡複製字節碼。
- 打開我的乙太錢包。轉到契約-> 部署契約。
- 從右上角選擇到 Ropsten 的網路。
- 粘貼字節碼並使用提供的任何方法解鎖您的錢包並部署合約。
否則,您也可以將 Remix 與 Metamask 一起使用。將您的帳戶導入 metamask 並直接從 remix 部署合約。
更新:
如何知道你的區塊鍊是否同步?
您可以通過以下方式檢查您的節點是否正在同步:
eth.syncing
如果您的節點未同步,則
eth.syncing
返回false
. 否則它會返回類似的輸出{ currentBlock: 10000, highestBlock: 1822434, knownStates: 1, pulledStates: 0, startingBlock: 90 }
這意味著您已經下載了 10000 個塊,其中總塊為 1822434。
您可以通過
transactionHash
. 如果您有交易雜湊,您可以使用它eth.getTransactionReceipt(txHash)
來檢查包含您的交易的區塊。如果您已將區塊鏈下載到該區塊,那麼您的餘額將出現。注意:如果您使用快速同步,您可能必須等到完整節點同步才能看到您的餘額不僅同步到包含您的交易的區塊。