Как предварительно выделить несколько учетных записей с эфиром для цепочки geth --dev?

Я пытаюсь создать частную цепочку с помощью geth --dev, в которой есть несколько учетных записей с большим количеством эфира. Кажется неясным, возможно ли это в соответствии с этим .

Вот что я пробовал на geth 1.4.x и 1.5:

geth --datadir data --dev --password <(echo -n foobar) account new
geth --datadir data --dev --password <(echo -n foobar) account new
geth --datadir data --dev --password <(echo -n foobar) account new

Затем инициализируйте так:

geth --datadir data --dev --password <(echo -n foobar) init custom.json

Затем запускаем geth с моим:

geth --datadir data --dev --password <(echo -n foobar) \
  --unlock 0,1,2 \
  --verbosity 6 \
  --rpc --rpcaddr "0.0.0.0" --rpccorsdomain '"*"' --nodiscover \
  --rpcapi "admin,db,eth,debug,miner,net,shh,txpool,personal,web3" \
  --mine --minerthreads 1 --gasprice 0

Затем я использую curlдля проверки баланса счетов. Результат есть 0x0.

Если я удалю эту --devопцию, баланс будет, но это займет вечность, так как затем будет использоваться настоящий DAG. Я не хочу этого, если для тестирования.

Как лучше всего получить несколько предварительно выделенных учетных записей с большим количеством эфира для частной цепочки разработки?

Спасибо!

@BokkyPooBah да, это работает, но это для частной сети без--dev
--devэто просто дополнительные настройки — см. github.com/ethereum/go-ethereum/blob/master/cmd/utils/… и github.com/ethereum/go-ethereum/blob/master/cmd/utils/… . maxpeers = 0, listenaddr =: 0, шепот включен, powtest - истина, и что-то связано с олимпийским блоком генезиса и ценой на газ. В противном случае вы можете использовать --dev, майнить и перемещать ETH на другую учетную запись. Кажется, нет удобного способа установить предварительно выделенные учетные записи с помощью --devнастройки.
@BokkyPooBah да, я знаю, что можно перемещать эфир, но поскольку раньше это работало, я хотел бы знать, может быть, это все еще работает, а если нет, то почему это больше не работает :)
Из github.com/ethereum/go-ethereum/releases ,With the coming of Geth 1.4 we've deprecated the --genesis <json_file> flag and replaced with a geth init <json file> sub command. This means that you'll no longer be able to mix the destructive --genesis flag with other flags.
@BokkyPooBah да, я тоже это читал. Я использую initс пользовательским генезисом, в котором есть учетные записи, как я хотел бы, в формате alloc. Т.е. сначала запускаю new accountпотом настраиваю генезис и потом запускаю init. Нет баланса, если у меня есть --devфлаг.
Я отозвал закрытое голосование.

Ответы (2)

Предполагается, что это можно сделать, отредактировав ваш собственный файл генезиса вашей тестовой сети. добавив что-то вроде:

//The genesis file
"alloc":{
        "address":{
                  "balance": "1000000"
                  }
        }
}

Источник: https://souptacular.gitbooks.io/ethereum-tutorials-and-tips-by-hudson/content/private-chain.html .

Это больше не работает для разработчиков... отсюда и мой вопрос.
Хорошо, если я найду какое-либо другое решение для этого, я скажу вам.
Пробовал немного назад, и это сработало для меня. Убедитесь, что вы правильно запускаете тестовую сеть с помощью своего пользовательского файла генезиса.
Я не использую тестовую сеть... --devи частную сеть
using --devзаставляет ваш private запускаться с предварительно настроенным набором опций. Таким образом, нет возможности предварительно выделить, поскольку вы используете не собственный файл Genesis.json, а предварительно настроенный.
он работал и был задокументирован, но изменен. причина --devинтересна из-за отсутствия DAG...

Я сделал это так:

  1. Инициализировать geth в режиме разработки с --флагом

    geth --dev --allow-insecure-unlock

    Никогда не делайте этого в режиме основной сети.

  2. Прикрепите консоль web3 js

  3. Запустите это, чтобы создать 10 разблокированных учетных записей и пополнить их из учетной записи по умолчанию:

    for (i=0;i<10;i++){ a = personal.newAccount('pwd') personal.unlockAccount(a,'pwd',0) web3.eth.sendTransaction({from:eth.accounts[0],to:eth.accounts[i+1],value:1000000000000}) }