Delen via


Een TypeScript- en JavaScript-toepassing bouwen, testen en implementeren

In deze handleiding ziet u de stappen voor het ontwikkelen van een TypeScript- en JavaScript-toepassing die gericht is op CCF, lokaal fouten opsporen en implementeren in een beheerde CCF-resource in de cloud.

Vereisten

In deze handleiding wordt Visual Studio Code gebruikt als de IDE. Maar elke IDE met ondersteuning voor Node.js, JavaScript- en TypeScript-toepassingsontwikkeling kan worden gebruikt.

Project instellen

  1. Volg de instructies in de CCF-documentatie om het project te bootstrapen en de vereiste mapstructuur in te stellen.

De toepassing ontwikkelen

  1. Ontwikkel de TypeScript-toepassing door de documentatie hier te volgen. Raadpleeg de documentatie van het CCF Key-Value-archief voor meer informatie over de naamgevingsstandaarden en transactiesemantiek die u in de code kunt gebruiken. Raadpleeg de voorbeeldtoepassingen die zijn gepubliceerd in GitHub voor voorbeelden en aanbevolen procedures.

De toepassingsbundel bouwen

  1. De systeemeigen indeling voor JavaScript-toepassingen in CCF is een JavaScript-toepassingsbundel of een korte app-bundel. Een bundel kan rechtstreeks worden verpakt in een governancevoorstel voor implementatie. Volg de instructies bij het maken van een toepassingsbundel in de CCF-documentatie om een app-bundel te maken en de implementatie voor te bereiden.

  2. De toepassing bouwen. De toepassingsbundel wordt gemaakt in de dist-map. De toepassingsbundel wordt in een bestand met de naam set_js_app.json geplaatst.

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

Registratie in logboek

  1. CCF biedt macro's om uw eigen regels toe te voegen aan de uitvoer van het knooppunt. Volg de instructies die beschikbaar zijn bij het toevoegen van logboekregistratie aan een toepassing in de CCF-documentatie.

Een CCF-netwerk met 1 knooppunten implementeren

  1. Voer het script /opt/ccf_virtual/bin/sandbox.sh uit om een CCF-netwerk met 1 knooppunten te starten en de toepassingsbundel te implementeren.
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. Het lidcertificaat en de persoonlijke sleutel zijn beschikbaar op /workspace/sandbox_0. Het toepassingslogboek is beschikbaar op /workspace/sandbox_0/out.

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

  1. Op dit moment hebben we een lokaal CCF-netwerk gemaakt met één lid en de toepassing geïmplementeerd. Het netwerkeindpunt is https://127.0.0.1:8000. Het lid kan deelnemen aan governancebewerkingen, zoals het bijwerken van de toepassing of het toevoegen van meer leden door een voorstel in te dienen.
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. Download het servicecertificaat van het netwerk.
curl -k https://127.0.0.1:8000/node/network | jq -r .service_certificate > service_certificate.pem

De toepassing bijwerken

  1. Toepassingsontwikkeling is een iteratief proces. Wanneer er nieuwe functies worden toegevoegd of fouten zijn opgelost, moet de toepassing opnieuw worden geïmplementeerd in het netwerk met 1 knooppunten dat kan worden uitgevoerd met een set_js_app voorstel.

  2. Bouw de toepassing opnieuw om een nieuw bestand set_js_app.json te maken in de dist-map.

  3. Maak een voorstel om de aanvraag in te dienen. Nadat het voorstel is geaccepteerd, wordt de nieuwe toepassing geïmplementeerd in het netwerk met 1 knooppunten.

Notitie

Op een lokaal netwerk met 1 knooppunten wordt een voorstel onmiddellijk geaccepteerd nadat het is ingediend. Het is niet nodig om een stem in te dienen om het voorstel te accepteren of af te wijzen. De logica achter het proces wordt uitgevoerd om het ontwikkelingsproces snel te maken. Dit verschilt echter van de manier waarop de governance in Azure Managed CCF werkt, waarbij leden een stem moeten indienen om een voorstel te accepteren of af te wijzen.

$ 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

De toepassing implementeren in een beheerde CCF-resource

De volgende stap is het maken van een beheerde CCF-resource en het implementeren van de toepassing door de instructies voor het implementeren van een JavaScript-toepassing te volgen.

Volgende stappen