Solana RPC-Methoden & Dokumentation
Interagieren Sie direkt mit Solana-Knoten über die JSON RPC API mittels HTTP- und Websocket-Methoden.
Konfiguration der Zustandsbestätigung
Für Vorabprüfungen und Transaktionsverarbeitung wählen Solana-Knoten aus, welchen Bank- Zustand sie abfragen, basierend auf einer vom Client festgelegten Bestätigungsanforderung. Die Bestätigung beschreibt, wie endgültig ein Block zu diesem Zeitpunkt ist. Bei der Abfrage des Ledger-Zustands wird empfohlen, niedrigere Bestätigungsstufen zu verwenden, um Fortschritte zu melden, und höhere Stufen, um sicherzustellen, dass der Zustand nicht rückgängig gemacht wird.
In absteigender Reihenfolge der Bestätigung (von am meisten finalisiert bis am wenigsten finalisiert) können Clients folgendes angeben:
finalized
- der Knoten fragt den neuesten Block ab, der von der Supermehrheit des Clusters als mit maximaler Sperrung bestätigt wurde, was bedeutet, dass der Cluster diesen Block als endgültig anerkannt hatconfirmed
- der Knoten fragt den neuesten Block ab, für den von der Supermehrheit des Clusters abgestimmt wurde.- Es berücksichtigt Stimmen aus Gossip und Replay.
- Es zählt keine Stimmen für Nachfolger eines Blocks, sondern nur direkte Stimmen für diesen Block.
- Diese Bestätigungsstufe erfüllt auch die Garantien der "optimistischen Bestätigung" in Version 1.3 und höher.
processed
- der Knoten fragt seinen neuesten Block ab. Beachten Sie, dass der Block vom Cluster immer noch übersprungen werden kann.
Für die Verarbeitung vieler abhängiger Transaktionen in Serie wird empfohlen,
confirmed
Bestätigung zu verwenden, die Geschwindigkeit mit
Rollback-Sicherheit ausbalanciert. Für absolute Sicherheit wird empfohlen,
finalized
Bestätigung zu verwenden.
Standard-Commitment
Wenn keine Commitment-Konfiguration angegeben wird, verwendet der Knoten
standardmäßig
finalized
commitment
Nur Methoden, die den Bank-Status abfragen, akzeptieren den Commitment-Parameter. Diese sind in der API-Referenz unten gekennzeichnet.
RpcResponse-Struktur
Viele Methoden, die einen Commitment-Parameter verwenden, geben ein RpcResponse JSON-Objekt zurück, das aus zwei Teilen besteht:
context
: Eine RpcResponseContext JSON-Struktur, die einslot
-Feld enthält, bei dem die Operation ausgewertet wurde.value
: Der von der Operation selbst zurückgegebene Wert.
Geparste Antworten
Einige Methoden unterstützen einen encoding
-Parameter und können Konten- oder
Anweisungsdaten im geparsten JSON-Format zurückgeben, wenn
"encoding":"jsonParsed"
angefordert wird und der Knoten über einen Parser für
das besitzende Programm verfügt. Solana-Knoten unterstützen derzeit JSON-Parsing
für die folgenden nativen und SPL-Programme:
Programm | Kontenstatus | Anweisungen |
---|---|---|
Address Lookup | v1.15.0 | v1.15.0 |
BPF Loader | n/a | stable |
BPF Upgradeable Loader | stable | stable |
Config | stable | |
SPL Associated Token Account | n/a | stable |
SPL Memo | n/a | stable |
SPL Token | stable | stable |
SPL Token 2022 | stable | stable |
Stake | stable | stable |
Vote | stable | stable |
Die Liste der Konten-Parser finden Sie hier, und die Anweisungs-Parser hier.
Filterkriterien
Einige Methoden unterstützen die Bereitstellung eines filters
-Objekts, um die
im RpcResponse JSON-Objekt zurückgegebenen Daten vorab zu filtern. Die folgenden
Filter existieren:
-
memcmp: object
- vergleicht eine bereitgestellte Bytefolge mit den Daten des program account an einem bestimmten Offset. Felder:offset: usize
- Offset in die Daten des program account, um den Vergleich zu beginnenbytes: string
- zu vergleichende Daten als kodierte Zeichenfolgeencoding: string
- Kodierung für Filterbytes
Daten, entweder "base58" oder "base64". Die Datengröße ist auf maximal 128 dekodierte Bytes begrenzt.
NEU: Dieses Feld und die base64-Unterstützung allgemein sind nur in solana-core v1.14.0 oder neuer verfügbar. Bitte weglassen, wenn Knoten mit früheren Versionen abgefragt werden
-
dataSize: u64
- vergleicht die Länge der Daten des program account mit der angegebenen Datengröße
Is this page helpful?