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
.zipdo 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.
- Extraia o arquivo
.zipdo script ORDS para um diretório de trabalho. - No diretório
ORDSscript, abra um terminal. - Execute os comandos a seguir para confirmar se a versão do Node.js no seu sistema é suportada.
node --version npm install - Configure o arquivo
.envsubstituindo 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_STRINGfor um alias do TNS, extraia a wallet e configure o ambiente do cliente Oracle para que o arquivotnsnames.orapossa ser encontrado. O arquivo.zipda 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_NAMEeBASE_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_statee_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.
- Informe o seguinte comando para executar o script.
npm run start- Informe o nome de usuário e a senha do banco de dados do sistema Oracle.
- Selecione Besu como a plataforma de blockchain.
- Selecione Token de Depósito como o tipo de aplicativo.
- Se uma execução anterior estiver incompleta, revise o prompt de rollback antes de optar por reverter objetos.
- Selecione Sim para criar pontos finais REST do ORDS.
- Selecione exibições de análise somente quando a implantação exigir saída de análise.
- Selecione Sim para gerar um cliente OAuth quando for necessário um novo cliente para essa implantação.
- 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 } } - 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
Os URLs de ponto final usam o seguinte formato.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"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" - 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_PREFIXconfigurado é 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_PREFIXconfigurado. - Módulo ORDS
- O módulo configurado é publicado no
BASE_PATHesperado. - 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
itemsvazia é 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.
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>';