ZYCORD belgeler
Türkçe
ZycordBelgelerMadencilik

Madencilik

Bilgisayarınızda zaten bulunan işlemci üzerinde, RandomX ile proof of work. Yarışılacak bir ASIC çiftliği ve premine yok — paralar madencilikten gelir, başka hiçbir yerden değil.

Tamamı#

# A payout address. The node never sees the key behind it.
zcd wallet new --out miner.json

# Mine to it.
zycordd --testnet --dir ./testnet \
  --mine --payout $(zcd wallet address --key miner.json)

Açık testnet'te ve mainnet'te bunlar -randomx ikili dosyalarıdır — zcd-randomx ve zycordd-randomx. Etiketsiz derlenen bir ikili dosya, geliştirme motoruna geri düşmek yerine başlamayı reddeder. Kurulum sayfasına bakın.

İstediğiniz zaman başlatın#

Ağının ilk bloğunun vakti gelmeden başlatılan bir düğüm erken madencilik yapmaz ve o saatte yeniden başlatılması gerekmez. Zaman damgasına kendi saati ulaşmamış bir bloğu kurmayı reddeder, bekler ve kendiliğinden başlar. Beklerken bunu, beklediği zamanı ve ne kadar kaldığını da söyleyerek bildirir:

waiting to mine: the next block cannot be dated before 2026-10-01T00:00:01Z
(unix 1790812801), and this node's clock reads 2026-09-30T20:12:31Z - 3h47m30s
to wait. Leave this running: mining starts on its own and there is nothing to
restart or reconfigure.

Bu, çalışmayı değil, madencilik yapmayı reddetmektir: düğüm bu süre boyunca eşleşir, eşitlenir ve RPC'sini sunar. Uzun bir bekleme takılma gibi görünmesin diye ileti her on dakikada bir yinelenir.

Bunu söylemeyi hiç bırakmıyorsa saatiniz yanlıştır

Bekleme bu makinenin saatine göre hesaplanır, dolayısıyla günlerce geri ayarlanmış bir saat günlerce bekler. Başka her şeyden önce onu denetleyin.

Bir başlangıç zamanının yayımlanmasını güvenli kılan da o reddediştir. O olmasaydı madenci, başlığını bunun yerine ortanca tabana ileri tarihlerdi; genesis öncesinde bu taban genesis_time'ın kendisidir — dolayısıyla erken bir başlangıç, kimsenin değerlendiremeyeceği özel bir zincir üretirdi ve zorluk kuralı bildirilen çözüm sürelerini ölçtüğü için, hedefi gerçek geçen zamanla hiç ilgisi olmayan aralıklara karşı her blokta sertleşen bir zincir olurdu. Bunun için kimsenin sahtekârlık yapması gerekmiyordu; onu bir gece boyunca açık bırakmanın eskiden yaptığı şey buydu.

Ödeme adresi kalıcı olmak zorundadır#

Kalıcı (0x02) bir adres olmak zorundadır — zcd wallet address varsayılan olarak bir tane yazdırır — ve zycordd uyarmak yerine başka hiçbir şeyi kabul etmez. Düğüm, o adresi denetleyen anahtarı hiç görmez ve istese de ödülü harcayamaz.

Bir one-shot ödeme adresi neden sessizce para kaybettirir

One-shot (0x01) bir ödeme adresi, siz ondan bir kez harcama yapana kadar doğru çalışır. O borçlandırma adresi sonsuza dek harcanmış olarak işaretler ve fold, aynı bloktan itibaren ona yönlendirilmiş olgunlaşan her ödülü yakar — olgunlaşma halkası bloğun sertifikaları yerleştikten sonra döndüğü için, harcamayı taşıyan blok zaten para kaybettiren ilk bloktur ve son coinbase_maturity bloğunuzdan halkada duran her ne varsa onunla birlikte gider.

Hiçbir hata verilmez. Tek iz, o düğümün kendi blok satırındadır: matured=0, ki bunu sıradan bir boş halka yuvası da yazdırır, ve olağan olarak bildirdiği taban ile atlama ücretlerinin yanında bütün üretici payını sessizce soğurmuş bir burned=. İki alan da "coinbase" demez. Kalıcı bir adres harcanmış kaydına hiç giremez, dolayısıyla başarısızlık daraltılmaz, ortadan kaldırılır — bkz. cüzdan kuralı 3.

Coinbase olgunlaşması#

Ödüller coinbase_maturity blok sonra olgunlaşır — hem mainnet'te hem açık testnet'te 100. O ana kadar durumda görünür ama harcanamaz durumdadırlar; premine'i olmayan bir zincirdeki ilk teminatları fonlayan da budur: kabaca ilk yüz blok boyunca yalnızca madenciler işlem yapabilir.

Mainnet'te musluk yoktur ve olmayacaktır, dolayısıyla mainnet'te o rampa dağıtımın tamamıdır: oynamak için kazacaksınız. Açık testnet'te ise, üzerindeki her şey gibi madencilikle fonlanan bir musluk vardır; çünkü paraları hiçbir değer taşımayan bir ağ, birinin bir madenciyi prova etmeden önce bir cüzdanı prova etmesine izin vermekle hiçbir şey kaybetmez.

Çalıştırmanın maliyeti#

İş işlevi bir ayar değil, bir uzlaşı parametresidir. zcd params onu yazdırır:

proof of work    randomx-v1 (re-keyed every 2048 blocks, 64-block lag)

Bellek#

Doğrulama, tutulan anahtar epoch'u başına yaklaşık 256 MiB ister ve tablo iki tane tutar; böylece bir anahtar sınırını aşan bir yeniden düzenleme blok başına bir tane yeniden kurmaz. O tablodan fazlasını bütçeleyin, çünkü sınırı belirleyen tablo değildir. Bir önbellek, ayrıldığı andan itibaren bellekte durur ve onu pahalı kılan Argon2 doldurması sonra gelir — dolayısıyla kurulurken iki tanesi daha canlıdır — ve bir şey hâlâ kullanırken tahliye edilen bir girdi, o kullanıcı bırakana kadar elindeki her şeyi tutar; bir madencinin veri kümesi doldurması boyunca yaptığı da budur.

RolBütçeNeden
Doğrulayan düğümMotor için ~1 GiBİki girdili tabloya karşı en yüksek önbellek, iki etki aynı anda geçerliyken 1280 MiB ölçüldü — tablonun düşündürdüğü 512 MiB değil.
Madencilik yapan düğüm~3,3 GiBEk olarak ~2 GiB'lik veri kümesini ayırır ve doldurma boyunca bir ödünç alanı sabitleyen durumdur.

Rahatça doğrulayabilen bir makine, ille de madencilik yapabilecek demek değildir.

İş parçacıkları#

--mine-threads varsayılan olarak çekirdek başına bir tanedir. Geçerlilikle ilgili hiçbir şeyi değiştirmez; bu düğümün bir çözümü ne kadar hızlı aradığını belirler.

Bir anahtar değişiminde ne olur#

İş işlevi her randomx_key_interval blokta bir yeniden anahtarlanır. Madencilik yapan bir düğüm o sırada ~2 GiB'lik veri kümesini yeniden kurar ve bunu yaparken madenciliği durdurur — makineye bağlı olarak on saniye mertebesinde; kendinizinkini günlükteki ilk sınırdan ölçün.

Bu süre boyunca doğrulamayı sürdürür ve bir yeniden kurulum onu tıkayamaz: kazılmakta olandan başka herhangi bir anahtar epoch'undan gelen bir başlık, o epoch'un kendi 256 MiB'lik önbelleğinde doğrulanır ve veri kümesi ona dokunmaz. İkisi aynı özetleri hesaplar, dolayısıyla bir yeniden kurulumun doğrulamada yarattığı tek fark hızdır. Bir sonraki epoch'un önbelleği, epoch'un son randomx_key_lag bloğu boyunca ısıtılır.

Ağrandomx_key_intervalMadencilik duraklaması, kabaca
mainnet2048 blok~17 saatte bir
açık testnet512 blok~4 saatte bir

Testnet'in daha kısa aralığı bilinçlidir: o sınırı daha sık prova etmek, ağın ölçmek için var olduğu şeyin bir parçasıdır. Bir sonraki epoch'un veri kümesini önceden kurmak mümkündür — anahtar yükseklikten geldiği için sınırdan çok önce bilinir — ve bilerek yapılmaz: bir madenciye günde birkaç saniyeye mal olan bir duraklamadan kurtulmak için iki tanesini, yani 4 GiB'yi tutmak demektir.

Madencilik yapan bir düğümü durdurma#

SIGTERM (ya da Ctrl-C) onu durdurur ve gecikmeden durdurur: tek bir sinyal, kanalda beklemekte olan hangisiyse ona değil, her döngüye ulaşır.

Bir anahtar değişimi sırasında gelen bir durdurma, veri kümesi doldurmasının bitmesini bekler — motor, karma çağrıları hâlâ okurken ~2 GiB'lik bir arabelleği bırakmaz; bu, C'de hiçbir Go aracının bildirmeyeceği bir serbest-bırakma-sonrası-kullanım olurdu. Bu, sabit bir olayla yarışan değil, onu bekleyen bir durdurmadır: on koşu boyunca ölçüldüğünde, sinyal ne kadar erken gelirse gelsin çıkış anı kımıldamadı, bekleme ise 4,5 sn'den 0,7 sn'ye indi ve hiçbir SIGSEGV görülmedi.

Bu yüzden bir durdurma zaman aşımını makinenizin doldurma süresinin üzerinde bütçeleyin. İkinci bir SIGTERM beklemez — ilki sinyali işletim sistemine geri devreder, dolayısıyla o duraklama sırasında Ctrl-C'ye yeniden basmak süreci anında öldürür.

Havuzlar ve neden hiç olmadığı#

Açılışta hiçbiri yok ve hiçbiri resmî değil. Düğüm kutudan çıktığı gibi tek başına madencilik yapar ve genesis zorluğunda başlamanın makul yolu budur. Havuzlar ortaya çıkarsa üçüncü taraflardır; her yerde göstereceğiniz kuşkuculuğu burada da gösterin.

Botnet'ler, yadsınmak yerine adıyla anılıyor#

CPU madenciliği onları davet eder. CPU ile kazılabilen her para birimi onlarla mücadele etti ve bu proje istisna olmayı beklemiyor. Ödünleşim gözü açık kabul ediliyor: botnet'lerle çarpıtılmış bir dağıtım, bir satışta belirlenen dağıtımdan yine de daha geniştir ve hâlihazırda sahip olduğunuz dizüstü bilgisayarı rekabetçi tutmak, RandomX'in var oluş nedeninin tamamıdır.

Çalışırken izlemek#

Testnet gezgini her bloğu ve her sertifikayı gösterir; başka hiçbir zincirin gezgininin gösteremeyeceği sayfa da dahil: her sertifikanın uygulanıp uygulanmadığı ya da atlanıp faturalandırıldığı ve hangi bildirilen okumanın artık geçerli olmadığı. Kendi düğümünüz de aynı soruları /status, /head ve /metrics üzerinden yanıtlar — bkz. salt okunur yüzey.