Solidus Doğrulayıcı Kılavuzu
Solidus doğrulayıcı modeline bir kılavuz — solidus-node ikili dosyasının bugün gerçekten
neyi desteklediği ve neyin hâlâ tasarım niyeti olduğu.
Güncel Durum — önce bunu okuyun
Üretim testnet’i (rpc.solidus.network) bugün tek bir Solidus tarafından işletilen süreç
olarak çalışıyor. solidus-node dev-testnet --testnet-dir ... --rpc-port 9944 olarak
başlar — tüm doğrulayıcı komitesini süreç-içi bir kanal (channel) taşıması üzerinden simüle
eden TEK bir süreç; herkese açık internetten erişilebilen bağımsız olarak çalıştırılan
makineler kümesi değil. Çok düğümlü P2P yolu (solidus-node run --consensus) ve
doğrulama yapmayan tam düğüm yolu (solidus-node run --full-node) her ikisi de kod
tabanında mevcuttur ve gelecekteki herkese açık bir doğrulayıcı yayılımının kullanacağı
şeydir, ancak bugün dışarıdan katılınabilen dağıtılmış bir doğrulayıcı akışı yoktur.
Bu kılavuzun daha önce mevcut olarak tanımladığı bazı mekanizmalar henüz uygulanmadı. Aşağıdaki her bölüm buna göre işaretlenmiştir. Kısaca:
| Burada anlatılan | Durum |
|---|---|
solidus-node ikili dosyası, gerçek alt komutları ve config.toml biçimi | ✅ Uygulandı — protocol/apps/consensus/crates/solidus-node’a karşı doğrulandı |
| 10.000 SLDS minimum stake, 21 günlük unbonding | ✅ Zincir üzerinde uygulandı (solidus-txns) |
| Ücretlerin %70’i doğrulayıcılara (eşit bölünme), %20’si hazineye | ✅ Uygulandı (solidus-state/executor.rs), her blokta hesaplanır |
| Çift oy / çift öneri (equivocation) tespiti, doğrulanabilir kanıtla | ✅ Uygulandı |
| Tespit edilen bir equivocation’dan otomatik stake slashing | 🟡 Yol haritası — tespit kanıt üretir; stake azaltma işlemi henüz bağlanmadı |
| Çalışma süresi (uptime) takibi, çalışma süresine dayalı ödül/çıkarma | ❌ Uygulanmadı — düğümde veya zincir durumunda böyle bir takip yok |
| Kademeye göre ödül ağırlıklandırma (Çekirdek, Hafif’ten daha fazla kazanır) | ❌ Uygulanmadı — bugünkü bölünme, stake büyüklüğünden bağımsız olarak her aktif doğrulayıcı için eşittir |
| İtibar puanı sistemi (puanlar, eşikler) | ❌ Uygulanmadı — reputation statik bir alandır, hiçbir kod yolu tarafından ayarlanmaz |
Stake/Unstake işlemi göndermek için bir CLI/SDK komutu | ❌ Yayınlanmadı — işlem türü zincir üzerinde var; henüz bunu oluşturan bir araç yok |
| Doğrulayıcı olmak için KYC/kimlik doğrulama şartı | 🟡 Yalnızca tasarım niyeti — stake veya konsensüs kodunun hiçbir yerinde uygulanmıyor |
| Prometheus metrik uç noktası | ❌ Dağıtılan ikili dosyada uygulanmadı |
| Yönetişim kontrol paneli / slashing itirazları | ❌ Uygulanmadı — bugün zincir üzerindeki tek “yönetişim”, ilgisiz bir compute-subnet izin listesidir |
Neden Bir Doğrulayıcı Çalıştırmalı?
Doğrulayıcılar, Solidus ağının altyapı operatörleridir. Bloklar, işlemler, DID/kimlik bilgisi operasyonları ve (bağlandığında) kimlik doğrulama verimi, doğrulayıcı komitesinin çevrimiçi kalmasına bağlıdır.
Ücret paylaşımı. Doğrulayıcılar toplu olarak işlem ücretlerinin %70’ini alır, bu her bloğun sonunda hesaplanır. Bugün bu %70, tüm aktif doğrulayıcılar arasında eşit olarak bölünür — 1.000.000 SLDS stake eden bir doğrulayıcı, şu anda 10.000 SLDS minimumunu stake eden biriyle aynı blok başına payı kazanır. Çalışan kodda stake’e veya çalışma süresine ağırlıklandırılmış bir ödül formülü yoktur.
Yapısal olarak gereklidir. Merkeziyetsiz kimlik, merkeziyetsiz altyapı gerektirir. Ağa katılan her doğrulayıcı, dayanıklılığı, coğrafi kapsamı ve sansüre direnci artırır — ağ dışarıdan doğrulayıcıların katılmasını desteklediğinde (yukarıdaki Güncel Duruma bakın).
Yönetişim. Bugün uygulanan tek zincir üzerindeki “yönetişim”, ilgisiz bir
compute-subnet izin listesini (ComputeAdmit/ComputeRemove) kapsar ve stake’ten
bağımsız olarak her aktif doğrulayıcıya aynı şekilde davranır. Genel bir doğrulayıcıya
yönelik yönetişim sistemi (öneriler, oylar, slashing itirazları) henüz mevcut değildir.
Doğrulayıcı Stake’i ve Donanım Profilleri
Protokol, zincir üzerinde tam olarak bir minimum stake uygular: 10.000 SLDS
(solidus-txns içindeki MIN_STAKE). “Subnet” veya “Çekirdek” sınıfı için ayrı,
protokol tarafından uygulanan bir stake minimumu yoktur ve minimumun üzerindeki stake
büyüklüğü şu anda ödül payınızı veya konsensüs ağırlığınızı değiştirmez.
node.solidus.network’ün kendi donanım kılavuzu (node.solidus.network/docs/hardware),
önerilen donanımı üç kendi kendine seçilen profile gruplar — Hafif, Subnet,
Çekirdek — bir zincir üzerinde kural olarak değil, boyutlandırma rehberliği olarak:
| Profil | Önerilen stake (kendi kendine seçilir, uygulanmaz) | Donanım rehberliği |
|---|---|---|
| Hafif | 10.000 SLDS (gerçek protokol minimumu) | Mütevazı VPS |
| Subnet | 100.000 SLDS | Orta seviye özel/bulut |
| Çekirdek | 1.000.000 SLDS | Veri merkezi sınıfı, yedekli |
Tüm profiller aynı solidus-node ikili dosyasını çalıştırır — ayrı bir hafif istemci
yoktur ve yazılımın kendisinde bir profili diğerinden ayıran hiçbir şey yoktur.
Donanım Gereksinimleri
Bu rakamlar, node.solidus.network/docs/hardware’deki kanonik, her zaman güncel spesifikasyonu izler — güncel rakamlar için o sayfayı gerçek kaynak olarak kabul edin; aşağıdaki tablo bir anlık görüntüdür.
| Resource | Light | Subnet | Core |
|---|---|---|---|
| CPU | 2–4 çekirdek | 4–8 çekirdek | 8–16 çekirdek |
| RAM | 2–4 GB | 8–16 GB | 16–32 GB |
| Depolama | 500 GB – 1 TB SSD | 1–2 TB NVMe | 2–4 TB NVMe |
| Ağ | 100 Mbps+ | 250 Mbps+ | 250 Mbps – 1 Gbps, herkese açık IPv4 |
| Tahmini maliyet / ay | $5–30 | $30–90 | $120–400 |
| İşletim Sistemi | Ubuntu 22.04 LTS | Ubuntu 22.04 LTS | Ubuntu 22.04 LTS |
Referans örnekler (canlı liste için node.solidus.network/docs/hardware’e bakın):
Hafif — Hetzner CX22 ($5.40/ay, 2 vCPU · 4 GB); Subnet — Hetzner CCX23 ($32/ay,
4 dCPU · 16 GB); Çekirdek — Hetzner CCX43 veya $120–400/ay aralığında eşdeğer özel bir
NVMe örneği.
Çalışma Süresi — 🟡 bugün protokol tarafında bir uygulama yok
Şu anda solidus-node’da veya zincir durumunda hiçbir yerde çalışma süresi takip kodu
yoktur — kesinti için ne otomatik bir ödül cezası ne de komiteden otomatik çıkarma vardır.
Düğümünüzü çevrimiçi tutmak iyi bir işletim meselesidir, protokolün henüz bunu ölçtüğü
veya cezalandırdığı için değil.
Yazılım Kurulumu
Adım 1: Solidus Düğümünü Kurun
# Solidus düğüm ikili dosyasını indirin
curl -sSL https://releases.solidus.network/install.sh | bash
# Kurulumu doğrulayın
solidus-node --versionYükleyici, imzalı bir manifestoyu releases.solidus.network/stable/latest.json
adresinden alır, betiğe gömülü bir yayın anahtarına karşı Ed25519 imzasını doğrular,
işletim sisteminiz/mimariniz için ikili dosyayı indirir, SHA-256’sını (imzalı)
manifestoya karşı kontrol eder ve herhangi bir kontrol başarısız olursa hiçbir şey
kurmadan durur.
Elle kurulum için, manifesto her desteklenen hedef için ham, mimariye özel bir
yürütülebilir dosya listeler (x86_64-unknown-linux-gnu, aarch64-unknown-linux-gnu)
— bir .tar.gz arşivi yoktur:
# Güncel sürümü + ikili dosya URL'lerini imzalı manifestodan okuyun
curl -s https://releases.solidus.network/stable/latest.json
# Mimariniz için ikili dosyayı indirin (URL yukarıdaki manifestodan gelir)
wget https://releases.solidus.network/bin/v0.1.0/solidus-node-x86_64-unknown-linux-gnu
chmod +x solidus-node-x86_64-unknown-linux-gnu
sudo mv solidus-node-x86_64-unknown-linux-gnu /usr/local/bin/solidus-nodeAdım 2: Gerçek solidus-node CLI’ı
solidus-node (protocol/apps/consensus/crates/solidus-node’dan derlenir) altı alt
komuta sahiptir — bu, main.rs’ye karşı doğrulanmış eksiksiz listedir:
solidus-node genesis -n <validators> -o <dir> --chain-id <id> # bir devnet'in genesis.json'ını + validator-N/ dizinlerini + anahtarlarını üretir
solidus-node run --config <config.toml> [--consensus] [--full-node] # doğrulayıcı olarak çalıştırın (veya --full-node ile doğrulama yapmayan tam düğüm olarak)
solidus-node dev-testnet --testnet-dir <dir> --rpc-port <port> --rpc-host <host> # tüm bir N-doğrulayıcılı devnet'i TEK bir süreçte çalıştırır (canlı testnet'in çalıştırdığı budur)
solidus-node peer-id --key <node.key> # bir node.key dosyasından türetilen libp2p PeerId'sini yazdırır
solidus-node canon-dump --config <config.toml> # kanonik ledger indeksini döker (düğüm durdurulmuş olmalıdır)
solidus-node sign-transfer --key <key> --to <address> --amount <n> --nonce <n> # bir Transfer işlemi oluşturur + imzalar, JSON olarak yazdırırAlt komut olmadan solidus-node çalıştırmak eski (legacy) tek düğümlü moda düşer
(run --config config.toml ile eşdeğerdir). Bu ikili dosyada keygen, start veya
validator alt komutu yoktur — bunlar mevcut değildir.
solidus-node genesis -n 4 -o ./testnet, genesis.json, treasury.key,
faucet.key yazar ve her biri node.key (Ed25519, hex), bls.key (BLS12-381, hex)
ve üretilmiş bir config.toml içeren doğrulayıcı başına bir validator-N/ dizini
oluşturur.
Anahtar dosyalarınızı hemen yedekleyin. node.key veya bls.key’i kaybetmek,
doğrulayıcı kimliğinize ve stake edilen SLDS’ye erişiminizi kaybetmek anlamına gelir.
Yedekleri şifrelenmiş ve çevrimdışı saklayın.
Adım 3: Gerçek yapılandırma biçimi
Çok düğümlü yapılandırmalar bir [node] tablosu, sıfır veya daha fazla [[peers]]
girdisi ve en üst düzey bir bootstrap_peers dizisi kullanır (bu, [node]
başlığından önce görünmelidir — TOML, bir tablo başlığından sonraki çıplak bir
anahtarı o tabloya ayrıştırır):
bootstrap_peers = [] # isteğe bağlı Kademlia bootstrap multiaddr'ları, örn. "/ip4/1.2.3.4/tcp/30300/p2p/<peerid>"
[node]
chain_id = "solidus-testnet-1"
listen_port = 30300 # P2P (libp2p) portu
data_dir = "./data"
genesis = "../genesis.json"
ed25519_key = "node.key"
bls_key = "bls.key"
rpc_port = 9944
rpc_listen = "127.0.0.1" # "0.0.0.0" yalnızca ters proxy arkasında — RPC'nin yerleşik kimlik doğrulaması yoktur
node_index = 0 # bu doğrulayıcının komitedeki indeksi
full_node = false # true = asla öneri/oy vermez, yalnızca senkronize eder + RPC sunar
[[peers]]
index = 1
peer_id = "12D3Koo..." # libp2p PeerId, `solidus-node peer-id --key validator-1/node.key`'den
address = "/ip4/127.0.0.1/tcp/30301"tier, [consensus] subnets, [storage], [api] veya [metrics] tablosu yoktur —
bu anahtarlar gerçek NodeConfig/MultiNodeConfig yapılarında mevcut değildir.
Adım 4: Düğümü Başlatın
cat > /etc/systemd/system/solidus-node.service << 'EOF'
[Unit]
Description=Solidus Network Node
After=network.target
Wants=network.target
[Service]
Type=simple
User=solidus
Group=solidus
ExecStart=/usr/local/bin/solidus-node run --config /etc/solidus/config.toml --consensus
Restart=always
RestartSec=10
LimitNOFILE=65536
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable solidus-node
systemctl start solidus-node
# Durumu kontrol edin
systemctl status solidus-node
journalctl -u solidus-node -fAdım 5: Senkronizasyonu Doğrulayın
RPC sunucusu yalnızca HTTP POST üzerinden JSON-RPC 2.0’dır (jsonrpsee
aracılığıyla) — REST GET /status rotası yoktur. Düğüm sağlığını solidus_nodeInfo
ve solidus_chainInfo ile kontrol edin:
curl -s -X POST http://127.0.0.1:9944 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"solidus_nodeInfo","params":[]}'
# {"jsonrpc":"2.0","id":1,"result":{"version":"0.1.0","uptime_seconds":1264674,"rss_bytes":203296768}}
curl -s -X POST http://127.0.0.1:9944 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"solidus_blockNumber","params":[]}'Senkronize olduğunuzu doğrulamak için solidus_blockNumber sonucunuzu herkese açık
rpc.solidus.network’ünkiyle karşılaştırın.
Stake Etme ve Kayıt
solidus-txns, zincir üzerinde bir Stake/Unstake işlem türü tanımlar ve
solidus-state’in yürütücüsü bunun üzerinde 10.000 SLDS minimumunu ve 21 günlük
unbonding süresini uygular. Henüz bunu oluşturan bir CLI veya SDK komutu yoktur —
solidus-node’un tek işlem imzalama alt komutu sign-transfer’dır (yalnızca
Transfer) ve TypeScript SDK bir stake yardımcı işlevi sunmaz. Bunu destekleyen bir
ağa karşı yeni bir dış doğrulayıcı kurmak — yukarıdaki Güncel Durum’da anlatılan
dışarıdan katılınabilir yol yayınlandığında — önce bu araçların inşa edilmesini
gerektirecektir. Kodda bugün 24 saatlik bir “etkinleştirme gecikmesi” veya benzeri
bir bekleme durumu yoktur: bir doğrulayıcının active bayrağı, bir Stake işlemi
yürütüldüğü anda ayarlanır.
Unstake Etme
Unstake etme, bir yönetişim kontrol paneli aracılığıyla bir istek değil, doğrudan
zincir üzerinde bir Unstake işlemidir (böyle bir kontrol paneli yoktur). Birini
göndermek, stake’inizi 21 günlük bir unbonding süresine sokar (UNBONDING_PERIOD_MS),
bu süre boyunca hiçbir ödül kazanmaz; 21 gün sonra yürütücü, bunun harcanabilir
bakiyenize dönmesine izin verir.
İzleme
Bugün gerçek olan
solidus_nodeInfo— süreç sürümü, saniye cinsinden çalışma süresi, kullanılan bellek (rss_bytes).solidus_chainInfo— zincir kimliği, yerel token meta verisi, genesis hash’i, en son blok yüksekliği, düğüm sürümü.solidus_blockNumber/solidus_getLatestBlock/solidus_canonHead— senkronizasyon ilerlemesi.solidus_getValidators/solidus_getValidatorStake— komite üyeliği ve stake.- Günlükler —
tracingtabanlı yapılandırılmış günlükler;journalctl -u solidus-node -f.
🟡 Yol haritası — dağıtılan ikili dosyada yok
Bir Prometheus /metrics uç noktası yoktur ve
protocol/apps/consensus/crates/solidus-node içinde hiçbir yerde adlandırılmış
metrik (solidus_uptime_seconds, solidus_peer_count vb.) yoktur. Bu
yayınlanana kadar günlük tabanlı veya RPC’yi yoklayan uyarı kurun.
Slashing
Bugün gerçek olan
solidus-consensus ve solidus-hotstuff2’nin her ikisi de equivocation
tespitini uygular: aynı turda/görünümde iki çelişen oy imzalayan (veya
HotStuff-2’de iki çelişen öneri imzalayan) bir doğrulayıcı yakalanır ve iki
imzalı mesaj, kendi kendine yeten, bağımsız olarak doğrulanabilir bir kanıt
halinde paketlenir (suçlanan doğrulayıcının kendi komite anahtarına karşı
kontrol edilir).
🟡 Yol haritası — henüz bağlanmadı
Bir equivocation’ı yakalamak, suçlu doğrulayıcının stake’ini şu anda azaltmaz.
solidus-hotstuff2 slashing modülünün kendi yorumu bu konuda açıktır: solidus-txns
bugün bir Slash işlem yükü içermez, bu yüzden doğrulanmış kanıtı gerçek bir stake
azaltmaya dönüştürmek, henüz verilmemiş bir kurucu kararıdır (yeni bir yerel yük veya
bir yönetişim eylemi). Çalışma süresine dayalı bir slashing veya çıkarma da yoktur —
hiç çalışma süresi takibi yoktur (yukarıdaki Donanım Gereksinimleri’ne bakın).
Bu yayınlanana kadar herhangi bir belirli slashing yüzdesini veya kurtarma sürecini
karara bağlanmamış sayın.
Her durumda aynı anahtarla iki solidus-node örneğini asla çalıştırmayın — bu,
yukarıdaki dedektörün tam olarak yakalamak üzere kurulduğu equivocation kalıbıdır.
Düğümünüzü Yükseltme
# Güncel sürümü + ikili dosya URL'lerini kontrol edin
curl -s https://releases.solidus.network/stable/latest.json
# Düğümü nazikçe durdurun
systemctl stop solidus-node
# İkili dosyayı değiştirin (indirme/doğrulama adımları için yukarıdaki Adım 1'e bakın)
sudo mv solidus-node-x86_64-unknown-linux-gnu /usr/local/bin/solidus-node
# Düğümü başlatın
systemctl start solidus-node
solidus-node --versionBüyük protokol yükseltmeleri, mainnet yönetişimi var olduğunda doğrulayıcıların bir pencere içinde yükseltme yapmasını gerektirecektir; bugün böyle bir uygulama mekanizması yoktur.
Ekonomi
Ücretler bugün gerçekte nasıl dağıtılıyor
Her blokta, solidus-state’in yürütücüsü o blokta toplanan tüm ücretleri hesaplar:
- %20 protokol hazinesine.
- %70, aktif doğrulayıcı kümesindeki her adrese eşit olarak bölünür — stake büyüklüğüne, çalışma süresine veya herhangi bir itibar puanına göre ağırlıklandırılmaz.
- Kalan (~%10) ödenmez (zımnen yakılır; canlı zincir bunun için bir sayaç tutmaz).
Kodda 7 günlük bir “dönem” (epoch) ödül döngüsü yoktur — ücretler her blokta
hesaplanır. Bir doğrulayıcı kaydındaki reputation alanı mevcuttur (bir Stake
işlemi ile stake eden bir doğrulayıcı için 1000 olarak, bugün canlı zincirde
genesis ile tohumlanan doğrulayıcılar için 0 olarak gözlemlenmiştir) ancak
hiçbir kod yolu bunu ayarlamaz — henüz anlatılacak bir itibar puanlama sistemi
yoktur.
Ağ testnet’teyken somut SLDS ödül rakamları yayınlanmıyor — testnet SLDS’nin parasal bir değeri yoktur ve yukarıdaki eşit bölünme mekanizması, kârlılığın stake büyüklüğünüze değil, kaç başka doğrulayıcının aktif olduğuna bağlı olduğu anlamına gelir. Mainnet’e kadar herhangi bir belirli $/ay ödül tahminini spekülatif kabul edin.
SSS
S: Birden çok doğrulayıcı çalıştırabilir miyim?
Stake işleminin kodda bugün bir kimlik-bağlama gereksinimi yoktur — “bir insan,
bir doğrulayıcı” bir tasarım niyetidir (Solidus’un “Kimlik Kanıtı” uygunluk
kavramına bakın), henüz zincir üzerinde uygulanan bir şey değil.
S: SLDS’imin stake’ini çözebilir miyim?
Evet, bir Unstake işlemi aracılığıyla (yukarıdaki Stake Etme ve Kayıt bölümüne
bakın). SLDS’nizin kilitlendiği ve hiçbir ödül kazanmadığı 21 günlük bir unbonding
süresi vardır. 21 gün sonra harcanabilir bakiyenize döner.
S: Slashing edilirsem stake’ime ne olur? Henüz geçerli değil — yukarıdaki Slashing bölümüne bakın. Tespit ve kanıt mevcut; stake azaltma adımı mevcut değil.
S: Statik bir IP adresine ihtiyacım var mı?
Düğümün buna yönelik yerleşik bir gereksinimi yoktur. Gerçek P2P eşleriyle çok
düğümlü --consensus veya --full-node yolunu çalıştırdığınızda statik bir IP ve
herkese açık bir port genellikle eş bağlantısını iyileştirir.
S: Evimden bir doğrulayıcı çalıştırabilir miyim? Kararlı bir bağlantıda bir Hafif profil için evet. Subnet ve Çekirdek profilleri, bu donanım rehberliği kademelerinin varsaydığı bant genişliği ve çalışma süresi göz önüne alındığında özel donanım veya bir veri merkezine daha uygundur.
S: Bir doğrulayıcı olmak için minimum KYC seviyesi nedir? Kodda bugün hiçbiri uygulanmıyor. Doğrulama yapmak için kimlik doğrulaması gerektirmek, Solidus’un uzun vadeli “Kimlik Kanıtı” tasarım niyetinin bir parçasıdır, şu anda stake işleminin veya konsensüs motorunun kontrol ettiği bir şey değil.
S: Mainnet ne zaman başlıyor?
Solidus Yol Haritasına bakın (docs/roadmap.md).
Destek
- Kaynak + sorunlar: github.com/solidusnetwork/protocol — bu kılavuzun anlattığı düğüm/konsensüs kodunun herkese açık aynası; GitHub Issues orada açık.
- Doğrulayıcı Kontrol Paneli: henüz canlı değil (
validators.solidus.networkşu anki yüzey envanterinde değil). - Dokümantasyon: bu kılavuz ve
node.solidus.network/docs/hardware. - Acil durum: [email protected] (yalnızca slashing veya kritik sorunlar için).
Solidus şu anda bir Discord veya başka bir gerçek zamanlı sohbet işletmiyor — bir sohbet topluluğu bağlantısı yerine güncellemeler için yukarıdaki GitHub deposunu veya dokümantasyon sitesini kontrol edin.