#codec #bitcoin-cash #bch

cashaddr

cashaddr 编码库

5个版本

0.2.0 2023年3月23日
0.1.3 2022年10月22日
0.1.2 2022年10月7日
0.1.1 2022年10月5日
0.1.0 2022年10月4日

#4 in #bitcoin-cash

Download history 53/week @ 2024-03-13 69/week @ 2024-03-20 102/week @ 2024-03-27 80/week @ 2024-04-03 107/week @ 2024-04-10 34/week @ 2024-04-17 16/week @ 2024-04-24 28/week @ 2024-05-01 59/week @ 2024-05-08 54/week @ 2024-05-15 47/week @ 2024-05-22 45/week @ 2024-05-29 112/week @ 2024-06-05 101/week @ 2024-06-12 86/week @ 2024-06-19 86/week @ 2024-06-26

每月 398 次下载
crypto-addr中使用

MIT 许可证

46KB
624

docs.rs crates.io loicense gitlab build

概述

一个库crate,提供无依赖(†)、纯Rust实现的cashaddr编码器。允许在哈希和cashaddr字符串之间进行转码。

† 如果没有启用可选crate功能,则此crate无依赖:启用crate功能可能会引入第三方依赖。

功能

  • 通用接口,支持所有标准和许多非标准用例
  • 非标准哈希类型(类型位)
  • 任意可读前缀
  • 不区分大小写的解析
  • 省略前缀
  • 解码器中的全面错误检测
  • 方便的方法,用于简洁地表达常见的转换参数

功能标志

默认禁用所有crate功能。以下可选crate功能可以启用,以提供额外功能

  • convert 启用 convert 模块,该模块提供在cashaddr地址和旧版比特币地址之间进行转换的函数。

限制

不支持前向错误纠正。cashaddr编码器中使用的BCH代码在技术上允许前向错误纠正,但使用FEC在比特币现金地址中是危险的,并且强烈不建议

关于编码器

Cashaddr是一种基于base32的编码方案,用于编码哈希摘要和哈希类型,该类型描述了哈希的使用场景,作为字符串。cashaddr字符串由以下顺序的两个不同部分组成,由冒号(:)分隔

  1. 任意用户定义的前缀,有时称为“可读前缀”,其语义由使用cashaddr的应用程序决定
  2. 一个二进制有效负载,该有效负载作为使用特定字母表的base32字符串进行编码。此有效负载包含以下字段
    1. 哈希类型:16个值之一,描述了哈希的预期使用场景。请参阅HashType
    2. 哈希长度:8个数值之一,描述了哈希的长度。用于验证cashaddr字符串
    3. 哈希值本身,它是一个由20、24、28、32、40、48、56或64字节组成的任意序列
    4. 一个40位的校验和,它检查整个cashaddr,包括用户定义的前缀。

与长度字段一起,校验和提供了极其强大的保证,即接收到的cashaddr字符串在传输过程中没有被损坏。

目前,cashaddr的唯一广泛用途是用于编码比特币现金地址,但它的设计特性使其成为通用文本编码器的好选择。

有关详细信息,请参阅cashaddr规范

归属

大部分编解码器算法逻辑基于bitcoincash-addr。本库旨在通过提供更通用、更直观的用户界面,添加对任意前缀的支持,并仅将范围缩小到与cashaddr编解码器直接相关的事项(从范围中删除了base58check编解码器)来改进bitcoincash-addr

依赖关系

~88KB