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 hat
  • confirmed - 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 ein slot-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:

ProgrammKontenstatusAnweisungen
Address Lookupv1.15.0v1.15.0
BPF Loadern/astable
BPF Upgradeable Loaderstablestable
Configstable
SPL Associated Token Accountn/astable
SPL Memon/astable
SPL Tokenstablestable
SPL Token 2022stablestable
Stakestablestable
Votestablestable

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 beginnen
    • bytes: string - zu vergleichende Daten als kodierte Zeichenfolge
    • encoding: string - Kodierung für Filter bytes 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?

Inhaltsverzeichnis

Seite bearbeiten