Docker Olmadan Native Rocket Pool Node Oluşturma

NOT

Bu kılavuz Smartnode v1.6.5 ve üzeri için tasarlanmıştır.

Daha önceki bir sürüm kullanıyorsanız, Native modu yapılandırmadan önce v1.6.5 veya üzerine yükseltmelisiniz.

Bu bölümde, Docker konteynerları kullanmadan Rocket Pool Smartnode yığınını sisteminize doğrudan kurma sürecini adım adım anlatacağız.

Genel plan şu şekildedir:

  1. Execution Client, Consensus Client / Beacon Node ve Validator Client için systemd servisleri ile standart bir solo-staking kurulumu oluşturun
  2. Rocket Pool bileşenleri için sistem servisleri oluşturun (node ve watchtower süreçleri)
  3. Rocket Pool'u istemci servislerinizle iletişim kuracak şekilde yapılandırın
  4. Validator Client servis tanımınızı Rocket Pool'un fee recipient'ini ve validator anahtarlarını kullanacak şekilde güncelleyin

Bu oldukça karmaşık bir kurulum olduğu için tamamlanması biraz zaman alacaktır.

Mevcut İşletim Sistemleri ve dağıtımların çeşitliliği, hepsi için kılavuz hazırlamayı pratik olmaktan çıkarır. Bu kılavuzdaki talimatlar Debian tabanlı bir sistem için hazırlanmıştır (Ubuntu dahil). Diğer dağıtımlar veya işletim sistemleri için, kılavuzda açıklanan üst düzey adımları takip edebilirsiniz ancak belirli komutları sisteminizin kullandığı komutlarla değiştirmeniz gerekecektir.

Danger

Bu kılavuz, Linux sistem yönetimi ve kullanımında deneyimli kullanıcılar için tasarlanmıştır. Bu, terminal kullanımı, sistem hesapları oluşturma, izinleri yönetme ve servisleri kurma gibi işlemleri içerir. Bu aktivitelere aşina olduğunuzu varsayıyoruz - altyapının büyük bölümünü kendiniz yöneteceğiniz için, Native kurulumlar için yalnızca sınırlı destek sağlıyoruz. Bu aktivitelere aşina değilseniz, Native Mode kullanmanızı önermiyoruz.

Adım 1: Execution ve Consensus İstemcilerini Kurun

Native Mode, standart bir solo-staking kurulumunu etkili bir şekilde genişletir ve Smartnode yazılımının zaten çalıştırdığı istemcilere (birkaç küçük değişiklikle) bağlanmasına olanak tanır.

Bu amaçla, topluluk tarafından sağlanan geleneksel solo staking kılavuzlarından bazılarını takip ederek başlamanızı öneririz:

Bu kılavuzlarda tanımlanan şekilde aslında bir validator oluşturmayacaksınız - Rocket Pool bunu sizin için yapacaktır. Staking Deposit CLI aracını içeren kısımları göz ardı edebilirsiniz.

Sadece bir Execution Client servisi, bir Consensus Client / Beacon Node servisi ve bir Validator Client servisi kurulu olana ve zinciri senkronize edene kadar kılavuzları takip etmeniz gerekir. Bir validator'ı fonlama ve mnemonic'ini kaydetme ile ilgili adımları atlayın.

Ayrıca, fee recipient için özel bir durum var - kılavuzun Validator Client yapılandırmanızda fee recipient'i belirttiğiniz kısmına geldiğinizde, şimdilik boş bırakın. Rocket Pool validator'ları için nasıl ayarlanacağını aşağıda açıklayacağız.

İstemcileriniz kurulduktan ve loglarında zincirleri düzgün bir şekilde senkronize ettiklerini gördükten sonra, Rocket Pool Smartnode'u kurmak ve istemcilerinize bağlamak için sonraki adımları takip edebilirsiniz.

Adım 2: Rocket Pool'u Kurun

Servis Hesabını Oluşturma

İlk adım, Rocket Pool servisleri için yeni bir sistem hesabı oluşturmak ve bunun için giriş ve kabuk erişimini devre dışı bırakmaktır:

sudo useradd -r -s /sbin/nologin rp

Şimdi, kendinizi rp grubuna ekleyin. Bunu yapmanız gerekir çünkü Rocket Pool CLI'sını kullanabilmek için hem CLI hem de Rocket Pool daemon'ının Execution katmanı cüzdan dosyasına erişmesi gerekir.

sudo usermod -aG rp $USER

Son olarak, Validator Client için kullanıcı hesabını da rp grubuna ekleyin. Bu kullanıcı hesabının adı, VC servisinizi kurmak için hangi kılavuzu takip ettiğinize bağlıdır.

Örneğin, VC'niz lighthousevalidator kullanıcısı olarak çalışıyorsa, şunu yaparsınız:

sudo usermod -aG rp lighthousevalidator

Bundan sonra, değişikliklerin geçerli olması için çıkış yapın ve tekrar giriş yapın.

Binary'leri Kurma

Rocket Pool için bir klasör ve bir veri alt klasörü oluşturarak başlayın. Bunu istediğiniz yere koyabilirsiniz; bu kılavuz için /srv içine koyacağım:

sudo mkdir -p /srv/rocketpool

sudo chown $USER:$USER /srv/rocketpool

Şimdi, CLI ve daemon binary'lerini indirin (veya bunu göz ardı edip tercih ederseniz kaynaktan derleyin). Aşağıdaki sekmelerden sisteminizin kullandığı platformu seçin.

Linux x64
Linux arm64
macOS x64
macOS arm64
sudo wget https://github.com/rocket-pool/smartnode/releases/latest/download/rocketpool-cli-linux-amd64 -O /usr/local/bin/rocketpool

sudo wget https://github.com/rocket-pool/smartnode/releases/latest/download/rocketpool-daemon-linux-amd64 -O /usr/local/bin/rocketpoold

sudo chmod +x /usr/local/bin/rocketpool

Şimdi, daemon'ın sahibini ve grubunu rp olarak ayarlayın:

sudo chown rp:rp /usr/local/bin/rocketpoold

Son olarak, daemon binary'si üzerinde suid bitini ve diğer izin bitlerini ayarlayın:

sudo chmod u+sx,g+sx,o-rwx /usr/local/bin/rocketpoold

Bu, daemon'ın her zaman rp kullanıcısı olarak çalışmasını ve her zaman uygun izinlere sahip olmasını sağlayacaktır.

NOT

Bunu yapmazsanız Smartnode büyük olasılıkla izin hataları ile başarısız olacaktır. Lütfen bu komutu çalıştırdığınızdan emin olun!

Kurulum Klasörünü Ayarlama

CLI ve Daemon kurulumu tamamlandıktan sonra, Smartnode'un var olmasını beklediği klasör yapısını ve eşlik eden dosyaları ayarlamanız gerekecektir. Aşağıdaki klasörleri oluşturarak başlayın:

mkdir -p /srv/rocketpool/data/validators && sudo chmod 775 /srv/rocketpool/data/validators

mkdir /srv/rocketpool/data/rewards-trees

mkdir /srv/rocketpool/data/custom-keys

sudo chown -R rp:rp /srv/rocketpool/data

Ardından, aşağıdaki scriptleri indirin - Rocket Pool bunları fee recipient'inizi değiştirmesi (daha sonra tartışılacak) veya yeni bir minipool oluşturduktan sonra yeni anahtarları yüklemesi gerektiğinde Validator Client'ınızı durdurmak veya yeniden başlatmak için kullanacaktır:

wget https://github.com/rocket-pool/smartnode/raw/master/shared/services/rocketpool/assets/install/scripts/restart-vc.sh -O /srv/rocketpool/restart-vc.sh

wget https://github.com/rocket-pool/smartnode/raw/master/shared/services/rocketpool/assets/install/scripts/stop-validator.sh -O /srv/rocketpool/stop-validator.sh

chmod +x /srv/rocketpool/restart-vc.sh

chmod +x /srv/rocketpool/stop-validator.sh

Şimdi ~/.profile dosyasını seçtiğiniz editörle açın ve sonuna şu satırı ekleyin:

alias rp="rocketpool -d /usr/local/bin/rocketpoold -c /srv/rocketpool"

Kaydedin, ardından profilinizi yeniden yükleyin:

source ~/.profile

Bu, rp komutuyla Rocket Pool'un CLI'sı ile etkileşim kurmanıza izin verecektir, bu güzel bir kısayoldur.

Servisleri Oluşturma

Sırada, Rocket Pool node daemon için bir systemd servisi oluşturacağız. Bu servis, her checkpoint'ten sonra RPL ödüllerini otomatik olarak kontrol edip talep edecek ve node deposit ile oluşturduktan sonra minipool'ları stake edecektir.

Ayrıca bir watchtower servisi de oluşturacağız. Bu, Oracle DAO üyesiyseniz veya kendi ödül aralığı ağaçlarınızı oluşturmak istiyorsanız kullanılacaktır (daha sonra Ödülleri Talep Etme bölümünde tartışılmıştır).

Node
Watchtower

rp-node servisini oluşturun:

sudo nano /etc/systemd/system/rp-node.service

İçerik:

[Unit]
Description=rp-node
After=network.target

[Service]
Type=simple
User=rp
Restart=always
RestartSec=5
ExecStart=/usr/local/bin/rocketpoold --settings /srv/rocketpool/user-settings.yml node

[Install]
WantedBy=multi-user.target

Servis için bir log dosyası oluşturun, böylece çıktısını izleyebilirsiniz - bu, rocketpool service logs node davranışının yerini alacaktır:

nano /srv/rocketpool/node-log.sh

İçerik:

#!/bin/bash
journalctl -u rp-node -b -f

Kaydedin, ardından çalıştırılabilir yapın:

chmod +x /srv/rocketpool/node-log.sh

Şimdi node'un loglarını sadece şunu çalıştırarak izleyebilirsiniz:

sudo /srv/rocketpool/node-log.sh

Servisler artık kuruldu.

Şifresiz Script Erişimini Ayarlama

Bir sonraki adım, rp kullanıcısına yeni validator anahtarları oluşturulduğunda Validator Client'ı yeniden başlatma ve acil bir durum tespit edildiğinde Validator Client'ı durdurma yeteneği vermektir.

visudo kullanarak yeni bir sudoers dosyası oluşturun:

sudo visudo -f /etc/sudoers.d/rocketpool

Aşağıdaki satırları ekleyin:

Cmnd_Alias RP_RESTART = /usr/bin/systemctl restart <validator service name>
Cmnd_Alias RP_STOP = /usr/bin/systemctl stop <validator service name>
rp    ALL=(ALL) NOPASSWD: RP_RESTART, RP_STOP

Burada <validator service name> VC servisinizin adıdır (örn. lighthousevalidator)

Şimdi, /srv/rocketpool/restart-vc.sh dosyasını değiştirin:

  • Sondaki satırın yorumunu kaldırın ve sudo systemctl restart <validator service name> olarak değiştirin

Ayrıca /srv/rocketpool/stop-validator.sh dosyasını değiştirin:

  • Sondaki satırın yorumunu kaldırın ve sudo systemctl stop <validator service name> olarak değiştirin

Hazır! node süreci artık gerektiğinde VC'nizi otomatik olarak yeniden başlatabilir veya durdurabilir.

Adım 3: Smartnode'u Yapılandırın

Artık servisleriniz oluşturulduğuna göre, Smartnode yığınını yapılandırmanın zamanı geldi.

Lütfen Smartnode Yığınını Yapılandırma (Native Mode) kılavuzunu ziyaret edin ve bitirdiğinizde buraya geri dönün.

Servisleri Etkinleştirme ve Çalıştırma

Tüm servisler kurulduğuna göre, şu işlemleri yapma zamanı:

  • Bozulduklarında otomatik olarak yeniden başlasınlar ve yeniden başlatmada otomatik olarak başlasınlar diye etkinleştirin
  • Hepsini başlatın
sudo systemctl daemon-reload

sudo systemctl enable rp-node rp-watchtower

sudo systemctl start rp-node rp-watchtower

Cüzdan Kurulumu

Ardından, yeni bir node cüzdanı oluşturun veya mevcut bir cüzdanı kurtarın. Lütfen kılavuzun Cüzdan Kurulumu bölümündeki talimatları dikkatlice takip edin, ardından bitirdiğinizde buraya geri dönün.

Bu tamamlandıktan sonra, yeni cüzdanınızı başarıyla yüklediklerini doğrulamak için servis log dosyası scriptlerini kullanın. Ayrıca bunu aşağıdaki komutu kullanarak doğrulamalısınız:

rp wallet status

Düzgün çalışıyorsa aşağıdaki çıktıyı üretmelidir:

Your Smartnode is currently using the Hoodi Test Network.

The node wallet is initialized.
Node account: <address>

Adım 4: VC Servis Tanımını Güncelleyin

Solo staking kurulumunun aksine, Rocket Pool validator anahtarlarını otomatik olarak oluşturur ve yönetir. Rocket Pool ile düzgün çalışması için az önce oluşturduğunuz VC servis tanım dosyasında yapmanız gereken birkaç ayarlama vardır, bunlar şunlardır:

  • Fee Recipient
  • VC'nin veri veya cüzdan dizini
  • VC'nin anahtarlar ve secrets dizinleri

Bunları her istemci için adım adım ele alacağız.

Fee Recipient Dosyasını Ayarlama

NOT

Bu adımları takip etmeniz çok önemlidir - bunu yapmamak ve yanlış fee recipient kullanmak, validator'larınıza cezaların uygulanmasına ve Beacon Chain bakiyenizden kesintilerin yapılmasına neden olur!

Fee recipient, Validator Client'a sağladığınız ve öncelik ücretlerinizin ve MEV ödüllerinizin gönderilmesini istediğiniz Execution katmanındaki adresi belirten argümandır. Rocket Pool'un fee recipient için iki farklı adresi vardır:

  • Smoothing Pool'a dahil olduysanız, Smoothing Pool'un adresi olmalıdır
  • Smoothing Pool'dan çıktıysanız, node'unuzun Fee Distributor adresi olmalıdır

Smoothing Pool ve Fee Distributor'ınız hakkında daha fazla bilgi edinmek için lütfen kılavuzun Fee Distributor'lar ve Smoothing Pool bölümüne bakın.

Rocket Pool'un node servisi bunu sizin için otomatik olarak ayarlayacaktır, hangisinin olması gerektiğini tespit edip bir yapılandırma dosyasında ayarlayacak ve değişikliği alması için Validator Client servisinizi yeniden başlatacaktır. Validator Client servisiniz bu yapılandırma dosyasını otomatik olarak kullanabilir, böylece fee recipient'i sabit kodlamanıza gerek kalmaz.

Validator Client'ınız için az önce oluşturduğunuz systemd servis tanım dosyasını açın. ExecStart satırından önce, şu satırı ekleyin:

EnvironmentFile=/srv/rocketpool/data/validators/rp-fee-recipient-env.txt

Ardından fee recipient argümanınızı aşağıdaki gibi değiştirin; aşağıdaki sekmelerden seçtiğiniz istemciyi seçin:

Lighthouse
Nimbus
Prysm
Teku
--suggested-fee-recipient address ifadesini --suggested-fee-recipient ${FEE_RECIPIENT} olarak değiştirin
NOT

Validator Client'ınızı Rocket Pool'un servislerinden önce başlatırsanız, bu dosya henüz mevcut olmadığı için hata verebilir. Endişelenmeyin, bu dosya servislerini başlattıktan ve başlattıktan sonra Rocket Pool tarafından oluşturulacaktır.

Veri ve Anahtar Dizinlerini Ayarlama

Ardından, VC'ye verilerini nerede saklayacağını ve Rocket Pool'un oluşturduğu validator anahtarlarını nereden yükleyeceğini söylemelisiniz. Aşağıdaki sekmelerde kullandığınız istemciye tıklayın:

Lighthouse
Nimbus
Prysm
Teku

Aşağıdaki dizinleri oluşturun ve sahibini rp olarak ayarlayın:

sudo mkdir -p /srv/rocketpool/data/validators/lighthouse/validators

sudo mkdir -p /srv/rocketpool/data/validators/lighthouse/secrets

sudo chown -R rp:rp /srv/rocketpool/data/validators/lighthouse

sudo chmod -R 775 /srv/rocketpool/data/validators/lighthouse

Şimdi, Lighthouse VC'nin servis tanım dosyasında aşağıdaki parametreleri ekleyin veya bu yeni değerlere değiştirin:

--datadir /srv/rocketpool/data/validators/lighthouse

umask Gevşetme

Varsayılan olarak, sisteminiz genellikle node daemon'ı yeni bir klasör oluşturduğunda grup izinlerinden +w bitini kaldıracak bir umask yapılandırmasıyla gelir. Bu, birkaç consensus istemci için sorunludur, çünkü minipool deposit sırasında yeni validator anahtarları oluşturduğunda Smartnode'un oluşturduğu dizinlere kilit dosyaları veya diğer meta veriler gibi şeyler yazarlar.

Bununla mücadele etmek ve VC'nizin düzgün çalıştığından emin olmak için lütfen umask ayarlarınızı gevşetin. Örneğin, 0022 yerine rp kullanıcısı için 0002 olarak ayarlamayı düşünmelisiniz.

Her sistem farklıdır, bu nedenle bunu nasıl yapacağınızı öğrenmek için İşletim Sisteminizi kapsayan bir kılavuza danışın.

UYARI

Bu adım, otomatik staking ve validating görevlerinin düzgün şekilde ele alınmasını sağlamak için çok önemlidir. Minipool'unuz 12 saatlik temizlik kontrolünü geçtikten ve staking durumuna girdikten sonra VC'nizin loglarında izin sorunları fark ederseniz, büyük olasılıkla VC servisinizin o klasöre yazabilmesi için validator anahtarlarınızı içeren klasörde sudo chmod 775 çalıştırmanız gerekecektir.

VC Servisini Yeniden Yükleme

Bu değişiklikler yapıldıktan sonra, artık aşağıdakileri kullanarak VC servisini yeniden yükleyebilir ve yeniden başlatabilirsiniz:

sudo systemctl daemon-reload

sudo systemctl restart <vc-service>

Prysm kullanmıyorsanız, lütfen VC'nin loglarını dikkatlice izleyerek başarıyla başladığından ve aşağıdakilerin doğru tanımlandığından emin olun:

  • Fee recipient
  • Veri yolu
  • Cüzdan / anahtarlar / secrets yolu

Bunu örneğin ps aux | grep fee ile doğrulayabilirsiniz, bu VC'nizin kullandığı fee recipient'e bakmak için çalışan işlemleri filtreler. /srv/rocketpool/data/validators/rp-fee-recipient-env.txt dosyasında tanımlananla aynı olmalıdır.

Hepsi doğru değerleri kullanıyorsa, tebrikler! Rocket Pool node'unuzu başarıyla kurdunuz ve nasıl kullanacağınızı öğrenmek için kılavuzun sonraki bölümlerini takip edebilirsiniz.

Sonraki Adımlar

Artık istemcileriniz kurulduğuna göre, sırada Node'unuzu Güvence Altına Alma bölümündeki güvenlik önerilerine bakmanızı öneririz. Native bir kurulum çalıştırdığınız için, bu şeylerin bazılarını zaten yapmış olabilirsiniz; yine de, en azından keşfetmek ve önerilen güvenlik duruşunun sisteminize ne kadar uyduğunu görmek zarar vermez.