Bagikan melalui


Membangun, menguji, dan menyebarkan aplikasi TypeScript dan JavaScript

Panduan ini menunjukkan langkah-langkah untuk mengembangkan aplikasi TypeScript dan JavaScript yang menargetkan CCF, men-debugnya secara lokal dan menyebarkannya ke sumber daya CCF Terkelola di cloud.

Prasyarat

Panduan ini menggunakan Visual Studio Code sebagai IDE. Tetapi, IDE apa pun dengan dukungan untuk pengembangan aplikasi Node.js, JavaScript, dan TypeScript dapat digunakan.

Penytelan proyek

  1. Ikuti instruksi dalam dokumentasi CCF untuk bootstrap proyek dan siapkan struktur folder yang diperlukan.

Mengembangkan aplikasi

  1. Kembangkan aplikasi TypeScript dengan mengikuti dokumentasi di sini. Lihat dokumentasi penyimpanan Kunci-Nilai CCF untuk mempelajari tentang standar penamaan dan semantik transaksi yang akan digunakan dalam kode. Untuk contoh dan praktik terbaik, lihat aplikasi sampel yang diterbitkan di GitHub.

Membangun bundel aplikasi

  1. Format asli untuk aplikasi JavaScript di CCF adalah bundel aplikasi JavaScript, atau bundel aplikasi pendek. Bundel dapat dibungkus langsung ke dalam proposal tata kelola untuk penyebaran. Ikuti instruksi dalam membuat bundel aplikasi dalam dokumentasi CCF untuk membuat bundel aplikasi dan mempersiapkan penyebaran.

  2. Bangun aplikasi. Bundel aplikasi dibuat di folder dist. Bundel aplikasi ditempatkan dalam file bernama set_js_app.json.

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

Pencatatan

  1. CCF menyediakan makro untuk menambahkan baris Anda sendiri ke output simpul. Ikuti instruksi yang tersedia saat menambahkan pengelogan ke aplikasi dalam dokumentasi CCF.

Menyebarkan jaringan CCF 1-simpul

  1. Jalankan skrip /opt/ccf_virtual/bin/sandbox.sh untuk memulai jaringan CCF 1-node dan sebarkan bundel aplikasi.
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
  1. Sertifikat anggota dan kunci privat tersedia di /workspace/sandbox_0. Log aplikasi tersedia di /workspace/sandbox_0/out.

A picture showing the out file where the CCF node and application logs are written to.

  1. Pada titik ini, kami telah membuat jaringan CCF lokal dengan satu anggota dan menyebarkan aplikasi. Titik akhir jaringan adalah https://127.0.0.1:8000. Anggota dapat berpartisipasi dalam operasi tata kelola seperti memperbarui aplikasi atau menambahkan lebih banyak anggota dengan mengirimkan proposal.
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
}
  1. Unduh sertifikat layanan dari jaringan.
curl -k https://127.0.0.1:8000/node/network | jq -r .service_certificate > service_certificate.pem

Memperbarui aplikasi

  1. Pengembangan aplikasi adalah proses berulang. Ketika fitur baru ditambahkan atau bug diperbaiki, aplikasi harus disebarkan ulang ke jaringan 1-node yang dapat dilakukan dengan proposal set_js_app.

  2. Bangun ulang aplikasi untuk membuat file set_js_app.json baru di folder dist.

  3. Buat proposal untuk mengirimkan aplikasi. Setelah proposal diterima, aplikasi baru disebarkan ke jaringan 1-node.

Catatan

Pada jaringan 1 node lokal, proposal segera diterima setelah dikirimkan. Tidak perlu mengirimkan suara untuk menerima atau menolak proposal. Alasan di balik itu dilakukan untuk membuat proses pengembangan cepat. Namun, ini berbeda dari cara kerja tata kelola di Azure Managed CCF di mana anggota harus mengirimkan suara untuk menerima atau menolak proposal.

$ 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

Menyebarkan aplikasi ke sumber daya CCF Terkelola

Langkah selanjutnya adalah membuat sumber daya CCF Terkelola dan menyebarkan aplikasi dengan mengikuti instruksi di menyebarkan aplikasi JavaScript.

Langkah berikutnya