Neue Adresse erstellen mit web3

Ich möchte, dass meine Website-Benutzer nach der Registrierung auf meiner Website eine neue Ethereum-Adresse haben.

Wie ist es mit web3 möglich, für jeden Benutzer meiner Website eine neue Ethereum-Adresse zu generieren?

Ist beim Erstellen einer neuen Adresse auch ein Passwort erforderlich?

Kann ich Beispielcode haben?

Antworten (2)

Sie können verwenden web3.eth.accounts.create(), um so etwas zu generieren

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

Ihre Benutzer müssen den privaten Schlüssel speichern, der ihre Brieftasche generiert.

Ich habe folgenden Code mit zurückgegebener Adresse ausprobiert. Aber wie kann ich diese Adresse in einer nodejs-Variablen erhalten?var web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:8545')); web3.eth.personal.newAccount('!@superpassword').then(console.log); > '0x1234567891011121314151617181920212223456'
Mit web3.eth.personal.newAccount()erstellt ein Konto auf Ihrem Server. Dies ist nicht das, was Sie möchten, da sich das Konto auf Ihrem Server befindet. Ich habe aus Ihrer Frage verstanden, dass Sie tatsächlich möchten, dass die Benutzer das Konto speichern.

Werfen Sie am besten einen Blick auf keythereum . Dieser Beispielcode generiert einen neuen Schlüssel und gibt die lesbare öffentliche Adresse aus.

var keythereum = require("keythereum");
var dk = keythereum.create();
var readableAddress = keythereum.privateKeyToAddress(dk.privateKey);
console.log("öffentliche Adresse:" + readableAddress);
console.log("privater Schlüssel in Hex:" + dk.privateKey.toString('hex')