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:
| Ad | Nedir |
|---|---|
zcd | Komut satırı aracı: anahtarlar, cüzdanlar, genesis, altın vektörler ve zcd ui. |
zycordd | Düğü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. |
İ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
go install yokturVe 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ün | Yeniden üretilebilir mi? | Mainnet'e katılır mı? | Neden |
|---|---|---|---|
zcd, zycordd — make build ile kaynaktan derlenmiş | Evet, bayt bayt aynı | Hayır | Saf 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şivi | Hayır | Evet | cgo: RandomX C++'tır, dolayısıyla çıktıda bir sistem C araç zinciri yer alır |
| Zycord Cüzdanı, Linux ve macOS | Hayır | geçersiz | cgo: çıktıda bir sistem C araç zinciri ve bir platform SDK'sı yer alır |
| Zycord Cüzdanı, Windows | Evet, bayt bayt aynı | geçersiz | cgo 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.
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#
curl | sh yapmayınDoğ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 0B29proje anahtarı parmak izidir. - Ele geçirilmiş bir makine. Bir cüzdan, çoktan yitirilmiş bir konağı savunamaz.
- Yalan söyleyen bir düğüm.
zcdve 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.