@0xcurvy/rs-core-wasm (英语)
浏览器 WebAssembly 构建 Curvy Rust 核心( Cust Corvy) 核弹 - 隐形地址 密码(Poseidon, Baby Jubjub/EdDSA,音符密码,默克勒状态,扫描)和Groth16验证器.
创建于 wasm-bindgen --target web 从标签 rs-core 发布并发布未修改.
破碎的箱子开着 货箱.io (单位:千美元)curvy-core, (中文(简体) ), curvy-witness, (中文(简体) ), curvy-prover, (中文(简体) ),
curvy-wasm) (中文(简体) ).
大多数应用程序应当使用 @0xcurvy/curvy-sdk
而不是直接消耗这些束缚.
入境点
| 子路径 | 构建 | 页:1 |
|---|---|---|
@0xcurvy/rs-core-wasm/core | 单行 | 加密核心; 到处工作 |
@0xcurvy/rs-core-wasm/core-threads | 雷扬 | 需要异地隔离 |
@0xcurvy/rs-core-wasm/prover | 单行 | 证人 + Groth16 |
@0xcurvy/rs-core-wasm/prover-threads | 雷扬 | 需要异地隔离 |
每个条目还输出其生的二进制( E)@0xcurvy/rs-core-wasm/core/curvy_wasm_bg.wasm用于
?url- 进口和节点.
import init, { poseidon } from "@0xcurvy/rs-core-wasm/core";
await init(); // resolves curvy_wasm_bg.wasm relative to this module
两种验证条目都从 snarkjs 装入一个验证密钥 .zkey 或契约 .czkey
(单位:千美元)curvy-prover的紧凑的zkeys (英语)) (中文(简体) ).
new WasmResidentProver(zkey, zkeySha256, graph, graphSha256) 以第一个字节告诉他们;
zkeySha256 是文件的SHA -256,无论它是什么。 一个紧凑的密钥大约是四分之一
40 MB 键装入单行键的大小和成本要多约 3 s .
证人的图表是SIGNET的文物(SIGNET01 或者说 CVYWIT01在正文版本1或2中,生或
zstd-压缩; graphSha256 是所通过字节的SHA-256。 第2版 翻译:
(单位:千美元)signet transcode(中文(简体) )
在更小的文件中计算与第一版相同的证人. 第2版需要0.1.5或更晚;更早
发布时拒绝使用"不支持的目击图表格式 第2版".
Bundler 设置
生成的胶水以 new URL('curvy_wasm_bg.wasm', import.meta.url),则
连线型建筑 产出他们的光线工人 new Worker(new URL('./workerHelpers.js', import.meta.url), { type: 'module' })。两者都要求文件留在包中的位置.
维特 - 将这个软件包从依赖性预捆绑中排除,将代码移动到
node_modules/.vite/deps/ 并打破这些相对的 URL :
export default defineConfig({
optimizeDeps: { exclude: ["@0xcurvy/rs-core-wasm"] },
});
网页包装 5 解决两种模式;不需要配置.
对于其他捆绑者,通过二进制在你自己 - init({ module_or_path: url }) 接受一个 URL, a
Response,字节,或编译 WebAssembly.Module。 。 。 .
线索
这个 *-threads 条目以 atomic 和共享内存构建。 他们需要一个
不同原生体 页面:
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp
或者,如果第三方嵌入必须持续工作, Document-Isolation-Policy: isolate-and-credentialless。 。 。 .
打电话 initThreadPool(n) 之后 init()与 crossOriginIsolated 回到我们身边
单行本条目 - 二人曝光同名API.
线性条目不运行在 Safari 发布中
WebKit 错误 303387例如Safari 26.2, 或任何iOS
浏览器基于这样的发布 : initThreadPool 拒绝,或电击,
RuntimeError: Out of bounds memory access萨法里26.5和27.0.1运行它们。 当错误发生时,
使用单行本条目.
节点
fetch 无法读取 file: URL,所以明确通过字节:
import { readFile } from "node:fs/promises";
import init from "@0xcurvy/rs-core-wasm/core";
const wasm = await readFile(
new URL(import.meta.resolve("@0xcurvy/rs-core-wasm/core/curvy_wasm_bg.wasm")),
);
await init({ module_or_path: wasm });
版本
@0xcurvy/[email protected] 由标签构建 vx.y.z 联 合 国 rs-core,所有四个条目都来自
单项承诺.
授权麻省理工学院。 见 THIRD-PARTY-NOTICES.md 用于编入二进制的依赖关系.