Persönliche API-Dokumentation für JSON RPC

Gibt es Dokumentation und Beispiele für die Verwendung der persönlichen API über JSON-RPC?

Ich habe das gefunden .

Es sagt jedoch nicht, wie die Methode in JSON-RPC aussehen würde.

Antworten (3)

Die JSON-RPC-Spezifikation von Ethereum https://github.com/ethereum/wiki/wiki/JSON-RPC enthält keine persönlichen APIs, da die persönlichen APIs eine Erweiterung von Geth sind .

Die JSON-RPC-Spezifikation stellt dar, was ein konformer Ethereum-Client implementieren sollte.

@BokkyPooBah hat auf andere hilfreiche Antworten verlinkt, die Risiken bei der Verwaltung von Konten über JSON-RPC erwähnen, und wahrscheinlich der Grund, warum die Spezifikation nicht die Implementierung von ihnen durch alle konformen Clients (wie cpp-ethereum, pyethapp) befürwortet.

Dass die „persönlichen“ Methoden nicht in der JSON-RPC-Spezifikation aufgeführt sind, liegt daran, dass es sich nicht um „offizielle“ API-Methoden handelt, dh sie sind nicht notwendigerweise auf allen Clients implementiert.

Was Sie suchen, ist die Verwaltungs-API des GO-Ethereum-Clients , die die "persönlichen" Befehle enthält. Beachten Sie, dass dies nur für geth gilt und nicht unbedingt auf allen Clients auf die gleiche Weise unterstützt wird.

Es wird im Allgemeinen nicht empfohlen, diese Befehle über RPC bereitzustellen, da lokale Anwendungen über IPC kommunizieren können und entfernte, möglicherweise nicht autorisierte Clients auf RPC zugreifen können, und da es über Klartext-HTTP übertragen wird, sollten Passwörter darüber sorgfältig behandelt werden.

Wenn Sie sicher sind, dass Sie wissen, was Sie tun, können Sie den RPC-Zugriff auf Verwaltungsbefehle aktivieren, indem Sie das --rpcapiFlag in geth verwenden.

Sobald sie aktiviert sind, können Sie auf sie genauso zugreifen, wie Sie auf jede Methode über RPC zugreifen würden, zum Beispiel:

curl -X POST --data '{"jsonrpc":"2.0","method":"personal_unlockAccount","params":["0x4bb96091ee9d802ed039c4d1a5f6216f90f81b01","myPassword"],"id":1}' localhost:8545`

Die Antworten auf Ihre Frage finden Sie in den folgenden Fragen und Antworten:

Nicht allzu nützlich, außer '{"jsonrpc":"2.0","method":"personal_newAccount","params":["password"],"id":1}' zu sehen, was zeigt, dass das rpc-Methodenformat für persönliche Anrufe.
Ich bin auch nicht einverstanden mit der Idee, dass dies unsicher und daher nicht gut dokumentiert ist. Viele Systeme erfordern diese Funktionalität, und obwohl ich sie nicht standardmäßig aktiviert haben würde, denke ich, dass sie offener und dokumentierter sein sollte.
Ich habe mich über die Sicherheit gewundert, da das Aktivieren der RPC-API über 127.0.0.1 nur Verbindungen vom lokalen Computer zulässt, von dem aus die IPC-API auch Zugriff bietet. Ein Unterschied besteht darin, dass auf die RPC-API von verschiedenen Webseiten innerhalb des Browsers aus zugegriffen werden kann, auf die die IPC-API aufgrund von Browser-Sandboxing schwerer zugänglich wäre. Aber in einer kontrollierten Serverumgebung bieten sowohl die RPC-API als auch die IPC-API den gleichen Zugriff. Dieser Speedbump trägt jedoch zum Schutz von Benutzern bei, die mit den Sicherheitsimplikationen der JSON-RPC-API weniger vertraut sind.
Eines der Probleme ist, dass über RPC gesendete Passwörter nicht verschlüsselt sind, sodass die Verwendung der persönlichen Befehle Passwörter sichtbar lassen könnte, wenn Sie nicht aufpassen