Geth eth.sendTransaction не работает

Я изучаю Ethereum и пробовал частную сеть с Geth 1.7.3-stable.

Аккаунты [0] имеют 105 eth в частной сети, и я попытался отправить eth, как показано ниже.

Но команда eth.sendTransaction возвращает только «0xaf571929f95ddeaab8761d719dba3c852f5d4f9895968a905c275561eaf57ae6».

А учетные записи [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

Кто-нибудь знает, как это исправить?


person tmrex7    schedule 10.01.2018    source источник
comment
Из того, что вы описали, похоже, что вы запускаете свой узел (постоянные функции возвращаются правильно), но не выполняете никаких транзакций.   -  person Adam Kipnis    schedule 10.01.2018
comment
Да, я сделал файл генезиса и создал частную сеть. Я пробовал start mining раньше, но вернул ноль. Это причина? Что я должен делать дальше?   -  person tmrex7    schedule 10.01.2018
comment
Я понял, что ошибался. Раньше майнинг не начинался. Теперь я получаю правильный результат. Но miner.start() по-прежнему не отвечает.   -  person tmrex7    schedule 10.01.2018


Ответы (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 еще работает.

Любые незавершенные транзакции должны быть получены.

person Adam Kipnis    schedule 10.01.2018