В чем разница между web3.eth.accounts.create и web3.eth.personal.newAccount - PullRequest
0 голосов
/ 29 апреля 2018

Как я понимаю, при использовании web3.eth.accounts.create (), он не добавляет учетную запись в цепочку (я использую ganache-cli для тестирования), но web3.eth.personal.newAccount () делает .

Это основная цель или это баг? Есть ли другие отличия?

web3.js версия: 1.0.0-бета.34

1 Ответ

0 голосов
/ 29 апреля 2018

Обе версии создают новую учетную запись в блокчейне. Разница в том, как вы взаимодействуете с узлом и имеете доступ к закрытому ключу. Если у вас есть локальный узел, вы можете использовать web3.eth.accounts.create, который создаст учетную запись и предоставит вам доступ к генерации закрытого ключа, чтобы он мог храниться локально. Однако, поскольку возврат закрытого ключа через соединение небезопасен, вы никогда не должны использовать этот подход для создания учетной записи, если вы подключаетесь через такого поставщика, как Infura.

С другой стороны, вы можете использовать web3.eth.personal для создания новой учетной записи на удаленном узле. В этом случае закрытый ключ не будет возвращен вам, поэтому вы теряете некоторую гибкость при доступе к своей учетной записи. Если у вас нет закрытого ключа, вы не можете подписывать транзакции локально. Для запуска транзакций вам необходимо вызвать unlockAccount на удаленном узле. Обратите внимание, что вам необходимо отправить пароль для создания / разблокирования учетной записи, используя web3.eth.personal, поэтому вам все равно нужно убедиться, что вы используете безопасное соединение.

Просмотрите это Среднее сообщение в блоге для получения дополнительной информации.

...