Wie kann ich das Internet verwenden, um Transaktionen auszuführen, die ich von der Geth-Konsole aus mache?

Ich habe gelesen, dass RPC-Kommunikation vom Internet an die Geth-Konsole weitergeleitet werden kann. Aber ich habe keinen Hinweis darauf, wie ? Wie kann ich rpc portTransaktionen über das Internet ausführen, die ich mit der Geth-Konsole durchgeführt habe.
Gibt es eine Möglichkeit, auf mein Konto zuzugreifen und Transaktionen von einem Webbrowser aus durchzuführen? PS: Ich weiß, dass es Sicherheitsprobleme gibt, und die Verwendung ist nicht sicher.

Antworten (1)

Ich habe gelesen, dass RPC-Kommunikation vom Internet an die Geth-Konsole weitergeleitet werden kann. Aber ich habe keinen Hinweis darauf, wie?

geth lauscht standardmäßig auf localhost-Port 8545. Um auf eine Instanz von geth zugreifen zu können, die auf einem separaten Computer ausgeführt wird, müssen Sie sie mit den folgenden aktivierten RPC-Modulen starten:

--rpcapi "admin,personal,db,eth,net,web3"
  • Personal und Admin führen Kontoverwaltungsvorgänge aus (Anmeldeinformationen ändern, entsperren, erstellen usw.)
  • db verwaltet die lokale Kopie der Blockchain
  • eth ist ein Objekt, mit dem transaktionsbezogene Vorgänge verwaltet werden (Transaktionen durchführen, Quittungen abrufen, Vertragsbereitstellung usw.).
  • net ist ein Netzwerkmanager-Modul (zeigt die Anzahl der verbundenen Peers an, ermöglicht das Trennen eines Peers usw.)
  • und web3 ist ein js-Framework, das verwendet wird, um mit geth über JSON-Objekte zu kommunizieren, die von einem Client empfangen werden

Beachten Sie, dass jeder Peer mit Fernzugriff auf die jeweilige Maschine mit dem Client interagieren kann, was bedeutet, dass ein Angreifer, wenn ein Konto entsperrt ist, sein gesamtes Ether durch eine Transaktion leeren kann, die als JSON-Objekt an den Port gesendet wird, auf dem Geth lauscht.

Sie können den RPC-Port auf einen benutzerdefinierten Wert festlegen:

--rpc --rpcport "8080"

und da Sie einen Browser verwenden möchten, müssen Sie auch ein domänenübergreifendes Befehlszeilenargument angeben, um die Richtlinie des gleichen Ursprungs zu umgehen, die die meisten Browser implementieren.

--rpccorsdomain "*"

Gibt es eine Möglichkeit, auf mein Konto zuzugreifen und Transaktionen von einem Webbrowser aus durchzuführen? PS: Ich weiß, dass es Sicherheitsprobleme gibt, und die Verwendung ist nicht sicher.

Um mit der Geth-Instanz auf einem Remote-Computer von einem Browser aus zu interagieren , können Sie das web3- Framework verwenden und es auf die Netzwerkadresse und den Port verweisen, auf dem Geth lauscht:

if (typeof web3 !== 'undefined') {
  web3 = new Web3(web3.currentProvider);
} else {
  // set the provider you want from Web3.providers
  web3 = new Web3(new Web3.providers.HttpProvider("http://<remote_address>:<remote_port>"));
}
Der Standardport ist 8545, nicht <s>8585</s>.
Danke für die Unterstützung. Ich habe rpcportund auch rpccprsdomainschon eingestellt, aber mein Hauptproblem ist der Zugriff auf mein Konto von einem Remote-Computer über einen Webbrowser (nicht über die Befehlszeile). Können Sie bitte den zweiten Teil Ihrer Antwort erläutern, wo ich dieses Skript verwenden muss und welche Schritte ich benötige, um Transaktionen mit einem Webbrowser durchzuführen. Ich habe mit der Geth-Konsole und Mist auf mein Konto zugegriffen, ich habe viele Tutorials dazu gefunden, aber jetzt möchte ich einen Schritt voraus sein, um eine webbasierte GUI zur Durchführung von Transaktionen zu verwenden, aber ich bekomme keine Tutorials oder Erklärungen dazu. Irgendeine Hilfe?