Upgrade to Pro — share decks privately, control downloads, hide ads and more …

HyperLedger Today

HyperLedger Today

blockchain.tokyo#1の発表資料 by @__timakin__

5bfed9aa3a9ebccb0c0f0cb65ee9e012?s=128

Seiji Takahashi

October 03, 2017
Tweet

Transcript

  1. HYPER
 LEDGER TODAY @__timakin__ / blockchain.tokyo#1

  2. ࣗݾ঺հ • Seiji Takahashi • Github: timakin / Twitter: @__timakin__

    • Gunosy Inc. Business Development Team • Go / Swift • Just a little bit contributed to Go.
  3. https://www.slideshare.net/seijitakahashi92/concept-of- blockchain-decentralized-application

  4. ΞδΣϯμ • HyperLedgerͱ͸ʁ • HyperLedgerͷϓϩδΣΫτҰཡ • HyperLedgerͷ։ൃʹؔͯ͠

  5. HyperLedgerͱ͸ʁ

  6. HyperLedgerͱ͸ʁ • ۚ༥Λத৺ͱͨ͠൚ۀछͰͷϒϩοΫνΣʔϯ ٕज़ͷߴ౓ԽΛਐΊΔڞಉϓϩδΣΫτ • Supported by The Linux Foundation

    • ίϯιʔγΞϜܕͷϒϩοΫνΣʔϯ • IBMɺIntelɺJ.P.MorganɺMUFGɺNECɺΞΫ ηϯνϡΞɺ෋࢜௨ɺ೔ཱetc…େاۀ͕ϝϯ όʔͱͳ͍ͬͯΔ
  7. HyperLedgerͱ͸ʁ ref: http://gaiax-blockchain.com/hyperledger-project

  8. HyperLedgerͷߏ੒ཁૉ ref: https://docs.google.com/document/d/1Z4M_qwILLRehPbVRUsJ3OF8Iir-gqS-ZYe7W-LE9gnE/pub

  9. HyperLedger Projects Fabric PBFTʹΑΔߴ଎ͳ߹ҙܗ੒
 খ਺ϊʔυͰՄೳͳӡ༻
 ϝϯόʔγοϓ੍ʹΑΔԾ૝௨՟ͷෆࡏ
 ։ൃස౓͸ߴ͘ɺ࣮ূ࣮ݧࡁΈ*ɻGoɻ
 * http://www.jpx.co.jp/corporate/research-study/working-paper/tvdivq0000008q5y-att/ JPX_working_paper_No15.pdf


  10. HyperLedger Fabric Network ref: https://www.ibm.com/developerworks/jp/cloud/library/j_cl-blockchain-basics-bluemix/

  11. PBFT (Practical Byzantine Fault Tolelance) ref: https://www.ibm.com/developerworks/jp/cloud/library/j_cl-blockchain-basics-bluemix/

  12. ChainCode • εϚʔτίϯτϥΫτɻGo͔JavaͰΠϯλʔ ϑΣʔεΛ࣮૷͢Ε͹ϒϩοΫνΣʔϯ্Ͱ࣮ߦ ՄೳͳϓϩάϥϜɻ

  13. ChainCode

  14. World State • ChainCode͔ΒR/WͰ͖ΔKVSɻJSONจࣈྻΛ ֨ೲͰ͖Δɻ • ϑΝΠϧΛอଘ͍ͨ͠৔߹͸όΠφϦจࣈྻʹ ม׵ͯ͠ɺChainCode্͔Βࢀর͢Δ͜ͱʹͳ Δɻ

  15. shim.ChaincodeStubInterface • chaincodeͰWorldStateɺLedgerɺೝূ৘ใͳ ͲʹΞΫηε͢ΔAPI • Init, Invokeͷ྆ํͰୈҰҾ਺ʹ౉ͬͯ͘Δɻ • Get/Put/Delete StateͰWorld

    StateʹΞΫηε • shim.Success, shim.ErrorͰres payload writer͕ ϥοϓ͞Ε͍ͯΔɻʢΤϥʔίʔυ͸200, 400, 500ͷΈʣ
  16. HyperLedger Projects Iroha ೔ຊͷιϥϛπגࣜձࣾ։ൃओಋͷϒϩοΫνΣʔϯɻ ஍Ҭ௨՟ɺֶ಺௨՟ͳͲʹ࣮༻͞ΕͯΔɻ
 ϞόΠϧSDKɺσδλϧΞηοτൃߦʹॏ఺Λஔ͍ͯ ͍Δɻ Fabricͱ͸߹ҙܗ੒ΞϧΰϦζϜ͕एׯҧ͏ɻ
 C++ɻ

  17. 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.
  18. HyperLedger Projects Indy ϒϩοΫνΣʔϯ্ͰσδλϧIDΛ؅ཧ͢Δɻ Bitcoin΍Ethereumͱ͸ҟͳΓɺID؅ཧͷͨΊͷಠࣗ ͷ୆ாΛ࣋ͭɻ IDͷόϦσʔγϣϯ΋ɺHyperLedgerՃໍલʹ
 σδλϧIDͰ͋ΔSovrin IDΛ؅׋͍ͯͨ͠ɺ
 Sovrin

    FoundationͷόϦσʔλʔϊʔυ (Permissioned)্ͰߦΘΕΔɻ
  19. Indy Access Control IDͷࢀরࣗମ͸PublicʹͰ͖Δ͕ɺόϦσʔγϣϯ͸ೝՄΛड͚ͨ
 όϦσʔλʔϊʔυ͚͕ͩͰ͖Δɻ

  20. RBFT (Redundunt Byzantine Fault Tolelance) ref: https://pakupaku.me/plaublin/rbft/5000a297.pdf

  21. HyperLedgerͷ։ൃʹ͍ͭͯ Development ϏοΫϦυοΩϦMakefileͰdockerͷίϯςφϏϧυ͕Ӆṭ ͞ΕͯΔɻ
 kubernetesʹҠߦ͠Α͏ͱ͍͏ٞ୊΋Issueʹ͸্͕ͬͯΔ Fablic, Iroha, Sawtooth, IndyͲΕ΋ίϛοτࣗମ͸׆ൃʹߦ ΘΕ͍ͯΔɻ

  22. HyperLedgerͷ։ൃʹؔͯ͠ ίϛϡχςΟ https://chat.hyperledger.org͔ϝʔϦϯάϦετͰ֤ϓϩ δΣΫτͷ࣭໰ɾਐḿ֬ೝ౳͕ߦΘΕ͍ͯΔɻ JIRAͰνέοτ੾ͬͯλεΫ؅ཧ͞Ε͓ͯΓɺਐḿঢ়گ͕ެ ։͞Ε͍ͯΔɻ https://jira.hyperledger.org/secure/Dashboard.jspa? selectPageId=10104 https://wiki.hyperledger.org/

  23. HyperLedgerͷ։ൃʹؔͯ͠ https://wiki.hyperledger.org/

  24. HyperLedgerͷ։ൃʹ͍ͭͯ Composer Development framework/tools for building Blockchain business networks

  25. HyperLedgerͷ։ൃʹ͍ͭͯ Composer Web UIͰϒϩοΫνΣʔϯ(Fabric)্ʹ৐ͤΔΞϓϦ͕࡞ΕΔɻ ҎԼ4ͭͷߏ੒ཁૉͰ੒Γཱͭɻ Model: τϥϯβΫγϣϯͰѻ͏ΤϯςΟςΟ Access Control: Read/Writeݖݶͷઃఆ

    Script: νΣʔϯ্Ͱ࣮ߦ͞ΕΔεΫϦϓτɻJSɻ Query: εΫϦϓτ಺෦Ͱݺ΂Δ Modelఆٛʹج͍ͮͯREST APIΛߏஙͨ͠ΓϢχοτςετ΋Մೳ
  26. ·ͱΊ • ίϯιʔγΞϜܕϒϩοΫνΣʔϯ࣮૷ͷ HyperLedger͸֤छϓϩδΣΫτ͕׆ൃʹ
 ։ൃ͞Εͯ·͢ɻ • ύϑΥʔϚϯε౳࣮ূ࣮ݧ͕͞Ε͓ͯΓɺ
 ۚ༥෼໺ʹ͓͍ͯ͸࣮༻ੑΛײ͡Δɻ • Fabric

    + Composerͷ։ൃ؀ڥ͕͙͢৮ΕΔͷ ͰɺؾʹͳΔਓ͸ࢼͯ͠Έ͍ͯͩ͘͞ɻ