180720 配布 hyperledger fabric v113 #b " 7!a * )13-bdcbd7e!ba (apkgk crit vnd r t bkkk lkkp...
TRANSCRIPT
IBM Blockchain / © 2018 IBM Corporation
日本アイ・ビー・エム株式会社IBMクラウド事業本部IBM クラウド・マイスター
紫関 昭光
Hyperledger Fabric V1 の動作解説と活用例の紹介
OSSユーザーのための勉強会 #24 Hyperledger
��������
c a
C g
1 FH V
1
C C i db
cea
1
IBM Blockchain / © 2018 IBM Corporation 2
H
– 1 2 1 5 21 F : 12 1 5 21 L : p
– 0 ahb H xe dixa H n c b n
F L : 1 2 1 5 21 L
– 0 xe d lw oyL: 0 nxa g L a
u dr n t c t
. 0 2 Source: https://www.hyperledger.org/about/members Updated Sep 6, 2017
1 2 1 5 21 0 nxa g
IBM Blockchain / © 2018 IBM Corporation 3
General
Premier
Associate
HB
A
HB
C
HB
HB
A
HB
��� �������
i oc
a Ih 8k• r tI a M• M B• C h 8p p l n• oc kn k 8
02 / 1 24 24 21
e Jt
C
,D 5 2 )1 / K 2B21
p thI k
e Jt Ji xb Jh thp h
e Jtvu
b Jhthp
h
hpt aotn hM
vM HtbhJrM Htbdta JhM
vM
M
,D 5 2 k Jaot ʼS y
cbM
lth
n h
n h
�
ʼF F F5
�
�
bgJh (
C C
(0 ( 82 (0 ) 2
p thk
1 /
����– –
���� ��������–
–
–
IBM Blockchain / © 2018 IBM Corporation 6
G C1 1
2
H
( 3
)
4
IBM Blockchain / © 2018 IBM Corporation 7
)
4 H 3 G C 2 3 2 3 1 2 1 ( 2 (
IBM Blockchain / © 2018 IBM Corporation 8
pI
)- ) 82 2 1 )- 8:98:1 8
/ 0( irt
irt
/ 0( irn
RTho
ir
• ho l c B G aCI
a
Xk
XkX X
R
M
k n M
( ( 1 120 ( ) 8 0:
-/ k B
aX o B
-/ k l
aX l
-/ k nn B
t t
k l
T a
k GI p h r i B n G T ak l B G p cC
X TaX X
R aT
IBM Blockchain / © 2018 IBM Corporation 11
•a
••
•
• d
2 )A
B8 2 )A
B8
2 )A
B8 2 )A
B8
0 D(d
0 Dd
0 D)d
0 Dd
10
10)d S
)d M R T c
(d S
(d M R T c
( B Pc a2B1
)/ BF8(0 BAB
BF8 -BFA8D DFAE
bW cI fe )/ ) B A 0 E:BD)/ ) B A 0 E:BD
)/ ) B A )/ BDCBD E BA 2 ) ) 2E E )
) (( C s dr pgeo s i E E
) (( : i es dr n t C i e
eo s
( ) ( ( ( s dr gC eo s E
E
13IBM Blockchain / © 2018 IBM Corporation
0
A B,DDA :8 CB 0
0
7/3
18 E :
E E B7 E :
,D
ov l ea t
Ogs l pv O• K0 0 0 d }{• ( SP
a l g Olc l al, l ea t
OdO I0 0 0
(, -
, -
, -
, /
l ea t ) l ea tECDCF
2-4 -AC: : 8 B M 2-4 CEDCE8 CB (
OdO
cr k bn ov
Oh O
i O cO Ogs lpv O
g S n c
g 2 2& 2 Wb bb v nio c
aO
b RSICK tv d k
o baO
v nio S O
2
0EC FKEC KC F 2&
2
:15
3 IC
7I ICFA: I C
7
7 7
7
8)8(/
/
/
1
v nio v nio c 2F I
g
l t ed d
h r
s l g pvPo
-
4/ /E D B CF M &, 4/ 0 I I KC F &
r b v S
7 : A ilnO rb v P
7 : A ilnS o dW P K c op gv
0
CA DFFCA : AED 0
0
8/3
1: A
AD8 IA
F
66-
-
-
/
n e v R ) R
2-4 -CE B :AD 2-4 E FE : AED (
o d
ctl a r
k c o o hnM
t bKk K
t eKi a pKgKM PO M O
bKk K I
M 4D: D A cl K o Kct eKi Oohci S I
078D
/
/
/ 4
4 4
4C
- AECC 7E BA
2
t eKi
4D: D ADF
o hci ( o hci M4D: D
1 3 B 7 A ) 1 3 -BDCBD7E BA (
a pKgK
v n dr t
bKk K
l K Kp a pKoiK
/ECC D F
k o f g sm S mb hP cvmn
ar L
k a d O,
• 7545 7 D B DEK BEFC D
• 3 A / B EB D:
2 :
1
1
1 5
5 5
5-F
/B D-FFB : ED
703
5 D7 K :
)(-
-
-
- 0
o f g * o f g
IBM Blockchain / © 2018 IBM Corporation 18
p e
cvmn ar t
k
l c p p io
u g
,
k p b ot i
k p bP t W S
ot i gO
e 9A DKA v SeRgV i W hcd O
3 D
2
2
2 7
7 7
7I
0FDA KIIFD KD
:1
7 A D B:A D A
8(8/
/
/
1
ot a ) * ot aFD KA
4/6 /F E C D M 4/6 0 I KD
r
k p
n
lP
t
-
cd o g P hn rv
hn loPe o loO OrvSt M Kp
078D
/
/
/ 4
4 4
4C
- AECC 7E BA
2
4D: D ADF
�
�
�
�
� �
e o loO ( ( e o loOrv
1 3 B 7 A ) 1 3 -BDCBD7E BA
o
cd og hn
a
b o okoeIin
f cc
P c rn f W
B
r
i kt
o n k r
n
����������� �ブロックチェーンネットワークをチャネルに分割できるようになりました。分散台帳、チェーンコードインスタンスはチャネルごとに存在します。
����
チャネル毎にトランザクションを異なる台帳で管理–• • P
–
– – – e
OO
O O
E1
E0
Ordering-Service
���������
e e ee P
e–• e
– e e e•• 3
Ordering-Service
OO
O O
�������������� �
• ) 16• 3 ,, 1 0�
P• 3 ,, B1 E
2• ,, .
T P
Fabric
E0A
B
E3
E2
E1
AB
AB A
B
OO
O O
Endorser Ledger
Committing Peer Application
Ordering Node
Smart Contract(Chain code)
EndorsementPolicy
Key:
ClientApplication
SDK
Ap
Ordering-Service
���� ����������
• 1 0, 2
• 1 0, 2
Fabric
E0Z
Y
E3
E2
E1
AB
AB Y
Z
OO
O O
Endorser Ledger
Committing Peer Application
Ordering Node
Smart Contract(Chain code)
EndorsementPolicy
Key:
ClientApplication
SDK
Ap
Ordering-Service
ClientApplication
SDK
Ap
Endorsement Policiesエンドースメントの成立条件はポリシーによって設定可能です。エンドースメントポリシーはチェーンコードがチャネルに対してインスタンス化されたときに指定されます。
エンドースメントポリシーはトランザクションが承認される条件を規定する。トランザクションはポリシーに従って承認された場合に限って正当と考えられる。
– チェーンコードはそれぞれエンドースメントポリシーに関連付けられる– デフォルトの実装では簡単な宣言型の言語でポリシーを記述する– ESCC (Endorsement System ChainCode) はエンドーシングピアにてプロポーザルへのレスポンスに署名する
– VSCC (Validation System ChainCode) はエンドースメントを検証する
Chaincode ESCC VSCC Ledger
Propose - Execute - Respond
Order - Deliver
Validate - Commit
Sign Policy
Peer Peer
������� �����
Policy Syntax: EXPR(E[, E...])
Where EXPR is either AND or OR and E is either a principal or nested EXPR.
Principal Syntax: MSP.ROLE
Supported roles are: member and admin.
Where MSP is the MSP ID required, and ROLE is either “member” or “admin”.
$ peer chaincode instantiate -C mychannel-n mycc-v 1.0 -c '{"Args":["init","a", "100", "b","200"]}' -P "AND('Org1MSP.member')“
This command instantiates the chaincodemycc on channel mychannel with the policy AND('Org1MSP.member’)-c: constructor message
������������ ��
Request 1 signature from all three principals
– AND('Org1.member', 'Org2.member', 'Org3.member')
Request 1 signature from either one of the two principals
– OR('Org1.member', 'Org2.member')
Request either one signature from a member of the Org1 MSP or (1 signature from a member of the Org2 MSP and 1 signature from a member of the Org3 MSP)
– OR('Org1.member', AND('Org2.member', 'Org3.member'))
������������
���� ��������トランザクションとIDのプライバシー保護
32
���������� �
- Enroll- Request Ecert
Hyperledger Fabric
Blockchain User A
uses
Ecert
invokes SC txn(signed with Ecert)
Enrollment certificate (Ecert) is the long term
identity of the participant on the blockchain network
Blockchain User B
UU
uses
ü
Certificate Authority
ClientApplication
SDKClient
Application
SDK
invokes SC txn(signed with Ecert)
MembershipServices
Provider API
on go (-–
– d oI - ) - (
o– i (- E
go e c– en D
33
������������� ����
(,���������
• )&*"�������������ID�(,
• �����������+#%� ���
• $�������(,���������������'!� ���
������� �������
Blockchain User
U3. Enroll(Enroll ID, secret)
wallet
ClientApplicationSD
K
Operator
O
ClientApplication
SDK
1. Register(Enroll ID)
returns( secret)
returns Ecert
2. Send Enroll ID and secret
Ecert
ü
Fabric-CA
World state
Blockchain
block
…
Ledger
Encrypt tx input
ClientApplication
SDK
ChaincodeDecrypt tx inputEncrypt world-state data
txencryptedencrypted data
Blockchain User
wallet
Peer
$0!�=96
�'+�0�)/I:��2?
C��=96�'�)/J• %*/���)/$0!• "�0/�0&*• .0,& #0%$0!
"�0/�0&�=9G 1B�$'-������*��/%�'+�0�)/���%*/���)/�1F � transient data field (8;� %�����)�4@�7� �� �3>�
*�'+�0�)/"�0/�0&�=96��E5�� #("�0/�0&�HA�<D���
tx
SDK signs with Ecert
����� ��������
A
bDhD
iDyD
W D D
•h oDk BRA W l f B
• M da u SgDk P IB re bD C ruDe
• W tDpn pD• iDyDB gDk CiDyD W tDpn pD H
W da uEc k F
W
Wy
iDyD
W D D
W da uEc k F
W
Wy
AA
• T rebD enm
• Tkms
h oDk W da u
re bD Ce a Oh oDk W
• T rebD enm
• Tkms
IBM Blockchain / © 2018 IBM Corporation 36
22- -
-
22
22
22
•P i D
toD
toD
toD
P i
P i
P i
22
22
22
22
•P i
to
to
to
P i
P i
P i
- -
-
22 22
ck S a l
ck S a l
Pe
i r
ck S a l
Sck S / 0 2
����
����
a t
a t
en ck S O OpI
ck S h M i p A CB
81 130 7 8 8 0 87
-11
-11
-11
-11
•Pch l i cD
tnD
tnD
tnD
Pch
Pch
Pch
-11
-11
-11
-11
•Pch l i c
tn
tn
tn
Pch
Pch
Pch -11 -11
S l k
h r
S l k
l P
�����
�����
e i S l l lS l / 1
e i S l l lS l / 1
e i t
e i t
S l k e ip OoI
S l M h o Aa lCB
0 02/3 8 / 3
IBM Blockchain / © 2018 IBM Corporation 39
ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。それらは情報提供の目的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく、またそのような結果を生むものでもありません。本講演資料に含まれている情報については、完全性と正確性を期するよう努力しましたが、「現状のまま」提供され、明示または暗示にかかわらずいかなる保証も伴わないものとします。本講演資料またはその他の資料の使用によって、あるいはその他の関連によって、いかなる損害が生じた場合も、IBMは責任を負わないものとします。 本講演資料に含まれている内容は、IBMまたはそのサプライヤーやライセンス交付者からいかなる保証または表明を引きだすことを意図したものでも、IBMソフトウェアの使用を規定する適用ライセンス契約の条項を変更することを意図したものでもなく、またそのような結果を生むものでもありません。
本講演資料でIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能であることを暗示するものではありません。本講演資料で言及している製品リリース日付や製品機能は、市場機会またはその他の要因に基づいてIBM独自の決定権をもっていつでも変更できるものとし、いかなる方法においても将来の製品または機能が使用可能になると確約することを意図したものではありません。本講演資料に含まれている内容は、参加者が開始する活動によって特定の販売、売上高の向上、またはその他の結果が生じると述べる、または暗示することを意図したものでも、またそのような結果を生むものでもありません。 パフォーマンスは、管理された環境において標準的なIBMベンチマークを使用した測定と予測に基づいています。ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラミングの量、入出力構成、ストレージ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではありません。
記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実例として示されたものです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。
IBM、IBM ロゴ、ibm.com、[以下当該情報に関連し商標リスト中に掲載されたIBMブランドやIBMの製品名称があれば追加する]は、 世界の多くの国で登録されたInternational Business Machines Corporationの商標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。現時点での IBM の商標リストについては、www.ibm.com/legal/copytrade.shtml をご覧ください。
Adobe, Adobeロゴ, PostScript, PostScriptロゴは、Adobe Systems Incorporatedの米国およびその他の国における登録商標または商標です。
IT Infrastructure LibraryはAXELOS Limitedの登録商標です。
インテル, Intel, Intelロゴ, Intel Inside, Intel Insideロゴ, Centrino, Intel Centrinoロゴ, Celeron, Xeon, Intel SpeedStep, Itanium, およびPentium は Intel Corporationまたは子会社の米国およびその他の国における商標または登録商標です。
Linuxは、Linus Torvaldsの米国およびその他の国における登録商標です。PowerLinux is a trademark of International Business Machines Corp. The registered trademark Linux is used pursuant to a sublicense from LMI, the exclusive licensee of Linus Torvalds, owner of the mark on a world-wide basis.
Microsoft, Windows, Windows NT および Windowsロゴは Microsoft Corporationの米国およびその他の国における商標です。
ITILはAXELOS Limitedの登録商標です。
UNIXはThe Open Groupの米国およびその他の国における登録商標です。
Cell Broadband Engineは、Sony Computer Entertainment, Inc.の米国およびその他の国における商標であり、同社の許諾を受けて使用しています。
JavaおよびすべてのJava関連の商標およびロゴは Oracleやその関連会社の米国およびその他の国における商標または登録商標です。
Linear Tape-Open, LTO, LTOロゴ, UltriumおよびUltriumロゴは、HP, IBM Corp.およびQuantumの米国およびその他の国における商標です。
VMware, the VMware logo, VMware Cloud Foundation, VMware Cloud Foundation Service, VMware vCenter ServerおよびVMware vSphereは、VMware, Inc.またはその子会社の米国およびその他の地域における登録商標または商標です。
IBM Blockchain / © 2018 IBM Corporation 40