Slide 1

Slide 1 text

C O L L A B O R AT I N G O V E R M O U N TA I N T O P N E T W O R K S . D O E S T H E N E T W O R K S E E M T H I N U P H E R E ?

Slide 2

Slide 2 text

I ’ M J O N AT H A N M A R T I N . @ N Y B B L R

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

I ’ M F R O M AT L A N TA . @ N Y B B L R

Slide 5

Slide 5 text

I ’ M F R O M M O B I L E . @ N Y B B L R

Slide 6

Slide 6 text

I ’ M F R O M D A L L A S . @ N Y B B L R

Slide 7

Slide 7 text

I ’ M F R O M A N Y W H E R E . @ N Y B B L R

Slide 8

Slide 8 text

I ’ M A D I G I TA L N O M A D . @ N Y B B L R

Slide 9

Slide 9 text

T H E O F F I C E O F D I G I TA L N O M A D S . W E L C O M E T O M Y C U B I C L E .

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

• Last-minute flights • Live out of a backpack • Translate road signs at 60 mph • Live like the locals

Slide 12

Slide 12 text

H O T E L W I F I D O E S N ’ T C O U N T. is the WiFi of nomads.

Slide 13

Slide 13 text

• Bloggers, journalists, or software devs • Primarily writing + collaborating on the go • Poor connectivity outside the cities • Offline a lot of the time

Slide 14

Slide 14 text

A L E X B E T H F O O D I E J O U R N A L I S T

Slide 15

Slide 15 text

A L E X A N D B E T H A R E S A N D W I C H H I S T O R I A N S . S O B A S I C A L LY…

Slide 16

Slide 16 text

T H E Y WA N T T O W R I T E C O L L A B O R AT I V E LY. N O M AT T E R T H E I R L O C AT I O N …

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

I O N LY C H A N G E D O N E W O R D …

Slide 19

Slide 19 text

W H AT A R E A L L T H E S E F L A G S ? !

Slide 20

Slide 20 text

R E A LT I M E . Y E P.

Slide 21

Slide 21 text

G O O G L E D O C S

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

E T H E R PA D

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

A L E X A N D B E T H WA N T T O C O L L A B O R AT E U P H E R E . D O E S T H E N E T W O R K S E E M T H I N U P H E R E ?

Slide 26

Slide 26 text

• Conflict resolution algorithm • Network for propagating changes to peers • Slick editor

Slide 27

Slide 27 text

M E R G I N G C H A N G E S F O R E V E N T U A L C O N S I S T E N C Y A L E X A N D B E T H M A K E C H A N G E S A T T H E S A M E T I M E .

Slide 28

Slide 28 text

W E C A N ’ T TA K E T U R N S . T H E S P E E D O F L I G H T I S S L O W.

Slide 29

Slide 29 text

L E T ’ S B E C O N S I S T E N T. E V E N T U A L LY.

Slide 30

Slide 30 text

A L E X & B E T H A R E G R O C E RY S H O P P I N G . M E A N W H I L E I N A N A L P I N E V I L L A G E …

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

A L E X B E T H

Slide 33

Slide 33 text

{,,}∪{,} = {,,,} {,,}∩{,} = {} {,,}

Slide 34

Slide 34 text

?

Slide 35

Slide 35 text

A L E X B E T H

Slide 36

Slide 36 text

A L E X B E T H {,,,} {} = or ?

Slide 37

Slide 37 text

A L E X B E T H = DEL() INS() DEL() ∪ {DEL(),INS(),DEL()}

Slide 38

Slide 38 text

{,,} {DEL(),INS(),DEL()} = {,}

Slide 39

Slide 39 text

A L E X & B E T H A R E B L O G G I N G A B O U T S A N D W I C H E S . W I T H L U N C H TA K E N C A R E O F…

Slide 40

Slide 40 text

Sandwiches are a popular type of lunch food, taken to work, school, or picnics to be eaten as part of a packed lunch. “ ”

Slide 41

Slide 41 text

“sandwich”

Slide 42

Slide 42 text

“sandwich” A L E X “sandwich” ⁰¹² ³⁴⁵⁶ B E T H “sandwhich” ⁰¹²³⁴⁵⁶⁷⁸ ⁰¹²³⁴⁵⁶⁷

Slide 43

Slide 43 text

B E T H A L E X “sandwich” DEL(3) INS(5,“h”) ⁰¹²³⁴⁵⁶⁷ “sandwihch” ⁰¹² ³⁴⁵⁶⁷

Slide 44

Slide 44 text

“sanwihch”

Slide 45

Slide 45 text

B E T H A L E X “sandwich” DEL(3) INS(5 =4,“h”) ⁰¹²³⁴⁵⁶⁷ “sanwhich” ⁰¹²³⁴⁵⁶⁷ ⁰¹²-³⁴⁵⁶ ⁰¹²³⁴⁵⁶⁷ “sandwich” -1

Slide 46

Slide 46 text

“sanwhich”

Slide 47

Slide 47 text

A TA L E O F T W O T I P I S O P E R AT I O N A L T R A N S F O R M S

Slide 48

Slide 48 text

op1 ∘ T(op2, op1) ≡ op2 ∘ T(op1, op2) T(op3, op1 ∘ T(op2, op1)) = T(op3, op2 ∘ T(op1, op2)) T P 2 T P 1

Slide 49

Slide 49 text

B E T H A L E X “abc” “abc” op1: INS(3,“x”) op2: DEL(2) “abxc” “ac” “axc” “acx”

Slide 50

Slide 50 text

B E T H A L E X “abc” “abc” op1: INS(2,“x”) op2: DEL(2) “axbc” “ac” C H R I S “abc” op3: INS(3,“y”) “abyc” “axyc” “ayxc” or ?

Slide 51

Slide 51 text

– G ´ E R A L D O S T E R E T A L . “…currently there are no correct transformation functions…”

Slide 52

Slide 52 text

– G ´ E R A L D O S T E R E T A L . “…OT cannot be used to build a safe decentralized collaborative [editor].”

Slide 53

Slide 53 text

M E E T D O C S .

Slide 54

Slide 54 text

P R E C O N D I T I O N S & T O M B S T O N E S I D O N ’ T F O L L O W. C O U L D Y O U G I V E M E M O R E C O N T E X T ?

Slide 55

Slide 55 text

s≺a≺n

Slide 56

Slide 56 text

s≺a≺n a≻s,a≺n ≡

Slide 57

Slide 57 text

“sandwich” ⁰¹²³⁴⁵⁶⁷

Slide 58

Slide 58 text

INS(d≺y≺w) INS(d≺e≺w) s≺a≺n≺d≺w≺i≺c≺h DEL(n≺d≺w)

Slide 59

Slide 59 text

INS(d≺y≺w) INS(d≺e≺w) s≺a≺n≺w≺i≺c≺h

Slide 60

Slide 60 text

“sandwich” ⁰¹²-³⁴⁵⁶

Slide 61

Slide 61 text

INS(d≺y≺w) INS(d≺e≺w) s≺a≺n≺d≺w≺i≺c≺h

Slide 62

Slide 62 text

INS(d≺e≺w) s≺a≺n≺d≺y≺w≺i≺c≺h

Slide 63

Slide 63 text

s≺a≺n≺d≺e≺y≺w≺i≺c≺h

Slide 64

Slide 64 text

“saneywich”

Slide 65

Slide 65 text

“sandwich” ⁰¹²-³⁴⁵⁶

Slide 66

Slide 66 text

“sandywhiddwich” ⁰¹²-------³⁴⁵⁶

Slide 67

Slide 67 text

C R D T: C O N F L I C T- F R E E R E P L I C AT E D D ATA T Y P E W E C A N D O ( M U C H ) B E T T E R .

Slide 68

Slide 68 text

L S E Q : L I N E A R S E Q U E N C E A N E F F I C I E N T T R E E - B A S E D C R D T S E Q U E N C E

Slide 69

Slide 69 text

“sandwich” ⁰¹²³⁴⁵⁶⁷

Slide 70

Slide 70 text

s a n d w i c h

Slide 71

Slide 71 text

n a d s w i c h root begin end 0 9 3 5 7 8 3 7 4 3

Slide 72

Slide 72 text

d 3 7 7 n a s w i c h root begin end 0 9 5 8 3 4 3

Slide 73

Slide 73 text

d 3 7 7 a s root

Slide 74

Slide 74 text

[3.7.7]

Slide 75

Slide 75 text

INS([3.7.7],“y”,[3.8]) [3.7.7] [3.8]

Slide 76

Slide 76 text

INS( ,“y”, ) d w [3.7.7] [3.8]

Slide 77

Slide 77 text

INS( ,“y”, ) = d w [3.7.7] [3.8] y [3.7.9]

Slide 78

Slide 78 text

[3.7.9]

Slide 79

Slide 79 text

n a d s w i c h root begin end 0 9 3 5 7 8 3 7 4 3

Slide 80

Slide 80 text

n a d s w i c h root begin end 0 9 3 5 7 8 3 7 4 3 y 9

Slide 81

Slide 81 text

INS( ) y [3.7.9] INS( ) h [3.8.2] B E T H A L E X

Slide 82

Slide 82 text

n a d s w i c h root begin end 0 9 3 5 7 8 3 7 4 3

Slide 83

Slide 83 text

n a d s w i c h root begin end 0 9 3 5 7 8 3 7 4 3 y 9

Slide 84

Slide 84 text

n a d s w h c h root begin end 0 9 3 5 7 8 3 7 2 3 y 9 i 4

Slide 85

Slide 85 text

“sandywhich”

Slide 86

Slide 86 text

• No master peer • Works with any number of peers • No tombstones • Memory usage grows slowly • Operations can be applied quickly • Resilient to long offline spells

Slide 87

Slide 87 text

github.com/Chat-Wane/LSEQTree L S E Q J A VA S C R I P T I M P L E M E N TA T I O N

Slide 88

Slide 88 text

arxiv.org/abs/1608.03960 J S O N C R D T

Slide 89

Slide 89 text

P 2 P N E T W O R K S A L E X A N D B E T H N E E D T O E X C H A N G E O P E R A T I O N S .

Slide 90

Slide 90 text

• Connection (WiFi, socket, BLE, sound) • Topology (Spray) • Discovery (mDNS) • Transport (TCP, UDP, SCTP) • Protocol (HTTP, HTTPS, stream) • Resolver (ICE, STUN, TURN) • Signaling (WebRTC) • Security (SSL, DTLS)

Slide 91

Slide 91 text

• Topology • Discovery • Transport • Security

Slide 92

Slide 92 text

C E H I B A D F G J

Slide 93

Slide 93 text

C E H I B A D F G J

Slide 94

Slide 94 text

C E H I B A D F G J

Slide 95

Slide 95 text

C E H I B A D F G J “hi”

Slide 96

Slide 96 text

C E H I B A D F G J “hi” “hi” “hi” “hi” “hi” “hi” “hi”

Slide 97

Slide 97 text

B A “hi” “hi” “hi” “hi” “hi” “hi”

Slide 98

Slide 98 text

W E ’ R E R E I N V E N T I N G T H E I N T E R N E T. S O B A S I C A L LY…

Slide 99

Slide 99 text

• Scuttlebutt • Gossip • Hyperlog • libp2p

Slide 100

Slide 100 text

github.com/kgryte/awesome-peer-to-peer A L L T H E P 2 P A W E S O M E N E S S

Slide 101

Slide 101 text

R I C H C O N T E N T E D I TA B L E M A R K D O W N E D I T O R A L E X A N D B E T H N E E D A N A W E S O M E E D I T O R .

Slide 102

Slide 102 text

github.com/nybblr/p2p-experiments

Slide 103

Slide 103 text

• WebRTC • WiFi Direct • LTE Direct • BLE • Bonjour

Slide 104

Slide 104 text

No content

Slide 105

Slide 105 text

T H E I R F U T U R E I S H I D I N G I N A C A D E M I C PA P E R S . A L E X A N D B E T H A R E C O U N T I N G O N Y O U .

Slide 106

Slide 106 text

Y E L L O W S C A L E . C O M L A N D S C A P E P H O T O G R A P H Y & D I G I TA L N O M A D I S M

Slide 107

Slide 107 text

T H A N K S ! @nybblr yellowscale.com