Blockchain App Builder CLI로 체인코드 프로젝트 만들기
Blockchain App Builder CLI를 사용할 때 체인 코드 프로젝트를 만들려면 세부 사양 파일에서 체인 코드 프로젝트를 스캐폴드합니다. 그러면 생성된 프로젝트에 필요한 모든 파일이 포함됩니다.
배경
init
명령은 즉시 사용 가능한 체인 코드 프로젝트를 초기화하고 스캐폴딩합니다. 간단한 입력에 따라 init
명령은 다음 기능을 포함하는 복잡한 체인코드 프로젝트를 생성할 수 있습니다.
- 여러 자산(모델) 및 해당 동작(컨트롤러)
- CRUD(생성/읽기/업데이트/삭제) 및 비CRUD 메소드 자동 생성
- 인수 자동 검증
- 인수 마셜링/마셜링 해제
- ORM(투명한 지속성 기능)
- 풍부한 쿼리를 호출하는 기능
생성된 프로젝트는 모델/컨트롤러 및 데코레이터 패턴을 따르며, 이를 통해 원장에서 유지 관리되는 자산의 속성을 유형 필드로 지정하고 특정 동작 및 검증 규칙으로 확장할 수 있습니다. 이 패턴은 코드 행 수를 줄여 가독성 및 확장성을 향상시킵니다.
필요 조건
프로젝트를 비계산하기 전에 입력 사양 파일을 생성해야 합니다. 자세한 내용은 Input Specification File을 참조하십시오.
init
명령으로 체인코드 프로젝트 스캐폴딩
ochain init -h
를 입력하면 명령 사용이 모든 옵션과 함께 나열됩니다. init
명령에는 다음과 같은 옵션이 있습니다.
- --cc/-c:
체인코드 프로젝트의 이름입니다. 기본값은
MyChaincode
입니다. - --lang/-l
비계산된 체인코드의 언어입니다. Blockchain App Builder는 Typescript (
ts
) 및 Go (go
)를 지원합니다. 옵션을 지정하지 않으면 언어는 기본적으로ts
로 설정됩니다. - --conf/-f 또는 --spec
입력 사양 파일의 경로입니다. Blockchain App Builder는 입력 사양 파일을 읽고 많은 도우미 도구를 사용하여 비계 프로젝트를 생성하므로 전반적인 개발 노력을 줄일 수 있습니다. 입력 사양 파일을 최대한 활용하면 개발 시간을 크게 줄일 수 있습니다.
사양 파일은
yaml
또는json
형식일 수 있습니다. 경로를 지정하지 않으면 기본적으로 현재 디렉토리로 설정됩니다. Input Specification File을 참조하십시오. - --out/-o
비계산 체인코드 프로젝트의 출력 디렉토리입니다. 지정하지 않으면 비계 프로젝트가 현재 디렉토리에 생성됩니다.
출력은 완전히 포함되고 가볍고 확장 가능한 Typescript 또는 Go 체인코드 프로젝트입니다.
- --루트/-r
실행에만 적합하고 필요합니다. Go 체인코드에 대한 GOHOME 변수의 루트 디렉토리입니다. 기본값은
example.com
입니다.
my-mac:~ name$ ochain init --cc MyNewTsProject --lang ts --conf spec.yml
기본값
ochain init
명령에 옵션이 지정되지 않은 경우 비계 프로젝트 이름은 MyChaincode
이고 언어는 TypeScript입니다.
MyChaincode.model.ts
파일에는 MyAsset
이라는 하나의 자산과 value
라는 하나의 속성만 포함됩니다. MyChaincode.controller.ts
파일에는 MyAsset
모델에 해당하는 CRUD 메소드가 포함된 컨트롤러 하나가 포함됩니다.
출력