도매 CBDC에 대한 Oracle Database 뷰 정의

서식 있는 이력 데이터베이스를 사용하여 계정 트랜잭션 이력을 검색하고 동일한 블록에서 발생하는 다중 트랜잭션에서 잘못된 잔액을 해결할 수 있습니다.

GetAccountTransactionHistoryWithFiltersFromRichHistDB API를 사용하여 리치 기록 데이터베이스에서 계정 트랜잭션 기록을 인출할 수 있습니다. custom_endpointbearer_token 매개변수를 메소드에 전달하면 풍부한 내역 데이터베이스 또는 상태 데이터베이스에서 계정 트랜잭션 내역이 검색됩니다.
리치 내역 데이터베이스에서 트랜잭션 내역을 검색하려면 ORDS(Oracle REST Data Services) 및 OAuth가 사용으로 설정된 Oracle Autonomous Database를 실행해야 합니다.
  1. 리치 내역 데이터베이스를 사용 및 구성합니다.
    For more information, see Enable and Configure the Rich History Database in Using Oracle Blockchain Platform.
  2. 리치 기록 데이터베이스에 쓰려는 체인 코드 데이터가 포함된 채널에서 리치 기록을 사용으로 설정합니다. 자세한 내용은 Oracle Blockchain Platform 사용Rich History Database에 데이터를 쓰는 채널 구성을 참조하십시오.
  3. Node.js 버전 18 이상을 다운로드하고 설치합니다.
  4. Oracle Blockchain Platform디지털 자산 페이지에서 도매 CBDC 애플리케이션을 선택합니다.
  5. 데이터베이스 뷰 정의 패키지 다운로드를 누릅니다.
  6. WholesaleCBDCViewsPackage.zip 파일의 압축을 풉니다.
  7. ORDSscript 폴더로 이동하고 다음 명령을 실행하여 필요한 종속성을 설치합니다.
    npm install
  8. 스크립트와 함께 제공되는 .env 파일을 편집하여 해당 환경에 맞게 구성합니다.
    Oracle REST Data Services 끝점은 다음과 같은 일반 형식을 사용합니다.
    <base_URL>/<user_name>/<resource_link>
    환경/구성 유형 환경/구성 변수 설명
    DB Connection CONNECTION_STRING 데이터베이스에 대한 접속 문자열입니다.
    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 계정 트랜잭션 세부정보를 표시하기 위한 뷰의 이름입니다. 이 값은 데이터베이스의 기존 자산과 충돌하지 않는 값일 수 있습니다. VIEW_NAME="viewTest"
    View Configuration CHAINCODE_NAME 서식 있는 기록 데이터베이스에서 트랜잭션 세부정보를 인출할 체인 코드의 이름입니다. CHAINCODE_NAME="BondMarketplace"
    View Configuration INSTANCE_NAME 체인 코드가 배포된 인스턴스의 이름입니다. INSTANCE_NAME="BondMarketplace"
    View Configuration CHANNEL_NAME 체인코드가 배포되는 채널의 이름입니다. CHANNEL_NAME="default"
    ORDS Endpoint Setup MODULE_NAME 사용할 ORDS 모듈의 이름입니다. 이 값은 데이터베이스의 기존 자산과 충돌하지 않는 값일 수 있습니다. MODULE_NAME="demotest"
    ORDS Endpoint Setup BASE_PATH ORDS URL의 기본 경로입니다. 이 값은 데이터베이스의 기존 자산과 충돌하지 않는 값일 수 있습니다. BASE_PATH="demotest"
    ORDS Endpoint Setup PATTERN ORDS URL의 패턴 이름입니다. 이 값은 데이터베이스의 기존 자산과 충돌하지 않는 값일 수 있습니다. PATTERN="accountTransactionDetails"
    ORDS Endpoint Setup ITEMS_PER_PAGE ORDS 질의 결과에서 페이지당 표시할 항목 수입니다. 이 값은 데이터베이스의 기존 자산과 충돌하지 않는 값일 수 있습니다. ITEMS_PER_PAGE=120
    ORDS REST Endpoint ORDS_REST_BASE_URL 데이터베이스의 ORDS REST 끝점의 기본 URL입니다. ORDS_REST_BASE_URL="https://g536390e55ee33f4_db_high.adg.ap-sydney-1.example.com"
    Alias Configuration ALIAS_NAME REST 끝점 URL에서 사용자 이름 대신 사용할 별칭입니다. 이 값은 데이터베이스의 기존 자산과 충돌하지 않는 값일 수 있습니다. ALIAS_NAME="demotestAlias"
    ORDS Role ROLE_NAME 유저에게 할당된 ORDS 롤입니다. 이 값은 데이터베이스의 기존 자산과 충돌하지 않는 값일 수 있습니다. ROLE_NAME="demotest_role"
    ORDS Privilege PRIVILEGE_NAME 사용자에게 지정된 ORDS 권한입니다. 이 값은 데이터베이스의 기존 자산과 충돌하지 않는 값일 수 있습니다. PRIVILEGE_NAME="demotest_priv"
    ORDS Privilege LABEL ORDS 권한에 대한 레이블입니다. 이 값은 데이터베이스의 기존 자산과 충돌하지 않는 값일 수 있습니다. LABEL="demotest_label"
    ORDS Privilege DESCRIPTION ORDS 권한에 대한 설명입니다. 이 값은 데이터베이스의 기존 자산과 충돌하지 않는 값일 수 있습니다. DESCRIPTION="demotest_description"
    OAuth Configuration CLIENT_NAME ORDS REST 끝점을 통한 OAuth 인증에 사용할 클라이언트 이름입니다. 이 값은 데이터베이스의 기존 자산과 충돌하지 않는 값일 수 있습니다. CLIENT_NAME="demotest_client"
    OAuth Configuration OWNER ORDS REST 끝점을 통한 OAuth 인증에 사용할 소유자 이름입니다. 이 값은 데이터베이스의 기존 자산과 충돌하지 않는 값일 수 있습니다. OWNER="demotest"
    OAuth Configuration DESCRIPTION OAuth 구성에 대한 설명입니다. 이 값은 데이터베이스의 기존 자산과 충돌하지 않는 값일 수 있습니다. DESCRIPTION="demotest_description"
    OAuth Configuration SUPPORT_EMAIL OAuth 구성에 대한 지원 전자메일 주소입니다. 이 값은 데이터베이스의 기존 자산과 충돌하지 않는 값일 수 있습니다. SUPPORT_EMAIL="test@example.com"

    분석 뷰 이름은 소프트웨어 코드에 포함됩니다. 고객사 뷰는 ACCOUNTS_MOD입니다. 트랜잭션 뷰는 TRANSACTION_MOD입니다. 계정 트랜잭션 뷰는 ACCOUNTS_TRANSACTION_MOD입니다.

  9. 다음 명령을 사용하여 ORDS 스크립트를 실행하십시오.
    npm run start --username='<username>' --password='<password>'

    이 예에서 <username><password>는 뷰 및 ORDS 끝점을 생성하는 데 필요한 권한이 있어야 하는 리치 내역 데이터베이스에 대한 인증서입니다. bash 인터페이스의 제한 사항으로 인해 사용자 이름과 암호는 작은 따옴표(')로 묶어야 합니다.

    명령이 실행되면 다음 프롬프트가 표시됩니다.
    Do you want to create the View and ORDS Endpoint? (y/n)
    y를 입력하여 뷰와 끝점을 생성합니다. 뷰와 끝점을 이미 생성한 경우 n을 입력합니다.
    Please select the language of your chaincode? (TS/GO)
    이전에 y를 입력한 경우 TypeScript의 경우 TS를 입력하고 이동의 경우 GO를 입력합니다.
    Do you want to generate ORDS Endpoint URL and Bearer Token? (y/n)
    y를 입력하여 끝점 인증서를 생성합니다. 그렇지 않은 경우 n을 입력합니다.
다음 오류가 표시될 수 있습니다.
Error: ORA-20049: Cannot alter the URL mapping while the schema is enabled. Try disabling the schema first.
이 오류는 데이터베이스 스키마가 사용으로 설정되었으므로 .env 파일에 지정된 다른 별칭에 매핑할 수 없기 때문에 발생합니다.
이 동작을 해결하려면 다음 단계를 완료합니다.
  1. 이전에 사용된 것과 동일한 별칭 이름을 사용하거나 데이터베이스의 REST 서비스에서 스키마 별칭을 확인하십시오.
  2. 데이터베이스 스키마를 비활성화하고 스크립트를 다시 실행합니다. 자세한 내용은 Oracle REST Data Services (ORDS) : Using SQL Developer을 참조하십시오.