ブロックチェーン・アプリケーション・ビルダーCLIを使用したチェーンコード・プロジェクトの作成
ブロックチェーン・アプリケーション・ビルダーCLIの使用時にチェーンコード・プロジェクトを作成するには、チェーンコード・プロジェクトを詳細な仕様ファイルからスキャフォールディングします。生成されたプロジェクトには、必要なすべてのファイルが含まれます。
バックグラウンド
init
コマンドは、すぐに使用できるチェーンコード・プロジェクトを初期化してスキャフォールドします。init
コマンドは、単純な入力に基づいて、次の機能を含む複雑なチェーンコード・プロジェクトを生成できます:
- 複数のアセット(モデル)とその動作(コントローラ)
- CRUD (作成/読取り/更新/削除)およびCRUD以外のメソッドの自動生成
- 引数の自動検証
- 引数の整列化/非整列化
- 透過的永続性機能(ORM)
- リッチ・クエリーを呼び出す機能
生成されたプロジェクトは、モデル/コントローラおよび装飾者パターンに従います。これにより、元帳で保持されるアセットのプロパティを型付きフィールドとして指定し、特定の動作および検証ルールで拡張できます。このパターンにより、コード行数が削減され、読み性およびスケーラビリティに役立ちます。
前提条件
プロジェクトをスキャフォールドする前に、入力仕様ファイルを作成する必要があります。詳細は、「入力仕様ファイル」を参照してください。
init
コマンドを使用したチェーンコード・プロジェクトのスキャフォールド
ochain init -h
と入力すると、コマンドの使用方法がそのすべてのオプションとともにリストされます。init
コマンドには次のオプションがあります:
- --cc/-c:
チェーンコード・プロジェクトの名前。デフォルト値は
MyChaincode
です。 - --lang/-l
スキャフォールドされたチェーンコードの言語。ブロックチェーン・アプリケーション・ビルダーはTypescript (
ts
)およびGo (go
)をサポートしています。オプションを指定しない場合、言語はデフォルトでts
に設定されます。 - --conf/-fまたは--spec
入力仕様ファイルへのパス。ブロックチェーン・アプリケーション・ビルダーは、入力仕様ファイルを読み取り、多くのヘルパー・ツールを使用してスキャフォールド済プロジェクトを生成します。これは、開発作業全体の削減に役立ちます。入力仕様ファイルを最大限に活用することで、開発時間を大幅に短縮できます。
仕様ファイルの形式は、
yaml
またはjson
です。パスを指定しない場合、デフォルトで現在のディレクトリが使用されます。「入力仕様ファイル」を参照してください。 - --out/o
スキャフォールド済チェーンコード・プロジェクトの出力ディレクトリ。指定しない場合、スキャフォールド済プロジェクトは現在のディレクトリに生成されます。
出力は、完全に格納され、軽量かつスケーラブルなTypescriptまたはGoチェーンコード・プロジェクトです。
- --root/-r
有効で、Goにのみ必要です。GoチェーンコードのGOHOME変数のルート・ディレクトリ。デフォルト値は
example.com
です。
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メソッドを持つコントローラが含まれています。
出力