维基链智能合约知多少

2019-06-26 11:15 栏目:经验之谈 来源: 查看()
智能合约是一种旨在以信息方式传播,验证或执行合同的计算机协议。基于区块链技术的智能合约,支持可编程合同,具有分散化,非篡改,流程透明可追溯性等优点,是由合同制定者以数字形式定义的一组共识,已发布存储在链上并执行在链上。任何使用私钥签名以提供必要标识的用户都是共识参与者,其实现过程是原子的,并且获得的结果也是模糊的。

如何实现合同框架

作为DApp最重要的构建块,wiki链智能契约框架使用Lua语言作为合同的编码语言。 Lua语言是轻量级的,可扩展的,并且已广泛用于游戏开发,独立脚本和数据库插件。 wiki链核心函数都是由C/C ++开发的,Lua代码可以通过C/C ++代码轻松调用,或者可以反向调用C/C ++函数。因此,这种语言学习成本低,兼容性好,性能和安全性高,是构建智能合约框架的良好编程语言。

框架中使用的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兼容的计划。

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发