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 在 神奇豆
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-coverage
和fuzz
这些功能也是内部的,存在是为了支持模糊测试。它们用于推导Arbitrary实例和禁用内联,后者是必要的,因为使用的模糊器存在错误,这会阻止在函数内联时生成覆盖率报告。
依赖关系
约15MB
约225K SLoC