Öğretici Nervos AppChain'i yerel olarak nasıl oluşturacağınızı öğretin

Kaynak: Hu Shuo Blockchain

Bu makale hakkında 2200 Word, önerilen okuma 8 dakika.

Bu makale sizi blog yazısı eğitimine ve resmi Nervos AppChain belgesine dayanarak bir Dapp oluşturmaya götürecektir.

Bu makalede kullanılan yöntem bir Dapp oluşturmanın en hızlı yolu değildir. Herkese açık test zincirinde bir Dapp oluşturmak daha hızlı olacaktır. CITA zinciri oluşturma adımlarını atlayabilirsiniz. Lütfen resmi Demo: First Forever'a bakın.

Bu makale temel olarak CITA (Nervos) ile İlk DAPP'nizi Oluşturma Konusunda Uygulamalı Eğitim başlıklı blog gönderisine dayanmaktadır ve ayrıca resmi Nervos AppChain belgesine de atıfta bulunmaktadır.

Ana ortam:

  • CITA 0.18
  • Ubuntu 18.04
Nervos AppChain'e Giriş

Nervos Network, Nervos CKB (katman 1) ve Nervos AppChain (katman 2) içerir. Resmi Nervos AppChain belgesinden bir cümle alıntı yapmak:

"Nervos AppChain" açık kaynak kodlu bir genel zincir çözümüdür.

Resmi belgeler halihazırda çeşitli araç serilerine bir giriş içermektedir. Bu eğitim, küçük ama iyi donanımlı bir Dapp oluşturmak için esas olarak aşağıdaki araçları kullanır:

  • CITA
  • Yeniden Doğuş
  • Mikroskop
  • nervos.js
  • cita-cli

Bu beş ürün arasındaki ilişki şu şekildedir:

güvenmek

docker (kurulum yöntemi için lütfen CITA-Install Docker'a bakın)

CITA'yı alın

Öncelikle, CITA almamız gerekiyor.CITA, AppChain istemcisidir ve şu anda yalnızca konsorsiyum zincirlerini desteklemektedir. CITA, Nervos AppChain alet zincirinin temelidir. Yerel olarak mevcut CITA zincirini elde etmenin iki yolu vardır: kaynak koddan derleme veya doğrudan yayın paketini kullanma.

  • Kaynaktan derleyin

Resmi belgeler ayrıntılı bir şekilde incelendiğinden, bu bölüm çok fazla ayrıntıya girmeyecektir, lütfen CITA-Derleme CITA'ya bakın.

  • Sürüm paketini kullan

Şu anda yayımlanan tüm sürümler, CITA'nın resmi sürüm sürümünde bulunabilir. Genellikle seçin cita_secp256k1_ sha3.tar.gz Sürüm indirme.

Düğümü oluşturun, yapılandırın ve başlatın

Lütfen CITA-Deploy CITA'ya bakın.

Bu makalede, dört düğüm yapılandırılacak ve ücret ekonomik modeli kullanılacak (özel talimatlar için CITA-config_tool işlevine ve kullanımına bakın).

Ekonomik model yapılandırılmamışsa, varsayılan değer, zincir oluşturulduğunda kotadır. Kota modeli altındaki zincirde yerel Token yoktur ve işlemler Token tüketmez ve ücret modeli temelde Ethereum kullanımıyla ilgili her zamanki deneyimimizle aynıdır.

Düğüm yapılandırması için create_cita_config.py aracını kullanırken, yapılandırma parametreleri de aynı anda belirtilmelidir. Komut dosyası aşağıdaki gibidir:

1 ./env.sh ./scripts/create_cita_config.py create \ 2 --chain_name test-chain \ 3 --jsonrpc_port 1337 \ 4 --ws_port 4337 \ 5 --grpc_port 5000 \ 6 --nodes "127.0.0.1: 4000,127.0.0.1: 4001,127.0.0.1: 4002,127.0.0.1: 4003 "\ 7 --contract_arguments" SysConfig.chainId = 2 "\ 8" SysConfig.economicalModel = 1 "

Daha sonra kullanılması gereken jsonrpc_port'dur. Zinciri yerel olarak kurduğumuz ve dört düğümü yapılandırdığımız için, JSON-RPC adresleri sırasıyla

1

Sözleşmeyi dağıtırken ve bir işlem başlatırken bağlanmak için bir adres seçebilirsiniz.

Yerel zincir durumunu kontrol edin
  • JSON-RPC'yi doğrudan kullanın

Bkz. CITA-Doğrulama.

  • Cita-cli kullanın

Cita-cli'yi kullanmak için önce pas ve kargo yüklemelisiniz. Ayrıca bkz. Rust Programlama Dili-Kurulumu.

Sonra cita-cli'yi kurun:

1 git klon https://github.com/cryptape/cita-cli.git 2 cd cita-cli / cita-cli 3 kargo yüklemesi

Ardından kargo çalıştır komutunu çalıştırmak için ~ / .cargo / bin / cita-cli çalıştırabilir veya cita-cli / cita-cli girebilirsiniz. Çalışan arayüz aşağıdaki gibidir:

1 # varsayılan, # aşağıdaki nervos3 cita tarafından sağlanan bir test zinciridir > anahtar - ana bilgisayar cita > rpc blockNumber ... 5 cita > çıkış

Komutlar için CITA JSON-RPC'ye bakın.

  • Olası hatalar

Düğüm başlatılamaz.

Cita kök dizinini yazın:

1 cd < YOUR_CHAIN_NAME > / 0 / logs2 cat cita-network.log

Cita-network.log'un sonunda yazdırılan sonuçlar şunlardır:

1 Ana iş parçacığı url'yi açamadı amqp: // guest: guest @ localhost / test-chain / 0: Protocol ("Eşler tarafından bağlantı sıfırlandı (os hatası 104)"), /opt/.cargo/git/checkouts/ cita-common-1aad419f3e80ba17 / 67c715f / pubsub_rabbitmq / src / lib.rs: 59

Bu, RabbitMQ hizmetinin başlamadığı anlamına gelir. Şu anda, başka rabbitmq süreçleri olup olmadığını kontrol etmeniz gerekir. Belirli nedenlerden dolayı, lütfen resmi belgenin yapılandırma düğümü altındaki Nota bakın. Önce docker konteynerini sonlandıralım, şunu kullanın:

1 docker ps # Şu anda çalışan docker container 2 docker stop'u görüntüleyin < CONTAINER_ID > # CITA ile ilgili tüm kapsayıcıları sonlandırın

Ardından hala RabbitMQ servisi olup olmadığını kontrol edin,

1 ps -aux | grep rabbitmq

Öyleyse, işlemi sonlandırmak için kill -9'u kullanın. Ayrıca, kayıtlı bir RabbitMQ servisi olup olmadığını kontrol etmek için systemd'yi de kullanabilirsiniz:

1 sudo systemctl durumu rabbitmq-server

Öyleyse, kullanıcı otomatik başlatmanın kapatılıp kapatılmayacağına karar verebilir.

Bu noktada, yapılandırma işlemini yeniden gerçekleştirin:

1./env.sh ./bin/cita setup test-chain / 02 ./env.sh ./bin/cita setup test-chain / 13 ./env.sh ./bin/cita setup test-chain / 24 ./env.sh ./bin/cita kurulum test zinciri / 3

Ardından düğümü başlatın.

Dağıtım sözleşmesi

Bu makale resmi Demo: First Forever'a göre dağıtılmıştır. Belirli adımlar tekrar edilmeyecek, sadece birkaç önlemi belirtecek.

  • Sözleşmeyi dağıtmak için kullanılan adres ve özel anahtar

Sözleşmeyi dağıtmak için bir kamu-özel anahtar çifti gerekir ve bizim ücretli ekonomik modelimiz altında (az önce bahsedilmiştir), yalnızca süper yöneticinin ve düğümün bakiye serbest bırakma sözleşmesi vardır.

Önceki makalede düğümü yapılandırırken süper yönetici yapılandırılmamışsa, varsayılan süper yöneticinin adresi ve özel anahtarı şunlardır:

  • adres:
  • 0x4b5ae4567ad5d9fb92bc9afd6a657e6fa13a2523
  • özel anahtar:
  • 5f0258a4778057a8a7d97809bd209055b2fbafa654ce7d31ec7191066b9225e6

Ayrıntılar için CITA-Sistem Sözleşmesine bakın.

Düğümün özel anahtarı, düğüm yapılandırması sırasında oluşturulan test zinciri klasörünün altındaki düğüm klasöründe saklanır ve dosya adı özel anahtardır. Düğüm adresi, test zinciri klasörü altındaki şablon / init_data.yml dosyasındadır.

  • Sözleşmeyi derleyin

Tek kontratla derlerken solcjs solc'den pek farklı değildir. Çok sözleşmeli derleme yapıldığında, bu iki araç biraz farklıdır.

Birden fazla sözleşme derlerken, YOUR_CONTRACT_1'in YOUR_CONTRACT_2'i içe aktardığını varsayın:

  • Solcjs kullanıyorsanız, lütfen kullanın
1 solcjs --optimize --abi --bin < YOUR_CONTRACT_1 > < YOUR_CONTRACT_2 >
  • Solc kullanıyorsanız, lütfen kullanın
2 solc --optimize --abi --bin < YOUR_CONTRACT_1 >

Ancak YOUR_CONTRACT_2 ve YOUR_CONTRACT_1, YOUR_CONTRACT_1'in bulunduğu dizinin aynı dizinde veya bir alt dizininde olduğundan emin olun, aksi takdirde YOUR_CONTRACT_2'nin bulunduğu dizini belirtmek için --allow-paths parametresini kullanmalısınız.

Dapp'ta çağrı sözleşmesi

Bu adımda, nervos.js'yi web sayfasındaki sözleşme yöntemini çağırmak için kullanabilirsiniz, Demo First Forever ve @ nervos / chain belgelerine bakın.

Bir blok gezgini oluşturun

Mikroskop, Nervos AppChain için özel olarak tasarlanmış bir blok kaşiftir.Bununla, herhangi bir zincirin blok ve işlem detaylarını görebilirsiniz.

ReBirth, PostgreSQL tabanlı bir önbellek sunucusudur.Microscope'taki son 10 işlemi listelemek gibi bazı işlevler ReBirth kullanmalıdır.

Blockchain tarayıcısı oluşturmak için Mikroskop + ReBirth kombinasyonunu kullanacağız.

  • Blok gezgininin ön ucunu oluşturmak için Mikroskop kullanın

1. Mikroskobun Github deposunu indirin

1 git klon https://github.com/cryptape/Microscope/

2. Depo bağımlılıklarını yükleyin

1 iplik kurulumu

İpliği olmayanlar kurulum için npm i ipliği -g kullanabilir. Ubuntu kullanıcıları aşağıdaki komutlarla node ve npm kurabilir:

1 sudo apt-get install 2 npm npm i n -g 3 n en son

3. DLL paketi oluştur

1 iplik koşusu dll

4. Yapılandırma dosyası ekleyin

1 cp ./.env.example ./.env

5. Yapılandırma dosyasını değiştirin

.Env'yi açın ve varsayılan yapılandırma aşağıdaki gibidir:

1 # genel içerik sunucusu adresi 2 PUBLIC = localhost: 80823 # Varsayılan AppChain JSON-RPC adresi, sadece yapılandırılan düğüm RPC adresini kullanın 4 CHAIN_SERVERS = http: //47.96.231.19: 40005 # Blok gezgini Ad 6 APP_NAME = Mikroskop 7 LNGS = zh, en, ja-JP, ko, de, it, fr

Bu makalede kullanılan yapılandırma aşağıdaki gibidir:

1 # https://cdn.cryptape.com/, Nervos 2'nin resmi CDN'sidir 2 PUBLIC = https: //cdn.cryptape.com/ 3 CHAIN_SERVERS = http: //127.0.0.1: 1337/4 APP_NAME = Mikroskop 5 LNGS = zh, en, ja-JP, ko, de, it, fr

6. Sunucuyu geliştirme modunda çalıştırın

1 iplik başlangıcı

Bir satır çıktı aşağıdaki gibidir:

1 Proje http: // localhost: 8080 / adresinde çalışıyor

Ardından, web paketinin paketlenmesini bekleyin, bu uzun zaman alabilir. Ardından aşağıdaki çıktıyı görürsünüz:

1 web paketi: Başarıyla derlendi.

Sunucu başarıyla çalışıyor.

Tarayıcıya http: // localhost: 8080 / yazın, aşağıdaki şekilde gösterildiği gibi görebilirsiniz, son işlemlerin listesi görüntülenemiyor:

Daha fazla bilgi için lütfen Mircroscope belgelerine bakın.

  • Önbellek veritabanı hizmeti sağlamak için ReBirth kullanın

1. Kurulum yapılandırma dosyası

Yapılandırma dosyası, yeniden doğumun kök dizini altında .env'dir. Genellikle başka bir .env.local dosyası oluşturulmalıdır. Bu makalede, doğrudan .env'yi değiştirip CITA_URL alanını olarak ayarlıyoruz.

2. ReBirth'ü Çalıştır

1 git clone https://github.com/cryptape/re-birth.git 2 cd yeniden doğum 3 make setup # Bu komutu ilk çalıştırma için kullanın 4 make up # Docker daemon'u başlatın

Komut, docker görüntüsünü otomatik olarak çekecek ve kapsayıcıyı çalıştıracaktır. Varsayılan adres http: // localhost: 8888'dir.

Docker ps'yi girin, re-birth_web, re-birth_web, re-birth_web ve bir PostgreSQL konteyneri olmak üzere en az 4 konteynerin çalıştığını görmelisiniz.

Daha fazla bilgi için lütfen ReBirth belgelerine bakın.

3. Mikroskobu Yeniden Yapılandırma

Tarayıcıya http: // localhost: 8080 / yazın ve aşağıdaki şekilde kırmızı kutuda gösterilen düğmeyi tıklayın:

Diğer Zincirde az önce ayarlanan ReBirth önbellek sunucusunun adresini şekilde gösterildiği gibi girin:

http: // localhost: 8888

Tarayıcının işlevlerinin kapsamlı hale geldiğini görebilirsiniz:

Referanslar

Dex Hunter. (2018, 4 Eylül). Dex Hunter blogu. İlk DAPP'nizi CITA (Nervos) ile oluşturmaya yönelik uygulamalı eğitim. 19 Eylül 2018 tarihinde https://dexhunter.github.io/tutorial/2018 adresinden erişildi. /09/04/tutorial-on-cita.html

Orjinal kaynak:

https://blog.priewienv.me/post/nervos-appchain-local/ Telif hakkı orijinal yazara aittir

Uygun maliyetli! CSL sivil forvetinin 3 maçta 3 golü var.Fas futbolunun Xu Yang'ın ağzındaki temsilcisi mi?
önceki
Tekrar sakin ol! Yağmurlu + 5 kuvvetli rüzgar da var, en düşük sıcaklık sadece 3 Günaydın Wuhan
Sonraki
dramatik! Bayern aynı anda gol direğini vurdu Dortmund ilmi tamamladı, bir sonraki tur veya Bundesliga şampiyonluğu belli olacak!
Yifen Yeni Yılı 29 Shi Hongzheng: Rizhao köyünde "kutsal bir ağaç" var ve köylüler dua etmeye geliyor
Moore Yasası ölecek mi? AI iksirleri gençleşmesine yardımcı olur! (Kağıt ile)
Chengdu'daki Chunxi Yolu'nda fotoğraf çekmenizi bekleyen bir grup süper sevimli panda var
İngiltere'nin beşinci kademe ligi başka bir klasiktir ve milli futbol takımı da bu numaraya yenildi!
En iyi makine öğrenimi algoritması uzmanı olmak için hangi algoritmaları bilmeniz gerekiyor?
Bu Süper Lig takımı utanç verici bir rekorunu sürdürüyor! 7 maçta galibiyetsiz 5 maç kaybetti, toplam skor 5-15 kaybetti!
Özel Ren Fuji: Yapay Zekanın Geleceği (PPT indirmesiyle)
Resimde WuhanAir F1 Wuhan, dünyanın en eski havacılık etkinliği başladı
Süper Lig kalecisinde bir başka düşük seviye ciro! Koca ayak havayı tekmeledi, SIPG dış yardımları boş kapıya güldü
Ücretsiz biletler Ağ Güvenliği ve Veri Uyumluluğu Yönetişim Forumu (Shenzhen)
Chengdu'da Han ailesinin mezarları ortaya çıkarıldı.Arkeologların analizi: belki de yerel güçlü aile
To Top