Имеет ли Web3.js возможность создавать новые учетные записи и разблокировать учетную запись в течение определенного периода времени для серии транзакций?

Я хочу создать новые учетные записи через мой веб-интерфейс Dapp и разблокировать определенную учетную запись, чтобы транзакции могли обрабатываться. Я не видел его в документации по web3.js, так что задайтесь вопросом, находится ли это на дорожной карте web3.js?

17 голосов | спросил Alan Wunsche 1 FebruaryEurope/MoscowbMon, 01 Feb 2016 05:24:44 +0300000000amMon, 01 Feb 2016 05:24:44 +030016 2016, 05:24:44

3 ответа


15

Обновленный ответ за 4 января 2018 года

Web3.js имеет полнофункциональную поддержку управления учетными записями начиная с версии 1.0.0, включая создание новой учетной записи . v1.0.0 все еще находится в стадии бета-тестирования, но близок к производству и уже является версией, выпущенной через npm. Спасибо Thom Ives за это.

Полный пример, полученный из документации web3.js:

web3.eth.accounts.create();
> {
    address: "0xb8CE9ab6943e0eCED004cDe8e3bBed6568B2Fa01",
    privateKey: "0x348ce564d427a3311b6536bbcff9390d69395b06ed6c486954e971d960fe8709",
    signTransaction: function(tx){...},
    sign: function(data){...},
    encrypt: function(password){...}
}

web3.eth.accounts.create('[email protected]#@#@±±±±!!!!678543213456764321§34567543213456785432134567');
> {
    address: "0xF2CD2AA0c7926743B1D4310b2BC984a0a453c3d4",
    privateKey: "0xd7325de5c2c1cf0009fac77d3d04a9c004b038883446b065871bc3e831dcd098",
    signTransaction: function(tx){...},
    sign: function(data){...},
    encrypt: function(password){...}
}

web3.eth.accounts.create(web3.utils.randomHex(32));
> {
    address: "0xe78150FaCD36E8EB00291e251424a0515AA1FF05",
    privateKey: "0xcc505ee6067fba3f6fc2050643379e190e087aeffe5d958ab9f2f3ed3800fa4e",
    signTransaction: function(tx){...},
    sign: function(data){...},
    encrypt: function(password){...}
}

Старый ответ от 2016 года

Web3.js не имеет встроенных возможностей и, вероятно, никогда не будет. Однако существуют специальные решения, такие как https://github.com/SilentCicero/ethereumjs-accounts/ ,

ethereumjs-accounts позволяет создавать учетные записи в браузере, а затем использовать эти адреса для транзакций web3.js. Частные ключи хранятся в localStorage и могут быть зашифрованы. Обязательно прочтите предупреждения о безопасности и поймите, что вы делаете.

https://metamask.io/ - это более широкий подход, чтобы сделать DApps доступным через обычный браузер. Он также содержит управление идентификацией (например, учетные записи).

На мой взгляд, такие решения, как ethereumjs-accounts и Metamask, могут быть хорошими на рампе, чтобы сделать DApps доступными для широкой аудитории, для транзакций с низкой стоимостью или даже только для доступа DApps только для чтения .

ответил AronVanAmmers 2 FebruaryEurope/MoscowbTue, 02 Feb 2016 14:34:57 +0300000000pmTue, 02 Feb 2016 14:34:57 +030016 2016, 14:34:57
10

Вряд ли функциональность, относящаяся к учетным записям, будет добавлена ​​в web3.js.

Mist - это браузер, предназначенный для запуска DApps и управления учетными записями. Он имеет mist.requestAccount , который, как представляется, является ожидаемым API DApps должен использовать.

Вероятно, главная причина, по которой Mist, а не web3.js, заключается в том, что сам браузер способен обеспечить большую безопасность, чем Javascript. Например, модальный диалог в Mist, который запрашивает пользователя для их учетной записи и пароля, сложнее подделать, манипулировать или перехватывать, чем диалог HTML /CSS /JS.

ответил eth 1 FebruaryEurope/MoscowbMon, 01 Feb 2016 13:01:07 +0300000000pmMon, 01 Feb 2016 13:01:07 +030016 2016, 13:01:07
1

После запроса обновления в моих комментариях к ответу Арона я сделал поиск с использованием модификации этого заголовка и обнаружил, что web3.js теперь фактически позволяет создавать новые учетные записи. СМОТРИТЕ ЗДЕСЬ . Из чтения этих web3.js docs для создания создается впечатление, что они созданы так же безопасно, как и MetaMask.

ответил Thom Ives 3 Jpm1000000pmWed, 03 Jan 2018 21:43:03 +030018 2018, 21:43:03

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132