SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
IBM Blockchain / © 2018 IBM Corporation
Blockchain
Engineer Night
2019 #3
IBM Blockchain / © 2018 IBM Corporation
Blockchain Engineer Night
ブロックチェーン(主にHyperledger Fabric)の
最新動向を勉強する、ブロックチェーン技術者向けのコミュニティ
n 技術解説
n ブロックチェーンアプリケーション紹介
3
本⽇の内容
n Hyperledgerプロジェクト最新動向
n Hyperledger Fabric概要
n Hyperledger Fabric最新動向(v1.4.x/v2.x)
n QA、フリーディスカッション、ネットワーキング
IBM Blockchain / © 2019 IBM Corporation
4
⾃⼰紹介
〜2017 メインフレームLinux技術者
メインフレームLinux(IBM Z/Linux)の提案活動・構築
2017〜 Blockchain 技術者
Blockchainシステムの技術⽀援、提案活動
Blockchain Meetupの開催
趣味︓ゴルフ、ロードバイク、釣り、キャンプ
⽇本IBM
Blockchain Service
栗村 彰吾(Shogo Kurimura)
5
本⽇の内容
n Hyperledgerプロジェクト最新動向
n Hyperledger Fabric概要
n Hyperledger Fabric最新動向(v1.4.x/v2.x)
n QA、フリーディスカッション、ネットワーキング
IBM Blockchain / © 2019 IBM Corporation
6IBM Blockchain / © 2019 IBM Corporation
Hyperledgerプロジェクト ⼀覧
サプライチェーン
分散ID管理
Ethereum
スマートコントラクト
実⾏基盤
可視化ツール
Inter Ledger Protocol
暗号化ライブラリ
相互運⽤ツール
スマートコントラク
トエンジン
Ethereum
クライアント 汎⽤型 汎⽤型 汎⽤型
ベントマークツール デプロイメントツール
IBM Blockchain / © 2019 IBM Corporation 7
Distributed Ledger
l Javaのethereumクライアント
トランザクション実⾏環境/台帳/P2P通信/API
l Ethereumテストネット(rinkeby/ropsten/Görli)で
実⾏可能
l コンソーシアム環境での使⽤に特化して設計
l PoW、PoA、IBFTなどのコンセンサスアルゴリズムを選択
可能
l Truffle、Remix、web3jをサポート
https://besu.hyperledger.org/en/latest/Concepts/ArchitectureOverview/
IBM Blockchain / © 2019 IBM Corporation 8
Burrow Plugin (Hyperledger Fabric)
アーキテクチャー
Peer
実⾏
EVMCC
Ethereum
スマートコントラクト
実⾏
Hyperledger
Fabric Client
Web3
Proxy
クライアントアプリ
Web3
Client
Hyperledger
Fabric
Web3 Proxy
EthereumのJavaScript
API
EVMCC
Ethereumスマートコントラクトを
実⾏するためのチェンコード
l Ethereumスマートコントラクトに対応した基盤
l Ethereumに⽐べ軽量で⾼速なトランザクション処理
(Tendermint)
l トランザクションのファイナリティがある
l Hyperledger Fabric/Sawtoothへのプラグイン
Distributed Ledger
IBM Blockchain / © 2019 IBM Corporation 9
公的機関
第三者機関
個⼈
企業・団体
ウォレット
Hyperledger Indy ネットワーク
証明書
登録
証明書
参照
アクセス権
付与発⾏
情報を管理
l 分散ID管理ブロックチェーン
l ⾃⼰主権型アイデンティティ管理の実現
“self-sovereign Identity”
l W3CのDIDsへの対応
Distributed Ledger
IBM Blockchain / © 2019 IBM Corporation 10
Domain-Specific
l ブロックチェーン×サプライチェーン⽤のフレームワーク
l サプライチェーンに関するデータモデル、
スマートコントラクトロジックを提供
l Hyperledger Sawtoothのトランザクション処理
モデルを活⽤
IBM Blockchain / © 2019 IBM Corporation 11
Today we are excited to announce our newest project, Hyperledger Transact. Transact represents the continued
evolution at Hyperledger towards greater componentization to allow rapid responsible adoption of new blockchain
technologies. Transact provides a platform-agnostic library for executing transactions with smart contracts. It allows
us to more rapidly integrate a variety of smart contract technologies such as WebAssembly across the Hyperledger
family of projects. Transact is informed from experiences and design in multiple Hyperledger frameworks including
Hyperledger Sawtooth and Hyperledger Fabric.
Smart contracts are a fundamental building block of distributed ledgers. In distributed ledger frameworks, a
transaction represents an intended change that is submitted by a user. Transactions are interpreted by smart
contracts, which update the current state of the system as a result.
Existing solutions for smart contract execution are generally tied to a specific distributed ledger implementation,
which limits the code’s reusability. Hyperledger Transact will reduce the development effort for distributed ledger
solutions by providing a standard interface for executing smart contracts that is separate from the distributed ledger
implementation.
https://www.hyperledger.org/blog/2019/06/27/introducing-hyperledger-transact
Libraries
IBM Blockchain / © 2019 IBM Corporation 12
https://www.hyperledger.org/blog/2018/12/04/welcome-hyperledger-ursa
https://github.com/hyperledger/ursa
l 共通の暗号ライブラリを提供
l LibUrsa
単純なデジタル署名、暗号化⽅式、および鍵交換などの暗号化を提供するライブラリ
l LibZmix
ゼロ知識証明(SNARKs)を提供するライブラリ
Libraries
IBM Blockchain / © 2019 IBM Corporation 13
l ブロックチェーンクライアント⽤の暗号化されたwalletや
ブロックチェーンとのインターフェイス(リゾルバ)を提供
l セキュアな秘密鍵の管理(wallet)に、Hyperledger
Ursaのライブラリをサポート
l Hyperledger Indyのインターフェイスを実装
l Hyperledger Fabric、Ethereumへの対応(予定)
Libraries
IBM Blockchain / © 2019 IBM Corporation 14
What is Hyperledger Quilt?
Hyperledger Quilt offers interoperability between ledger systems by implementing ILP, which is primarily a payments protocol and is designed
to transfer value across systems – both distributed ledgers and non-distributed ledgers. It is a simple protocol that establishes a global
namespace for accounts, as well as, a protocol for synchronized atomic swaps between different systems.
Why Quilt?
Ledger systems today are siloed and disconnected. Transfers of value are relatively easy within one country, or if the sender and recipient
have accounts on the same network or ledger. But sending value to someone on a different network or ledger is complex and often
impractical. Where connections between ledgers do exist, they are manual, slow or expensive.
The Interledger protocol is based on concepts dating back to the 1970s and 1980s, but it took the advent of Bitcoin and the global blockchain
movement to make the world realize that money and value transfers could be reinvented with Internet based technologies.
Internet protocols enable information to be packetized, routed and delivered over communication networks. With ILP, money and other
forms of value can be packetized, routed and delivered over payment networks and ledgers. Hyperledger Quilt is an enterprise grade
implementation of the protocol, developed in Java, and providing libraries and reference implementations of the core Interledger
components and in time ledger integrations for other Hyperledger projects.
By implementing the Interledger protocol, Quilt provides:
・A set of rules for enabling ledger interoperability with basic escrow semantics
・A standard for a ledger-independent address format and data packet format that will enable connectors to route payments
・A framework for designing higher level use-case-specific protocols
https://www.hyperledger.org/blog/2017/10/16/hyperledger-gets-cozy-with-quilt
Libraries
IBM Blockchain / © 2019 IBM Corporation 15
Interledger Protcol
https://interledger.org/interledger.pdf
IBM Blockchain / © 2019 IBM Corporation 16
Tools
l ブロックチェーンネットワークのViewer
l ブロックの⾼さ/トランザクション/
ノードのステータス/etc…を可視化
IBM Blockchain / © 2019 IBM Corporation 17
l ブロックチェーンネットワークのデプロイメントツール
l ネットワークのライフサイクル(構築/開始/停⽌/
削除)管理機能を提供
l Docker、Kubernetesをサポート
Tools
IBM Blockchain / © 2019 IBM Corporation 18
l ブロックチェーンのベンチマーク測定ツール
l TPSやレイテンシー、リソースの使⽤量の測定
l 測定結果のレポーティングを
Tools
19
本⽇の内容
n Hyperledgerプロジェクト最新動向
n Hyperledger Fabric概要
n Hyperledger Fabric最新動向(v1.4.x/v2.x)
n QA、フリーディスカッション、ネットワーキング
IBM Blockchain / © 2019 IBM Corporation
20
⾃⼰紹介
IBM Blockchain / © 2019 IBM Corporation
ü ⽒名
⻄下 慧(にしした さとし)
ü 経歴
2016年⽇本総合研究所に⼊社、銀⾏の社内システム
担当としてプロジェクトに参画
2018年⽇本アイ・ビー・エム社に出向し、ブロック
チェーン技術者になるべく、修⾏中
21
Hyperledger Fabricのコンポーネント
IBM Blockchain / © 2019 IBM Corporation
n Peer
クライアントから送付されたトランザクションおん検証や実⾏、ブロックへの書き込みを⾏う
スマートコントラクト とブロックチェーン台帳を保持するノード
n Orderer
トランザクションの順序付けをし、ブロックチェーンネットワーク内のPeerに送信する。
n CA
ブロックチェーンネットワーク内のユーザとノードの情報の登録、証明書の発⾏を⾏う
Peer
CA
Peer
CA
組織1 組織2
Orderer
CA
<ネットワークの構成例>
Peerは各組織1台以上
Ordererはネットワークで1台以上
CAは各組織1台以上
ブロックチェーンネットワーク
22
Hyperledger Fabricのシステム構成
IBM Blockchain / © 2019 IBM Corporation
ユーザ
CA
アプリケーション Orderer
Tx ︓トランザクション
CC︓チェーンコード※
Peer
台帳CC
Peer
台帳CC
Peer
台帳CC
共有
②証明書の発⾏①証明書の申請
④Txの検証,
レスポンス
③Txの発信 ⑥Txをブロードキャスト
⑤Txの送信
ID情報を管理
※契約上の条件やルールをビジネスロジックとしてプログラムで実装したもの
23
Hyperledger Fabricの分散台帳の構成要素
IBM Blockchain / © 2019 IBM Corporation
台帳の構成要素 説明
ブロック
• ブロックをハッシュ値でつないだ、過去の記録の改ざんができない構造
を持つデータ。
• トランザクション(スマート・コントラクトの処理呼び出し)がログの
ように記録される
ワールドステート
• トランザクションを実⾏した結果得られる、「最新の状態」を記録。
• すべての検証ノードで同⼀の内容をもち、整合性をとるためにハッシュ
値がブロックチェーンに記録されるKVS
以下2種類の構成要素から成ります。
24
分散台帳とスマートコントラクト の関係
IBM Blockchain / © 2019 IBM Corporation
ワールドステート
(最新の状態を管理) ブロックチェーン
ブロック(取引履歴を管理)
…
呼び出し開発
開発
各起動毎に記録
アプリケーション
台帳
読み込み/書き込み
txn
D
ブロックチェーン
開発者
スマート
コント
ラクト
txn txn txn
Peerは以下のような
役割を持ちます。
・アプリケーションとの接続
・台帳の保持
・スマート・コントラクトを実⾏
Peer
イベント
出⼒
出⼒
25
チェーンコードとは
IBM Blockchain / © 2019 IBM Corporation
Hyperledger Fabricではチェーンコードと呼びます。ブロックチェーンネットワーク上にどういうデータを
参照/書込するのか、ブロックチェーン上でどのようなビジネスプロセスを実⾏するかをプログラミングコー
ドで記述します。同じネットワークに参加するPeerはそれぞれ同じチェーンコードを保持しており、どの
Peerで実⾏しても同じ結果になるよう管理されています。
Aさん
(クライアント)
トランザクションを発⾏
(= 所有権移転処理の呼び出し)
トランザクション
AからBに
資産xyz123を移転
Hyperledger
Fabricネットワーク
AさんのPeer
チェーンコード
処理(プログラム):
• 作成 …........
• 所有権移転 …......
• 属性変更 ….......
資産ID:xyz123
・所有者︓A-san
・タイプ: ⾃動⾞
・登録情報: xxxxxx
CさんのPeer2
チェーンコード
処理(プログラム):
• 作成 …........
• 所有権移転 …......
• 属性変更 ….......
資産ID:xyz123
・所有者︓A-san
・タイプ: ⾃動⾞
・登録情報: xxxxxx
BさんのPeer3
チェーンコード
処理(プログラム):
• 作成 …........
• 所有権移転 …......
• 属性変更 ….......
資産ID:xyz123
・所有者︓A-san
・タイプ: ⾃動⾞
・登録情報: xxxxxx
プログラム⾔語はGo、JavaScript、Java
に対応
Bさん
(クライアント)
Orderer
CA(認証局)
26
Hyperledger Fabricのプライバシー保護機能
IBM Blockchain / © 2019 IBM Corporation
チャネル1(全員)
チャネル2(A社、C社、D社のみ)
台帳X 台帳X 台帳X 台帳X
台帳Y 台帳Y 台帳Y
チェーン
コードX
チェーン
コードX
チェーン
コードX
チェーン
コードX
チェーン
コードY
チェーン
コードY
チェーン
コードY
A社
Peer
B社
Peer
C社
Peer
D社
Peer
Hyperledger Fabricは台帳の共有範囲を設定することができ、データのプライバシーを強化することがで
きます。
従来の分散台帳
(Hyperledger Fabric v0.6まで)
懸念点
データを暗号化して保護したとしても、
ノードのシステム管理者が悪意を持って⾏動
すると、データのプライバシーを守れない
Hyperledger Fabric v1.0以降
ブロックチェーン
ビジネスネットワーク
A社
Peer
台帳
B社
Peer
台帳
D社
Peer
台帳
C社
Peer
台帳
チェーン
コード
チェーン
コード
チェーン
コード
チェーン
コード
⼀部の参加者によるプライベートなデータ共有が可能
台帳Z
チェーン
コードZ
チャネル3(B社、C社、D社のみ)
台帳Z
チェーン
コードZ 台帳Z
チェーン
コードZ
27
Hyperledger Fabricのアプリ開発ツール
IBM Blockchain / © 2019 IBM Corporation
VSCodeのプラグインに”IBM Blockchain Platform”が追加。
チェーンコードの開発、テスト、デプロイが可能。2019年9⽉時点でv1.0.10
(https://github.com/horeaporutiu/VSCodeTutorial)
機能
チェーンコードの開発
- JavaScript、TypeScript、Go、Javaに対応
- チェーンコードのデプロイ、初期化、アップグレードを数クリックで実施可能
テスト環境
- ボタン⼀つでローカル環境にFabricネットワークを構築(v1.4.x)
- ユーザ作成、クライアントSDKからトランザクションのテストが可能
サンプルコード
- GitHubに公開済(上記リンク)
チェーンコード(JS)、クライアントコード(JS)
28
Hyperledger Fabricのサンプルコード
IBM Blockchain / © 2019 IBM Corporation
n 初⼼者向け︓VSCodeのサンプルコード
VSCodeのアドオンを使ってプロジェクトを作成するとサンプルプログラムが⾃動で作成される。
n 初⼼者向け︓Fabcar
https://github.com/hyperledger/fabric-samples/tree/release/fabcar
https://hyperledger-fabric.readthedocs.io/en/release-1.4/write_first_app.html
n 中級者向け︓commercial paper
https://github.com/hyperledger/fabric-samples/tree/release-1.4/commercial-paper
https://hyperledger-fabric.readthedocs.io/en/release-1.4/tutorial/commercial_paper.html
Javascriptのサンプルが特に充実しており、APIもハイレベルなものが提供されている。
29
本⽇の内容
n Hyperledgerプロジェクト最新動向
n Hyperledger Fabric概要
n Hyperledger Fabric最新動向(v1.4.x/v2.x)
n QA、フリーディスカッション、ネットワーキング
IBM Blockchain / © 2019 IBM Corporation
30
Hyperledger Fabric ロードマップと主なアップデート項⽬
IBM Blockchain / © 2019 IBM Corporation
2019/01 2019/04 2019/07 2019/08
2019/04
v1.4.x
V2.0.x
・Fabric Operation Service
・Private Data Collection Update
・Long Term Support
v1.4.0 v1.4.1 v1.4.2 v1.4.3
v2.0-alpha
・Raft-Ordering
・Additional Operation Service
・Kafka-Raft migration
・Channel rollback
・Orderer endpoints
・Bug-fix
・Improve Chaincode Lifecycle
・Fab-token
・Docker Image with Alpine
future
v2.1.0
future
v2.0.0
31
Hyperledger Fabric Operation Service v1.4.0~
IBM Blockchain / © 2019 IBM Corporation
PeerやOrdererの状態の監視を⾏えるようになった。PrometheusもしくはStatsDによって収集し、
Grafana等のツールによって可視化する。
・ヘルスチェック機能
動的にPeerやOrdererのヘルスチェックを⾏う
・PeerやOedererのメトリクスを動的に取得し、
可視化
・PeerやOrdererのログレベルを動的に変更可能
32
Update Private Data Collection v1.4.0~
IBM Blockchain / © 2019 IBM Corporation
ブロックチェーンネットワークに後から参加した組織が参加前のPrivate Data Collectionのデータを同期
できるようになった。
=Private Data Collectionの本格的な利⽤が可能になった
mychannel
<Private Data Collectionとは>
チャネル内で限られたPeerノード間でP2P通信により、データ連携を⾏うことができるプライバシー保護
機能。
Org1 Peer Org2 Peer Org3 Peer
Public ledger Public ledger Public ledger
Private ledger Private ledger
共通データ 共通データ
機密データ
33
Raft Ordering Service v1.4.1~
IBM Blockchain / © 2019 IBM Corporation
Ordering ServiceのコンセンサスアルゴリズムとしてRaftが追加され、運⽤不可の軽減、
分散配置が可能になった。
Kafka(v1.0~) RAFT(v1.4.1~)
K K K K
Z Z Z
O O O
O O O
Ordering Service⽐較
K︓Kafka
Z︓Zookeeper
O︓Orderer
・ノード数の削減による運⽤負担軽減
・複数データセンターでの分散配置
RAFTの仕組み
L
F
F
■データの複製・ヘルスチェック
LeaderからHeartbeatを定期的に送信
(データのレプリケーション含)
L︓Leader
F︓Follower
C︓Candidate
L
F
F
■リーダー選挙
LeaderからのHeartbeatが⼀定時間⾒
受信、もしくは⼀定時間経過
C
Ordering ServiceOrdering Service
LeaderからFollowerへデータを複製する。
Leaderは定期的にHeartbeatを送信する。Leaderからの
メッセージを⼀定期間受信しない場合、新たなLeaderを
決める投票が⾏われる。この時、FollowerがCandidateに
なり、過半数ノードの投票を得るとLeaderになる。
34
KafkaからRaftへの移⾏ v1.4.2~
IBM Blockchain / © 2019 IBM Corporation
n 移⾏の際の注意事項
• ⼀度移⾏を実施するとKafkaへは戻すことができない
• 移⾏中はOrdererを停⽌する必要があるため、サービス停⽌を伴う
• 移⾏が失敗した場合、データロストする可能性があるため、バックアップを取得すること
• チャネル単位で移⾏はできず、すべてのチャネルを⼀度に移⾏する必要がある
• Ordererノードの追加や削除は移⾏完了後に⾏う
n 移⾏⼿順
1. アプリケーションからのトランザクッション送信を停⽌する(メンテナンスモードへ切替)
2. Orderer、Kafka、Zookeeperノードのバックアップ取得
3. チャネルの構成情報(ConsensusTypeやMetadata)を修正する
4. ネットワークを再起動し、Raftへ移⾏できたかどうか確認する
5. アプリケーションからのトランザクション送信を再開する(通常モードへ切替)
35
Fab-token v2.0-alpha~
IBM Blockchain / © 2019 IBM Corporation
Hyperledger Fabricのチャネル上でUTXO(Unspent Transaction Output)モデルのトークンを利⽤して有
形/無形の資産を表現できるようになった。
<主な提供機能>
専⽤のSDKもしくはCLIから実⾏
・Issued︓トークンの発⾏が可能。発⾏はIssuing Policyで許可されたユーザのみ発⾏可能。
・Transferred︓トークンの所有者の移転が可能。
・Reddemed︓トークンの削除を⾏う。削除はトークンの所有者のみ⾏うことができる。
<トークンのデータモデル>
・Owner︓Tokenの所有者
・Type︓Tokenの情報(USD、EUR等)
・Quantity︓所有しているTokenの数(USDの場合、100等)
<今後のアップデート>
・Chaincodeとの相互運⽤性(チェーンコード上のロジックにトークンの取引を実装、トークンにメタ情
報を付与等)
・⾮分離トークンの実装(分割、結合できないトークンを実装。チケット取引等のユースケースを想定)
36
Chaincode Lifecycle Update v2.0-alpha
IBM Blockchain / © 2019 IBM Corporation
チェーンコードの分散型ガバナンスの導⼊により、複数組織での本格運⽤を意識したデザインへ変更
<主な変更ポイント>
・チェーンコードのパラメータの設定に複数組織の同意を得る⽅法を追加
Endorsement Policyやチェーンコード名、バージョン等のパラメータを複数組織の同意を得て設定する⽅法と
従来の1組織が設定する⽅法の両⽅を選択することができるようになった。
・チェーンコードアップグレードプロセスの改善
チェーンコードアップグレード時に複数組織の事前承認を得てからアップグレードをする必要がある。
他組織が更新されたチェーンコードをインストールする前にアップグレードされることを防ぐことができる。
・Endorsement Policyのアップデートの簡易化
チェーンコードのアップグレードをしなくてもEndorsement Policyの変更が可能になった。
また、チャネル参加者の過半数の承認が必要なPolicyがデフォルトで設定され、同Policyは
チャネル上の参加者の⼊出を⾃動で反映する。
・検証可能なチェーンコードパッケージ
tarファイルでパッケージ化することで簡単に解凍して中⾝を確認することができ、複数組織間での
チェーンコードのインストールの調整がより簡単になった。(これまではcdsファイル)
・チェーンコードのインスタンス化時の機能追加
1つのインストールしたチェーンコードから複数のチェーンコードを異なるチェーンコード名で
インスタンス化することができるようになった。
37
Peer node rollback v1.4.2~
IBM Blockchain / © 2019 IBM Corporation
Peer nodeコマンドの追加
https://docs.google.com/document/d/1_-e4Bu42E9vfdttrYBmiSUeOdanH2SiSnuhM1oOn1TA/edit
n peer node rollback
指定したチャネルのブロックのロールバックを⾏う。
オプションでブロック番号を指定するとそのブロック番号までロールバックする。
<オプション>
-c チャネル名
-b ブロック番号
※プライベートデータはロールバックの対象外となるため注意が必要
n peer node reset
すべてのチャネルのブロックをジェネシスブロックまでリセットし、起動時に他のPeerからデータを
同期する。対象のPeerは停⽌した状態で実⾏する必要がある。
<実⾏結果>
2019-08-07 07:01:24.129 UTC [kvledger] ResetAllKVLedgers -> INFO 00a All channel ledgers
have been successfully reset to the genesis block
38
Hyperledger Fabricの最新動向
IBM Blockchain / © 2019 IBM Corporation
<実装予定機能>
台帳のアーカイブ化、チェックポイント機能の追加 (v2.1.0で予定※1)
• チェックポイント機能
ジェネシスブロックではなくチェックポイントからチャネルに参加可能
• Peerが新しくチャネルに参加する際の時間を削減
• チャネルに参加する際のストレージ容量を削減
Hyperledger Fabricの動向はJiraで確認することができます。
https://jira.hyperledger.org/projects/FAB/issues/FAB-7559?filter=allopenissues
不要になったトランザクションをアーカイブ化し、必要になった時に再度アクセスできるようにすること
でパフォーマンスの向上、ストレージ容量の削減することができる。
アクセスする際はトランザクションIDを利⽤
※1対応バージョンや実装内容は変わる可能性があります。
39
Hyperledger Fabricの最新動向
IBM Blockchain / © 2019 IBM Corporation
Hyperledger Fabricの動向はJiraで確認することができます。
https://jira.hyperledger.org/projects/FAB/issues/FAB-7559?filter=allopenissues
<実装予定機能>
スマートコントラクト の実⾏環境のnodeのバージョンアップv8.x→v10.x(Fabric実装バージョン未定)※1
node v8.xが2019年12⽉でEOLになるため、スマートコントラクの実⾏環境のバージョンをv8.xから
nodeの安定版のv10.xにバージョンアップするもの。
※2クライアントコードについては既にv10.xに対応済
※1対応バージョンや実装内容は変わる可能性があります。
40
関連リンク
IBM Blockchain / © 2019 IBM Corporation
Hyperledger Fabric ⼊⾨(⽇本語)
https://www.ibm.com/developerworks/jp/cloud/library/cl-hyperledger-fabric-basic-1/index.html
Hyperledger Fabric read the docs
https://hyperledger-fabric.readthedocs.io/en/release-1.4/
Hypreledger jira
https://jira.hyperledger.org/projects/FAB/issues/FAB-7559?filter=allopenissues

Más contenido relacionado

Último

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 

Último (10)

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

Destacado

How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellSaba Software
 
Introduction to C Programming Language
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming LanguageSimplilearn
 

Destacado (20)

How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
 
Introduction to C Programming Language
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming Language
 

Blockchain engineer night_2019#3

  • 1. IBM Blockchain / © 2018 IBM Corporation Blockchain Engineer Night 2019 #3
  • 2. IBM Blockchain / © 2018 IBM Corporation Blockchain Engineer Night ブロックチェーン(主にHyperledger Fabric)の 最新動向を勉強する、ブロックチェーン技術者向けのコミュニティ n 技術解説 n ブロックチェーンアプリケーション紹介
  • 3. 3 本⽇の内容 n Hyperledgerプロジェクト最新動向 n Hyperledger Fabric概要 n Hyperledger Fabric最新動向(v1.4.x/v2.x) n QA、フリーディスカッション、ネットワーキング IBM Blockchain / © 2019 IBM Corporation
  • 4. 4 ⾃⼰紹介 〜2017 メインフレームLinux技術者 メインフレームLinux(IBM Z/Linux)の提案活動・構築 2017〜 Blockchain 技術者 Blockchainシステムの技術⽀援、提案活動 Blockchain Meetupの開催 趣味︓ゴルフ、ロードバイク、釣り、キャンプ ⽇本IBM Blockchain Service 栗村 彰吾(Shogo Kurimura)
  • 5. 5 本⽇の内容 n Hyperledgerプロジェクト最新動向 n Hyperledger Fabric概要 n Hyperledger Fabric最新動向(v1.4.x/v2.x) n QA、フリーディスカッション、ネットワーキング IBM Blockchain / © 2019 IBM Corporation
  • 6. 6IBM Blockchain / © 2019 IBM Corporation Hyperledgerプロジェクト ⼀覧 サプライチェーン 分散ID管理 Ethereum スマートコントラクト 実⾏基盤 可視化ツール Inter Ledger Protocol 暗号化ライブラリ 相互運⽤ツール スマートコントラク トエンジン Ethereum クライアント 汎⽤型 汎⽤型 汎⽤型 ベントマークツール デプロイメントツール
  • 7. IBM Blockchain / © 2019 IBM Corporation 7 Distributed Ledger l Javaのethereumクライアント トランザクション実⾏環境/台帳/P2P通信/API l Ethereumテストネット(rinkeby/ropsten/Görli)で 実⾏可能 l コンソーシアム環境での使⽤に特化して設計 l PoW、PoA、IBFTなどのコンセンサスアルゴリズムを選択 可能 l Truffle、Remix、web3jをサポート https://besu.hyperledger.org/en/latest/Concepts/ArchitectureOverview/
  • 8. IBM Blockchain / © 2019 IBM Corporation 8 Burrow Plugin (Hyperledger Fabric) アーキテクチャー Peer 実⾏ EVMCC Ethereum スマートコントラクト 実⾏ Hyperledger Fabric Client Web3 Proxy クライアントアプリ Web3 Client Hyperledger Fabric Web3 Proxy EthereumのJavaScript API EVMCC Ethereumスマートコントラクトを 実⾏するためのチェンコード l Ethereumスマートコントラクトに対応した基盤 l Ethereumに⽐べ軽量で⾼速なトランザクション処理 (Tendermint) l トランザクションのファイナリティがある l Hyperledger Fabric/Sawtoothへのプラグイン Distributed Ledger
  • 9. IBM Blockchain / © 2019 IBM Corporation 9 公的機関 第三者機関 個⼈ 企業・団体 ウォレット Hyperledger Indy ネットワーク 証明書 登録 証明書 参照 アクセス権 付与発⾏ 情報を管理 l 分散ID管理ブロックチェーン l ⾃⼰主権型アイデンティティ管理の実現 “self-sovereign Identity” l W3CのDIDsへの対応 Distributed Ledger
  • 10. IBM Blockchain / © 2019 IBM Corporation 10 Domain-Specific l ブロックチェーン×サプライチェーン⽤のフレームワーク l サプライチェーンに関するデータモデル、 スマートコントラクトロジックを提供 l Hyperledger Sawtoothのトランザクション処理 モデルを活⽤
  • 11. IBM Blockchain / © 2019 IBM Corporation 11 Today we are excited to announce our newest project, Hyperledger Transact. Transact represents the continued evolution at Hyperledger towards greater componentization to allow rapid responsible adoption of new blockchain technologies. Transact provides a platform-agnostic library for executing transactions with smart contracts. It allows us to more rapidly integrate a variety of smart contract technologies such as WebAssembly across the Hyperledger family of projects. Transact is informed from experiences and design in multiple Hyperledger frameworks including Hyperledger Sawtooth and Hyperledger Fabric. Smart contracts are a fundamental building block of distributed ledgers. In distributed ledger frameworks, a transaction represents an intended change that is submitted by a user. Transactions are interpreted by smart contracts, which update the current state of the system as a result. Existing solutions for smart contract execution are generally tied to a specific distributed ledger implementation, which limits the code’s reusability. Hyperledger Transact will reduce the development effort for distributed ledger solutions by providing a standard interface for executing smart contracts that is separate from the distributed ledger implementation. https://www.hyperledger.org/blog/2019/06/27/introducing-hyperledger-transact Libraries
  • 12. IBM Blockchain / © 2019 IBM Corporation 12 https://www.hyperledger.org/blog/2018/12/04/welcome-hyperledger-ursa https://github.com/hyperledger/ursa l 共通の暗号ライブラリを提供 l LibUrsa 単純なデジタル署名、暗号化⽅式、および鍵交換などの暗号化を提供するライブラリ l LibZmix ゼロ知識証明(SNARKs)を提供するライブラリ Libraries
  • 13. IBM Blockchain / © 2019 IBM Corporation 13 l ブロックチェーンクライアント⽤の暗号化されたwalletや ブロックチェーンとのインターフェイス(リゾルバ)を提供 l セキュアな秘密鍵の管理(wallet)に、Hyperledger Ursaのライブラリをサポート l Hyperledger Indyのインターフェイスを実装 l Hyperledger Fabric、Ethereumへの対応(予定) Libraries
  • 14. IBM Blockchain / © 2019 IBM Corporation 14 What is Hyperledger Quilt? Hyperledger Quilt offers interoperability between ledger systems by implementing ILP, which is primarily a payments protocol and is designed to transfer value across systems – both distributed ledgers and non-distributed ledgers. It is a simple protocol that establishes a global namespace for accounts, as well as, a protocol for synchronized atomic swaps between different systems. Why Quilt? Ledger systems today are siloed and disconnected. Transfers of value are relatively easy within one country, or if the sender and recipient have accounts on the same network or ledger. But sending value to someone on a different network or ledger is complex and often impractical. Where connections between ledgers do exist, they are manual, slow or expensive. The Interledger protocol is based on concepts dating back to the 1970s and 1980s, but it took the advent of Bitcoin and the global blockchain movement to make the world realize that money and value transfers could be reinvented with Internet based technologies. Internet protocols enable information to be packetized, routed and delivered over communication networks. With ILP, money and other forms of value can be packetized, routed and delivered over payment networks and ledgers. Hyperledger Quilt is an enterprise grade implementation of the protocol, developed in Java, and providing libraries and reference implementations of the core Interledger components and in time ledger integrations for other Hyperledger projects. By implementing the Interledger protocol, Quilt provides: ・A set of rules for enabling ledger interoperability with basic escrow semantics ・A standard for a ledger-independent address format and data packet format that will enable connectors to route payments ・A framework for designing higher level use-case-specific protocols https://www.hyperledger.org/blog/2017/10/16/hyperledger-gets-cozy-with-quilt Libraries
  • 15. IBM Blockchain / © 2019 IBM Corporation 15 Interledger Protcol https://interledger.org/interledger.pdf
  • 16. IBM Blockchain / © 2019 IBM Corporation 16 Tools l ブロックチェーンネットワークのViewer l ブロックの⾼さ/トランザクション/ ノードのステータス/etc…を可視化
  • 17. IBM Blockchain / © 2019 IBM Corporation 17 l ブロックチェーンネットワークのデプロイメントツール l ネットワークのライフサイクル(構築/開始/停⽌/ 削除)管理機能を提供 l Docker、Kubernetesをサポート Tools
  • 18. IBM Blockchain / © 2019 IBM Corporation 18 l ブロックチェーンのベンチマーク測定ツール l TPSやレイテンシー、リソースの使⽤量の測定 l 測定結果のレポーティングを Tools
  • 19. 19 本⽇の内容 n Hyperledgerプロジェクト最新動向 n Hyperledger Fabric概要 n Hyperledger Fabric最新動向(v1.4.x/v2.x) n QA、フリーディスカッション、ネットワーキング IBM Blockchain / © 2019 IBM Corporation
  • 20. 20 ⾃⼰紹介 IBM Blockchain / © 2019 IBM Corporation ü ⽒名 ⻄下 慧(にしした さとし) ü 経歴 2016年⽇本総合研究所に⼊社、銀⾏の社内システム 担当としてプロジェクトに参画 2018年⽇本アイ・ビー・エム社に出向し、ブロック チェーン技術者になるべく、修⾏中
  • 21. 21 Hyperledger Fabricのコンポーネント IBM Blockchain / © 2019 IBM Corporation n Peer クライアントから送付されたトランザクションおん検証や実⾏、ブロックへの書き込みを⾏う スマートコントラクト とブロックチェーン台帳を保持するノード n Orderer トランザクションの順序付けをし、ブロックチェーンネットワーク内のPeerに送信する。 n CA ブロックチェーンネットワーク内のユーザとノードの情報の登録、証明書の発⾏を⾏う Peer CA Peer CA 組織1 組織2 Orderer CA <ネットワークの構成例> Peerは各組織1台以上 Ordererはネットワークで1台以上 CAは各組織1台以上 ブロックチェーンネットワーク
  • 22. 22 Hyperledger Fabricのシステム構成 IBM Blockchain / © 2019 IBM Corporation ユーザ CA アプリケーション Orderer Tx ︓トランザクション CC︓チェーンコード※ Peer 台帳CC Peer 台帳CC Peer 台帳CC 共有 ②証明書の発⾏①証明書の申請 ④Txの検証, レスポンス ③Txの発信 ⑥Txをブロードキャスト ⑤Txの送信 ID情報を管理 ※契約上の条件やルールをビジネスロジックとしてプログラムで実装したもの
  • 23. 23 Hyperledger Fabricの分散台帳の構成要素 IBM Blockchain / © 2019 IBM Corporation 台帳の構成要素 説明 ブロック • ブロックをハッシュ値でつないだ、過去の記録の改ざんができない構造 を持つデータ。 • トランザクション(スマート・コントラクトの処理呼び出し)がログの ように記録される ワールドステート • トランザクションを実⾏した結果得られる、「最新の状態」を記録。 • すべての検証ノードで同⼀の内容をもち、整合性をとるためにハッシュ 値がブロックチェーンに記録されるKVS 以下2種類の構成要素から成ります。
  • 24. 24 分散台帳とスマートコントラクト の関係 IBM Blockchain / © 2019 IBM Corporation ワールドステート (最新の状態を管理) ブロックチェーン ブロック(取引履歴を管理) … 呼び出し開発 開発 各起動毎に記録 アプリケーション 台帳 読み込み/書き込み txn D ブロックチェーン 開発者 スマート コント ラクト txn txn txn Peerは以下のような 役割を持ちます。 ・アプリケーションとの接続 ・台帳の保持 ・スマート・コントラクトを実⾏ Peer イベント 出⼒ 出⼒
  • 25. 25 チェーンコードとは IBM Blockchain / © 2019 IBM Corporation Hyperledger Fabricではチェーンコードと呼びます。ブロックチェーンネットワーク上にどういうデータを 参照/書込するのか、ブロックチェーン上でどのようなビジネスプロセスを実⾏するかをプログラミングコー ドで記述します。同じネットワークに参加するPeerはそれぞれ同じチェーンコードを保持しており、どの Peerで実⾏しても同じ結果になるよう管理されています。 Aさん (クライアント) トランザクションを発⾏ (= 所有権移転処理の呼び出し) トランザクション AからBに 資産xyz123を移転 Hyperledger Fabricネットワーク AさんのPeer チェーンコード 処理(プログラム): • 作成 …........ • 所有権移転 …...... • 属性変更 …....... 資産ID:xyz123 ・所有者︓A-san ・タイプ: ⾃動⾞ ・登録情報: xxxxxx CさんのPeer2 チェーンコード 処理(プログラム): • 作成 …........ • 所有権移転 …...... • 属性変更 …....... 資産ID:xyz123 ・所有者︓A-san ・タイプ: ⾃動⾞ ・登録情報: xxxxxx BさんのPeer3 チェーンコード 処理(プログラム): • 作成 …........ • 所有権移転 …...... • 属性変更 …....... 資産ID:xyz123 ・所有者︓A-san ・タイプ: ⾃動⾞ ・登録情報: xxxxxx プログラム⾔語はGo、JavaScript、Java に対応 Bさん (クライアント) Orderer CA(認証局)
  • 26. 26 Hyperledger Fabricのプライバシー保護機能 IBM Blockchain / © 2019 IBM Corporation チャネル1(全員) チャネル2(A社、C社、D社のみ) 台帳X 台帳X 台帳X 台帳X 台帳Y 台帳Y 台帳Y チェーン コードX チェーン コードX チェーン コードX チェーン コードX チェーン コードY チェーン コードY チェーン コードY A社 Peer B社 Peer C社 Peer D社 Peer Hyperledger Fabricは台帳の共有範囲を設定することができ、データのプライバシーを強化することがで きます。 従来の分散台帳 (Hyperledger Fabric v0.6まで) 懸念点 データを暗号化して保護したとしても、 ノードのシステム管理者が悪意を持って⾏動 すると、データのプライバシーを守れない Hyperledger Fabric v1.0以降 ブロックチェーン ビジネスネットワーク A社 Peer 台帳 B社 Peer 台帳 D社 Peer 台帳 C社 Peer 台帳 チェーン コード チェーン コード チェーン コード チェーン コード ⼀部の参加者によるプライベートなデータ共有が可能 台帳Z チェーン コードZ チャネル3(B社、C社、D社のみ) 台帳Z チェーン コードZ 台帳Z チェーン コードZ
  • 27. 27 Hyperledger Fabricのアプリ開発ツール IBM Blockchain / © 2019 IBM Corporation VSCodeのプラグインに”IBM Blockchain Platform”が追加。 チェーンコードの開発、テスト、デプロイが可能。2019年9⽉時点でv1.0.10 (https://github.com/horeaporutiu/VSCodeTutorial) 機能 チェーンコードの開発 - JavaScript、TypeScript、Go、Javaに対応 - チェーンコードのデプロイ、初期化、アップグレードを数クリックで実施可能 テスト環境 - ボタン⼀つでローカル環境にFabricネットワークを構築(v1.4.x) - ユーザ作成、クライアントSDKからトランザクションのテストが可能 サンプルコード - GitHubに公開済(上記リンク) チェーンコード(JS)、クライアントコード(JS)
  • 28. 28 Hyperledger Fabricのサンプルコード IBM Blockchain / © 2019 IBM Corporation n 初⼼者向け︓VSCodeのサンプルコード VSCodeのアドオンを使ってプロジェクトを作成するとサンプルプログラムが⾃動で作成される。 n 初⼼者向け︓Fabcar https://github.com/hyperledger/fabric-samples/tree/release/fabcar https://hyperledger-fabric.readthedocs.io/en/release-1.4/write_first_app.html n 中級者向け︓commercial paper https://github.com/hyperledger/fabric-samples/tree/release-1.4/commercial-paper https://hyperledger-fabric.readthedocs.io/en/release-1.4/tutorial/commercial_paper.html Javascriptのサンプルが特に充実しており、APIもハイレベルなものが提供されている。
  • 29. 29 本⽇の内容 n Hyperledgerプロジェクト最新動向 n Hyperledger Fabric概要 n Hyperledger Fabric最新動向(v1.4.x/v2.x) n QA、フリーディスカッション、ネットワーキング IBM Blockchain / © 2019 IBM Corporation
  • 30. 30 Hyperledger Fabric ロードマップと主なアップデート項⽬ IBM Blockchain / © 2019 IBM Corporation 2019/01 2019/04 2019/07 2019/08 2019/04 v1.4.x V2.0.x ・Fabric Operation Service ・Private Data Collection Update ・Long Term Support v1.4.0 v1.4.1 v1.4.2 v1.4.3 v2.0-alpha ・Raft-Ordering ・Additional Operation Service ・Kafka-Raft migration ・Channel rollback ・Orderer endpoints ・Bug-fix ・Improve Chaincode Lifecycle ・Fab-token ・Docker Image with Alpine future v2.1.0 future v2.0.0
  • 31. 31 Hyperledger Fabric Operation Service v1.4.0~ IBM Blockchain / © 2019 IBM Corporation PeerやOrdererの状態の監視を⾏えるようになった。PrometheusもしくはStatsDによって収集し、 Grafana等のツールによって可視化する。 ・ヘルスチェック機能 動的にPeerやOrdererのヘルスチェックを⾏う ・PeerやOedererのメトリクスを動的に取得し、 可視化 ・PeerやOrdererのログレベルを動的に変更可能
  • 32. 32 Update Private Data Collection v1.4.0~ IBM Blockchain / © 2019 IBM Corporation ブロックチェーンネットワークに後から参加した組織が参加前のPrivate Data Collectionのデータを同期 できるようになった。 =Private Data Collectionの本格的な利⽤が可能になった mychannel <Private Data Collectionとは> チャネル内で限られたPeerノード間でP2P通信により、データ連携を⾏うことができるプライバシー保護 機能。 Org1 Peer Org2 Peer Org3 Peer Public ledger Public ledger Public ledger Private ledger Private ledger 共通データ 共通データ 機密データ
  • 33. 33 Raft Ordering Service v1.4.1~ IBM Blockchain / © 2019 IBM Corporation Ordering ServiceのコンセンサスアルゴリズムとしてRaftが追加され、運⽤不可の軽減、 分散配置が可能になった。 Kafka(v1.0~) RAFT(v1.4.1~) K K K K Z Z Z O O O O O O Ordering Service⽐較 K︓Kafka Z︓Zookeeper O︓Orderer ・ノード数の削減による運⽤負担軽減 ・複数データセンターでの分散配置 RAFTの仕組み L F F ■データの複製・ヘルスチェック LeaderからHeartbeatを定期的に送信 (データのレプリケーション含) L︓Leader F︓Follower C︓Candidate L F F ■リーダー選挙 LeaderからのHeartbeatが⼀定時間⾒ 受信、もしくは⼀定時間経過 C Ordering ServiceOrdering Service LeaderからFollowerへデータを複製する。 Leaderは定期的にHeartbeatを送信する。Leaderからの メッセージを⼀定期間受信しない場合、新たなLeaderを 決める投票が⾏われる。この時、FollowerがCandidateに なり、過半数ノードの投票を得るとLeaderになる。
  • 34. 34 KafkaからRaftへの移⾏ v1.4.2~ IBM Blockchain / © 2019 IBM Corporation n 移⾏の際の注意事項 • ⼀度移⾏を実施するとKafkaへは戻すことができない • 移⾏中はOrdererを停⽌する必要があるため、サービス停⽌を伴う • 移⾏が失敗した場合、データロストする可能性があるため、バックアップを取得すること • チャネル単位で移⾏はできず、すべてのチャネルを⼀度に移⾏する必要がある • Ordererノードの追加や削除は移⾏完了後に⾏う n 移⾏⼿順 1. アプリケーションからのトランザクッション送信を停⽌する(メンテナンスモードへ切替) 2. Orderer、Kafka、Zookeeperノードのバックアップ取得 3. チャネルの構成情報(ConsensusTypeやMetadata)を修正する 4. ネットワークを再起動し、Raftへ移⾏できたかどうか確認する 5. アプリケーションからのトランザクション送信を再開する(通常モードへ切替)
  • 35. 35 Fab-token v2.0-alpha~ IBM Blockchain / © 2019 IBM Corporation Hyperledger Fabricのチャネル上でUTXO(Unspent Transaction Output)モデルのトークンを利⽤して有 形/無形の資産を表現できるようになった。 <主な提供機能> 専⽤のSDKもしくはCLIから実⾏ ・Issued︓トークンの発⾏が可能。発⾏はIssuing Policyで許可されたユーザのみ発⾏可能。 ・Transferred︓トークンの所有者の移転が可能。 ・Reddemed︓トークンの削除を⾏う。削除はトークンの所有者のみ⾏うことができる。 <トークンのデータモデル> ・Owner︓Tokenの所有者 ・Type︓Tokenの情報(USD、EUR等) ・Quantity︓所有しているTokenの数(USDの場合、100等) <今後のアップデート> ・Chaincodeとの相互運⽤性(チェーンコード上のロジックにトークンの取引を実装、トークンにメタ情 報を付与等) ・⾮分離トークンの実装(分割、結合できないトークンを実装。チケット取引等のユースケースを想定)
  • 36. 36 Chaincode Lifecycle Update v2.0-alpha IBM Blockchain / © 2019 IBM Corporation チェーンコードの分散型ガバナンスの導⼊により、複数組織での本格運⽤を意識したデザインへ変更 <主な変更ポイント> ・チェーンコードのパラメータの設定に複数組織の同意を得る⽅法を追加 Endorsement Policyやチェーンコード名、バージョン等のパラメータを複数組織の同意を得て設定する⽅法と 従来の1組織が設定する⽅法の両⽅を選択することができるようになった。 ・チェーンコードアップグレードプロセスの改善 チェーンコードアップグレード時に複数組織の事前承認を得てからアップグレードをする必要がある。 他組織が更新されたチェーンコードをインストールする前にアップグレードされることを防ぐことができる。 ・Endorsement Policyのアップデートの簡易化 チェーンコードのアップグレードをしなくてもEndorsement Policyの変更が可能になった。 また、チャネル参加者の過半数の承認が必要なPolicyがデフォルトで設定され、同Policyは チャネル上の参加者の⼊出を⾃動で反映する。 ・検証可能なチェーンコードパッケージ tarファイルでパッケージ化することで簡単に解凍して中⾝を確認することができ、複数組織間での チェーンコードのインストールの調整がより簡単になった。(これまではcdsファイル) ・チェーンコードのインスタンス化時の機能追加 1つのインストールしたチェーンコードから複数のチェーンコードを異なるチェーンコード名で インスタンス化することができるようになった。
  • 37. 37 Peer node rollback v1.4.2~ IBM Blockchain / © 2019 IBM Corporation Peer nodeコマンドの追加 https://docs.google.com/document/d/1_-e4Bu42E9vfdttrYBmiSUeOdanH2SiSnuhM1oOn1TA/edit n peer node rollback 指定したチャネルのブロックのロールバックを⾏う。 オプションでブロック番号を指定するとそのブロック番号までロールバックする。 <オプション> -c チャネル名 -b ブロック番号 ※プライベートデータはロールバックの対象外となるため注意が必要 n peer node reset すべてのチャネルのブロックをジェネシスブロックまでリセットし、起動時に他のPeerからデータを 同期する。対象のPeerは停⽌した状態で実⾏する必要がある。 <実⾏結果> 2019-08-07 07:01:24.129 UTC [kvledger] ResetAllKVLedgers -> INFO 00a All channel ledgers have been successfully reset to the genesis block
  • 38. 38 Hyperledger Fabricの最新動向 IBM Blockchain / © 2019 IBM Corporation <実装予定機能> 台帳のアーカイブ化、チェックポイント機能の追加 (v2.1.0で予定※1) • チェックポイント機能 ジェネシスブロックではなくチェックポイントからチャネルに参加可能 • Peerが新しくチャネルに参加する際の時間を削減 • チャネルに参加する際のストレージ容量を削減 Hyperledger Fabricの動向はJiraで確認することができます。 https://jira.hyperledger.org/projects/FAB/issues/FAB-7559?filter=allopenissues 不要になったトランザクションをアーカイブ化し、必要になった時に再度アクセスできるようにすること でパフォーマンスの向上、ストレージ容量の削減することができる。 アクセスする際はトランザクションIDを利⽤ ※1対応バージョンや実装内容は変わる可能性があります。
  • 39. 39 Hyperledger Fabricの最新動向 IBM Blockchain / © 2019 IBM Corporation Hyperledger Fabricの動向はJiraで確認することができます。 https://jira.hyperledger.org/projects/FAB/issues/FAB-7559?filter=allopenissues <実装予定機能> スマートコントラクト の実⾏環境のnodeのバージョンアップv8.x→v10.x(Fabric実装バージョン未定)※1 node v8.xが2019年12⽉でEOLになるため、スマートコントラクの実⾏環境のバージョンをv8.xから nodeの安定版のv10.xにバージョンアップするもの。 ※2クライアントコードについては既にv10.xに対応済 ※1対応バージョンや実装内容は変わる可能性があります。
  • 40. 40 関連リンク IBM Blockchain / © 2019 IBM Corporation Hyperledger Fabric ⼊⾨(⽇本語) https://www.ibm.com/developerworks/jp/cloud/library/cl-hyperledger-fabric-basic-1/index.html Hyperledger Fabric read the docs https://hyperledger-fabric.readthedocs.io/en/release-1.4/ Hypreledger jira https://jira.hyperledger.org/projects/FAB/issues/FAB-7559?filter=allopenissues