- Donanım Gereksinimleri
- Ağ Bilgileri
- Adım 1 — Sistem Doğrulama
- Adım 2 — Sistem Güncellemesi ve Bağımlılıklar
- Adım 3 — Go Kurulumu
- Adım 4 — Değişkenleri Ayarlama
- Adım 5 — Binary Derleme
- Adım 6 — Node Yapılandırması
- Adım 7 — Genesis ve Veri Dizini
- Adım 8 — Systemd Servis Oluşturma
- Adım 9 — Node'u Başlatma
- Adım 10 — Cüzdan Oluşturma
- Adım 11 — Validator Kaydı
- Faydalı Komutlar
- Güncel Kalmak
| Bileşen | Minimum | Önerilen |
|---|---|---|
| İşletim Sistemi | Ubuntu 22.04+ | Ubuntu 24.04 |
| CPU | 4 çekirdek | 8 çekirdek |
| RAM | 8 GB | 16 GB |
| Disk | 200 GB SSD | 500 GB NVMe SSD |
| Ağ | 100 Mbps | 1 Gbps |
ℹ️ Gnoland bir testnet'tir — donanım gereksinimleri üretim zincirlerine kıyasla daha düşüktür.
| Tür | Endpoint |
|---|---|
| RPC | https://rpc.topaz.testnets.gno.land |
| Explorer | https://topaz.testnets.gno.land |
| Faucet | https://topaz.testnets.gno.land/faucet |
| Valopers | https://topaz.testnets.gno.land/r/gnops/valopers |
| Aktif Validatorlar | https://topaz.testnets.gno.land/r/sys/validators/v3 |
| Resmi Dokümantasyon | https://docs.gno.land |
| GitHub | https://github.com/gnolang/gno |
Sunucuya SSH bağlantısı sağladıktan sonra sistem gereksinimlerini doğrulayın:
lsb_release -a
uname -r
lscpu | grep -E "Model name|CPU\(s\)|Thread|Socket|Core"
free -h
df -hsudo apt update && sudo apt upgrade -y
sudo apt install -y curl git wget htop tmux build-essential jq make lz4 gcc unzip \
screen btop iotop nethogs hdparm cmake perl automake autoconf libtool libssl-dev zstd pvGnoland Go 1.22+ gerektirir. Bu adım Go 1.23'ü kurar ve PATH ayarlarını yapılandırır:
cd $HOME
VER="1.23.0"
wget "https://golang.org/dl/go$VER.linux-amd64.tar.gz"
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf "go$VER.linux-amd64.tar.gz"
rm "go$VER.linux-amd64.tar.gz"
[ ! -f ~/.bash_profile ] && touch ~/.bash_profile
echo 'export PATH=/usr/local/go/bin:$HOME/go/bin:$PATH' >> ~/.bash_profile
echo 'export GNOROOT=$HOME/gno' >> ~/.bash_profile
source $HOME/.bash_profile
[ ! -d ~/go/bin ] && mkdir -p ~/go/bin
export PATH="$HOME/go/bin:$PATH"Kurulumu doğrulayın:
go versionBeklenen çıktı:
go version go1.23.0 linux/amd64
Aşağıdaki değişkenleri kendi bilgilerinizle güncelleyip çalıştırın:
echo "export WALLET="wallet"" >> $HOME/.bash_profile
echo "export MONIKER="node-adiniz"" >> $HOME/.bash_profile
echo "export GNOLAND_CHAIN_ID="topaz-1"" >> $HOME/.bash_profile
echo "export GNOLAND_PORT="54"" >> $HOME/.bash_profile
source $HOME/.bash_profileℹ️
GNOLAND_PORTaynı sunucuda birden fazla node çalıştırıyorsanız port çakışmasını önler. Varsayılan26yerine54kullanılmaktadır (RPC:54657, P2P:54656).
Resmi gno deposunu klonlayın ve topaz branch'ine geçin:
cd $HOME
rm -rf gno
git clone https://github.com/gnolang/gno.git
cd gno && git checkout chain/topazBinary'leri derleyin ve kurun:
make -C gno.land install.gnoland install.gnokeyKurulumu doğrulayın:
gnoland version
gnokey versionConfig ve secrets dosyalarını oluşturun:
cd $HOME/gno
gnoland config init
gnoland secrets init -data-dir $HOME/gno/gnoland-data/secrets/Tüm gerekli yapılandırma ayarlarını uygulayın:
gnoland config set rpc.laddr tcp://0.0.0.0:${GNOLAND_PORT}657
gnoland config set p2p.laddr tcp://0.0.0.0:${GNOLAND_PORT}656
gnoland config set proxy_app tcp://127.0.0.1:${GNOLAND_PORT}658
gnoland config set moniker $MONIKER
gnoland config set application.prune_strategy syncable
gnoland config set consensus.timeout_commit 3s
gnoland config set consensus.peer_gossip_sleep_duration 10ms
gnoland config set p2p.flush_throttle_timeout 10ms
gnoland config set mempool.size 10000
gnoland config set p2p.external_address "$(wget -qO- eth0.me):${GNOLAND_PORT}656"
gnoland config set p2p.max_num_outbound_peers 40
gnoland config set p2p.persistent_peers \
"g19q07ssuafhmg6r7ys7wp7rpc4jxc85cpvdy426@seed-1.topaz.testnets.gno.land:26656,g15k98e65gm8h7fdr3yr4tqn82lvch4a97a3sg3j@seed-2.topaz.testnets.gno.land:26656"Veri dizinini ana dizine taşıyın ve genesis dosyasını indirin:
mv $HOME/gno/gnoland-data $HOME/gnoland-data
cd $HOME/gnoland-data/config
wget -O genesis.json https://github.com/gnolang/gno/releases/download/chain/topaz/genesis.jsonGenesis hash'ini doğrulayın — hash tam olarak eşleşmelidir:
shasum -a 256 genesis.jsonBeklenen çıktı:
2dd049f973b82858727440df9aff5722cb0b322fd00890f40f2b0688276898ff genesis.json
⚠️ Hash eşleşmiyorsa devam etmeyin. Genesis dosyasını tekrar indirin.
Node'u yönetilen bir arka plan süreci olarak çalıştırmak için systemd servis dosyasını oluşturun:
sudo tee /etc/systemd/system/gnoland.service > /dev/null <<EOF
[Unit]
Description=Gnoland node
After=network-online.target
[Service]
User=$USER
WorkingDirectory=$HOME
Environment=HOME=$HOME
Environment=GNOROOT=$HOME/gno
ExecStart=$(which gnoland) start \
--chainid topaz-1 \
--genesis $HOME/gnoland-data/config/genesis.json \
--data-dir $HOME/gnoland-data/ \
--skip-genesis-sig-verification
Restart=on-failure
RestartSec=5
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable gnolandServisi başlatın ve logları takip edin:
sudo systemctl restart gnoland && sudo journalctl -u gnoland -fServis durumunu doğrulayın:
sudo systemctl status gnoland --no-pagerBeklenen çıktı:
● gnoland.service - Gnoland node
Active: active (running) since ...
Senkronizasyon durumunu kontrol edin:
curl -s http://localhost:${GNOLAND_PORT}657/status | jq .result.sync_infoTam senkronize olunduğunda beklenen çıktı:
{
"latest_block_height": "XXXXXX",
"catching_up": false
}
⚠️ catching_updeğerifalseolana kadar validator kaydına geçmeyin.
Yeni cüzdan oluşturun:
gnokey add $WALLET
⚠️ KRİTİK: Mnemonic phrase gösterilecektir. Hemen güvenli bir yere kaydedin. Kaybolursa cüzdanınızı kurtaramazsınız.
Mevcut bir cüzdanı mnemonic ile kurtarmak için:
gnokey add $WALLET --recoverCüzdanlarınızı listeleyin ve g1... adresinizi alın:
gnokey listTest GNOT almak için faucet'i kullanın: https://topaz.testnets.gno.land/faucet
Bakiyenizi doğrulayın:
gnokey query \
-remote "https://rpc.topaz.testnets.gno.land" \
auth/accounts/$(gnokey list | grep "^*" | awk '{print $3}')
⚠️ Gnoland GovDAO tabanlı validator kayıt sistemi kullanır. Kayıt bir realm (akıllı sözleşme) çağrısıyla yapılır. Validator setine dahil olmak için GovDAO yönetişim önerisinin kabul edilmesi gerekir — kayıt tek başına yeterli değildir.
cd $HOME/gnoland-data && gnoland secrets get validator_keyBeklenen çıktı:
{
"address": "g1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"pub_key": "gpub1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
⚠️ Kayıt için yalnızcapub_keykullanılır. Buradakiaddressconsensus key adresidir — operator adresi olarak kullanmayın. Operator adresi olarakgnokey listçıktısındaki cüzdan adresinizi kullanın.
Çalıştırmadan önce VAL_PUBKEY değerini yukarıdaki çıktıdan alın:
gnokey maketx call \
--pkgpath gno.land/r/gnops/valopers \
--func Register \
--args "$MONIKER" \
--args "ACIKLAMA" \
--args "data-center" \
--args "$(gnokey list | grep "^*" | awk '{print $3}')" \
--args "VAL_PUBKEY" \
--gas-fee 1000000ugnot --gas-wanted 50000000 \
--chainid topaz-1 \
--remote https://rpc.topaz.testnets.gno.land \
--broadcast \
$WALLET- siteye gidin pubkey yazın bilgilerinizi doldurun işlemi yollayın
https://gno.satai.0xgen.online/register
| Parametre | Açıklama |
|---|---|
$MONIKER |
.bash_profile'dan otomatik gelir |
ACIKLAMA |
Validator hakkında kısa açıklama (elle girin) |
data-center |
Altyapı konumunuz |
VAL_PUBKEY |
gnoland secrets get validator_key çıktısındaki pub_key |
$WALLET |
.bash_profile'dan otomatik gelir |
ℹ️ Başarılı işlem sonrası profilinizi şu adreste görüntüleyebilirsiniz:
https://topaz.testnets.gno.land/r/gnops/valopers
Açıklama limiti 2048 karakterdir. Kayıt sonrası güncellemek için:
gnokey maketx call \
--pkgpath gno.land/r/gnops/valopers \
--func UpdateDescription \
--args "$(gnokey list | grep "^*" | awk '{print $3}')" \
--args "YENI-ACIKLAMANIZ" \
--gas-fee 1000000ugnot \
--gas-wanted 50000000 \
--chainid topaz-1 \
--remote https://rpc.topaz.testnets.gno.land \
--broadcast \
$WALLETsudo systemctl start gnoland
sudo systemctl stop gnoland
sudo systemctl restart gnoland
sudo systemctl status gnoland# Canlı loglar
sudo journalctl -u gnoland -f --no-hostname -o cat
# Son bir saatin logları
sudo journalctl -u gnoland --since "1 hour ago"
# Senkronizasyon durumu
curl -s http://localhost:${GNOLAND_PORT}657/status | jq .result.sync_info
# Bağlı peer sayısı
curl -s http://localhost:${GNOLAND_PORT}657/net_info | jq .result.n_peers# Node ID
cd $HOME/gnoland-data && gnoland secrets get node_id
# Validator key
cd $HOME/gnoland-data && gnoland secrets get validator_key
# Tüm secrets
cd $HOME/gnoland-data && gnoland secrets get# Cüzdanları listele
gnokey list
# Bakiye sorgula
gnokey query \
-remote "https://rpc.topaz-1.testnets.gno.land" \
auth/accounts/G1-ADRESINIZgnokey maketx send \
-send "1000000ugnot" \
-to "ALICI_ADRESI" \
-gas-fee 1000000ugnot \
-gas-wanted 10000000 \
-broadcast \
-chainid "topaz-1" \
-remote "https://rpc.topaz.testnets.gno.land" \
$WALLET# P2P — herkese açık olmalıdır
sudo ufw allow ${GNOLAND_PORT}656/tcp comment "gnoland P2P"
# RPC — sadece public endpoint sunuyorsanız açın
sudo ufw allow ${GNOLAND_PORT}657/tcp comment "gnoland RPC"- Discord: Gnoland Discord
- GitHub: gnolang/gno
- Resmi Dokümantasyon: docs.gno.land
- Explorer: topaz.testnets.gno.land
sudo systemctl stop gnoland
cd $HOME/gno
git fetch --all --tags
git checkout chain/topaz
make -C gno.land install.gnoland install.gnokey
sudo systemctl restart gnoland
sudo journalctl -u gnoland -f --no-hostname -o cat