Μέθοδοι RPC & Τεκμηρίωση της Solana
Αλληλεπιδράστε απευθείας με τους κόμβους της Solana μέσω του JSON RPC API χρησιμοποιώντας τις μεθόδους HTTP και Websocket.
Διαμόρφωση δέσμευσης κατάστασης
Για προκαταρκτικούς ελέγχους και επεξεργασία συναλλαγών, οι κόμβοι της Solana επιλέγουν ποια κατάσταση τράπεζας θα ερωτηθεί με βάση μια απαίτηση δέσμευσης που ορίζεται από τον πελάτη. Η δέσμευση περιγράφει πόσο οριστικοποιημένο είναι ένα μπλοκ σε εκείνο το χρονικό σημείο. Κατά την αναζήτηση της κατάστασης του καθολικού, συνιστάται η χρήση χαμηλότερων επιπέδων δέσμευσης για την αναφορά προόδου και υψηλότερων επιπέδων για να διασφαλιστεί ότι η κατάσταση δεν θα αναιρεθεί.
Σε φθίνουσα σειρά δέσμευσης (από την πιο οριστικοποιημένη στη λιγότερο οριστικοποιημένη), οι πελάτες μπορούν να καθορίσουν:
finalized
- ο κόμβος θα ερωτήσει το πιο πρόσφατο μπλοκ που επιβεβαιώθηκε από την πλειοψηφία του συμπλέγματος ως έχοντας φτάσει το μέγιστο κλείδωμα, που σημαίνει ότι το σύμπλεγμα έχει αναγνωρίσει αυτό το μπλοκ ως οριστικοποιημένοconfirmed
- ο κόμβος θα ερωτήσει το πιο πρόσφατο μπλοκ για το οποίο έχει ψηφίσει η πλειοψηφία του συμπλέγματος.- Ενσωματώνει ψήφους από το gossip και το replay.
- Δεν μετρά ψήφους σε απογόνους ενός μπλοκ, μόνο άμεσες ψήφους σε αυτό το μπλοκ.
- Αυτό το επίπεδο επιβεβαίωσης υποστηρίζει επίσης εγγυήσεις "αισιόδοξης επιβεβαίωσης" στην έκδοση 1.3 και μεταγενέστερες.
processed
- ο κόμβος θα ερωτήσει το πιο πρόσφατο μπλοκ του. Σημειώστε ότι το μπλοκ μπορεί ακόμα να παραλειφθεί από το σύμπλεγμα.
Για την επεξεργασία πολλών εξαρτώμενων συναλλαγών σε σειρά, συνιστάται η χρήση
δέσμευσης confirmed
, η οποία εξισορροπεί την ταχύτητα με την ασφάλεια
αναίρεσης. Για πλήρη ασφάλεια, συνιστάται η χρήση δέσμευσης finalized
.
Προεπιλεγμένη δέσμευση
Εάν δεν παρέχεται διαμόρφωση δέσμευσης, ο κόμβος θα
χρησιμοποιήσει ως προεπιλογή τη finalized
δέσμευση
Μόνο οι μέθοδοι που εκτελούν ερωτήματα στην κατάσταση της τράπεζας δέχονται την παράμετρο δέσμευσης. Αυτές επισημαίνονται στην Αναφορά API παρακάτω.
Δομή RpcResponse
Πολλές μέθοδοι που δέχονται μια παράμετρο δέσμευσης επιστρέφουν ένα αντικείμενο JSON RpcResponse που αποτελείται από δύο μέρη:
context
: Μια δομή JSON RpcResponseContext που περιλαμβάνει ένα πεδίοslot
στο οποίο αξιολογήθηκε η λειτουργία.value
: Η τιμή που επιστρέφεται από την ίδια τη λειτουργία.
Αναλυμένες απαντήσεις
Ορισμένες μέθοδοι υποστηρίζουν μια παράμετρο encoding
και μπορούν να
επιστρέψουν δεδομένα λογαριασμού ή οδηγιών σε αναλυμένη μορφή JSON εάν ζητηθεί
το "encoding":"jsonParsed"
και ο κόμβος διαθέτει αναλυτή για το πρόγραμμα
ιδιοκτησίας. Οι κόμβοι Solana υποστηρίζουν επί του παρόντος ανάλυση JSON για τα
ακόλουθα εγγενή και SPL προγράμματα:
Πρόγραμμα | Κατάσταση λογαριασμού | Οδηγίες |
---|---|---|
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 |
Ο κατάλογος των αναλυτών λογαριασμών μπορεί να βρεθεί εδώ, και οι αναλυτές οδηγιών εδώ.
Κριτήρια φιλτραρίσματος
Ορισμένες μέθοδοι υποστηρίζουν την παροχή ενός αντικειμένου filters
για να
ενεργοποιήσουν το προ-φιλτράρισμα των δεδομένων που επιστρέφονται μέσα στο
αντικείμενο JSON RpcResponse. Υπάρχουν τα ακόλουθα φίλτρα:
-
memcmp: object
- συγκρίνει μια παρεχόμενη σειρά από bytes με τα δεδομένα του program account σε συγκεκριμένη θέση. Πεδία:offset: usize
- θέση μέσα στα δεδομένα του program account για την έναρξη της σύγκρισηςbytes: string
- δεδομένα προς αντιστοίχιση, ως κωδικοποιημένο stringencoding: string
- κωδικοποίηση για το φίλτροbytes
δεδομένων, είτε "base58" είτε "base64". Τα δεδομένα περιορίζονται σε μέγεθος 128 ή λιγότερα αποκωδικοποιημένα bytes.
ΝΕΟ: Αυτό το πεδίο, και η υποστήριξη base64 γενικά, είναι διαθέσιμα μόνο στην έκδοση solana-core v1.14.0 ή νεότερη. Παρακαλώ παραλείψτε το όταν κάνετε ερωτήματα σε κόμβους με παλαιότερες εκδόσεις
-
dataSize: u64
- συγκρίνει το μέγεθος των δεδομένων του program account με το παρεχόμενο μέγεθος δεδομένων
Is this page helpful?