Ich möchte über meine Dapp-Weboberfläche neue Konten erstellen und ein bestimmtes Konto entsperren, damit Transaktionen verarbeitet werden können. Ich habe es nicht in der web3.js-Dokumentation gesehen, also frage ich mich, ob das auf der web3.js-Roadmap steht?
Web3.js bietet ab Version 1.0.0 umfassende Unterstützung für die Kontoverwaltung, einschließlich der Erstellung eines neuen Kontos . v1.0.0 befindet sich noch in der Beta-Phase, steht aber kurz vor der Produktion und ist bereits die Version, die bis veröffentlicht wurde npm
. Danke Thom Ives für den Hinweis.
Vollständiges Beispiel aus der web3.js-Dokumentation:
web3.eth.accounts.create();
> {
address: "0xb8CE9ab6943e0eCED004cDe8e3bBed6568B2Fa01",
privateKey: "0x348ce564d427a3311b6536bbcff9390d69395b06ed6c486954e971d960fe8709",
signTransaction: function(tx){...},
sign: function(data){...},
encrypt: function(password){...}
}
web3.eth.accounts.create('2435@#@#@±±±±!!!!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){...}
}
Web3.js hat diese Fähigkeit nicht eingebaut und wird es wahrscheinlich nie haben. Es gibt jedoch benutzerdefinierte Lösungen wie https://github.com/SilentCicero/ethereumjs-accounts/ .
ethereumjs-accounts
ermöglicht es Ihnen, Konten im Browser zu erstellen und diese Adressen dann für web3.js
Transaktionen zu verwenden. Private Schlüssel werden aufbewahrt localStorage
und können verschlüsselt werden. Lesen Sie unbedingt die Sicherheitswarnungen und verstehen Sie, was Sie tun.
https://metamask.io/ ist ein breiterer Ansatz, um DApps über einen normalen Browser zugänglich zu machen. Es enthält auch Identitätsmanagement (z. B. Konten).
Meiner Ansicht ethereumjs-accounts
nach können Lösungen wie und Metamask ein guter Einstieg sein, um DApps einem breiten Publikum zugänglich zu machen, für Transaktionen mit geringem Wert oder sogar nur für den schreibgeschützten Zugriff auf DApps.
Es ist unwahrscheinlich, dass Funktionen in Bezug auf Konten zu web3.js hinzugefügt werden.
Mist ist ein Browser zum Ausführen von DApps und zum Verwalten von Konten. Es mist.requestAccount
scheint die erwartete API zu sein, die DApps verwenden sollten.
Wahrscheinlich ist der Hauptgrund, warum Mist und nicht web3.js, dass ein Browser selbst mehr Sicherheit bieten kann als Javascript. Beispielsweise ist ein modaler Dialog in Mist, der einen Benutzer zur Eingabe seines Kontos und Passworts auffordert, schwieriger zu fälschen, zu manipulieren oder abzufangen als ein HTML/CSS/JS-Dialog.
Nachdem ich in meinen Kommentaren zu Arons Antwort eine Aktualisierung angefordert hatte, habe ich eine Suche mit einer Modifikation dieses Titels durchgeführt und festgestellt, dass web3.js Ihnen jetzt tatsächlich erlaubt, neue Konten zu erstellen. SIEHE HIER . Wenn Sie diese web3.js-Dokumente zum Erstellen lesen, scheint es, dass Konten auf eine Weise erstellt werden, die so sicher ist wie MetaMask.
Sie können sich ethers.js ansehen
Ethers.js hat ein vollständiges Wallet-Management, getrennt von Geth (wie es sein sollte, da es nur Krypto ist). Sie können dann einen Anbieter an Ihr Wallet anhängen (web3 macht es im Grunde umgekehrt). Sie fügen dann diese Brieftasche + Anbieter an das Vertragsartefakt an und Sie haben eine Vertragsinstanz, die Sie aufrufen können.
Thomas Ives
lanoxx
web3.personal.newAccount
Funktion.