도매 CBDC에 대한 Oracle Database 뷰 정의

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

GetAccountTransactionHistoryWithFiltersFromRichHistDB, getOrgAccountTransactionHistoryWithFiltersFromRichHistDBgetAllAccountTransactionHistoryWithFiltersFromRichHistDB API를 사용하여 풍부한 기록 데이터베이스에서 계정 트랜잭션 기록을 인출할 수 있습니다. custom_endpointbearer_token 매개변수를 메소드로 전달하면 풍부한 기록 데이터베이스 또는 상태 데이터베이스에서 계정 트랜잭션 내역이 검색됩니다. 다음 목록에 표시된 대로 사용자정의 끝점이 여러 개 있습니다. 자세한 내용은 리치 내역 데이터베이스 뷰 생성을 참조하십시오.
계정
https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERN
일반 모드 및 기밀 모드에서 사용할 수 있습니다.
OrgAccounts
https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNOrgAccount
일반 모드 및 기밀 모드에서 사용할 수 있습니다.
AllAccounts
https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNAllAccounts
일반 모드에서 사용할 수 있습니다. 기밀 모드에서는 시스템 소유자만 사용할 수 있습니다.
리치 내역 데이터베이스에서 트랜잭션 내역을 검색하려면 ORDS(Oracle REST Data Services) 및 OAuth가 사용으로 설정된 Oracle Autonomous Database를 실행해야 합니다.
  1. 리치 내역 데이터베이스를 사용 및 구성합니다.
    자세한 내용은 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 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 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_VIEW입니다. 트랜잭션 개인 데이터 수집 뷰는 TRANSACTION_PDC_VIEW입니다. 계정 트랜잭션 보기는 ACCOUNT_TRANSACTION_VIEW입니다.

  9. 시스템 소유자(중앙 은행)만 해당: Participant_orgs_list.yml 파일을 편집하여 중앙 은행과 각 참여 은행 간에 데이터베이스 링크를 생성합니다. 가입자 은행 노드에 대해 이 파일을 편집하거나 삭제하지 마십시오. 스크립트가 실행될 때 기밀 모드를 선택하면 Participant_orgs_list.yml 파일에 나열된 각 참가자 조직의 데이터베이스 링크 사용자 이름 및 비밀번호를 입력하라는 메시지가 표시됩니다. 데이터베이스 사용자 이름과 달리 데이터베이스 링크 사용자 이름은 대소문자를 구분합니다.
    Participant_orgs_list.yml 파일은 중앙 은행과 각 참여자 은행 간에 다음 형식으로 데이터베이스 링크를 생성하는 데 사용되는 구성 세부정보가 포함된 YAML 배열입니다.
    orgName
    가입자 조직의 인스턴스 이름입니다.
    hostName
    대상 데이터베이스 서버의 호스트 이름 또는 IP 주소입니다.
    port
    데이터베이스 서비스에 대한 네트워크 포트입니다.
    serviceName
    데이터베이스 서비스 이름 또는 시스템 식별자(SID)입니다.
    다음 텍스트는 예제 Participant_orgs_list.yml 파일입니다.
    - orgName: "Participating_Org1"
      hostName: "dbserver.example.com"
      port: 1521
      serviceName: "ORCLPDB1"
    - orgName: "Participating_Org2"
      hostName: "dbserver2.example.com"
      port: 1522
      serviceName: "ORCLPDB2"
  10. 다음 명령을 사용하여 ORDS 스크립트를 실행하십시오.
    npm run start

    기밀인 경우 사용자에게 조직 유형 선택 프롬프트가 표시됩니다. 사용자가 시스템 소유자를 선택한 경우 Participant_orgs_list.yml 파일이 작업에 포함됩니다. 기밀 사례에 대해 언급하십시오. 모든 참가자 은행은 시스템 소유자 전에 ORDS 설정을 완료해야 합니다. 그렇지 않으면 실패합니다.

    명령이 실행되면 다음 프롬프트가 표시됩니다.
    Enter your DB User Name
    서식 있는 내역 데이터베이스의 사용자 이름을 입력합니다. 뷰 및 ORDS 끝점을 생성하려면 계정에 필요한 권한이 있어야 합니다.
    Enter your DB Password
    서식 있는 내역 데이터베이스에 대한 비밀번호를 입력합니다.
    Please select a chaincode type
    기밀 모드를 사용하는 체인코드의 경우 CONFIDENTIAL을 선택합니다. 그렇지 않은 경우 일반 모드를 사용하는 체인코드에 대해 WCBDC를 선택합니다. 화살표 키를 사용하여 탐색한 다음 Enter 키를 눌러 선택 사항을 확인합니다. 기밀 모드를 선택할 경우 조직 유형 SYSTEM OWNER(중앙 은행을 나타냄) 또는 PARTICIPATING ORG(참여 은행을 나타냄)를 선택하라는 메시지가 표시됩니다.

    주:

    기밀 모드에서는 모든 참여 조직이 이 스크립트를 실행하고 시스템 소유자보다 먼저 ORDS 설정을 완료해야 합니다. 시스템 소유자에 대한 스크립트를 먼저 실행하면 실패합니다.
    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을 입력합니다.
Participant_orgs_list.yml 파일을 실수로 삭제한 경우 다음 명령을 실행하여 파일을 재생성합니다.
npm run refresh
뷰 또는 데이터베이스 링크가 시스템에 이미 있는 경우 스크립트는 해당 링크를 재생성하지 않습니다. 대신 다음 텍스트와 유사한 메시지가 기록됩니다.
createView already exists
스크립트는 다음 단계로 진행됩니다. 이렇게 하면 스크립트에서 뷰, 테이블, 데이터베이스 링크 및 기타 데이터베이스 엔티티를 삭제하거나 겹쳐쓰지 않습니다.
또한 다음 오류가 표시될 수 있습니다.
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을 참조하십시오.