Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu kılavuzda CCF'yi hedefleyen bir TypeScript ve JavaScript uygulaması geliştirme, yerel olarak hata ayıklama ve bulut üzerindeki Yönetilen CCF kaynağına dağıtma adımları gösterilmektedir.
Önkoşullar
- CCF'yi yükleme
- Node.js
- npm
-
- Python 3+.
- CCF Python paketinin en son sürümü.
Bu kılavuzda IDE olarak Visual Studio Code kullanılmaktadır. Ancak, Node.js, JavaScript ve TypeScript uygulama geliştirme desteği olan tüm IDE'ler kullanılabilir.
Proje kurulumu
- Projeyi önyüklemek ve gerekli klasör yapısını ayarlamak için CCF belgelerindeki yönergeleri izleyin.
Uygulamayı geliştirme
- Buradaki belgeleri izleyerek TypeScript uygulamasını geliştirin. Kodda kullanılacak adlandırma standartları ve işlem semantiği hakkında bilgi edinmek için CCF Key-Value deposu belgelerine bakın. Örnekler ve en iyi yöntemler için GitHub'da yayımlanan örnek uygulamalara bakın.
Uygulama paketini oluşturma
CCF'deki JavaScript uygulamaları için yerel biçim bir JavaScript uygulama paketi veya kısa uygulama paketidir. Paket doğrudan dağıtım için bir idare teklifine sarmalanabilir. Uygulama paketi oluşturmak ve dağıtıma hazırlanmak için CCF belgelerindeki uygulama paketi oluşturma yönergelerini izleyin.
Uygulamayı oluşturun. Uygulama paketi, dist klasöründe oluşturulur. Uygulama paketi, set_js_app.jsonadlı bir dosyaya yerleştirilir.
npm run build
> build
> del-cli -f dist/ && rollup --config && cp app.json dist/ && node build_bundle.js dist/
src/endpoints/all.ts → dist/src...
created dist/src in 1.3s
Writing bundle containing 8 modules to dist/bundle.json
ls -ltr dist
total 40
drwxr-xr-x 4 settiy settiy 4096 Sep 11 10:20 src
-rw-r--r-- 1 settiy settiy 3393 Sep 11 10:20 app.json
-rw-r--r-- 1 settiy settiy 16146 Sep 11 10:20 set_js_app.json
-rw-r--r-- 1 settiy settiy 16061 Sep 11 10:20 bundle.json
Günlük Kaydı
- CCF, düğümün çıkışına kendi satırlarınızı eklemek için makrolar sağlar. CCF belgelerindeki uygulamaya günlük ekleme başlığında sağlanan yönergeleri izleyin.
1 düğümlü CCF ağı dağıtma
- 1 düğümlü bir CCF ağı başlatmak ve uygulama paketini dağıtmak için /opt/ccf_virtual/bin/sandbox.sh betiğini çalıştırın.
sudo /opt/ccf_virtual/bin/sandbox.sh --js-app-bundle ~/ccf-app-samples/banking-app/dist/
Setting up Python environment...
Python environment successfully setup
[10:40:37.516] Virtual mode enabled
[10:40:37.517] Starting 1 CCF node...
[10:40:41.488] Started CCF network with the following nodes:
[10:40:41.488] Node [0] = https://127.0.0.1:8000
[10:40:41.489] You can now issue business transactions to the libjs_generic application
[10:40:41.489] Loaded JS application: /home/demouser/ccf-app-samples/banking-app/dist/
[10:40:41.489] Keys and certificates have been copied to the common folder: /home/demouser/ccf-app-samples/banking-app/workspace/sandbox_common
[10:40:41.489] See https://microsoft.github.io/CCF/main/use_apps/issue_commands.html for more information
[10:40:41.490] Press Ctrl+C to shutdown the network
- Üye sertifikası ve özel anahtar /workspace/sandbox_0 adresinde bulunur. Uygulama günlüğü /workspace/sandbox_0/out adresinde kullanılabilir.
- Bu noktada, bir üye ile yerel bir CCF ağı oluşturduk ve uygulamayı dağıttık. Ağ uç noktası şeklindedir
https://127.0.0.1:8000. Üye, bir teklif göndererek uygulamayı güncelleştirme veya daha fazla üye ekleme gibi idare işlemlerine katılabilir.
curl -k --silent https://127.0.0.1:8000/node/version | jq
{
"ccf_version": "ccf-4.0.7",
"quickjs_version": "2021-03-27",
"unsafe": false
}
- Hizmet sertifikasını ağdan indirin.
curl -k https://127.0.0.1:8000/node/network | jq -r .service_certificate > service_certificate.pem
Uygulamayı güncelleştirme
Uygulama geliştirme yinelemeli bir süreçtir. Yeni özellikler eklendiğinde veya hatalar düzeltildiğinde, uygulamanın bir set_js_app teklifiyle yapılabilmesi için 1 düğümlü ağa yeniden dağıtılması gerekir.
dist klasöründe yeni bir set_js_app.json dosyası oluşturmak için uygulamayı yeniden oluşturun.
Uygulamayı göndermek için bir teklif oluşturun. Teklif kabul edildikten sonra yeni uygulama 1 düğümlü ağa dağıtılır.
Uyarı
Yerel bir 1 düğümlü ağda, teklif gönderildikten hemen sonra kabul edilir. Teklifi kabul etmek veya reddetmek için oy göndermeye gerek yoktur. Bunun ardındaki gerekçe, geliştirme sürecini hızlı hale getirmek için yapılır. Ancak bu, üyelerin bir teklifi kabul etmek veya reddetmek için oy göndermesi gereken Azure Yönetilen CCF'de idarenin çalışma biçiminden farklıdır.
$ ccf_cose_sign1 --content dist/set_js_app.json --signing-cert workspace/sandbox_common/member0_cert.pem --signing-key workspace/sandbox_common/member0_privk.pem --ccf-gov-msg-type proposal --ccf-gov-msg-created_at `date -Is` | curl https://127.0.0.1:8000/gov/proposals -H 'Content-Type: application/cose' --data-binary @- --cacert service_cert.pem
Uygulamayı Yönetilen CCF kaynağına dağıtma
Sonraki adım , Bir Yönetilen CCF kaynağı oluşturmak ve JavaScript uygulaması dağıtma yönergelerini izleyerek uygulamayı dağıtmaktır.