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.
Com o Azure Managed CCF (Managed CCF), é simples e rápido atualizar um aplicativo quando uma nova funcionalidade é introduzida ou quando correções de bugs estão disponíveis. 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+.
- A versão mais recente do pacote CCF Python.
Transferir 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
Atualizar 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 atualizado seja criado usando as instruções disponíveis aqui e salvo em set_js_app.json.
A atualização de um aplicativo não redefine as opções de tempo de execução do JavaScript.
- 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 for concluído, o aplicativo será atualizado e estará pronto para aceitar transações do usuário.