Τελευταία Ενημέρωση: 2025-10-31
Βασικά Στοιχεία Kora
Το Kora είναι ένας διακομιστής JSON-RPC που παρέχει υπηρεσίες πληρωμής χρεώσεων για συναλλαγές Solana. Επιτρέπει στους χρήστες να πληρώνουν τις χρεώσεις συναλλαγών με SPL tokens αντί για SOL, επιτρέποντας καλύτερη εμπειρία χρήστη για εφαρμογές όπου οι χρήστες ενδέχεται να μην διαθέτουν SOL.
Το Kora RPC επικυρώνει τα αιτήματα των πελατών με βάση μια διαμόρφωση
(kora.toml) που ορίζει τα επιτρεπτά προγράμματα, πορτοφόλια, tokens κ.λπ.
Μόλις επικυρωθεί, ο διακομιστής Kora θα υπογράψει τη συναλλαγή και θα την
αποστείλει στο δίκτυο (ή θα επιστρέψει μια σειριοποιημένη υπογεγραμμένη
συναλλαγή στον πελάτη).
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐│ Client App │───▶│ Kora RPC │───▶│ Solana RPC ││ │ │ Server │ │ │└─────────────────┘ └─────────────────┘ └─────────────────┘│▼┌──────────────────────┐│ Kora Private Key ││ ( or Turnkey/Privy ) │└──────────────────────┘
Αυτή η γρήγορη εκκίνηση θα ξεκινήσει έναν τοπικό διακομιστή Kora RPC και θα επιδείξει την ενσωμάτωση πελάτη για δοκιμή ροών εργασίας πληρωμής χρεώσεων.
Απαιτήσεις
- Solana CLI έκδοση 2.2.x ή νεότερη
- Rust/Cargo (για εγκατάσταση Kora RPC)
- Node.js v22+ και έναν διαχειριστή πακέτων (π.χ., pnpm, npm)
Εγκατάσταση Kora RPC
Εγκαταστήστε τον διακομιστή Kora RPC καθολικά:
cargo install kora-cli
Σημαντικό: Το κλαδί
mainτου Kora είναι ένα κλαδί ενσωμάτωσης και ενδέχεται να περιέχει μη κυκλοφορημένες ή beta αλλαγές. Χρησιμοποιείτε πάντα την πιο πρόσφατη σταθερή έκδοση ετικέτας για παραγωγή και χρήση σε εκπαιδευτικά προγράμματα. Μπορείτε να βρείτε την πιο πρόσφατη σταθερή έκδοση στη σελίδα εκδόσεων του Kora.
Δημιουργία Έργου
Κλωνοποιήστε το αποθετήριο, μεταβείτε στην πιο πρόσφατη σταθερή ετικέτα και πλοηγηθείτε στον κατάλογο επίδειξης για αρχάριους:
git clone https://github.com/solana-foundation/koracd koragit checkout v2.0.5cd examples/getting-started/demo
Δομή Έργου
Η επίδειξη περιέχει τρία κύρια συστατικά:
Κατάλογος Πελάτη (client/src/)
setup.ts- Ρύθμιση τοπικού περιβάλλοντος (δημιουργεί keypairs και τα γράφει στο .env, κάνει airdrop SOL, αρχικοποιεί δοκιμαστικό token)quick-start.ts- Σενάριο επίδειξης γρήγορης εκκίνησης που δείχνει τη σύνδεση με το Kora και την πραγματοποίηση απλής κλήσης στον διακομιστή Kora RPCfull-demo.ts- Πλήρες σενάριο επίδειξης που παρουσιάζει πολλαπλές μεθόδους Kora RPC
Κατάλογος Διακομιστή (server/)
kora.toml- Διαμόρφωση Kora RPC που ορίζει κανόνες επικύρωσης, επιτρεπόμενα tokens και παραμέτρους προμηθειώνsigners.toml- Διαμόρφωση υπογραφόντων που ορίζει τους υπογράφοντες για τον διακομιστή Kora
Κοινή Διαμόρφωση
.env- Μεταβλητές περιβάλλοντος για keypairs και διευθύνσεις (δημιουργήστε το.envστη ρίζα -demo/.env). Οι μεταβλητές περιβάλλοντος θα δημιουργηθούν από το σενάριο εγκατάστασης.
Ρύθμιση Περιβάλλοντος
Αρχικά, δημιουργήστε το .env για το περιβάλλον σας:
# Create .env file (will be populated by setup script)touch .env
Ρύθμιση Πελάτη
Εγκαταστήστε τις εξαρτήσεις του πελάτη:
# From project root (kora/)cd examples/getting-started/demo/clientpnpm install --ignore-workspace # use --ignore-workspace to avoid pnpm workspace conflicts
Ρύθμιση Διακομιστή Kora RPC
Ο διακομιστής Kora απαιτεί διαμόρφωση για να καθοριστεί ποια tokens μπορούν να
χρησιμοποιηθούν για πληρωμή προμηθειών. Ανοίξτε το server/kora.toml και
σημειώστε την ενότητα επικύρωσης. Εδώ μπορούμε να καθορίσουμε διάφορες
παραμέτρους που θα επικυρωθούν πριν από την υπογραφή μιας συναλλαγής:
max_allowed_lamports: μέγιστη προμήθεια συναλλαγής που είστε διατεθειμένοι να πληρώσετε εκ μέρους του χρήστηmax_signatures: μέγιστος αριθμός υπογραφών που μπορεί να έχει μια συναλλαγήprice_source: oracle για τον προσδιορισμό της τιμής token ("Mock" ή "Jupiter")allowed_programs: λίστα επιτρεπόμενων IDs προγραμμάτων που μπορούν να εκτελεστούν (π.χ., System Program, Token Program)allowed_tokens: λίστα επιτρεπόμενων tokens που επιτρέπεται να μεταφερθούνallowed_spl_paid_tokens: πίνακας διευθύνσεων mint που δέχεται το πρόγραμμά σας ως πληρωμήdisallowed_accounts: μαύρη λίστα λογαριασμών που δεν επιτρέπεται να αλληλεπιδράσουν με το kora RPC σας
Προς το παρόν, ας αφήσουμε τις προεπιλεγμένες τιμές--μπορείτε να επιστρέψετε εδώ και να τις αλλάξετε αργότερα (για περισσότερες πληροφορίες σχετικά με τις επιλογές διαμόρφωσης, δείτε την τεκμηρίωση Διαμόρφωση Kora).
Ρύθμιση Υπογραφόντων
Ανοίξτε το server/signers.toml και σημειώστε την ενότητα υπογραφόντων. Εδώ
μπορούμε να καθορίσουμε ποιοι υπογράφοντες θα χρησιμοποιηθούν για την υπογραφή
συναλλαγών και (εάν χρησιμοποιούνται πολλαπλοί υπογράφοντες) μια στρατηγική για
την επιλογή του υπογράφοντα που θα χρησιμοποιηθεί. Προς το παρόν, ας
χρησιμοποιήσουμε έναν μόνο υπογράφοντα χρησιμοποιώντας τις προεπιλεγμένες
τιμές--μπορείτε να επιστρέψετε εδώ και να τις αλλάξετε αργότερα (για
περισσότερες πληροφορίες σχετικά με τη διαμόρφωση υπογραφόντων, δείτε τον
Οδηγό Υπογραφόντων).
Διακομιστής Δοκιμών
Ανοίξτε τρία τερματικά και εκτελέστε τις ακόλουθες εντολές:
Τερματικό 1: Εκκίνηση Τοπικού Validator Δοκιμών
# From project root or anywheresolana-test-validator -r
Τερματικό 2: Αρχικοποίηση Περιβάλλοντος
# From ./client directorypnpm init-env
Αυτό το script θα:
- Δημιουργήσει keypairs και θα τα αποθηκεύσει στο
.env - Θα κάνει airdrop SOL σε λογαριασμούς δοκιμών
- Θα δημιουργήσει και θα αρχικοποιήσει ένα τοπικό token USDC
- Θα χρηματοδοτήσει τους λογαριασμούς δοκιμών με tokens
Σημαντικό Βεβαιωθείτε ότι αντιγράφετε το δημόσιο κλειδί του νέου token
δοκιμών USDC από το .env σας και ενημερώνετε τα allowed_tokens και
allowed_spl_paid_tokens στο ./server/kora.toml.
allowed_tokens = ["YOUR_USDC_LOCAL_PUBLICK_KEY" # Update this based on the USDC_LOCAL_KEY public key comment in your .env]allowed_spl_paid_tokens = ["YOUR_USDC_LOCAL_PUBLICK_KEY" # Update this based on the USDC_LOCAL_KEY public key comment in your .env]
Τερματικό 3: Αρχικοποίηση Associated Token Accounts (ATAs) Πληρωμών (Προαιρετικό)
Για να λαμβάνετε πληρωμές, θα χρειαστεί να αρχικοποιήσετε Associated Token Accounts (ATAs) για τα tokens πληρωμών σας. Μπορείτε να το κάνετε αυτό εκτελώντας την ακόλουθη εντολή:
# From ./server directorykora rpc initialize-atas --signers-config signers.toml
Αυτή η εντολή θα:
- Διαβάσει τη διεύθυνση πληρωμής σας από το
kora.toml(ή αν δεν έχετε ορίσει διεύθυνση πληρωμής, όλους τους υπογράφοντες που αναφέρονται στοsigners.toml) - Δημιουργήσει ATAs για όλα τα tokens που αναφέρονται στο
allowed_spl_paid_tokens - Παραλείψει οποιαδήποτε ATAs που υπάρχουν ήδη
- Μπορείτε προαιρετικά να ορίσετε έναν προσαρμοσμένο πληρωτή τελών για τη
δημιουργία ATA χρησιμοποιώντας τη σημαία
fee_payer_key.
Τερματικό 4: Εκκίνηση Διακομιστή Kora RPC
# From ./server directorykora rpc start --signers-config signers.toml
Σημείωση: Για αναπτύξεις παραγωγής που χρησιμοποιούν
price_source = "Jupiter", πρέπει να ορίσετε τη μεταβλητή περιβάλλοντοςJUPITER_API_KEY. Ο διακομιστής δεν θα εκκινήσει χωρίς αυτήν:JUPITER_API_KEY=your_api_key kora rpc start --signers-config signers.toml
Ο διακομιστής διαβάζει τη διαμόρφωση από τα kora.toml και signers.toml και
χρησιμοποιεί μεταβλητές περιβάλλοντος από το κοινό αρχείο .env. Αν
χρησιμοποιείτε διαφορετική δομή φακέλων από αυτήν που καθορίζεται εδώ, ενδέχεται
να χρειαστεί να χρησιμοποιήσετε το --config για να ορίσετε τη θέση του
kora.toml και το --signers-config για να ορίσετε τον κατάλογο της
διαμόρφωσης των υπογραφόντων σας:
kora rpc --config path/to/kora.toml start --signers-config path/to/signers.toml
Μπορείτε να έχετε πρόσβαση στο kora rpc -h για βοήθεια σχετικά με τις επιλογές
του διακομιστή RPC.
Τερματικό 5: Εκτέλεση Επίδειξης Πελάτη
# From ./client directorypnpm start
Θα πρέπει να δείτε αποτέλεσμα παρόμοιο με:
Kora Config: {fee_payer: 'Df2UmGQH86TBDsub7XZoSAo7KZa1ZJZr2w1PL1APUjjU',validation_config: {max_allowed_lamports: 1000000,max_signatures: 10,allowed_programs: ['11111111111111111111111111111111','TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA','ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL','AddressLookupTab1e1111111111111111111111111','ComputeBudget11111111111111111111111111111111'],allowed_tokens: ['usdCAEFbouFGxdkbHCRtMTcN7DJHd3aCmP9vqjLgmAp'],allowed_spl_paid_tokens: ['usdCAEFbouFGxdkbHCRtMTcN7DJHd3aCmP9vqjLgmAp'],disallowed_accounts: [],price_source: 'Mock',fee_payer_policy: {...},price: { type: 'margin', margin: 0 }},enabled_methods: { ... }}}Blockhash: C8W8d5w2H4jKXyFg5CEBoiaPvEpJ1am7xLxZ3fym4a2g
Αυτό επιβεβαιώνει ότι ο διακομιστής Kora λειτουργεί και είναι σωστά διαμορφωμένος!
Επόμενα Βήματα
Αφού λειτουργήσει η βασική ρύθμιση, δείτε την πλήρη επίδειξη ροής του Kora:
→ Πλήρης Ροή Συναλλαγών Χωρίς Κόστος Kora
εξερευνήστε πρόσθετες μεθόδους RPC του Kora:
estimateTransactionFee- Υπολογισμός κόστους για συναλλαγέςgetPayerSigner- Λήψη του υπογράφοντα πληρωτή και του προορισμού πληρωμήςgetSupportedTokens- Επιστρέφει έναν πίνακα με τα υποστηριζόμενα tokens πληρωμήςsignTransaction- Υπογράφει υπό συνθήκες συναλλαγές όταν καλύπτονται τα κόστηtransferTransaction- Δημιουργία συναλλαγών μεταφοράς SOL ή SPL token (υπογεγραμμένες από τον πληρωτή κόστους Kora)signAndSendTransaction- Υπογράφει υπό συνθήκες μια συναλλαγή με τον πληρωτή κόστους Kora και την στέλνει στο διαμορφωμένο Solana RPCgetPaymentInstruction- Λήψη μιας οδηγίας πληρωμής για μια συναλλαγή
Έχετε ερωτήσεις; Κάντε ερωτήσεις στο
Solana Stack Exchange με ετικέτα Kora.
Is this page helpful?