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
- Instalowanie programu CCF
- Node.js
- npm
-
- Python 3+.
- Zainstaluj najnowszą wersję pakietu języka Python CCF.
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
- Postępuj zgodnie z instrukcjami w dokumentacji CCF, aby uruchomić projekt i skonfigurować wymaganą strukturę folderów.
Opracowywanie aplikacji
- 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
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.
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
- 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
- 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
- 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.
- 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
}
- 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
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.
Skompiluj aplikację, aby utworzyć nowy plik set_js_app.json w folderze dist.
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
- Omówienie zarządzanego programu CCF platformy Azure
- Szybki start: tworzenie zarządzanego zasobu CCF platformy Azure przy użyciu witryny Azure Portal
- Szybki start: wdrażanie aplikacji JavaScript w usłudze Azure Managed CCF
- Instrukcje: aktualizowanie opcji środowiska uruchomieniowego języka JavaScript