Möglich, einen REST-Aufruf innerhalb der Geth-Konsole zu tätigen?

Ich möchte Ereignisse in einem Vertrag abhören und sie dann an einen Ruheendpunkt senden.

  1. Ist es möglich, einen REST-Aufruf innerhalb der Geth-Konsole zu tätigen?

  2. Wenn ich alternativ eine Knotenanwendung habe und web3 lade, wie kann ich eine Verbindung zum Testnet herstellen?

Erwägen Sie, die Antwort als akzeptiert zu markieren. Sie können dies tun, indem Sie das Häkchen unter Stimmen aktivieren.

Antworten (1)

Ja, Sie können RESTAnrufe geth consolespeziell über die JavaScript-Konsole von go-ethereum tätigen

Wie in der offiziellen Anleitung erklärt

Es ist möglich, den Satz von APIs anzugeben, die über eine Schnittstelle mit dem --${interface}apiBefehlszeilenargument für den Go-Ethereum-Daemon angeboten werden. Wo ${interface}kann rpc für die http-Schnittstelle oder ipc für einen Unix-Socket unter Unix oder Named Pipe unter Windows stehen.

Um festzustellen, welche APIs eine Schnittstelle bereitstellt, kann die Modultransaktion verwendet werden, z. B. über eine IPC-Schnittstelle auf Unix-Systemen:

echo '{"jsonrpc":"2.0","method":"modules","params":[],"id":1}' | nc -U $datadir/geth.ipc

Die Verbindung zum Testnet wird über geth hergestellt, nicht über die web3-Schnittstelle. und web3 wird für jede Geth-Instanz verwendet, unabhängig davon, ob sie testiert oder live ist.

Lesen Sie Verbinden mit dem Netzwerk

Die Methode wäre, dass geth -—networkid="12345" consoleSie mehr über den benutzerdefinierten Genesis-Block usw. im Wiki lesen können.

Wenn ich Sie also richtig verstehe, steht diese API in meinem Geth-Client, wenn ich ihn mit jsonrpc für die Kommunikation mit Ethereum gestartet habe, meinem eigenen Code zur Verfügung, der in Geth ausgeführt wird, um meine eigenen Aufrufe an andere Nicht-Ethereum-Rest-Server durchzuführen? (Ich möchte Vertragsereignisse über einen Restanruf an einen anderen Server aufzeichnen)
@JamesB Es ist nicht erforderlich, andere Dienste abzufragen, Ihr Knoten ist syncmit allen anderen Knoten verbunden, das ist beabsichtigt.
Ich möchte einen Restanruf (mit Javascript) an einen anderen Nicht-Ethereum-Dienst senden, um Ereignisse aus der Blockchain aufzuzeichnen (nicht an einen anderen Geth-Knoten). Der Code zum Abhören des Ereignisses befindet sich in meinem lokalen Geth-Knoten und ruft dann extern auf zur Blockchain über http
Sie können die loadScriptFunktion der Geth-Javascript-Konsole verwenden, um eine reguläre Javascript-Datei in die Konsole zu laden und Funktionen auszuführen. versuche es mal so.
Danke, obwohl es so aussieht, als ob weder die XMLHttpRequestKlasse noch das http-Modul verfügbar sind, sieht es also nicht so aus, als würde dies fliegen. Ich sollte einfach in der Lage sein, Geth lokal auszuführen, das sich mit dem Testnetz verbindet, und dann kann ich eine Knoten-App ausführen, die lädt web3.jsund sich mit Geth als Gateway verbindet und dann alle meine restlichen und Blockchain-Interaktivitäten erledigt, richtig?
@JamesB Ja, das stimmt. Ich lag falsch. Das Einfügen web3.jsin Ihre eigene HTML-Datei oder eine Node-App funktioniert einwandfrei.