Μέθοδοι 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 του clusterbehind { distance }
: Ο κόμβος είναι πίσω κατάdistance
slot από το τελευταίο επιβεβαιωμένο slot του cluster όπουdistance > HEALTH_CHECK_SLOT_DISTANCE
unknown
: Ο κόμβος δεν μπορεί να προσδιορίσει πού βρίσκεται σε σχέση με το cluster
Is this page helpful?