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

Libraの現状と技術面をざっくりと / astudy20191114

Akihito Nakano
November 14, 2019

Libraの現状と技術面をざっくりと / astudy20191114

アスクル社内勉強会で発表した資料です!

Akihito Nakano

November 14, 2019
Tweet

More Decks by Akihito Nakano

Other Decks in Technology

Transcript

  1. ໨࣍ w ൃදͷΰʔϧ w ֓ཁͱݱঢ় w ໨త w खஈ w

    ݱঢ় w ٕज़໘ w ߹ҙΞϧΰϦζϜ w σʔλߏ଄ w ͓ΘΓʹ ɾॳ०࣌఺ͷ৘ใ ɾઈࢍΩϟονΞοϓதͳͷͰ ɹཧղ͕ؒҧͬͯΔͱ͜Ζ͕͋ͬͨΒ͝ΊΜͳ͍͞ʂ
  2. ໨࣍ w ൃදͷΰʔϧ w ֓ཁͱݱঢ় w ໨త w खஈ w

    ݱঢ় w ٕज़໘ w ߹ҙΞϧΰϦζϜ w σʔλߏ଄ w ͓ΘΓʹ
  3. -JCSB w 'BDFCPPL͕։ൃΛओಋ͍ͯ͠ΔԾ૝௨՟ ҉߸ࢿ࢈ ϓϩδΣΫτ w ൃද w IUUQTMJCSBPSH w

    ϗϫΠτϖʔύʔIUUQTMJCSBPSHXIJUFQBQFS w ςΫχΧϧϖʔύʔIUUQTEFWFMPQFSTMJCSBPSHEPDTUIFMJCSBCMPDLDIBJOQBQFS
  4. ໨త՝୊ײ w ԯਓ͕ۜߦޱ࠲Λ΋͍ͬͯͳ͍ w ஍ٿਓޱશମͷ w ւ֎ૹۚͷ஗͞ w ʙӦۀ೔͘Β͍ w

    ݱۚऔҾίετͷߴ͞ w ࠃࡍؒͷ৔߹ɺฏۉ IUUQTMJCSBPSH ͜Εʹ͍ͭͯ͸΋͏গ͠ৄ͘͠ௐ΂ͨͷͰ ࣍ͷεϥΠυͰ঺հ͠·͢
  5. ໨త՝୊ײˠ6OCBOLFEʹ͍ͭͯ w ԯਓதࠃɺΠϯυɺύΩελϯʹಛʹଟ͍ ˞  w ޱ࠲ͷҡ࣋ख਺ྉ͕ߴ͍ ૹۚख਺ྉ͕ߴ͍ͱ͍ͬͨཧ༝΋ ˞ 

    w ͦͷ͏ͪԯਓ͸ܞଳి࿩Λ͍࣋ͬͯΔ w ͨͩ͠ܞଳͱΠϯλʔωοτΞΫηεͷ
 ྆ํΛ͍࣋ͬͯΔਓ͸ͦͷ͏ͪ w ˞ΠϯλʔωοτΞΫηεεϚʔτϑΥϯɺ1$ɺωοτΧϑΣͳͲ w (MPCBM'JOEFYͷϨϙʔτͰ͸σδλϧϖΠϝϯτ͕
 ༗ޮͰ͋Δ͜ͱʹ͍ͭͯݴٴ͞Ε͍ͯΔ 5IF(MPCBM'JOEFY%BUBCBTF IUUQTHMPCBMpOEFYXPSMECBOLPSH ˞ ˞
  6. खஈٕज़ w εςʔϒϧίΠϯ w όεέοτ௨՟ w ௨՟಺༁ͱߏ੒ൺ཰ w ถυϧɺϢʔϩɺ೔ຊԁɺӳϙϯυɺγϯΨϙʔϧυϧ w

    σϏουɾϚʔΧε$&0͸υϧ΍Ϣʔϩ౳ͱରͰϖοά͢ΔՄೳੑ΋ݴٴ  w ಠࣗϒϩοΫνΣʔϯ w ߹ҙΞϧΰϦζϜ-JCSB#'5ɺεϚʔτίϯτϥΫτݴޠ.PWF
  7. खஈӡӦମ੍ w -JCSBڠձ w εΠεʹڌ఺ w $BMJCSBؚࣾΉ༷ʑͳۀքͷࢀՃاۀͰߏ੒ w /10ͳͲͷඇӦར૊৫΋ w

    ൃද౰ॳࣾˠࣾ ઃཱ૯ձ࣌఺ IUUQTMJCSBPSHFO64BTTPDJBUJPOGPVOEJOH@NFNCFST IUUQTMJCSBPSHFO64BTTPDJBUJPODPVODJMQSJODJQMFTPWFSWJFX
  8. ঢ়گ w ใಓ w ถԼӃۚ༥αʔϏεҕһ௕-JCSBͷ։ൃܭըͷఀࢭΛٻΊΔ w (࡞ۀ෦ձٞ௕-JCSBɺن੍্ͷݒ೦ղফ͢Δ·Ͱ࣮ݱ͠ͳ͍ w ถ੓෎͕-JCSBڠձࢀՃاۀ΁จষΛૹ෇ w

    (ࡒ຿লɾதۜ૯ࡋձٞʮਂࠁͳϦεΫʹద੾ʹରॲʯ͢Δ·ͰൃߦΛೝΊͳ͍ํ਑ w ಠ෹ҏ͕-JCSBΛϒϩοΫ͢Δํ਑Λද໌ w ࠃࡍػؔ౳͔Βग़͞Εͨจॻ w (8PSLJOH(SPVQPO4UBCMF$PJOT*OWFTUJHBUJOHUIFJNQBDUPGHMPCBMTUBCMFDPJOT w (ࡒ຿େਉɾதԝۜߦ૯ࡋձٞάϩʔόϧɾεςʔϒϧίΠϯʹؔ͢Δ(ϓϨεϦϦʔε w '"5'.POFZMBVOEFSJOHSJTLTGSPNlTUBCMFDPJOTzBOEPUIFSFNFSHJOHBTTFUT
  9. ঢ়گ w ެௌձ w  Ϧϒϥͷ੹೚ऀσϏουɾϚʔΧεࢯ͕ূݴ w ʮΘΕΘΕ͕ߦಈ͠ͳ͚Ε͹ɺՁ஋؍͕ϑΣΠεϒοΫͷͦΕͱ͸·ͬͨ͘ҟͳΔਓʑ͕؅ཧ͢Δσδλ ϧ௨՟͕ɺ͙͢͞·ग़ͯ͘Δ͜ͱͰ͠ΐ͏ʯ w

    'BDFCPPL$&0ϚʔΫɾβοΧʔόʔάࢯ͕ূݴ w ʮ΋͠ڐೝՄͳ͠Ͱ-JCSBڠձ͕ܭըΛਐΊΑ͏ͱ͢Ε͹ɺ'BDFCPPL͸ڠձΛ཭୤͢Δʯ w ʮ-JCSB͸ૹۚΛ༰қʹ͢Δ͜ͱ͕໨తͰ͋Γɺ๏ఆ௨՟ͱͷڝ߹΍ۚ༥੓ࡦʹӨڹΛٴ΅͢͜ͱ͸ҙਤ ͍ͯ͠ͳ͍ʯ w ʮถࠃ͕͜ͷ෼໺ΛϦʔυ͠ͳ͚Ε͹ɺଞࠃ͕͢ΔͩΖ͏ɻଞࠃͷ੓෎΍اۀ͸ɺถࠃͱಉ͡ن੍੍౓΍ ಁ໌ੑʹର͢ΔίϛοτϝϯτΛ࣋ͨͣʹ࣮ߦ͢Δ͔΋͠Εͳ͍ʯ &YBNJOJOH'BDFCPPL`T1SPQPTFE$SZQUPDVSSFODZBOE*UT*NQBDUPO &WFOU*%  IUUQTXXXZPVUVCFDPNXBUDI W;5L$/8X "O&YBNJOBUJPOPG'BDFCPPLBOE*UT*NQBDUPOUIF'JOBODJBM4FSWJDF &WFOU*%  IUUQTXXXZPVUVCFDPNXBUDI WJT5##QM4"
  10. ঢ়گݒ೦ͷϙΠϯτ w ๏తͳ໌֬͞ w Ψόφϯεʢཪ෇͚ࢿ࢈΁ͷ౤ࢿɺՁ஋҆ఆԽϝΧχζϜʹ͍ͭͯʣ w Ϛωϩϯɺςϩࢿۚڙ༩౳ෆਖ਼ͳࢿۚऔҾʹ࢖ΘΕΔϦεΫ w ϓϥΠόγʔอޢ w

    ফඅऀอޢɾ౤ࢿՈอޢ w ੫຿্ͷίϯϓϥΠΞϯε w ۚ༥੓ࡦ΁ͷѱӨڹ w ࠃࡍతͳ௨՟ମ੍΁ͷѱӨڹ εςʔϒϧίΠϯʹؔ͢Δ(ٞ௕੠໌ IUUQXXXCPKPSKQBOOPVODFNFOUTSFMFBTF@SFMEIUN
  11. ঢ়گ͜͜·Ͱͷͬ͘͟Γ·ͱΊ w ن੍౰ہͳͲ w άϩʔόϧεςʔϒϧίΠϯʹطଘͷ໰୊ΛղܾͰ͖ΔՄೳੑ͕͋Δ͜ͱ͸͔֬ͩ ͕ɺॾʑͷϧʔϧ͕੔උͰ͖͍ͯͳ͍ w ๏཯ɺن੍্ͷ՝୊͕ΫϦΞʹͳΒͳ͍͏ͪ͸ϓϩδΣΫτͷ։࢝͸ೝΊͳ͍ w 'BDFCPPLɺ$BMJCSB

    w ϦεΫΛ๊͑ͨ··ϩʔϯν͢Δؾ͸ແ͍ w -JCSBͷ։ൃΛߦ͍ͳ͕Βڠௐͯ͠ਐΊ͍͖͍ͯͨ աڈͷ'BDFCPPLͷݸਓ৘ใ΍ϑΣΠΫ χϡʔεͳͲͷ໰୊Λڍ͛ͯڧ͘൷൑͢Δ ਓͨͪ΋ɻ ͔ͦ͜Βઌͷٞ࿦͸ʁ
  12. ໨࣍ w ൃදͷΰʔϧ w ֓ཁͱݱঢ় w ໨త w खஈ w

    ݱঢ় w ٕज़໘ w ߹ҙΞϧΰϦζϜ w σʔλߏ଄ w ͓ΘΓʹ
  13. ߹ҙΞϧΰϦζϜ-JCSB#'5ͷมߋ఺ w 4.3ͷܾఆੑ͕όάͬͯ΋େৎ෉ͳΑ͏ʹɺόϦσʔλ͸5Yͷॱ൪͚ͩͰͳ݁͘Ռʹ ΋ॺ໊͢Δʢ'BJMTBGFͷͨΊʁʣ HotStuff Extensions and Modifications IUUQTHJUIVCDPNMJCSBMJCSBUSFFNBTUFSDPOTFOTVTIPUTUV⒎FYUFOTJPOTBOENPEJpDBUJPOT ʢଞʹ΋มߋ఺͕͍͔ͭ͘ॻ͍ͯ͋Δ͚ͲɺΑ͘Θ͔Γ·ͤΜͰͨ͠…ʣ

    ͔ͨ͠ʹHotStuffͰ͸ɺ ʹॺ໊͍ͯ͠Δ ⟨type, viewNumber, node⟩ LibraBFT > 4.2. Verification of Network Records IUUQTEFWFMPQFSTMJCSBPSHEPDTBTTFUTQBQFSTMJCSBDPOTFOTVTTUBUFNBDIJOFSFQMJDBUJPOJOUIFMJCSBCMPDLDIBJOQEG HotStuff > 4.2 Data Structure IUUQTBSYJWPSHQEGQEG (௥ه) ਵ࣌վળ͕ߦΘΕ͍ͯΔ໛༷ ˠIUUQTEFWFMPQFSTMJCSBPSHCMPH
  14. ߹ҙΞϧΰϦζϜ5SBOTBDUJPOT1FS4FDPOE 514 w ϖʔύʔͷઆ໌Ͱ͸ 514 w ࢀߟ"MJQBZ͕8  ʹ 514

    w શવ଍Γͳ͍ʁ IUUQTEFWFMPQFSTMJCSBPSHEPDTBTTFUTQBQFSTUIFMJCSBCMPDLDIBJOQEG 1FSGPSNBODF 8FBOUJDJQBUFUIBUNBOZQBZNFOUUSBOTBDUJPOTXJMMPDDVSP⒎DIBJO GPSFYBNQMF XJUIJO BDVTUPEJBMXBMMFUPSCZVTJOHQBZNFOUDIBOOFMT<> w αΠυνΣʔϯతͳ΋ͷΛ૝ఆ͍ͯ͠Δͱॻ͔Ε͍ͯΔ ࢀߟ ΠʔαϦΞϜεέʔϦϯάͷഎܠͱ֓ཁ IUUQTTQFBLFSEFDLDPNPTVLFJTBSJBNVTVLFSJOHVGBMTFCFJKJOHUPHBJZBP TMJEF ΦϑνΣʔϯͷٕज़Λ࢖͏͜ͱͰϝΠϯνΣʔϯͷঢ়ଶભҠΛ࠷খݶʹ͢Δ ˣ ϘτϧωοΫ͕߹ҙΞϧΰϦζϜ͔ΒΦϑνΣʔϯଆͷॲཧೳྗʹҠΔ ˣ ཧ࿦తʹ͸ݱࡏͱಉ౳ͷύϑΥʔϚϯε͕ग़Δ͸ͣ
  15. ໨࣍ w ൃදͷΰʔϧ w ֓ཁͱݱঢ় w ໨త w खஈ w

    ݱঢ় w ٕज़໘ w ߹ҙΞϧΰϦζϜ w σʔλߏ଄ w ͓ΘΓʹ