도매 CBDC 애플리케이션에 대한 ORDS 스크립트 실행
인스턴스를 생성하고 애플리케이션을 배치한 후 ORDS 스크립트를 실행할 수 있습니다.
다음 선행 조건을 충족해야 합니다:
- Node.js 버전 20.19 이상, 22.13 이상 또는 23.5 이상.
- 서비스 콘솔에서 다운로드할 수 있는 ORDS 스크립트
.zip파일이 있어야 합니다.
소스 제어에 프로덕션 암호를 배치하지 마십시오. 승인된 암호 관리 시스템에 데이터베이스 암호, 전자 지갑 파일, OAuth 클라이언트 암호 및 Bearer 토큰을 저장합니다. 스크립트의 커밋된 .env 파일은 위치 표시자 템플리트일 뿐입니다.
- ORDS 스크립트
.zip파일의 압축을 작업 디렉토리에 풉니다. ORDSscript디렉토리에서 터미널을 엽니다.- 다음 명령을 실행하여 시스템의 Node.js 버전이 지원되는지 확인합니다.
node --version npm install - 제공된 템플리트에서 자리 표시자 값을 바꾸어
.env파일을 구성합니다. 이 파일에 데이터베이스 암호를 추가하지 마십시오. 명령행 인터페이스에서 대화식으로 암호를 묻습니다.# 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 WCBDC configuration BESU_TABLE_PREFIX="<exact prefix before _more, _store_state and _store_hist>" BESU_TOKEN_CONTRACT="0x<deployed WCBDC token proxy address>" BESU_ACCOUNT_CONTRACT="0x<deployed Account proxy address>"CONNECTION_STRINGCONNECTION_STRING매개변수가 TNS 별칭인 경우 전자 지갑을 추출하고tnsnames.ora파일을 찾을 수 있도록 Oracle 클라이언트 환경을 구성합니다. 압축된 전자 지갑.zip파일만으로는 충분하지 않습니다.ALIAS_NAME- 퍼블릭 ORDS URL 및 토큰 URL에 사용되는 REST 사용 Oracle 스키마 별칭입니다.
BESU_ACCOUNT_CONTRACT- 배포된 계정 프록시 계약 주소입니다.
BESU_TABLE_PREFIX- 정확한 서식 있는 내역 테이블 접두어로, 소스
_more,_store_state및_store_hist테이블을 결정합니다. BESU_TOKEN_CONTRACT- 도매 CBDC 토큰 프록시 계약 주소를 배치했습니다.
MODULE_NAME및BASE_PATH- 이러한 매개변수는 ORDS 모듈 ID 및 URL 경로를 정의합니다. 특정 배포와 고유 배포를 모두 유지합니다.
PATTERN, CHAINCODE_NAME, INSTANCE_NAME, CHANNEL_NAME- 이러한 매개변수는 도매 CBDC 애플리케이션의 Hyperledger Fabric 버전에서만 사용됩니다. Besu 버전에는 적용되지 않습니다.
VIEW_PREFIX- 운영 및 선택적 분석 뷰에 대한 고유 네임스페이스입니다. Oracle 스키마를 공유하는 각 배치에 대해 다른 접두어를 사용합니다.
- 이 스크립트를 실행하려면 다음 명령을 입력합니다.
npm run start- Oracle 데이터베이스 사용자 이름 및 암호를 입력합니다.
- 블록체인 플랫폼으로 베수를 선택합니다.
- 응용 프로그램 유형으로 WCBDC를 선택합니다.
- 이전 실행이 완료되지 않은 경우 객체 복원을 선택하기 전에 롤백 프롬프트를 검토하십시오.
- 예를 선택하여 ORDS REST 끝점을 생성합니다.
- 배포에 분석 출력이 필요한 경우에만 분석 보기를 선택합니다.
- 이 배치에 새 클라이언트가 필요할 때 OAuth 클라이언트를 생성하려면 예를 선택합니다.
- 끝점 및 OAuth 생성을 선택한 경우 승인된 암호 저장소에 생성된 출력을 유지합니다. 출력에는 호출 가능한 끝점 맵, OAuth 클라이언트 ID, OAuth 클라이언트 암호 및 수명이 짧은 Bearer-token 응답이 포함됩니다. 클라이언트 암호 또는 Bearer 토큰을 승인된 암호 처리를 지원하지 않는 소스 제어 시스템, 파일, 위키 또는 프로젝트 관리 소프트웨어에 복사하지 마십시오. 다음 텍스트는 샘플 출력을 보여줍니다.
{ "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 } } - OAuth 클라이언트 생성을 선택한 경우 승인된 암호 저장소에 보고된 클라이언트 ID 및 클라이언트 암호를 유지하고 이를 사용하여 끝점을 호출하여 시스템 기능을 확인합니다. 다음 텍스트는 토큰 요청의 형식을 보여줍니다.
끝점 URL에는 다음 형식이 사용됩니다.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>다음 명령은 확인 테스트 예를 보여줍니다.curl --location \ "https://<ords-host>/ords/<ALIAS_NAME>/<BASE_PATH>/getAllCBDCAccounts?token_id=<TOKEN_ID>" \ --header "Authorization: Bearer <access-token>" \ --header "Accept: application/json" - 다음 검사를 실행하여 스크립트가 성공적으로 실행되었는지 확인합니다.
- Blockchain Platform Manager 프로필
- Oracle AI Database 서식 있는 내역 프로파일이 존재하며 인스턴스에 대해 선택됩니다.
- 풍부한 기록 테이블
- 구성된
BESU_TABLE_PREFIX는_more, _store_state, and _store_hist테이블로 분석됩니다. - 인덱스된 데이터
- 하나 이상의 대표 도매 CBDC 트랜잭션이 풍부한 기록 데이터에 표시됩니다.
- 조회 수
- 모든 작동 뷰는 구성된
VIEW_PREFIX아래에 있습니다. - ORDS 모듈을 선택합니다.
- 구성된 모듈은 예상한
BASE_PATH에 게시됩니다. - OAuth
- 클라이언트 인증서 요청은 액세스 토큰을 반환합니다.
- API
- 유효한 인증된 요청은 HTTP 200을 반환합니다. 일치하는 원장 데이터가 없을 경우 빈
items목록을 사용할 수 있습니다. - 분리
- 뷰, 모듈, 롤, 권한, 클라이언트 및 별칭 이름은 하나의 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>';