Instalar, Configurar e Implantar a Solução

Para implementar essa solução, há três áreas principais para trabalhar, conforme descrito na seção a seguir.

  1. Preparação da infraestrutura blockchain.
  2. Desenvolvimento e implementação do contrato inteligente.
  3. Criação do(s) aplicativo(s) que fará uso do nosso contrato inteligente.


oracle-blockchain-cms-plan-oracle.zip

Crie uma rede Hyperledger Fabric, que inicialmente será composta por uma única organização, mas que pode ser facilmente dimensionada para quantos membros você precisar.

Em seguida, continuaremos a criar o contrato inteligente para lidar com a lógica necessária para persistir e gerenciar no blockchain as entidades exigidas por nosso caso de uso de negócios.

Uma vez que o projeto de contrato inteligente é criado, vamos instalá-lo e implantá-lo na rede blockchain que criamos antes, então vamos configurar as contas, inscrições e, finalmente, vamos executar a inicialização do contrato inteligente e seus NFTs.

Neste ponto, os métodos de contrato inteligente já foram publicados por meio do Gateway de API de nossa instância do Oracle Blockchain, também conhecida como RESTPROXY, para que estejam prontos para serem usados pelos aplicativos clientes, no nosso caso, o Aplicativo Web que já criamos com o VBCS, e forneceremos na última seção.

Ao lado da última etapa, está a criação do Bucket de Armazenamento do OCI em que os documentos serão armazenados e, finalmente, a última etapa é a reconfiguração do aplicativo de amostra VBCS para apontar para nossa recém-criada Rede Blockchain e o novo bucket configurado em nossa tenancy. Depois que toda a reconfiguração for concluída, o aplicativo será implantado em nossa tenancy.

Criar uma Rede do Oracle Blockchain

Para a criação de uma rede Hyperledger Fabric (HLF) baseada no Oracle Blockchain, estamos usando o Oracle Blockchain Cloud Service.

Vamos criar uma rede HLF de instância única, de acordo com o caso de uso, podemos mostrar a funcionalidade em uma única organização pertencente à rede. Novas organizações podem ingressar na rede incorporando sua própria instância Blockchain, permitindo que novos usuários dessas organizações possuam suas pastas ou revisem conteúdo de pastas existentes pertencentes a outros membros.

Criar a Instância Fundadora

  1. No menu de serviços do OCI, selecione Serviços do Desenvolvedor e clique em Blockchain Platform.
  2. No seletor de combinação de compartimentos localizado no lado esquerdo da Console do OCI, certifique-se de que o compartimento no qual você deseja criar a instância esteja selecionado.
  3. Clique em Criar Plataforma Blockchain.
  4. Dê à sua plataforma um Nome para Exibição (por exemplo, org1), opcionalmente adicione uma Descrição e mantenha as seleções padrão restantes, pois elas são as definições para criar uma instância Fundadora, que será o fundador de uma nova Rede Hyperledger Fabric e usará a forma padrão, que tem exatamente a mesma funcionalidade que a forma Enterprise, mas a um custo menor, mas válida para o trabalho de desenvolvimento. Clique em Criar.
    A criação da instância para esta Organização (org1) foi submetida e estará pronta em alguns minutos.
Quando a instância Fundador for criada, você poderá acessar a console do Oracle Blockchain para esta instância clicando em Console de Serviço.

Criar um Canal

Precisamos nos juntar às organizações no nível do canal para permitir a comunicação entre o fundador e o participante. Essa ação será executada usando a console de serviço Blockchain.

  1. Na console de serviço Blockchain da instância do fundador (org1), selecione a guia Canais e clique em Criar um Novo Canal.
  2. Preencha os campos obrigatórios.
    • Defina wedocms como seu Nome do Canal ou qualquer nome com base em sua preferência.
    • Selecione as opções (peer0 e peer1) para a seção Pares para Participar do Canal.
  3. Confirme a criação clicando em Sim no pop-up de confirmação.
    Verifique se a tabela de canais exibe o novo canal. Clique no nome do canal (wedocms) para exibir detalhes do canal. Você pode ver todos os detalhes sobre o canal, como transações salvas nos blocos do razão, códigos de cadeia implantados no canal, Solicitantes e Pares configurados, organizações pertencentes ao canal etc.

Criar Contas do Usuário

Usaremos o Oracle Identity Cloud Service para criar pelo menos um usuário para cada um dos departamentos entre as pastas que podem ser trocadas. Para cada um desses usuários, uma conta será criada para conter as diferentes pastas que eles possuem.

Vamos criar o usuário cmsrsk001 que pertence ao Departamento de Riscos, o usuário cmsfin001 que pertence ao Departamento Financeiro e o usuário cmsleg001 que pertence ao Departamento Jurídico.
  1. No menu de navegação da console do OCI no canto superior esquerdo, clique em Identidade e Segurança e selecione a opção Federação na seção Identidade.
  2. Clique no link do nome do Provedor de Identidades.
  3. Clique em Criar Usuário.
  4. Defina como nome de usuário o valor que você deseja usar para fazer log-in na console ou como nome de usuário de autorização para executar as APIs REST do nosso contrato inteligente. No campo de e-mail, defina o e-mail da sua conta do OCI para que você receba o e-mail a fim de redefinir a senha desse usuário e clique em Criar.
  5. Clique em Designar Atribuições.
  6. Para o serviço AUTOBLOCKCHAIN, clique nas reticências à direita e selecione Gerenciar Acesso à Instância.
  7. Dependendo do usuário que você criou, designe concessões com base na tabela a seguir e, depois de designar as atribuições corretas, clique em Atualizar Definições da Instância. Você deverá ver as funções atribuídas corretamente.

    Tabela - Atribuição de Função

    Nome do Usuário Instância Atribuições
    cmsrsk001 org1 ADMIN, REST_CLIENT
    cmsfin001 org1 ADMIN, REST_CLIENT
    cmsleg001 org1 ADMIN, REST_CLIENT
  8. (Opcional) Você será solicitado a enviar um e-mail para o endereço de e-mail do usuário informando os papéis que foram concedidos.
  9. Durante o processo de criação do usuário, você receberá um e-mail na conta de e-mail associada ao usuário criado recentemente para redefinir a senha desse usuário. Use o link fornecido para definir a senha do usuário recém-criado.

Criar Inscrições nos nós Proxy REST

O Oracle Blockchain Platform suporta inscrições para o proxy REST. Essas inscrições são usadas em chaincodes onde existem tokens FT ou NFT, para mapear a identidade do chamador para a função que executa a transação. Para fazer isso, você deve criar a relação do usuário com a função definida no blockchain e, para simplificar, você pode nomear a função como o usuário.

Cada inscrição deve ser criada na instância em que o usuário com essa função tem permissão para executar transações por meio do Proxy REST nessa instância do Blockchain. Portanto, a inscrição cmsrsk001 designada ao usuário cmsrsk001 precisa ser criada no nó Proxy REST da instância do fundador (org1) e o mesmo para os outros dois usuários, conforme descrito na tabela a seguir.
Nome de Usuário Inscrição Instância
cmsrsk001 cmsrsk001 org1
cmsfin001 cmsfin001 org1
cmsleg001 cmsleg001 org1
  1. Na console de serviço Blockchain da instância do fundador (org1), navegue até a guia Nós.
  2. Clique no menu de hambúrguer além de restproxy e selecione Exibir ou gerenciar inscrições.
  3. Selecione Criar Nova Inscrição.
  4. Defina ID da Inscrição como cmsrsk001, ID do Usuário como cmsrsk001 e clique em Inscrever.
Repita a Etapa 4 para criar inscrições para os outros dois usuários: cmsfin001 e cmsleg001. Caso usuários de outra organização tenham sido criados, as inscrições desses usuários devem ser criadas no Proxy REST da instância blockchain à qual pertencem.

Preparar o ambiente de desenvolvimento do Oracle Blockchain App Builder

A criação de um contrato inteligente Hyperledger Fabric (HLF) requer conhecimento intrínseco sobre HLF, como codificar em Java, Typescript ou GoLang e como implantar e gerenciar todo o ciclo de vida do projeto de contrato inteligente.

O Oracle Blockchain App Builder foi criado para simplificar a criação de um projeto de contrato inteligente, na verdade, o Oracle Blockchain App Builder é uma ferramenta de baixo código que é capaz de criar todo o projeto de chaincode do zero, excluindo qualquer código personalizado exigido pelo seu caso de negócios. O Oracle Blockchain App Builder também ajudará você nas fases de teste, no empacotamento do projeto e também na implementação do chaincode localmente em seu próprio computador para testes unitários ou remotamente em uma rede real do Hyperledger Fabric.

oracle-app-builder-oracle.zip

O Oracle Blockchain App Builder foi criado em dois tipos, você pode usá-lo como uma ferramenta de linha de comando destinada a automatizar etapas de criação e implantação em processos CI/CD ou pode usá-lo como um Plug-in de Código Visual da Microsoft. Ambos permitirão que você execute exatamente a mesma funcionalidade, basta selecionar a que você preferir, dependendo de suas preferências. O Oracle Blockchain App Builder tem os seguintes recursos:

  • Desenvolvimento: O Oracle Blockchain App Builder criará todo o projeto de chaincode apenas criando o que é conhecido como arquivo de especificação personalizado. O projeto incluirá todas as entidades codificadas, todos os seus acessores, juntamente com todos os métodos CRUD para gerenciar essas entidades, e também a assinatura de qualquer método personalizado necessário para qualquer lógica de negócios não padrão ou complexa exigida pelo seu aplicativo, que se tornará o único código necessário para ser implementado manualmente.
  • Implantação: Depois que o projeto de chaincode estiver pronto para ser testado, você poderá implantá-lo localmente na Rede do Hyperledger Fabric pré-configurada ou remotamente em qualquer instância existente do Oracle Blockchain Platform na nuvem ou on-premises. Outra opção é empacotar o projeto a ser implantado manualmente por meio da console do Oracle Blockchain.
  • Teste: Depois que o projeto tiver sido implantado, você poderá testar qualquer um dos métodos gerados automaticamente ou os métodos personalizados do projeto de chaincode.
  • Depurar: Caso esteja usando a extensão Visual Studio Code, você também poderá executar a depuração linha por linha do chaincode.

Você pode instalar qualquer uma das duas seguintes versões disponíveis do Oracle Blockchain App Builder:

Se você não estiver confortável instalando esse tipo de ferramentas de desenvolvimento e todas as suas dependências, mas tiver acesso ao Oracle Cloud, poderá optar por criar uma caixa de desenvolvimento dedicada com todos esses produtos já instalados e preparados para serem usados na nuvem e acessá-los remotamente. Essas máquinas são econômicas devido à forma de computação necessária e só são faturadas enquanto estão em funcionamento.

O Oracle LiveLabs tem um Laboratório no qual você pode implantar uma máquina remota em minutos, com base em uma imagem de VM já pré-configurada pela equipe de desenvolvimento do Oracle Blockchain. Para obter mais informações, consulte Desenvolvendo Aplicativos Blockchain de Baixo Código usando o Apex e o Blockchain App Builder.

Observação:

No Laboratório, para preparar uma máquina na nuvem com o Visual Code Studio e o plug-in de baixo código do Oracle Blockchain App Builder instalados nele, você só precisa executar as etapas Preparar Configuração e Configuração do Ambiente.

Criar e Configurar o Bucket do OCI Object Storage

Configuraremos o Bucket do OCI Object Storage que permitirá armazenar e recuperar documentos do aplicativo Web Oracle Visual Builder.

As ações são executadas pelo aplicativo web em sincronia com a criação do hash do documento que será armazenado no Blockchain durante o upload do documento para o Bucket e a verificação da validade do hash quando o documento for baixado.

Observação:

Para obter mais detalhes sobre como codificar um aplicativo Oracle Visual Builder para fazer upload ou download de arquivos do OCI Object Storage, consulte: Fazer Upload/Download de arquivos do OCI Storage em um aplicativo Visual Builder.

Para ativar o uso de Buckets por meio da API REST oferecida pelos Buckets do OCI Object Storage, devemos criar uma Chave de API do OCI relacionada ao usuário com permissão para executar a API REST. Execute as duas tarefas de configuração a seguir para usar os Buckets do OCI Object Storage em nosso Aplicativo Web VBCS.

Para ativar o uso de Buckets do OCI Object Storage no seu Aplicativo Oracle Visual Builder, crie uma Chave de API do OCI para obter acesso aos Serviços do OCI por meio da API REST.

  1. Faça log-in na Console do OCI e clique no ícone Perfil na parte superior direita da console para acessar as Definições do usuário.
  2. Role para baixo e clique em Chaves de API no menu Recursos.
  3. Clique em Adicionar Chave de API para adicionar uma nova Chave de API.
  4. Selecione Gerar Par de Chaves de API.

    Observação:

    Você pode usar suas próprias chaves públicas e privadas no formato pem, mas neste manual de soluções, usaremos as chaves geradas automaticamente.
  5. Faça download das Chaves Privadas e Públicas e marque um arquivo .pem como Público.
  6. Clique em Adicionar.
  7. Clique no link de cópia para copiar suas credenciais da API do OCI para um arquivo de texto em seu computador local, pois você precisará delas para etapas posteriores.
  8. Clique emFechar.
    Você deverá ter uma nova chave de API criada e deverá ver a chave de Impressão Digital na console web do OCI. Você pode acessar o arquivo de Configuração que copiou antes em sua área de trabalho clicando nas reticências na linha Impressão Digital e selecionando Exibir Arquivo de Configuração.

    Observação:

    Salve os detalhes, pois você precisará de alguns deles juntamente com a chave privada para as próximas etapas.
  9. Crie um bucket no qual nossos objetos serão armazenados. Navegue até Storage e clique em Buckets.
    Para simplificar, ele pode ser criado como Público, para que não exija autenticação, mas você também pode fazer o mesmo com buckets de visibilidade Privada.
  10. Selecione um compartimento no qual você deseja criar o Bucket e clique em Criar Bucket.
  11. Na tela Criar Bucket, dê um nome ao bucket, deixe os outros parâmetros de configuração como padrão e clique em Criar para concluir a criação do bucket.
    O novo bucket será exibido no compartimento selecionado. Selecione o nome do bucket para exibir os detalhes. Clique em Objetos no menu esquerdo para ver os objetos submetidos a upload para esse bucket.