一种区块链中智能合约的发布方法及装置制造方法及图纸

技术编号:21972455 阅读:34 留言:0更新日期:2019-08-28 01:41
本发明专利技术实施例涉及科技金融(Fintech)领域,尤其涉及一种区块链(Block chain)中智能合约的发布方法及装置,用以提高智能合约的发布效率和准确率。本发明专利技术实施例包括:获取待发布的智能合约;遍历所述待发布的智能合约,确定所述待发布的智能合约之间的依赖关系;依据所述依赖关系,建立N个依赖树,所述依赖树的一个节点对应一个智能合约;N≥1;针对任一依赖树,从所述依赖树的叶子节点开始,直至所述依赖树的根节点,依次发布各节点所对应的智能合约。

A Method and Device for Issuing Intelligent Contracts in Block Chain

【技术实现步骤摘要】
一种区块链中智能合约的发布方法及装置
本专利技术涉及科技金融(Fintech)领域,尤其涉及一种区块链中智能合约的发布方法及装置。
技术介绍
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Finteh)转变,区块链(Blockchain)技术也不例外,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。智能合约(Smartcontract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议,其执行过程以交易的形式在区块链上共识、确认。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约为一种运行在区块链上的代码片段,需要发布到区块链上,才能运行。现有区块链的一个应用项目根据功能设置多个模块,每个模块根据功能又会划分为几个数据结构,所有功能均利用智能合约实现,运行在区块链上。目前对于每个智能合约的发布都需要单独写发布代码,如果智能合约有更新,之前写的发布代码需要重新编写,并重新整理智能合约之间的依赖关系,耗时耗力。
技术实现思路
本申请提供一种区块链中智能合约的发布方法及装置,用以提高智能合约的发布效率和准确率。本专利技术实施例提供的一种区块链中智能合约的发布方法,包括:获取待发布的智能合约;遍历所述待发布的智能合约,确定所述待发布的智能合约之间的依赖关系;依据所述依赖关系,建立N个依赖树,所述依赖树的一个节点对应一个智能合约;N≥1;针对任一依赖树,从所述依赖树的叶子节点开始,直至所述依赖树的根节点,依次发布各节点所对应的智能合约。一种可选的实施例中,所述遍历所述待发布的智能合约,确定所述待发布的智能合约之间的依赖关系之前,还包括:针对任一智能合约,执行以下步骤:识别所述智能合约调用的地址参数;所述地址参数用于指示所述智能合约调用的智能合约;将所述地址参数标准化,以确定所述地址参数对应的智能合约。一种可选的实施例中,所述从所述依赖树的叶子节点开始,直至所述依赖树的根节点,依次发布各节点所对应的智能合约,包括:对所述依赖树的叶子节点对应的智能合约进行发布;将智能合约发布成功的叶子节点从所述依赖树中移除;重复对所述依赖树的叶子节点对应的智能合约进行发布的步骤,直至所述依赖树中只存在根节点;对所述根节点对应的智能合约进行发布。一种可选的实施例中,所述依据所述依赖关系,建立N个依赖树之后,还包括:接收智能合约变更请求;根据所述智能合约变更请求,更新依赖树中的节点。本专利技术实施例还提供一种区块链中智能合约的发布装置,包括:获取单元,用于获取待发布的智能合约;确定单元,用于遍历所述待发布的智能合约,确定所述待发布的智能合约之间的依赖关系;建立单元,用于依据所述依赖关系,建立N个依赖树,所述依赖树的一个节点对应一个智能合约;N≥1;发布单元,用于针对任一依赖树,从所述依赖树的叶子节点开始,直至所述依赖树的根节点,依次发布各节点所对应的智能合约。一种可选的实施例中,所述确定单元,还用于:针对任一智能合约,执行以下步骤:识别所述智能合约调用的地址参数;所述地址参数用于指示所述智能合约调用的智能合约;将所述地址参数标准化,以确定所述地址参数对应的智能合约。一种可选的实施例中,所述发布单元,具体用于:对所述依赖树的叶子节点对应的智能合约进行发布;将智能合约发布成功的叶子节点从所述依赖树中移除;重复对所述依赖树的叶子节点对应的智能合约进行发布的步骤,直至所述依赖树中只存在根节点;对所述根节点对应的智能合约进行发布。一种可选的实施例中,所述获取单元,还用于接收智能合约变更请求;所述建立单元,还用于根据所述智能合约变更请求,更新依赖树中的节点。本专利技术实施例还提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。本专利技术实施例还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上所述的方法。本专利技术实施例中,获取待发布的智能合约,遍历所有待发布的智能合约,确定智能合约之间的依赖关系。依据依赖关系,建立N个依赖树,其中依赖树的一个节点对应一个智能合约,N≥1。针对任一依赖树,从该依赖主的叶子节点开始,直至该依赖树的根节点,依次发布各节点对应的智能合约。从而,通过构建依赖树发布智能合约,以树的遍历来自动和高效的发布智能合约,不需要人工整理发布顺序,不担心错乱,提高了智能合约发布准确率。此外,若有智能节点更新或智能节点之间的依赖关系变更,无需重复编写代码,只需改变依赖树中的节点或者节点顺序,重新构造一个新的依赖树,并重新执行一次发布遍历依赖树即可,从而极大的简化了智能合约的发布流程,提高了发布效率。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种区块链的应用项目的结构示意图;图2为本专利技术实施例提供的一种区块链中智能合约的发布方法的流程示意图;图3a-图3f为本专利技术实施例提供的依赖树建立过程中的结构示意图;图4为本专利技术具体实施例一提供的智能合约的发布过程的流程示意图;图5为本专利技术具体实施例二提供的智能合约更新后的发布过程的流程示意图;图6为本专利技术实施例提供的一种区块链中智能合约的发布装置的结构示意图;图7为本专利技术实施例提供的电子设备的结构示意图。具体实施方式为了使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步地详细描述,显然,所描述的实施例仅仅是本专利技术一部份实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。为了便于理解,下面对本专利技术实施例中可能涉及的名词进行定义和解释。区块链:是由一系列区块组成的一条链,每个块上除了记录本块的数据还会记录上一块的Hash(哈希)值,通过这种方式组成一条链。区块链的核心理念有两个,一个是密码学技术,另一个是去中心化思想,基于这两个理念做到区块链上的历史信息无法被篡改。一个区块由块头和块体组成,其中块头定义包括该区块高度h,上一个区块的Hash值prevHash等重要字段,而块体主要存储交易数据。智能合约:一种可以运行在区块链上的代码片段,智能合约的执行过程会以交易的形式在区块链上共识、确认。共识:一种区块链各节点对某个交易的正确性达成一致的算法。web3j:使用HTTP(超文本传输协议,HyperTextTransferProtocol)或IPC(进程间通信,Inter-ProcessCommunication)连接与本地或远程以太坊节点交互的库集合。WeIdentiy:一套分布式多中心的技术解决方案,可承载实体对象(人或者物)的现实身份与链上身份的可信映射、以及实现实体对象之间安全的访问授权与数据交换。Solidity:一种智能合约高级语言,运行在以太坊虚拟机(EVM)之上本文档来自技高网...

【技术保护点】
1.一种区块链中智能合约的发布方法,其特征在于,包括:获取待发布的智能合约;遍历所述待发布的智能合约,确定所述待发布的智能合约之间的依赖关系;依据所述依赖关系,建立N个依赖树,所述依赖树的一个节点对应一个智能合约;N≥1;针对任一依赖树,从所述依赖树的叶子节点开始,直至所述依赖树的根节点,依次发布各节点所对应的智能合约。

【技术特征摘要】
1.一种区块链中智能合约的发布方法,其特征在于,包括:获取待发布的智能合约;遍历所述待发布的智能合约,确定所述待发布的智能合约之间的依赖关系;依据所述依赖关系,建立N个依赖树,所述依赖树的一个节点对应一个智能合约;N≥1;针对任一依赖树,从所述依赖树的叶子节点开始,直至所述依赖树的根节点,依次发布各节点所对应的智能合约。2.如权利要求1所述的方法,其特征在于,所述遍历所述待发布的智能合约,确定所述待发布的智能合约之间的依赖关系之前,还包括:针对任一智能合约,执行以下步骤:识别所述智能合约调用的地址参数;所述地址参数用于指示所述智能合约调用的智能合约;将所述地址参数标准化,以确定所述地址参数对应的智能合约。3.如权利要求1所述的方法,其特征在于,所述从所述依赖树的叶子节点开始,直至所述依赖树的根节点,依次发布各节点所对应的智能合约,包括:对所述依赖树的叶子节点对应的智能合约进行发布;将智能合约发布成功的叶子节点从所述依赖树中移除;重复对所述依赖树的叶子节点对应的智能合约进行发布的步骤,直至所述依赖树中只存在根节点;对所述根节点对应的智能合约进行发布。4.如权利要求1所述的方法,其特征在于,所述依据所述依赖关系,建立N个依赖树之后,还包括:接收智能合约变更请求;根据所述智能合约变更请求,更新依赖树中的节点。5.一种区块链中智能合约的发布装置,其特征在于,包括:获取单元,用于获取待发布的智能合约;确定单元,用于遍历所述待发布的智能合约,确定所述待发布的智能合约之间...

【专利技术属性】
技术研发人员:陈浩张俊麒胡朝新苏小康张开翔范瑞彬
申请(专利权)人:深圳前海微众银行股份有限公司
类型:发明
国别省市:广东,44

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

1