Início Rápido: Implantar um aplicativo JavaScript em um recurso CCF Gerenciado pelo Azure

Nesse tutorial de início rápido, você aprenderá a implantar um aplicativo em um recurso CCF Gerenciado pelo Azure (CCF gerenciado). Esse tutorial baseia-se no recurso CCF Gerenciado criado em Início Rápido: Criar um recurso CCF Gerenciado pelo Azure usando o tutorial do portal do Azure.

Pré-requisitos

  • OpenSSL em um computador executando Windows ou Linux.

Baixar a identidade do serviço

Um recurso CCF gerenciado pelo 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 pelo Azure tem seu certificado autoassinado, endossado pela identidade de serviço, que estabelece a confiança nele.

Recomendamos que os clientes baixem o certificado de identidade de serviço e o usem 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

Implantar o aplicativo

Observação

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

Observação

Esse 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. A próxima etapa é aceitar a proposta enviando 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 for concluído, o aplicativo será implantado no recurso CCF Gerenciado e estará pronto para aceitar transações.

Próximas etapas