Ana içeriğe geç

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ıkMinimum SürümNotlar
Go1.26+Tüm derlemeler için gereklidir
CGOEtkin (CGO_ENABLED=1)PQC ve SVM FFI köprüleri için gereklidir
Rust araç zinciriEn son kararlı sürümlibqorepqc ve libqoresvm derlemek için gereklidir
Make3.81+Derleme otomasyonu
Git2.xKaynak ç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
tehlike

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:

PlatformKütüphane DosyasıDizin
macOS arm64libqorepqc.dyliblib/darwin_arm64/
Linux amd64libqorepqc.solib/linux_amd64/
Linux arm64libqorepqc.solib/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
bilgi

İ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) derlemeproprietary derleme 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)