Borsh 安全高效的二进制序列化Rust 开发者大会 安全高效的二进制序列化 Daniel Wang @ NEAR Borsh • 运行、编码效率 • 确定性 • 跨平台兼容性 二进制序列化的问题 Binary Object Representation Serializer for Hashing • 字节级别确定性 • 执行速度快 Borsh • 轻量级 • 每一个对象与其二进制表示之间都存在一个双射映射 • 不同的对象的二进制表示一定不同 • 便于基于二进制表示进行 Hash 字节级别确定性 • 在 Rust 中, borsh 并没有使用 serde • 全部逻辑原生实现 • 序列化、反序列化速度大幅领先其他解决方案 执行速度 执行速度 benchmark 执行速度 benchmark 执行速度 benchmark 执行速度 benchmark • 编译后的体积更小 • borsh borsh 序列化后的二进制更精简 轻量级 序列化结果体积对比 Borsh 基本用法 Case Study NEAR 智能合约 Case Study Solana 智能合约 Case Study • non self-describing • 保证序列化后的二进制唯一性和确定性 • 主要序列化规则 Borsh 规范 • 整数采用低字节序( little endian) 存储0 码力 | 21 页 | 3.35 MB | 1 年前3
Linux命令大全搜索工具 v1.8目 录 致谢 Linux Command 介绍 A ab Apache服务器的性能测试工具 accept 指示打印系统接受发往指定目标打印机的打印任务 ack 比grep好用的文本搜索工具 alias 定义或显示别名 apachectl Apache服务器前端控制工具 apk Alpine Linux 下的包管理工具 apropos 在 whatis 数据库中查找字符串 命令用于中断FTP连线并结束程序 bzcat 解压缩指定的.bz2文件 bzcmp 比较两个压缩包中的文件 bzdiff 直接比较两个.bz2压缩包中文件的不同 bzgrep 使用正则表达式搜索.bz2压缩包中文件 bzip2 将文件压缩成bz2格式 bzip2recover 恢复被破坏的.bz2压缩包中的文件 bzless 增强.bz2压缩包查看器 bzmore 查看bzip2压缩过的文本文件的内容 书栈网 · BookStack.CN 构建 fc 显示历史列表中的命令或修改指定的历史命令并执行 fdisk 查看磁盘使用情况和磁盘分区 fg 将后台作业移动到前台终端运行 fgrep 为文件搜索文字字符串 file 用来探测给定文件的类型 find 在指定目录下查找文件 findfs 标签或UUID查找文件系统 finger 用于查找并显示用户信息 firewall-cmd Li0 码力 | 1347 页 | 8.79 MB | 1 年前3
高性能高可用机票实时搜索系统⾼性能⾼可⽤机票实时搜索系统 去哪⼉⺴ 梁启康 议题 系统诉求 海海量量数据 设计思路路 搜索框架 报价引擎 待解问题 系统诉求 • 全⽹网价最低 • 航线报价最全 • 实时性最好 • 产品最丰富 • 预定最流畅 ⾯面临问题 航班舱位时刻变动 供应商规则调整密集 航司政策各有不不同 供应商的office权限不不⼀一致 运价规则变化繁多 GDS数据成本不不菲 供应商规则量量2亿+ • 运价规则1亿+ • 报价量量 • 国内国际航线28万 * 航班数 * 产品个数 * 供应商个数 * 180天 = 1500亿 + • 搜索量量 • 航线搜索+航班搜索:3k+qps • 每秒计算产品数:搜索qps * 航班数 * 供应商个数 * 产品个数 = 1500万 + 设计思路路 • 最理理想的⽅方式 • 所有的报价都实时计算,填充好 • ⼀一个巨⼤大的哈希表 分级缓存 ⽆无状态 搜索框架 PriceMerger 报价引擎 供应商直连 旗舰店 CacheManager 抓取 App WWW Touch 分销 Cache Redis MQ MQ 航班数据 运价数据 应⽤用层 聚合层 报价源 基础数据 搜索框架 遇到问题 解决⽅方案 • 报价数量量多,内存问题 • 报价源多,不不稳定 • 响应时间要求苛刻 • 搜索条件有热点 •0 码力 | 26 页 | 1.94 MB | 1 年前3
基于Consul的多Beats接入管控与多ES搜索编排1 梁成 腾讯云, barryliang@tencent.com 基于Consul的多Beats接入 管控与多ES搜索编排 2 拥抱开源、释放云原生的力量 • 背景与挑战 • 多Beats/Logstash接入管控 • 多ES搜索编排系统 • 日志AIOps探索 3 背景与挑战 产品数量 人员规模 主机规模 100+ 1000 + 10000 + 如何降低日志接入门槛 性 15 多ES搜索编排系统 提供多ES多索引搜索编排功能,帮助 业务快速定位异常 16 故障定位遇到的困扰 客服 产品 运维 研发 多es切换 系统切换 采集 高负载 合作伙伴 OthersDB 17 案例:非APM场景下多组件日志搜索探索 ES/ OtherDB 多集群 多索引 上下文 搜索 Kibana 导航 搜索编 排 异常知 识库0 码力 | 23 页 | 6.65 MB | 1 年前3
Qcon北京2018-《深度学习在视频搜索领域的实践》-刘尚堃pdf��������������� ������� 目录 1、视频搜索的挑战 %、深度学m在视频内容理解h的应用——召回 3、深度学m在语k搜索h的应用——语k表征 4、深度学m在排序h的应用——g性化表征 视频搜索的挑战 1�����/���——���� 2����/�����——���� 3������——������ ��������������� 1������������0 码力 | 24 页 | 9.60 MB | 1 年前3
深度学习在百度搜索中的工程实践-百度-曹皓0 码力 | 40 页 | 29.46 MB | 1 年前3
MoonBit月兔编程语言 现代编程思想 第五课 数据类型:树、二叉树、二叉搜索树、AVL树现代编程思想 树 Hongbo Zhang 1 数据结构:树 树 ⼆叉树 ⼆叉搜索树 ⼆叉平衡树 2 ⽣活中的树状图 ⽣活中有很多的数据的结构与⼀颗树相似 谱系图(⼜称,家族树) ⽂件结构 数学表达式 …… 3 树的逻辑结构 数据结构中,树是由有限个节点构成的具有层次关系的集合 节点是存储数据的结构,节点之间存在亲⼦关系:⽗节点和⼦节点 如果树不为空,则它拥有⼀个根节点:根节点没有⽗节点 Int, queue: Queue[IntTree]) -> Bool { 2. match pop(queue) { 3. (None, _) => false // 若队列为空,结束搜索 4. (Some(head), tail) => match head { // 若队列⾮空,对于取出的树进⾏操作 5. Empty => bfs_search(target, 17 数据结构:⼆叉搜索树 为了⽅便搜索,我们将数据从⼩到⼤依次排序,便获得了基于⼆叉树的⼆叉搜索树 (Binary Search Tree) 左⼦树的数据⼩于根节点的数据⼩于右⼦树的数据 中序遍历(左、根、右)能从⼩到⼤遍历排序后的数据 搜索的最坏情况的次数是树的⾼度 + 1,⽽⾮元素总数 ⼆叉搜索树的插⼊与删除需要保证操作结束后的树依然保持着顺序 18 ⼆叉搜索树的插⼊ 对于⼀棵树0 码力 | 29 页 | 1015.26 KB | 1 年前3
Gitea v1.21.1 中文文档目 录 致谢 Gitea是什么? 安装 对比 Gitea 与其它 Git 托管工具 数据库准备 使用二进制文件安装 使用包管理器安装 使用源代码安装 在 Linux 中以 service 方式运行 注册为Windows服务 使用 Docker 安装 (rootless) 使用 Docker 安装 在 Kubernetes 中安装 Gitea 在云服务器中安装 Gitea Email 设置 Git LFS 设置 HTTPS配置 设置 Fail2ban 反向代理 嵌入资源提取工具 配置说明 日志配置 邮件模板 仓库索引器 GPG 提交签名 外部渲染器 搜索引擎索引 自定义 Gitea 配置 添加法律页面 使用 - 2 - 本文档使用 书栈网 · BookStack.CN 构建 Actions Gitea Actions 快速入门 Act 获得更多的第三方集成支持 浏览器支持 技术栈 集成支持 Gitea是什么? - 7 - 本文档使用 书栈网 · BookStack.CN 构建 对比 Gitea 与其它 Git 托管工具 数据库准备 使用二进制文件安装 使用包管理器安装 使用源代码安装 在 Linux 中以 service 方式运行 注册为Windows服务 使用 Docker 安装 (rootless) 使用 Docker 安装0 码力 | 303 页 | 3.88 MB | 1 年前3
Debian 参考手册(版本 2.109). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 2.2.6 aptitude 搜索方式选项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 2.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 2.4.4 搜索软件包元数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 . . . . . . . . . . . . 164 9.8 二进制数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 9.8.1 查看和编辑二进制数据 . . . . . . . . . . . . . . . .0 码力 | 261 页 | 1.39 MB | 1 年前3
OpenShift Container Platform 3.11 CLI 参考37 37 OpenShift Container Platform 3.11 CLI 参考 参考 2 7.3. 安装插件 7.3.1. Plug-in Loader 7.3.1.1. 搜索顺序 7.4. 编写插件 7.4.1. plugin.yaml Descriptor 7.4.2. 建议的目录结构 7.4.3. 访问运行时属性 37 38 38 38 39 39 另外,如果集群管理员启用了它,您可以在 web 控制台的 About 页面中下载并解压缩 CLI。 教程 教程视频 视频: : 以下视频将引导您完成此过程: 单击此处观看 然后,使用 ZIP 程序解压存档,并将 oc 二进制文件移到 PATH 的目录中。要查看您的 PATH,请打开命 令提示并运行: 2.3.2. 对于 Mac OS X Mac OS X 的 CLI 以 tar.gz 存档形式提供,您 可以从红帽客 页面中下载并解压缩 CLI。 教程 教程视频 视频: : 以下视频将引导您完成此过程: 单击此处观看 C:\> path 第 第 2 章 章 CLI 入 入门 门 7 1 然后,解包存档,并将 oc 二进制文件移到 PATH 的目录中。要查看您的 PATH,请打开终端窗口并运 行: 2.3.3. 对于 Linux 对于 Red Hat Enterprise Linux(RHEL)7,如果您的红帽帐户上已有有效的0 码力 | 45 页 | 737.95 KB | 1 年前3
共 811 条
- 1
- 2
- 3
- 4
- 5
- 6
- 82













