Partilhar via


Guia de início rápido: implantar um aplicativo JavaScript em um recurso do Azure Managed CCF

Neste tutorial de início rápido, você aprenderá como implantar um aplicativo em um recurso do Azure Managed CCF (Managed CCF). Este tutorial baseia-se no recurso CCF Gerenciado criado no Guia de início rápido: Criar um recurso CCF gerenciado do Azure usando o tutorial do portal do Azure.

Pré-requisitos

  • Python 3+.
  • Instale a versão mais recente do pacote CCF Python.
  • OpenSSL num computador com Windows ou Linux.

Transferir a identidade do serviço

Um recurso CCF gerenciado do Azure tem uma identidade exclusiva chamada identidade de serviço. Ele é representado por um certificado e é criado durante a criação do recurso. Cada nó individual que faz parte do recurso CCF Gerenciado do Azure tem seu certificado autoassinado, endossado pela identidade do serviço, que estabelece confiança nele.

Recomenda-se aos clientes baixar o certificado de identidade de serviço e usá-lo para estabelecer uma conexão TLS ao interagir com o serviço. O comando a seguir baixa o certificado e o salva em service_cert.pem.

curl https://identity.confidential-ledger.core.azure.com/ledgerIdentity/confidentialbillingapp --silent | jq ' .ledgerTlsCertificate' | xargs echo -e > service_cert.pem

Implementar a aplicação

Nota

Ao executar os comandos em um Mac, substitua date -Is por date +%FT%T%z.

Nota

Este tutorial pressupõe que o pacote de aplicativos JavaScript seja criado usando as instruções disponíveis aqui.

  1. Envie o pacote de aplicativos presente em set_js_app.json criando uma proposta.
$ 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') )
  1. O próximo passo é aceitar a proposta submetendo uma votação.
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
  1. Repita a etapa acima para cada membro no recurso CCF gerenciado.

Quando o comando é concluído, o aplicativo é implantado no recurso CCF gerenciado e está pronto para aceitar transações.

Próximos passos