BMT-JS 导弹
这个 JavaScript 库确实有 二进制默克勒树 (BMT)数据操作.
库会计算出任何数据的内容地址,同时也提供功能,用于执行其中任何32个字节的廉价紧凑包含证明.
安装
npm install @fairdatasociety/bmt-js --save
如何运作
首先,它把数据分成 chunks 默认拥有最大4KB有效载荷的,但这一条件及其 span 字节长度( 8 字节) , 表示字节有效载荷包含在块下多久 .
如果有效载荷字节长度不能完全与这个块分割相匹配,则最右块的数据会被零相加以得到BMT操作的固定长度数据.
还需要这一基本单位有效分发与分散储存系统有关的数据 有理可辩, (中文(简体) ), 垃圾收集, (中文(简体) ), 负载平衡 还有别的. 详情请访问 出现了沼泽 完全执行这一逻辑的网页.
使用的散列算法是 keccak256 函数导致32字节长 segment。 。 。 .
在块数据上执行 BMT 散列将定义 BMT root hash 的块.
出于完整性考虑 BMT 根散列由从左边取取出块的相间被散列 Chunk address。 。 。 .

为了参考同样具有单一32字节段的文件,有效载荷的块地址必须采用同样的方式,直至 File address数字 :
块可以默认地将128个块地址封装在随后的 BMT 树级上. 这种块叫做 Intermediate chunks
由 BMT 树的属性,块将结束于 Root chunk 是指以下所有块(直接或间接地),其地址是: File address 还有.
人们可以意识到,BMT水平可以在最右边有一个孤儿块,不能用邻居块来散开,因为它没有邻居块(例如129/129块).
当它发生时,它没有感想将这个孤儿块散放在每个BMT级别上,因为它将用零数据被BMT散去.
这就是为什么算法处理孤儿块作为 Carrier chunk 并尝试将其放入BMT树级,其中块地址可以被封入其他地址.
数据的这种 BMT 散列允许引用任何名为32 字节独有地址的文件 地址内容。 。 。 .

尽管如此,它也允许进行轻量级 紧凑的包含证明 数据. 这种证明要求提供的数据数量很少,以证明文件地址下是否有特定部分(32字节)的数据.
这个特性可以围绕32字节文件地址引用的数据创建逻辑,数据段值必须满足一些条件.
可通过执行验证功能的智能合同,检查所提供的验证功能,实现这方面的第一个/最佳使用案例 inclusion proof segments 实际包含在已承诺的文件引用中.
为了获得这些包含区段,库从BMT树上收集所有所需的区段,用于输入智能合同验证参数.

API 密码
您可以直接从 : @fairdatasociety/bmt-js数字 :
类型
- 用于在块数据上执行 BMT 动作的 Chunk # 帮助对象接口
- 有效载荷 # 物体初始化时所经过的字节有效载荷.
- 最大负载 Length # 最大负载字节长度 。 这是4096 默认.
- basinLength # 为周期序列化保留的字节长度 。 默认是8字节.
- 数据( ) # 返回该块的数据
maxPayloadLength长 - 横跨 () # 块的序列化横跨值
- 地址( ) # 返回数据计算出的块地址
- 包含 Proof( sectionIndex) # 给回用于在给定索引下校正该段的包含证明段 .
- bmt () # 将块数据的二进制墨克勒树还原
- 被截断 在文件数据上执行 BMT 动作的帮助对象的文件 # 接口
- 有效载荷 # 物体初始化时所经过的字节有效载荷.
- 叶春克 () # 文件数据块
- rootChunk () # 文件 BMT 中最上块
- 地址( ) # 返回文件数据计算出的块地址
- 横跨 () # 文件的序列化横跨值
- bmt () # 返回文件数据的 二进制墨克勒树
- Chunk 包含 Proof # group 块块块块块 块块块块块的跨值
- ChunkAddress # 块地址来自 BMT 散列数据。 它也被使用 Fole 文件地址
- Span # 字节格式的跨值 。 显示包含在 Chunk/文件下的数据数量
职能
- 切开 文件 # 制作
Chunk文件数据中执行 BMT 动作的帮助对象 - {\fn方正粗倩简体\fs12\an8\1cHFFFF00\b0}让春克来
Chunk在块数据上执行 BMT 动作的帮助对象 - # 让序列化
Span表示数据包含在 Chunk/ 文件下的字节数组 - 将SpanValue #去序列化数据输入
number承运人Span - rootHash From Including Proof # 从提供的包含验证段及其相应的段索引计算 BMT 根散列
- 获取 BmtIndexOffSpecment # 获取特定有效载荷段指数在 BMT 树上的位置
- 包含 Proof BottomUp # 给回特定有效载荷段索引中所需的姊妹段以进行包含证明
- file AddressFrom IncludingProof # 还原了仅通过包含证明段和相应的被证明段及其位置来计算出的文件地址.
其他对象
- Utils # 主要字节相关的工具函数
汇编
为了编译代码运行
npm run compile
您可以在 dist 文件夹.
类型汇编,运行
npm run compile:types
测试
测试需要运行Bee客户端节点进行整合测试.
你可以设置 BEE_POSTAGE 具有有效邮资批次的环境变量或测试会为您创建一个.
Bee 调试 API 端点的默认值是 http://localhost:1635。 。 。 .
如果你的地址有出入,请设置 BEE_DEBUG_API_URL 系统环境变量与您的.
运行测试执行
npm run test