#vm #triton #snippets #assembly #testing #benchmark #tasm

tasm-lib

Triton VM 汇编代码片段,包含测试和统计信息

1 个不稳定版本

0.1.0 2023年7月6日

#4#triton

Apache-2.0GPL-2.0 许可协议

1MB
28K SLoC

tasm-lib

本仓库包含了一系列使用 Triton VM 汇编(tasm)编写的函数。这些函数模拟了其他编程语言的常规库:常用的基本函数。

有两个大型的 tasm 项目需要编写,它们不包含在本仓库中。这些项目包括

  • Neptune 的共识逻辑 Neptune
  • 递归 Triton VM STARK 验证器(recufier)

本仓库有助于对 tasm 编写的代码片段进行基准测试,以衡量(Triton VM)证明的复杂性。

请将代码放入适当的目录,或者如果不存在,则创建它们。

约定

U64

一个 u64 类型存储在堆栈上作为两个 u32 元素,Triton VM 提供了本地支持。一个 u64 存储在堆栈顶部和底部,最不重要的部分在上,最重要的部分在下。因此,如果最不重要的部分是 st0,则最重要的部分存储在 st1

从秘密输入的认证路径

第一个元素是一个长度指示符,它指定了认证路径长度(以散列次数表示)。长度指示符必须是一个有效的 u32。然后是散列值。散列值的顺序如下:[digest_0_element_4,digest_0_element_3, digest_0_element_2, digest_0_element_1, digest_0_element_0, digest_1_element_4, digest_1_element_3 ... ]

运行时

运行时以 JSON 文件的形式打印在 benchmarks 目录中。这些由标记为 benchmark 的测试生成。如果您通过更改 TASM 片段降低了任何数字,请提交一个拉取请求,这样我们可以获得更高效的算法 :)

依赖项

~21–36MB
~533K SLoC