Dijital Türkiye Test Ağına Katılım

Dijital Türkiye Test Ağı, Hyperledger Indy DLT platformu kullanılarak kurulmuştur.

Tutorial

Bu başlık altında Dijital Türkiye Test Altyapısı (Hyperledger Indy) ile ilgili çeşitli örnekler listelenmiştir. Bu örnekleri uygulayabilimek için Indy SDK’nin ve Python wrapper paketlerinin yüklenmesi gerekmektedir, bunun için Indy SDK github repository’sine başvurulabilir.

Yeni örnekler ve detaylar zamanla buraya ve BAĞ Projede barındırılan ssi-turkey-examples repository’sine eklenecektir

Dijital Türkiye Test Ağına Bağlanma ve Request Gönderme

connect_pool örneği Dijital Türkiye Test Altyapısına bağlanmak için gerekli konfigürasyonu oluşturur,  node pool’una bağlanır ve 1. transaction’u getirmek icin request gönderir.

Kurulum

Bu DLT ağına ekleyeceğiniz kendi düğümünüzü iki yöntemle kurabilirsiniz:

Tek düğüme manuel kurulum veya Docker İmajı ile hızlı kurulum. Aşağıda iki yöntem de açıklanmıştır.

Ön koşullar

  • Bu ağa katılabilmek için bir Ubuntu 16.04 makina tahsis edilmesi gerekir.
  • Kurum dışından (Internet üzerinden) Bu makinanın 9701-9702 port aralığına erişimine izin verilmelidir
  • Bu makineden, Internet üzerindeki makinaların 9701-9708 ve 11371 portlarına erişime izin verilmelidir
  • Portlarınızın dışarıdan erişilebilirliğini test etmek için bu siteyi kullanabilirsiniz

 

Kurulum Yöntemi-1 (Manuel kurulum)

1- sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys CE7709D068DB5E88

  • Timeout hatası alıyorsanız, 11371 portu izinli olmadığı için firewall sorununuz vardır. Bunun yerine aşağıdaki komutu çalıştırablirsiniz.
  • sudo apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv-keys CE7709D068DB5E88

2- sudo bash -c ‘echo “deb https://repo.sovrin.org/deb xenial stable” >> /etc/apt/sources.list’

3- sudo apt-get update

4- sudo apt-get install indy-node

5- sudo apt-get install indy-cli

 

Konfigürasyon

1- Bu linkten pool_transactions_genesis dosyası indirilir. (Not: BAĞ’da üyeliğinizin bulunması gerekiyor.)

2- init_indy_keys –name NODE-ADINIZ –seed BELIRLEDİĞİNİZ-SEED-DEĞERİ –force

  • Bu adımda ekrana yazılan değerleri not edin (bls key ve diğerlerini)

3- indy-cli

  • Komut çalıştırıldıktan sonra imleç indy komut satırı arayüzüne düşecektir.

4- İlgili poola bağlanmak için:

  • pool create BLCIDN gen_txn_file={ABSOLUTE_PATH}
  • Yukardaki komutta gen_txn_file parametresine indirdiğimiz pool_transactions_genesis dosyasının absolute path’ini vermelisiniz.

5- Artık ağa bağlanılabilir

  • pool connect BLCIDN

6- Ağa dahil olabilmek için DID oluşturulması gerekir. Önce bir cüzdan oluşturulur;

  • wallet create [CÜZDAN ADI] key=[CÜZDAN ICIN BELİRLENEN ANAHTAR DEĞERİ]
  • Anahtar değeri güvenli bir şekilde saklanmalıdır. Cüzdan üzerindeki verilerin güvenliği bu anahtar değeri ile sağlanmaktadır.

7- DID oluşturma işleminin gerçekleştirilebilmesi için cüzdan açılır.

  • wallet open [CÜZDAN ADI] key=[CÜZDAN ICIN BELIRLENEN KEY DEĞERİ] 

8- Cüzdan içinde DID oluşturulur,

  • did new seed=[ILGILI ROLÜN (STEWARD, TRUST_ANCHOR vs) VERİLECEĞİ DID İÇİN BELİRLENEN SEED DEĞERİ]
  • Ekrana yazılan DID ve VERKEY değerleri (~ile başlayan) not edilir.

9- DID ve VERKEY değerleri bag.yonetici@gmail.com adresine mail atılarak düğüm ekleme işleminin gerçekleştirilmesi talep edilir. Maile cevap beklenir.

  • Ledger’da sizin DID değerinizi için Rol atama transaction çalıştırılır ve size sonuç bildirilir.

10- Düğüm ağ havuzu ledgerına kayıt edilir (Bu örnek Steward tipinde node için yazılmıştır ama Endorser olarak da eklenebilir);

  • ledger node target=[init indy keys adımındaki çıktıda yazan verification key değeri] client_port=[istemci port değeri] client_ip=[dışarıdan erişime açık düğümün çalıştığı makinanın Internetten görülecek gerçek ip değeri] alias=[ init_indy_keys adımında kullanılan isim] node_ip=[ dışarıdan erişime açık düğümün çalıştığı makinanın Internetten görülecek gerçek ip değeri] node_port=[ düğüm port değeri] services=VALIDATOR blskey=[init_indy_keys adımında oluşan blskey değeri] blskey_pop= [init_indy_keys adımında oluşan Proof of posession for BLS key değeri]
  • !!! Bu komut içinde Gerçek IP değerleri kullanılmalı. Normal durumda client_ip ve node_ip değerleri birbirinin aynısıdır.
  • Örneğin: Düğüm port için 9701, client port için 9702 kullanabiliriz.

11- Bu komut başarılı bir şekilde çalıştırıldıktan sonra düğüm LEDGER’a kayıt edilmiş demektir. Artık indy-cli ortamından çıkış yapılır ve indy-node çalıştırılır:

  1. start_indy_node [ init_indy_keys adımında verilen isim] [ init_indy_keys adımındaki node_ip değeri] 9701 [ init indy keys adımındaki client_ip değeri] 9702
    Son komutu da çalıştırdıktan sonra düğüm artık BLCIDN’e dahil olmuş olarak çalışmaya başlar. Son komut system servis olarak çalıştırılmalıdır.
  2. Not: Bu adımda SHA3 modülünde hata çıkarsa, python eski sürümleri ile çakışma olduğu içindir. Aşağıdaki komutlarla bu durumu düzeltebilirsiniz
    • sudo apt purge python2.7
    • pip3 install pysha3
    • [pip3 install sha3]

 

Kurulum Yöntemi-2 (Docker ile hızlı kurulum)

Düğümünüzü docker konteynerinde çalıştırmak isterseniz;

Bu linkten bizim hazırladığımız imajı indiriniz, aşağıdaki adımları yapınız.

  1. docker load < ssi-tr-node.tar
  2. docker run -itd -p 0.0.0.0:9701-9702:9701-9702 ssi-tr-node
  3. docker exec -it {konteyner_ismi} bash 
    Burdaki konteyner ismi, docker ps yazdığınızda çıkan, ssi-tr-node imajıyla kaldırılmış konteynerin NAMES alanındaki ismidir.
  4. indy-cli
  5. Önceki bölümdeki Konfigürasyon başlığındaki 5. ve sonraki adımlar yürütülür.

Herhangi bir komutta beklenmedik bir hatayla karşılaşılırsa sudo ön ekiyle tekrar çalıştırılabilir.

 

Kurulum Testi

Dijital Türkiye Test Ağını (Hyperledger Indy) görüntülemek için bu linki kullanabilirsiniz (Düğümünüz Pool txs kısmında, Steward veya Endorser rolünüz Domain txs kısmında gözükecektir).

 

1 Comment

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir