"Real" Serverless P2P

Libp2p jhlee@casto.network

Blockchain ✈️

Make P2P great again!

Peer2Peer

Aㅏ....mazon

그러면 국내는?

SPOF! Earth!

Superstar!

InterPlanetary File System

Inter...what? Planetary???

Zero-Latency Decentralized Broadcasting Web

P2P (O) FileStorage(X)

IPFS - FileStorage = ?

= Libp2p

The Modular peer-to-peer networking stack

Supported platforms

Browser JS
Node.js
Go
Rust
Haskell/JAVA/Python (WIP?)

...But

Libp2p

Transport

Discovery

Crypto/Security

Stream

Multiplex

NAT Traverse

Connection upgrade

MultiAddr.

etc...

Transport

TCP

QUIC

Websocket

WebRTC
UDP/UTP

Discovery

Bootstrap

mDNS

websocket-Star

webRTC-Star
KAD-DHT

Routing

peer routing

content routing

How to transport?

Peer

Peer

Peer

DISCOVER!

Peer

Peer

DISCOVER!

Dial

Peer

Peer

DISCOVER!

Dial

Handle

Peer

Peer

DISCOVER!

Dial

Handle

Connection

Node address

TCP: 218.102.40.127 ???
UDP???
IP6?????
webSocket??????

running out of IPv4 addresses

Node multiAddr

/ip4/127.0.0.1/udp/9090/quic
/ip6/::1/tcp/3217
/ip4/127.0.0.1/tcp/80/http/baz.jpg
/dns4/foo.com/tcp/80/http/bar/baz.jpg
/dns6/foo.com/tcp/443/https

Multiple

MultiAddr

/ip4/210.43.7.11/udp/9090/quic/peerA

Peer A

Peer B

Peer C

/ip4/176.21.8.43/udp/9090/quic/peerB

/dns4/star-signal.cloud.ipfs.team/wss/p2p-webrtc-star/ipfs/peerB

  .....

/ip4/16.240.10.5/tcp/15555/wss/p2p-webrtc-star/ipfs/peerC

libp2p is transport agnostic.
Many popular protocols are available, including TCP, WebRTC, Web Sockets, and UDP

libp2p-webrtc-star

browser
node

browser node

webRTC
Star

1.offer

2.offer

4.answer

3.answer

5.establish dataChannel

browser
node

browser node

webRTC
Star

webRTC
Star

webRTC
Star

browser
node

browser
node

browser
node

browser
node

browser node

webRTC
Star

webRTC
Star

webRTC
Star

browser
node

browser
node

browser
node

FAIL!!

browser
node

browser node

webRTC
Star

webRTC
Star

webRTC
Star

browser
node

browser
node

browser
node

FAIL!!

FAIL!!

browser
node

browser node

webRTC
Star

webRTC
Star

webRTC
Star

browser
node

browser
node

browser
node

FAIL!!

OK!!

peer discovery

FAIL!!

DEMO

Make your own webRTC server

$ npm install -g libp2p-webrtc-star
$ star-signal --port 12345
Listening on: http://0.0.0.0:12345

Simple & effective

Libp2p is awesome!

We're hiring!

casto.network

♚♚캐-스토오☆네트워크♚♚지원시$$전원 라이브피투피/블록체인/웹알티씨☜☜3종 100%참여♜FoundationX☆HASHED☆투자문의환영♜높은삶의질¥§§레이드&&위대한개발§§친절한힐탱★★상담오케이@@구인(납치)중◆◆발견시즉시이동

Thank you!