Τελευταία ενημέρωση: 2025-10-31
Το Kora υπολογίζει εκτιμώμενα τέλη συναλλαγών κατά την εκτέλεση των μεθόδων RPC
estimate_transaction_fee και sign_transaction. Για την εκτίμηση των τελών,
το Kora υπολογίζει το συνολικό κόστος για την εκτέλεση συναλλαγών στο Solana,
συμπεριλαμβανομένων των τελών δικτύου, του κόστους δημιουργίας λογαριασμών και
των προαιρετικών τελών επεξεργασίας πληρωμών. Αυτός ο οδηγός αναλύει κάθε
συστατικό του υπολογισμού τελών.
Τύπος Υπολογισμού Τελών
Το τέλος καθορίζεται από το μοντέλο τιμολόγησης που έχει ρυθμιστεί στο
kora.toml:
PriceModel::Free- Χορηγεί όλα τα τέλη συναλλαγών (συνολικό τέλος = 0)PriceModel::Fixed- Χρεώνει ένα σταθερό ποσό σε συγκεκριμένο token (ανεξάρτητα από τα τέλη δικτύου)PriceModel::Margin- Προσθέτει ένα ποσοστό περιθωρίου στα συνολικά τέλη.
Το κύριο σημείο εισόδου για την εκτίμηση συνολικού τέλους που χρησιμοποιείται
στο PriceModel::Margin είναι το FeeConfigUtil::estimate_kora_fee() στο
crates/lib/src/fee/fee.rs.
Χρησιμοποιεί τον ακόλουθο γενικευμένο τύπο:
Total Fee = Base Fee+ Account Creation Fee+ Kora Signature Fee+ Fee Payer Outflow+ Payment Instruction Fee+ Transfer Fee Amount+ Margin Adjustment
Συστατικά Τελών
| Συστατικό | Περιγραφή | Μέθοδος Υπολογισμού | Πότε Εφαρμόζεται |
|---|---|---|---|
| Βασικό Τέλος | Βασικό τέλος συναλλαγής Solana που καλύπτει την επαλήθευση υπογραφής και την επεξεργασία συναλλαγής | RpcClient.get_fee_for_message() - Χρησιμοποιεί τον υπολογισμό τελών του Solana με βάση τις μονάδες υπολογισμού και τα τέλη προτεραιότητας | Πάντα |
| Τέλος Δημιουργίας Λογαριασμού | Ελάχιστο υπόλοιπο απαλλαγμένο από ενοίκιο για τη δημιουργία νέων Associated Token Accounts (ATAs) | Rent::default().minimum_balance(account_size) - Υπολογίζει το ενοίκιο με βάση το μέγεθος δεδομένων λογαριασμού (165-355 bytes ανάλογα με τις επεκτάσεις token) | Όταν η συναλλαγή δημιουργεί νέα ATAs |
| Τέλος Υπογραφής Kora | Πρόσθετο τέλος όταν το Kora υπογράφει ως μη συμμετέχων πληρωτής τελών | Σταθερό: 5.000 lamports (LAMPORTS_PER_SIGNATURE) | Όταν ο πληρωτής τελών δεν είναι ήδη υπογράφων της συναλλαγής |
| Εκροή Πληρωτή Τελών | Συνολικό SOL που αποστέλλει ο πληρωτής τελών στη συναλλαγή (μεταφορές, δημιουργίες λογαριασμών κ.λπ.) | Άθροισμα: Μεταφορών συστήματος από τον πληρωτή τελών, CreateAccount που χρηματοδοτείται από τον πληρωτή τελών, Αναλήψεις Nonce από τον πληρωτή τελών | Όταν ο πληρωτής τελών εκτελεί λειτουργίες System Program |
| Τέλος Εντολής Πληρωμής | Εκτιμώμενο κόστος τελών προτεραιότητας για την προσθήκη εντολής πληρωμής για συναλλαγές χωρίς gas | Σταθερή εκτίμηση: 50 lamports (ESTIMATED_LAMPORTS_FOR_PAYMENT_INSTRUCTION) | Όταν απαιτείται πληρωμή αλλά δεν περιλαμβάνεται στη συναλλαγή |
| Τέλος Μεταφοράς | Τέλη μεταφοράς Token2022 που έχουν ρυθμιστεί στο mint (π.χ. 1% του ποσού μεταφοράς) | Token2022Mint.calculate_transfer_fee(amount, epoch) - Με βάση τη διαμόρφωση τελών μεταφοράς του mint | Μόνο για μεταφορές Token2022 στη διεύθυνση πληρωμής Kora |
| Προσαρμογή Περιθωρίου | Επιπλέον χρέωση μοντέλου τιμολόγησης Kora | Διαμορφωμένο περιθώριο στο validation.price - Μπορεί να προσθέσει επιπλέον χρέωση ως % του συνολικού τέλους | Όταν παρέχεται [validation.price] στο kora.toml |
Μοντέλα Τιμολόγησης & Εκροή Πληρωτή Τελών
Το Kora υποστηρίζει τρία μοντέλα τιμολόγησης που καθορίζουν τον τρόπο χρέωσης των χρηστών για τις συναλλαγές:
Τιμολόγηση με Περιθώριο (Προεπιλογή)
- Τύπος:
Total Fee = (Base + Outflow + Other Components) × (1 + margin) - Περιλαμβάνει Εκροή Πληρωτή Τελών: Ναι
- Ιδανικό Για: Παραγωγικές αναπτύξεις όπου τα τέλη πρέπει να αντικατοπτρίζουν το πραγματικό κόστος με επιπλέον λειτουργικό περιθώριο
Σταθερή Τιμολόγηση
- Τύπος:
Total Fee = Fixed Amount (in specified token) - Περιλαμβάνει Εκροή Πληρωτή Τελών: Όχι
- Ιδανικό Για: Απλοποιημένη εμπειρία χρήστη με προβλέψιμη τιμολόγηση σε ελεγχόμενα περιβάλλοντα
Δωρεάν Τιμολόγηση
- Τύπος:
Total Fee = 0 - Περιλαμβάνει Εκροή Πληρωτή Τελών: Όχι (ο διαχειριστής απορροφά όλο το κόστος)
- Ιδανικό Για: Προωθητικές καμπάνιες, δοκιμές ή πλήρως χορηγούμενες εφαρμογές
⚠️ Προειδοποίηση Ασφαλείας: Μοντέλα Σταθερής/Δωρεάν Τιμολόγησης
ΚΡΙΣΙΜΟ: Τα μοντέλα σταθερής/δωρεάν τιμολόγησης ΔΕΝ περιλαμβάνουν την εκροή πληρωτή τελών στο χρεωμένο ποσό. Αυτό δημιουργεί σημαντικό κίνδυνο ασφαλείας εάν δεν ρυθμιστεί σωστά. Εάν η πολιτική πληρωτή τελών σας επιτρέπει μεταφορές ή άλλες λειτουργίες εκροής, επιτιθέμενοι μπορούν να το εκμεταλλευτούν για να αδειάσουν τον λογαριασμό πληρωτή τελών σας.
Απαιτούμενα Μέτρα Ασφαλείας
Όταν χρησιμοποιείτε σταθερή/δωρεάν τιμολόγηση, ΠΡΕΠΕΙ να ρυθμίσετε περιοριστικές πολιτικές πληρωτή τελών για να μπλοκάρετε ΟΛΕΣ τις νομισματικές λειτουργίες και τις λειτουργίες αλλαγής εξουσιοδότησης:
[validation.fee_payer_policy.system]allow_transfer = false # Block SOL transfersallow_create_account = false # Block account creation with lamportsallow_allocate = false # Block space allocation[validation.fee_payer_policy.system.nonce]allow_withdraw = false # Block nonce account withdrawals[validation.fee_payer_policy.spl_token] # and for [validation.fee_payer_policy.token_2022]allow_transfer = false # Block SPL transfersallow_burn = false # Block SPL token burningallow_close_account = false # Block SPL token account closures (returns rent)allow_mint_to = false # Block unauthorized SPL token mintingallow_initialize_account = false # Block account initialization
Πρόσθετες Προστασίες
- Ενεργοποίηση Ελέγχου Ταυτότητας: Να απαιτείτε πάντα κλειδί API ή έλεγχο ταυτότητας HMAC με σταθερή/δωρεάν τιμολόγηση
- Ορισμός Χαμηλών Ορίων: Να χρησιμοποιείτε συντηρητικές τιμές
max_allowed_lamports - Παρακολούθηση Χρήσης: Να παρακολουθείτε ασυνήθιστα μοτίβα συναλλαγών υψηλής εκροής
- Εξετάστε την Τιμολόγηση με Περιθώριο: Η τιμολόγηση με περιθώριο περιλαμβάνει αυτόματα το κόστος εκροής στα τέλη
Προειδοποιήσεις Επικύρωσης
Το πρόγραμμα επικύρωσης ρυθμίσεων του Kora θα σας προειδοποιήσει για επικίνδυνες ρυθμίσεις:
kora --config kora.toml config validate
Αναμενόμενες προειδοποιήσεις για ευάλωτες ρυθμίσεις:
⚠️ SECURITY: Fixed pricing with system.allow_transfer=true.Users can make the fee payer transfer arbitrary SOL amounts at fixed cost.This can drain your fee payer account.
Is this page helpful?