Kaynaktan Derleme
Bu kılavuz, hem topluluk (açık çekirdek) derlemesini hem de tam tescilli derlemeyi kapsayarak qorechaind ikili dosyasını kaynaktan derleme sürecinde size yol gösterir.
Önkoşullar
| Bağımlılık | Minimum Sürüm | Notlar |
|---|---|---|
| Go | 1.26+ | Tüm derlemeler için gereklidir |
| CGO | Etkin (CGO_ENABLED=1) | PQC ve SVM FFI köprüleri için gereklidir |
| Rust araç zinciri | En son kararlı sürüm | libqorepqc ve libqoresvm derlemek için gereklidir |
| Make | 3.81+ | Derleme otomasyonu |
| Git | 2.x | Kaynak çekme |
Ortamınızı doğrulayın:
go version # go1.26.x or later
rustc --version # stable toolchain
cargo --version
echo $CGO_ENABLED # must be 1
Her go build, go test ve go run çağrısında CGO_ENABLED=1 ayarlı olmalıdır. PQC ve SVM modülleri cgo gerektiren FFI köprüleri kullanır.
Yerel Kütüphaneler
QoreChain, çalışma zamanında yüklenen, Rust ile derlenmiş iki yerel kütüphaneye bağlıdır.
libqorepqc (Kuantum Sonrası Kriptografi)
PQC kütüphanesi, C uyumlu bir FFI arabirimi aracılığıyla ML-DSA-87 (Dilithium-5) anahtar üretimi, imzalama ve doğrulama sağlar.
cd rust/qorepqc
cargo build --release
Derlenmiş kütüphane lib/{os}_{arch}/ dizinine yerleştirilir:
| Platform | Kütüphane Dosyası | Dizin |
|---|---|---|
| macOS arm64 | libqorepqc.dylib | lib/darwin_arm64/ |
| Linux amd64 | libqorepqc.so | lib/linux_amd64/ |
| Linux arm64 | libqorepqc.so | lib/linux_arm64/ |
libqoresvm (SVM Çalışma Zamanı)
SVM kütüphanesi, x/svm modülü için BPF program yürütme ortamını sağlar.
cd rust/qoresvm
cargo build --release
Çıktı, yukarıdakiyle aynı lib/{os}_{arch}/ kuralını izler (macOS'ta libqoresvm.dylib, Linux'ta libqoresvm.so).
Kütüphane Yolunu Ayarlama
Yerel kütüphaneler çalışma zamanında keşfedilebilir olmalıdır. Platformunuz için uygun ortam değişkenini ayarlayın:
macOS:
export DYLD_LIBRARY_PATH=$(pwd)/lib/darwin_arm64:$DYLD_LIBRARY_PATH
Linux:
export LD_LIBRARY_PATH=$(pwd)/lib/linux_amd64:$LD_LIBRARY_PATH
İpucu: Oturumlar arasında kalıcı olması için dışa aktarma komutunu kabuk profilinize (~/.bashrc, ~/.zshrc) ekleyin.
Açık Çekirdek Mimarisi
QoreChain bir açık çekirdek modelini izler:
- Topluluk derlemesi — Her QoreChain modülü için (x/pqc, x/ai, x/reputation, x/qca, x/svm, x/crossvm vb.) tüm modül arabirimlerini, CLI komutlarını, protobuf tanımlarını ve mesaj türlerini içerir. Tescilli modüllerin keeper'ları, güvenli varsayılan değerler veya no-op yanıtlar döndüren stub uygulamaları kullanır. Bu sayede üçüncü taraf araçlar, cüzdanlar ve indeksleyiciler, tescilli koda ihtiyaç duymadan tüm QoreChain API'leriyle entegre olabilir.
- Tam (tescilli) derleme —
proprietaryderleme etiketinin arkasındaki eksiksiz keeper uygulamalarını devreye alır. Buna gerçek AI anomali tespit mantığı, PRISM konsensüs parametre ayarlaması, gelişmiş itibar puanlaması ve tüm üretim düzeyindeki özellikler dahildir.
Her iki derleme de aynı qorechaind ikili dosya adını üretir ve birebir aynı CLI komutlarını ve gRPC/REST uç noktalarını sunar. Fark, bu arabirimlerin arkasındaki keeper mantığının çalışma zamanı davranışındadır.
Topluluk Derlemesi
CGO_ENABLED=1 go build -o qorechaind ./cmd/qorechaind/
Bu komut, tescilli özellikler için stub keeper'larla birlikte tüm genel modül arabirimlerini derler. Ortaya çıkan ikili dosya şunlar için tamamen işlevseldir:
- Bir doğrulayıcı düğümü çalıştırma
- İşlem gönderme ve sorgulama
- EVM, CosmWasm ve SVM sanal makineleriyle etkileşim
- Üçüncü taraf entegrasyonları ve araçları oluşturma
- Yerel geliştirme ve test
Tam Derleme (Tescilli)
CGO_ENABLED=1 go build -tags proprietary -o qorechaind ./cmd/qorechaind/
-tags proprietary bayrağı, herkese açık kaynak ağacının parçası olmayan tam keeper uygulamalarını devreye alır.
Testleri Çalıştırma
CGO_ENABLED=1 go test ./... -count=1
-count=1 bayrağı test önbelleklemesini devre dışı bırakarak her seferinde temiz bir çalışma sağlar. Tek tek paket testleri şu şekilde çalıştırılabilir:
CGO_ENABLED=1 go test ./x/pqc/... -count=1 -v
CGO_ENABLED=1 go test ./x/ai/... -count=1 -v
CGO_ENABLED=1 go test ./x/svm/... -count=1 -v
Rust kütüphane testlerini ayrı olarak çalıştırın:
cd rust/qorepqc && cargo test
cd rust/qoresvm && cargo test
Derleme Doğrulaması
Başarılı bir derlemenin ardından ikili dosyayı doğrulayın:
./qorechaind version
./qorechaind init test-node --chain-id qorechain-diana
init komutu, ~/.qorechaind/ içinde hatasız bir genesis dosyası ve düğüm yapılandırması oluşturmalıdır. Yukarıdaki örnek, qorechain-diana test ağına karşı başlatma yapar — ana ağ için, v3.1.97 zincir sürümünü çalıştıran canlı ağ olan --chain-id qorechain-vladi değerini kullanın.
Docker Derlemesi
Konteynerleştirilmiş derlemeler için depo kök dizininde bir Dockerfile sağlanmıştır:
docker build -t qorechaind:latest .
Docker imajı, tüm yerel kütüphane derlemesini ve yol yapılandırmasını otomatik olarak halleder. Docker Compose ile bir düğüm çalıştırma hakkında Hızlı Başlangıç kılavuzuna bakın.
Sorun Giderme
cgo: C compiler not found
Xcode CLI araçlarını (macOS) veya build-essential paketini (Linux) yükleyin
cannot find -lqorepqc
Önce Rust kütüphanelerini derleyin ve LD_LIBRARY_PATH / DYLD_LIBRARY_PATH değişkenini ayarlayın
undefined: sonic.*
go.sum dosyasının güncel olduğundan emin olun: go mod tidy
signal: killed during build
Kullanılabilir belleği artırın (düşük bellek limitli Docker ortamlarında sık görülür)
PQC tests fail with size mismatch
pqcrypto v0.5.0+ sürümünü kullandığınızı doğrulayın (ML-DSA-87: pubkey=2592, privkey=4896, sig=4627 bayt)