ZooBC ウィキ
インテグレーション

コマンドラインツール

ZooBC の公開ツールを使えば、誰でもターミナルから、あるいは自分のコードからチェーンを利用できます。ツールは github.com/zoobc/tools にあり、ZooBC Foundation が MIT ライセンスのもとで公開しています。このライセンスにより、商用かどうかを問わず、誰でも許可を求めることなく自分のソフトウェアにそれを組み込めます。ツールはノードではありません。他のどのクライアントともまったく同じように、ノードやゲートウェイと公開の HTTP API を通じてのみ通信します。

10 の言語、1 つの動作

同じツールが 10 のプログラミング言語で存在します。C++、TypeScript、JavaScript(ウェブページが 1 つの script タグで読み込める、依存関係のない単一のファイル)、Python、Go、Rust、Kotlin、Swift、PHP、Perl です。各移植版は、鍵とアドレス、トランザクションの構築と署名、そしてあらゆるトランザクションタイプのための 1 つのコマンドである zbc-cli を提供します。C++、Go、Rust の移植版は、トランザクションごとの小さなプログラムも同梱しています。ノード自体のバンドルには、zbc-account-gen、zbc-send、zbc-monitor、zbc-cli などの C++ のツールが含まれています。

10 の移植版を同一に保っているのは、1 つの共通の仕様と 1 組のゴールデンテストベクター(spec/vectors)です。すべての移植版が自動ビルドのチェックで同じベクターを実行し、1 バイトでも違えばビルドは失敗します。したがって Perl で構築されたトランザクションは、Rust で構築されたトランザクションとバイト単位で同じです。

10 の言語のラベルが、ゴールデンベクターを持つ 1 つの共通の仕様に流れ込み、どの言語でも同じバイト列になります
10 の言語のラベルが、ゴールデンベクターを持つ 1 つの共通の仕様に流れ込み、どの言語でも同じバイト列になります

zbc-cli の約束事

zbc-cli はどの言語でも同じように動作するため、スクリプトはそれに頼ることができます。

  • 出力:標準出力に 1 つの JSON オブジェクトと、0 から 10 の終了コード。
  • 接続先:--api がノードまたはゲートウェイを指定します。それがなければツールは環境変数 ZBC_API を読み、それもなければ同じマシン上のノードである http://localhost:8080 を使います。
  • タイムアウト:--timeout、または変数 ZBC_TIMEOUT。既定は 20 秒です。
  • 鍵:環境変数 ZBC_KEY が鍵を与えるため、鍵がコマンドラインに現れることはありません。
  • フィールド:zbc-cli help <command> がコマンドの正確なフィールドを一覧表示し、--json-input はそれらを JSON として受け取り、--verbose はより詳しい情報を表示します。
zbc-cli help send-zbc

すべての額はアトミック単位の整数です(1 ZBC = 100,000,000 単位。ZBC コインとその単位 を参照)。1.5、1e3、12abc のような値は、解釈されずに拒否されます。

ツールにできるその他のこと

ツールは、チェーン外のメッセージへの署名と検証も行います。たとえば、トランザクションを送らずに、あるアドレスを管理していることをウェブサイトに証明するためです(署名付きメッセージと暗号化メッセージ)。ZooBC のすべての署名者と同様に、ツールはチェーンのジェネシスハッシュを含むダイジェストに対してトランザクションに署名するため、あるネットワーク用に構築されたトランザクションが別のネットワークで有効になることは決してありません(チェーン束縛署名)。

ツールではないもの

  • ノードではありません。ノードには独自のリポジトリとライセンスがあります。
  • ブロックを作ったりコインを稼いだりはしません。ブロックは、順番に作る登録済みノードからのみ生まれます(ノードの運用)。
  • 必須ではありません。ウェブページは、Ed25519、SHA3-256、そしてチェーンのジェネシスハッシュだけでトランザクションに署名できます(1 枚の HTML ページでアプリを作る)。ツールはその手間を省くものです。

関連項目