Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 Gerido criado no Início Rápido: Criar um recurso CCF gerido do Azure usando o portal do Azure.
Pré-requisitos
- Python 3+.
- A versão mais recente do pacote CCF Python.
- OpenSSL num computador com Windows ou Linux.
Descarregar a identidade do serviço
Um recurso CCF gerenciado do Azure tem uma identidade exclusiva chamada identidade de serviço, representada por um certificado e criada 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 que os clientes baixem o certificado de identidade do 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
Este tutorial pressupõe que o pacote de aplicativos JavaScript seja criado usando as instruções disponíveis aqui.
- 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') )
- 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
- 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.