Ich habe eine lightwallet.dat-Datei, die ich von ujomusic.com exportiert habe . Es hat ein anderes Format als das von Geth. Ich erwarte nicht, dass Geth es importiert, also kann ich ein Konto mit derselben Nummer wie dieses Konto erstellen und das Geld irgendwie mit dem privaten Schlüssel auf ein anderes Konto überweisen? Das ist, damit ich an die Ether auf dem Konto komme.
Kann ich den privaten Schlüssel im Klartext abrufen? Wenn ja, wie mache ich das?
Die Datei sieht so aus:
{
"encSeed":
{ "encStr":"U2FsdGVkX186DSL2uPp1vZO......","iv":"1cb31568e......","salt":"3a0d...."},
"encHdRootPriv": {"encStr":"U2FsdGVkX19FA0tZsR......","iv":"da5e226....","salt":"45034...."},
"hdIndex":1,
"encPrivKeys":{
"92f2f6b0cc1.......:{"key":"U2FsdGVkX183.....","iv":"5ec1968....","salt":"371302....."}},
"addresses":["0x92f2f6b......"],"keyHash":"f1af35a6222......",
"salt":{"words":[-918769374,1616628770,1822257817,983741528],"sigBytes":16}}
Basierend auf einer Antwort von Benutzer @Clovis:
npm install eth-lightwallet
node
>var lightwallet = require("eth-lightwallet")
>var upgrade = require("eth-lightwallet/lib/upgrade")
>var jsonStr='contents of ./app/users/admin/*.json file'
>var newJSON
>upgrade.upgradeOldSerialized(jsonStr, , function(err, tmpJSON) {newJSON=tmpJSON;console.log(newJSON);});
>keystore = lightwallet.keystore.deserialize(newJSON);
>var derivedKey;
>lightwallet.keystore.deriveKeyFromPasswordAndSalt('', '', function (err, pwDerivedKey) {derivedKey = pwDerivedKey;});
>var addresses = keystore.getAddresses();
>keystore.exportPrivateKey(addresses[0], derivedKey);
Ujo verwendet Lightwallet . Das Exportieren von Lightwallet und das anschließende Importieren in Geth sollte den Zugriff auf die Gelder erleichtern. (Alternativ können Sie weiterhin Lightwallet-APIs verwenden.)
Aus Lightwallet exportieren
Führen Sie in dem Verzeichnis, in dem sich Ihre lightwallet.dat befindet, die folgenden Befehle aus: Offensichtlich müssen Sie Ihre eigene Ujo-Adresse und Ihr eigenes Passwort verwenden . Dies setzt voraus, dass Ihr System bereits über NodeJS verfügt .
npm install eth-lightwallet
node
> var lightwallet = require('eth-lightwallet')
> newJSON = lightwallet.keystore.upgradeOldSerialized(JSON.parse(fs.readFileSync('lightwallet.dat')), <password>)
> keystore = lightwallet.keystore.deserialize(newJSON)
> keystore.exportPrivateKey(<address>, <password>)
'7...bla'
In diesem Beispiel ist 7...bla der private Schlüssel. (Ich habe die Ausgabe der anderen Befehle oben weggelassen, damit es klarer ist.)
Import nach Geth
Kopieren Sie den privaten Schlüssel
Fügen Sie den Schlüssel in eine Textdatei ein, sagen wir must_delete_this.txt und importieren Sie ihn mit geth:
geth account import must_delete_this.txt
Löschen Sie die Datei mit dem Namen must_delete_this.txt
deriveKeyFromPasswordAndSalt
gemäß Ihrem Kommentar zu verwenden ...Wenn Sie den privaten Schlüssel zur Hand haben, speichern Sie ihn einfach in einer Textdatei, sagen wir, damn_private_key
und importieren Sie ihn mit Geth:
geth account import /path/to/damn_private_key
Weitere Einzelheiten . Vergessen Sie nicht, die einfache private Schlüsseldatei auf Ihrer Festplatte zu löschen.
q9f
eth
Paulmorriss