售前客服二维码
文章均源于网络收集编辑侵删
提示:仅接受技术开发咨询!
框架中使用的Lua 5.3版虚拟机在虚拟机级别设计了一个mylib库,用于打开到契约层的接口,该接口遵循Lua标准函数库的设计。与常见的Lua虚拟机不同,智能合约代码在链中的所有节点上执行,包括矿工节点和观察者节点,因此智能合约虚拟机不支持大多数Lua标准函数库:
基于区块链的特点,维基链智能合约框架具有以下特点:内部货币系统,分散部署和操作,代码风格自由透明,每支笔都可以通过JsonRpc界面或块浏览器查看。合同交易的输入和输出信息。
mylib库的功能
mylib库是合同与外部环境之间唯一的接口。它包含基本功能,如计算,验证,查询,资产管理和数据存储。它主要由以下接口实现:
具体用法可以在Wikichain开发人员中心文档中找到(参见本文末尾)。
如何制定智能合约
在开始开发之前,您需要学习Lua的基本语法,钱包节点的构造和JsonRpc的使用,以及mylib函数的使用。还要注意智能合约框架的以下限制:
一个。每个合同代码都需要在合同代码的前面引入mylib库;
湾合同代码的总长度限制为64KB;
C。合同参数的总长度限制为4096字节;
d。存储在合同数据库中的密钥和值的长度限制为500个字节。
对于合约参数,在虚拟机启动后,它将作为Byte数组(表)存储在全局变量合约中。目前的最佳实践是以类似Protobuf的方式编写合同参数。您可以在开发人员文档中心中参考WRC20令牌的智能合约。无论您将参数传递给智能合约的方式如何,您都需要在合同代码中设计自己的编码工具和解码功能。
现在,维基解密正式提供在线合同编辑器,您可以在浏览器中轻松开发,调试和发布您的智能合约。社区还有一些编解码器工具和一个很好的合同模板库供参考。
优化升级
维基链核心开发团队继续优化智能合约框架,使得Gas的范围和价格的计算更加合理,丰富了mylib库在链上的功能,在链条下添加了智能合约调试开发工具,还有其他Solidity等语言。与WebAsambly兼容的计划。
文章均源于网络收集编辑侵删
提示:仅接受技术开发咨询!