Geth eth.sendTransaction不起作用

时间:2018-01-10 05:49:55

标签: ethereum geth

我正在学习以太坊并尝试使用Geth 1.7.3稳定的私人网络。

帐户[0]在私人网络中拥有105个eth,我尝试发送如下所示的eth。

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

帐户[1]没有收到任何道德。

> 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

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

1 个答案:

答案 0 :(得分: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仍在运行时启动它。
  3. 应该接收任何待处理的交易。