Son Güncelleme: 2025-10-31
Kora Temelleri
Kora, Solana işlemleri için ücret ödeme hizmetleri sağlayan bir JSON-RPC sunucusudur. Kullanıcıların SOL yerine SPL token'ları ile işlem ücretlerini ödemelerine olanak tanıyarak, kullanıcıların SOL bulundurmadığı uygulamalar için daha iyi bir kullanıcı deneyimi sağlar.
Kora RPC, izin verilen programları, cüzdanları, token'ları vb. tanımlayan bir
yapılandırmaya (kora.toml) dayalı olarak istemci isteklerini doğrular.
Doğrulandıktan sonra Kora sunucusu işlemi imzalayacak ve ağa gönderecektir (veya
istemciye serileştirilmiş imzalı bir işlem döndürecektir).
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐│ Client App │───▶│ Kora RPC │───▶│ Solana RPC ││ │ │ Server │ │ │└─────────────────┘ └─────────────────┘ └─────────────────┘│▼┌──────────────────────┐│ Kora Private Key ││ ( or Turnkey/Privy ) │└──────────────────────┘
Bu hızlı başlangıç, yerel bir Kora RPC sunucusu başlatacak ve ücret ödeme iş akışlarını test etmek için istemci entegrasyonunu gösterecektir.
Gereksinimler
- Solana CLI v2.2.x veya üstü
- Rust/Cargo (Kora RPC kurulumu için)
- Node.js v22+ ve bir paket yöneticisi (örn., pnpm, npm)
Kora RPC Kurulumu
Kora RPC sunucusunu global olarak kurun:
cargo install kora-cli
Önemli: Kora'nın
maindalı bir entegrasyon dalıdır ve yayınlanmamış veya beta değişiklikler içerebilir. Üretim ve eğitim kullanımı için her zaman en son kararlı sürüm etiketini kullanın. En son kararlı sürümü Kora sürümler sayfasında bulabilirsiniz.
Proje Oluşturma
Depoyu klonlayın, en son kararlı etiketi kontrol edin ve başlangıç demo dizinine gidin:
git clone https://github.com/solana-foundation/koracd koragit checkout v2.0.5cd examples/getting-started/demo
Proje Yapısı
Demo üç ana bileşen içerir:
İstemci Dizini (client/src/)
setup.ts- Yerel ortam kurulumu (keypair oluşturur ve .env dosyasına yazar, SOL airdrop yapar, test token'ını başlatır)quick-start.ts- Kora bağlantısı kurma ve Kora RPC sunucusuna basit bir çağrı yapma gösteren hızlı başlangıç gösterim betiğifull-demo.ts- Birden fazla Kora RPC yöntemini gösteren tam demo betiği
Sunucu Dizini (server/)
kora.toml- Doğrulama kurallarını, izin verilen tokenları ve ücret parametrelerini tanımlayan Kora RPC yapılandırmasısigners.toml- Kora sunucusu için imzalayanları tanımlayan imzalayan yapılandırması
Paylaşılan Yapılandırma
.env- Anahtar çiftleri ve adresler için ortam değişkenleri (kök dizinde.envoluşturun -demo/.env). Ortam değişkenleri kurulum betiği tarafından oluşturulacaktır.
Ortamı Hazırlama
Öncelikle ortamınız için .env dosyasını oluşturun:
# Create .env file (will be populated by setup script)touch .env
İstemciyi Hazırlama
İstemci bağımlılıklarını yükleyin:
# From project root (kora/)cd examples/getting-started/demo/clientpnpm install --ignore-workspace # use --ignore-workspace to avoid pnpm workspace conflicts
Kora RPC Sunucusunu Hazırlama
Kora sunucusu, ücret ödemesi için hangi tokenların kullanılabileceğini belirtmek
üzere yapılandırma gerektirir. server/kora.toml dosyasını açın ve doğrulama
bölümüne dikkat edin. Burada bir işlemi imzalamadan önce doğrulanacak birkaç
parametre belirtebiliriz:
max_allowed_lamports: kullanıcı adına ödemeye razı olduğunuz maksimum işlem ücretimax_signatures: bir işlemin sahip olabileceği maksimum imza sayısıprice_source: token fiyatını belirlemek için oracle ("Mock" veya "Jupiter")allowed_programs: yürütülebilecek program kimliklerinin beyaz listesi (örn., System Program, Token Program)allowed_tokens: transfer edilmesine izin verilen tokenların beyaz listesiallowed_spl_paid_tokens: programınızın ödeme olarak kabul ettiği mint adreslerinin dizisidisallowed_accounts: kora RPC'nizle etkileşime girmesine izin verilmeyen hesapların kara listesi
Şimdilik varsayılan değerleri bırakalım--daha sonra buraya geri dönüp bunları değiştirebilirsiniz (yapılandırma seçenekleri hakkında daha fazla bilgi için Kora Yapılandırması belgelerine bakın).
İmzalayanları Hazırlama
server/signers.toml dosyasını açın ve imzalayanlar bölümüne dikkat edin.
Burada işlemleri imzalamak için hangi imzalayanların kullanılacağını ve (birden
fazla imzalayan kullanıyorsanız) hangi imzalayanın kullanılacağını seçmek için
bir strateji belirtebiliriz. Şimdilik varsayılan değerleri kullanarak tek
imzalayan kullanalım--daha sonra buraya geri dönüp bunları değiştirebilirsiniz
(imzalayan yapılandırması hakkında daha fazla bilgi için
İmzalayanlar Rehberi belgelerine bakın).
Test Sunucusu
Üç terminal açın ve aşağıdaki komutları çalıştırın:
Terminal 1: Yerel Test Validator'ı Başlatma
# From project root or anywheresolana-test-validator -r
Terminal 2: Ortamı Başlatma
# From ./client directorypnpm init-env
Bu betik şunları yapacaktır:
- Anahtar çiftleri oluşturur ve
.enviçine kaydeder - Test hesaplarına SOL gönderir
- Yerel bir USDC token'ı oluşturur ve başlatır
- Test hesaplarını token'larla fonlar
Önemli: .env dosyanızdan yeni USDC test token'ının genel anahtarını
kopyaladığınızdan ve ./server/kora.toml içindeki allowed_tokens ve
allowed_spl_paid_tokens değerlerini güncellediğinizden emin olun.
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]
Terminal 3: Ödeme ATA'larını Başlatma (İsteğe Bağlı)
Ödeme alabilmek için ödeme token'larınız için İlişkili Token Hesapları (ATA'lar) başlatmanız gerekecektir. Bunu aşağıdaki komutu çalıştırarak yapabilirsiniz:
# From ./server directorykora rpc initialize-atas --signers-config signers.toml
Bu komut şunları yapacaktır:
- Ödeme adresinizi
kora.tomldosyasından okur (veya bir ödeme adresi belirtmediyseniz,signers.tomliçinde listelenen tüm imzalayıcıları kullanır) allowed_spl_paid_tokensiçinde listelenen tüm token'lar için ATA'lar oluşturur- Zaten mevcut olan ATA'ları atlar
- İsteğe bağlı olarak
fee_payer_keybayrağını kullanarak ATA oluşturma için özel bir ücret ödeyicisi belirleyebilirsiniz.
Terminal 4: Kora RPC Sunucusunu Başlatma
# From ./server directorykora rpc start --signers-config signers.toml
Not:
price_source = "Jupiter"kullanan üretim dağıtımları içinJUPITER_API_KEYortam değişkenini ayarlamanız gerekir. Sunucu bu ayar olmadan başlatılamaz:JUPITER_API_KEY=your_api_key kora rpc start --signers-config signers.toml
Sunucu, yapılandırmayı kora.toml ve signers.toml dosyalarından okur ve
paylaşılan .env dosyasından ortam değişkenlerini kullanır. Burada
belirtilenden farklı bir klasör yapısı kullanıyorsanız, kora.toml konumunu
belirtmek için --config ve imzalayıcı yapılandırma dizininizi belirtmek için
--signers-config kullanmanız gerekebilir:
kora rpc --config path/to/kora.toml start --signers-config path/to/signers.toml
RPC sunucu seçenekleri hakkında yardım için kora rpc -h adresine
erişebilirsiniz.
Terminal 5: İstemci Demosunu Çalıştırın
# From ./client directorypnpm start
Şuna benzer bir çıktı görmelisiniz:
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
Bu, Kora sunucunuzun çalıştığını ve düzgün şekilde yapılandırıldığını doğrular!
Sonraki Adımlar
Temel kurulumu çalıştırdıktan sonra, tam Kora akış demosuna göz atın:
ek Kora RPC metodlarını keşfedin:
estimateTransactionFee- İşlemler için ücretleri hesaplayıngetPayerSigner- Ödeme yapan imzalayıcıyı ve ödeme hedefini alıngetSupportedTokens- Desteklenen ödeme tokenlarının bir dizisini döndürürsignTransaction- Ücretler karşılandığında işlemleri koşullu olarak imzalayıntransferTransaction- SOL transferi veya SPL token transfer işlemleri oluşturun (Kora ücret ödeyicisi tarafından imzalanır)signAndSendTransaction- Bir işlemi Kora ücret ödeyicisiyle koşullu olarak imzalar ve yapılandırılmış Solana RPC'ye gönderirgetPaymentInstruction- Bir işlem için ödeme talimatı alın
Sorularınız mı var?
Solana Stack Exchange üzerinde Kora
etiketi ile soru sorun.
Is this page helpful?