Майнинг в частной сети не дает эфир на счет coinbase

Я относительно новичок в Ethereum. Я пытался настроить частную тестовую сеть. Я использовал следующий файл генезиса:

{
"config": {
"chainId": 15, 
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"difficulty": "20",
"gasLimit": "2100000",
"alloc": {
"7df9a875a174b3bc565e6424a0050ebc1b2d1d82": 
    { "balance": "300000" },
"f41c74c9ae680c1aa78f42e5647a62f353b7bdde": 
    { "balance": "400000" }
}
}

Для инициализации и запуска сети использовались следующие команды:

geth --datadir "C:\Users\Mahe\Desktop\Ethereum\data" init "Path_to_genesis" 
geth --datadir "C:\Users\Mahe\Desktop\Ethereum\data" --nodiscover --networkid 65535 --port 60303 --rpc --rpccorsdomain "*" --rpcapi "web3,eth,personal,miner" console 2>Node2.log

Сеть успешно запустилась, после чего я создал новую учетную запись и установил ее как coinbase. eth.coinbase установлен и дает адрес созданной учетной записи. Однако увеличение количества эфира в созданной учетной записи не происходит, когда функция майнинга eth.getBalance(eth.accounts[0]возвращает 0) . Любая помощь будет оценена по достоинству.

ты начал майнить?
Да. Баланс не увеличился.

Ответы (2)

Я думаю, вам нужно начать майнить, чтобы получить эфир. Как описано здесь на странице github, вы можете сделать это с помощью --mineпараметра командной строки в начале или miner.start()в консоли во время работы.

Майнинг процессора с помощью Geth

В Frontier, первом выпуске Ethereum, вам просто понадобится а) графический процессор и б) клиент Ethereum, Geth. Майнинг на ЦП будет возможен, но слишком неэффективен, чтобы иметь какую-либо ценность.

На данный момент Geth включает в себя только майнер CPU, и команда тестирует ветку майнера GPU, но она не будет частью Frontier.

Реализация Ethereum на C++ также предлагает GPU-майнер как часть Eth (его CLI), AlethZero (его GUI) и EthMiner (автономный майнер).

ПРИМЕЧАНИЕ. Перед началом майнинга убедитесь, что ваш блокчейн полностью синхронизирован с основной цепочкой, иначе вы не будете майнить в основной цепочке.

Когда вы запускаете свою ноду ethereum с помощью geth, она по умолчанию не занимается майнингом. Чтобы запустить его в режиме майнинга, вы используете параметр командной строки --mine. Параметр -minerthreads можно использовать для установки количества параллельных потоков майнинга (по умолчанию это общее количество ядер процессора).

geth --mine --minerthreads=4

Вы также можете запускать и останавливать майнинг ЦП во время выполнения с помощью консоли. miner.start принимает необязательный параметр для количества потоков майнера.

> miner.start(8)
true
> miner.stop()
true

Основываясь на обсуждении в комментариях, вам нужно,

  • правильно настроить учетную запись coinbase и
  • держите майнер запущенным в течение достаточного времени, а не останавливайте его быстро

чтобы получить эфир на свой счет.

В настоящее время у меня есть только одна учетная запись, и eth.coinbase дает адрес этой учетной записи (это eth.accounts[0]). Coinbase успешно настраивается на эту учетную запись.
eth.blockNumber тоже возвращает 0
Прошло около 4 минут после запуска miner.start, а номер блока по-прежнему равен нулю. eth.hashrate по-прежнему возвращает 0.

Проблема заключалась в том, что блоки не добывались. Первый блок был добыт после 20 минут работы miner.start(), после чего скорость генерации блока сократилась. Баланс на счете coinbase начал увеличиваться, когда блоки были успешно добыты.

когда блок добывается, вы получаете сообщение в консоли
Нет, не знаем. Однако мы получаем сообщение, когда контракт заминирован.
ну тогда увеличьте уровень детализации
@Nulik, как повысить уровень детализации?
добавить -verbosity 6в командную строку