您的位置:首页 > 区块链 >

维基链智能合约采用Lua作为编码语言 核心功能由C/C++开发

2019-07-01 15:38:29 来源: WICC维基链

智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。基于区块链技术实现的智能合约,支持可编程合约,具有去中心化、不可篡

智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。基于区块链技术实现的智能合约,支持可编程合约,具有去中心化、不可篡改、过程透明可追踪等优点,是由合约制定者在链下构建的一套以数字形式定义的共识,发布至链上存储,并于链上执行。任意用户通过私钥签名以提供必要的身份证明成为共识参与者,其执行的过程是原子性的,获得的结果也是冥等的。

实现合约框架的方式

作为承载DApp的最重要基石,维基链智能合约框架采用Lua语言作为合约的编码语言。Lua语言具有轻量、可拓展等特性,在游戏开发、独立应用脚本和数据库插件方面都已被大量地应用。维基链核心功能均由C/C++开发,而Lua代码可以很容易的被C/C++ 代码调用,也可以反过来调用C/C++的函数。所以这款学习成本低、兼容性好又具备高性能和安全的语言是构建智能合约框架很好的编程语言。

框架使用的Lua5.3版本的虚拟机,在虚拟机层设计了一个mylib函数库以开放接口给合约层调用,其遵循了Lua标准函数库的设计方式。与常见的Lua虚拟机不同,智能合约的代码会在链上所有的节点包括矿工节点和观察者节点上执行,因此智能合约虚拟机不支持大部分Lua标准函数库:

维基链智能合约框架在具备区块链特性的基础上,还有以下特点:内部货币系统、去中心化部署及运行、代码风格自由且透明,通过JsonRpc接口或区块浏览器还可以查看每笔合约交易的输入、输出信息。

mylib库的功能

mylib库是合约与外部环境交互的唯一接口,包含计算、验证、查询、资产管理及数据存储等基础功能,主要由以下这些接口实现:

具体的使用方法,大家可以在维基链开发者中心文档(见文末)内查询到。

如何开发智能合约

开始开发前,你需要学习Lua的基本语法,钱包节点的搭建和JsonRpc的使用以及mylib的各函数的使用方式,还需要注意智能合约框架存在以下限制:

a. 每个合约代码需要在合约代码头部引入mylib库;

b. 合约代码总长度限制在64KB;

c. 合约参数总长度限制在4096字节;

d. 合约数据库存储的Key和Value长度均限制在500字节。

对于合约参数,在虚拟机启动后会以Byte数组(表)的方式存放在全局变量contract中。目前的最佳实践是将合约参数进行类似Protobuf方式的编码,你可以参考在开发者文档中心里WRC20代币的智能合约。不管是以何种方式传递参数给智能合约,你都需要自行设计编码工具和合约代码内的解码函数。

现在,维基链官方提供了在线合约编辑器,你可以很方便地在浏览器中开发、调试和发布你的智能合约。社区也有一些编解码的工具和优秀的合约模板库供使用参考。

优化升级

维基链核心开发团队仍持续地优化智能合约框架,将Gas计算的范围和价格调整的更合理,丰富链上mylib库的功能,增加链下的智能合约调试开发工具,也有对其他的语言如Solidity和WebAsambly进行兼容的计划。(维基链)

关键词: 维基链 Lua 编码语言

精选 导读

募资55亿港元万物云启动招股 预计9月29日登陆港交所主板

万科9月19日早间公告,万物云当日启动招股,预计发行价介乎每股47 1港元至52 7港元,预计9月29日登陆港交所主板。按发行1 167亿股计算,万

发布时间: 2022-09-20 10:39
管理   2022-09-20

公募基金二季度持股情况曝光 隐形重仓股多为高端制造业

随着半年报披露收官,公募基金二季度持股情况曝光。截至今年二季度末,公募基金全市场基金总数为9794只,资产净值为269454 75亿元,同比上

发布时间: 2022-09-02 10:45
资讯   2022-09-02

又有上市公司宣布变卖房产 上市公司粉饰财报动作不断

再有上市公司宣布变卖房产。四川长虹25日称,拟以1 66亿元的转让底价挂牌出售31套房产。今年以来,A股公司出售房产不断。根据记者不完全统

发布时间: 2022-08-26 09:44
资讯   2022-08-26

16天12连板大港股份回复深交所关注函 股份继续冲高

回复交易所关注函后,大港股份继续冲高。8月11日大港股份高开,随后震荡走高,接近收盘时触及涨停,报20 2元 股。值得一提的是,在7月21日

发布时间: 2022-08-12 09:56
资讯   2022-08-12

万家基金再添第二大股东 中泰证券拟受让11%基金股权

7月13日,中泰证券发布公告,拟受让齐河众鑫投资有限公司(以下简称齐河众鑫)所持有的万家基金11%的股权,交易双方共同确定本次交易的标的资

发布时间: 2022-07-14 09:39
管理   2022-07-14

央行连续7日每天30亿元逆回购 对债市影响如何?

央行12日再次开展了30亿元逆回购操作,中标利率2 10%。这已是央行连续7日每天仅进行30亿元的逆回购缩量投放,创下去年1月以来的最低操作规

发布时间: 2022-07-13 09:38
资讯   2022-07-13

美元指数创近20年新高 黄金期货创出逾9个月新低

由于对美联储激进加息的担忧,美元指数11日大涨近1%创出近20年新高。受此影响,欧美股市、大宗商品均走弱,而黄金期货创出逾9个月新低。美

发布时间: 2022-07-13 09:36
资讯   2022-07-13

美股三大股指全线下跌 纳斯达克跌幅创下记录以来最大跌幅

今年上半年,美股持续回落。数据显示,道琼斯指数上半年下跌15 3%,纳斯达克综合指数下跌29 5%,标普500指数下跌20 6%。其中,纳斯达克连续

发布时间: 2022-07-04 09:51
推荐   2022-07-04

融资客热情回升 两市融资余额月内增加超344亿元

近期A股走强,沪指6月以来上涨4%,融资客热情明显回升。数据显示,截至6月16日,两市融资余额1 479万亿元,月内增加344 67亿元,最近一个半

发布时间: 2022-06-20 09:41
资讯   2022-06-20

4个交易日净买入超百亿元 北向资金持续流入A股市场

北向资金净流入态势延续。继6月15日净买入133 59亿元后,北向资金6月16日净买入44 52亿元。自5月27日至今,除6月13日以外,北向资金累计净

发布时间: 2022-06-17 09:37
推荐   2022-06-17