ターゲットとする SDK 用言語のトランザクションビルダを生成する方法を学習します。
The catbuffer library defines the protocol to serialize and deserialize Symbol entities. The library comes with code generators for different languages. SDKs and applications use the generated code to interact with REST transaction endpoint.
このライブラリは以下の特性を達成します:
効率的なメモリ使用
大きなネットワークはたくさんのトランザクションを計算します。バイナリに最適化された仕事はコミュニケーションを高速にします。さらに、メモリバッファからのエンティティ - またはそれらの一部 - の読み込みはメモリを効率的に使用します。
柔軟性
REST transaction endpoints handle the calls to update the blockchain state. The serialized payload of a transaction is appended to the body of the POST call. These endpoints allow the addition of new functionality to the client-side without modifying the API contract.
再利用性
アプリケーションは依存性の管理することなく、生成されたコードを組み込むことができ、安全性の高い環境において、特に望ましいです。さらに共通のコードベースを共有することは、より少ない労力で新しい機能を追加することを可能にします。
The schemas define the entities' data structure. The library generates the leanest code necessary to serialize and deserialize defined entities.
catbuffer-generators
リポジトリをクローンしてください。
git clone https://github.com/symbol/catbuffer-generators
必須パッケージをインストール
pip install -r requirements.txt
catbuffer-schemas
リポジトリを catbuffer-generators
の中にクローンしてください。
git clone https://github.com/symbol/symbol/tree/main/catbuffer/schemas
catbuffer リポジトリの catbuffer-schemas
フォルダーの下にエンティティのデータ構造があります。コードジェネレーターを使用すると、これらのエンティティをシリアル化および逆シリアル化するために必要な、最もリーンなコードを生成できます。
例えば、次のコマンドを実行して TransferTransaction の C++ トランザクションビルダを生成します:
python main.py --schema symbol/transfer/transfer.cats --generator cpp_builder
catbuffer-generators
ディレクトリで次のコマンドを実行することで、すべてのスキーマのコードを生成することもできます:
python ../scripts/generate_all.sh cpp_builder
ジェネレータは catbuffer/_generated/cpp_builder
フォルダの下に各スキーマの新しいファイルを作成します。