Snabbstart: Distribuera ett JavaScript-program till en Azure Managed CCF-resurs
I den här snabbstartsguiden får du lära dig hur du distribuerar ett program till en Azure Managed CCF-resurs (Managed CCF). Den här självstudien bygger på den hanterade CCF-resursen som skapades i snabbstarten : Skapa en Azure Managed CCF-resurs med hjälp av självstudien om Azure-portalen .
Förutsättningar
- Python 3+.
- Installera den senaste versionen av CCF Python-paketet.
- OpenSSL på en dator som kör Windows eller Linux.
Ladda ned tjänstidentiteten
En Azure Managed CCF-resurs har en unik identitet som kallas tjänstidentitet. Det representeras av ett certifikat och skapas när resursen skapas. Varje enskild nod som ingår i Azure Managed CCF-resursen har sitt självsignerade certifikat, som stöds av tjänstidentiteten, som upprättar förtroende för den.
Kunder rekommenderas att ladda ned tjänstidentitetscertifikatet och använda det för att upprätta en TLS-anslutning när de interagerar med tjänsten. Följande kommando laddar ned certifikatet och sparar det i service_cert.pem.
curl https://identity.confidential-ledger.core.azure.com/ledgerIdentity/confidentialbillingapp --silent | jq ' .ledgerTlsCertificate' | xargs echo -e > service_cert.pem
Distribuera programmet
Kommentar
När du kör kommandona på en Mac ersätter du date -Is
med date +%FT%T%z
.
Kommentar
Den här självstudien förutsätter att JavaScript-programpaketet skapas med hjälp av anvisningarna här.
- Skicka programpaketet som finns i set_js_app.json genom att skapa ett förslag.
$ 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') )
- Nästa steg är att godkänna förslaget genom att lägga fram en omröstning.
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
- Upprepa ovanstående steg för varje medlem i den hanterade CCF-resursen.
När kommandot har slutförts distribueras programmet till den hanterade CCF-resursen och är redo att acceptera transaktioner.