Rust HTTP 协议栈在终端通信场景的实践 - 胡凯
第三届中国Rust开发者大会 Rust HTTP 协议栈在终端通信场景的实践 胡凯 hukai45@huawei.com 华为 公共开发部 嵌入式软件能力中心 什么是 HTTP 协议? ⚫ HTTP 协议介绍 目录 终端场景下 HTTP 协议的主要使用场景,以及需要思考的问题。 ⚫ 终端 HTTP 通信场景浅析 我们当前结合 Rust 和终端通信场景的实践的简单介绍。 ⚫ Rust Rust 与 HTTP 协议栈结合的业界实现。 ⚫ Rust 与 HTTP 协议 HTTP 协议介绍 Part 01 什么是 HTTP 协议? Rust China Conf 2022 – 2023, Shanghai, China Rust China Conf 2022 – 2023, Shanghai, China HTTP 协议介绍 HTTP 协议,即超文本传输协议(HyperText 和超媒体 信息系统的应用层协议。 HTTP 是一个客户端(用户)和服务端(网站)之间请求和应答的标准。 Rust China Conf 2022 – 2023, Shanghai, China HTTP 协议介绍 HTTP 协议主要具有以下特点: ✓ 支持客户/服务器模式。 ✓ 简单快速:客户向服务器请求服务时,只需传送 请求方法、路径和请求头。HTTP 协议简单、HTTP 服务器的程序规模小,因而通信速度很快。0 码力 | 26 页 | 1.25 MB | 1 年前3在Solana合约链实现IBC协议跨链互操作 - 苏胤榕
@DaviRain 在Solana合约链 实现IBC协议跨链互操作 简单介绍下IBC协议是什么,及其生态 简介 > 介绍IBC协议和其在跨链互操作中的作用 IBC协议中的角色和参与者 1. 客户端 2. 连接 3. 通道 4. 包 4. 中继器 解释为什么选择在Rust合约链中实现IBC协议 - IBC协议的核心已经被协议核心团队用Rust语言实现。 - 对于本身就是 对于本身就是使用Rust语言作为智能合约开发的区块链 平台来说,支持集成支持IBC协议会很方便。 - 这里优先构想了在Solana链上实现IBC协议,因为 Solana平台本身极 低的gas消耗,很适合我现在构思 的这套实现方案。(后面会做解释) 引入Solana作为示例平台 - Solana极低的Gas花销。 - Anchor合约开发框架,大大降低了Rust合 约开发者在Solana上开发智能合约的难度。 - 以及本人对Solana平台的喜欢,优先考虑 了Solana平台,但是这套方案是可以推广到 任何的Rust智能合约平台的。 大致讲解下IBC协议的原理, 以及参与整个IBC协议活动的不同决策 IBC协议概述> 详细介绍IBC协议的基本概念和原理 Connection创建原理 Connection创建OpenInit Connection创建OpenTry Connection创建OpenAck0 码力 | 29 页 | 3.05 MB | 1 年前3刘用涛 CnosDB时序数据库的Rust实践
反哺社区 1. CnosDB 架构与选型 特性 • 横/纵 向扩展 • 计算存储分离 • 平衡存储性能与成本 • 查询引擎支持矢量化查询 • 兼容多种时序协议 • 可观测性 • 支持云原生 • 原生支持多租户 • 租户Quota可动态配置 • 云边端协同 • 云上生态融合 整体架构 1.2 存储引擎 version_set Vnode vnode vnode vnode vnode... ...... ...... Time Line Meta集群:schema,tenant信息,分片信息 数据节点:存储 vnode数据 Raft write point replica set ...... bucket bucket replica set 2. 为何从 Go 切换到 Rust0 码力 | 26 页 | 3.28 MB | 1 年前3Real world Rust - Why and how we use Rust in TiKV
MVCC 无锁的快照读 ● 构建于 Raft 之上,不依赖分布式文件系统 ○ 更少的第三方依赖 ○ 更高的性能(低延迟) ● 配合 TiDB 使用,需要有健全的逻辑实现 SQL 层的下推算子 TiKV 的前置需求 ● 极高的性能要求,尽可能低延迟,而且延迟需要稳定 ● 设计分布式系统的逻辑,极其复杂 ○ Raft ○ Multi-Raft ○ 分布式测试框架 ● 和 C 的模块大量交互 人的团队,希望半年左右发布第一个可用版本 TiKV 的语言选型参考 ● Go ● C++11 ● Rust TiKV 整体架构 KV API Coprocessor Txn, Transaction MVCC Raft KV RocksDB Placement Driver PB PRC Client SDK PB PRC PB PRC PB PRC 主要组件 ● Asynchronous IO rust-grpc ○ WIP eventloop scheduler scheduler raft router coprocessor worker worker ... worker worker ... rocksdb kv-msg raft-msg co-msg Raft store Raft store ... snapshot snapshot ... snapshot snapshot0 码力 | 29 页 | 506.53 KB | 1 年前3Rust分布式账务系统 - 胡宇
Sourcing ● 针对读场景,写场 景分别优化 ● 稳定的底层 API ● 灵活的顶层 API ● 树状结构 ● 聚合查询 ● 正确性:内存安全,线程安全 ● 可靠性: Raft 共识算法 raft-rs ● 高性能:关键路径无锁单线程 顶层架构 ● Gateway 路由层 ○ 业务 API 到底层 API 的翻 译 ○ 产生转账计划 ● Marker 事务层 ○ events ● 2. 将 events 送入 Raft 共识,等待 events 被多数节点保存 ○ 共识:基于 raft-rs 的可靠消息队 列 ○ 存储: Rocksdb with Rust 账户层: Auticuro 分布式账务系统 1 2 3 4 ● 1. 接受转账请求,转换成 events ● 2. 将 events 送入 Raft 共识,等待 events 被多数节点保存 更新余额 ○ 关键路径采用无锁单线程 账户层: Auticuro 分布式账务系统 1 2 3 4 ● 1. 接受转账请求,转换成 events ● 2. 将 events 送入 Raft 共识,等待 events 被多数节点保存 ● 3. 处理被共识的 events ,更新状态机 (账户表) ● 4. 回调完成请求 账户层: Auticuro 分布式账务系统 10 码力 | 27 页 | 12.60 MB | 1 年前3新一代分布式高性能图数据库的构建 - 沈游人
计算层 Cypher AST 优化器 图计算 内存加速引 擎 服务接口 HTTP/RPC Spark 连接器 Python UDF 执行器 索引管理 一致性存储 RAFT 分片管理 元数据 集群管理 用户权限 GNN 应用层 Atlas 图平台 Atlas Studio Atlas Client 基础 设施 Docker/K8S/VM ,提供更好的并发查询能力 数据高可用实现 Chain Replication 数据高可用方案 服务高可用实现 系统中 Meta , TS 服务采用主备架 构,基于 Raft 算法实现租约,进行 服务多活,保证图库不会出现单点 故障。 Raft 服务高可用方案 偏向分析型的分布式事务 【 MVOCC 事务提交】 基于多版本乐观并发控制技术的分布式事 务实现,在保障一致性的前提下,提供优 秀的分析性能0 码力 | 38 页 | 24.68 MB | 1 年前3简谈 Rust 与国密 TLS - 王江桐
Implementing Cryptographic Algorithms and Protocols #3 Rust 实现密码与安全协议的优势与现状 Introduction to Shangmi Algorithms and Protocols #2 国密算法与协议介绍 Huawei Ylong Rust Cryptographic Framework #4 华为 Ylong Rust 密码库 织和个人在华使用密码产品管理办法》: 使用者 密码产品产地 限制使用情况 境外组织、个人 境内 可以使用 境外 需要《使用境外生产 的密码产品准用证》 中国法人、组织、公民 境内 可以使用 境外 不得使用 国密算法与协议介绍 Introduction to Shangmi Algorithms and Protocols Section #2 • 国密套件算法简介 • 国密 TLS 简介 来源:国密算法加密 – 2023, Shanghai, China • SM2 为椭圆曲线(ECC)公钥加密算法,非对称加密,提 供加解密、数字签名、证书生成、密钥交换功能。由于以上 用例,也常用于区块链或网络安全密码协议,如SSL/TLS、 VPN。 • 保证数据机密性、真实性和完整性。 • SM2 算法和 RSA 算法都是公钥加密算法,SM2 算法是一 种更先进安全的算法,其性能与安全性优于RSA,在我们国 家商用密码体系中被用来替换0 码力 | 44 页 | 3.70 MB | 1 年前3使用Rust与ClickHouse构建高效可靠的日志系统
Loki • 资源占用过大 • 统计/计算能力比较弱 • 组件过多,排查问题比较困难 • 商业使用不友好的开源协议 • 为什么选择Mencius+ClickHouse • 存储计算与业务分离 • 计算/统计能力更强 • 资源占用更小,性能更好 • 更友好的开源协议 系统介绍 • 多种接入方式 • Agent • Client • 查询 • LogQL • OpenTSDB 日志服务(Mencius) • 存储(ClickHouse) 整体架构 • 协议层 • 处理层 • 计算层 • 存储层 系统实现 协议层 • 支持协议 • Loki • 写入 • Json/ProtoBuf • 查询 • LogQL • Log Queries • Metric Queries • OpenTSDB • 统计/计算 协议层 • Parser • 手写 • 为什么? •0 码力 | 19 页 | 2.66 MB | 1 年前3基于 Rust 语言编写的可编程的全球分布式 MQTT 服务器 王文庭
2)设备通过MQTT协议透明接⼊ 为什么需要可编程性 带来什么好处? 设备 程序 mqtt HPMQLite 上层MQTT Broker 设备 程序 HPMQ 上层MQTT Broker 通过边缘函数的⽅式快速兼容多⼚商 1)⾃定义协议+⾃定义函数 2)对接标准协议+公共函数 场景:多⼚商协议快速兼容 geo-distributed +0 码力 | 31 页 | 3.95 MB | 1 年前3Rust在物理引擎研发中的应用 崔汉青
网络开销恒定 高可用和负载均衡 Message的RTT 可测量 Motphys 分布式物理 引擎网络架构 derive serde vs protobuf • 通信协议选型 • protobuf/msgpack/… • 跨语言协议 • 需要额外定义数据结构 • Pure Rust • 我们不需要跨语言 • 复用已有的数据结构 Point/Vector… • derive serde • 可 以及它们的组合嵌套 • 分布式物理引擎的计算和IO都很重要 • 计算线程和IO线程分离,各自绑定CPU核心 Motphys 特化网络层 自定义 pure rust message 自定义编解码协议 自动 ack 和可测量 RTT 的通信框架 一切为低延迟服务 分布式物理,突破单机算力的瓶颈 关于咪咕项目详细情况请参考:https://mp.weixin.qq.com/s/a_tvBU0wk9IwGYNqVK4EbA0 码力 | 22 页 | 1.18 MB | 1 年前3
共 25 条
- 1
- 2
- 3