ZYCORD belgeler
Türkçe
ZycordBelgelerKurulum

Kurulum

Dosyaları bir makineye getirmek ve ne aldığınızı bilmek. Bir düğümü gerçekten çalıştırmak Düğüm çalıştırma sayfasının konusudur; bu sayfa kurulumla ilgilidir.

Zycord, iki komut satırı programı ve bir masaüstü uygulamasından oluşur:

AdNedir
zcdKomut satırı aracı: anahtarlar, cüzdanlar, genesis, altın vektörler ve zcd ui.
zycorddDüğüm: doğrular, madencilik yapar, eşlere hizmet verir, salt okunur bir RPC yanıtlar.
Zycord Cüzdanızcd ui'nin sunduğu aynı cüzdan arayüzünün çevresinde bir masaüstü penceresi.
Proje bugün nerede

İlk etiketli sürüm henüz yayımlanmadı, dolayısıyla şu anda giriş yolu kaynaktan derlemektir ve okunacak bölüm aşağıdakidir. Daha aşağıda anlatılan paket yöneticisi yolları ve sürüm arşivleri, etiketleme başladığında projenin dağıtılacağı biçimdir; burada belgelenmelerinin nedeni indirilecek bir şey olması değil, bildirimlerin depoda bulunması ve şimdi incelenebilir olmasıdır. Bunlar sürümler sayfasında görünecek.

Kaynaktan derleme#

Go sürümü go1.26.2'dir ve kaynağın bir parçasıdır. İki Go sürümü aynı paketi farklı makine koduna derler, dolayısıyla bir ikili dosya bir depo kadar bir derleyicinin de çıktısıdır — farklı bir Go ile yapılan bir yeniden derleme, aynı ağaçtan farklı bir dosya çıkarır. Bu yüzden make build onu sabitler (Makefile içinde GOTOOLCHAIN=go1.26.2) ve size özeti tutmayacak bir ikili dosyayı nedenini söylemeden vermek yerine, başka herhangi bir şeyin altında derlemeyi reddeder.

git clone https://gitlab.com/zycord-group/zycord-node.git
cd zycord-node
make build

go1.26.2 elinizde yoksa gidip onu bulmanız gerekmez: sabitleme, go komutunun ilk kullanımda tam olarak o araç zincirini getirmesini ve Go'nun kendi sağlama toplamı veritabanına karşı denetlemesini sağlar. Bu derlemede ağa dokunan tek şey budur.

Hangi ikili dosya bir ağa katılabilir#

Bu, sayfadaki en önemli paragraftır. RandomX bir derleme etiketinin ardında derlenir, dolayısıyla iki derleme vardır ve bunlardan yalnızca biri bir RandomX ağıyla konuşabilir — ki bu da hem mainnet hem de açık testnet demektir.

# Default: no cgo, no C toolchain, development engine only.
# Byte-for-byte reproducible. Runs a local devnet and nothing else.
make build           #  -> bin/zcd, bin/zycordd

# The network binary. cgo, so not reproducible.
make build-randomx   #  -> bin/zcd-randomx, bin/zycordd-randomx

İki derleme bilerek farklı dosyalar yazar. Eskiden aynı iki yolu yazıyorlardı, dolayısıyla ikinci çalışan ötekinin üzerine yazıyordu ve ad, içindeki motorun hangisi olduğu hakkında size hiçbir şey söylemiyordu. Ağ RandomX olan yerde zcd-randomx, olmayan yerde zcd çalıştırın; ikisini de derledikten sonra ikisi de yerindedir.

Etiketsiz derlenen bir ikili dosya, pow_engine değerini hesaplayamadığı bir ağda başlamayı reddeder. Asıl mesele o reddediştir: geri düşeceği geliştirme motorundan başka bir motor olmadığı için, böyle bir düğüm gördüğü her başlık için tek bir BLAKE3 geçişini proof of work olarak kabul ederdi — her sahtecilik geçerli, her çatal ağırlıksız ve hiçbir şey günlüklenmemiş olurdu. Tersi bakışımlı değildir: etiketli ikili dosya iki motoru da taşır ve bir devnet'i doğru çalıştırır.

Bir ikili dosyaya hangisini elinizde tuttuğunuzu sorun:

zcd version
Bu proje için bir go install yoktur

Ve bu bir gözden kaçırma değildir. go install bir modül yolunu modül vekili üzerinden çözer ve kök modülün adı zycord'dur — konak yok, ilk yol öğesinde nokta yok; araç zinciri bunu düpedüz reddeder. Ad bilinçlidir: go.mod hiçbir konak iddia etmez, çünkü bir konak bir kimlik yüzeyidir. Yukarıdaki klonlama Go araç zinciri yoludur ve zaten daha güçlü olanıdır — bir vekilin size verdiği her neyse onu değil, çıkardığınız etiketi derlersiniz.

İki güvence katmanı, ima edilmek yerine belirtiliyor#

Sürümler var olduğunda iki takım arşiv olacak ve bunlar ayrık kümelerdir. Hangisini alacağınıza karar vermeden önce okunacak tablo budur.

ÜrünYeniden üretilebilir mi?Mainnet'e katılır mı?Neden
zcd, zycordd — make build ile kaynaktan derlenmişEvet, bayt bayt aynıHayırSaf Go, CGO_ENABLED=0, -trimpath, derleme kimliği yok — ve dolayısıyla RandomX motoru da yok. Artık indirilebilir olarak dağıtılmıyor; SHA256SUMS.binaries, onu derleyip karşılaştırabilesiniz diye yayımlanıyor.
zcd, zycordd — -randomx arşiviHayırEvetcgo: RandomX C++'tır, dolayısıyla çıktıda bir sistem C araç zinciri yer alır
Zycord Cüzdanı, Linux ve macOSHayırgeçersizcgo: çıktıda bir sistem C araç zinciri ve bir platform SDK'sı yer alır
Zycord Cüzdanı, WindowsEvet, bayt bayt aynıgeçersizcgo yok: Wails, WebView2'ye saf Go üzerinden ulaşır

Sürümler yalnızca -randomx arşivlerini dağıtır — bir ağa katılamayan bir arşiv dağıtan bir sürüm, elinize ayağınıza dolanacak bir şey dağıtıyor demektir. Bunların sağlama toplamı SHA256SUMS.randomx ile alınır ve bilerek SHA256SUMS.binaries içinde bulunmazlar; çünkü bir cgo derlemesi, kimsenin bayt bayt yeniden üretemeyeceği bir derlemedir. SHA256SUMS.binaries, kendiniz yaptığınız bir derlemenin hangi özeti vermesi gerektiğini listeler. Bunu belirtmenin anlamı, bunun sizin adınıza yapılmış bir varsayım değil, sizin kararınız olmasıdır.

İşletim sisteminiz sizi neden uyaracak ve neden bir sertifika yok#

İmzasız bir çalıştırılabilir dosya, Windows'ta SmartScreen ve macOS'ta Gatekeeper tarafından engellenir. Olağan çözüm bir kod imzalama sertifikasıdır. O çözüm burada bütçe yüzünden değil, kuruluş gereği yoktur ve nedenini bir şey kurmadan önce anlamaya değer — uyarının neden çıktığını bilen bir kullanıcıyı sahte bir kurulumla oltaya getirmek çok daha zordur.

Bir Authenticode sertifikası, doğrulanmış bir yasal kimliği tasdik eden bir sertifika otoritesidir. Bütün işlevi budur; içinde bir yasal ad bulunmayan hiçbir biçimi yoktur. Apple Developer ID, aynı sorunun başka bir satıcıdaki hâlidir. Zycord takma adla yayımlanıyor ve bir sertifika satın almak bunu anında ortadan kaldırırdı.

Bu yüzden takma ad korunuyor. Bu, güven anlatısında bir boşluk değildir; başka bir anlatı seçer ve bu proje için daha güçlü olanını:

Bir sertifika "bu, X varlığından geldi" der.
Yeniden üretilebilir bir derleme ise "bu, şu kaynaktan geldi ve herkes denetleyebilir" der.

Anonim bir ağ için ağırlığı taşıyan ikincisidir ve bu bir slogan değildir: CI, main'e yapılan her gönderimde ve her etikette zcd'yi iki kez yeniden derler ve iki ikili dosya bir bayt bile farklıysa başarısız olur. İndirdiğiniz ikili dosyayı kimin derlediğine güvenmek zorunda değilsiniz. Onu kendiniz derleyip özetleri karşılaştırabilirsiniz — ve örtüşüyorlarsa, onu kimin derlediği sorusu önemini yitirir. O yordam, Bir indirmeyi doğrulama sayfasındadır.

Paket yöneticileri#

Proje, SmartScreen ve Gatekeeper ile boğuşmak yerine onların açık bıraktığı kapıdan geçiyor. Bir paket yöneticisi bir URL ve bir özetten kurar, imza istemez ve iki uyarıyı da tetiklemez. Bildirimler depodadır (packaging/) ve şimdi incelenebilir; onları sunan tap'ler ilk sürümle birlikte yayımlanacak.

Windows — Scoop#

Scoop, web işaretini kaldırmaz; işaret zaten en başta hiç iliştirilmez. Web işareti, tarayıcılar ve Windows'un ek çalıştırma kabuğu API'si tarafından uygulanır, ham HTTP istemcileri tarafından değil; Scoop ise [Net.HttpWebRequest] ya da aria2 üzerinden indirir. SmartScreen'in uygulama itibarı denetimi, Gezgin'den başlatılan işaretli dosyalarda devreye girer; hiç işaretlenmemiş ve bir terminalden bir ara katman üzerinden başlatılan bir dosya, o yola hiç ulaşmaz. Bildirim, sürüm URL'ini ve SHA-256'yı sabitler, dolayısıyla Scoop indirmeyi kurmadan önce doğrular.

Scoop'un kurduğu şey --devnet çalıştırır ve mainnet ile açık testnet'i reddeder — yukarıdaki iki katman tablosuna bakın. Windows'ta bir ağa katılmak için x86-64 -randomx zip dosyasını indirmeler sayfasından alın; ARM üzerindeki Windows'un böyle bir derlemesi yoktur ve yalnızca devnet çalıştırır. zcd version, ikili dosyanın hangi motoru taşıdığını yazdırır.

Scoop olmadan Windows

Taşınabilir bir zip bilinçlidir: bir .exe kurucusu ve bir MSI yoktur, çünkü imzasız bir kurucu tam da en kötü SmartScreen yolunu tetikleyen şeydir — tam ekran "Windows bilgisayarınızı korudu" engeli. Çıkarılan dosyalar bir terminalden bu olmadan çalışır. Masaüstü cüzdan, Windows 11'de ve güncel Windows 10'da önceden kurulu olan WebView2 çalışma zamanını ister; eksikse pencere açılmaz ve etrafından dolaşmanın yolu bir tarayıcıda zcd ui'dir.

macOS — Homebrew#

İki paket de cask değil, formula'dır ve bütün hüner budur: bir formula makinenizde kaynaktan derler, dolayısıyla ikili dosya indirilmiş bir dosya değildir ve karantina özniteliği taşımaz. Gatekeeper onu hiç görmez. Ayrıca bu, projenin derlemesine hiç güvenmiyorsunuz demektir — Homebrew kaynak arşivini getirir, SHA-256'sını denetler ve kendi araç zincirinizle derler.

Formula, saf Go ikili dosyalarını derler; dolayısıyla kurduğu şey --devnet çalıştırır ve mainnet ile açık testnet'i reddeder. macOS'ta bir ağa katılmak için mimarinize uygun -randomx arşivini alın ya da make build-randomx ile kendiniz derleyin.

Bir cask bunun tam tersidir ve bu proje bir tane dağıtmaz: indirilmiş, karantinaya alınmış, imzasız bir .app; ki bu ancak insanlardan bir güvenlik özelliğini kapatmalarını isteyerek çalışır. Homebrew o yolu bilerek kapatıyor — --no-quarantine, Homebrew 5.x'te kullanımdan kaldırıldı.

Bir sürüm zip'inden macOS

İçindeki .app karantinaya alınmış durumdadır ve macOS onu açmayı reddedecektir. Yine de açmak için: üzerine çift tıklayın ve reddedişi kapatın; Sistem Ayarları → Gizlilik & Güvenlik bölümüne gidin, Güvenlik'e ilerleyin; "Zycord Wallet engellendi" yazısının yanındaki Yine de Aç'a tıklayın; onaylayın ve kimlik doğrulayın.

Control tuşuyla tıklayıp Aç'ı seçmeyi söyleyen eski öğütlere uymayın

macOS 15 (Sequoia) o kısayolu kaldırdı. Control tuşuyla tıklamak artık Gatekeeper'ı geçersiz kılmıyor ve tek yol artık Sistem Ayarları.

Komut satırı arşivinde böyle bir sorun yoktur: zcd ve zycordd bir terminalden çalıştırılır ve orada xattr -d com.apple.quarantine, ilk açılış denetimini tek bir komutla temizler.

Linux#

Hiçbir türden gatekeeper yok. Önce sağlama toplamını ve imzayı doğrulayın — bkz. Bir indirmeyi doğrulama — sonra:

tar xzf zycord-<version>-linux-amd64-randomx.tar.gz
sudo install -m755 zycord-<version>-linux-amd64-randomx/zcd      /usr/local/bin/
sudo install -m755 zycord-<version>-linux-amd64-randomx/zycordd  /usr/local/bin/
zcd version    # must name randomx-v1

Bir sürümün dağıttığı tek düğüm arşivi budur; artık yanlışlıkla seçilecek düz bir arşiv yok. Debian ve Ubuntu'da .deb, dosyaları taşımaktan fazlasını yapar — bir systemd birimi ve ayrıcalıksız bir hesap getirir — ve kurulum betiğiyle birlikte iki yol da indirmeler sayfasında anlatılıyor. Linux'ta masaüstü cüzdan bir AppImage olarak dağıtılır, çünkü libwebkit2gtk her dağıtımda başka bir paket adı taşır.

Bir sunucuda#

Asla curl | sh yapmayın

Doğrulanmamış bir betiği bir kabuğa boru ile aktarmak, para tutan bir yazılım için yanlış bir duruştur ve betik bu projenin olsa bile yanlış bir duruştur — bu sayfanın bütün gerekçesi, yayımcıya güvenmek zorunda olmamanız gerektiğidir. packaging/install.sh indirir, sağlama toplamını ve imzayı doğrular ve ancak ondan sonra kurar. İndirin, okuyun, sonra çalıştırın.

install.sh, tanıklığı yapılan arşivi — saf Go olanı — kurar; çünkü sağlama toplamı ve imza yürüyüşünün konusu o katmandır ve bir imzayı doğrulayıp sonra başka bir şey kuran bir betik gösteriden ibaret olurdu. Dolayısıyla /usr/local/bin içine koyduğu ikili dosyalar mainnet'i ve açık testnet'i reddeder ve betik bunu yazdırdığı son şey olarak söyler. Bir ağa katılması amaçlanan bir sunucu için -randomx arşivini elle açın.

Bir sunucuda cüzdan arayüzünü kullanmak için bir port açmayın. zcd ui geri döngüye bağlanır ve başka her şeyi reddeder; onu ssh üzerinden yönlendirin. Yordam, Düğüm çalıştırma altındadır.

Bütün bunların sizi korumadığı şeyler#

Açıkça belirtiliyor, çünkü yalnızca güçlü yanlarını sıralayan bir güvenlik sayfası bir reklamdır.

  • Kötü niyetli bir depo. Yeniden üretilebilir derlemeler, bir ikili dosyanın kaynağıyla örtüştüğünü kanıtlar. Kaynağın dürüst olup olmadığı hakkında hiçbir şey söylemezler. Onu okuyun — ve birazdan güveneceğiniz ikili dosyaya karşı altın vektörleri çalıştırın.
  • Sahte bir sürüm sayfası. Biri inandırıcı bir kopya kurarsa ve siz hiçbir zaman bir imza doğrulamazsanız, o sayfanın kendi sağlama toplamı dosyasıyla örtüşen özetler hiçbir şey kanıtlamaz. Dayanak, E724 39CE DD85 11F9 D607 550B 87FD 60D5 EB4A 0B29 proje anahtarı parmak izidir.
  • Ele geçirilmiş bir makine. Bir cüzdan, çoktan yitirilmiş bir konağı savunamaz.
  • Yalan söyleyen bir düğüm. zcd ve cüzdan tam düğüm değildir; bir düğümün kendilerine söylediğine inanırlar. Cüzdanın, zincir kimliği sizin ileri sürdüğünüz ağla uyuşmayan bir düğümü reddetmesinin ve --confirm-rpc'nin var olmasının nedeni budur — bkz. Cüzdan.
  • Size ZCD satan herkes. Henüz bir mainnet parası yok. Genesis gerçekleşmedi.