Bir IBAX Ağının Kurulması
Bu bölümde, size kendi blok zinciri ağınızı nasıl kuracağınızı göstereceğiz.
Bir dağıtım örneği
Örnek olarak aşağıdaki üç düğümle bir blok zinciri ağı kurulacaktır.
Üç ağ düğümü:
- Düğüm 1, blok zinciri ağındaki yeni bloklar oluşturabilen ve kendisine bağlı istemcilerden işlemler gönderebilen ilk düğümdür;
- Düğüm 2, kendisine bağlı istemcilerden yeni bloklar oluşturabilen ve işlemler gönderebilen başka bir onur düğümüdür;
- Düğüm 3, yeni bloklar oluşturamayan ancak kendisine bağlı istemcilerden işlem gönderebilen bir koruyucu düğümdür.
Dağıtılacak üç düğümün yapılandırmaları:
- Her düğüm kendi PostgreSQL veritabanı sistemi örneğini kullanır;
- Her düğüm kendi Centrifugo hizmet örneğini kullanır;
- Sunucu tarafı github arka ucu, diğer arka uç bileşenleriyle aynı ana bilgisayara dağıtılır.
Düğümler tarafından kullanılan örnek adresler ve bağlantı noktaları aşağıdaki tabloda açıklanmıştır:
Node | Component | IP & port |
1 | PostgreSQL | 127.0.0.1:5432 |
1 | Centrifugo | 192.168.1.1:8000 |
1 | go-ibax (TCP service) | 192.168.1.1:7078 |
1 | go-ibax (API service) | 192.168.1.1:7079 |
2 | PostgreSQL | 127.0.0.1:5432 |
2 | Centrifugo | 192.168.1.2:8000 |
2 | go-ibax (TCP service) | 192.168.1.2:7078 |
2 | go-ibax (API service) | 192.168.1.2:7079 |
3 | PostgreSQL | 127.0.0.1:5432 |
3 | Centrifugo | 192.168.1.3:8000 |
3 | go-ibax (TCP service) | 192.168.1.3:7078 |
3 | go-ibax (API service) | 192.168.1.3:7079 |
Dağıtım aşaması
Kendi blok zinciri ağınız birkaç aşamada devreye alınmalıdır:
Sunucu dağıtımı
İlk düğümü dağıtın
İlk düğüm özel bir düğümdür çünkü blok zinciri ağını başlatmak çok önemlidir. Blok zincirinin ilk bloğu, ilk düğüm tarafından oluşturulur ve diğer tüm düğümler blok zincirini ondan indirir. İlk düğümün sahibi platform yaratıcısıdır.
Bağımlılıklar ve ortam ayarları
sudo
Debian 9'un tüm komutları, root olmayan bir kullanıcı olarak çalıştırılmalıdır. Ancak, bazı sistem komutlarının yürütülmesi için süper kullanıcı izinleri gerekir. Varsayılan olarak, sudo Debian 9'da kurulu değildir, önce onu kurmalısınız.
- Süper kullanıcı olun.
- Sisteminizi yükseltin.
- Install sudo。
- Kullanıcınızı sudo grubuna ekleyin.
- Yeniden başlattıktan sonra değişiklikler geçerli olur.
Golang
Go'yu Resmi Dokümantasyona (opens new window) göre yükleyin.
- Go'nun en son kararlı sürümünü (> 1.10.x) Golang resmi web sitesinden (opens new window) veya komut satırından indirin:
- Tarball'ı
/usr/local
dizinine çıkarmak için tar kullanın.
- PATH ortam değişkenlerine
/usr/local/go/bin
ekleyin (/etc/profile
veya $HOME/.profile
konumunda bulunur).
- Değişikliklerin etkili olması için "source" dosyasını çalıştırın, örneğin:
- Geçici dosyaları silin:
PostgreSQL
- PostgreSQL (> v.10) ve psql'yi kurun:
Centrifugo
- Centrifugo V.1.8.0'ı GitHub (opens new window) adresinden veya komut satırından indirin:
- Geçici dosyaları silin:
Dizin yapısı
Debian 9 sistemi için blockchain platformu tarafından kullanılan tüm yazılımların ayrı bir dizinde saklanması önerilir.
/opt/backenddir
dizini burada kullanılır, ancak herhangi bir dizini kullanabilirsiniz. Bu durumda, lütfen tüm komutları ve yapılandırma dosyalarını buna göre değiştirin.
- Blok zinciri platformu için bir dizin oluşturun:
- Kullanıcınızı dizinin sahibi yapın:
- Centrifugo, go-ibax ve düğüm verileri için alt dizinler oluşturun. Tüm düğüm verileri, "X" düğüm numarası olmak üzere "nodeX" adlı bir dizinde depolanır. Dağıtılacak düğüme göre, "düğüm1" Düğüm 1'dir, "düğüm2" Düğüm 2'dir vb.
Veritabanı oluştur
- Kullanıcı parolasını postgres varsayılan parolası 123456 ile değiştirin. Kendi parolanızı belirleyebilirsiniz, ancak bunu config.toml düğüm yapılandırma dosyasında değiştirmelisiniz.
- Düğüm için geçerli bir durum veritabanı oluşturun, örneğin chaindb:
- Centrifugo yapılandırma dosyasını oluşturun:
Kendi gizlinizi ayarlayabilirsiniz, ancak bunu config.toml düğüm yapılandırma dosyasında da değiştirmelisiniz.
go-ibax'ı kurun
- GitHub'dan github-backend'i indirin:
- go-ibax ikili dosyasını
/opt/backenddir/go-ibax
dizinine kopyalayın. Varsayılan Go çalışma alanını kullanıyorsanız, ikili dosyalar $HOME/go/bin
dizininde bulunur:
- Düğüm 1 için yapılandırma dosyasını oluşturun:
- Düğümün ve hesabın genel ve özel anahtarları dahil olmak üzere Düğüm 1'in anahtarlarını oluşturun:
- İlk bloğu oluşturun:
Not
Kendi blok zinciri ağınızı oluşturmak istiyorsanız, `--test=true' seçeneğini kullanmalısınız. Aksi takdirde yeni bir hesap oluşturamazsınız.
- Veritabanını başlatın:
İlk düğüm sunucusunu başlatın
İlk düğüm sunucusunu başlatmak için aşağıdaki iki hizmeti başlatmanız gerekir:
Bu dosyalarla hizmetler (opens new window) oluşturamadıysanız, farklı konsollardaki dizinlerden ikili dosyaları çalıştırabilirsiniz.
- Centrifugo çalıştırın:
- go-ibax'ı çalıştırın:
Diğer düğümleri dağıtın
Diğer tüm düğümlerin (Düğüm 2 ve Düğüm 3) konuşlandırılması birincisine benzer olsa da, üç fark vardır:
- İlk bloğu oluşturmanız gerekmez. Ancak, Düğüm 1'den geçerli düğüm veri dizinine kopyalanması gerekir;
- Düğüm,
--nodesAddr
seçeneğini yapılandırarak Düğüm 1'den blokları indirmelidir; - Düğüm kendi adreslerini ve portlarını kullanmalıdır.
Düğüm 2
Aşağıda gösterildiği gibi çalıştırma talimatlarını izleyin:
- Bağımlılıklar ve ortam ayarları
- Veritabanı oluştur
- Centrifugo
- go-ibax'ı yükleyin
- Düğüm 2 için yapılandırma dosyasını oluşturun:
- İlk blok dosyasını Düğüm 2'ye kopyalayın. Örneğin, bu işlemi Düğüm 2 üzerinden scp üzerinden gerçekleştirebilirsiniz:
- Düğümün ve hesabın genel ve özel anahtarları dahil olmak üzere Düğüm 2'nin anahtarlarını oluşturun:
- Veritabanını başlatın:
- Çalıştır centrifugo:
- Çalıştır go-ibax:
Sonuç olarak, düğüm bloğu ilk düğümden indirir. Bu düğüm bir doğrulama düğümü olmadığı için yeni bir blok oluşturamaz. Düğüm 2, daha sonra doğrulama düğümleri listesine eklenecektir.
Düğüm 3
Aşağıda gösterildiği gibi çalıştırma talimatlarını izleyin:
Bağımlılıklar ve ortam ayarları
Veritabanı oluştur
Centrifugo
go-ibax'ı yükleyin
Düğüm 3 için yapılandırma dosyasını oluşturun:
- İlk blok dosyasını Düğüm 3'e kopyalayın. Örneğin, bu işlemi Düğüm 3'te scp aracılığıyla gerçekleştirebilirsiniz:
- Düğümün ve hesabın genel ve özel anahtarları dahil olmak üzere Düğüm 3'ün anahtarını oluşturun:
- Veritabanını başlatın:
9.Çalıştır centrifugo:
10.Çalıştır go-ibax:
Sonuç olarak, düğüm bloğu ilk düğümden indirir. Bu düğüm bir doğrulama düğümü olmadığı için yeni bir blok oluşturamaz. İstemci düğüme bağlı olabilir ve ağa işlemler gönderebilir.
Front-end dağıtımı
Yalnızca Debian 9 (Stretch) 64-bit Resmi Sürümüne GNOME GUI yüklendikten sonra, Govis istemcisi "yarn" paket yöneticisiyle oluşturulabilir.
Yazılım önkoşulları
- Node.js LTS sürüm 8.11'i Node.js resmi web sitesinden veya komut satırından indirin:
- Node.js'yi yükleyin:
- Yarn Github (opens new window) deposundan veya komut satırından Yarn 1.7.0 sürümünü indirin:
- Kur Yarn:
Bir Weaver uygulaması oluşturun
- Weaver'ın en son sürümünü github-frontend'den git aracılığıyla indirin:
- Install Weaver dependencies via Yarn:
Blok zinciri ağı için yapılandırma dosyasını ekleyin
- Düğüm bağlantısı hakkında bilgi içeren bir settings.json dosyası oluşturun:
- settings.json dosyasını herhangi bir metin düzenleyicide düzenleyin ve gerekli ayarları bu biçimde ekleyin:
Üç düğüm için settings.json dosyası örnekleri:
Weaver Masaüstü Uygulaması Oluşturun
1.Masaüstü sürümünü oluşturmak için yarn kullanın:
2.Masaüstü sürümü, AppImage son eki biçiminde paketlenecektir:
Oluşturulduktan sonra uygulamanız kullanılabilir ancak bağlantı konfigürasyonu değiştirilemez. Bu ayarların değiştirilmesi gerekiyorsa, uygulamanın yeni bir sürümü oluşturulmalıdır.
Weaver Web Uygulaması Oluşturun
- Bir web uygulaması oluşturun:
Oluşturulduktan sonra yeniden dağıtılabilir dosyalar /build dizinine yerleştirilecektir. Dağıtım için istediğiniz herhangi bir web sunucusunu kullanabilirsiniz ve settings.json dosyası da bu dizine yerleştirilmelidir. Bağlantı ayarları değiştirilirse uygulamayı yeniden oluşturmaya gerek olmadığını unutmayın. Bunun yerine settings.json dosyasını düzenleyin ve web sunucusunu yeniden başlatın.
- Geliştirme veya test amacıyla Yarn'ın web sunucusunu oluşturabilirsiniz:
Bundan sonra, Weaver web uygulamanız şu konumda kullanılabilir olacaktır: http://localhost:5000
.
İçerik oluşturucu hesabını oluşturun
İlk düğüm sahibi için bir hesap oluşturun. Bu hesap, yeni blok zinciri platformunun yaratıcısıdır ve yönetici erişimine sahiptir.
Weaver'ı çalıştırın;
Aşağıdaki verileri kullanarak mevcut hesabı içe aktarın:
– /opt/backenddir/node1/PrivateKey
dosyasında bulunan düğüm sahibinin özel anahtarının yedeğini yükleyin.
Not
Bu dizinde iki özel anahtar dosyası vardır. PrivateKey
dosyası, düğüm sahibinin hesabını oluşturmak için kullanılır. 'NodePrivateKey' dosyası, düğümün kendisinin özel anahtarıdır ve gizli tutulmalıdır.
3.Hesaba giriş yaptıktan sonra, şu anda herhangi bir rol oluşturulmadığı için lütfen Rolsüz seçeneğini seçiniz.
Uygulamaları, rolleri ve şablonları içe aktarın
Şu anda, blockchain platformu boş bir durumda. Temel ekosistem işlevlerini destekleyen roller, şablonlar ve uygulama çerçeveleri ekleyerek yapılandırabilirsiniz.
1.Uygulama deposunu klonlayın;
Weaver'da Geliştirici> İçe Aktar'a gidin;
Uygulamaları aşağıdaki sıraya göre içe aktarın:
- Yönetici> Rol'e gidin ve Varsayılan Rolü Yükle'ye tıklayın;
5.Sağ üst köşedeki konfigürasyon dosyası menüsünden sistemden çıkın;
6.Sisteme Yönetici olarak giriş yapın;
- Ana Sayfa> Oy> Şablon Listesi'ne gidin ve Varsayılan Şablonu Yükle'ye tıklayın.
İlk düğümü düğüm listesine ekleyin
1.Geliştirici> Platform Parametreleri'ne gidin ve first_nodes parametresini tıklayın;
2.İlk blok zinciri ağ düğümünün parametrelerini belirtin.
- public_key - Düğümün genel anahtarı
/opt/backenddir/node1/NodePublicKey
dosyasında bulunur;
Başka Honor düğümleri ekleyin
Konsensüs rol grubuna üye ekleyin
Varsayılan olarak, yalnızca fikir birliği rolü (Consensus) grubundaki üyeler, diğer ana düğümleri eklemek için gereken oylamaya katılabilir. Bu, yeni bir ana düğüm eklemeden önce ekosistem üyelerinin role atanması gerektiği anlamına gelir.
Bu bölümde, içerik oluşturucunun hesabı, fikir birliği rol grubunun tek üyesi olarak belirlenir. Bir üretim ortamında, bu rolün yönetişimi gerçekleştiren platform üyelerine atanması gerekir.
Ana Sayfa> Rol'e gidin ve Konsensüs'e tıklayın;
Oluşturanın hesabını role atamak için Ata'yı tıklayın.
Diğer düğümler için sahip hesabı oluşturun
Weaver'ı çalıştırın;
Aşağıdaki verileri kullanarak mevcut hesabı içe aktarın:
– /opt/backenddir/node2/PrivateKey
dosyasında bulunan düğüm sahibinin özel anahtarının yedeğini yükleyin.
Hesaba giriş yaptıktan sonra, şu anda herhangi bir rol oluşturulmadığı için lütfen Rolsüz seçeneğini seçin.
Ana Sayfa> Kişisel Bilgiler'e gidin ve kişisel bilgilerin başlığına tıklayın;
Hesap ayrıntılarını ekleyin (kişisel bilgi başlığı, açıklama vb.).
Doğrulayıcı rolüyle düğüm sahibini atayın
- Yeni düğüm sahibi tarafından yapılan işlemler:
- Ana Sayfa> Doğrulayıcı'ya gidin;
- Talep Oluştur'a tıklayın ve doğrulayıcı adayın başvuru formunu doldurun;
- İstek gönder'e tıklayın.
- Oluşturucu tarafından yapılan işlemler:
- Konsensüs rolüyle oturum açın (Consensus);
- Ana Sayfa> Doğrulayıcı'ya gidin;
- Adayın isteğine göre oylamaya başlamak için "Oynat" simgesine tıklayın;
- Ana Sayfa> Oy'a gidin ve Oylama durumunu güncelle'yi tıklayın;
- Oylama adına tıklayın ve düğüm sahibi için oy verin.
Sonuç olarak, yeni düğümün sahibinin hesabına Doğrulayıcı rolü atanır ve yeni düğüm, ana düğümler listesine eklenir.