Bitcoin Full Node Çalıştırmak (Raspberry Pi ile)

Node’ların Rolü ve Neden Full Node çalıştırmalıyız?

Faruk Terzioğlu
Blokzincir
15 min readJun 9, 2019

--

Full Node’lar blockchain’in kayıt defterleridir. Her bir transfer işleminin kaydını tutmaktadırlar. Bu yazının kolay anlaşılabilmesi için, bitcoin ağının full node’larına değineceğiniz ama belirtmek gerekir ki kendini adem-i merkezi (merkezinin olmaması) olarak tanımlayan her kripto para için full node’lar büyük bir benzerlik ve önem taşımaktadır.

Full node’lar, genellikle Bitcoin hakkında bilgi edinilmeye başlandığında akla ilk gelen konulardan biri değil ancak Bitcoin ağının omur iliğidir. Bitcoin full node sayısının artması, daha hızlı, daha stabil ve daha fazla adem-i merkezi bir ağ elde etmemizi sağlar.

Bitcoin full node’ların yaklaşık olarak %83'ü Bitcoin Core istemcisi kullanılarak oluşturulduğu için, yazımızın ilerleyen kısmında Bitcoin Core üzerinden nasıl full node çalıştırılacağını da anlatacağız.

Kendi full node’umuzu kurmak, Bitcoin’in izlediği kuralların uygulandığından emin olmanın tek yoludur. Node’lar, kişi(peer) yada kişilerden gelen, konsensus kurallarını uymayan işlemleri ve blokları reddederler. Bu bağlamda, node’lar hash power’dan daha önemlidir.

Peki neden kendi full node’umuzu kurmalıyız?

Öncelikle, eğer ki madencilik yapıyorsanız full node kurmanız gereken bir gereksinimdir fakat, herhangi bir maddi teşvik olmadan neden kendi node’unuza sahip olmanız gerekmekte buna bakalım.

Adem-i merkeziyetçilik yani herhangi bir merkezin olmayışı, Bitcoin’in var oluş amaçlarından biridir. Kişiye yada kişilere güven gereksinimi ortadan kaldırmanın en temel adımıdır. Herhangi bir merkezi olmayan yapı, kişisel menfaatler için yıkılamaz, bozulamaz, durdurulamaz. Aynı zamanda herhangi bir merkez olmadığı için kişi veya devletler tarafından baskı altında tutulamaz, mahremiyetiniz ve işlemleriniz güven gerektirmeyen bir yapıda güvende kalır.

Full node kurmanızı gerektirmeyen herhangi bir Bitcoin cüzdanı kullanıyorsanız, kullandığınız bu hizmet sağlayıcısına güvenmeniz gerekmektedir. Online cüzdanlar, merkezi bir node aracılığıyla işlemleri işler ve buna Electrum gibi “hafif” istemciler de dahildir.

Bitcoin adresi edinirken herhangi bir bilgi vermeniz gerekmemektedir. Bu Bitcoinin en önemli özelliklerinden biridir. Bu sayede gizliliğiniz sağlanır. SPV wallet’lar yani basitleştirilmiş ödeme doğrulama cüzdanları ise size tam bir gizlilik vermez. İşlemler, 3. parti serverlardan geçtiği için, hangi cüzdan adresinin size ait olduğunu bilebilirler. Anonimliğinizi korumak istiyorsanız, bunun en önemli adımı kendi full node’unuzu kurmanızdır.

Ayrıca Full Node kurmanız, olası bir hard fork durumunda, hangi blockchaini seçeceğiniz hususunda size seçme hakkı tanır. Eski yada yeni blockchain’i takip edip etmeme hakkınız, full node çalıştırmadığınız takdirde, hizmet sağlayıcının insiyatifindedir.

Full node’ların önemine dair giriş yazısı için Murat Magrebi’ye teşekkür ederim.

Full Node Kurulumu

Bu kurulum ile amaçladığım, 7/24 çalışan ve tüm doğrulamaları yapan bir Bitcoin Full Node kurmak. Bu sayede Bitcoin’in merkezsizliğine destek olacak ve Bitcoin ağı ile haberleşmek için 3. partilere güven duymamız gerekmeyecek. Bu kurulum ile kendi kişisel transferlerimi yapabilir, geliştireceğim uygulamalar için kullanabilirim.

Kurulumda ağırlıklı olarak ‘kendin yap (DIY)” yaklaşımını izledim. Tüm adımları manuel yaparak neyin nasıl çalıştığının anlaşılmasını hedefledim. Bir çok kısım için hatta komple full node çalıştırmak için hazır yazılımlar veya kurulumlar var. Sonraki yazılarda bunlara da değinirim.

Bu yazının hedef kitlesi, belli bir seviyede teknik bilgi ve becerilere sahip olan ve Bitcoin’in çalışma mekanizmaları hakkında bilgi sahibi olmak isteyenler.

Ön Hazırlıklar

Yazı içerisindeki adımları uygularken günler belki de haftalar sürebilecek kısımları önceden planlamak size büyük vakit kazandırabilir. Kesinlikle günler sürecek diyemem, hali hazırda bu adımlara ihtiyaç duymuyor da olabilirsiniz.

Vakit alacak ilk konu Bitcoin verisinin indirilmesi. Buna başka bir bilgisayarda başlayabilirsiniz ve diğer adımlara devam edebilirsiniz. Veya güvendiğiniz birisinden kopyalayabilirsiniz. Nasıl yapılacağını bir sonraki başlıkta anlatacağım.

İkinci konu da modem portlarının yönlendirilmesi. Bitcoin ağına destek olmak ve gelen transferleri diğer node’lara dağıtmak için port yönlendirmelerinizin yapılması gerekmektedir. Türkiye’deki internet servis sağlayıcıları, port yönlendirmesi için statik IP hizmetinin alınmasını zorunlu tutuyor. Bunun için başvuru ve aktivasyon bir kaç gün sürebilir. Bu kısım da zorunlu değildir. Port yönlendirmesi ve statik IP olmadan full node çalıştırabilirsiniz fakat dışarıdan erişilebilir olmayacağınız için ağa destek olamazsınız. Port yönlendirmesini yazının sonundaki Mainnet başlığında anlatacağım.

Bitcoin Veritabanının İndirilmesi

Bitcoin blockchain’inde, yapılan tüm geçmiş transferlerin kaydı tutulmaktadır. Bu veri için kimseye güvenmek zorunda kalmamak adına tüm veriyi indirip saklamalıyız. Bunun için yapılması gereken;

  • Tüm blockchain’in indirilmesi ( 9 Haziran 2019 itibariyle ~210 GB )
  • Şimdiye kadar yapılmış tüm transferlerin doğrulanması
  • Daha sonra arama yapmak üzere tüm transaction’ların index’lenmesi
  • Tüm Bitcoin adresleri için bakiye hesaplanması

Bitcoin Full Node’u kurulumu ve çalıştırılması için Raspberry Pi bilgisayarını kullanacağım. Bir kere kurulum yapıldıktan sonra sürekli çalışması için büyük bir işlem gücüne gerek olmadığı için düşük performanslı ve düşük güç tüketimli Raspberry Pi 2 Model B veya üzeri bir model yeterli olacaktır.

Raspberry Pi 2 Model B

Fakat Bitcoin verisinin indirilmesi ve doğrulanması Raspberry Pi ile haftalar hatta aylar alabilir. Bunun için Bitcoin Core uygulamasını normal bir bilgisayarda kurup blockchain verisinin indirilmesini ve doğrulanmasını tamamlayacağız. Daha sonra bu veri Raspberry Pi üzerinde kullanılmak üzere harici bir hard diske taşınacak.

Yazı içerisinde Windows 10 üzerindeki kurulumuna değineceğim. Diğer işletim sistemleri için şu linklere bakabilirsiniz.

Linux : https://bitcoin.org/en/full-node#ubuntu-1604
Mac OS : https://bitcoin.org/en/full-node#mac-os-x-yosemite-1010x

Gündelik olarak kullandığınız bilgisayarınızda Bitcoin Core uygulamasını kurmak için aşağıdaki adımları izleyelim. Bu linkden Bitcoin Core uygulamasının Windows versiyonunu indirelim (v0.18.0 direk link) Yükleme sırasında aşağıdaki ekranda görülen yerden Bitcoin dosyalarının tutulacağı yeri seçelim. Direkt harici disk de olabilir veya daha sonra kopyalamak üzere herhangi bir yere de indirebilirsiniz.

Yükleme tamamlandığında Bitcoin Core uygulaması blockchain verilerini indirmeye başlayacak;

Uygulamayı açık bırakalım ve tüm blockchain verisinin indirilmesini bekleyelim. İnternet bağlantınıza ve bilgisayarınızın gücüne göre bu bir kaç gün sürebilir.

Kurulum

Ön hazırlıkları tamamladığımıza göre Bitcoin Full Node’u çalıştıracak sistemimizi hazırlamaya başlayabiliriz.

Raspberry Pi’nin Hazırlanması

Kullanabileceğimiz donanımları ve satın alabileceğiniz örnek linkleri aşağıda listeyeyim;

Benim sistemim; bir kaç yıldır kullanmadan tuttuğum Raspberry Pi 2 Model B, eski bir 500 GB lık taşınabilir disk, yeni aldığım hızlı bir Samsung SD kart, ve opsiyonel olarak aldığım 4 Inch dokunmatik LCD ekran.

Raspberry Pi İşletim Sisteminin Kurulumu

SD kart’a kurmak üzere Raspberry Pi işletim sistemi Raspian’ı aşağıdaki linkden indirelim. Raspberry Pi’ın masa üstü arayüzünü kullanmayacağız fakat kurulumla ilgili adımları takip etmek için veya daha sonrasında hataları çözebilmek için tam sürümü ‘Raspbian Stretch with desktop’ sürümünü veya profesyonel kullanıcılar için light version olan ‘Raspbian Stretch Lite’ sürümünü de indirebiliriz.

SD kartı formatlamak için Windows’un dahili formatlama aracını kullanabiliriz. Dosya sistemi olarak FAT32'yi seçmeliyiz.

Formattan sonra işletim sisteminin SD kart a yüklenmesi için “Win32 Disk Imager” uygulamasını indirelim.
https://sourceforge.net/projects/win32diskimager/

Raspberry Pi imajını zipden çıkardıktan sonra ‘Win32 Disk Imager’ uygulamasını çalıştıralım ve imaj dosyası ile SD kartı seçelim.

Buraya kadar olan kısımda Raspbian işletim sistemi SD karta kurulmuş oldu. Detaylar için şurayı inceleyebilirsiniz;
https://blog.samm.com/raspberry-pi-ilk-kurulum/

Raspberry Pi’a uzaktan erişebilmek için SSH’ı aktifleştirmeliyiz. Bunun için dosyaları SD karta yazdıktan sonra kart içerisine ‘ssh’ isminde uzantısı olmayan boş bir dosya oluşturalım. Bu dosyanın varlığı ile SSH kullanarak uzaktan erişim aktifleştirilmiş olacak.

SD kartı bilgisayardan çıkartıp Raspberry Pi’a takabilirsiniz. Bağlantıları yaparak Raspberry Pi’ı çalıştırdığımızda işletim sistemi otomatik olarak çalışacaktır. Eğer masaüstü sürümünü indirdiyseniz herhangi bir monitör bağlayıp görebilirsiniz. Lite versiyonu indirdiyseniz biraz sonraki ayarlarla SSH ile bağlanabileceğiz.

Raspbian ekran görüntüsü

Uzak Bağlantı

Raspberry Pi üzerinde işlem yapmak için SSH bağlantısı yapacağız. Bunun için de çalıştığı IP adresini bilmemiz gerekiyor. Bu IP adresi de değişebileceği için Raspberry Pi’ye sabit bir IP vermemiz gerekiyor. Bunun için modeminizde ayarlar yapmalısınız. Ben ZTE markalı kendi modemim üzerinden örnekler vereceğim fakat diğer modemlerde de aşağı yukarı aynı ayarlar vardır.

İlk olarak modem arayüzüne bağlanalım. Herhangi bir web tarayıcıdan modem IP’sini yazarak ulaşabilirsiniz. Kendi modeminizin IP adresini ve varsayılan şifresini şurada bulabilirsiniz.
http://iff.org.tr/ModemDNS/

Bağlı olan aygıtları modem arayüzünden görebilirsiniz. İçerisinde ‘raspberrypi’ yazan bizim ilgilendiğimiz aygıt. Bu aygıta verilen IP’yi ve MAC adresini kullanacağız.

Raspberry Pi’a verilen IP’yi sabitlemek için modeminizde ‘Local Network’ -> ’Lan’ -> ’DHCP Binding’ menüsü altında yeni bir tanımlama yapalım. Raspberry Pi’ ye ait MAC adresi ile istediğiniz IP adresini tanımlayabilirsiniz.

Bu ayarlardan sonra artık tanımladığımız IP ile Raspberry Pi’ye erişebiliriz.

Komut Satırından Bağlantı

Raspberry Pi üzerinde çalışmak için SSH ile terminal bağlantısı yapmalıyız. Bunun için Windows’ta Putty uygulamasını kullanabilirsiniz (Putty Nedir?). Ben örneklerimi Linux üzerinde vereceğim.

Pi’ye uzak bağlantı yapmak için aşağıdaki komutu çalıştıralım.

Ip adresi olarak ‘192.168.0.20’ yerine yukarıda tanımladığımız sabit ip’yi girmelisiniz. ‘pi’ kullanıcısının şifresi ‘raspberry’ dir.

Raspberry Pi Ayarları

Pi’ye bağlandığımıza göre bazı ilk ayarları yapmalıyız. Bunun için ayarlar menüsünü açalım.

Bu menü üzerinden yapmamız gereken ayarlar;

  • Varsayılan şifrenin değiştirilmesi (1)
  • Raspberry Pi’ya isim verilmesi (2)
  • Eğer full sürüm Rasbian kurulduysa masaüstüne ihtiyacımız olmadığı için başlangıç ayarı olarak konsolun seçilmesi. (3, Desktop / CLIConsole)
  • Başlangıçta ağ ayarlarının yüklenmesini beklemek için (3, Wait for network at boot)
  • Saat diliminin ayarlanması (4, Europe -> Istanbul)
  • Gelişmiş ayarlar (7, Expand Filesystem ayarını şeçin ve Memory Split değerini 16 yapın)

Bu ayarları yaptıktan sonra ayarlar ekranından çıkabilirsiniz.

İşletim sisteminin güncellenmesi için aşağıdaki komutları çalıştıralım.

Daha sonra kuracağımız uygulamalar için gerekli paketleri kuralım.

Kullanıcı hesaplarını yönetelim.
İlk olarak root kullanıcısına şifre tanımlayalım:

$ sudo passwd root

Yapacağımız işlemlerde ‘pi’ kullanıcısı yerine ‘admin’ kullanıcısını kullanacağız. Yeni bir kullanıcı ekleyelim:

Yeniden başlatalım ve ‘pi’ kullanıcısı yerine ‘admin’ ile bağlantı yapalım.

Bitcoin Core uygulaması arka planda çalışacak bir servis olarak ayarlayacağız. Bunun için ‘bitcoin’ adında, admin yetkileri olmayan bir servis kullanıcısı tanımlayalım.

Bitcoin Verisinin Kopyalanması

Bitcoin blockchain verisini tutacağımız harici diski Pi üzerinde kullanmak üzere hazırlayalım. İlk olarak diski formatlamalıyız. Burada dikkat etmemiz gereken nokta, eğer Windows makine kullanıyorsak diskin Fat32 olarak formatlandığından emin olalım. Aksi takdirde Pi diski tanımayacaktır. Diskin Pi tarafından tanımlanması için aşağıdaki adımları izleyelim.

İlk olarak diske otomatik olarak verilen id’yi öğrenelim. Aşağıdaki komut sonrasında listelenenler arasından isim, boyut ve markasına göre harici diskin UUID’sini not alalım. (Örn. 3fd36268-a7ef-….)

Raspberry Pi her çalıştığında diskin otomatik olarak takılması için ‘/etc/fstab’ dosyasına aşağıdaki satırı eklememiz gerekiyor.

Burada, UUID değeri olarak daha önce kaydettiğiniz id’yi (123456 gibi) yazın. ‘/mnt/hdd’ değeri, disk Pi’ye takıldığında ulaşmak istediğimiz dizin, ‘ext4’ diskin formatlanma seçeneği (Linux için ext4, Windows’tan formatlandığında ise vfat) ve akabinde de bazı konfigürasyon değerleri.

Disk takıldığında kullanılacak olan ‘/mnt/hdd’ dizinini oluşturalım;

Yaptığımız ayarlar ile tüm disklerin takılması komutunu verelim ve bizim diskimizin doğru dizin ile eşleştiğini görelim;

Bu dizine servis kullanıcısı ‘bitcoin’ ile de erişilmesini istiyoruz. Onun için gerekli izin tanımlamalarını yapalım.

‘Bitcoin Core’ uygulaması ‘bitcoin’ kullanıcısı ile ‘/mnt/hdd/’ dizinde okuma yazma yapacak. Yukarıdaki komutlar ile bunun sağlanmış olması lazım. Fakat bir sorun varsa, örneğin harici disk read-only modda takıldıysa, bundan sonraki işlemler hata alacak. Onun için yetki kontrolü yapmak üzere aşağıdaki komutları çalıştıralım. ‘bitcoin’ kullanıcına geçiş yapalım ve dizin altında yeni bir klasör açalım;

‘bitcoin’ isminde bir klasör listenmiş olması lazım. Şimdi de yeni bir dosya yazıp silelim;

Eğer herhangi bir hata almadıysak izinlerde sıkıntı yoktur. Fakat bir hata varsa bundan sonraki işlemler çalışmayacağı için diski baştan formatlayıp (tercihen Linux üzerinde) dosyaları yeniden kopyalayın. ‘bitcoin’ kullanıcısından çıkmak için; $ exit

Raspberry Pi İyileştirmeleri

Güvenlik ve performans adına Pi işletim sisteminde bazı ayarlamalar yapmalıyız. İlk olarak işletim sisteminin kullandığı swap dosyalarını SD kart üzerinden harici disk üzerine alalım. swap dosyalarının bulunması SD kartın performansına ciddi zararı olabilir. Mevcut swap dosyalarını silelim, bunu da admin kullanıcısı ile yapmalıyız;

Yeni kullanılacak swap dosyası konumunu ayarlayalım. Aşağıdaki komut sonrasında açılan dosyaya bir sonraki komuttaki satırları ekleyelim.

Yeni swap dosyalarını oluşturalım ve aktifleştirelim;

İkinci olarak da güvenlik adına yapacağımız ayarlara değineyim. Bitcoin Core uygulamasının internetten erişilebilir olmasını istiyoruz. Bu sayede ağ üzerinde transaction’ların ve blokların dağıtılmasına yardımcı olacak ve Bitcoin ağını destekleyeceğiz. Raspberry Pi internete açık olacağı için istenmeyen bağlantıların engellenmesi adına güvenlik duvarını aktifleştireceğiz ve gerekli ayarlamaları yapacağız.

Güvenlik duvarı ayarları için Pi’nin IP sini biliyor olmalısınız. (bknz. ‘Uzak bağlantı’ başlığı). Aşağıdaki komutlarda IP adresi olarak ‘192.168.0.0’ geçiyor. Eğer sizin IP adresiniz ‘192.168.0.???’ şeklindeyse ‘192.168.0.0’ değerini kullanmalısınız. (IP adresini öğrenmek için : ifconfig)

Yapacağımız değişiklikler; tüm gelen bağlantı isteklerini red etmek, tüm giden bağlantı isteklerini kabul etmek, SSH bağlantısı için 22 portunun açılması, Bitcoin mainnet’i için 8333 portu ve testnet’i için 18333 portunun açılması;

Bu ayarlar sonunda Pi’yi yeniden başlatıp kontrol edebilirsiniz. Eğer yanlış ayarlardan dolayı SSH bağlantısı yapamazsanız, Pi’ye klavye ve monitör bağlayarak ayarları tekrar kontrol edebilirsiniz.

Detaylar için : https://www.digitalocean.com/community/tutorials/ufw-essentials-common-firewall-rules-and-commands

Raspberry Pi güvenliğini sağlamak adına ekstra adımlar uygulamalıyız. Yazının basitliği adına sadece linklerini bırakacağım.
Şifre yerine Public Key doğrulama ile SSH bağlantısı yapmak için;
https://www.linode.com/docs/security/authentication/use-public-key-authentication-with-ssh/
Ardı ardına yetkisiz bağlantı denemelerini engellemek için;
https://linode.com/docs/security/using-fail2ban-for-security/

Bitcoin Core

Bu kısımda Bitcoin Core uygulamasının indirilmesi, doğrulanması, yüklenmesi ve blockchain’in eşleşmesini sağlayacağız.

Admin kullanıcısı olarak bağlandıktan sonra dosyaları indireceğimiz dizini hazırlayalım.

Bu link den Bitcoin Core uygulamasının ARM Linux 32 bit versiyonu için indirme linkini kopyalayalım. Yazıyı yazdığım sırada güncel versiyon 0.18.0. Eğer daha güncel bir versiyon varsa aşağıdaki komutlarda ilgili linkleri güncellemelisiniz. Yükleme işlemine başlamadan önce dosyaların doğruluğunu kontrol etmeliyiz. İndirilen uygulamaların doğrulanmasına dair daha detaylı yazımı şurada bulabilirsiniz;

Bitcoin Core uygulamasını indirelim ve doğrulayalım;

Her şey okey ise Bitcoin Core’u yükleyelim;

Çıktıdan görüldüğü üzere Bitcoin Core uygulamasının 0.18.0 versiyonu yüklenmiş.

Kullanacağımız uygulama, Bitcoin Core uygulamasının arka planda, kullanıcı arayüzü olmadan çalışan versiyonu ‘bitcoind’ dir. bitcoind uygulamasının verileri ‘home/bitcoin/.bitcoin’ dizini altında tutuluyor. Başka bir bilgisayarda indirdiğimiz Bitcoin verilerini taşınabilir diskte tutacağımız için bu dizini oluşturmayıp taşınabilir diske bağlayacağız.

‘bitcoind’ uygulamasını ‘bitcoin’ kullanıcısı ile çalıştıracağımız için mevcut kullanıcıyı değiştirelim.

Taşınabilir diskte tuttuğumuz Bitcoin klasörüne sembolik link oluşturalım.

Sembolik linkin doğru şekilde oluştuğunu görmek için ~ dizinini listeleyelim;

bitcoind uygulaması çalışırken konfigürasyon dosyasını şurada arıyor: ‘home/bitcoin/.bitcoin/bitcoin.conf’. Bu dosyayı düzenlemek için;

Bu dosyanın içeriğini aşağıdaki gibi güncelleyelim. [SIFRE] kısmını zor bir şifre ile değiştirmelisiniz. Aksi takdirde BTC’leriniz çalınabilir.

Şimdi bitcoind uygulamasını çalıştırabiliriz. tail komutundan sonra bir süre log’ları takip edebilirsiniz. Daha sonra CTRL+C ile çıkıp bitcoin-cli uygulaması üzerinden güncel blockchain bilgisini sorgulayalım. Son olarak da bitcoind’yi sonlandıralım. Daha sonra otomatik çalışır hale getireceğiz.

Sistem yeniden başladığında ‘bitcoind’ nin otomatik olarak başlaması için servis tanımlamasını yapmalıyız. bitcoin kullanıcısından çıkıp admin olarak devam edelim. $ exit . ‘bitcoind’ uygulamasına yeni bir service tanımlaması yapmak için;

Kaydedip çıktıktan sonra: $ sudo systemctl enable bitcoind.service

‘admin’ kullanıcı ile de RPC istekleri yapabilmek için konfigürasyon dosyasını kopyalayalım:

Pi’yi yeniden başlatalım. $ sudo shutdown -r now Yeniden başladıktan sonra tekrar SSH bağlantısı kuralım ve bitcoind servisini kontrol edelim.

$ systemctl status bitcoind.service

Uygulama loglarını incelemek ve blockchain bilgisini sorgulamak için;

Mainnet

Buraya kadar olan kısımda Raspberry Pi için gerekli ayarlamaları yaptık, Bitcoin Core uygulamasını daemon olarak testnet üzerinde çalıştırdık. Şimdi ise mainnet’de çalışacak şekilde güncellemeliyiz.

Gündelik bilgisayarımızda (Windows veya Linux) çalıştırdığımız Bitcoin Core uygulaması eğer tamamen senkronize olduysa (durum çubuğuna bknz.), Bitcoin verisini (~210 GB) Raspberry Pi’da kullanacağımız harici diske kopyalayalım. Bitcoin Core uygulamasının kurulumu sırasında blockchain verilerinin yükleneceği dizini seçmiştik (d:/bitcoin). Bu klasörünün içindeki blocks ve chainstate klasörlerini harici diske kopyalayalım. Dosyaları kopyaladıktan sonra diski Pi’ye takalım.

Bitcoin veri dizininin son hali

testnet üzerinde çalışan bitcoind servisini durdurup konfigürasyonunu mainnet’te çalışacak şekilde düzenlemeliyiz.

$ sudo systemctl stop bitcoind

Güncellenmiş dosyayı admin kullanıcı altına da taşıyalım.

$ sudo cp /home/bitcoin/.bitcoin/bitcoin.conf /home/admin/.bitcoin/

bitcoind servisini yeniden başlatalım ve çıktıları inceleyelim;

Block bilgilerinin indirilmesi

Bitcoin verilerini kopyaladığımızdan itibaren üretilen blokların eşleşmesini bekleyelim. getblockchaininfo komutunun çıktısını incelerseniz; Aktif blockchain ‘mainnet’, Bitcoin blockchain’indeki son block ‘578950’ bizim indirdiğimiz son block ‘578921’. Bu iki değer aynı olduğu zaman full node’umuz Bitcoin blockchain’i ile eşleşmiş olacak.

Bitcoin Ağına Destek Olmak

Yazının başında belirttiğim gibi Bitcoin ağına destek olmak, transaction’ların ve block’ların dağıtılmasına katkı sağlamak istiyorsanız modeminizin port yönlendirilmesinin yapılmış olması gerekiyor. Ben kendi modemim üzerinden örnekler vereceğim. Diğer modellerde de aşağı yukarı aynıdır.

Modem ayarlarında ‘Firewall/Security’ menüsünün altından ‘Port Forwarding’ sekmesine yeni bir ayar girelim. ‘LAN Host IP’ değerine Raspberry Pi için tanımladığımız sabit IP’yi girelim. ‘WAN Port Range’ değerlerine de Bitcoin mainnet ağının standartı olan ‘8333’ değerini girelim. Hatırlarsanız Raspian işletim sisteminin firewall ayarlarında da bu port için erişim izni tanımlamıştık.

Bu adımları yaptıktan sonra artık dışarıdan bizim Bitcoin node’umuza bağlanabilirler. Bunun kontrolü için şu siteyi kullanabiliriz.

Bu site üzerinden şu anki dış IP’nizi sorgulayarak dışarıdan bağlantıları kabul edip etmediğimizi kontrol edebilirsiniz;

https://bitnodes.earn.com/

Aynı zamanda aşağıdaki komut ile de size kaç node bağlı olduğunu görebilirsiniz. Eğer 0 dan büyük bir rakamsa node’unuz dışarıdan erişilebilirdir.

Bitcoin Full Node çalıştırma ile ilgili yazım buraya kadar. Eğer tüm adımlar tamamlandıysa artık Bitcoin Full Node’unuz 7/24 çalışır ve dışarıdan erişilebilir durumdadır. Aktif olduğu müddetçe artık siz de Bitcoin ağının çalışmasına destek olursunuz.

Umarım faydalı olmuştur. Sorularınız için mail atabilir veya Twitter üzerinden ulaşabilirsiniz.

https://twitter.com/farukterzioglu
faruk.terzioglu[@]hotmail[.]com

Kaynaklar

https://bitcoin.org/en/
https://www.raspberrypi.org/documentation/setup/
https://github.com/Stadicus/RaspiBolt/

--

--