Ana içeriğe atla

Documentation Index

Fetch the complete documentation index at: https://docs.raydium.io/llms.txt

Use this file to discover all available pages before exploring further.

Bu sayfa yapay zekâ tarafından otomatik olarak çevrilmiştir. İngilizce sürüm esas alınır.İngilizce sürümü görüntüle →
Her Raydium programında en az bir ayrıcalıklı rol bulunur: programı yükseltebilen, yeni konfigürasyonlar oluşturabilen ya da protokol ücretlerini çekebilen bir anahtar. Bu rollerin yapabileceklerini en aza indirmek (ve onları gecikmeli multisig’lerin arkasına kilitlemek), ele geçirilmiş bir yöneticiye karşı birincil savunma katmanını oluşturur. Bu sayfa rolleri ve pratikte nasıl güvence altına alındıklarını belgeler.

Programa göre roller

AMM v4

RolYetki adresiYapabilecekleri
Program yükseltmeSquads multisig (3/4)Yeni program bayt kodunu dağıtmak
Pool yöneticisiTreasury multisig (3/5)Pool durumunu değiştirmek, mevcut pool’lardaki ücretleri güncellemek

CPMM

RolYetki adresiYapabilecekleri
Program yükseltmeSquads multisig (3/4)Yeni program bayt kodunu dağıtmak
AmmConfig yöneticisiTreasury multisig (3/5)Yeni AmmConfig’ler (ücret kademeleri) oluşturmak; mevcut olanları açıp kapatmak
Pool oluşturma ücreti alıcısıTreasury multisig (3/5)Tek seferlik pool oluşturma ücretini almak

CLMM

RolYetki adresiYapabilecekleri
Program yükseltmeSquads multisig (3/4)Yeni program bayt kodunu dağıtmak
AmmConfig yöneticisiTreasury multisig (3/5)AmmConfig oluşturmak/değiştirmek
DynamicFeeConfig yöneticisiTreasury multisig (3/5)CreateDynamicFeeConfig / UpdateDynamicFeeConfigCreateCustomizablePool çağrısının seçebileceği dinamik ücret kademelerini kalibre etmek
limit_order_admin (program genelinde)Çevrimdışı operasyonel sıcak cüzdan, multisig değilSahipleri adına limit emirlerini kapatmak ve sonuçlandırmak. Keeper anahtarı, program genelinde sabit tek bir değerdir (mainnet ile devnet’te farklı değer taşır); SettleLimitOrder / CloseLimitOrder üzerinde signer == limit_order.owner || signer == limit_order_admin::ID kontrolüyle doğrulanır. Çıktı her zaman asıl sahibin ATA’sına gider; keeper fonları yönlendiremez, emirleri değiştiremez veya yeni emir açamaz.
limit_order_admin, kasıtlı olarak dar kapsamlı bir operasyonel roldür. Bir zincir dışı keeper’ın, emir sahibinin çevrimiçi olmasına gerek kalmadan dolmuş emirleri süpürebilmesi için vardır. Keeper anahtarı sıcaktır (keeper VM’inde yaşar) ve yukarıdaki multisig’lerden bağımsız olarak döndürülür. Somut olarak keeper yetkisi şunlarla sınırlıdır:
  • SettleLimitOrder — bir emirin doldurulmuş çıktısını emrin limit fiyatından sahibin ATA’sına iletmek.
  • CloseLimitOrder — tamamen sonuçlanmış bir emrin hesabını kapatarak kira bedelini geri almak (kira emrin sahibine gider).
OpenLimitOrder, IncreaseLimitOrder, DecreaseLimitOrder çağrılamaz; herhangi bir pool alanını değiştiremez ya da başka bir talimat için imzalayamaz; bu kontroller, talimatın Accounts struct’ındaki seed ve has_one kısıtlamalarıyla zincir üzerinde uygulanır. Ele geçirilmiş bir keeper en kötü ihtimalle kullanılamaz hale gelir (emirler, sahip kendisi sonuçlandırana kadar beklemede kalır) ya da yasal olarak dolabilecek emirleri sıra dışı sonuçlandırır/kapatır; kullanıcı fonlarını sahibin önceden yetkilendirdiği yerden başka bir yere taşıyamaz.

Farm v6

RolYetki adresiYapabilecekleri
Program yükseltmeSquads multisig (3/4)Yeni program bayt kodunu dağıtmak
Farm oluşturucu (farm başına)Farmın oluşturucu cüzdanıÖdül kasalarını doldurmak, programları uzatmak, kullanılmayan ödülleri geri almak
Bireysel farm’larda protokol yöneticisi yoktur — her farm’ın oluşturucusu yalnızca kendi farm’ını kontrol eder ve oluşturucunun yetkileri sınırlıdır (kullanıcı stake’lerini ele geçiremez, stake mint’ini değiştiremez).

LaunchLab

RolYetki adresiYapabilecekleri
Program yükseltmeSquads multisig (3/4)Yeni program bayt kodunu dağıtmak
Launch oluşturucu (launch başına)Launch’ın oluşturucu cüzdanıMezuniyet sonrası oluşturucu ücretlerini toplamak; tamamlanmamış eğri artığını çekmek
Launch’larda eğrileri değiştirebilecek veya toplanan fonları ele geçirebilecek bir protokol yöneticisi bulunmaz.

Program yükseltme yetkisi

Raydium’un programları standart Solana BPF Loader v3 yükseltme mekanizmasını kullanır. Tüm programlar için yükseltme yetkisi 3/4 Squads multisig’ine aittir. 3/4 tercih edilmesinin nedeni: tek bir anahtarın ele geçirilmesinin yeterli olmaması, buna karşın meşru bir yükseltmenin koordinasyonunun yönetilebilir kalması. Dört yetki sahibi, temel ekip üyelerinin elinde bulundurduğu bağımsız, hava boşluklu soğuk cihaz imzacılarıdır. Sıralı imzalama, aynı işlemde paralel onayları engeller; işlemler sabit bir son kullanma penceresi taşır. Multisig operasyonları Solana’nın STRIDE Programı (Asymmetric Research) ile ortaklık içinde periyodik olarak gözden geçirilir.

Yükseltme yetkisini kaldırmak

Raydium, hiçbir programın yükseltme yetkisini null olarak ayarlamamıştır. Protokol, programların yükseltilebilir olması gerektiği ilkesiyle çalışır (hataları düzeltmek, Token-2022 gibi uzantılar eklemek, entegrasyon sapmalarını gidermek için). Ödün noktası: kullanıcılar, 3/4 multisig’in yalnızca iyi incelenmiş yükseltmeleri dağıtacağına güvenir. Değişmez bir alternatif isteyen kullanıcılar için eski AMM v4 programı son denetiminden bu yana kararlı bir şekilde çalışmaktadır; 18 aydır sıfır yükseltme. Yetki hâlâ var olsa da bu kod yolu fiilen dondurulmuş durumdadır.

AmmConfig yetkisi

Her yeni AmmConfig oluşturma işlemi izne tabidir; 3/5 treasury multisig yeni ücret kademelerini ve tick aralıklarını onaylar. Mevcut pool’lar AmmConfig’lerine PDA üzerinden başvurur; pool’un ücret kademesi AmmConfig’in söylediklerinden ibarettir. Yöneticiler mevcut bir AmmConfig’i değiştirebilir mi? Teknik olarak evet. updateAmmConfig, yönetici tarafından çağrılabilir. Pratikte, dağıtılmış AmmConfig’lerde değişiklik yapılmaktan kaçınılır; çünkü bu, söz konusu konfigürasyonu kullanan tüm pool’ların ekonomisini sessizce değiştirir. Protokol politikası, her değişiklik için yeni bir AmmConfig oluşturmak ve göçüm yapmaktır. Yöneticiler konfigürasyon aracılığıyla protokol ücretlerini çalabilir mi? Hayır — AmmConfig ücret parametrelerini içerir ancak protokol ücreti alıcısını içermez; bu, pool başına ayrı ve değişmez bir adrestir.

Protokol ücreti talebi

Swap ücretlerinin bir kısmı (konfigürasyona göre genellikle 25 bps swap ücretinin 3–12 bps’i) bir protokol ücreti kasasında birikir. Multisig bu birikmiş ücretleri çekebilir. Kullanıcılar LP bakiyelerinin bu nedenle değiştiğini hiçbir zaman görmez; bu, LP parası değil, protokolün önceden ayrılmış payıdır.

Farm oluşturucu yetkisi

Farm v6, oluşturucuya şu yetkileri tanır:
  • Ödül kasasını doldurmak (daha fazla token eklemek).
  • Programı uzatmak (bitiş zamanını ileri almak).
  • Bitiş zamanından sonra withdrawReward çağırarak kullanılmayan kasa bakiyesini geri almak.
Farm oluşturucuları şunları yapamaz:
  • Stake edilmiş kullanıcı LP’sini çekmek.
  • Stake mint’ini değiştirmek.
  • Emisyon oranlarını geriye dönük olarak değiştirmek (yalnızca setRewards aracılığıyla ileriye yönelik).
  • Kullanıcı hasat işlemlerini dondurmak.
Kötü niyetli bir farm oluşturucusu en kötü ihtimalle kasayı yetersiz finanse ederek farm’ın kuruyup kalmasına yol açabilir; kullanıcıların asıl stake’i her zaman güvende kalır.

Squads multisig konfigürasyonu

Raydium, farklı risk yüzeyleri için iki ayrı Squads multisig işletir. Her ikisi de Squads Protocol arayüzü üzerinden zincir üzerinde incelenebilir.
MultisigEşikZaman kilidiKapsam
Program yükseltme3/424 saatAMM v4, CPMM, CLMM, LaunchLab, Lock, AMM Routing, Stable Swap ve eski Farm/Staking programları için yeni program bayt kodunu dağıtmanın tek yetkisi. app.squads.so/.../FytDr…ceZQK adresinden görüntüleyin.
Treasury3/5yokTreasury varlıkları, protokol gelirleri, operasyonel giderler. Aynı zamanda Raydium’un sınırlı program yöneticisi yetkisini (AmmConfig oluşturma, protokol ücretlerini süpürme, pool parametrelerini yapılandırma) geçici olarak elinde bulundurur. v3.squads.so/dashboard/RVha…dHdtYz09 adresinden görüntüleyin.
Yükseltme multisig’inin operasyonel özellikleri:
  • Herhangi bir işlemde 24 saatlik zaman kilidi. Bugün onaylanan bir yükseltme en erken 24 saat sonra yürütülür; bu süre kullanıcılara tepki için zaman tanır.
  • Hava boşluklu soğuk cihaz imzalama. Soğuk cihazların ağ kartları fiziksel olarak çıkarılmıştır; yalnızca bir donanım cüzdanına bağlanır ve işlem verilerini ayrı bir sıcak cihazdan QR kodu aracılığıyla okurlar.
  • Sıralı imzalama. Bir soğuk cihaz bir işlem oluşturup imzaladıktan sonra, bir sonraki soğuk cihaz kendi imzalama sürecini başlatabilir; bu sayede aynı işlem üzerinde çakışan veya paralel imzalar engellenir.
  • İşlem son kullanma tarihi. Her işlem sabit bir son kullanma penceresi taşır; eski işlemler otomatik olarak geçersiz hale gelir.
  • TOTP + fiziksel anahtar zorunluluğu, işlem başlatma ve zincir üzerinde yayın için kullanılan sıcak cihazlarda uygulanır.
  • Kamuya açık işlem kuyruğu. Herkes Squads arayüzünde bekleyen yükseltmeleri izleyebilir.
Treasury multisig’inde zaman kilidi yoktur — kapsamı daha dardır ve rutin operasyonların (AmmConfig oluşturma, ücret süpürme) aynı gün tamamlanması gerekir. Treasury multisig, yukarıdaki program bazlı tablolarda listelenen sınırlı program yöneticisi yetkisini de elinde bulundurur; bu geçici bir düzenlemedir ve projenin güvenlik ortaklarıyla periyodik olarak gözden geçirilir.

Zincir üzerinde yetkiyi doğrulamak

Bir programın mevcut yükseltme yetkisini doğrulamanın en basit yolu:
solana program show <PROGRAM_ID>
Çıktı şunları içerir:
Program Id:          CPMMoo8L3F4NbTegBCKVNunggL7H1Zpdmwpwh8KMoZ0F
Owner:               BPFLoaderUpgradeab1e11111111111111111111111
ProgramData Address: <ProgramDataPDA>
Authority:           <EXPECTED_MULTISIG_ADDRESS>
Last Deployed In Slot: <slot>
Data Length: <n> bytes
Authority beklenen Squads multisig adresiyle eşleşmiyorsa bir sorun var demektir. Raydium beklenen yetki adreslerini reference/program-addresses üzerinde yayınlar. AmmConfig / pool yöneticisi rolleri için zincir üzerindeki hesabı çekip şöyle çözümleyebilirsiniz:
const config = await raydium.cpmm.getAmmConfig(configPda);
console.log("AmmConfig admin:", config.admin.toBase58());
// Beklenen: 3/5 treasury multisig.

Geçmiş yetki değişiklikleri

TarihProgramDeğişiklik
2022-12AMM v4Olay sonrasında yükseltme yetkisi tek imzadan 3/4 multisig’e taşındı
2023-02Tüm programlarTüm operasyonel roller 3/5 treasury multisig altında birleştirildi
2023-11CLMMMaruziyeti azaltmak için yalnızca ödül operasyonlarına yönelik ikinci bir multisig eklendi
2024-05CPMMİlk günden itibaren multisig yetkisiyle dağıtıldı

Kullanıcı açısından değerlendirmeler

Kullanıcı/LP/entegratör olarak ne yapmalısınız?
  1. Büyük tahsislerden önce yükseltme yetkisini kontrol edin. Belgelenen multisig ile eşleştiğini doğrulayın.
  2. Multisig etkinliğini izleyin. Squads arayüzü bekleyen işlemleri gösterir; planlı bir yükseltme, değişikliğe katılmıyorsanız pozisyonunuzu kapatmanız için size 24 saat tanır.
  3. Zaman kilidi farkındalıklı geri çekilme stratejileri. Otomatik bileşik yapan bir sistem çalıştırıyorsanız, geri çekilme yolunuzun değiştirilmekte olan bir talimat gerektirmediğinden emin olun.
  4. Program değişmezliğini varsaymayın. Her Raydium programı yükseltilebilir; buna göre plan yapın.

Entegratörler için tuzaklar

1. Yetki adreslerini önbelleğe almak

Yükseltme yetkisini veya yönetici multisig adresini kodunuza sabit olarak yazarsanız ve bu adres daha sonra döndürülürse doğrulamanız başarısız olur. Çalışma zamanında reference/program-addresses adresinden çekin ya da periyodik olarak yenileyin.

2. AmmConfig’lerin değişmez olduğunu varsaymak

Herhangi bir anda yeni bir AmmConfig oluşturulabilir. Toplayıcınız/yönlendiriciniz tam konfigürasyon listesini periyodik olarak yeniden çekmelidir (saatlik yeterlidir).

3. Farm oluşturucu saldırı vektörleri

Düşük itibarli bir farm’a para yatırıyorsanız, oluşturucu farm’ı erken sonlandırarak ödül kasasını geri alabilir (henüz stake yapan kullanıcı yoksa). Kullanıcılar stake yaptıktan sonra pro-rata haklar program tarafından uygulanır; geri alma yalnızca makul bitiş sonrasındaki artığı kapsar.

Kaynaklar

Kaynaklar: