Executar o Script ORDS para o Aplicativo de Token de Depósito

Depois de criar a instância e implantar o aplicativo, você poderá executar o script ORDS.

Você deve atender aos seguintes pré-requisitos:
  • Node.js versão 20.19 ou posterior, 22.13 ou posterior, ou 23.5 ou posterior.
  • Você deve ter o arquivo .zip do script ORDS, que pode ser baixado no console de serviço.

Não coloque segredos de produção no controle de origem. Armazene senhas do banco de dados, arquivos da wallet, segredos do cliente OAuth e tokens do portador em um sistema de gerenciamento de segredos aprovado. O arquivo .env submetido a commit do script é apenas um modelo de espaço reservado.

  1. Extraia o arquivo .zip do script ORDS para um diretório de trabalho.
  2. No diretório ORDSscript, abra um terminal.
  3. Execute os comandos a seguir para confirmar se a versão do Node.js no seu sistema é suportada.
    node --version
    npm install
  4. Configure o arquivo .env substituindo valores de placeholder no modelo fornecido. Não adicione senhas de banco de dados a este arquivo; a interface de linha de comando as solicita de forma interativa.
    # Common ORDS configuration
    CONNECTION_STRING="<Oracle connection string or TNS service alias>"
    VIEW_PREFIX="<unique deployment namespace>"
    MODULE_NAME="<unique ORDS module name>"
    BASE_PATH="<unique/ords/base/path/>"
    ITEMS_PER_PAGE="100"
    ORDS_REST_BASE_URL="https://<ords-host>"
    ALIAS_NAME="<REST-enabled schema alias>"
    ROLE_NAME="<unique ORDS role>"
    PRIVILEGE_NAME="<unique ORDS privilege>"
    LABEL="<privilege label>"
    DESCRIPTION="<deployment description>"
    CLIENT_NAME="<OAuth client name>"
    OWNER="<OAuth client owner>"
    SUPPORT_EMAIL="<support email>"
    
    # Besu Deposit Token configuration
    BESU_TABLE_PREFIX="<exact prefix before _more, _store_state and _store_hist>"
    BESU_TOKEN_CONTRACT="0x<deployed Deposit Token token proxy address>"
    BESU_ACCOUNT_CONTRACT="0x<deployed Account proxy address>"
    
    CONNECTION_STRING
    Se o parâmetro CONNECTION_STRING for um alias do TNS, extraia a wallet e configure o ambiente do cliente Oracle para que o arquivo tnsnames.ora possa ser encontrado. O arquivo .zip da wallet compactada sozinho não é suficiente.
    VIEW_PREFIX
    Namespace exclusivo para exibições analíticas operacionais e opcionais. Use outro prefixo para cada implantação que compartilhe um esquema Oracle.
    MODULE_NAME e BASE_PATH
    Esses parâmetros definem a identidade do módulo ORDS e o caminho do URL. Mantenha a implantação específica e exclusiva.
    ALIAS_NAME
    Alias de esquema Oracle ativado para REST usado no URL do ORDS público e no URL do token.
    BESU_TABLE_PREFIX
    Prefixo de tabela de histórico avançado exato; ele determina as tabelas de origem _more, _store_state e _store_hist.
    BESU_TOKEN_CONTRACT
    Endereço do contrato de proxy do token de depósito implantado.
    BESU_ACCOUNT_CONTRACT
    Endereço do contrato de proxy da conta implantado.
  5. Informe o seguinte comando para executar o script.
    npm run start
    1. Informe o nome de usuário e a senha do banco de dados do sistema Oracle.
    2. Selecione Besu como a plataforma de blockchain.
    3. Selecione Token de Depósito como o tipo de aplicativo.
    4. Se uma execução anterior estiver incompleta, revise o prompt de rollback antes de optar por reverter objetos.
    5. Selecione Sim para criar pontos finais REST do ORDS.
    6. Selecione exibições de análise somente quando a implantação exigir saída de análise.
    7. Selecione Sim para gerar um cliente OAuth quando for necessário um novo cliente para essa implantação.
  6. Se você selecionou o ponto final e a criação do OAuth, mantenha a saída gerada em um armazenamento secreto aprovado. A saída contém o mapa de ponto final chamável, o ID do cliente OAuth, o segredo do cliente OAuth e uma resposta de token ao portador de curta duração. Não copie o segredo do cliente ou o token do portador para qualquer sistema de controle de origem, arquivo, wiki ou software de gerenciamento de projeto que não suporte o tratamento de segredo aprovado. O texto a seguir mostra um exemplo de saída.
    {
      "ORDSEndpoint": "<generated endpoint URL or endpoint map>",
      "clientId": "<OAuth client ID>",
      "clientSecret": "<OAuth client secret>",
      "bearerToken": {
        "access_token": "<short-lived access token>",
        "token_type": "bearer",
        "expires_in": 3600
      }
    }
  7. Se você selecionou a geração do cliente OAuth, mantenha o ID e o segredo do cliente informados em um armazenamento de segredos aprovado e use-os para chamar um ponto final para verificar a função do sistema. O texto a seguir mostra o formato de uma solicitação de token
    curl --request POST \
      "https://<ords-host>/ords/<ALIAS_NAME>/oauth/token" \
      --user "<client-id>:<client-secret>" \
      --header "Content-Type: application/x-www-form-urlencoded" \
      --data "grant_type=client_credentials"
    Os URLs de ponto final usam o seguinte formato.
    https://<ords-host>/ords/<ALIAS_NAME>/<BASE_PATH>/<route>
    O comando a seguir mostra um exemplo de teste de verificação.
    curl --location \
      "https://<ords-host>/ords/<ALIAS_NAME>/<BASE_PATH>/getAllDepositTokenAccounts?token_id=<TOKEN_ID>" \
      --header "Authorization: Bearer <access-token>" \
      --header "Accept: application/json"
  8. Verifique se o script foi executado com sucesso executando as seguintes verificações.
    Perfil do Blockchain Platform Manager
    O perfil de histórico avançado do Oracle AI Database existe e está selecionado para a instância.
    Tabelas históricas ricas
    O BESU_TABLE_PREFIX configurado é resolvido como tabelas _more, _store_state, and _store_hist.
    Dados indexados
    Pelo menos uma transação de token de depósito representativa é mostrada nos dados do histórico avançado.
    Visualizações
    Todas as views operacionais existem no VIEW_PREFIX configurado.
    Módulo ORDS
    O módulo configurado é publicado no BASE_PATH esperado.
    OAuth
    Uma solicitação de credenciais do cliente retorna um token de acesso.
    API
    Uma solicitação autenticada válida retorna o HTTP 200. Uma lista items vazia é aceitável quando não existem dados do razão correspondentes.
    Isolamento
    Views, módulos, atribuições, privilégios, clientes e nomes de alias são exclusivos para implantações que compartilham um banco de dados Oracle.
    As consultas SQL a seguir são úteis para validação.
    SELECT view_name
    FROM user_views
    WHERE view_name LIKE UPPER('<VIEW_PREFIX>') || '_%'
    ORDER BY view_name;
    
    SELECT name, uri_prefix, items_per_page, status
    FROM user_ords_modules
    WHERE name = '<MODULE_NAME>';