Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
HyperLedger Today
Seiji Takahashi
October 03, 2017
Technology
0
4.6k
HyperLedger Today
blockchain.tokyo#1の発表資料 by @__timakin__
Seiji Takahashi
October 03, 2017
Tweet
Share
More Decks by Seiji Takahashi
See All by Seiji Takahashi
timakin
5
2k
timakin
5
4.2k
timakin
13
4.2k
timakin
2
7k
timakin
2
1k
timakin
5
4.3k
timakin
1
36
timakin
1
30
timakin
1
1.6k
Other Decks in Technology
See All in Technology
miura55
0
190
prog893
0
160
shwars
0
110
finengine
0
280
kentaro
2
580
seto_hi
3
990
kawaguti
2
410
sei88888
0
470
hiyosi
0
120
ihcomega56
2
940
sumi
1
290
hagifoo
0
100
Featured
See All Featured
dougneiner
119
8k
jnunemaker
PRO
40
4.7k
addyosmani
1346
200k
sstephenson
146
12k
holman
288
130k
sferik
613
55k
myddelton
109
11k
jlugia
217
16k
lauravandoore
440
29k
ddemaree
273
31k
marktimemedia
7
460
rasmusluckow
318
19k
Transcript
HYPER LEDGER TODAY @__timakin__ / blockchain.tokyo#1
ࣗݾհ • Seiji Takahashi • Github: timakin / Twitter: @__timakin__
• Gunosy Inc. Business Development Team • Go / Swift • Just a little bit contributed to Go.
https://www.slideshare.net/seijitakahashi92/concept-of- blockchain-decentralized-application
ΞδΣϯμ • HyperLedgerͱʁ • HyperLedgerͷϓϩδΣΫτҰཡ • HyperLedgerͷ։ൃʹؔͯ͠
HyperLedgerͱʁ
HyperLedgerͱʁ • ۚ༥Λத৺ͱͨ͠൚ۀछͰͷϒϩοΫνΣʔϯ ٕज़ͷߴԽΛਐΊΔڞಉϓϩδΣΫτ • Supported by The Linux Foundation
• ίϯιʔγΞϜܕͷϒϩοΫνΣʔϯ • IBMɺIntelɺJ.P.MorganɺMUFGɺNECɺΞΫ ηϯνϡΞɺ࢜௨ɺཱetc…େاۀ͕ϝϯ όʔͱͳ͍ͬͯΔ
HyperLedgerͱʁ ref: http://gaiax-blockchain.com/hyperledger-project
HyperLedgerͷߏཁૉ ref: https://docs.google.com/document/d/1Z4M_qwILLRehPbVRUsJ3OF8Iir-gqS-ZYe7W-LE9gnE/pub
HyperLedger Projects Fabric PBFTʹΑΔߴͳ߹ҙܗ খϊʔυͰՄೳͳӡ༻ ϝϯόʔγοϓ੍ʹΑΔԾ௨՟ͷෆࡏ ։ൃසߴ͘ɺ࣮ূ࣮ݧࡁΈ*ɻGoɻ * http://www.jpx.co.jp/corporate/research-study/working-paper/tvdivq0000008q5y-att/ JPX_working_paper_No15.pdf
HyperLedger Fabric Network ref: https://www.ibm.com/developerworks/jp/cloud/library/j_cl-blockchain-basics-bluemix/
PBFT (Practical Byzantine Fault Tolelance) ref: https://www.ibm.com/developerworks/jp/cloud/library/j_cl-blockchain-basics-bluemix/
ChainCode • εϚʔτίϯτϥΫτɻGo͔JavaͰΠϯλʔ ϑΣʔεΛ࣮͢ΕϒϩοΫνΣʔϯ্Ͱ࣮ߦ ՄೳͳϓϩάϥϜɻ
ChainCode
World State • ChainCode͔ΒR/WͰ͖ΔKVSɻJSONจࣈྻΛ ֨ೲͰ͖Δɻ • ϑΝΠϧΛอଘ͍ͨ͠߹όΠφϦจࣈྻʹ มͯ͠ɺChainCode্͔Βࢀর͢Δ͜ͱʹͳ Δɻ
shim.ChaincodeStubInterface • chaincodeͰWorldStateɺLedgerɺೝূใͳ ͲʹΞΫηε͢ΔAPI • Init, Invokeͷ྆ํͰୈҰҾʹͬͯ͘Δɻ • Get/Put/Delete StateͰWorld
StateʹΞΫηε • shim.Success, shim.ErrorͰres payload writer͕ ϥοϓ͞Ε͍ͯΔɻʢΤϥʔίʔυ200, 400, 500ͷΈʣ
HyperLedger Projects Iroha ຊͷιϥϛπגࣜձࣾ։ൃओಋͷϒϩοΫνΣʔϯɻ Ҭ௨՟ɺֶ௨՟ͳͲʹ࣮༻͞ΕͯΔɻ ϞόΠϧSDKɺσδλϧΞηοτൃߦʹॏΛஔ͍ͯ ͍Δɻ Fabricͱ߹ҙܗΞϧΰϦζϜ͕एׯҧ͏ɻ C++ɻ
Sumeragi ref: https://github.com/hyperledger/iroha/blob/master/docs/iroha_whitepaper.md As 2f+1 signatures are needed to confirm
a transaction, under the normal case only 2f+1 peers are involved in transaction validation; the remaining peers only join the validation when faults are exhibited in peers.
HyperLedger Projects Indy ϒϩοΫνΣʔϯ্ͰσδλϧIDΛཧ͢Δɻ BitcoinEthereumͱҟͳΓɺIDཧͷͨΊͷಠࣗ ͷாΛ࣋ͭɻ IDͷόϦσʔγϣϯɺHyperLedgerՃໍલʹ σδλϧIDͰ͋ΔSovrin IDΛ͍ͯͨ͠ɺ Sovrin
FoundationͷόϦσʔλʔϊʔυ (Permissioned)্ͰߦΘΕΔɻ
Indy Access Control IDͷࢀরࣗମPublicʹͰ͖Δ͕ɺόϦσʔγϣϯೝՄΛड͚ͨ όϦσʔλʔϊʔυ͚͕ͩͰ͖Δɻ
RBFT (Redundunt Byzantine Fault Tolelance) ref: https://pakupaku.me/plaublin/rbft/5000a297.pdf
HyperLedgerͷ։ൃʹ͍ͭͯ Development ϏοΫϦυοΩϦMakefileͰdockerͷίϯςφϏϧυ͕Ӆṭ ͞ΕͯΔɻ kubernetesʹҠߦ͠Α͏ͱ͍͏ٞIssueʹ্͕ͬͯΔ Fablic, Iroha, Sawtooth, IndyͲΕίϛοτࣗମ׆ൃʹߦ ΘΕ͍ͯΔɻ
HyperLedgerͷ։ൃʹؔͯ͠ ίϛϡχςΟ https://chat.hyperledger.org͔ϝʔϦϯάϦετͰ֤ϓϩ δΣΫτͷ࣭ɾਐḿ֬ೝ͕ߦΘΕ͍ͯΔɻ JIRAͰνέοτͬͯλεΫཧ͞Ε͓ͯΓɺਐḿঢ়گ͕ެ ։͞Ε͍ͯΔɻ https://jira.hyperledger.org/secure/Dashboard.jspa? selectPageId=10104 https://wiki.hyperledger.org/
HyperLedgerͷ։ൃʹؔͯ͠ https://wiki.hyperledger.org/
HyperLedgerͷ։ൃʹ͍ͭͯ Composer Development framework/tools for building Blockchain business networks
HyperLedgerͷ։ൃʹ͍ͭͯ Composer Web UIͰϒϩοΫνΣʔϯ(Fabric)্ʹͤΔΞϓϦ͕࡞ΕΔɻ ҎԼ4ͭͷߏཁૉͰΓཱͭɻ Model: τϥϯβΫγϣϯͰѻ͏ΤϯςΟςΟ Access Control: Read/Writeݖݶͷઃఆ
Script: νΣʔϯ্Ͱ࣮ߦ͞ΕΔεΫϦϓτɻJSɻ Query: εΫϦϓτ෦ͰݺΔ Modelఆٛʹج͍ͮͯREST APIΛߏஙͨ͠ΓϢχοτςετՄೳ
·ͱΊ • ίϯιʔγΞϜܕϒϩοΫνΣʔϯ࣮ͷ HyperLedger֤छϓϩδΣΫτ͕׆ൃʹ ։ൃ͞Εͯ·͢ɻ • ύϑΥʔϚϯε࣮ূ࣮ݧ͕͞Ε͓ͯΓɺ ۚ༥ʹ͓͍࣮ͯ༻ੑΛײ͡Δɻ • Fabric
+ Composerͷ։ൃڥ͕͙͢৮ΕΔͷ ͰɺؾʹͳΔਓࢼͯ͠Έ͍ͯͩ͘͞ɻ