getSlot gibt den aktuellen slot zurück, der laut RPC node ein bestimmtes commitment level erreicht hat. Diese grundlegende Methode hilft dir, den aktuellen Zustand der Blockchain aus Sicht des node zu verstehen.
Häufige Anwendungsfälle
- Aktuellen Netzwerkfortschritt abrufen: Ermittle den neuesten slot, den der node verarbeitet oder bestätigt hat.
- Synchronisierung von nodes prüfen: Vergleiche die slots verschiedener nodes, um ihren Synchronisierungsstatus einzuschätzen.
- Vorgänge zeitlich einordnen: Verwende den aktuellen slot als Referenzpunkt für Vorgänge oder um das Alter bestimmter Daten zu bestimmen.
- Eingabe für andere RPC-Aufrufe: Einige RPC-Methoden können die Nummer eines slot als Referenzpunkt verwenden.
Request-Parameter
Diese Methode akzeptiert als ersten Parameter ein optionales Konfigurationsobjekt:options(object, optional): Ein optionales Konfigurationsobjekt mit den folgenden Feldern:commitment(string, optional): Gibt das commitment level für die Abfrage an. Unterstützte Werte sindfinalized,confirmedoderprocessed. Wenn du diesen Wert weglässt, verwendet die Abfrage das standardmäßige commitment des RPC node (normalerweisefinalized).processed: Der node fragt seinen neuesten slot ab. Beachte, dass der cluster diesen slot möglicherweise noch nicht bestätigt hat und er eventuell übersprungen wird.confirmed: Der node fragt den neuesten slot ab, über den eine qualifizierte Mehrheit des cluster abgestimmt hat.finalized: Der node fragt den neuesten slot ab, den die qualifizierte Mehrheit des cluster als vollständig gesperrt bestätigt hat und der nicht zurückgesetzt werden kann.
minContextSlot(number, optional): Der minimale slot, für den der request ausgewertet werden kann. Dadurch legst du den minimalen slot für den Kontext des node fest. Ist der Zustand des node älter als dieser slot, gibt er möglicherweise einen Fehler oder die Nummer eines slot zurück, die seinen aktuellen, älteren Zustand relativ zu diesem Minimum widerspiegelt.
Response-Struktur
Das Feldresult der JSON-RPC-response ist ein einzelner Wert vom Typ u64 (vorzeichenlose 64-Bit-Ganzzahl). Er stellt die Nummer des aktuellen slot gemäß dem angegebenen commitment level dar.
Beispiel-response:
Beispiele
1. Aktuellen slot abrufen (standardmäßiges commitment)
Dieses Beispiel ruft den aktuellen slot mit dem standardmäßigen commitment level des node ab (normalerweisefinalized).
2. Aktuellen slot mit einem bestimmten commitment abrufen
Dieses Beispiel ruft den aktuellen slot ab, der das commitmentconfirmed erreicht hat.
Tipps für Entwickler
- Commitment ist entscheidend: Die zurückgegebene Nummer des slot hängt stark vom angegebenen
commitmentlevel ab. Ausführliche Informationen findest du unter Solana Commitment Levels.processedist der höchste und neueste slot, den der node kennt.finalizedist dagegen ein älterer slot, den das gesamte Netzwerk bestätigt hat. Wähle das commitment level passend zu den Finalitätsanforderungen deines Anwendungsfalls. - Unterschiede zwischen nodes: Verschiedene RPC nodes können aufgrund von Verzögerungen bei der Netzwerkübertragung oder ihres eigenen Verarbeitungsstands für dasselbe commitment level leicht unterschiedliche Nummern von slots zurückgeben. Dies gilt besonders für die Level
processedundconfirmed. minContextSlot: Dieser Parameter stellt sicher, dass der node, der deinen request verarbeitet, mindestensminContextSloterreicht hat. Liegt der node hinter diesem slot, kann das Verhalten variieren. Er kann beispielsweise einen Fehler oder seinen aktuell höchsten slot zurückgeben, der kleiner alsminContextSlotist. Diesen Parameter verwendest du in der Regel in fortgeschrittenen Szenarien, wenn du sicherstellen musst, dass eine Abfrage einen ausreichend aktuellen Zustand verwendet.
getSlot ist eine einfache, aber unverzichtbare Methode, um mit der Solana-Blockchain zu interagieren und ihren aktuellen Fortschritt zu verstehen.