Slide 1

Slide 1 text

DAGͰදݱ͢Δ ͓ؾ࣋ͪωοτϫʔΫ @erukiti

Slide 2

Slide 2 text

@erukiti • Ҿ͖͜΋ΓؾຯϑϦʔϥϯεΤϯδχϟʔ • ϑϩϯτΤϯυɾόοΫΤϯυɾΠϯϑϥΛҰ௨Γ • JS/TS͕޷͖ɻ2/20ʹJSϝλϓϩษڧձ΍Γ·͢ • ಉਓࢽॻ͍ͨΓ঎ۀԽͨ͠Γಉਓࢽॻ͍ͨΓ͍ͯ͠·͢ • 4/22ͷٕज़ॻయ4ͰɺϒϩοΫνΣʔϯɾ҉߸௨ ՟ͷٕज़ΛJSͰղઆ͢ΔຊΛग़͢༧ఆͰ͢

Slide 3

Slide 3 text

஫ҙ: ͋·Γٕज़తʹ ౿ΈࠐΜͰ͍·ͤΜ • ઃܭɾ࣮ݧίʔυॻ͍ͯΔஈ֊Ͱ͢ • ࢦఠͱ͔ٙ໰ͱ͔͋Ε͹΢ΣϧΧϜͰ͢ʂ • Ϩϕϧ௿͗ͨ͢Γɺత͕͸ͣΕ͍ͯͨΓͨ͠Β͝ΊΜͳ ͍͞ • GoogleDocumentͷਃ͠ࠐΈͰɺαΠυνΣʔϯͱ͔ε έʔϦϯάʹڵຯ͋Δͬͯॻ͍ͨؾ͕͢Δ(͝ΊΜͳ͍͞)

Slide 4

Slide 4 text

͓ؾ࣋ͪ

Slide 5

Slide 5 text

ྫ: ίϯςϯπΫϦΤΠλʔ • খઆΛॻ͍ͨΒײ૝͕ཉ͍͠ɻࢮ͵΄Ͳཉ͠ ͍ɻʢͱΑ͘ஶऀͷํ͔Βฉ͘ʣ • Ͱ΋ʮ͜ͷখઆ޷͖ͳΜͰ͕͢঎ۀ൛͸ങ͍ ·ͤΜʯΈ͍ͨͳͷΘ͟Θ͟ಡΈͨ͘ͳ͍ʢͦ ͏͍͏ϑΝϯͷ෩্ʹ΋ஔ͚ͳ͍ϠΧϥ͸࣮ ࡍʹ͍Δʣ

Slide 6

Slide 6 text

Πϯλʔωοπ͸ѱҙʹຬ͍ͪͯΔ • ΧδϡΞϧʹԌ্ • ๫ݴΛ౤͛Δίετ͕௿͗͢Δ • ͦ΋ͦ΋1ରଟ਺ɻ਺ͷ๫ྗ

Slide 7

Slide 7 text

Πϯλʔωοπ͸ѱҙʹຬ͍ͪͯΔ • ΧδϡΞϧʹԌ্ • ๫ݴΛ౤͛Δίετ͕௿͗͢Δ • ͦ΋ͦ΋1ରଟ਺ɻ਺ͷ๫ྗ ߈ܸଆ͕༗ར͗͢Δ

Slide 8

Slide 8 text

ϙδςΟϒͳ͓ؾ࣋ͪ • ʮ͜ͷখઆ໘ന͍ʯͱ͔ϙδςΟϒͳ͓ؾ࣋ ͚ͪͩΛूΊΔ৔͕͋ͬͯ΋͍͍ͷͰ͸ʁ • ΈΜͳ͕ωΨςΟϒͱݸผʹઓͬͯফ໣͢Δ ΑΓ͸ɺϙδςΟϒͳ͓ؾ࣋ͪΛ΋Βͬͯɺ ࣍·ͨؤுΔͷ͕ྑ͍ͷͰ͸

Slide 9

Slide 9 text

ͦ͜Ͱ͓ؾ࣋ͪΛDAGͰදݱ

Slide 10

Slide 10 text

͓ؾ࣋ͪTxʢτϥϯβΫγϣϯʣ • ͓ؾ࣋ͪTx͸ɺ1ʙnͷϙδςΟϒͳධՁΛදݱ ͢Δ΋ͷͰɺίϝϯτΛఴ͑Δ • ͓ؾ࣋ͪ͸͍͘Βૹͬͯ΋ݮΒͳ͍͠ϦΞϧλΠ Ϝ͡Όͳͯ͘΋͍͍ (Ұຊͷ࠯͡Όͳͯ͘Α͍) • 1Ҏ্ͷPrevHashΛؚΊΔDAGߏ଄ (TxDAG)

Slide 11

Slide 11 text

͓ؾ࣋ͪλά • ͨͱ͑͹͍͍খઆΛॻ͍ͨਓʹɺNovelλάͷ͓ؾ࣋ ͪTxΛൃߦ • JavaScriptͷهࣄͳΒ͖ͬͱJavaScriptλά • λά͸ͨͿΜ֊૚ߏ଄ʹͳΔɻখઆͷѪ޷ՈͷதͰ΋ ೿ൊ͸৭ʑ͋ΔΘ͚Ͱ…ɻ • ΋͔ͨ͠͠Βλάͷforkͱ͔΋ʁ

Slide 12

Slide 12 text

Novel Novel Novel Novel

Slide 13

Slide 13 text

͓ؾ࣋ͪείΞ • TxDAGΛݩʹPageRankͬΆ͍ܭࢉΛͯ͠ɺ͓ؾ࣋ͪε ίΞΛׂΓग़͢ • NovelλάͰ͓ؾ࣋ͪείΞͷߴ͍ਓ͕ൃߦ͢ΔNovelλ άͷ͓ؾ࣋ͪTx͸Ձ஋͕ߴ͍͸ͣɻݴ͍׵͑ΔͱNovel ʹ͓͍͓ͯ঑Ί౓͕ߴ͍ • NovelͰ׆༂ͯ͠Δ͚Ͳઐ໳֎ͩͱμϝμϝͳਓ΋͍Δ͔ ΒɺҟͳΔλάʹରͯ͠ͷӨڹྗ͸࣋ͨͳ͍

Slide 14

Slide 14 text

NovelείΞ: 10 NovelείΞ: 40 NovelείΞ: 100 NovelείΞ: 1000 /PWFMείΞɿ Ճࢉલ

Slide 15

Slide 15 text

جຊతͳTx 5Y ର৅ ௥Ճσʔλ 0LJNPDIJ ର৅5Y63- ʙO ίϝϯτ λά .PEFSBUJPO ର৅5Y ಺༰ /FX$POUFOU ର৅63-PS#MPC৘ใ 4JHO$POUFOU ର৅63- 3FWPLF ର৅5Y

Slide 16

Slide 16 text

Peer to Peer • WebRTCͷData Channelͱ͔͋ΓͳͷͰ͸ • TxΛ΍ΓͱΓͯ͠TxDAGΛߏங • ֤Peer͸TxDAGΛݕূ • ωοτϫʔΫҡ࣋ͷߩݙ౓ͰΠϯϑϥείΞ(ͨ ͱ͑͹ɺOkimochi.infraλά)Λऔಘ

Slide 17

Slide 17 text

ΠϯϑϥείΞ͕ߴ͍Peer͸ɺ ͖ͬͱImportantPeerͰ͋Δ

Slide 18

Slide 18 text

ImportantPeer • ImportantPeer͚͕ͩϚϧνγάͰൃߦͰ͖ΔTx ͕͋Δ • ImportantPeer͸ΠϯϑϥείΞ΍౤ථ΍DNSͷ Ϩίʔυʹిࢠॺ໊ͱ͔Ͱબ͹ΕΔͱ͍͍Μ͡Ό ͳ͍͔ͳ • ImportantPeer͸τʔΫϯؔ࿈ͷTxΛൃߦ͢Δ

Slide 19

Slide 19 text

͓ؾ࣋ͪτʔΫϯ • Novel͓ؾ࣋ͪείΞ͕ߴ͍ਓ = NovelʹԿΒ ͔ͷܗͰߩݙͯ͠Δਓ • ImportantPeer͕είΞΛݩʹτʔΫϯΛ֤ࣗ ʹൃߦ͢Δ • ׆༻ྫ: ಉਓࢽଈചձͰτʔΫϯࢧ෷͍

Slide 20

Slide 20 text

͓ؾ࣋ͪΛۚͰങ͏ • Novelλάʹ҉߸௨՟ΛدଃͰ͖Δ (Patron.Novelε ίΞ্͕͕Δͱ͔) • ImportantPeer͕ड͚ೖΕ༻ͷ΢ΥϨοτΛੜ੒͢Δ (Bridge) • ߩݙऀ͸NovelτʔΫϯΛόʔϯ͢Δ͜ͱͰNovelʹ دଃ͞Εͨ҉߸௨՟ͷҰ෦Λ Bridge ͔Βड͚औΕΔ

Slide 21

Slide 21 text

ImporantPeerؔ࿈Tx 5Y *NQPSUBOUPOMZ σʔλ 5PLFO(FOFSBUFE ZFT ୭ʹ͍͘Βੜ੒͞Ε͔ͨ 5PLFO4FOE3FRVFTU OP ୭ʹ͍͘ΒૹΓ͍͔ͨ 5PLFO4FOU ZFT ୭ʹ͍͘Βૹ͔ͬͨ %POBUF3FRVFTU OP ͲͷλάʹԿΛدଃ͢Δ͔ %POBUFE ZFT دଃ͞Εͨ҉߸௨՟ͱλά 5PLFO#VSO3FRVFTU OP λάɾ೩΍͢τʔΫϯ਺ 5PLFO#VSOFE ZFT ϦΫΤετ*%ͱ҉߸௨՟ͷ5Y*%

Slide 22

Slide 22 text

͓ؾ࣋ͪωοτϫʔΫͷԠ༻ྫ • ෼ࢄDB, ෼ࢄετϨʔδͱ͔ • ೤৺ͳϑΝϯ͚͕ͩಡΊΔ࡞඼഑৴ (෼ࢄετϨʔδͷԠ༻) • ҉߸ϝʔϧ഑৴ • ͓ؾ࣋ͪωοτϫʔΫͷϑΟʔυͰ৘ใऩू • ͓ؾ࣋ͪωοτϫʔΫ಺औҾॴ (ҟੈքసੜখઆτʔΫϯͱ έϞφʔֆࢣτʔΫϯΛऔҾ͢Δ)

Slide 23

Slide 23 text

՝୊ʢͨͿΜ͍ͬͺ͍͋Δʣ • ΞοϓσʔτͲ͏͢Δ͔…ɻείΞܭࢉࣜͱ͔৭ʑ࣮ݧͨ͠Γ मਖ਼ͨ͠Γ͕ඞཁʹͳΔɻ • λά͸͔ͳΓྲྀಈతʹͳΔ͸ͣɻ৽نλάͷੜ੒ʹίετΛઃ ͚Δ΂͖͔΋஌Εͳ͍ɻ໊લۭؒͷୣ͍߹͍΋͋ΔͩΖ͏͠… • Tx͚ͩ͡Όͳͯ͘ɺQuery/Resultͱ͍͏ܗࣜ΋ඞཁͳؾ΋ • ͓ؾ࣋ͪωοτϫʔΫͷ֎ʹ͋Δίϯςϯπͱͷͭͳ͗ࠐΈ ΛͲ͏͢Δ͔

Slide 24

Slide 24 text

͓ؾ࣋ͪωοτϫʔΫ • ϙδςΟϒͳ͓ؾ࣋ͪΛૹΓ͋ͬͯΫϦΤΠλʔୡͷԠԉ Λ͢Δ • ʮৼΓࠐΊͳ͍࠮ٗʯ๾໓ • ΫϦΤΠςΟϒͷੈքʹ͓͍ͯɺखΛಈ͔͢ਓɺϑΟʔυ όοΫΛฦ͢ਓʢಛʹϙδςΟϒͳ΋ͷʣɺۚΛग़͢ਓ͕ ਖ਼ٛ • ͓ؾ࣋ͪωοτϫʔΫͱͯ͠͸Πϯϑϥҡ࣋͢Δਓ΋ਖ਼ٛ

Slide 25

Slide 25 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠