Использование java web3j для создания кошелька, но как тогда подключиться к частному запущенному блокчейну?

Я использую java web3j lib и создаю новый файл кошелька, используя:

WalletUtils.generateFullNewWalletFile()

С участием:

Web3j web3 = Web3j.build(new HttpService());

... Я подключаюсь к своей локальной частной цепочке блоков, на которой запущен geth.

Вопрос в том. Как я могу добавить тест в свой кошелек и каков контекст между моим локальным кошельком и клиентом geth, который я использую.

Как я могу подключить кошелек, созданный web3j, к клиенту geth?

С участием:

WalletUtils.loadCredentials()

.. Я могу получить публичный адрес кошелька, но учетная запись не указана в клиенте geth, когда я использую:

web3.ethAccounts().send().getAccounts()

Как это сочетается?


person ArgV    schedule 14.03.2018    source источник


Ответы (1)


Первоначальный эфир необходимо указать в genesis.json при инициализации вашей частной цепочки блоков.

Простой пример:

{
    "config": {
        "chainId": 29462
    },
    "difficulty": "0x400",
    "gasLimit": "0x8000000",
    "alloc": {
        "d69cc234de15189f0ba998a41421961e89837fc5": {
            "balance": "30000000000000000000000000000"
        }
    }
}

Указанный здесь адрес необходимо создать до инициализации блока генезиса. Вы можете создать адрес вручную, используя geth, или вы можете использовать тот, который вы создали с помощью WalletUtils.generateFullNewWalletFile(). Здесь важно убедиться, что вы используете тот же каталог хранилища ключей при выполнении команд geth. Все, что destinationDirectory вы передали в generateFullNewWalletFile(), нужно передать в geth с параметром --keystore.

Если вы уже создали свой частный блокчейн и выделили эфир для другой учетной записи, чем та, которую вы создали в web3j, убедитесь, что вы используете один и тот же каталог хранилища ключей для обеих учетных записей (и каталог соответствует параметру --keystore) и просто перенесите ether из вашей исходной учетной записи в новую, которую вы создали.

person Adam Kipnis    schedule 14.03.2018
comment
Спасибо за объяснение :) - person ArgV; 15.03.2018