Bir Taşıma Yöntemi Seçin
Tüm taşıma yöntemleri aynı bahşiş kuralını, aynı doğrulamayı ve aynı yönlendirmeyi uygular. Taşıma yöntemi yalnızca baytların Apex uç noktasına nasıl ulaştığını değiştirir.
İşlem boyutu sınırları her yerde aynıdır: legacy ve v0 işlemler 1232 bayta kadar, transaction v1 4096 bayta kadar.
Bahşişli ve imzalı bir işlem oluşturun
Bu sayfadaki örnekler dil başına tek bir yardımcıyı paylaşır. Yardımcı, hesaplama bütçesi ve bahşiş içeren bir memo işlemi oluşturur, onu imzalar ve bir imzayı onaylayabilir. İmzalı bir işlemi base64 olarak yazdırmak için doğrudan çalıştırın. cURL örnekleri bunu kullanır. Önce ortamı ayarlayın:JSON-RPC sendTransaction
Apex uç noktasının kökünePOST yapın. Bu, standart Solana sendTransaction biçimidir, dolayısıyla mevcut kod URL’yi değiştirip API anahtarını ekleyerek taşınır.
skipPreflight ve preflightCommitment etkisizdir. Simülasyon istiyorsanız göndermeden önce normal RPC’nizde simulateTransaction yöntemini çağırın.
Düz HTTP Rotaları
Bu rotalar aynı ana makine ve portta JSON-RPC’nin yanında yer alır ve JSON-RPC zarfını atlar.
İkili rotalarda seçenekler sorgu bayrakları olarak iletilir:
?mev_protect=1 ve &max_retries=N.
Hatalar, bir HTTP durumuyla birlikte JSON olarak gelir: {"error": "<label>", "message": "..."}. Hatalar ve hız sınırları sayfasına bakın.
POST /send
POST /send-bin
En ucuz HTTP yolu: girişte base64 ve JSON yoktur. Gövde, bayt bayt serileştirilmiş işlemin kendisidir.POST /send-batch
Tek bir istekte en fazla 16 bağımsız işlem gönderin. Gövde bir çerçeve dizisidir:GET /ping
pong döndürür. API anahtarı gerektirmez. Bir HTTP bağlantısını ihtiyaç duymadan önce açıp ısıtmak ve boşta kalan bir bağlantıyı canlı tutmak için kullanın. En iyi uygulamalar sayfasına bakın.
CORS
Her HTTP yanıtıAccess-Control-Allow-Origin: * taşır ve OPTIONS ön kontrol istekleri yanıtlanır, dolayısıyla yukarıdaki tüm rotalar tarayıcı kodundan çalışır. Bir anahtarı bir ön yüze koymadan önce tarayıcı notlarına bakın.
QUIC
QUIC, içeri girmenin en hızlı yoludur. Apex uç noktasına, API anahtarınızdan türetilen bir istemci sertifikasıyla bir kez doğrulanan tek bir kalıcı bağlantı tutar ve işlem başına bir akış açarsınız. Sıcak bir bağlantıda bir gönderim, bir akış açma ve bir yazmadan ibarettir, yani istemci tarafında birkaç mikrosaniye sürer. İki tür akış vardır:Rust
apex-sender-client crate’i taşıma yönteminin tamamını uygular: sertifika, canlı tutma, 0-RTT ile devam ettirme ve yeniden bağlanmalar. Bu program her akış türünde bir işlem gönderir. Hızlı başlangıç ile aynı Cargo.toml dosyasını kullanır.
Kabul Kodları
Çift yönlü bir akış şunlardan biriyle yanıt verir:
Bir ret, o veri paketi için kesindir. Yanıt gelmeden önce oluşan bir taşıma hatasını yeniden denemek güvenlidir, çünkü uç nokta imzaya göre tekilleştirir.
Diğer Dillerden QUIC
Taşıma yöntemini, istemci sertifikalarını destekleyen bir QUIC kütüphanesi olan herhangi bir dilde uygulayabilirsiniz. Bağlantı- TLS 1.3 ve ALPN
solana-tpuile QUIC (RFC 9000). - Sunucu sertifikası, kendinden imzalı bir yer tutucudur. Onu doğrulamayın.
- İstemci, API anahtarınızdan türetilen sertifikayı sunmalıdır.
- Apex uç noktası başına tek bir bağlantıyı açık tutun. Düzenli olarak QUIC PING gönderin (Rust istemcisi her saniye ping atar). Uç noktanın boşta kalma zaman aşımı 30 saniyedir. 0-RTT etkindir.
{ wire_transaction: Vec<u8>, mev_protect: bool, max_retry: Option<u16> } yapısının tam olarak bincode karşılığıdır. Veri paketinin tamamı en fazla 4160 bayt olmalıdır.
Kabul çerçevesi (yalnızca çift yönlü akışlar)
wire::encode_packet ve wire::decode_admission her iki çerçevenin referans uygulamasıdır.