Libp2p学习(一)
Libp2p学习 参考资料:libp2p-specifications : https://github.com/libp2p/specs 持续更新ing 1. 介绍 Libp2p的实现目标是: 支持各种各样的传输方式: 传输:TCP,UDP,SCTP,UDP,uTP,QUIC,SSH,etc. 安全传输:TLS,DTLS,CurveCP,SSH 有效使用sockets(连接重用) 允许端点之间的交流可以在一个socket上复用(避免过多的握手) 允许端点之间通过一个协商过程使用多协议以及各自的版本 向后兼容 在现在的系统中可以运行 充分使用当前网络技术的能力 实现NAT转换 实现连接中继 实现加密通道 充分使用基础传输(例如原生的流复用等) 传统的7层OSI模型表征不适合libp2p。Libp2p根据协议的角色(功能)进行划分。不同的lip2p协议可以具有相同的功能,例如,bootstrap lists,mDNS,DHT discovery,PEX都进行节点发现,但他们可以同时存在甚至协同工作。而在OSI中,每一层通常都只有一个协议。 2. 基础 libp2p使用了 multiaddr ,一个自描述的地址形式,可以理解为不同协议不同地址类型的一个封装。这使得libp2p可以不透明的处理系统中的所有地址,支持网络层中的各种传输协议。 libp2p的协议是多个协议的集合