1

我正在学习以太坊并尝试使用 Geth 1.7.3-stable 的专用网络。

Accounts[0] 在专用网络中有 105 个 eth,我尝试如下发送 eth。

但是 eth.sendTransaction 命令只返回“0xaf571929f95ddeaab8761d719dba3c852f5d4f9895968a905c275561eaf57ae6”。

而且accounts[1] 没有收到任何eth。

> eth.getBalance(eth.accounts[0])
105000000000000000000
> personal.unlockAccount(eth.accounts[0])
Unlock account 0x24636f1423f131f5441fbee83323c53c59af247d
Passphrase: 
true
>  eth.sendTransaction({from: eth.accounts[0], to: eth.accounts[1], value: web3.toWei(2, 'ether')})
"0xaf571929f95ddeaab8761d719dba3c852f5d4f9895968a905c275561eaf57ae6"
> 
> eth.getBalance(eth.accounts[1])
0

有谁知道如何解决这一问题?

4

1 回答 1

1

首先,检查并确保交易到达您的区块链。使用设置监听器

web3.eth.filter("pending").watch(
    function(error,result){
        if (!error) {
            console.log('Tx Hash: ' + result);
        }
    }
)

设置侦听器后,sendTransaction再次运行并确认您正在获取日志语句。如果是这样,您就正确地提交了交易。

正如评论中提到的,接下来的事情是确保交易被挖掘。有几种方法可以做到这一点:

  1. 您可以在 geth 控制台中进行挖掘。如果您没有在控制台模式下启动 geth,则需要重新启动它,或者通过geth attach另一个终端附加到它。在 geth 控制台中,您可以使用miner.start(). 它将返回 null,但您应该在 geth 输出中看到表明挖掘已经开始的活动。要停止挖掘,请键入miner.stop()
  2. 您可以下载单独的挖矿应用程序,例如 ethminer。只需下载它并在geth仍在运行时启动它。

应提取任何待处理的交易。

于 2018-01-10T08:20:25.813 回答