Configurar o Oracle Blockchain Platform para o Aplicativo de Amostra de CBDC Atacado

Depois de criar todas as instâncias necessárias do Oracle Blockchain Platform e seus produtos de pré-requisitos, você precisará configurar seus usuários e atribuições, adicionar qualquer organização participante à organização fundadora e ativar o banco de dados de histórico avançado.

Configurar Grupos do IDCS para Instâncias do Oracle Blockchain Platform

Para obter informações adicionais sobre as atribuições incorporadas do Oracle Blockchain Platform e como designar usuários a elas, consulte Configurar Usuários e Atribuições de Aplicativo

Para obter informações adicionais sobre as funções de aplicativo de amostra de CBDC de atacado, consulte Workflow de Aplicativo CBDC de Atacado.

No Oracle Blockchain Platform, as seguintes atribuições de atribuição de aplicativo devem ser implementadas:

  • Grupos de Proprietários do Sistema: Designe o grupo IDCS de proprietário de sistema combinado único (contendo todas as personas do proprietário do sistema) à atribuição de aplicativo REST_CLIENT da instância do proprietário do sistema Oracle Blockchain Platform Digital Assets Edition. Não atribua grupos individuais específicos de persona diretamente à instância do Oracle Blockchain Platform Digital Assets Edition.
  • Grupos de Organizações Participantes: Para cada organização participante, atribua o único grupo IDCS de organização participante combinada (contendo todos os grupos específicos de persona para essa organização) à função de aplicativo REST_CLIENT da respectiva instância do Oracle Blockchain Platform Digital Assets Edition.
  • Atribuições Administrativas: Designe os grupos administrativos relevantes, como System_Admins e Org1_Admins, à atribuição de aplicativo ADMIN de sua respectiva instância do Oracle Blockchain Platform Digital Assets Edition.

Essa configuração garante que os grupos Proprietário do Sistema e Organização Participante tenham o acesso necessário por meio da atribuição REST_CLIENT, enquanto os privilégios administrativos são gerenciados adequadamente por meio da atribuição ADMIN.

Siga estas etapas para designar os grupos a atribuições de aplicativo.

  1. Acesse a sua conta do Oracle Cloud Infrastructure.
  2. Na Console, clique no menu Navegação no canto superior esquerdo.
  3. Em Identidade, selecione Domínios.
  4. Na página Domínios, clique em Oracle Identity Cloud Service.
  5. No menu de navegação do Oracle Identity Cloud Service, selecione Oracle Cloud Services. Localize a instância do Oracle Blockchain Platform para a qual você deseja designar atribuições de grupo. Abra a página Detalhes da instância.
  6. Vá para a página Atribuições de Aplicativo para exibir as atribuições de aplicativo do Oracle Identity Cloud Service listadas no navegador Recursos.
  7. Selecione a atribuição que deseja designar e expanda a atribuição. Clique no menu Mais da atribuição e selecione Designar Grupos.
  8. Na caixa de diálogo Atribuir Grupos, selecione os grupos que você deseja atribuir à função e clique em Atribuir.

Extraia ClientId e ClientSecret

O Oracle Blockchain Platform ClientID e ClientSecret serão usados pelo Visual Builder. Você precisará atualizar esses parâmetros no Visual Builder posteriormente, conforme descrito em Configurar Backends do Visual Builder.

Execute as seguintes etapas para recuperar o ID do cliente e o segredo do cliente de uma instância do Oracle Blockchain Platform:

  1. Acesse a sua conta do Oracle Cloud Infrastructure. Certifique-se de ter privilégios administrativos suficientes para gerenciar definições OAuth.
  2. Na Console, clique no menu Navegação no canto superior esquerdo.
  3. Em Identidade, selecione Domínios.
  4. Na página Domínios, clique em Oracle Identity Cloud Service.
  5. No menu de navegação do Oracle Identity Cloud Service, selecione Oracle Cloud Services. Localize a instância do Oracle Blockchain Platform para a qual você deseja extrair o ID e o segredo do cliente. Abra a página Detalhes da instância.
  6. Quando você abrir a página de detalhes da instância, a guia padrão exibida será a guia Configuração OAuth. Esta guia contém informações essenciais sobre as definições OAuth para sua instância do Oracle Blockchain Platform.

    Você encontrará campos rotulados ID do Cliente e Segredo do Cliente na seção Informações Gerais. Essas credenciais são usadas para autenticar solicitações de API para o Oracle Blockchain Platform.

Configuração de Várias Organizações

Se você estiver criando uma rede complexa do Oracle Blockchain Platform com várias organizações, adicione participantes ao fundador. Uma visão geral desse processo é fornecida no Guia Admin do Oracle Blockchain Platform: Adicionar Organizações Participantes do OBCS à Rede.

Configurar o Banco de Dados de Histórico Avançado para o Oracle Blockchain Platform

Para obter informações adicionais sobre como configurar e usar o banco de dados de histórico avançado, consulte Criar o Banco de Dados de Histórico Avançado.

Antes de concluir essas etapas, você deve ter criado uma instância do Autonomous Database conforme descrito em Provisionar o Autonomous Database para ativar o banco de dados de histórico avançado do Oracle Blockchain Platform.

No modo genérico, configure a instância única do Oracle Autonomous Database para a instância do proprietário do sistema do Oracle Blockchain Platform. No modo confidencial, você deve configurar cada organização participante e o proprietário do sistema com instâncias separadas do Oracle Autonomous Database.

  1. Abra a console do Oracle Blockchain Platform para a instância de rede.
  2. Clique no menu Mais Ações no canto superior direito e selecione Configurar Histórico Rico.
  3. Especifique uma conexão de banco de dados Oracle fornecendo a string de conexão e as credenciais para acessar e gravar no banco de dados Oracle. Observe que as credenciais fornecidas são as credenciais do banco de dados e o Oracle Blockchain Platform não as gerencia.
  4. Clique em Salvar para configurar o banco de dados de histórico avançado.

Criar Inscrições

Crie manualmente as inscrições para os usuários nos grupos System_Admins e Org_Admins.

As inscrições no proxy REST do Oracle Blockchain Platform fornecem um mecanismo para os usuários interagirem com o blockchain sem exigir um certificado de inscrição, simplificando as chamadas de API mapeando identidades de aplicativos para membros do blockchain. Para iniciar qualquer chamada ao chaincode, as inscrições devem ser estabelecidas no Oracle Blockchain Platform.

O aplicativo CBDC de atacado gerencia a criação de inscrições para usuários durante a configuração da conta; no entanto, quando um usuário administrador do sistema faz login pela primeira vez, não existe inscrição. Consequentemente, se esse usuário tentar criar uma conta, a chamada RestProxy falhará. Portanto, é essencial criar uma inscrição para o grupo System_Admins.

Ao definir contas, as inscrições são criadas para as respectivas organizações. Por exemplo, quando as contas do proprietário do sistema forem estabelecidas, as inscrições correspondentes serão geradas. No entanto, se alguma conta da organização participante for criada por meio da página do administrador do sistema, as inscrições não serão criadas automaticamente para essas organizações. Neste workflow de CBDC de atacado, você deve configurar contas de administrador da organização na página de administrador do sistema. Portanto, é necessário criar manualmente matrículas para o grupo de administradores da organização, pois essas matrículas não serão geradas automaticamente devido à estrutura organizacional distinta entre o banco central e as instituições financeiras.

Para obter informações abrangentes sobre como criar as inscrições, consulte Adicionar Inscrições a um Proxy REST.

Extrair RestproxyId

O valor RestproxyId será usado pelo Visual Builder. Você precisará atualizar isso no Visual Builder posteriormente, conforme descrito em Configurar Backends do Visual Builder.

Para recuperar o RestProxyId de uma instância do Oracle Blockchain Platform, você deve chamar as APIs da console do Oracle Blockchain Platform usando uma conta de usuário administrativa. A autenticação pode ser feita usando a autenticação básica ou o OAuth 2.0.

Método de Autenticação

Para o OAuth 2.0, consulte a documentação em OAuth 2.0 Access Token Based Authentication para implementar o fluxo de autenticação necessário.

Ponto Final da API para Extrair RestProxyId

Use a API da console do Oracle Blockchain Platform para obter o RestProxyId enviando uma solicitação ao seguinte ponto final:

GET <oracleblockchainplatform_url>/console/admin/api/v2/nodes

Essa chamada de API retornará uma resposta contendo detalhes sobre os proxies REST configurados em sua instância.

Para obter mais detalhes sobre a API da console, consulte a seguinte documentação: Obter Lista de Nós.

Detalhes de Resposta

Na resposta, localize a seção rotulada RESTProxies, onde você encontrará o RestProxyId correspondente. A estrutura da resposta incluirá vários atributos associados a cada nó de proxy REST.

"RESTProxies": [
        {
            "status": "up",
            "extInfo": [],
            "displayName": "restproxy",
            "RESTProxyId": "48021a2c-e62b-40cd-b7ca-71dda883521d-restproxy",
            "url": "https://bank3-oabcs1-hyd.blockchain.ocp.oraclecloud.com:7443/restproxy",
            "mspId": "Bank3"
        }
    ]

Implantar o Chaincode para o Aplicativo de Amostra de CBDC por Atacado

Agora você pode criar um canal e implantar o chaincode do aplicativo de amostra nele.

  1. Crie um canal.
    1. Defina um novo canal com os participantes necessários de acordo com suas necessidades organizacionais.
    2. Durante o processo de criação do canal, certifique-se de que Ativar Histórico Avançado esteja selecionado. Essa opção ativa o recurso de histórico avançado, que foi configurado anteriormente.
    3. Somente no modo confidencial: em Coleções de Dados Privadas, informe um asterisco (*) para permitir o acesso a todas as coletas de dados privadas.
      Se você não concluir esta etapa, os dados retornados da coleta de dados privada não serão precisos.
    4. Somente no modo confidencial: repita as duas etapas anteriores (ativando o histórico avançado e o acesso a coletas de dados privadas no canal criado anteriormente) para todas as outras organizações participantes na rede.
  2. Implante o chaincode.
    • Modo genérico: Implante o chaincode CBDC por atacado fazendo download do pacote chaincode CBDC por atacado e implantando o arquivo compactado dentro dele (WholesaleCBDC.zip) no novo canal. O nome do pacote é Wholesale CBDC.
    • Modo confidencial: Implante o chaincode CBDC por atacado confidencial fazendo download do pacote chaincode CBDC por atacado confidencial e implantando o arquivo de arquivamento dentro dele (WholesaleCBDC-Confidential.zip) no novo canal. O nome do pacote é WholesaleCBDCConfidential.
    Para obter detalhes sobre como implantar chaincodes, consulte Workflow Típico para Implantar Chaincodes.
  3. Chame a API init, usando a coleção CBDC Postman de atacado fornecida no pacote chaincode CBDC de atacado ou a coleção CBDC Postman de atacado confidencial no pacote chaincode CBDC de atacado confidencial, conforme apropriado. Essa etapa conclui o processo de inicialização, garantindo que o chaincode esteja pronto para uso.
  4. Verifique o status da replicação.
    1. Vá para a guia Canais.
    2. Localize o canal e clique no menu Mais Ações no lado direito da entrada do canal.
    3. Selecione Status do Histórico de Riches para exibir o status da replicação.
      • Se o status for REPLICATING, os dados do canal serão replicados ativamente para o banco de dados de histórico avançado.
      • Se o status da replicação for USER_DISABLED, execute as seguintes ações:
        1. Reiniciar o par: Reinicie o nó do par associado ao canal.
        2. Iniciar uma transação: Acione qualquer transação no canal para iniciar a replicação de dados.
        3. Verifique novamente o status de replicação para confirmar se os dados agora estão sendo replicados para o banco de dados de histórico avançado.
Observe o nome do canal e o nome do chaincode; você precisará configurar o Visual Builder com eles para trabalhar com o aplicativo de amostra.

Criar Views de Banco de Dados de Histórico Rico

Depois de criar o banco de dados de histórico avançado para sua instância do Oracle Blockchain Platform, você poderá executar o script de criação de view do banco de dados para criar as views no banco de dados de histórico avançado e gerar o ponto final do ORDS.

O script ORDS (Oracle REST Data Services) é um aplicativo Node.js escrito em TypeScript, projetado para expor pontos finais ORDS para recuperar detalhes de transação da conta do banco de dados de histórico avançado. Ele cria um ponto final RESTful que permite aos usuários extrair dados de transação de chaincode (para TypeScript e códigos de cadeia Go) do banco de dados rich history. Ele também fornece credenciais essenciais, como o ponto final ORDS, clientId, clientSecret e token do portador, para autenticar e acessar o ponto final.
  1. Faça download do script de criação da view do banco de dados.
    1. Abra a console do Oracle Blockchain Platform.
    2. Vá para a página Ativos Digitais.
    3. Na barra lateral esquerda, vá para o aplicativo Wholesale CBDC.
    4. Faça download do script na área Oracle Database View Definitions for WholesaleCBDC .
  2. Após fazer download do script, consulte Oracle Database View Definitions for Wholesale CBDC para obter detalhes sobre como executá-lo.
  3. O script retorna o ponto final do ORDS, o ID do cliente, o segredo do cliente e o token do portador.
    • No modo genérico, todas as organizações usam uma única configuração de ponto final do ORDS. O script retorna pontos finais para contas em três escopos: contas individuais, contas no nível da organização e todas as contas.
      {
        ORDSEndpoint: 'https://<base_URL>ords/<user_name|alias>/<resource_link>',
       {
        "ORDSEndpoint": {
          "Accounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERN",
          "OrgAccounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNOrgAccounts",
          "AllAccounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNAllAccounts"
        },
        clientId: '<clientId>',
        clientSecret: '<clientSecret>',
        bearerToken: {
          access_token: '<BearerToken>',
          token_type: 'bearer',
          expires_in: 3600
        }
      }
    • No modo confidencial, cada organização, incluindo o proprietário do sistema, tem sua própria configuração do ORDS. Os pontos finais do proprietário do sistema incluem acesso a todas as contas. As organizações participantes têm acesso somente às suas próprias contas no nível da organização.
      Proprietário do sistema:
      {
        ORDSEndpoint: 'https://<base_URL>ords/<user_name|alias>/<resource_link>',
       {
        "ORDSEndpoint": {
          "Accounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERN",
          "OrgAccounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNOrgAccounts",
          "AllAccounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNAllAccounts"
        },
        clientId: '<clientId>',
        clientSecret: '<clientSecret>',
        bearerToken: {
          access_token: '<BearerToken>',
          token_type: 'bearer',
          expires_in: 3600
        }
      }
      Organização participante:
      {
        ORDSEndpoint: 'https://<base_URL>ords/<user_name|alias>/<resource_link>',
       {
        "ORDSEndpoint": {
          "Accounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERN",
          "OrgAccounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNOrgAccounts"
        },
        clientId: '<clientId>',
        clientSecret: '<clientSecret>',
        bearerToken: {
          access_token: '<BearerToken>',
          token_type: 'bearer',
          expires_in: 3600
        }
      }
O ponto final do ORDS para acessar os serviços RESTful segue esta estrutura:
ORDS_REST_BASE_URL/ords/ALIAS_NAME/BASE_PATH/PATTERN
  • ORDS_REST_BASE_URL: O URL base do serviço ORDS.
  • ALIAS_NAME: O alias do banco de dados ou esquema configurado no ORDS.
  • BASE_PATH: O caminho base dos serviços RESTful.
  • PATTERN: O padrão de ponto final específico para o serviço RESTful.
Para gerar um token portador para autenticação, use o ponto final do token OAuth2:
ORDS_REST_BASE_URL/ords/ALIAS_NAME/oauth/token
Os parâmetros a seguir relacionados ao ORDS devem ser atualizados no back-end do Visual Builder para recuperar dados do banco de dados de histórico avançado. Isso será concluído posteriormente em Configurar Backends do Visual Builder.
  • clientId
  • clientSecret
  • Ponto final ORDS (apenas ponto final Accounts; pontos finais OrgAccounts e AllAccounts são derivados internamente)
  • URL base OAuth: ORDS_REST_BASE_URL/ords/<userName|aliasName>