D Hyperledger Fabric v2.x용 애플리케이션 업데이트

플랫폼 버전을 업그레이드할 때 Hyperledger Fabric의 새 버전에서 작동하도록 기존 애플리케이션을 변경해야 할 수 있습니다.

여러 버전의 Hyperledger Fabric SDK를 사용할 수 있습니다. 인스턴스가 기반으로 하는 Hyperledger Fabric 버전과 호환되는 SDK 버전을 사용합니다. Hyperledger Fabric v2.x 기반 인스턴스의 경우 Hyperledger Fabric v2.2 LTS(장기 지원) 릴리스와 호환되는 버전을 사용합니다. Oracle Blockchain Platform이 Hyperledger Fabric v2.x의 다음 버전에서 작동하는지 확인되었습니다.
  • Node.js 버전 2.2.9용 Hyperledger Fabric 클라이언트 SDK
  • Java 버전 2.2.2용 Hyperledger Fabric 클라이언트 SDK
  • Go 버전 1.0.0용 Hyperledger Fabric 클라이언트 SDK

Hyperledger Fabric v2.x에는 Go 버전 1.20 이상이 필요하므로 사용하는 Go 버전을 업그레이드해야 할 수 있습니다.

주:

기존 체인코드 .zip 파일을 다시 배포하고 인덱스가 META-INF 디렉토리가 아닌 체인코드 패키지의 루트 디렉토리에 저장되는 경우 쿼리에 시간 초과 오류가 발생할 수 있습니다. 시간 초과 오류를 방지하려면 Hyperledger Fabric v2.x 인스턴스에 배포하는 기존 체인코드의 인덱스가 다음 디렉토리에 있는지 확인합니다.
META-INF/statedb/relationaldb/indexes
자세한 내용은 상태 데이터베이스 인덱스를 참조하십시오.

다음 절에 설명된 대로 클라이언트 SDK를 사용하여 체인코드 수명 주기 관리, 이벤트 수신 또는 디지털 전자 지갑 관리와 같은 보다 복잡한 작업을 완료하는 경우 애플리케이션을 업데이트해야 할 수 있습니다.

Node.js용 Hyperledger Fabric SDK

다음 표에는 Node.js용 Hyperledger Fabric SDK 버전 1.4와 2.x의 차이가 요약되어 있습니다. 자세한 내용은 Hyperledger Fabric 설명서의 V1.4에서 v2.0으로 클라이언트 응용 프로그램 마이그레이션을 참조하십시오.

버전 2.x 변경 고객 조치
fabric-client 모듈이 제거되었습니다. fabric-network 모듈을 사용하도록 응용 프로그램을 리팩터링합니다.
ID 정보 저장 및 액세스에 사용되는 전자 지갑이 재설계되었습니다. 전자 지갑 마이그레이션 지침 및 유틸리티는 Hyperledger Fabric 설명서를 참조하십시오.
이벤트 리스너 API 및 동작이 재설계되었습니다. 새 API를 사용하도록 이벤트 리스너를 재작성합니다.
SDK는 더 이상 관리 및 관리 기능을 제공하지 않으며, 채널 생성 및 체인코드 수명 주기 관리 기능을 포함합니다. 이러한 작업에는 명령줄 인터페이스를 사용합니다. 수명 주기 관리에 버전 1.4 기능을 사용하는 기존 클라이언트는 Hyperledger Fabric v2.x 인스턴스에서 작동하지 않습니다.

다음 표에서는 Hyperledger Fabric v2.x fabric-network 모듈과 Hyperledger Fabric v1.4.7 fabric-network 모듈에서 사용할 수 있는 클래스를 나열합니다.

버전 2.x fabric-network 모듈 클래스 버전 1.4 fabric-network 모듈 클래스

DefaultCheckpointers
Gateway
HsmX509Provider
IdentityProviderRegistry
Transaction
Wallet

AbstractEventHubSelectionStrategy
AbstractEventListener
BaseCheckpointer
BaseWallet
CommitEventListener
Contract
ContractEventListener
CouchDBWallet
EventHubManager
FileSystemCheckpointer
FileSystemWallet
Gateway
HSMWalletMixin
InMemoryWallet
Network
Query
RoundRobinEventHubSelectionStrategy
Transaction
X509WalletMixin

Java용 Hyperledger Fabric SDK

애플리케이션이 Hyperledger Fabric 2.0용 Java SDK(InstallProposalRequest, InstantiateProposalRequest 및 UpgradeProposalRequest)에서 더 이상 사용되지 않는 수명 주기 API를 사용하는 경우 최신 버전의 SDK에서 API를 사용하도록 애플리케이션을 다시 작성합니다. 자세한 내용은 Java SDK for Hyperledger Fabric 2.0 릴리스 노트를 참조하십시오.

Oracle Blockchain Platform REST API(REST 프록시)

기존 체인코드를 호출하는 데는 변경이 필요하지 않습니다.

필요한 최신 체인 코드에 대한 초기화 함수를 지원하기 위해 기존 트랜잭션 API에 선택적 isInit 매개변수가 추가되었습니다. 자세한 내용은 REST API 설명서의 트랜잭션 전송을 참조하십시오.

Oracle Blockchain Platform REST API(콘솔)

모든 API 호출에 사용된 버전을 업데이트합니다. Hyperledger Fabric v1.4.7의 경우 API 버전 번호는 1.1입니다. Hyperledger Fabric v2.x의 경우 API 버전 번호는 2입니다.

예를 들어, Hyperledger Fabric v1.4.7에 대해 설치된 체인코드 목록을 가져오려면 다음 REST 엔드포인트를 사용합니다.
/console/admin/api/v1.1/chaincodes
Hyperledger Fabric v2.x에 대해 설치된 체인코드 목록을 가져오려면 다음 REST 엔드포인트를 사용합니다.
/console/admin/api/v2/chaincodes

주:

대부분의 기존 API에는 새로운 Hyperledger Fabric v2.x와 동등한 기능이 있지만 1:1 일치 항목은 없습니다. 일부 API는 각 Hyperledger Fabric 버전마다 고유하며, 일부 API는 각 릴리스마다 다른 매개변수를 가집니다. 예를 들어, Hyperledger Fabric v2.x에서 배포 함수는 chaincode 하위 경로에서 channel 하위 경로로 이동했습니다. 자세한 내용은 REST API 설명서의 새 API, 변경된 API 및 사용되지 않는 API를 참조하십시오.

Hyperledger Fabric v2.x에는 피어에 체인코드를 설치하고 채널에서 시작하는 새로운 절차가 포함된 새로운 체인코드 라이프 사이클이 포함되어 있으므로 관련 API 호출을 업데이트해야 할 수 있습니다. 자세한 내용은 체인코드 수명 주기를 참조하십시오.