Docker Olmadan Native Rocket Pool Node Oluşturma
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:
- Execution Client, Consensus Client / Beacon Node ve Validator Client için
systemdservisleri ile standart bir solo-staking kurulumu oluşturun - Rocket Pool bileşenleri için sistem servisleri oluşturun (node ve watchtower süreçleri)
- Rocket Pool'u istemci servislerinizle iletişim kuracak şekilde yapılandırın
- 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.
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:
- Somer Esat'ın istemci başına kılavuzları: https://github.com/SomerEsat/ethereum-staking-guides
- CoinCashew kılavuzları: https://www.coincashew.com/coins/overview-eth/guide-or-how-to-setup-a-validator-on-eth2-mainnet
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:
Ş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.
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:
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:
Ş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.
Şimdi, daemon'ın sahibini ve grubunu rp olarak ayarlayın:
Son olarak, daemon binary'si üzerinde suid bitini ve diğer izin bitlerini ayarlayın:
Bu, daemon'ın her zaman rp kullanıcısı olarak çalışmasını ve her zaman uygun izinlere sahip olmasını sağlayacaktır.
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:
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:
Şimdi ~/.profile dosyasını seçtiğiniz editörle açın ve sonuna şu satırı ekleyin:
Kaydedin, ardından profilinizi yeniden yükleyin:
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).
rp-node servisini oluşturun:
İçerik:
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:
İçerik:
Kaydedin, ardından çalıştırılabilir yapın:
Şimdi node'un loglarını sadece şunu çalıştırarak izleyebilirsiniz:
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:
Aşağıdaki satırları ekleyin:
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
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:
Düzgün çalışıyorsa aşağıdaki çıktıyı üretmelidir:
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
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:
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:
--suggested-fee-recipient address ifadesini --suggested-fee-recipient ${FEE_RECIPIENT} olarak değiştirinValidator 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:
Aşağıdaki dizinleri oluşturun ve sahibini rp olarak ayarlayın:
Şimdi, Lighthouse VC'nin servis tanım dosyasında aşağıdaki parametreleri ekleyin veya bu yeni değerlere değiştirin:
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.
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:
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.