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:
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:
Bu beş ürün arasındaki ilişki şu şekildedir:
güvenmekdocker (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.
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.
Ş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ınLü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
1Sözleşmeyi dağıtırken ve bir işlem başlatırken bağlanmak için bir adres seçebilirsiniz.
Yerel zincir durumunu kontrol edinBkz. CITA-Doğrulama.
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üklemesiArdı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.
Düğüm başlatılamaz.
Cita kök dizinini yazın:
1 cd < YOUR_CHAIN_NAME > / 0 / logs2 cat cita-network.logCita-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: 59Bu, 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ınArdı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 / 3Ardından düğümü başlatın.
Dağıtım sözleşmesiBu 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 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:
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.
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:
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şmesiBu 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şturunMikroskop, 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.
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 son3. DLL paketi oluştur
1 iplik koşusu dll4. Yapılandırma dosyası ekleyin
1 cp ./.env.example ./.env5. 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, frBu 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, fr6. 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ışıyorArdı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.
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ınKomut, 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: 8888Tarayıcının işlevlerinin kapsamlı hale geldiğini görebilirsiniz:
ReferanslarDex 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