Κάθε πρόγραμμα Solana διαβάζει και γράφει την ίδια κατάσταση, επομένως ένα swap, μια αποπληρωμή δανείου και μια ενημέρωση oracle μπορούν να εκτελεστούν σε μία ατομική συναλλαγή. Ξεκινήστε από μια λειτουργική εφαρμογή Anchor, ενσωματώστε ζωντανή ρευστότητα και λανσάρετε με πρακτικές παραγωγής.
Ιδιότητες στις οποίες μπορεί να βασιστεί ο σχεδιασμός του πρωτοκόλλου σας
Ατομική συνθεσιμότητα
Τα προγράμματα καλούν το ένα το άλλο μέσω cross-program invocations μέσα σε μία συναλλαγή. Αν αποτύχει οποιοδήποτε βήμα, ολόκληρη η συναλλαγή αναιρείται, ώστε μια στρατηγική πολλών πρωτοκόλλων να μην ολοκληρώνεται ποτέ κατά το ήμισυ.
Κάθε συναλλαγή δηλώνει εκ των προτέρων τους λογαριασμούς που διαβάζει και γράφει. Το runtime εκτελεί παράλληλα συναλλαγές που δεν αγγίζουν τους ίδιους εγγράψιμους λογαριασμούς, ώστε μια πολυσύχναστη αγορά να μην καθυστερεί άσχετες αγορές.
Οι συναλλαγές που γράφουν σε έναν λογαριασμό υψηλής ζήτησης ανταγωνίζονται για το μερίδιο του block που αντιστοιχεί σε αυτόν τον λογαριασμό. Τιμολογήστε τα τέλη προτεραιότητας με βάση τους λογαριασμούς στους οποίους γράφετε, όχι με βάση μέσους όρους ολόκληρου του δικτύου.
Οι χρόνοι slot στο mainnet μειώνονται σταδιακά και το Alpenglow θα αντικαταστήσει το τρέχον πρωτόκολλο ψηφοφορίας και οριστικότητας. Παρακολουθήστε και τα δύο προτού ρυθμίσετε τη λήξη των προσφορών τιμής, τα timeouts και τα παράθυρα ρευστοποίησης.
Η προεπιλεγμένη διαδρομή για ένα νέο πρωτόκολλο: Anchor για το πρόγραμμα, LiteSVM και Surfpool για δοκιμές, Codama για clients και Kit για την εφαρμογή.
01Γράψτε το πρόγραμμα
Anchor ή Pinocchio
Το Anchor είναι το προτεινόμενο framework για τα περισσότερα προγράμματα, με ενσωματωμένη επικύρωση λογαριασμών, δημιουργία IDL και βοηθητικά εργαλεία CPI. Προτιμήστε το Pinocchio, μια βιβλιοθήκη χωρίς εξαρτήσεις, σε κρίσιμες διαδρομές όπου μετράει κάθε compute unit.
Εκτελέστε γρήγορες δοκιμές εντός διεργασίας με LiteSVM ή Mollusk. Έπειτα εκτελέστε δοκιμές ολοκλήρωσης στο Surfpool, ένα τοπικό δίκτυο που φορτώνει λογαριασμούς του mainnet κατά απαίτηση, ώστε να δοκιμάζετε με πραγματικά pools και oracles.
Δημιουργήστε τυποποιημένους clients TypeScript και Rust από το IDL του προγράμματός σας, ώστε οι κατασκευαστές εντολών και οι αποκωδικοποιητές λογαριασμών να παραμένουν συγχρονισμένοι με κάθε deploy.
Το @solana/kit είναι το τυπικό SDK JavaScript. Το πρόσθετο πορτοφολιών του εντοπίζει τα εγκατεστημένα πορτοφόλια μέσω του Wallet Standard, χωρίς πακέτα προσαρμογέα ανά πορτοφόλι.
Αυτά τα πρωτόκολλα δημοσιεύουν τεκμηρίωση για προγραμματιστές για τα προγράμματα και τα APIs τους. Διαβάστε την τεκμηρίωση και τις εκθέσεις ελέγχου κάθε πρωτοκόλλου προτού διοχετεύσετε κεφάλαια χρηστών μέσα από αυτό.
Swaps και δρομολόγηση
Δρομολογήστε swaps στη ρευστότητα της Solana μέσω API aggregator ή ζητήστε ακατέργαστες εντολές για να συνθέσετε ένα swap μέσα στη δική σας συναλλαγή.
Εκδώστε περιουσιακά στοιχεία με ενσωματωμένη συμπεριφορά που πρέπει να χειρίζεται το πρωτόκολλό σας: transfer hooks, υπόλοιπα με τόκο, κλιμακωμένα ποσά UI και εμπιστευτικές μεταφορές.
Μόνο ενδεικτικά παραδείγματα. Η αναφορά ενός πρωτοκόλλου δεν αποτελεί έγκριση από το Ίδρυμα Solana.
Παράδοση συναλλαγών
Επιτύχετε την εκτέλεση συναλλαγών όταν κινούνται οι αγορές
Η κίνηση στο DeFi κορυφώνεται σε περιόδους μεταβλητότητας, ακριβώς όταν οι χρήστες χρειάζονται τις συναλλαγές τους να εκτελεστούν. Ενσωματώστε αυτά τα στοιχεία στον client σας πριν από το mainnet.
1
Ορίστε όρια compute και τέλη προτεραιότητας
Εκτελέστε προσομοίωση για να μετρήσετε τα compute units, ορίστε αυστηρό όριο και τιμολογήστε τα τέλη προτεραιότητας με βάση τα πρόσφατα τέλη των λογαριασμών στους οποίους γράφετε.
Οι συναλλαγές v1 αυξάνουν το όριο μεγέθους· οι πίνακες αναζήτησης διευθύνσεων (address lookup tables) συμπιέζουν μακριές λίστες λογαριασμών. Κάθε επιλογή έχει ανταλλάγματα για σύνθετες διαδρομές.
Παρακολουθήστε τη λήξη του blockhash, αναμεταδώστε μέχρι να εκτελεστεί ή να λήξει η συναλλαγή και επιβεβαιώστε στο επίπεδο commitment που απαιτεί η λογική σας.
Ένα πρόγραμμα DeFi μπορεί να κατέχει κεφάλαια χρηστών από το πρώτο του deploy. Ελέγξτε ποιος μπορεί να το αλλάξει, αποδείξτε τι έχει αναπτυχθεί και παρακολουθήστε τι κάνει.
Τοποθετήστε τις εξουσιοδοτήσεις πίσω από ένα multisig
Κρατήστε τις εξουσιοδοτήσεις αναβάθμισης και διαχείρισης του προγράμματος σε ένα multisig Squads, με χρονικό κλείδωμα στις αλλαγές.
Αποκτήστε ανεξάρτητους ελέγχους πριν από το mainnet και τρέξτε ένα πρόγραμμα bug bounty. Το Ίδρυμα Solana χρηματοδοτεί αξιολογήσεις ασφαλείας STRIDE και δωρεάν εργαλεία για ομάδες του οικοσυστήματος.