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

HyperLedger Today

HyperLedger Today

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

Seiji Takahashi

October 03, 2017
Tweet

More Decks by Seiji Takahashi

Other Decks in Technology

Transcript

  1. HYPER

    LEDGER
    TODAY
    @__timakin__ / blockchain.tokyo#1

    View Slide

  2. ࣗݾ঺հ
    • Seiji Takahashi
    • Github: timakin / Twitter: @__timakin__
    • Gunosy Inc. Business Development Team
    • Go / Swift
    • Just a little bit contributed to Go.

    View Slide

  3. https://www.slideshare.net/seijitakahashi92/concept-of-
    blockchain-decentralized-application

    View Slide

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

    View Slide

  5. HyperLedgerͱ͸ʁ

    View Slide

  6. HyperLedgerͱ͸ʁ
    • ۚ༥Λத৺ͱͨ͠൚ۀछͰͷϒϩοΫνΣʔϯ
    ٕज़ͷߴ౓ԽΛਐΊΔڞಉϓϩδΣΫτ
    • Supported by The Linux Foundation
    • ίϯιʔγΞϜܕͷϒϩοΫνΣʔϯ
    • IBMɺIntelɺJ.P.MorganɺMUFGɺNECɺΞΫ
    ηϯνϡΞɺ෋࢜௨ɺ೔ཱetc…େاۀ͕ϝϯ
    όʔͱͳ͍ͬͯΔ

    View Slide

  7. HyperLedgerͱ͸ʁ
    ref: http://gaiax-blockchain.com/hyperledger-project

    View Slide

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

    View Slide

  9. HyperLedger Projects
    Fabric
    PBFTʹΑΔߴ଎ͳ߹ҙܗ੒

    খ਺ϊʔυͰՄೳͳӡ༻

    ϝϯόʔγοϓ੍ʹΑΔԾ૝௨՟ͷෆࡏ

    ։ൃස౓͸ߴ͘ɺ࣮ূ࣮ݧࡁΈ*ɻGoɻ

    * http://www.jpx.co.jp/corporate/research-study/working-paper/tvdivq0000008q5y-att/
    JPX_working_paper_No15.pdf


    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  13. ChainCode

    View Slide

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

    View Slide

  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ͷΈʣ

    View Slide

  16. HyperLedger Projects
    Iroha
    ೔ຊͷιϥϛπגࣜձࣾ։ൃओಋͷϒϩοΫνΣʔϯɻ
    ஍Ҭ௨՟ɺֶ಺௨՟ͳͲʹ࣮༻͞ΕͯΔɻ

    ϞόΠϧSDKɺσδλϧΞηοτൃߦʹॏ఺Λஔ͍ͯ
    ͍Δɻ
    Fabricͱ͸߹ҙܗ੒ΞϧΰϦζϜ͕एׯҧ͏ɻ

    C++ɻ

    View Slide

  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.

    View Slide

  18. HyperLedger Projects
    Indy
    ϒϩοΫνΣʔϯ্ͰσδλϧIDΛ؅ཧ͢Δɻ
    Bitcoin΍Ethereumͱ͸ҟͳΓɺID؅ཧͷͨΊͷಠࣗ
    ͷ୆ாΛ࣋ͭɻ
    IDͷόϦσʔγϣϯ΋ɺHyperLedgerՃໍલʹ

    σδλϧIDͰ͋ΔSovrin IDΛ؅׋͍ͯͨ͠ɺ

    Sovrin FoundationͷόϦσʔλʔϊʔυ
    (Permissioned)্ͰߦΘΕΔɻ

    View Slide

  19. Indy Access Control
    IDͷࢀরࣗମ͸PublicʹͰ͖Δ͕ɺόϦσʔγϣϯ͸ೝՄΛड͚ͨ

    όϦσʔλʔϊʔυ͚͕ͩͰ͖Δɻ

    View Slide

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

    View Slide

  21. HyperLedgerͷ։ൃʹ͍ͭͯ
    Development
    ϏοΫϦυοΩϦMakefileͰdockerͷίϯςφϏϧυ͕Ӆṭ
    ͞ΕͯΔɻ

    kubernetesʹҠߦ͠Α͏ͱ͍͏ٞ୊΋Issueʹ͸্͕ͬͯΔ
    Fablic, Iroha, Sawtooth, IndyͲΕ΋ίϛοτࣗମ͸׆ൃʹߦ
    ΘΕ͍ͯΔɻ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  25. HyperLedgerͷ։ൃʹ͍ͭͯ
    Composer
    Web UIͰϒϩοΫνΣʔϯ(Fabric)্ʹ৐ͤΔΞϓϦ͕࡞ΕΔɻ
    ҎԼ4ͭͷߏ੒ཁૉͰ੒Γཱͭɻ
    Model: τϥϯβΫγϣϯͰѻ͏ΤϯςΟςΟ
    Access Control: Read/Writeݖݶͷઃఆ
    Script: νΣʔϯ্Ͱ࣮ߦ͞ΕΔεΫϦϓτɻJSɻ
    Query: εΫϦϓτ಺෦Ͱݺ΂Δ
    Modelఆٛʹج͍ͮͯREST APIΛߏஙͨ͠ΓϢχοτςετ΋Մೳ

    View Slide

  26. ·ͱΊ
    • ίϯιʔγΞϜܕϒϩοΫνΣʔϯ࣮૷ͷ
    HyperLedger͸֤छϓϩδΣΫτ͕׆ൃʹ

    ։ൃ͞Εͯ·͢ɻ
    • ύϑΥʔϚϯε౳࣮ূ࣮ݧ͕͞Ε͓ͯΓɺ

    ۚ༥෼໺ʹ͓͍ͯ͸࣮༻ੑΛײ͡Δɻ
    • Fabric + Composerͷ։ൃ؀ڥ͕͙͢৮ΕΔͷ
    ͰɺؾʹͳΔਓ͸ࢼͯ͠Έ͍ͯͩ͘͞ɻ

    View Slide