Visual Studio 코드를 사용하여 체인코드 테스트
체인코드가 네트워크에서 실행 중인 경우 생성된 방법을 테스트할 수 있습니다. 또한 체인코드 개발 중에 executeQuery
메소드를 생성하도록 선택한 경우 체인코드가 Oracle Blockchain Platform 네트워크에 배포된 경우 SQL 리치 쿼리를 실행할 수 있습니다.
로컬 Hyperledger Fabric 네트워크에서 체인 코드 테스트
체인코드 프로젝트가 로컬 네트워크에서 실행되면 테스트할 수 있습니다.
Blockchain App Builder에는 체인코드를 호출하거나 쿼리하는 데 도움이 되는 내장 마법사가 포함되어 있습니다.
- 체인코드 창에서 체인코드 프로젝트를 선택합니다. 체인 코드 세부 정보 창에서 실행을 선택합니다. 체인코드 이름이 이미 선택되어 있어야 합니다. 대상 환경이 로컬 환경으로 설정되고 채널이 사용 가능한 유일한 채널로 기본 설정되는지 확인합니다.
- 함수 필드의 드롭다운 목록에서 메소드를 선택합니다. 체인 코드에서 사용할 수 있는 모든 방법이 나열됩니다.
- 함수 매개변수 필드에서 추가 작업(...) 버튼을 선택합니다. 그러면 선택한 메소드에 대해 사용 가능한 속성이 있는 창이 실행됩니다. 속성을 입력하고 메소드를 호출할 때 제출하지 않을 필수가 아닌 속성에 대해 제출을 누르고 저장을 누릅니다.
- 호출을 누릅니다.
출력 콘솔 창에 함수가 호출되었음을 표시합니다. 또는 체인코드 작업 창에서 함수 출력 창에 출력이 표시됩니다. 이 출력 형식이 지정되어 있는지 확인하려면 More Actions (...) 버튼을 누릅니다.
방금 실행한 메소드 및 매개변수를 저장하려면 저장을 누르고 이름과 설명을 입력합니다. Queries
폴더의 체인코드 프로젝트에 저장됩니다. 다시 사용하려면 해당 항목을 마우스 오른쪽 버튼으로 누르고 열기를 선택합니다.
방법을 변경하는 컨트롤러 파일을 변경한 경우 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
사용자로 설정됩니다. 트랜잭션의 호출자를 변경하려면 tokenUser
속성을 createAccount
(TypeScript) 또는 CreateAccount
(Go) 메소드가 호출될 때 계정이 생성될 때 설정된 user_id
속성과 일치하도록 변경합니다.
업데이트 후 자동 설치 및 배포
체인코드를 업데이트하고 저장할 때마다 변경사항이 자동으로 컴파일, 설치 및 배포됩니다. 로컬 네트워크를 다시 작동 중지하거나 다시 작동시킬 필요가 없습니다. 모든 프로젝트는 변경 시마다 자동으로 컴파일되고 배포됩니다.
원격 Oracle Blockchain Platform 네트워크에서 수명 주기 작업 테스트
체인코드 프로젝트가 원격 Oracle Blockchain Platform 네트워크에 성공적으로 배포되면 로컬 Hyperledger Fabric 네트워크에서 체인코드 테스트에 설명된 대로 테스트할 수 있습니다.
동일한 호출 및 질의 명령을 사용하여 원격 Oracle Blockchain Platform Cloud 또는 Enterprise Edition 네트워크에서 모든 메소드 트랜잭션을 수행할 수 있습니다. 로컬 네트워크에서 지원되는 모든 항목은 원격 네트워크에서도 지원됩니다. 테스트를 실행할 때 대상 환경으로 Oracle Blockchain Platform 인스턴스를 선택합니다.
원격 Oracle Blockchain Platform 네트워크에서 토큰 프로젝트 테스트
Blockchain App Builder, Oracle Blockchain Platform REST 프록시 또는 Hyperledger Fabric SDK를 사용하여 토큰으로 작동하는 체인코드 프로젝트를 테스트할 수 있습니다.
블록체인 애플리케이션 작성기
Visual Studio 코드 확장을 사용하여 여러 사용자가 포함된 트랜잭션을 호출하여 토큰 체인 코드를 테스트할 수 있습니다.You can use Visual Studio Code extension to invoke transactions with multiple user to test token chaincodes. 여러 사용자로 테스트하려면 Environments(환경) 탭에서 권한 부여 매개변수(사용자 이름 및 비밀번호)를 변경한 다음 환경을 저장합니다. 트랜잭션을 호출하는 동안 drop-down list에서 동일한 환경을 선택한 다음 트랜잭션을 실행합니다.
Oracle Blockchain Platform REST 프록시
Oracle Blockchain Platform에서 REST 프록시를 사용하여 원격 Oracle Blockchain Platform 네트워크에서 토큰 체인 코드를 실행할 수 있습니다. Postman REST Client와 같은 REST 프록시 클라이언트를 사용하여 체인코드 프로젝트를 테스트합니다.
여러 사용자를 테스트하려면 REST 클라이언트에서 권한 부여 매개변수(사용자 이름 및 비밀번호)를 변경하거나 Oracle Blockchain Platform의 다른 인스턴스에 연결하십시오.
Berkeley DB SQL Rich Query 실행
체인코드 개발 중에 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 명령을 자동으로 생성할 수 있습니다.
Mac OSX 및 Linux 및 Microsoft Windows용 CLI 명령을 생성하려면 체인코드 프로젝트에 저장된 질의가 하나 이상 있어야 합니다.
- 체인코드 창에서 프로젝트를 확장합니다.
- 조회를 마우스 오른쪽 버튼으로 누릅니다.
- Generate CLI Commands을 누릅니다.
Chaincodes 창의 Queries 섹션에 두 개의 텍스트 파일(CLIcommandsForLinux.txt
및 CLIcommandsForWindows.txt
)이 생성되고 표시됩니다. 파일 이름을 선택하여 파일을 열고 해당 CLI 명령을 표시합니다.