《李敏成-ppt模版修改-p2p-in-browser-1.0.0.pdf》由会员分享,可在线阅读,更多相关《李敏成-ppt模版修改-p2p-in-browser-1.0.0.pdf(23页珍藏版)》请在三个皮匠报告上搜索。
1、运在浏览器中的 P2P 络李敏成from RingsNetworkMontivation连接所有钱包持有者去中化的 Pure P2P 络The Idea最好的节点载体是浏览器户群体钱包插件运环境How to P2PDid:Wallet AddressE2E secure(sign/encryption):WalletDiscovery and Routing(DHT):Chord/Correct Chord/KademliaNAT and Firewall Traversal:STUN/TURN/RelayingTransport:?IntroduceWebRTCUDPSDP,ICE,STUN
2、,TURNDTLSSCTPData ChannelNetworkWebRTC Data Channel1.Stream Control Transmission Protocol(SCTP)2.Datagram Transport Layer Security(DTLS)3.Session Description Protocol(SDP)4.Interactive Connectivity Establishment(ICE)5.Session Traversal Utilities for NAT(STUN)6.Traversal Using Relay NAT(TURN)WebRTC I
3、mplementations in RustLibRuntimewebrtc-rsnative with tokioweb-sysbrowserBrowser Node(WASM)+Server Node(Native)Implement once(part of),run anywhere!Introduce rings-nodeA structured P2P network implementation.Using WebRTC and Chord algorithm.With full WebAssembly(WASM)support.Repo:https:/ through WebR
4、TCRoute by Chord DHTRings-node browser extensionRings-node daemon浏览器节点服务器节点Node communicationNode ANode BCreate OfferConnectNodeSendConnectNodeReportPending Transport ACreate offer sdpAnswer OfferPending Transport BAccept AnswerGet Transport ASet remote sdpCreate answer sdpSet remote sdpHandshakeman
5、uallyvia DHTvia HTTPpub struct HandshakeInfo pub sdp:String,pub candidates:Vec,pub struct ConnectNodeSend pub transport_uuid:String,pub offer:HandshakeInfo,pub struct ConnectNodeReport pub transport_uuid:String,pub answer:HandshakeInfo,/All messages transmitted in RingsNetwork should be wrapped by M
6、essagePayload./It additionally offer transaction ID,origin did,relay,previous hop verification,/and origin verification.pub struct MessagePayload /Payload data pub data:T,/The transaction ID of payload./Remote peer should use same tx_id when response.pub tx_id:uuid:Uuid,/The did