So entsperren Sie das Konto mit dem privaten Schlüssel anstelle des Passworts

Ich arbeite mit https://github.com/ethereum/wiki/wiki/JSON-RPCapi + curl .

Und die Implementierung einer benutzerdefinierten API mit dieser PHP-Bibliothek: https://github.com/Achse/geth-jsonrpc-php-client

Die folgende Methode funktioniert gut für mich zum Entsperren vor der Transaktion:

$ curl -X POST --data '{"jsonrpc":"2.0","method":"personal_unlockAccount","params":["0x7642b...", "password", 3600],"id":67}' http://localhost:8545

Aber ich möchte das Konto mit private keynicht durch entsperren password. Gibt es also eine Möglichkeit, unlock accountTransaktionen mit private key.

Verwenden Sie stattdessen eine Rohtransaktion
@BadrBellaj kannst du bitte ein Beispiel geben, wie ich es mit curl + json rpc verwenden kann

Antworten (2)

Sie können eine Rohtransaktion wie hier beschrieben generieren oder myetherwallet verwenden, um die signierte Rohtransaktion zu erhalten, und dann anrufen

curl -X POST --data '{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":[{raw_transaction}],"id":1}'

// Result
{
  "id":1,
  "jsonrpc": "2.0",
  "result": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"
}

wie hier erklärt

Außerdem kann, wie @yogesh in seinem Kommentar unten erwähnt hat, Ethereumjs-Build für den Browser verwendet werden, um die Rohtransaktion (auf Client-Seite) zu erstellen.

Ich verwende curl + json rpc, also wie kann ich es erreichen?
Nein, ich möchte keine Drittanbieter wie myetherwallet verwenden, also suche ich eine Lösung zum Generieren von raw_transaction by api
In meiner Antwort habe ich auf einen Blog-Beitrag verwiesen, in dem erklärt wird, wie man es mit einigen Apis macht. medium.com/blockchain-musings/…
Dies sind js-Bibliotheken, also wie kann ich eine Verbindung mit PHP-Code herstellen.
Vielen Dank für Ihre Unterstützung @Badr. Ich habe die folgende Bibliothek für den Browser-Build github.com/ethereumjs/browser-builds verwendet und Hash für rawtransaction erhalten. Aktualisieren Sie einfach Ihre Antwort mit diesen Daten, damit ich Ihre Antwort akzeptieren kann, damit andere Entwickler davon profitieren.
@YogeshKarodiya schön, das zu hören, ich werde deinen Link hinzufügen
@BadrBellaj - Sie können in dem Medium.com-Beitrag sehen, auf den Sie verlinkt haben, dass der Code zum Erstellen der Rohtransaktion mit dem privaten Schlüssel signiert werden muss und der private Schlüssel aus der Schlüsseldatei durch den Code in der abgerufen wird vorheriger Block, der das Passwort verwendet. Wenn OP also nicht bereits den unverschlüsselten privaten Schlüssel aus der Schlüsseldatei importiert hat, wird das Passwort zum Signieren der Transaktion benötigt.
Wer hat angenommen, dass der private Schlüssel verschlüsselt ist? Hast du es in der Frage gelesen?
Ich kann mich irren, aber nach dem Rep-Score von OP scheint er neu zu sein, was mich denken lässt, dass er vielleicht nicht erkennt, dass nur das Besitzen der Schlüsseldatei nicht bedeutet, dass Sie den privaten Schlüssel haben. Zumindest sollten wir darum bitten, zu überprüfen, ob OP bestätigen kann, dass er einen unverschlüsselten privaten Schlüssel hat. Hat er gesagt, dass es unverschlüsselt ist? (Sie sind ein hochrangiges Mitglied, daher habe ich den unhöflichen Ton in Ihrem Kommentar nicht erwartet.)
@AjoyBhatia mein Freund, ich wollte nicht unhöflich sein, es tut mir leid, wenn es für dich so klang. Ich habe mich nur gefragt, ob ich etwas übersehen habe.

Sie müssen Ihr Konto nicht entsperren, wenn Sie Ihren privaten Schlüssel kennen. Der Grund dafür ist, dass Transaktionen mit Ihrem privaten Schlüssel signiert werden und das Entsperren Ihres Kontos erforderlich ist, um Ihren privaten Schlüssel aus Ihrer Schlüsseldatei zu erhalten. Wenn Sie also Ihren privaten Schlüssel bereits kennen, müssen Sie Ihr Konto nicht entsperren.

Sie können myetherwallet.com oder ethychat.io verwenden, um Transaktionen mit Ihrem privaten Schlüssel durchzuführen.

Wenn Sie Transaktionen mit JSON-RPC und Ihrem privaten Schlüssel durchführen möchten, müssen Sie wahrscheinlich eine signierte Transaktion erstellen und diese mit eth_sendRawTransaction senden.

Wie kann ich eine Transaktion mit einem privaten Schlüssel signieren?
Ist es nicht so, dass der private Schlüssel in einem verschlüsselten Format gespeichert wird und das Passwort benötigt wird, um ihn zu entschlüsseln? Selbst zum Signieren der Transaktion wird also das Passwort benötigt, es sei denn , das OP verfügt über den unverschlüsselten privaten Schlüssel (den er nicht ausdrücklich erwähnt hat).