Démarrage rapide : déployer une application JavaScript sur une ressource CCF managée Azure
Dans ce tutoriel de démarrage rapide, vous allez apprendre à déployer une application sur une ressource Azure CCF managée (CCF managée). Ce tutoriel s’appuie sur la ressource CCF managée créée dans le guide de démarrage rapide : créer une ressource Azure CCF managée à l’aide du tutoriel du portail Azure.
Prérequis
- Python 3+.
- Installez la dernière version du package Python CCF.
- OpenSSL sur un ordinateur exécutant Windows ou Linux.
Téléchargez l’identité du service
Une ressource Azure CCF managée a une identité unique appelée identité de service. Elle est représentée par un certificat et est créée lors de la création de la ressource. Chaque nœud individuel qui fait partie de la ressource Azure CCF managée possède son certificat auto-signé, approuvé par l’identité de service, qui établit l’approbation sur celui-ci.
Les clients sont invités à télécharger le certificat d’identité de service et à l’utiliser pour établir une connexion TLS lorsqu’ils interagissent avec le service. La commande suivante télécharge le certificat et l’enregistre dans service_cert.pem.
curl https://identity.confidential-ledger.core.azure.com/ledgerIdentity/confidentialbillingapp --silent | jq ' .ledgerTlsCertificate' | xargs echo -e > service_cert.pem
Déployer l’application
Remarque
Lors de l’exécution des commandes sur un Mac, remplacez date -Is
par date +%FT%T%z
.
Remarque
Ce tutoriel suppose que le pack d’applications JavaScript est créé à l’aide des instructions disponibles ici.
- Envoyez le pack d’application présent dans set_js_app.json en créant une proposition.
$ proposalid=$( (ccf_cose_sign1 --content set_js_app.json --signing-cert member0_cert.pem --signing-key member0_privk.pem --ccf-gov-msg-type proposal --ccf-gov-msg-created_at `date -Is` | curl https://confidentialbillingapp.confidential-ledger.azure.com/gov/proposals -H 'Content-Type: application/cose' --data-binary @- --cacert service_cert.pem | jq -r '.proposal_id') )
- L’étape suivante consiste à accepter la proposition en la soumettant au vote.
cat vote_accept.json
{
"ballot": "export function vote (rawProposal, proposerId)\n
{\n
// Accepts any proposal\n
return true;\n
}"
}
ccf_cose_sign1 --content vote_accept.json --signing-cert member0_cert.pem --signing-key member0_privk.pem --ccf-gov-msg-type ballot --ccf-gov-msg-created_at `date -Is` --ccf-gov-msg-proposal_id $proposalid | curl https://confidentialbillingapp.confidential-ledger.azure.com/gov/proposals/$proposalid/ballots -H 'Content-Type: application/cose' --data-binary @- --cacert service_cert.pem
- Répétez l’étape ci-dessus pour chaque membre de la ressource CCF managée.
Une fois la commande terminée, l’application est déployée sur la ressource CCF managée et est prête à accepter les transactions.