ターゲットとする SDK 用言語のトランザクションビルダを生成する方法を学習します。
catbuffer ライブラリ は Symbol のエンティティをシリアライズ/デシリアライズするプロトコルを定義します。SDK とアプリケーションは REST トランザクションエンドポイントと疎通するために生成されたコードを利用します。
Symbol SDK シリアル化モジュール
このライブラリは以下の特性を達成します:
効率的なメモリ使用
大きなネットワークはたくさんのトランザクションを計算します。バイナリに最適化された仕事はコミュニケーションを高速にします。さらに、メモリバッファからのエンティティ – またはそれらの一部 – の読み込みはメモリを効率的に使用します。
柔軟性
REST トランザクションエンドポイント はブロックチェーンの状態を更新する呼び出しをハンドリングします。シリアライズされたトランザクションのペイロードは POST 呼び出しのボディに追加されます。これらのエンドポイントにより、API 規約を変更せずにサーバ側へ新しい機能を追加することができます。
再利用性
アプリケーションは依存性の管理することなく、生成されたコードを組み込むことができ、安全性の高い環境において、特に望ましいです。さらに共通のコードベースを共有することは、より少ない労力で新しい機能を追加することを可能にします。
スキーマ はエンティティのデータ構造を定義します。このライブラリは定義済みエンティティを、シリアライズまたはデシリアライズするために必要な最低限のコードを生成します。
catbuffer-generators
リポジトリをクローンしてください。 git clone https://github.com/nemtech/catbuffer-generators
pip install -r requirements.txt
catbuffer``リポジトリを ``catbuffer-generators
の中にクローンしてください。 git clone https://github.com/nemtech/catbuffer
catbuffer リポジトリの schemas
フォルダーの下にエンティティのデータ構造があります。コードジェネレーターを使用すると、これらのエンティティをシリアル化および逆シリアル化するために必要な、最もリーンなコードを生成できます。
例えば、次のコマンドを実行して TransferTransaction の C++ トランザクションビルダを生成します:
python main.py --schema schemas/transfer/transfer.cats --generator cpp_builder
catbuffer-generators
ディレクトリで次のコマンドを実行することで、すべてのスキーマのコードを生成することもできます:
python ../scripts/generate_all.sh cpp_builder
ジェネレータは catbuffer/_generated/cpp_builder
フォルダの下に各スキーマの新しいファイルを作成します。
お探しのものは見つかりましたか? フィードバックをください。