9 个稳定版本 (4 个主要版本)

5.0.0 2024 年 3 月 25 日
4.0.0 2024 年 1 月 22 日
3.1.0 2023 年 10 月 18 日
2.0.0 2023 年 6 月 16 日
1.0.1 2023 年 3 月 20 日

#1822神奇豆

Download history • Rust 包仓库 331/week @ 2024-04-18 • Rust 包仓库 439/week @ 2024-04-25 • Rust 包仓库 58/week @ 2024-05-02 • Rust 包仓库 48/week @ 2024-05-09 • Rust 包仓库 58/week @ 2024-05-16 • Rust 包仓库 72/week @ 2024-05-23 • Rust 包仓库 103/week @ 2024-05-30 • Rust 包仓库 142/week @ 2024-06-06 • Rust 包仓库 78/week @ 2024-06-13 • Rust 包仓库 86/week @ 2024-06-20 • Rust 包仓库 42/week @ 2024-06-27 • Rust 包仓库 72/week @ 2024-07-04 • Rust 包仓库 87/week @ 2024-07-11 • Rust 包仓库 136/week @ 2024-07-18 • Rust 包仓库 113/week @ 2024-07-25 • Rust 包仓库 229/week @ 2024-08-01 • Rust 包仓库

575 每月下载次数
3 个包中使用 2 个直接使用

自定义许可证

1.5MB
26K SLoC

concordium-smart-contract-engine

一个库,它提供了在 concordium-wasm 库之上执行智能合约的实现,该库实现了底层的 Wasm 执行。

特别是这个库被 康德瑞姆节点 用于执行 V0 和 V1 智能合约。它还用于其他康德瑞姆工具,例如 cargo-concordium,以提供构建和测试功能。

版本控制

这个包遵循语义版本控制指南。最低支持的 Rust 版本的变化将伴随着小版本的提升。


lib.rs:

这个库提供了在 Wasm 引擎 之上构建的功能,并为在康德瑞姆链上执行智能合约添加了高级功能。

康德瑞姆支持两种智能合约版本,旧版本 [v0] 和新版本 [v1]。后者在各方面都更好。它们主要有两个不同之处

  • [v0] 使用消息传递进行合约间通信,并且具有扁平状态。状态限制在 16kB,并且每次合约更新时都会写入整个状态。
  • 版本[v1]使用同步调用进行合约间通信,其状态是基于trie的结构,支持高效的局部状态更新。trie是在v1::trie模块中实现的。

版本[v0]和[v1]模块的结构相似。此库用户使用的主要入口点是v0::invoke_init(相应地v1::invoke_init)和v0::invoke_receive(相应地v1::invoke_receive)函数及其变体。

相应的模块提供了涉及的数据类型以及不同版本的详细信息。

功能

此crate具有以下功能。默认情况下均未启用。

display-state

此功能暴露了display_tree函数,用于以可读的格式显示V1合约状态。这对于深入检查智能合约状态和调试非常有用。

async

暴露从键值对流构建智能合约状态的功能,例如从节点的API接收到的流。见

enable-ffi

此功能启用外部函数导出。这是一个内部功能,对外部导出的稳定性没有保证。

fuzz-coveragefuzz

这些功能也是内部的,存在是为了支持模糊测试。它们用于推导Arbitrary实例和禁用内联,后者是必要的,因为使用的模糊器存在错误,这会阻止在函数内联时生成覆盖率报告。

依赖关系

约15MB
约225K SLoC