Connect with us

Wblogy

Lightning Network Nedir ? Kendi Lightning Node’umuzu Kurmak için Yapmanız gerekenler

Nasıl Yapılır ?

Lightning Network Nedir ? Kendi Lightning Node’umuzu Kurmak için Yapmanız gerekenler

Lightning Network, açık kaynak kodlu olarak yürütülen bir geliştirmedir. Bitcoin block zincirini daha verimli hale getirmek üzere planlanmıştır.

Merkezi olmayan block zinciri sistemlerinde anlık olarak yüksek miktarları güvenli bir şekilde transfer edilebilmesi, hızlı ve ucuz para transferine olanak sağlaması gibi özelliklerin yanı sıra; Ethereum block zincirinde çalıştırılabilen akıllı sözleşmelerin bir benzerinin de Lightning Network içinde olacağı belirtiliyor.

Lightning Network’ün en önemli özelliklerinden biri de Payment Channel’dır (Ödeme Kanalı). Payment channel ile birlikte kullanıcıların küçük miktarlarda (micro payments) ve hızlıca para transferi yapmalarına olanak sağlanacaktır. Örneğin; internetten dinleceğiniz bir şarkı için 0.0001 BTC ödemeyi anında, düşük hatta bedava işlem ücreti ile yapacaksınız şuanki sistemde bunu yapmanız tabiki mümkün fakat ödeyeceğiniz tutardan daha fazla miktarda işlem ücreti ödemeyi ve para transferinin 30 dakika içinde karşı tarafa ulaşmasını göze almalısınız.

Kendi Lightning Node’umuzu Kurmak için yapmanız gerekenler ;

Öncelikle belirteyim lightning-node kurulumunu Digitalocean üzerinde gerçekleştireceğiz ve bu yazıda 80$ maliyeti olan sunucu üzerinde kurulum yapacağız. Fakat maliyeti 25$ olan diğer kurulumum halen devam ediyor. bittiğinde onun için yazıda ek bir düzenleme yaparız 🙂

Eğer Digitalocean hesabınız yoksa https://do.co linkinden kayıt olabilirsiniz.

Ek olarak yazının ilerleyen kısımlarında 2 lightning-node arasında bağlantı kanalı açıp, ödeme transferi yapacağımız için 0.001 BTC (100.000 satoshi) kendi nodeumuza transfer edip üzerinde tutacağız. (0.001 daha sonra değişkenlik gösterebilir, neye göre belirlendiğini öğrendiğimde yazıyı güncelleyeceğim.) Bunun bir kısmını farklı bir nodea transfer edeceğiz.

Yazının devamında Digitalocean hesabınızı oluşturduğunuzu farzediyorum.

1) Digitalocean hesabınızı oluşturduktan ve giriş yaptıktan sonra soldaki resimde bulunan menüden Droplet oluşturma sayfasına girelim.

2) Açılan sayfada aşağıdaki resimlerde bulunan seçenekleri işaretleyerek Create butonuna tıklıyoruz. 1–2 dk içerisinde kurulum tamamlanır ve sunucu bilgileriniz eposta adresinize gelir.

 

3) Eposta geldikten sonra Terminal açarak sunucu bağlantısını yapalım (windows kullanıcıları putty kullanabilir.)

ssh root@SUNUCU_IP_ADRESI

ile ssh bağlantısını mailinize gelen giriş bilgileri ile yapalım.

4) Şimdi orjinal dökümanda bulunan git reposunu sunucuya çekip çalıştıracağız.

git clone https://github.com/dougvk/lightning-node.git

repo klasörüne girelim

cd lightning-node

sonra aşağıdaki komut ile docker imajını build edelim (1–2 dk sürebilir)

docker build . -t dougvk/bitcoind

Aşağıdaki komut ile ilgili dizine klasörü oluşturalım:

mkdir -p /scratch/bitcoin/mainnet/bitcoind

Aşağıdaki komut ile oluşturulan dizine bitcoind_mainnet containerını çekip çalıştırıyoruz. Bu işlem sonrasında diğer bitcoin nodelarında bulunan ~170GB lık bir blockchain datası sunucu üzerine çekilip senkronize edilecek ve tahmini 10–12 saat kadar sürecek.

docker run –name bitcoind_mainnet -d -v /scratch/bitcoin/mainnet/bitcoind:/data -p 8333:8333 -p 9735:9735 dougvk/bitcoind:latest
 

Yukarıdaki sürecin durumunu ;

docker logs bitcoind_mainnet –tail “10”

komutu ile kontrol edebiliriz. Senkronizasyon tamamlandığında aşağıdaki resimdeki gibi bugünün tarihi yazar.

Yukarıdaki aşama tamamlanmadan dökümana devam etmeyin.

5) Bu aşama ve sonrasında ilgili blockchain senronize olmuş olarak kabul ediyoruz. Kurulum sonrası bitcoin-cli için komut kısayolu eklememiz bazı işlemleri kolaylaştırmak için gerekli.

nano /usr/local/bin/bitcoin-cli

Yukarıdaki komut ile boş döküman açıyoruz. İçerisine gireceğimiz komut aşağıdaki gibidir.

#!/usr/bin/env bashdocker run –rm –network container:bitcoind_mainnet -v /scratch/bitcoin/mainnet/bitcoind:/data amacneil/bitcoin:latest bitcoin-cli $@

sonra kaydedip çıkıyoruz. (macos için kaydetme “kntrl+x” tuş kombinasyonu ve sonrasında “y” diyerek enterlıyoruz ve otomatik çıkıyoruz.) dosyayı başarıyla kaydettik. Sırada gerekli izinleri vermek var bu dosyaya.

chmod +x /usr/local/bin/bitcoin-cli

komutu ile az önce oluşturduğumuz dosyaya çalıştırma izni verdik.

6) Yukarıdaki işlemi başarıyla yaptıysak

bitcoin-cli getinfo

komutunu girdiğimizde aşağıdaki gibi bir çıktı almamız gerekiyor. (rakamlar farklı olabilir.)

{
 “version”: 140200,
 “protocolversion”: 70015,
 “walletversion”: 130000,
 “balance”: 0.00000000,
 …

7) Şimdi sırada lightning kurulumu var 🙂 Aşağıdaki komut ile ilgili dizinde klasörümüzü oluşturalım:

sudo mkdir -p /scratch/bitcoin/mainnet/clightning

8) Şimdi yapacaklarımız biraz dikkat gerektiriyor.

docker run –rm –name lightning –network container:bitcoind_mainnet -v /scratch/bitcoin/mainnet/bitcoind:/root/.bitcoin -v /scratch/bitcoin/mainnet/clightning:/root/.lightning –entrypoint /usr/bin/lightningd cdecker/lightningd:master –network=bitcoin –rgb=0066cc –alias=NODE_ISMI –ipaddr=SUNUCUNUZUN_IP_ADRESI –log-level=debug

Yukarıda –alias kısmına ağda görünecek ismi, –ipaddr kısmına da kendi sunucunuzun ip adresini yazmanız gerekiyor.

Yukarıdaki komutun ekranda aşağıdaki gibi görünmesi gerekiyor:

Gerekli düzeltmeleri de düzgün bir şekilde yaptıysak komutu terminal ekranına yapıştırıp enterlayarak çalıştıralım 🙂

9) Yukarıdaki işlem sonrasında işlemin bitmesini beklerken farklı bir terminal penceresinde sunucunuza yeni bir ssh bağlantısı yapalım.

10) Şimdi de lightning-cli için komut kısayolu ekleyeceğiz.

nano /usr/local/bin/lightning-cli

komutu ile boş bir döküman açıyoruz ve içerisine aşağıdaki 2 satırlık bash komutunu kopyala yapıştır yapıp kaydediyoruz.

#!/usr/bin/env bashdocker run –rm -v /scratch/bitcoin/mainnet/clightning:/root/.lightning –entrypoint /usr/bin/lightning-cli cdecker/lightningd:master $@

kaydedip çıktıktan sonra

chmod +x /usr/local/bin/lightning-cli

komutu ile çalıştırma izni veriyoruz.

Eğer bu işlemleri başarıyla yaptıysak aşağıdaki komutu girdiğimizde

lightning-cli getinfo

aşağıdakine benzer bir çıktı almamız gerekiyor:

11) Lightningide kurduğumuza göre, BTC göndereceğimiz wallet adresini alalım:

lightning-cli newaddr

komutu ile 0.001 BTC göndereceğimiz Lightning wallet adresini aldık. Komutun çıktısı aşağıdaki gibi olacak.

şimdi buadrese 100.000 satoshi (0.001 BTC yaklaşık 10$) gönderelim. ek olarak lightning hala tam olarak sağlıklı bir network değil. Bu miktar sizin için önemliyse işlemi yapmayın.

Gönderim sonrasında işlem belli bir onay sayısına ulaştıktan sonra (6 onay)

lightning-cli listfunds

komutuyla aşağıdaki gibi Lightning wallet adresinize ulaştığını görebilirsiniz. (onay sayısı tamamlanana kadar göremeyebilirsiniz bu yüzden niye gelmedi hala diye heyecan yapmayın 🙂 son 4–5 günde 10 dan fazla işlem yaptım ve hepsinde geldi.)

normalde value alanı 100000 olacak fakat ben transfer yaptığım için düştü.

12) lightning walletınızda bakiyenizi gördüyseniz şimdi de farklı bir node a bağlanacağız.

Burada örnek olarak bağlantı ayarlarını PENKOIN nodeuna bağlanacakmışsınız gibi anlatıyorum. Siz dilerseniz https://lnmainnet.gaben.win/ linkinde yer alan farklı bir node a da bağlanabilirsiniz. Fakat her nodeun bağlantı sırasında gönderilen BTC miktarı farklı olabiliyor. bakiyenizin bunun için yeterli olması gerek.

lightning-cli connect 03f55ebbacc0fa4d537ac698e1247a36e63290d4c457fd85384d4706a9b218102f 159.89.98.227 9735

komutu ile PENKOIN nodeuna bağlantı açıyoruz ve aşağıdaki komut ile de bu nodea 50000 satoshi gönderiyoruz. (Farklı nodelara bağlanmaya çalıştığımda 50000 den düşük gönderimlerde sorun yaşadığım için garanti olması açısından kendi gönderim miktarımı yazıyorum.)

lightning-cli fundchannel 03f55ebbacc0fa4d537ac698e1247a36e63290d4c457fd85384d4706a9b218102f 50000

bu komutlardan sonra

lightning-cli listpeers

ile bağlantı ve bağlantı durumu ile ilgili detaylı bilgi alacağımız çıktıyı alıyoruz.

20 dk kadar sonra (ben yaklaşık bu kadar bekledim) durum “state” : “CHANNELD_NORMAL” olarak görünecek.

sonrasında da https://lnmainnet.gaben.win/ burada search kısmına nodeunuza 8. maddede verdiğiniz –alias ismini aratarak bulabilirsiniz.

Eğer uzun süre bekledikten sonra CHANNELD_NORMAL yazısını görmez iseniz

docker stop lightning

komutunu çalıştırıp, sonrasında daha önce 8. madde de kendinize göre düzenlediğiniz aşağıdaki komutunu tekrar çalıştırıyoruz.

docker run –rm –name lightning –network container:bitcoind_mainnet -v /scratch/bitcoin/mainnet/bitcoind:/root/.bitcoin -v /scratch/bitcoin/mainnet/clightning:/root/.lightning –entrypoint /usr/bin/lightningd cdecker/lightningd:master –network=bitcoin –rgb=0066cc –alias=NODE_ISMI –ipaddr=SUNUCUNUZUN_IP_ADRESI –log-level=debug

sonrasında tekrar aşağıdaki komutu çalıştıralım:

lightning-cli listpeers

CHANNELD_NORMAL i görüyorsak işlem kısmen tamamdır.

Lightning Node’unuzu da ilgili sitede gördüğünüzde işlem tamamlanmış olacak.

Burada yazılanların genel olarak yeni bir teknoloji ile ilgili olduğunu unutmamalıyız. Benden kaynaklı hatalar olması da olasılık dahilinde (Hatalı olduğum yerlerde lütfen yorum olarak doğrusunu iletin, yazıyı güncelleyelim.). Yapacağınız işlemlerin kendi sorumluluğunuz altında olduğunu lütfen unutmayın. Takıldığınız yer olduğunda yorum olarak iletirseniz elimden geldiğince destek olmaya çalışırım.

Kaynak :  Bahadır GÖKÖZ

Wblogy

Teknoloji ve internetin hızlı değişimine ayak uydurmaya çalışan Türkiye ve Dünya gündemini takip eden teknoloji sever bir kişi

Daha fazla Nasıl Yapılır ?

To Top