Libp2p是用于构建P2P网络的模块化网络堆栈和库,源自开源项目IPFS,模块化设计使它能够用来构建各种去中心化应用的P2P网络层。目前,知名区块链项目Ethereum 2.0、Pokdot、BitXHub都选择基于Libp2p库搭建系统网络层。
libp2p网络通信中还有一种方式就是Publish-Subscribe模式,也称订阅-发布模式,体现了DDS(Data Distribution Service 数据分发服务)标准中定义的以数据为中心的订阅-发布模型,是新一代分布式实时通信中间件协议。在汽车领域,2018年 Adaptive AUTOSAR 引用了DDS,作为可选择的通信方式之一。
目前国内已有主机厂开始研究,主要针对自动驾驶相关需求,工具方面,在汽车电子领域常用的工具厂商也在开发这部分内容。不仅是汽车领域引入DDS,在机器人开发领域,最新升级的ROS2也引入了DDS中间件来传递信息。
为了满足在自动驾驶汽车,智能设备和分布式系统开发中广泛存在高速数据的连接可靠性,高性能和大规模集成的需求,我们推出了基于 Rust 语言的 Libp2p 的课程《动手学 libp2p》,旨在为新手提供如何使用 rust-libp2p 进行开发的动手实践指导,并为后继的自动驾驶汽车操作系统中间件的开发项目进行人才储备和输送。
计划开课时间12月10日-28日,每周三次课,周六、周日和周三晚上8点-9点上课,连续3周,共9次课。
本期为收费培训,学费 2000元,推荐好友报名成功可优惠200元。
完成全部课程的学习和作业要求,成绩优异者可获得推荐相关领域的工作机会。
课程大纲:
第一周 libp2p 入门
Section 1: libp2p 简介
-
p2p原理,libp2p和通用p2p的共同点及其区别
-
通过例子讲解基础概念,Transport 传输,Listen & Dial 监听和拨号,Addressing 地址
-
chat 例子,floodsub 使用,主题订阅和消息转发
Section 2: floodsub 实现代码分析
-
floodsub 代码导读
-
async 异步编程、futures、async-std 介绍
-
Rust 测试、工程目录、属性
Section 3: 项目实践1 - Chat添加测例与私聊实现
-
Rust 基础语法,Chat 代码添加测例
-
以 @ 的形式指定接收人,实现私聊
第二周 libp2p 进阶
Section 1: libp2p 核心概念
-
NAT traversal 网络地址转换 & NAT穿透原理
-
STUN 打洞 Hole punching
-
Relay 中继协议,直接链接协议
Section 2: Relay 协议的实现分析
-
Relay 代码导读
-
trait 介绍
Section 3: 项目实践2 - 搭建 relay 服务器实现跨网聊天
-
与服务器连接,跨局域网聊天的环境搭建
-
断开服务器后,局域网间可以实现聊天
第三周 libp2p 高级
Section 1: libp2p Protocols 协议
-
框架 swarm, 通过swarm如何构建协议
-
handler,behaviour,
-
Protocols 概念剖析
Section 2: swarm 框架代码分析
-
代码导读,libp2p-yamux、smallvec 分析
-
lib.rs handler.rs connection.rs behaviour.rs 代码分析
Section 3: 项目实践3 - 自己动手写一个 libp2p 协议
-
设计并实现一套通过 PeerID 完成收发的简单协议
-
调用该协议,完成点对点的超大容量二进制文件传输
详细信息见:https://rustedu.com/course/116,报名请直接打开网址登录报名。
Ext Link: https://rustedu.com/course/116
评论区
写评论wifi可以, 4G,5G的不让直接点对点,只能通过relay中转
--
👇
panicfrog: 我有个疑问,就是移动端打洞应该很难成功吧?
--
👇
asmcos: 移动端也是可以的,https://github.com/libp2p/jvm-libp2p
可以
--
👇
panicfrog: 移动端能使用libp2p吗
我有个疑问,就是移动端打洞应该很难成功吧?
--
👇
asmcos: 移动端也是可以的,https://github.com/libp2p/jvm-libp2p
移动端也是可以的,https://github.com/libp2p/jvm-libp2p
移动端能使用libp2p吗