Blog
10 Min. Lesezeit
|
10. Jan. 2023

JSON-RPC-Blockchain-Nodes: PHP-, Python- & JS-Guide

JSON-RPC-Blockchain-Nodes: PHP-, Python- & JS-Guide — vollständiger Artikel im Chaingateway-Blog: APIs, Zahlungen & Integrationen.

Kapitel
C
Chaingateway Team
Blockchain-Experten

JSON-RPC ist ein Remote-Procedure-Call(RPC)-Protokoll, das in JSON kodiert ist. Es ist ein leichtgewichtiges Protokoll, das die Übertragung von Daten zwischen einem Client und einem Server erlaubt, in diesem Fall einem Blockchain-Node. JSON-RPC wird typischerweise genutzt, um mit dezentralen Systemen wie Blockchain-Netzwerken zu interagieren, und kann verwendet werden, um Transaktionen zu senden, die Blockchain nach Informationen abzufragen und Konten im Netzwerk zu verwalten.

In diesem Artikel gehen wir auf die Grundlagen von JSON-RPC ein und wie es genutzt werden kann, um mit Blockchain-Nodes zu interagieren. Wir stellen außerdem Beispielcode in PHP, Python und JavaScript bereit, damit Sie loslegen können.

Was ist JSON-RPC?

JSON-RPC ist ein Remote-Procedure-Call-Protokoll, das JSON nutzt, um seine Aufrufe und Antworten zu kodieren. Es ist darauf ausgelegt, leichtgewichtig und einfach zu implementieren zu sein, was es zu einer beliebten Wahl für die Interaktion mit dezentralen Systemen wie Blockchain-Netzwerken macht.

Das JSON-RPC-Protokoll definiert eine Reihe von Befehlen, oder „Methoden”, die genutzt werden können, um mit dem Blockchain-Node zu interagieren. Diese Methoden umfassen das Senden von Transaktionen, das Abfragen der Blockchain nach Informationen und das Verwalten von Konten im Netzwerk.

Wie man JSON-RPC nutzt, um mit Blockchain-Nodes zu interagieren

Um JSON-RPC zu nutzen, um mit einem Blockchain-Node zu interagieren, müssen Sie zunächst eine Verbindung zum Node herstellen. Die Verbindung kann mit verschiedenen Bibliotheken in unterschiedlichen Programmiersprachen aufgebaut werden, etwa über HTTP, WebSockets usw.

Sobald die Verbindung hergestellt ist, können Sie damit beginnen, JSON-RPC-Requests an den Blockchain-Node zu senden. Die Requests haben die Form von JSON-Objekten und enthalten ein Feld „method”, das die auszuführende Aktion angibt, sowie ein Feld „params”, das alle zusätzlichen Informationen enthält, die zur Erfüllung des Requests nötig sind.

Die Response liegt ebenfalls im JSON-Format vor; sie enthält ein Feld „result”, das das Ergebnis des Requests enthält, und ein Feld „error”, das eventuell aufgetretene Fehlermeldungen enthält.

Hier ist ein Beispiel für einen JSON-RPC-Request, um die aktuelle Blocknummer auf der Ethereum-Blockchain abzurufen:

<pre class="wp-block-code">```
`{ "jsonrpc": "2.0", "method": "eth_blockNumber", "params": [], "id": 1}`
Und so sieht die Antwort aus
```
`{    "jsonrpc": "2.0",    "id": 1,    "result": "0x4b7"}`
```
```

## Beispielcode in PHP, Python und JavaScript

Hier ist ein Beispiel, wie man einen JSON-RPC-Request mit der PHP-`curl`-Bibliothek sendet:

```
```
``
```
```

Hier ist ein Beispiel, wie man einen JSON-RPC-Request mit der Python-`requests`-Bibliothek sendet:

```
```
import requests headers = {'content-type': 'application/json'}
data = '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
response = requests.post('http://localhost:8545', headers=headers, data=data)

print(response.json())
```
```

Und hier ist ein Beispiel, wie man einen JSON-RPC-Request mit der JavaScript-Funktion `fetch` sendet:

```
```
fetch('http://localhost:8545',{
 method: 'POST',
 headers: { 'Content-Type': 'application/json' },
 body: JSON.stringify({
 jsonrpc: '2.0',
 method: 'eth_blockNumber',
 params: [],
 id: 1
 })
})
 .then(response => response.json())
 .then(console.log)
 .catch(console.error);
```
```

Es sei angemerkt, dass die obigen Beispiele einfache GET-Requests sind, um die aktuelle Blocknummer auf der Ethereum-Blockchain abzurufen; Sie können verschiedene andere Methoden nutzen, um andere Aufgaben zu erledigen, wie das Senden von Transaktionen, das Erstellen von Konten und vieles mehr.

Mit einem Verständnis der Grundlagen von JSON-RPC und wie es genutzt werden kann, um mit Blockchain-Nodes zu interagieren, sind Sie in der Lage, dezentrale Anwendungen zu erstellen, die von der Sicherheit und Unveränderlichkeit profitieren, die Blockchain-Technologie bietet. Mit Hilfe des bereitgestellten Beispielcodes können Sie problemlos JSON-RPC-Requests an einen Blockchain-Node senden und mit dem Aufbau Ihrer eigenen dezentralen Anwendung beginnen.

Möchten Sie das selbst umsetzen? API-Key erhalten — 7 Tage kostenlos testen, keine Karte nötig — oder werfen Sie einen Blick auf Blockchain-API für die vollständige Endpoint-Referenz.

C
Chaingateway Team
Blockchain-Experten

Das Chaingateway-Team hat es sich zur Aufgabe gemacht, die Blockchain-Integration für Entwickler weltweit zu vereinfachen.