почему у web3 есть 2 разных метода создания учетной записи

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

Я использую версию web3 1.x, поэтому у нее есть метод, web3.eth.accounts.create()который возвращает что-то вроде этого:

{
    address: "0xb8CE9ab6943e0eCED004cDe8e3bBed6568B2Fa01",
    privateKey: "0x348ce564d427a3311b6536bbcff9390d69395b06ed6c486954e971d960fe8709",
    signTransaction: function(tx){...},
    sign: function(data){...},
    encrypt: function(password){...}
}

Также в web3 есть метод, web3.personal.newAccount()который возвращает только адрес учетной записи.

Теперь я хочу знать, почему их два и какая между ними разница?

Ответы (1)

web3.personal.newAccount()вызовы personal_newAccountна вашем узле

Взято из geth doc

Создает новый закрытый ключ и сохраняет его в каталоге хранилища ключей. Файл ключа зашифрован заданной парольной фразой. Возвращает адрес новой учетной записи.

web3.eth.accounts.create()генерирует данные учетной записи без связи с узлом ethereum. Вот почему он возвращает закрытый ключ, потому что нет менеджера учетных записей для обработки ваших учетных записей / ключей.

таким образом, учетная запись, созданная через web3.eth.accounts.create(), не является используемой учетной записью? что вы имели в виду по поводу менеджера по работе с клиентами.
Оба аккаунта можно использовать. Одна создается внутри узла, с которым общается web3 (get/parity), другая учетная запись возвращается вам, но не управляется узлом.
Что именно вы подразумеваете под «управляемым».
geth сохраняет, шифрует, загружает и разблокирует учетные записи для вас. Они сохраняются в виде файлов в вашей локальной файловой системе. Вам не нужно знать, где они находятся, потому что geth знает и управляет взаимодействием с вашими учетными записями. С web3.eth.accounts.create()гет не знает про аккаунт. Вы несете ответственность за хранение, загрузку и использование созданной учетной записи.
Итак, если я прав, если учетной записью X не управляет geth, запуск web3.eth.accountsне вернет X.
Правильно, без управления не вернут
спасибо за ответ, но как мне использовать и заставить неуправляемую учетную запись управляться определенным узлом? Есть ли способ получить закрытый ключ управляемой учетной записи, созданной web3?