一种区块链中数据智能合约生成的方法及系统技术方案

技术编号:17779869 阅读:112 留言:0更新日期:2018-04-22 08:27
本申请公开了一种区块链中数据智能合约生成的方法,所述方法包括:根据业务需求创建所述数据智能合约得到合约名称;当所述数据智能合约的合约信息发生变化时,根据数据智能合约的内容通过数据管理接口查询数据列表,得到数据地址和关联合约地址;根据所述合约名称、所述数据地址和所述关联合约地址生成所述数据智能合约;该方法生成一种通用的数据智能合约,实现用同一份合约代码支持所有的业务场景,降低了开发难度与成本;本申请还公开了一种区块链中数据智能合约生成的系统,具有以上有益效果。

【技术实现步骤摘要】
一种区块链中数据智能合约生成的方法及系统
本专利技术涉及区块链
,特别涉及一种区块链中数据智能合约生成的方法及系统。
技术介绍
区块链是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。在科技迅猛发展的今天,区块链得到了广泛地应用于数据智能合约领域。在现有技术中,使用区块链的系统通过智能合约存储数据时,一般需要根据业务的需求定制不同的数据结构,然后通过不同的合约实现出来。但是,这种方案的业务复杂度较高,需要的智能合约种类极多,因此各个机构的开发团队之间协调开发的难度和成本也相当巨大。因此,如何生成一种通用的数据智能合约,实现用同一份合约代码支持所有的业务场景,是本领域技术人员目前需要解决的技术问题。
技术实现思路
本申请的目的是提供一种区块链中数据智能合约生成的方法及系统,能够实现用同一份合约代码支持所有的业务场景。为解决上述技术问题,本申请提供一种区块链中数据智能合约生成的方法及系统,该方法包括:根据业务需求创建所述数据智能合约得到合约名称;当所述数据智能合约的合约信息发生变化时,根据数据智能合约的内容通过数据管理接口查询数据列表,得到数据地址和关联合约地址;根据所述合约名称、所述数据地址和所述关联合约地址生成所述数据智能合约。可选的,所述根据数据智能合约的内容通过数据管理接口查询数据列表,得到数据地址和关联合约地址包括:判断创建所述数据智能合约过程中使用的智能合约语言是否支持遍历所述数据列表中所有的与映射相关的值;若所述智能合约语言不支持遍历所述数据列表中所有的与映射相关的所述值,则利用名称获取接口查询所述数据智能合约的所述内容,得到数据名称和关联合约名称;通过数据地址获取接口根据所述数据名称查询所述数据列表,得到所述数据地址;通过合约地址获取接口根据所述关联合约名称查询所述数据列表,得到所述关联合约地址。可选的,在以太坊规范的虚拟机环境中,根据所述合约名称、所述数据地址和所述关联合约地址生成所述数据智能合约包括:根据所述合约名称、所述数据地址、所述关联合约地址、所述数据名称和所述关联合约名称生成嵌套结构的所述数据智能合约。可选的,所述根据业务需求创建所述数据智能合约得到合约名称包括:根据所述业务需求生成代理合约,并将需要创建所述数据智能合约的数据发送给所述代理合约;利用所述代理合约根据所述数据的所述业务需求创建所述数据智能合约,得到所述合约名称。本申请还提供了一种区块链中数据智能合约生成的系统,所述系统包括:部署模块,用于根据业务需求创建所述数据智能合约得到合约名称;获取模块,用于当所述数据智能合约的合约信息发生变化时,根据数据智能合约的内容通过数据管理接口查询数据列表,得到数据地址和关联合约地址;生成模块,用于根据所述合约名称、所述数据地址和所述关联合约地址生成所述数据智能合约。可选的,所述获取模块包括:判断单元,用于判断创建所述数据智能合约过程中使用的智能合约语言是否支持遍历所述数据列表中所有的与映射相关的值;名称查询单元,用于当所述智能合约语言不支持遍历所述数据列表中所有的与映射相关的所述值时,利用名称获取接口查询所述数据智能合约的所述内容,得到所述数据名称和所述关联合约名称;数据查询单元,用于通过数据地址获取接口根据所述数据名称查询所述数据列表,得到所述数据地址;关联查询单元,用于通过合约地址获取接口根据所述关联合约名称查询所述数据列表,得到所述关联合约地址。可选的,在以太坊规范的虚拟机环境中,所述生成模块包括:根据所述合约名称、所述数据地址、所述关联合约地址、所述数据名称和所述关联合约名称生成嵌套结构的所述数据智能合约。可选的,所述部署模块包括:代理单元,用于根据所述业务需求生成代理合约,并将需要创建所述数据智能合约的数据发送给所述代理合约;创建单元,用于利用所述代理合约根据所述数据的所述业务需求创建所述数据智能合约,得到所述合约名称。本专利技术提供了一种区块链中数据智能合约生成的方法,根据业务需求创建所述数据智能合约得到合约名称;当所述数据智能合约的合约信息发生变化时,根据数据智能合约的内容通过数据管理接口查询数据列表,得到数据地址和关联合约地址;根据所述合约名称、所述数据地址和所述关联合约地址生成所述数据智能合约。本方法中根据实际的业务需求创建数据智能合约得到合约名称,也就是说合约名称用于描述该数据智能合约的业务用途。合约信息发生变化说明数据智能合约中的某些信息发生了改变需要重新获取数据地址和关联合约地址,本方法中设置有数据管理接口,可以通过数据管理接口查询数据列表找到数据地址和关联合约地址。最后利用合约名称、数据地址和关联合约地址生成数据智能合约。生成数据智能合约的过程中不依靠其他设施的间接支持,各字段都是从数据内容中获取的而不是从代码定义中获取,避免了区块链以外需要通过其他通讯机制令业务方之间互相通知数据结构的麻烦。此外生成的数据智能合约是具有统一编写方法的,可以实现同一份合约代码支持所有的业务场景。该方法生成一种通用的数据智能合约,实现用同一份合约代码支持所有的业务场景,降低了开发难度与成本。本申请同时还提供了一种区块链中数据智能合约生成的系统,具有上述有益效果,在此不再赘述。附图说明为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例所提供的一种区块链中数据智能合约生成的方法的流程图;图2为本申请实施例所提供的另一种区块链中数据智能合约生成的方法的流程图;图3为图2所示实施例中代理合约创建数据智能合约流程图;图4为本申请提供的一种区块链中数据智能合约生成的系统的结构示意图。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。下面请参见图1,图1为本申请实施例所提供的一种区块链中数据智能合约生成的方法的流程图;具体步骤可以包括:步骤S101:根据业务需求创建所述数据智能合约得到合约名称;其中,本方法的实施主体是系统,本步骤的目的是获取合约名称,本步骤中指的数据智能合约并不是所有字段都已更新好的数据智能合约,当其内部的某些信息发生变化时,合约内部存储的数据地址和关联合约地址会相应的发生变化。创建数据智能合约也可以称为部署数据智能合约,创建数据智能合约的过程就是根据集体的业务需要初始化业务数据。创建数据智能合约的同时会生成数据智能合约的合约名称,可以理解的是合约名称也是根据具体的业务需要来设定的。由于合约名称是根据具体的业务需要来设定的,所以合约名称中包含有描述该数据智能合约的业务用途。当然,在描述合约名称的业务用途时,尽量采用统一的格式,以便对数据智能合约中的内容进行解析。因本文档来自技高网...
一种区块链中数据智能合约生成的方法及系统

【技术保护点】
一种区块链中数据智能合约生成的方法,其特征在于,所述方法包括:根据业务需求创建所述数据智能合约得到合约名称;当所述数据智能合约的合约信息发生变化时,根据数据智能合约的内容通过数据管理接口查询数据列表,得到数据地址和关联合约地址;根据所述合约名称、所述数据地址和所述关联合约地址生成所述数据智能合约。

【技术特征摘要】
1.一种区块链中数据智能合约生成的方法,其特征在于,所述方法包括:根据业务需求创建所述数据智能合约得到合约名称;当所述数据智能合约的合约信息发生变化时,根据数据智能合约的内容通过数据管理接口查询数据列表,得到数据地址和关联合约地址;根据所述合约名称、所述数据地址和所述关联合约地址生成所述数据智能合约。2.根据权利要求1所述方法,其特征在于,所述根据数据智能合约的内容通过数据管理接口查询数据列表,得到数据地址和关联合约地址包括:判断创建所述数据智能合约过程中使用的智能合约语言是否支持遍历所述数据列表中所有的与映射相关的值;若所述智能合约语言不支持遍历所述数据列表中所有的与映射相关的所述值,则利用名称获取接口查询所述数据智能合约的所述内容,得到数据名称和关联合约名称;通过数据地址获取接口根据所述数据名称查询所述数据列表,得到所述数据地址;通过合约地址获取接口根据所述关联合约名称查询所述数据列表,得到所述关联合约地址。3.根据权利要求2所述方法,其特征在于,在以太坊规范的虚拟机环境中,根据所述合约名称、所述数据地址和所述关联合约地址生成所述数据智能合约包括:根据所述合约名称、所述数据地址、所述关联合约地址、所述数据名称和所述关联合约名称生成嵌套结构的所述数据智能合约。4.根据权利要求3所述方法,其特征在于,所述根据业务需求创建所述数据智能合约得到合约名称包括:根据所述业务需求生成代理合约,并将需要创建所述数据智能合约的数据发送给所述代理合约;利用所述代理合约根据所述数据的所述业务需求创建所述数据智能合约,得到所述合...

【专利技术属性】
技术研发人员:侯德光张一锋
申请(专利权)人:中钞信用卡产业发展有限公司杭州区块链技术研究院
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1