Visual Studio 코드를 사용하여 체인코드 테스트
체인 코드가 네트워크에서 실행 중인 경우 생성된 메소드를 테스트할 수 있습니다. 또한 체인코드 개발 중에 executeQuery
메소드를 생성하도록 선택한 경우 체인코드가 Oracle Blockchain Platform 네트워크에 배포된 경우 SQL 리치 쿼리를 실행할 수 있습니다.
로컬 Hyperledger Fabric 네트워크에서 체인코드 테스트
체인코드 프로젝트가 로컬 네트워크에서 실행된 후 테스트할 수 있습니다.
Blockchain App Builder에는 체인 코드를 호출하거나 쿼리하는 데 도움이되는 내장 마법사가 포함되어 있습니다.
- 체인코드 창에서 체인코드 프로젝트를 선택합니다. 체인 코드 세부정보 창에서 실행을 선택합니다. 체인코드 이름이 이미 선택되었습니다. 채널의 기본값이 사용 가능한 유일한 채널이 되도록 대상 환경이 로컬 환경으로 설정되었는지 확인합니다.
- 함수 필드의 드롭다운 목록에서 메소드를 선택합니다. 체인 코드에서 사용할 수 있는 모든 메소드가 나열됩니다.
- 함수 매개변수 필드에서 추가 작업 단추를 누릅니다. 그러면 선택한 방법에 사용 가능한 등록 정보가 표시된 창이 실행됩니다. 등록 정보를 입력하고 메소드를 호출할 때 제출하지 않으려는 필수가 아닌 등록 정보에 대해 Omit(제출)을 누릅니다. Save를 누릅니다.
- 호출을 누릅니다.
출력 콘솔 창에 함수가 호출되었음을 표시합니다. 또는 체인코드 작업 창에서 함수 출력 창에 출력이 표시됩니다. 이 출력 형식이 지정된 것을 보려면 추가 작업을 누릅니다.
방금 실행한 메소드와 매개변수를 저장하려면 저장을 누르고 이름과 설명을 입력합니다. 이 함수는 Queries
폴더의 chaincode 프로젝트에 저장됩니다. 다시 사용하려면 마우스 오른쪽 단추로 누르고 열기를 선택합니다.
메소드를 변경하는 컨트롤러 파일을 변경하는 경우 Chaincode Execute(체인코드 실행) 창 상단에서 Reload(다시 로드) 아이콘을 선택합니다. 그러면 변경사항이 함수 드롭다운 목록에 반영됩니다.
주:
테스트에 마법사를 사용하지 않으려면 Visual Studio Code Terminal 창에서 Blockchain App Builder 명령행 도구를 실행할 수도 있습니다. 명령줄에서 테스트하는 방법에 대한 자세한 내용은 Test Your Chaincode on a Local Hyperledger Fabric Network를 참조하십시오.로컬에서 여러 토큰 사용자 테스트
로컬에서 여러 사용자가 있는 토큰 프로젝트를 테스트하려면 tokenUser
속성을 사용하여 각 트랜잭션의 호출자를 변경할 수 있습니다. 모든 스캐폴드 체인코드 프로젝트에는 체인코드의 메타데이터를 저장하는 .ochain.json
파일이 포함됩니다. .ochain.json
파일에서 tokenUser
필드의 값을 갱신하여 호출자를 변경합니다.
{
"name": "digiCurrCC",
"description": "Chaincode package for digiCurrCC",
"chaincodeName": "digiCurrCC",
"chaincodeType": "node",
"configFileLocation": "/Users/user1/token.yml",
"appBuilderVersion": "21.2.3",
"nodeVersion": "v12.18.1",
"tokenUser": "admin"
}
프로젝트가 스캐폴딩되면 tokenUser
등록 정보가 로컬 네트워크의 기본 admin
사용자로 설정됩니다. 트랜잭션 호출자를 변경하려면 createAccount
(TypeScript) 또는 CreateAccount
(Go) 메소드가 호출될 때 계정이 생성될 때 설정된 user_id
속성과 일치하도록 tokenUser
속성을 변경합니다.
업데이트 후 자동 설치 및 배포
체인코드를 업데이트하고 저장할 때마다 변경사항이 자동으로 컴파일, 설치 및 배포됩니다. 로컬 네트워크를 다시 작동 중지하거나 작동 중지할 필요가 없습니다. 모든 변경에 대해 모든 프로젝트가 자동으로 컴파일되고 배포됩니다.
원격 Oracle Blockchain Platform 네트워크에서 수명 주기 작업 테스트
체인코드 프로젝트가 원격 Oracle Blockchain Platform 네트워크에 성공적으로 배포된 후 테스트할 수 있습니다.
You test chaincode running on a remote Oracle Blockchain Platform network similar to testing it on a local network, as described in Test Your Chaincode on a Local Hyperledger Fabric Network.
동일한 명령을 사용하여 원격 Oracle Blockchain Platform Cloud 또는 Enterprise Edition 네트워크에서 모든 메소드 트랜잭션을 완료할 수 있습니다. 로컬 네트워크에서 지원되는 모든 항목은 원격 네트워크에서도 지원됩니다. 테스트를 실행할 때 대상 환경으로 Oracle Blockchain Platform 인스턴스를 선택합니다.
원격 Oracle Blockchain Platform 네트워크에서 토큰 프로젝트 테스트
블록체인 앱 빌더, Oracle Blockchain Platform REST 프록시 또는 Hyperledger Fabric SDK를 사용하여 토큰으로 작동하는 체인코드 프로젝트를 테스트할 수 있습니다.
블록체인 앱 빌더
Visual Studio Code 확장을 사용하여 여러 사용자가 있는 트랜잭션을 호출하여 토큰 체인코드를 테스트할 수 있습니다. 여러 사용자로 테스트하려면 환경 탭에서 권한 부여 매개변수(사용자 이름 및 비밀번호)를 변경한 다음 환경을 저장합니다. 트랜잭션을 호출하는 동안 드롭다운 목록에서 동일한 환경을 선택한 다음 트랜잭션을 실행합니다.
Oracle Blockchain Platform REST 프록시
Oracle Blockchain Platform에서 REST 프록시를 사용하여 원격 Oracle Blockchain Platform 네트워크에서 토큰 체인 코드를 실행할 수 있습니다. Postman REST Client와 같은 REST 프록시 클라이언트를 사용하여 체인코드 프로젝트를 테스트합니다.
여러 사용자를 테스트하려면 REST 클라이언트에서 권한 부여 매개변수(사용자 이름 및 비밀번호)를 변경하거나 Oracle Blockchain Platform의 다른 인스턴스에 연결합니다.
Berkeley DB SQL 서식 있는 질의 실행
체인코드 개발 중에 executeQuery
메소드를 생성하도록 선택한 경우 체인코드가 Oracle Blockchain Platform 네트워크에 배포되면 SQL 리치 쿼리를 실행할 수 있습니다.
사양 파일의 customMethods
섹션에서 executeQuery
를 사용한 경우 해당 executeQuery
메소드가 컨트롤러에 생성됩니다.
customMethods:
- executeQuery
- "fetchRawMaterial(supplierid: string, rawMaterialSupply: number)"
- "getRawMaterialFromSupplier(manufacturerId: string, supplierld: string, rawMaterialSupply: number)"
- "createProducts(manufacturerId: string, rawMaterialConsumed: number, productsCreated: number)"
- "sendProductsToDistribution()"
**
*
* BDB sql rich queries can be executed in OBP CS/EE.
* This method can be invoked only when connected to remote OBP CS/EE network.
*
*/
@Validator(yup.string())
public async executeQuery(query: string) {
const result = await OchainController.query(query);
return result;
}
이 메소드를 호출하여 Oracle Blockchain Platform 네트워크에서 Berkeley DB SQL 리치 쿼리를 실행할 수 있습니다. 질의를 실행할 때 대상 환경으로 생성한 Oracle Blockchain Platform 환경을 선택해야 합니다.
- 체인 코드 세부정보 창에서 실행을 선택합니다. 배포 단계에서 체인코드 이름, 대상 환경 및 채널이 이미 지정되었습니다.
- 함수 이름 필드의 드롭다운 목록에서
executeQuery
을 선택합니다. - 함수 매개변수 필드에서 추가 작업을 누릅니다. 그러면 조회 문자열을 입력할 수 있는 창이 실행됩니다. 질의에 대한 인수를 입력한 다음 저장을 누릅니다.
- 질의를 누릅니다.
ochain query executeQuery "SELECT key, valueJson FROM <STATE> WHERE
json_extract(valueJson, '$.rawMaterialAvailable') = 4"
전체 SQL 쿼리가 인수에서 수행되므로 쿼리를 즉시 변경할 수 있습니다.
질의에서 CLI 명령 생성
Visual Studio Code에서 체인코드 프로젝트에 쿼리를 저장한 경우 해당하는 CLI 명령을 자동으로 생성할 수 있습니다.
macOS 및 Linux 및 Microsoft Windows용 CLI 명령을 생성하려면 체인 코드 프로젝트에 저장된 질의가 하나 이상 있어야 합니다.
- Chaincodes 창에서 프로젝트를 확장합니다.
- 조회를 마우스 오른쪽 버튼으로 누릅니다.
- Generate CLI Commands을 누릅니다.
체인코드 창의 질의 섹션에 CLIcommandsForLinux.txt
및 CLIcommandsForWindows.txt
라는 두 개의 텍스트 파일이 생성되고 표시됩니다. 파일을 열고 해당 CLI 명령을 표시하려면 파일 이름을 선택합니다.