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 a API GetAccountTransactionHistoryWithFiltersFromRichHistDB para extrair o histórico de transações da conta do banco de dados de histórico avançado. Quando você especifica 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.
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 VIEW_NAME O nome da exibição para exibir detalhes da transação da conta. Pode ser qualquer valor que não entre em conflito com os ativos existentes no banco de dados. VIEW_NAME="viewTest"
    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 Endpoint Setup ITEMS_PER_PAGE O número de itens a serem exibidos por página nos resultados da consulta ORDS. Pode ser qualquer valor que não entre em conflito com os ativos existentes no banco de dados. ITEMS_PER_PAGE=120
    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"

    Os nomes de exibição de análise estão incluídos no código do software. A view de contas é ACCOUNTS_MOD. A exibição da transação é TRANSACTION_MOD. A exibição da transação de contas é ACCOUNTS_TRANSACTION_MOD.

  9. Execute o script ORDS usando o comando a seguir.
    npm run start --username='<username>' --password='<password>'

    Neste exemplo, <username> e <password> são as credenciais do banco de dados de histórico avançado, que devem ter as permissões necessárias para criar a view e o ponto final do ORDS. O nome de usuário e a senha devem estar entre aspas simples (') devido a limitações na interface bash.

    Quando o comando é executado, os prompts a seguir são exibidos.
    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.
Você poderá ver o erro a seguir.
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.