Definições de Exibição do Oracle Database para CBDC Atacadista

Você pode usar o banco de dados de histórico avançado para recuperar o histórico de transações da conta e resolver saldos incorretos em várias transações que ocorrem no mesmo bloco.

Você pode usar as APIs GetAccountTransactionHistoryWithFiltersFromRichHistDB, getOrgAccountTransactionHistoryWithFiltersFromRichHistDB e getAllAccountTransactionHistoryWithFiltersFromRichHistDB para extrair o histórico de transações da conta do banco de dados de histórico avançado. Quando você informa os parâmetros custom_endpoint e bearer_token para o método, o histórico de transações da conta é recuperado do banco de dados de histórico avançado ou do banco de dados de estado. Há vários pontos finais personalizados, conforme mostrado na lista a seguir. Para obter mais informações, consulte Criar Views de Banco de Dados de Histórico Rico.
Contas
https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERN
Disponível em modo genérico e modo confidencial.
OrgAccounts
https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNOrgAccount
Disponível em modo genérico e modo confidencial.
AllAccounts
https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNAllAccounts
Disponível no modo genérico. No modo confidencial, disponível apenas para os proprietários do sistema.
Para recuperar o histórico de transações do banco de dados de histórico avançado, você deve estar executando o Oracle Autonomous Database com o Oracle REST Data Services (ORDS) e o OAuth ativado.
  1. Ative e configure o banco de dados de histórico avançado.
    Para obter mais informações, consulte Ativar e Configurar o Banco de Dados de Histórico Rico em Usando o Oracle Blockchain Platform.
  2. Ative o histórico avançado nos canais que contêm os dados de chaincode que você deseja gravar no banco de dados de histórico avançado. Para obter mais informações, consulte Configurar os Canais que Gravam Dados no Banco de Dados de Histórico Rico em Usando o Oracle Blockchain Platform.
  3. Faça download e instale o Node.js versão 18 ou posterior.
  4. Na página Ativos Digitais no Oracle Blockchain Platform, selecione Aplicativo CBDC Atacadista.
  5. Clique em Fazer Download do pacote Definições da View do Banco de Dados.
  6. Extraia o arquivo WholesaleCBDCViewsPackage.zip.
  7. Navegue até a pasta ORDSscript e instale as dependências necessárias executando o comando a seguir.
    npm install
  8. Edite o arquivo .env que é fornecido com o script para configurá-lo para seu ambiente.
    Os pontos de extremidade do Oracle REST Data Services usam o formato geral a seguir.
    <base_URL>/<user_name>/<resource_link>
    Tipo de Ambiente/Configuração Variáveis de Ambiente/Configuração Descrição Exemplo
    DB Connection CONNECTION_STRING A string de conexão para o banco de dados.
    CONNECTION_STRING="(description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)
    (host=adg.ap-sydney-1.example.com))(connect_data=
    (service_name=g536390e55ee33f4_db_high.adg.example.com))(security=(ssl_server_dn_match=yes)))"
    View Configuration CHAINCODE_NAME O nome do chaincode para extrair detalhes da transação no banco de dados de histórico avançado. CHAINCODE_NAME="BondMarketplace"
    View Configuration INSTANCE_NAME O nome da instância na qual o chaincode está implantado. INSTANCE_NAME="BondMarketplace"
    View Configuration CHANNEL_NAME O nome do canal no qual o chaincode é implantado. CHANNEL_NAME="default"
    ORDS Endpoint Setup MODULE_NAME O nome do módulo ORDS a ser usado. Pode ser qualquer valor que não entre em conflito com os ativos existentes no banco de dados. MODULE_NAME="demotest"
    ORDS Endpoint Setup BASE_PATH O caminho base do URL do ORDS. Pode ser qualquer valor que não entre em conflito com os ativos existentes no banco de dados. BASE_PATH="demotest"
    ORDS Endpoint Setup PATTERN O nome do padrão do URL do ORDS. Pode ser qualquer valor que não entre em conflito com os ativos existentes no banco de dados. PATTERN="accountTransactionDetails"
    ORDS REST Endpoint ORDS_REST_BASE_URL O URL base do ponto final REST do ORDS do banco de dados. ORDS_REST_BASE_URL="https://g536390e55ee33f4_db_high.adg.ap-sydney-1.example.com"
    Alias Configuration ALIAS_NAME O alias a ser usado no lugar de um nome de usuário no URL do ponto final REST. Pode ser qualquer valor que não entre em conflito com os ativos existentes no banco de dados. ALIAS_NAME="demotestAlias"
    ORDS Role ROLE_NAME A atribuição ORDS que é designada ao usuário. Pode ser qualquer valor que não entre em conflito com os ativos existentes no banco de dados. ROLE_NAME="demotest_role"
    ORDS Privilege PRIVILEGE_NAME O privilégio ORDS atribuído ao usuário. Pode ser qualquer valor que não entre em conflito com os ativos existentes no banco de dados. PRIVILEGE_NAME="demotest_priv"
    ORDS Privilege LABEL Um rótulo para o privilégio ORDS. Pode ser qualquer valor que não entre em conflito com os ativos existentes no banco de dados. LABEL="demotest_label"
    ORDS Privilege DESCRIPTION Uma descrição do privilégio ORDS. Pode ser qualquer valor que não entre em conflito com os ativos existentes no banco de dados. DESCRIPTION="demotest_description"
    OAuth Configuration CLIENT_NAME O nome do cliente a ser usado para autenticação OAuth com o ponto final REST do ORDS. Pode ser qualquer valor que não entre em conflito com os ativos existentes no banco de dados. CLIENT_NAME="demotest_client"
    OAuth Configuration OWNER O nome do proprietário a ser usado para autenticação OAuth com o ponto final REST do ORDS. Pode ser qualquer valor que não entre em conflito com os ativos existentes no banco de dados. OWNER="demotest"
    OAuth Configuration DESCRIPTION Uma descrição da configuração OAuth. Pode ser qualquer valor que não entre em conflito com os ativos existentes no banco de dados. DESCRIPTION="demotest_description"
    OAuth Configuration SUPPORT_EMAIL O endereço de e-mail de suporte para a configuração OAuth. Pode ser qualquer valor que não entre em conflito com os ativos existentes no banco de dados. SUPPORT_EMAIL="test@example.com"

    O Analytics e outros nomes de visualização estão incluídos no código do software. A exibição de contas é ACCOUNTS_VIEW. A view de coleta de dados privada da transação é TRANSACTION_PDC_VIEW. A exibição da transação da conta é ACCOUNT_TRANSACTION_VIEW.

  9. Somente proprietários de sistemas (bancos centrais): edite o arquivo Participant_orgs_list.yml para criar links de banco de dados entre o banco central e cada banco participante. Não edite nem exclua este arquivo para nós bancários do participante. Se você selecionar o modo confidencial quando o script for executado, será solicitado o nome de usuário e a senha do link do banco de dados para cada organização participante listada no arquivo Participant_orgs_list.yml. Diferentemente dos nomes de usuário de banco de dados, os nomes de usuário de link de banco de dados fazem distinção entre maiúsculas e minúsculas.
    O arquivo Participant_orgs_list.yml é um array YAML que contém detalhes de configuração usados para criar links de banco de dados entre o banco central e cada banco participante, no formato a seguir.
    orgName
    O nome da instância da organização do participante.
    hostName
    O nome do host ou endereço IP do servidor de banco de dados de destino.
    port
    A porta de rede do serviço de banco de dados.
    serviceName
    O nome do serviço de banco de dados ou o identificador do sistema (SID).
    O texto a seguir é um arquivo Participant_orgs_list.yml de exemplo.
    - orgName: "Participating_Org1"
      hostName: "dbserver.example.com"
      port: 1521
      serviceName: "ORCLPDB1"
    - orgName: "Participating_Org2"
      hostName: "dbserver2.example.com"
      port: 1522
      serviceName: "ORCLPDB2"
  10. Execute o script ORDS usando o comando a seguir.
    npm run start

    Em caso confidencial, o usuário será solicitado a selecionar o tipo de organização. Se o usuário optou pelos proprietários do Sistema, então o arquivo Participant_orgs_list.yml vem na ação. e mencione para casos confidenciais, todos os bancos participantes precisam concluir sua configuração ORDS antes do Proprietário do Sistema, caso contrário, isso resultará em falha.

    Quando o comando é executado, os prompts a seguir são exibidos.
    Enter your DB User Name
    Informe o nome do usuário do banco de dados de histórico avançado. A conta deve ter as permissões necessárias para criar views e pontos finais do ORDS.
    Enter your DB Password
    Informe a senha do banco de dados do histórico avançado.
    Please select a chaincode type
    Selecione CONFIDENCIAL para códigos de cadeia que usam o modo confidencial. Caso contrário, selecione WCBDC para códigos de cadeia que usam o modo genérico. Use as teclas de seta para navegar e pressione a tecla Enter para confirmar sua seleção. Se você selecionar o modo confidencial, será solicitado que selecione o tipo de organização: SYSTEM OWNER (que representa o banco central) ou PARTICIPATING ORG (que representa os bancos participantes).

    Observação:

    No modo confidencial, todas as organizações participantes devem executar este script e concluir a configuração do ORDS antes do proprietário do sistema. Se você executar o script para o proprietário do sistema primeiro, ele falhará.
    Do you want to create the View and ORDS Endpoint? (y/n)
    Digite y para criar a view e o ponto final. Informe n se você já tiver criado a view e o ponto final.
    Please select the language of your chaincode? (TS/GO)
    Se você tiver informado y anteriormente, informe TS para TypeScript ou GO para GO.
    Do you want to generate ORDS Endpoint URL and Bearer Token? (y/n)
    Digite y para gerar as credenciais do ponto final. Caso contrário, insira n.
Se você excluir o arquivo Participant_orgs_list.yml por engano, execute o comando a seguir para gerar novamente o arquivo.
npm run refresh
Se já existir uma visualização ou um link de banco de dados no sistema, o script não o recriará. Em vez disso, uma mensagem semelhante ao texto a seguir é registrada:
createView already exists
O script continua na próxima etapa. Isso garante que as views, tabelas, links de banco de dados e outras entidades de banco de dados não sejam excluídas ou substituídas pelo script.
Além disso, você pode ver o seguinte erro.
Error: ORA-20049: Cannot alter the URL mapping while the schema is enabled. Try disabling the schema first.
Esse erro ocorre porque o esquema do banco de dados está ativado e, portanto, não pode ser mapeado para o alias diferente especificado no arquivo .env.
Para contornar esse comportamento, execute as etapas a seguir.
  1. Use o mesmo nome de alias usado anteriormente ou verifique os serviços REST no banco de dados do alias do esquema.
  2. Desative o esquema do banco de dados e execute o script novamente. Para obter mais informações, consulte Oracle REST Data Services (ORDS): Usando o SQL Developer.