Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Hyperledger Fabric ハンズオン手順
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Taiji HAGINO
PRO
June 12, 2019
Technology
350
0
Share
Hyperledger Fabric ハンズオン手順
本資料は5月29日、6月12日、7月3日のIBM Developer Dojo用の資料です。
Taiji HAGINO
PRO
June 12, 2019
More Decks by Taiji HAGINO
See All by Taiji HAGINO
Datadogで実現するマルチレイヤーObservability入門
taiponrock
PRO
0
130
Datadog Cloud Cost Management で実現するFinOps
taiponrock
PRO
0
270
5分で知るMicrosoft Ignite
taiponrock
PRO
0
540
Bridging the Gap:Why Developer Relations and Product Management Must Work Together
taiponrock
PRO
0
67
What Four Approaches Taught Me About Developer Productivity
taiponrock
PRO
0
43
Automatic Creation of Azure Environment Configuration Diagrams! with Datadog Cloudcraft
taiponrock
PRO
0
96
VS Code の静的分析でリアルタイムのコードフィードバックを取得
taiponrock
PRO
0
230
Backstage of Enterprise Conference
taiponrock
PRO
1
240
どの種は何の花を咲かす?DevRelのターゲットオーディエンスを知ることの意味
taiponrock
PRO
2
460
Other Decks in Technology
See All in Technology
GoとSIMDとWasmの今。
askua
3
490
ITエンジニアを取り巻く環境とキャリアパス / A career path for Japanese IT engineers
takatama
4
1.8k
【Gen-AX】20260530開催_JJUG CCC 2026 Spring
genax
0
410
Claude Codeを組織で使いこなす— サーバサイドAIエージェント運用の実践知
techtekt
PRO
0
190
個人最適 から 全体最適 へ AI情報共有会・AIギルド・AI-DLC で進める カンリーの組織展開
rfdnxbro
0
1.1k
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.8k
トークン数だけでは測れない — Claude Code 組織展開の効果検証から学んだこと
makikub
0
120
AI と創る新たな世界 / A New World Created with AI
ks91
PRO
0
100
Unlocking the Apps
pimterry
0
190
BigQuery の Cross-cloud Lakehouse への歩み
phaya72
2
540
生成 AI × MCP で切り拓く次世代 SRE!自律型運用への挑戦と開発者体験の進化
_awache
0
120
実装は速くなった、レビューはどうする? ― 自身のレビューをAIで再現させるサーヴァントエンジニアリングのすゝめ / Implementation got faster. So what about reviews? — An invitation to Servant Engineering: Recreating your own code reviews with AI
nrslib
6
3.2k
Featured
See All Featured
Facilitating Awesome Meetings
lara
57
6.9k
Believing is Seeing
oripsolob
1
140
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Exploring anti-patterns in Rails
aemeredith
3
390
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.6k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
200
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
Paper Plane
katiecoart
PRO
1
51k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
380
Product Roadmaps are Hard
iamctodd
PRO
55
12k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
320
Transcript
2019/06/19 10(21 1 / 14 ϖʔδ about:blank 1.IBPͷωοτϫʔΫىಈ IBM CloudͷΧλϩά͔ΒBlockchain
Platform v2.0Λબ https:/ /cloud.ibm.com/catalog Standard PlanΛબͯ͠࡞ΛΫϦοΫ →IBPͷ࡞ϖʔδʹҠಈ͢Δɻ σϓϩΠϝϞ
2019/06/19 10(21 2 / 14 ϖʔδ about:blank DallasͷσʔληϯλʔͰIKSͷΫϥελʔΛ࡞͢Δඞཁ͕͋Δɻ طʹߏஙࡁΈͷΫϥελʔར༻Մೳɻ ͨͩ͠ɺKubernetesͷόʔδϣϯv1.11Ҏ্ਪɻ
IKSͷFreeϓϥϯΛબ͢Ε30ؒແྉͰར༻͢Δ͜ͱ͕Ͱ͖Δɻ IKSͷΫϥελʔબͷϓϧμϯͷ෦ͰϒϥβʹΑͬͯΫϥελ͕දࣔ͞Εͳ͍Մೳੑ͕͋ Δɻ ϒϥβΛ࠷৽όʔδϣϯʹΞοϓσʔτ͢Δ͔ɺଞͷϒϥβΛར༻͢Δ͔Ͱରॲ͢Δɻ IKSͰClusterΛ͍࣋ͬͯͳ͍߹create a new clusterΛΫϦοΫɻ IKSͷΫϥελ࡞ϖʔδͷλϒ͕৽͘͠։͘ɻ ແྉϓϥϯΛબ͠ɺϩέʔγϣϯ͕μϥεʹͳ͍ͬͯΔ͜ͱΛ֬ೝͷ্ɺ࡞ΛΫϦοΫɻ Ϋϥελ͕࡞͞ΕΔ·Ͱ30ɻ
2019/06/19 10(21 3 / 14 ϖʔδ about:blank Ϋϥελͷߏங͕ྃ͢ΔͱworkkerϊʔυͷKuberntesͷόʔδϣϯ͕දࣔ͞ΕΔɻ όʔδϣϯ͕1.11Ҏ্Ͱͳ͍ͱBlockchainͷϊʔυཱ͕ͯΒΕͨʹͨΊɺόʔδϣϯͷߋ৽͕ඞ ཁɻ
·ͣԼਤʹै͍ɺΫϥελͷόʔδϣϯͷߋ৽Λߦ͏ɻΞφϯεʹै͍ɺ1࣌ؒޙɺworkerϊʔ υͷϝχϡʔ͔Βόʔδϣϯߋ৽Λߦ͏ͱworkerϊʔυͷόʔδϣϯ1.11Ҏ্ʹΞοϓσʔτ ͢Δ͜ͱ͕Ͱ͖ΔɻσϑΥϧτͷىಈόʔδϣϯ2/25ݱࡏv1.11ͷͨΊɺόʔδϣϯΞοϓ ෆཁɻ ΫϥελΛબ͠ɺDeploy to clusterΛΫϦοΫɻ ͦͷޙɺLaunch the IBM Blockchain PlatformΛΫϦοΫ
2019/06/19 10(21 4 / 14 ϖʔδ about:blank IBPͷཧίϯιʔϧը໘ 2.ϊʔυ࡞ ࢀߟใʢӳޠ൛ͷΈʣ
https:/ /cloud.ibm.com/docs/services/blockchain/howto?topic=blockchain-ibp-console-build- network&locale=en#ibp-console-build-network (1)CAϊʔυͷ࡞ Blockchain ωοτϫʔΫʹࢀՃ͢Δ৫ͷCAΛىಈ͠ɺCAΛͬͯɺൿີ伴ূ໌ॻΛൃߦ͠ ͯɺ ଞͷϊʔυΛىಈ͍ͯ͘͠ɻ ཧίϯιʔϧͷࠨϝχϡʔͷNodesΛબɻ Add Certificate AuthorityΛΫϦοΫɻ Create a new Certificate AuthorityΛબͯ͠ɺNextΛΫϦοΫɻ Display NameΛ"Org1 CA"ͱهೖɻ
2019/06/19 10(21 5 / 14 ϖʔδ about:blank Enrollment IdΛadminɺsecretΛadminpwͱͯ͠NextΛΫϦοΫɻ ࠷ޙʹsubmitΛԡ͢ͱCAϊʔυ͕࡞͞ΕΔɻ
ಉ༷ͷཁྖͰOrderer༻ͷCA࡞͓ͯ͘͠ɻ (2)adminϢʔβͷ࡞ɻ (1)Ͱ࡞ͨ͠CAϊadminϢʔβΛ࡞͢Δɻ(1)Ͱ࡞ͨ͠σϑΥϧτϢʔβΛͦͷ··ར༻͢Δ ͷɺ ɹηΩϡϦςΟ؍ͰΑΖ͘͠ͳ͍ɻ (1)Ͱ࡞ͨ͠Org1 CAΛબɻ Register UserΛΫϦοΫɻ Enrollment ID"org1admin"Secret"org1adminpw"Ͱ࡞͢Δɻ ϢʔβλΠϓClientΛબɻAffiliationαϯϓϧͰར༻ͳ͍ͨΊɺબࢶ͔ΒҙͷΛҒ Ϳɻ Φϓγϣϯཝهೖͷ··SubmitΛΫϦοΫ͢ΔͱϢʔβ͕࡞͞ΕΔɻ ಉ༷ʹPeerߏங༻ͷϢʔβΛ࡞͢Δɻ Enrollment ID"peer1"Secretpeer1pwͰϢʔβλΠϓpeerΛબ͢Δɻ Ordererಉ༷ʹordereradminͱorderer1Ϣʔβͷ2ͭΛ࡞͢Δɻ (2)৫(MSP)ͷ࡞ɻ IBPͷཧίϯιʔϧͷOrganizationsλϒΛબ͢Δɻ Create MSP definitionΛબ͢Δɻ Display NameΛOrg1 MSPɺMSPIDΛorg1mspͰηοτ͢Δɻ
2019/06/19 10(21 6 / 14 ϖʔδ about:blank CAͷબཝͰઌ΄Ͳ࡞ͨ͠Org1 CAΛબ͢Δɻ Enrollment
IDͱSecretorg1adminͱorg1adminpwʹมߋ͠ɺGenerateϘλϯΛԡ͢ɻ IBPͷཧίϯιʔϧͷwalletଟͰ࡞ͨ͠ϢʔβΛ֬ೝ͢Δ͜ͱ͕Ͱ͖Δɻ ൿີ伴ͱূ໌ॻΤΫεϙʔτͯ͠VSCodeͱͷଓʹར༻͢Δɻ ͜ͷwalletϒϥβͷϩʔΧϧετϨʔδ্ʹอଘ͞Ε͍ͯΔ͚ͩͰɺIKS্ʹอଘ͞Ε͍ͯͳ ͍ͨΊɺ ϢʔβࣗͰΤΫεϙʔτͯ͠ཧ͢Δඞཁ͕͋Δɻ ϒϥβͷཤྺΛআͨ͠ΓɺΩϟογϡΛআ͢Δͱwalletͷσʔλ͕ͳ͘ͳΓɺϊʔυʹΞ ΫηεͰ͖ͳ͘ͳͬͯ͠·͏ͷͰɺ࡞ͨ͠walletͷσʔλඞͣΤΫεϙʔτͯ͠όοΫΞοϓ Λऔಘ͓ͯ͘͠ඞཁ͕͋Δɻ ࠷ޙʹCreate MSPϘλϯΛԡ͢ɻ OrganizationsʹOrg1 MSP͕࡞͞ΕΔɻ ಉ༷ʹOrderer MSP࡞͓ͯ͘͠ɻ (4)PeerɺOrdererϊʔυͷ࡞ɻ IBPͷཧίϯιʔϧͷNodesλϒΛબ͠Add PeerΛબ͢Δɻ display NamePeer Org1ʹઃఆ͢Δɻ CAOrg1 CAɺEnrollment IDͱSecretPeerͷ࡞༻ʹ࡞ͨ͠peer1ϢʔβΛࢦఆ͠NextΛબ ɻ
2019/06/19 10(21 7 / 14 ϖʔδ about:blank TLSͷཝEnrollment IDadminɺSecretadminpwΛબ͢ΔɻʢΦϓγϣϯػೳͷͨΊʣ ࠷ޙʹIdentityΛOrg1
Adminʹͯ͠NextɺSubmitΛબ͢ΔɻPeer͕࡞͞ΕΔɻ ͜͜·ͰͰPeer1ɺOrderer1ɺCA͕2࡞Ͱ͖͍ͯΔ͜ͱΛNodesλϒͰ֬ೝ͢Δɻ (5)࡞ͨ͠৫ΛOrdererͷίϯιʔγΞϜϝϯόʔՃ͢Δɻ
2019/06/19 10(21 8 / 14 ϖʔδ about:blank IBPͷཧίϯιʔϧͷNodesλϒ͔Β࡞ͨ͠OrdererΛબ͢Δɻ Consortium MembersͷAdd
OrganizationΛબ͢Δɻ Org1 MSPΛબͯ͠ɺSubmitΛΫϦοΫ͢Δɻ ࢀՃ༧ఆͷ৫ΛશͯConsortium Memberʹొͯ͠ஔ͔ͳ͍ͱνϟωϧͷ࡞ͰΤϥʔ͕ൃੜ ͢Δɻ (6)νϟωϧͷ࡞ IBPͷίϯιʔϧͷࠨϝχϡʔը໘͔ΒChannelsΛબ͠ɺCreate channelΛબ͢Δɻ ҎԼͷΑ͏ʹΛೖྗ͠ɺAddϘλϯΛԡ͢ɺOrg1MSPʹର͢Δݖݶͷઃఆཝ͕දࣔ͞ΕΔͷ Ͱɺ OperatorʹνΣοΫΛೖΕɺCreate ChannelϘλϯΛબ͢Δɻ
2019/06/19 10(21 9 / 14 ϖʔδ about:blank
2019/06/19 10(21 10 / 14 ϖʔδ about:blank νϟωϧ͕࡞͞ΕΔ͕ɺཧը໘্ʹ·ͩදࣔ͞Εͳ͍ɻ ଓ͍ͯɺJoin channelϘλϯΛΫϦοΫ͢Δɻ
OrdererΛબ͠ɺNext ઌ΄Ͳ࡞ͨ͠channel1Λهೖ͠ɺNextɺ ࠷ޙʹࢀՃͤ͞ΔPeerϊʔυΛબ͠ɺSubmitΛΫϦοΫ͢Δɻ νϟωϧ͕࡞͞ΕΔɻ 3.εϚʔτίϯτϥΫτσϓϩΠ IBPͷࠨϝχϡʔը໘͔ΒSmart contractλϒΛબ͠ɺInstall smart contractΛΫϦοΫɻ Πϯετʔϧ͢ΔνΣʔϯίʔυͷύοέʔδϑΝΠϧ(cds)ϑΝΠϧΛબͯ͠ɺΠϯετʔϧ ͢Δɻ ύοέʔδͷํ๏VSCodeΛར༻͢Δํ๏ͱɺpeerίϚϯυΛར༻͢Δํ๏ͷ2छྨ͕͋Δɻ VSCode͔Βύοέʔδͨ͠ϑΝΠϧInstallͰ͖ͳ͍ 413 (Request Entity Too Large)͕javascriptίϯιʔϧͰฦͬͯདྷ͍ͯͨɻ ༰ྔ͕େ͖͔ͬͨͨΊɺࣦഊͨ͠ͱਪ ޭͨ͠cdsϑΝΠϧ2KBɺࣦഊ͍ͯ͠ΔcdsϑΝΠϧ18.1MB →packaging͢Δࡍʹnode_moduleҰॹʹpackage͞Ε͍ͯͨͨΊɺ༰ྔ͕ංେԽ͍ͯͨ͠ͱਪ ɻ ɹϓϩδΣΫτͷnode_moduleΛআͷ্ɺpackage͢Δͱ27KBʹݮΒ͢͜ͱ͕Ͱ͖ɺ ɹΠϯετʔϧޭͨ͠ɻ
2019/06/19 10(21 11 / 14 ϖʔδ about:blank νΣʔϯίʔυͷinstantiate IBPͷཧը໘ͷࠨϝχϡʔͷSmart contracts͔ΒΠϯετʔϧͨ͠εϚʔτίϯτϥΫτϦετ
Λදࣔ͠ɺӈଆͷϝχϡʔ͔ΒInstantiateΛબɻ εϚʔτίϯτϥΫτΛσϓϩΠ͢ΔνϟωϧΛબ͠ɺEndorsement PolicyΛબͯ͠ɺ Instantiate͢Δࡍʹ࣮ߦ͢Δ໊ؔͱҾΛೖྗͯ͠InstantiateΛΫϦοΫɻ Endorsement Policyγϯϓϧʹ৫Λબ͢ΔύλʔϯͱJSONϑΝΠϧͰࡉ͔͘ࢦఆ͢Δύλ ʔϯͷ2௨Γ͕͋Δɻ Instantiate͕ྃ͢ΔͱInstantiated smart contractͷϦετʹදࣔ͞ΕΔɻ 4.ωοτϫʔΫͷଓ IBPͷཧίϯιʔϧͷࠨϝχϡʔ͔ΒSmart contractsΛબɻ Instantiated smart contractsͷҰཡͷӈϝχϡʔ͔Βconnect with SDKΛબ͠ɺωοτϫʔΫͷ ConfigϑΝΠϧΛμϯϩʔυ͢Δɻ ϑϩϯτΞϓϦ͔ΒIBPͷωοτϫʔΫʹଓ͢ΔͷʹඞཁͳใҎԼ4ͭ ɾConnection Profileʢ্هͰμϯϩʔυͨ͠configϑΝΠϧʣ ɾωοτϫʔΫʹࢀՃ͍ͯ͠Δ৫ͷCAͷadminϢʔβͱsecret(admin/adminpw) ɾଓ͢Δνϟωϧ໊ ɾଓ͢ΔνΣʔϯίʔυ໊ (1)ΞϓϦέʔγϣϯϢʔβͷ࡞
2019/06/19 10(21 12 / 14 ϖʔδ about:blank ɹτϥϯβΫγϣϯʹॺ໊͢ΔͨΊͷΞϓϦέʔγϣϯϢʔβΛ࡞͢Δɻ ɹɾConnection ProfileͷύεΛมߋ
ɹɾCAͷURLΛϙʔτͰࢦఆ ɹɾenrollment IDͱSecretɺOrg1ͷMSP IDΛهࡌɻ node enrollUser.jsͰϢʔβΛ࡞ɻ ผ్package.jsonΛ࡞ͯ͠ɺnpm install͢Δඞཁ͋Γɻ package.jsonfabcarͷαϯϓϧΛίϐʔͯ͠ར༻ɻ (2)τϥϯβΫγϣϯͷૹ৴ ɹ্ه4ͭͷใͱ(1)Ͱ࡞ͨ͠ϢʔβΛͬͯɺτϥϯβΫγϣϯΛૹ৴͢Δɻ ɾconnection ProfileͷύεΛมߋ ɾνϟωϧ໊Λࢦఆ ɾνΣʔϯίʔυ໊Λࢦఆ node invoke.jsͰ࣮ߦ Channel not found....ͱ͍͏Τϥʔ͕ग़Δ͕ɺͦͷޙτϥϯβΫγϣϯਖ਼ৗʹૹ৴͞ΕΔͷͰ ͳ͠ɻ ʢdiscovery Serviceͷόάͱਪʣ 5.VSCode(ධՁ൛)ͱͷଓ (1)network configϑΝΠϧͷμϯϩʔυɻ IBPͷཧը໘ͷsmart contractλϒΛબɻ Instantiated smart contractsͷҰཡ͔ΒσϓϩΠͨ͠εϚʔτίϯτϥΫτΛબ͠ɺӈͷϝχϡ ʔ͔Βconnect SDKΛΫϦοΫɻ
2019/06/19 10(21 13 / 14 ϖʔδ about:blank Download Connection ProfileΛΫϦοΫ͢ΔͱɺjsonܗࣜͰnetworkͷconfigϑΝΠϧ͕μϯϩ
ʔυ͞ΕΔɻ (2)ଓ༻ͷൿີ伴ɺূ໌ॻͷ࡞ɻ IBPͷཧը໘ͷWalletλϒΛબɻ ࡞ͨ͠Identity(Org1Admin)Λબ͢Δɻ ը໘ӈଆʹূ໌ॻͱൿີ伴͕දࣔ͞ΕΔɻ VSCodeͰར༻͢Δʹ͜ΕΒͷσʔλΛPEMϑΥʔϚοτʹม͢Δඞཁ͕͋Δɻ ɹ ҎԼͷίϚϯυΛϩʔΧϧͰ࣮ߦ͢ΔͱPEMϑΝΠϧ͕ੜͰ͖Δɻ #export FLAG=$(if [ "$(uname -s)" == "Linux" ]; then echo "-w 0"; else echo "-b 0"; fi) #echo <base64_string> | base64 --decode $FLAG > <key>.pem <base64_string>ʹ্هཧը໘ͷӈଆʹදࣔ͞ΕΔൿີ伴 or ূ໌ॻͷจࣈྻΛೖΕͯɺ <key>ʹҙͷϑΝΠϧ໊Λهࡌ͢Δɻ (3)VSCodeͱIBPͷωοτϫʔΫΛଓ͢Δɻ ͋Β͔͡ΊVSCodeʹIBM Blockchain PlatformͷΞυΦϯΛΠϯετʔϧ͓ͯ͘͠ɻ https:/ /marketplace.visualstudio.com/items?itemName=IBMBlockchain.ibm-blockchain- platform#overview VSCodeͷࠨϝχϡʔ͔ΒIBM Blockchain PlatformΛબɻ Blockchain Connectionsͷӈଆͷ+ϘλϯΛΫϦοΫɻ ଓઌͷωοτϫʔΫ໊ʹҙͷωοτϫʔΫ໊Λબ͢Δɻ ࣍ʹ্هͰμϯϩʔυͨ͠networkͷconfigϑΝΠϧΛϑΝΠϧ͔Βબ͢Δɻ Create a new wallet for an identity with a certificate and private keyΛબ͠ɺwallet໊Λ
2019/06/19 10(21 14 / 14 ϖʔδ about:blank org1adminͱهࡌ͢ΔɻenrollIDͱಉ໊͡લʹࢦఆ͠ͳ͍ͱError͕ग़ྗ͞ΕΔɻ ࠷ޙʹ(2)Ͱ࡞ͨ͠ূ໌ॻͱൿີ伴ͷPEMϑΝΠϧΛબ͢Δͱɻ VSCode͔ΒIBPͷଓ͕Ͱ͖Δɻ
IBP্ͷεϚʔτίϯτϥΫτͷτϥϯβΫγϣϯͷૹ৴͕Ͱ͖Δɻ VSCode v0.3.0ͰϩʔΧϧωοτϫʔΫͷΈεϚʔτίϯτϥΫτͷσϓϩΠ͕Ͱ͖ɺ֎෦ωο τϫʔΫτϥϯβΫγϣϯͷૹ৴ͷΈͰ͖Δɻ ࣮ࡍҎԼͷΑ͏ͳΤϥʔ͕දࣔ͞ΕɺΠϯετʔϧͰ͖Δ͕ɺInstantiationɺτϥϯβΫγϣ ϯͷૹ৴Ͱ͖ͳ͍ɻ※IBPଆͰInstantiationͰ͖ͨɻIBP for ExtensionͷόʔδϣϯΛ0.3.0ɺ VSCodeͷόʔδϣϯΛ1.31ʢIBP for Extensionͷਪόʔδϣϯʣʹͨ͠ΒΤϥʔ͕දࣔ͞Εͳ ͘ͳͬͨɻʢVSCode͔ΒIBPͷωοτϫʔΫʹରͯ͠ΠϯετʔϧͱInstantiationͰ͖ͣɺτ ϥϯβΫγϣϯͷૹ৴͚ͩͰ͖ΔΑ͏ʹͳͬͨʣ