ブロックチェーン・アプリケーション・ビルダーCLIを使用したチェーンコード・プロジェクトの作成
ブロックチェーン・アプリケーション・ビルダーCLIの使用時にチェーンコード・プロジェクトを作成するには、チェーンコード・プロジェクトを詳細な仕様ファイルからスキャフォールドする必要があります。これにより、必要なすべてのファイルを含むプロジェクトが生成されます。
背景
init
コマンドは、即時利用可能なチェーンコード・プロジェクトを初期化してスキャフォールドします。init
コマンドは、単純な入力に基づいて、次のような機能を持つ複雑なチェーンコード・プロジェクトを生成できます:
- 複数のアセット(モデル)とその動作(コントローラ)
- CRUD (作成/読取り/更新/削除)およびCRUD以外のメソッドの自動生成
- 引数の自動検証
- 引数の整列化/非整列化
- 透過的永続性機能(ORM)
- リッチ問合せのコール
生成されたプロジェクトは、モデル/コントローラおよびデコレータ・パターンに従います。これにより、台帳で保持されるアセットのプロパティを型付きフィールドとして指定し、特定の動作および検証ルールで拡張できます。これにより、コード行数が削減され、読みやすさとスケーラビリティに役立ちます。
前提条件
開始する前に、入力仕様ファイルを作成する必要があります。このファイルの詳細な仕様については、「入力仕様ファイル」を参照してください。
init
コマンドを使用したチェーンコード・プロジェクトのスキャフォールド
ochain init -h
と入力すると、コマンドの使用方法がそのすべてのオプションとともにリストされます。init
コマンドには次の4つのオプションがあります:
- --cc/-c:
チェーンコード・プロジェクトの名前。デフォルト値は
MyChaincode
です。 - --lang/-l
スキャフォールドされたチェーンコードの言語。現在、ブロックチェーン・アプリケーション・ビルダーはTypescript (
ts
)およびGo (go
)をサポートしています。オプションが指定されていない場合、デフォルトでts
に設定されます。 - --conf/-fまたは-spec
入力仕様ファイルへのパス。ブロックチェーン・アプリケーション・ビルダーは、入力仕様ファイルを読み取り、多くのヘルパー・ツールを使用してスキャフォールド済プロジェクトを生成します。これは、開発作業全体の削減に役立ちます。入力仕様ファイルを最大限に活用することで、開発時間を大幅に短縮できます。
仕様ファイルの形式は、
yaml
またはjson
です。パスを指定しない場合、デフォルトで現在のディレクトリが使用されます。「入力仕様ファイル」を参照してください。 - --out/-o
スキャフォールド済チェーンコード・プロジェクトの出力ディレクトリ。指定しない場合、スキャフォールド済プロジェクトは現在のディレクトリに生成されます。
出力は内容が完全で、軽量でスケーラブルなTypescriptまたはGoチェーンコード・プロジェクトです。
my-mac:~ name$ ochain init --cc MyNewTsProject --lang ts --conf spec.yml
デフォルト
ochain init
コマンドでオプションが指定されていない場合、スキャフォールド済プロジェクトの名前はMyChaincode
で、言語はTypeScriptです。
MyChaincode.model.ts
には、value
という名前のプロパティを持つMyAsset
という名前のアセットのみが含まれます。MyChaincode.controller.ts
には、MyAsset
モデルに対応するCRUDメソッドを持つコントローラが含まれています。
出力