专利汇可以提供一种区块链智能合约实现方法专利检索,专利查询,专利分析的服务。并且本 发明 涉及 区 块 链 技术领域,具体涉及一种区块链 智能合约 实现方法,大致流程如下:根据收到调用合约 接口 的 请求 ,创建一个新的Lua VM;从链上找到被调用合约的代码,装载到VM;根据运行场景,设置不同运行上下文信息,包括并不仅限于调用者账号信息,转入金额,合约初始化信息,然后,提供相应的接口给合约调用,我们称之为合约API;调用合约接口,根据返回结果,进行后续处理,同时关闭VM;本发明区块链智能合约实现方法使得合约执行实现了去中心化,且操作智能高效、准确性高,成本低。,下面是一种区块链智能合约实现方法专利的具体信息内容。
1.一种区块链智能合约实现方法,其特征在于,包括以下步骤:
(1)上传合约代码,用户构造并发起一个上传合约代码交易,合约代码交易中规定交易费用收取标准,如果费用不足,则交易失败,交易执行成功后,链上会保存一份合约代码,且不可更改,交易的Hash,即是合约代码的地址,用于后续部署合约时使用;
(2)部署合约,用户构造并发起一个部署合约的交易,其中包含了之前上传成功的合约代码的地址,转入合约账户的初始金额,以及初始化合约的参数,每次部署合约时,都会产生一个新的合约账户,为创建该账户,必须向其转入足够的金额;
(3)系统根据代码地址读取合约代码,创建Lua VM,装载合约代码,初始化运行上下文信息,设置可供调用的合约API,然后,调用合约的初始化函数,并传入初始化参数;
(4)若初始化函数执行失败,则交易失败,否则,存储合约的初始化信息到账本,部署成功,此时,查询合约账户,可看到该账户上的资产,以及所对应的合约代码地址;
(5)执行合约操作,用户构造并发起一个调用合约的交易,其中包含了之前部署合约时,所产生的合约账号,调用合约的费用,可选的转给合约账号的金额,以及调用合约的操作码及参数,系统根据合约账号找到其对应的合约代码地址,根据合约代码地址,读取合约代码,创建Lua VM,装载合约代码,初始化上下文信息,设置可供调用的合约API,然后,调用合约的执行函数;
(6)处理执行函数的返回结果,若返回失败,则交易失败,否则,继续后续的处理;
(7)检查交易中的费用是否满足合约所需费用的要求,若不满足,则交易失败,返回错误消息给用户,否则,交易成功。
2.根据权利要求1所述的一种区块链智能合约实现方法,其特征在于,
用户还可发起查询合约状态的请求,其中指定了合约账号,查询的状态码,以及参数,系统根据合约账号找到其对应的合约代码地址,根据合约代码地址,读取合约代码,创建Lua VM,装载合约代码,设置查询合约状态的API,调用合约的查询合约函数;
处理查询合约函数的返回结果,如果返回失败,则返回错误消息给用户,否则,返回查询到的合约状态给用户。
3.根据权利要求1所述的一种区块链智能合约实现方法,其特征在于,
合约代码交易中包含了经过16进制编码的合约代码,合约代码如果不超过4000字节,则不收取额外的交易费用,否则,每1字节收取1个单位的费用。
4.根据权利要求2所述的一种区块链智能合约实现方法,其特征在于,
查询合约函数为:function query (status,arg)
status:查询的合约状态码,其是一个字符串;
arg:查询合约状态的参数,由查询合约的用户以JSON格式提供,但不是必须的,调用前会经过解析,取决于传递的值,其可能是String,Number, Boolean,Table 或 Nil;
返回值:
该函数可以两个返回值,第一个是查询结果码,0表示成功,其它表示失败;第二个是查询的状态信息或失败的原因。
5.根据权利要求1所述的一种区块链智能合约实现方法,其特征在于,
初始化函数为:function deploy (cfg)
cfg:由创建合约实例的用户以JSON格式提供,但不是必须的,最后传递给该函数的cfg是经过解析的,取决于传递的值,其可能是一个String,Number,Boolean或Table,也可能是Nil,即用户没有提供该信息;
返回值:
该函数可以返回一个值,其会被存储下来,在后续执行合约时,作为初始化信息提供,其不可更改。
6.根据权利要求1所述的一种区块链智能合约实现方法,其特征在于,
执行函数为:
function run (op,arg)
Op:执行合约的操作码,其是一个字符串;
arg:提供给合约操作的参数,由调用合约的用户以JSON格式提供,但不是必须的,调用前会经过解析,取决于传递的值,其可能是String, Number, Boolean, Table 或 Nil;
返回值:
该函数可以包含两个返回值,第一个是必须要有的执行结果码,0表示成功,其它表示失败;第二个是可选的结果消息,其会返回给用户,说明成功的结果或失败的原因。
7.根据权利要求1所述的一种区块链智能合约实现方法,其特征在于,
合约API包括并不仅限于:
(1)存储合约状态;(2)读取合约状态;(3)转出合约账户资产到其它账户;(4)调用其它合约;(5)发布合约事件通知;
其中,(1)、(3)、(4)会修改链上数据,故需在交易上下文执行,可在执行合约的deploy或run接口时,调用(2),(5)可在合约所有合约接口中使用。
8.根据权利要求7所述的一种区块链智能合约实现方法,其特征在于,
后续还可增加其它改变账本状态的API,比如那些系统已经统支持的交易,为了限制一个合约中新增或改变过多的状态,通过设置修改状态的数目的上限以及收费标准,进行相应限制。
9.根据权利要求1所述的一种区块链智能合约实现方法,其特征在于,
可从运行合约的Lua VM中去掉危险或会影响或占用系统资源的API,提高安全性,危险或会影响或占用系统资源的API包括并不仅限于文件IO,Network IO。
标题 | 发布/更新时间 | 阅读量 |
---|---|---|
一种分布式发电交易系统及方法 | 2020-05-08 | 200 |
一种基于区块链的资金监督方法及系统 | 2020-05-11 | 83 |
实现基于区块链的工作流 | 2020-05-08 | 148 |
管理基于区块链的中心化账本系统 | 2020-05-08 | 954 |
一种区块链状态变更交易追溯的方法及装置 | 2020-05-08 | 990 |
基于区块链的供应链交易隐私保护系统、方法及相关设备 | 2020-05-08 | 89 |
一种扫描识别方法 | 2020-05-11 | 3 |
一种基于区块链技术的个人医疗数据授权系统及方法 | 2020-05-11 | 630 |
一种基于区块链的任务分发方法、装置及系统 | 2020-05-11 | 959 |
一种区块链跨链操作方法及装置技术领域 | 2020-05-11 | 136 |
高效检索全球专利专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。
我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。
专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。