Schnellstart: Bereitstellen einer JavaScript-Anwendung in einer Azure Managed CCF-Ressource
In diesem Schnellstart-Tutorial erfahren Sie, wie Sie eine Anwendung in einer Azure Managed CCF (Managed CCF)-Ressource bereitstellen. Dieses Tutorial basiert auf der verwalteten CCF-Ressource, die in der Schnellstartanleitung: Erstellen einer Azure Managed CCF-Ressource mithilfe des Lernprogramms zum Azure-Portal erstellt wurde.
Voraussetzungen
- Python 3+.
- Installieren Sie die neueste Version des CCF Python-Pakets .
- OpenSSL auf einem Computer mit Windows oder Linux.
Herunterladen der Dienstidentität
Eine von Azure verwaltete CCF-Ressource verfügt über eine eindeutige Identität, die als Dienstidentität bezeichnet wird. Sie wird durch ein Zertifikat dargestellt und während der Ressourcenerstellung erstellt. Jeder einzelne Knoten, der Teil der Azure Managed CCF-Ressource ist, verfügt über ein selbstsigniertes Zertifikat, das von der Dienstidentität unterstützt wird, wodurch eine Vertrauensstellung dafür hergestellt wird.
Kunden wird empfohlen, das Dienstidentitätszertifikat herunterzuladen und es zu verwenden, um eine TLS-Verbindung herzustellen, wenn sie mit dem Dienst interagieren. Der folgende Befehl lädt das Zertifikat herunter und speichert es in service_cert.pem.
curl https://identity.confidential-ledger.core.azure.com/ledgerIdentity/confidentialbillingapp --silent | jq ' .ledgerTlsCertificate' | xargs echo -e > service_cert.pem
Bereitstellen der Anwendung
Hinweis
Ersetzen Sie beim Ausführen der Befehle auf einem Mac date -Is
durch date +%FT%T%z
.
Hinweis
In diesem Tutorial wird davon ausgegangen, dass das JavaScript-Anwendungsbundle mithilfe der hier verfügbaren Anweisungen erstellt wird.
- Übermitteln Sie das Anwendungsbündel, das in set_js_app.json vorhanden ist, indem Sie einen Vorschlag erstellen.
$ 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') )
- Der nächste Schritt besteht darin, den Vorschlag durch Abgeben einer Stimme anzunehmen.
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
- Wiederholen Sie den obigen Schritt für jedes Mitglied in der verwalteten CCF-Ressource.
Nach Abschluss des Befehls wird die Anwendung in der verwalteten CCF-Ressource bereitgestellt und kann Transaktionen annehmen.