ブロックチェーンの課題と可能性~BBc-1(Beyond Blockchain One)から学ぶブロックチェーン開発

第9回BBc-1ソースコードやドキュメント類

今回はgithubに公開されているBBc-1のリポジトリの構成や内容について説明します。Web上で確認できますが、gitコマンドでcloneしてリポジトリ全体を取得していただいても構いません。

BBc-1のプロジェクト構成

BBc-1は複数のリポジトリ群から構成されており、必要に応じて組み合わせて使います。こちらのURLをご覧ください。

2018年10月末時点では、6つのリポジトリが登録されています。

表1 beyond-blockchainの主要リポジトリ
リポジトリ名概要
bbc1BBc-1のコア機能のリファレンス実装です。
libbbcsigBBc-1の署名作成・検証のためのライブラリで、高速化のためここだけC言語で実装されています。bbc1およびその他実装で利用します。
ledger_subsystem EthereumおよびBitcoinにアンカリングするための追加機能です。bbc1に組み込んで使います。
bbc1-lib-stdbbc1のユーザIDと公開鍵の紐付けを管理するためのライブラリです。bbc1のアプリケーションに組み込むことができます。
bbc1-lib-tokens トークン系アプリケーションのためのライブラリです。bbc1のアプリケーションに組み込むことができます。
examplesサンプルアプリケーションです。

※アンカリングとは:
BBc-1トランザクション群のマークル木を外部ブロックチェーンに書き込み、外部システムを利用した存在証明を行うための機能です。

bbc1とlibbbcsigは必ずセットで利用します。分離しているのは、BBc-1の署名作成・検証機能をさまざまなBBc-1実装に使えるようにするためです。今回以降の記事は、基本的にはbbc1リポジトリの内容について説明していきます。

ディレクトリ構成

bbc1リポジトリの中を見ていきましょう。いくつかのディレクトリが含まれています。

表2 bbc1リポジトリ内の主なディレクトリ
ディレクトリ名概要
bbc1/core/BBc-1のコア機能のPythonスクリプトが格納されています。
docker/Dockerコンテナ上でbbc1を動作させるためのスクリプトが格納されています。
docs/ドキュメント群が格納されています。PDFファイル群と、sphinxによるAPIドキュメントが含まれます。
examples/file_proof/ファイルの存在証明のサンプルアプリケーションが格納されています。その他のサンプルは、先に紹介したexamplesリポジトリに移行されました。
tests/テストコード群が格納されています。
utils/bbc1のcoreプロセスを制御するためのツール群が格納されています。

今回は、ドキュメントについて重点的に紹介し、最後にexamplesのツールの導入と使い方について簡単にご紹介します。

ドキュメント類

全体概要や使い方、プログラミング方法については、docs/ディレクトリの中にPDFファイルやmarkdown形式で各種ドキュメントが含まれます。

設計思想などBBc-1の根本に触れたいなら

BBc憲章(BBcトラスト)

BBc-1が何を目指すものであるかを宣言しています。

BBc-1設計書

BBc-1のシステム設計について記載しています。

ホワイトペーパー(英語)
分析論文(英語)

セキュリティ観点からの分析論文です。

BBc-1コアの使い方、設定方法

インストール方法英語日本語)
使い方
ネットワーク設定方法(英語)

NAT環境で複数のcoreノードを接続する方法の説明です。

Windowsでのビルド方法

サンプルアプリ

file_proofの使い方

BBc-1コアの詳細

BBc-1リファレンス実装の動作仕様

プログラミングガイド

アプリケーションの作り方

※2018年11月21日にversion1.2がリリースされました。

APIドキュメント

ドキュメント類のおすすめの読み進め方

とにかく触ってみようという方は、上記のドキュメントの中の、

  1. インストール方法
  2. file_proof.pyの使い方

の順に読んでいただくのをおすすめします。次回は、その内容を簡単にまとめたものになります。

アプリを作ることも視野に入れたい、または仕組みを知りたい場合は、

  1. BBc-1設計書
  2. BBc-1の動作仕様
  3. クライアントアプリの作り方

の順で読んでいただくのをおすすめします。もしPythonに精通されているようでしたら、リポジトリ内のsrc/core/ディレクトリ内にあるソースコードをあわせて確認しながらの方が理解しやすいかもしれません(そのようにコメントされた方がいらっしゃいました⁠⁠。

まとめ

今回は、githubに公開されているBBc-1のリポジトリ、特に中心となるbbc1リポジトリについて紹介し、docs/ディレクトリ内のドキュメントの概要について触れました。なお、本連載のこれまでの内容は、BBc憲章とBBc-1設計書を説明したものになっています。

次回は、bbc1リポジトリに含まれているサンプルアプリケーションのfile_proof.pyの使い方について説明します。

おすすめ記事

記事・ニュース一覧