55个版本
0.24.12 | 2024年6月21日 |
---|---|
0.24.9 | 2024年2月26日 |
0.24.6 | 2023年8月28日 |
0.24.4 | 2023年7月21日 |
0.0.0 | 2018年11月2日 |
在 #ckb 中排名4
每月下载量5,264
在 41 个crate中使用(直接使用9个)
465KB
13K SLoC
Nervos CKB 虚拟机
关于CKB VM
CKB VM是CKB中用作脚本虚拟机的RISC-V指令集的纯软件实现。目前它实现了32位和64位寄存器大小的完整IMCB指令。未来我们可能还会实现V扩展,以实现更好的加密实现。
许可协议
Nervos CKB根据MIT许可协议发布。有关更多信息,请参阅COPYING或查看https://opensource.org/licenses/MIT。
开发流程
现在已在生产CKB主网上部署和使用。
develop
分支定期构建和测试,但不保证完全稳定。CKB将使用经过测试且更稳定的CKB VM的发布版本。
贡献工作流程在CONTRIBUTING.md中描述,安全策略在SECURITY.md中描述。有关提出Nervos的新协议或标准的建议,请参阅Nervos RFC。
如何构建
CKB VM目前主要在64位Linux、macOS和Windows上使用stable
Rust版本进行测试。
# download CKB VM
$ git clone https://github.com/nervosnetwork/ckb-vm
$ cd ckb-vm
$ cargo build
您还可以运行测试
make test
CKB虚拟机已经包含了测试中使用的RISC-V二进制文件,因此您不需要RISC-V编译器来构建二进制文件。但如果您想使用自己的二进制文件进行实验,可能需要一个RISC-V编译器。《a href="https://github.com/riscv/riscv-tools" rel="ugc noopener">riscv-tools可以作为起点,如果您是GNU工具链的专家,您也可以使用RISC-V支持从源代码编译上游GCC,《a href="https://github.com/nervosnetwork/ckb-vm/blob/fd22e30b4bc5cb40869672a939b2b8d6bb54f85d/examples/is13.rs" rel="ugc noopener">这里有一个示例。CKB虚拟机使用标准的RISC-V指令和ELF二进制格式,因此理论上任何兼容RISC-V的编译器都可以产生CKB虚拟机中使用的合约(尽管如果您发现破坏,非常欢迎提交错误报告)。
不同模式的说明
目前CKB虚拟机有2种不同的模式
- Rust解释器模式
- 基于汇编的解释器模式(ASM模式)
为了保持一致性,您应该只使用ASM模式。Rust模式更多地是为了辅助开发,我们从未在生产环境中使用过。在出现错误的情况下,Rust模式和ASM模式之间可能会有不一致的行为。
依赖关系
~2.6–3.5MB
~65K SLoC