Μέθοδοι HTTP RPC του Solana

Οι κόμβοι του Solana δέχονται αιτήματα HTTP χρησιμοποιώντας την προδιαγραφή JSON-RPC 2.0.

Για εφαρμογές JavaScript, χρησιμοποιήστε τη βιβλιοθήκη @solana/web3.js ως μια βολική διεπαφή για τις μεθόδους RPC για αλληλεπίδραση με έναν κόμβο Solana. Για μια σύνδεση PubSub σε έναν κόμβο Solana, χρησιμοποιήστε το Websocket API.

Τελικό σημείο HTTP RPC

Προεπιλεγμένη θύρα: 8899

Μορφοποίηση αιτήματος

Για να κάνετε ένα αίτημα JSON-RPC, στείλτε ένα αίτημα HTTP POST με μια κεφαλίδα Content-Type: application/json. Τα δεδομένα του αιτήματος JSON θα πρέπει να περιέχουν 4 πεδία:

  • jsonrpc: <string> - ορίστε σε "2.0"
  • id: <string | number | null> - ένα μοναδικό αναγνωριστικό για το αίτημα, που δημιουργείται από τον πελάτη. Συνήθως μια συμβολοσειρά ή αριθμός, αν και το null τεχνικά επιτρέπεται αλλά δεν συνιστάται
  • method: <string> - μια συμβολοσειρά που περιέχει τη μέθοδο που θα κληθεί
  • params: <array> - ένας πίνακας JSON με τιμές παραμέτρων σε σειρά

Παράδειγμα χρησιμοποιώντας curl:

curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getBalance",
"params": [
"83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri"
]
}
'

Η έξοδος της απάντησης θα είναι ένα αντικείμενο JSON με τα ακόλουθα πεδία:

  • jsonrpc: <string> - που ταιριάζει με την προδιαγραφή του αιτήματος
  • id: <number> - που ταιριάζει με το αναγνωριστικό του αιτήματος
  • result: <array|number|object|string> - ζητούμενα δεδομένα ή επιβεβαίωση επιτυχίας

Τα αιτήματα μπορούν να αποσταλούν σε παρτίδες στέλνοντας έναν πίνακα αντικειμένων αιτήματος JSON-RPC ως δεδομένα για ένα μόνο POST.

Παράδειγμα αιτήματος

Η παράμετρος commitment θα πρέπει να συμπεριληφθεί ως το τελευταίο στοιχείο στον πίνακα params:

curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getBalance",
"params": [
"83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri",
{
"commitment": "finalized"
}
]
}
'

Ορισμοί

  • Hash: Ένα hash SHA-256 ενός τμήματος δεδομένων.
  • Pubkey: Το δημόσιο κλειδί ενός ζεύγους κλειδιών Ed25519.
  • Transaction: Μια λίστα οδηγιών Solana υπογεγραμμένη από ένα ζεύγος κλειδιών πελάτη για την εξουσιοδότηση αυτών των ενεργειών.
  • Signature: Μια υπογραφή Ed25519 των δεδομένων φορτίου της συναλλαγής συμπεριλαμβανομένων των οδηγιών. Αυτό μπορεί να χρησιμοποιηθεί για την αναγνώριση συναλλαγών.

Έλεγχος υγείας

Αν και δεν είναι ένα JSON RPC API, ένα GET /health στο RPC HTTP Endpoint παρέχει έναν μηχανισμό ελέγχου υγείας για χρήση από εξισορροπητές φορτίου ή άλλες υποδομές δικτύου. Αυτό το αίτημα θα επιστρέφει πάντα μια απόκριση HTTP 200 OK με περιεχόμενο "ok", "behind" ή "unknown":

  • ok: Ο κόμβος βρίσκεται εντός HEALTH_CHECK_SLOT_DISTANCE slot από το τελευταίο επιβεβαιωμένο slot του cluster
  • behind { distance }: Ο κόμβος είναι πίσω κατά distance slot από το τελευταίο επιβεβαιωμένο slot του cluster όπου distance > HEALTH_CHECK_SLOT_DISTANCE
  • unknown: Ο κόμβος δεν μπορεί να προσδιορίσει πού βρίσκεται σε σχέση με το cluster

Is this page helpful?

Πίνακας Περιεχομένων

Επεξεργασία Σελίδας