经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 其他 » 区块链 » 查看文章
Libp2p学习(一)
来源:cnblogs  作者:强周周  时间:2019/3/26 8:30:52  对本文有异议

---恢复内容开始---

Libp2p学习

参考资料:libp2p-specifications : https://github.com/libp2p/specs

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的协议是多个协议的集合。为了节约资源并使连接更容易,libp2p可以通过一个端口执行所有操作,它可以通过点对点连接复用其众多协议。这种多路复用适用于可信赖的流连接或者不可信赖的数据报。libp2p的目标是变得更加模块化和灵活,以适应于各种应用场景。

libp2p中的交流可以是加密、签名或者是明文。它使用了TLS这样的加密模型,但并不是整个TLS。它只使用了TLS模型中用于加密的最小的一部分。

由于对称NAT,容器以及虚拟机NAT和其他的不能绕过的NAT,libp2p必须使用中继通信来建立一个全连接图。中继应该是可选的,能够被用户关闭。连接中继应该作为transport实现,以对上层透明。

---恢复内容结束---

原文链接:http://www.cnblogs.com/YuzhouQiang/p/10593160.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号