Ana içeriğe geç

Solana Test Validator Kılavuzu

Solana test validator, Solana blockchain'i için yerel bir emülatördür ve geliştiricilere, kamu testnet veya mainnet'e bağlanmadan Solana programlarını inşa etmek ve test etmek için özel ve kontrollü bir ortam sağlar. Eğer Solana CLI araç setiniz zaten yüklüyse, test validator'ü aşağıdaki komutla çalıştırabilirsiniz:

solana-test-validator

Avantajlar

  • Blockchain durumunu herhangi bir anda sıfırlama yeteneği
  • Farklı ağ koşullarını simüle etme yeteneği
  • RPC hız limitlerinin olmaması
  • Airdrop limitlerinin olmaması
  • Doğrudan on-chain program dağıtımı
  • Kamu kümesinden hesapları klonlama yeteneği
  • Dosyalardan hesap yükleme yeteneği
  • Yapılandırılabilir işlem geçmişi saklama süresi
  • Yapılandırılabilir dönem uzunluğu

Kurulum

solana-test-validator Solana CLI araç setinin bir parçası olduğu için, Solana'nın komut satırı araçlarının yüklü olduğundan emin olun. Aşağıdaki komutla yükleyebilirsiniz:

sh -c "$(curl -sSfL https://release.anza.xyz/stable/install)"

stable ifadesini, istediğiniz sürümün yazılım sürümüyle eşleşen sürüm etiketiyle (değişken: v1.18.12) veya üç sembolik kanal isminden biriyle değiştirebilirsiniz: stable, beta veya edge.

Daha ayrıntılı talimatlar için, Solana geliştirme için yerel ortamınızı ayarlama kılavuzuna göz atın. Bu, Solana CLI, Anchor yüklemesini, yerel bir anahtar çifti edinmeyi ve daha fazlasını içermektedir.

Test Validator'ü Başlatma

Yerel validator’ünüzü başlatmak için:

solana-test-validator

Bu komut yeni bir defter oluşturur ve validator'ü başlatır.

Çalışan Bir Test Validator'ü ile Etkileşim

solana-test-validator'ü başlattıktan sonra, çeşitli Solana CLI (Komut Satırı Arayüzü) komutlarıyla onunla etkileşimde bulunabilirsiniz. Bu komutlar, program dağıtımları, hesapları yönetme, işlemler gönderme ve daha birçok şeyi yapmanıza olanak tanır. İşte kullanacağınız anahtar komutlar için ayrıntılı bir kılavuz.

Test Validator'ün Durumunu Kontrol Etme

Test validator ile etkileşime girmeden önce, durumunu doğrulamak ve düzgün çalıştığından emin olmak faydalıdır.

solana ping

Bu komut, yerel test validator'ü pingler ve geçerli blockhash ile gecikmeyi döndürerek aktif olduğunu doğrular.

Hesap Yönetimi

Yeni bir anahtar çifti (hesap) oluşturmak için:

solana-keygen new

Bu komut yeni bir anahtar çifti oluşturur ve belirtilen dosyaya kaydeder.

Hesabınıza SOL eklemek için:

solana airdrop 10 <ACCOUNT_ADDRESS>

Not: Bir hesabın detaylarını, bakiye ve sahip gibi, almak için:

solana account <ACCOUNT_ADDRESS>

Hesabın var olması için önce hesaba para yatırmanız gerekir.

Bu komut, belirtilen hesap adresine 10 SOL gönderir.

Programları Dağıtma ve Yönetme

Derlenmiş bir programı (BPF) test validator'e dağıtmak için:

solana program deploy <PROGRAM_FILE_PATH>

Bu, bir programı blockchain'e yükler ve dağıtır.

Dağıtılan bir programın detaylarını kontrol etmek için:

solana program show <ACCOUNT_ADDRESS>

İşlemleri Gönderme

Bir hesaptan diğerine SOL transfer etmek için:

solana transfer --from /path/to/keypair.json <RECIPIENT_ADDRESS> <AMOUNT>

Bu, AMOUNT kadar SOL'u kaynak hesaptan RECIPIENT_ADDRESS'e gönderir.

İşlemleri Simüle Etme ve Onaylama

Gerçekten bir işlemi göndermeden önce, başarısının olup olmadığını görmek için onu simüle edebilirsiniz:

solana transfer --from /path/to/keypair.json --simulate <RECIPIENT_ADDRESS> <AMOUNT>

Bir işlemin detaylarını ve durumunu onaylamak için:

solana confirm <TRANSACTION_SIGNATURE>

Son Blok Üretimini Görüntüleme

Performans sorunlarını gidermek için yararlı olabilecek son blok üretimi hakkında bilgi almak için:

solana block-production

Token Hesapları Oluşturma

Logları Ayarlama

Hata ayıklama için daha ayrıntılı loglar istiyorsanız:

solana logs

Bu, validator'den log mesajlarını akıtır.

Faydalı İpuçları:

  • Hata ayıklama için daha ayrıntılı çıktı almak istiyorsanız -v bayrağı ile log ayrıntılığını artırabilirsiniz.
  • RPC sunucu ayarlarını özelleştirmek için --rpc-port ve --rpc-bind-address seçeneklerini kullanın.
  • Validator tarafından kullanılan CPU çekirdeklerini --gossip-host seçeneği ile ayarlayarak ağ koşullarını daha gerçekçi bir şekilde simüle edebilirsiniz.

Yapılandırma

CLI Araç Seti yapılandırmasını kontrol edin:

solana genesis-hash

Solana test validator için tüm yapılandırma seçeneklerini görüntüleyin:

solana-test-validator --help

Yerel Defter

Varsayılan olarak, defter verileri, mevcut çalışma dizininizde "test-ledger" adlı bir dizinde saklanır.

Defter Lokasyonunu Belirleme

Test validator'ü başlatırken, defter verileri için farklı bir dizin belirleyebilirsiniz --ledger seçeneğiyle:

solana-test-validator --ledger /path/to/custom/ledger

Defteri Sıfırlama

Varsayılan olarak, validator mevcut bir deftere devam eder. Defteri sıfırlamak için, defter dizinini manuel olarak silmeli veya validator'ü --reset bayrağı ile yeniden başlatmalısınız:

solana-test-validator --reset

Eğer defter mevcutsa, bu komut defteri genesis'e sıfırlar, bu da mevcut verileri silerek temiz bir başlangıç yapar.


Çalışma Zamanı Özellikleri

Solana, test validator çalıştırıldığında belirli blockchain özelliklerini etkinleştirme veya devre dışı bırakmanıza olanak tanıyan bir özellik seti mekanizmasına sahiptir. Varsayılan olarak, test validator tüm çalışma zamanı özellikleri etkin olarak çalışır.

Çalışma zamanı özellik durumu sorgulamak için:

solana feature status <ADDRESS>
  • ADDRESS, sorgulanacak özellik durumudur [varsayılan: tüm bilinen özellikler]

Belirli bir özelliği etkinleştirmek için:

solana feature activate <FEATURE_KEYPAIR> <CLUSTER>
  • FEATURE_KEYPAIR, etkinleştirilecek özelliğin imzacı bilgisidir
  • CLUSTER, özelliği etkinleştireceğiniz kümedir

Genesis'te belirli özellikleri devre dışı bırakmak için:

solana-test-validator --deactivate-feature <FEATURE_PUBKEY> --reset

Bu, yeni bir defter üzerinde yapılmalıdır, bu yüzden çalışma dizininizde halihazırda bir defter varsa, genesis'e sıfırlamak için --reset bayrağını eklemeniz gerekir.


Sürümleri Değiştirme

Mevcut solana-test-validator sürümünüzü kontrol etmek için:

solana-test-validator --version

solana-test-validator'ünüz, Solana CLI sürümüyle aynı sürümde çalışmaktadır.

Programlarınızı Solana çalışma zamanının farklı sürümlerine karşı test etmek için, birden fazla Solana CLI sürümü yükleyebilir ve bunlar arasında geçiş yapabilirsiniz:

solana-install init <VERSION>
  • VERSION, yüklemek istediğiniz CLI sürümüdür

Sürümleri değiştirdikten sonra doğru sürümde çalıştığına emin olmak için Solana test validator'ünüzü yeniden başlatmayı unutmayın.


Program Klonlama

Mevcut on-chain programları yerel ortamınıza eklemek için, programı yeni bir defter ile klonlayabilirsiniz.

Kümeden bir hesabı klonlamak için:

solana-test-validator --clone PROGRAM_ADDRESS --url CLUSTER_PROGRAM_IS_DEPLOYED_TO

Bu, standart programlarla etkileşimleri test etmek için yararlıdır.

Eğer çalışma dizininizde bir defter halihazırda mevcutsa, bir programı klonlayabilmek için defteri sıfırlamanız gerekir.

Bir defter zaten mevcutken bir kümeden bir hesabı klonlamak için:

solana-test-validator --clone PROGRAM_ADDRESS --url CLUSTER_PROGRAM_IS_DEPLOYED_TO --reset

Kümeden bir yükseltilebilir program ve onun yürütülebilir verilerini klonlamak için:

solana-test-validator --clone-upgradeable-program PROGRAM_ADDRESS --url CLUSTER_PROGRAM_IS_DEPLOYED_TO

Başlangıçta Hesapların Durumunu Sıfırlama

Varsayılan olarak, validator mevcut bir deftere devam eder (varsa). Ancak başlangıçta, defteri ya genesis'e ya da sağladığınız belirli hesap durumuna sıfırlayabilirsiniz.

Genesis'e Sıfırlama

Defteri genesis durumuna sıfırlamak için:

solana-test-validator --reset

Belirli Hesaplara Sıfırlama

Validator'ü her başlattığınızda belirli hesapların durumunu sıfırlamak için hesap anlık görüntüleri ve --account bayrağını kullanarak bir kombinasyon oluşturabilirsiniz.

Öncelikle, bir hesabın istenen durumunu JSON dosyası olarak kaydedin:

solana account PROGRAM_ADDRESS --output json > account_state.json

Daha sonra validator'ü sıfırladığınız her seferinde bu durumu yükleyin:

solana-test-validator --reset --account PROGRAM_ADDRESS account_state.json

Solana CLI Komutları

Tüm CLI komutlarını görüntülemek ve test validator ile etkileşimde bulunmanın diğer yollarını görmek için:

solana --help

Bu komut, mevcut tüm bayrakları, seçenekleri ve alt komutları listeler.


Örnek Kullanım Durumu

Yerel ağınızda bir USDC Token Hesabı oluşturun

  1. USDC mint adresini yerel validator'ünüze klonlayın
solana-test-validator --clone EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v --url mainnet-beta --reset
  1. Bir token hesabı oluşturun
spl-token create-account EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v --url localhost