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 年前3Python3 基础教程 - 廖雪峰
........................................................................................ 18 使用文本编辑器 .................................................................................................. ............................................................................................ 343 图形界面 ................................................................................................ 交互式命令行下,可以直接输入代码,然后执行,并立刻得 到结果。 使用文本编辑器 在 Python 的交互式命令行写程序,好处是一下就能得到结果,坏处是 没法保存,下次还想运行的时候,还得再敲一遍。 Python3 基础教程【完整版】 http://www.yeayee.com/ 20/531 所以,实际开发的时候,我们总是使用一个文本编辑器来写代码,写完 了,保存为一个文件,这样,程序就可以反复运行了。0 码力 | 531 页 | 5.15 MB | 1 年前3Comprehensive Rust(简体中文) 202412
9.4 字符串 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 9.5 练习:几何图形 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 9.5.1 解答 . . . . . . . . . . . . . . . 181 IX Android 185 31 欢迎来到 Android 中的 Rust 186 32 设置 187 33 构建规则 188 33.1 Rust 二进制文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 33.2 Rust 库 . . . . . . (rustc)。你还将获得 rustup,这是一个命令 行实用程序, 你可以用它来安装不同的编译器版本。 安装 Rust 之后,你应当配置你的编辑器或 IDE 以开始使用 Rust。大多数编辑器使用了 rust-analyzer。 它为 VS Code、Emacs、Vim/Neovim 及其他许多编辑器提供了自动补全及定义跳转的功能。同样也可 以使用 RustRover IDE。 • 在 Debian/Ubuntu 上,你也可以通过0 码力 | 359 页 | 1.33 MB | 10 月前3Python 标准库参考指南 3.8.20
--- str . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.8 二进制序列类型 --- bytes, bytearray, memoryview . . . . . . . . . . . . . . . . . . . . . . 52 4.9 集合类型 --- set readline 的补全函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 7 二进制数据服务 149 7.1 struct --- 将字节串解读为打包的二进制数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 7.2 codecs --- 编解码器注册和相关基类 binhex4 文件进行编码和解码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1108 19.8 binascii --- 二进制和 ASCII 码互转 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1108 19.9 quopri --- 编码与解码经过0 码力 | 2052 页 | 9.74 MB | 9 月前3Python 标准库参考指南 3.7.13
--- str . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.8 二进制序列类型 --- bytes, bytearray, memoryview . . . . . . . . . . . . . . . . . . . . . . 50 4.9 集合类型 --- set readline 的补全函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 7 二进制数据服务 141 7.1 struct --- 将字节串解读为打包的二进制数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 7.2 codecs --- 编解码器注册和相关基类 binhex4 文件进行编码和解码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1046 20.8 binascii --- 二进制和 ASCII 码互转 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1047 20.9 quopri --- 编码与解码经过0 码力 | 1961 页 | 9.14 MB | 9 月前3Python 标准库参考指南 3.8.20
文本序列类型 --- str . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.8 二进制序列类型 --- bytes, bytearray, memoryview . . . . . . . . . . . . . . . . . . . . 49 4.9 集合类型 --- set, GNU readline 的补全函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 7 二进制数据服务 139 i 7.1 struct --- 将字节串解读为打包的二进制数据 . . . . . . . . . . . . . . . . . . . . . . . . . 139 7.2 codecs --- 编解码器注册和相关基类 对 binhex4 文件进行编码和解码 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1035 19.8 binascii --- 二进制和 ASCII 码互转 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1035 19.9 quopri --- 编码与解码经过0 码力 | 1927 页 | 9.69 MB | 9 月前3Python 标准库参考指南 3.8.20
文本序列类型 --- str . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.8 二进制序列类型 --- bytes, bytearray, memoryview . . . . . . . . . . . . . . . . . . . . 49 4.9 集合类型 --- set, GNU readline 的补全函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 7 二进制数据服务 139 i 7.1 struct --- 将字节串解读为打包的二进制数据 . . . . . . . . . . . . . . . . . . . . . . . . . 139 7.2 codecs --- 编解码器注册和相关基类 对 binhex4 文件进行编码和解码 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1035 19.8 binascii --- 二进制和 ASCII 码互转 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1035 19.9 quopri --- 编码与解码经过0 码力 | 1927 页 | 9.69 MB | 9 月前3Python 标准库参考指南 3.7.13
文本序列类型 --- str . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.8 二进制序列类型 --- bytes, bytearray, memoryview . . . . . . . . . . . . . . . . . . . . 49 4.9 集合类型 --- set, GNU readline 的补全函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 7 二进制数据服务 135 7.1 struct --- 将字节串解读为打包的二进制数据 . . . . . . . . . . . . . . . . . . . . . . . . . 135 i 7.2 codecs --- 编解码器注册和相关基类 --- 对 binhex4 文件进行编码和解码 . . . . . . . . . . . . . . . . . . . . . . . . . . . 988 20.8 binascii --- 二进制和 ASCII 码互转 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 989 20.9 quopri --- 编码与解码经过0 码力 | 1846 页 | 9.09 MB | 9 月前3Python 标准库参考指南 3.9.20
43 4.7.2 printf 风格的字符串格式化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.8 二进制序列类型 --- bytes, bytearray, memoryview . . . . . . . . . . . . . . . . . . . . . . 53 4.8.1 bytes 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 7 二进制数据服务 155 7.1 struct --- 将字节串解读为打包的二进制数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 7.1.1 函数和异常 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1123 19.7 binascii --- 二进制和 ASCII 码互转 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1124 19.8 quopri --- 编码与解码经过0 码力 | 2146 页 | 10.17 MB | 9 月前3Python 标准库参考指南 3.10.15
46 4.7.2 printf 风格的字符串格式化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.8 二进制序列类型 --- bytes, bytearray, memoryview . . . . . . . . . . . . . . . . . . . . . . 55 4.8.1 bytes 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 7 二进制数据服务 161 7.1 struct --- 将字节串解读为打包的二进制数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 7.1.1 函数和异常 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1154 19.7 binascii --- 二进制和 ASCII 码互转 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1154 19.8 quopri --- 编码与解码经过0 码力 | 2207 页 | 10.45 MB | 9 月前3
共 281 条
- 1
- 2
- 3
- 4
- 5
- 6
- 29