Udostępnij za pośrednictwem


Kompilowanie, testowanie i wdrażanie aplikacji TypeScript i JavaScript

W tym przewodniku przedstawiono kroki tworzenia aplikacji TypeScript i JavaScript przeznaczonej dla platformy CCF, debugowania jej lokalnie i wdrażania go w zasobie zarządzanego programu CCF w chmurze.

Wymagania wstępne

Ten przewodnik używa programu Visual Studio Code jako środowiska IDE. Można jednak użyć dowolnego środowiska IDE z obsługą tworzenia aplikacji Node.js, JavaScript i TypeScript.

Konfiguracja projektu

  1. Postępuj zgodnie z instrukcjami w dokumentacji CCF, aby uruchomić projekt i skonfigurować wymaganą strukturę folderów.

Opracowywanie aplikacji

  1. Opracuj aplikację TypeScript, postępując zgodnie z dokumentacją tutaj. Zapoznaj się z dokumentacją magazynu klucz-wartość programu CCF, aby dowiedzieć się więcej o standardach nazewnictwa i semantyce transakcji do użycia w kodzie. Przykłady i najlepsze rozwiązania można znaleźć w przykładowych aplikacjach opublikowanych w usłudze GitHub.

Kompilowanie pakietu aplikacji

  1. Natywny format aplikacji JavaScript w języku CCF to pakiet aplikacji JavaScript lub krótki pakiet aplikacji. Pakiet można opakować bezpośrednio w propozycję ładu do wdrożenia. Postępuj zgodnie z instrukcjami w temacie Tworzenie pakietu aplikacji w dokumentacji programu CCF, aby utworzyć pakiet aplikacji i przygotować się do wdrożenia.

  2. Zbuduj aplikację. Pakiet aplikacji jest tworzony w folderze dist. Pakiet aplikacji jest umieszczany w pliku o nazwie 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

Rejestrowanie

  1. Program CCF udostępnia makra umożliwiające dodawanie własnych wierszy do danych wyjściowych węzła. Postępuj zgodnie z instrukcjami dostępnymi podczas dodawania rejestrowania do aplikacji w dokumentacji programu CCF.

Wdrażanie sieci CCF z 1 węzłem

  1. Uruchom skrypt /opt/ccf_virtual/bin/sandbox.sh, aby uruchomić sieć CCF z 1 węzłem i wdrożyć pakiet aplikacji.
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. Certyfikat elementu członkowskiego i klucz prywatny są dostępne w witrynie /workspace/sandbox_0. Dziennik aplikacji jest dostępny pod adresem /workspace/sandbox_0/out.

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

  1. W tym momencie utworzyliśmy lokalną sieć CCF z jednym elementem członkowskim i wdrożyliśmy aplikację. Punkt końcowy sieci to https://127.0.0.1:8000. Członek może uczestniczyć w operacjach ładu, takich jak aktualizowanie aplikacji lub dodawanie większej liczby członków, przesyłając propozycję.
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. Pobierz certyfikat usługi z sieci.
curl -k https://127.0.0.1:8000/node/network | jq -r .service_certificate > service_certificate.pem

Aktualizowanie aplikacji

  1. Tworzenie aplikacji to proces iteracyjny. Po dodaniu nowych funkcji lub naprawieniu usterek aplikacja musi zostać ponownie wdrożona w sieci 1 węzłów, którą można wykonać za pomocą propozycji set_js_app.

  2. Skompiluj aplikację, aby utworzyć nowy plik set_js_app.json w folderze dist.

  3. Utwórz propozycję, aby przesłać aplikację. Po zaakceptowaniu propozycji nowa aplikacja zostanie wdrożona w sieci 1-węzłowej.

Uwaga

W lokalnej sieci 1-węzłowej propozycja jest natychmiast akceptowana po przesłaniu. Nie ma potrzeby przesyłania głosowania w celu zaakceptowania lub odrzucenia wniosku. Uzasadnienie jest wykonywane, aby proces programowania był szybki. Różni się to jednak od tego, jak działa ład w usłudze Azure Managed CCF, gdzie członkowie muszą przesłać głos, aby zaakceptować lub odrzucić propozycję.

$ 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

Wdrażanie aplikacji w zarządzanym zasobie CCF

Następnym krokiem jest utworzenie zarządzanego zasobu CCF i wdrożenie aplikacji, postępując zgodnie z instrukcjami w temacie Wdrażanie aplikacji JavaScript.

Następne kroki