用于在区块链网络中统计用户智能合约的方法和装置与流程

文档序号:16469686发布日期:2019-01-02 22:59阅读:114来源:国知局
用于在区块链网络中统计用户智能合约的方法和装置与流程

概括地说,本公开的实施例涉及信息技术领域,更具体地说,涉及用于在区块链网络中统计用户智能合约的方法、装置及计算机可读存储介质。



背景技术:

区块链是用分布式数据库识别、传播和记载信息的智能化对等网络,也称为价值互联网。区块链具有去中心化、反篡改、数据一致性存储、过程透明可追踪等技术优势,其被认为在金融、征信、物联网、经济贸易结算、资产管理等众多领域都拥有广泛的应用前景。

智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议,其能够表现为在区块链上准确运行的计算机程序。用户通过使用智能合约进行事务、共享数据、建立信任,并由区块链技术的特性而保障数据的存储、读取以及执行整个过程透明可跟踪、不可篡改。每个智能合约的安装和运行需要一定的资源。

然而,目前并没有对区块链上运行的智能合约进行统计的解决方案,而在缺乏统计的情况下,很可能出现人为刷智能合约调用次数等欺诈行为,不能提供客观公正的统计数据。



技术实现要素:

总体上,本公开的实施例提供了用于在区块链网络中统计用户智能合约的方法、装置及计算机可读存储介质以至少部分地解决现有技术的上述及其它潜在问题。

在本公开的实施例的第一方面,提供了一种用于在区块链网络中统计用户智能合约的方法。该方法包括:a.在执行用户智能合约的过程中,获取所述用户智能合约的调用信息,并调用统计服务智能合约;b.通过执行所述统计服务智能合约,基于所述调用信息来更新被写入区块链账本中的所述用户智能合约的调用统计结果;c.响应于来自客户端的统计请求,从所述区块链账本中读取各个用户智能合约的调用统计结果,并且基于所述各个用户智能合约的调用统计结果生成统计排名数据;d.向所述客户端提供所述统计排名数据。

在本公开的实施例的第二方面,提供了一种用于在区块链网络中统计用户智能合约的装置。该装置包括:存储器,其用于存储指令;处理器,其耦合到存储器,当所述指令被执行时使得所述处理器执行以下操作:a.在执行用户智能合约的过程中,获取所述用户智能合约的调用信息,并调用统计服务智能合约;b.通过执行所述统计服务智能合约,基于所述调用信息来更新被写入区块链账本中的所述用户智能合约的调用统计结果;c.响应于来自客户端的统计请求,从所述区块链账本中读取各个用户智能合约的调用统计结果,并且基于所述各个用户智能合约的调用统计结果生成统计排名数据;d.向所述用户提供所述统计排名数据。

在本公开的实施例的第三方面,提供了一种计算机可读存储介质。该计算机可读存储介质存储有指令,所述指令用于执行根据本公开的实施例的第一方面描述的方法。

本公开的实施例提供了用于在区块链网络中统计用户智能合约的方案,该方案实现了用专门的统计服务智能合约针对各种用户智能合约的调用提供统计服务,可以防止人为刷智能合约调用次数等欺诈行为,并提供客观公正的统计数据。

附图说明

结合附图并参考以下详细描述,本公开各实施例的上述和其它特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:

图1示出了本公开的实施例可以应用于其中的示例性区块链网络100的示意架构图;

图2示出了根据本公开的实施例的示例性区块链节点200的示意图;

图3示出了根据本公开的实施例的用于在区块链网络中统计用户智能合约的示例性方法300的流程图;

图4示出了根据本公开的实施例的用于在区块链网络中统计用户智能合约的示例性装置400。

具体实施方式

现将结合附图对本公开的实施例进行具体的描述。应当注意的是,附图中对相似的部件或者功能组件可能使用同样的数字标示。所附附图仅仅旨在说明本公开的实施例。本领字段的技术人员可以在不偏离本公开精神和保护范围的基础上从下述描述得到替代的实施方式。

如本文中所述,术语“包括”及其各种变体可以被理解为开放式术语,其意味着“包括但不限于”。术语“基于”可以被理解为“至少部分地基于”。术语“一个实施例”可以被理解为“至少一个实施例”。术语“另一实施例”可以被理解为“至少一个其它实施例”。本文使用词语“示例性”表示“充当示例、实例或举例说明”。本文中被描述为“示例性”的任何实施例都并非必然解释为对于其它实施例而言是优选的或有优势的。

为了便于描述,下面对本公开内容中出现的一些术语进行说明,应当理解,本申请所使用的术语应解释为具有与其在本申请说明书的上下文及有关领域中的意义一致的意义。

智能合约是运行在区块链节点上的业务逻辑代码,是用来构建去中心化应用的基石。智能合约的运行需要一定的资源,通常其在沙盒中运行,沙盒是指智能合约的运行环境。该运行环境可以是完全隔离或部分隔离的。在一些实施例中,沙盒是智能合约容器或虚拟机。

在本公开内容中,术语“智能合约商店”是指具有用户界面的授权服务中心。例如,用户可以通过授权服务中心的用户界面浏览智能合约的基本信息、购买智能合约等。智能合约商店可以提供搜索引擎以搜索智能合约,并获取智能合约的排名信息(例如,根据智能合约的总调用次数、平均调用价格、平均调用响应时间等进行排名)。该排名信息中的至少一部分可以是来自区块链网络的统计排名数据。

在本公开内容中,术语“智能合约搜索平台”是一种智能合约服务平台,它提供搜索引擎以搜索智能合约并浏览智能合约的基本信息。智能合约搜索平台可以获取智能合约的排名信息(例如,根据智能合约的类型、下载总次数、总调用次数、平均调用价格、平均调用响应时间等进行排名)。该排名信息中的至少一部分可以是来自区块链网络的统计排名数据。

在本公开内容中,“统计服务智能合约”是指区块链中可用于对智能合约进行统计的一种智能合约,“用户智能合约”是指可用于区块链上的若干个用户或用户之间的事务行为的一种智能合约。用户智能合约可以由智能合约的提供者来提供,例如,可以从智能合约服务平台(例如,智能合约商店或智能合约搜索平台等)获得由智能合约的提供者提供的用户智能合约。

在本公开内容中,术语“智能合约的提供者”是具有许可他人使用智能合约的权利的人或单位,例如,其能够是智能合约的作者。

如前所述,当前缺少对用户智能合约的统计服务,无法帮助智能合约服务提供者分析用户访问行为,不能根据智能合约的使用情况进行排名以便于其他用户查询,也无法避免调用欺诈行为。也就是说,目前没有解决方案来提供对区块链网络中用户智能合约的调用的客观统计。

有鉴于此,本公开的实施例提供一种用于在区块链网络中统用户智能合约的解决方案。本公开的实施例可以应用于不同类型的区块链网络中。根据区块链参与方的不同,区块链通常被分为公有链、联盟链和私有链三种类型。公有链对外开放,用户无需任何授权就可以访问区块链网络和区块数据,发起各种交易。联盟链限制了只有联盟中的成员才能参与,区块链上的操作权限根据联盟定制的相关规则来确定。私有链一般在私有组织内部使用,区块链上的操作权限根据私有组织的自行规定执行。

如前所述,本公开的实施例利用专门的统计服务智能合约针对用户智能合约的调用提供统计服务,不仅可以发挥智能合约在成本效率方面的优势,而且可以防止人为地在智能合约服务平台刷调用次数等调用欺诈行为来影响排名,并且非常具有现实意义:可以帮助智能合约服务提供者分析用户访问行为;根据智能合约进行热度排名,方便其他用户搜索查询,例如,智能合约服务平台(例如,智能合约商店或搜索平台)可以根据智能合约的购买量或搜索量结合智能合约的统计排名数据进行热度值计算,从而基于热度值对智能合约的进行热度排名,并在其他用户搜索查询某类智能合约时,向用户优先提供此类智能合约中热度排名靠前的智能合约,热度排名有助于用户和智能合约服务提供者方便和快捷地找到用户感兴趣的智能合约;根据智能合约进行多维度统计分析,例如,将智能合约的类型结合智能合约的统计排名数据进行统计分析;等等。

图1示出了根据本公开的实施例可以应用于其中的示例性区块链网络100的示意架构图。

区块链网络100包括四个区块链节点101、102、103和104。由于区块链技术具有去中心化、分布式的特性,各区块链节点可通过各种通信介质互相交换信息。可以在各个区块链节点101-104处执行智能合约的管理操作,诸如智能合约的安装、升级等。另外,图1中的区块链节点的数量仅是示意而非限制,其可以是任意数量。例如,在云应用环境中,至少一个区块链节点可以对应于在云上创建的虚拟机实例,虚拟机实例中运行相应的智能合约。

图2示出了根据本公开的实施例的示例性区块链节点200的示意图。区块链节点200可以是图1的区块链网络100的节点的一个示例。如图所示,区块链节点200处可以通过例如智能合约运行引擎来运行三个用户智能合约211、212和213以及统计服务智能合约214。可以理解,为了便于描述本公开的实施例,未具体示出和描述所熟知的区块链节点200的其它部件和过程以免不必要地模糊本公开实施例的方面。

用户智能合约211-213可以提供各种功能以应用于金融、征信、物联网、经济贸易结算、资产管理等,统计服务智能合约214可以对节点200处的用户智能合约211-213的调用进行统计。另外,图2中的智能合约的数量仅是示意而非限制,其可以是任意数量。这些智能合约可以被放置在沙盒210(例如,容器或虚拟机)中运行,使得智能合约没有权限访问沙盒外部的资源和信息。

图3示出了根据本公开的实施例的用于统计区块链节点处的智能合约的示例性方法300的流程图。方法300可以在图1和图2的区块链节点处执行,下面将参照图2来描述方法300。如流程图所示,方法300包括以下步骤:

步骤301:在执行用户智能合约的过程中,获取所述用户智能合约的调用信息,并调用统计服务智能合约。在该步骤中,在执行用户智能合约时调用专门的统计服务智能合约来进行统计可以发挥智能合约在成本效率方面的优势,并有效地防止调用欺诈行为。在区块链节点200上,可以根据应用需要运行一个或多个用户智能合约。例如,当在区块链节点200处调用并执行用户智能合约211时,获取用户智能合约211的调用信息,并调用统计服务智能合约214。

步骤302:通过执行统计服务智能合约,基于该调用信息来更新被写入区块链账本中的该用户智能合约的调用统计结果。在该步骤中,利用用户智能合约的调用信息来更新写入区块链账本的调用统计结果可以有效地利用区块链的去中心、不可篡改的特点提供客观公正的统计数据。例如,在区块链节点200处执行统计服务智能合约214,以基于用户智能合约211的调用信息来更新写入到区块链账本中的用户智能合约211的调用统计结果。

步骤303:响应于来自客户端的统计请求,从区块链账本中读取各个用户智能合约的调用统计结果,并且基于各个用户智能合约的调用统计结果生成统计排名数据。在该步骤中,当存在来自客户端的统计请求时(例如,当用户通过智能合约服务平台进行搜索时,希望获得用户智能合约的统计排名等),可以通过统计服务智能合约从区块链账本中读取各个用户智能合约的调用统计结果,并且基于调用统计结果来生成统计排名数据,从而实现客观公正的统计。例如,客户端希望获得用户智能合约211-213的统计排名(例如,根据智能合约的总调用次数、平均调用价格、平均调用响应时间等进行排序),可以通过统计服务智能合约214从区块链账本中读取用户智能合约211-213的调用统计结果,并基于用户智能合约211-213的调用统计结果生成统计排名数据。

步骤304:向客户端提供统计排名数据。在该步骤中,将所生成的统计排名数据提供给客户端。

在一个实施例中,步骤301中获取用户智能合约的调用信息可以包括:获取用户智能合约的调用次数、调用价格、调用响应时间中的至少一项。例如,调用信息可以包括但不限于:用户智能合约的调用次数、调用价格、调用响应时间等,其中,调用次数可以表示智能合约被调用的次数,调用价格可以表示为了调用智能合约而产生的事务成本,调用响应时间可以表示调用智能合约后响应的快慢。例如,调用信息还可以包括但不限于:用户智能合约的调用地址、名称、类型、提供者信息、调用者信息等,其中,调用地址用于调用智能合约,名称可以作为智能合约的标识,类型可以例如根据智能合约的用途或以其它方式来划分,提供者信息可以表示智能合约的提供者(具有授权他人使用智能合约的权利的人或单位,例如,其可以是智能合约的服务提供者),调用者信息可以表示是哪个用户调用了智能合约。

在一个实施例中,对统计服务智能合约的调用被嵌入在用户智能合约中,并且步骤a中调用统计服务智能合约可以包括:将该调用信息作为统计服务智能合约的入口参数。例如,可以在用户智能合约211中嵌入用于向统计服务智能合约214发送调用消息的代码或者可以在用户智能合约211中嵌入用于加载统计服务智能合约214的调用的地址,使得在执行用户智能合约211的过程中可以调用统计服务智能合约214。统计服务智能合约214可以通过调用接口参数列表(即,入口参数)来获得如上文所描述的调用信息。

在一个实施例中,步骤301中获取用户智能合约的调用信息,并调用统计服务智能合约可以包括:获取用户智能合约的调用信息,并对统计服务智能合约进行单次调用或批量调用。对统计服务智能合约进行单次调用是指在每次执行用户智能合约的过程中都去调用一次统计服务智能合约,并将单次所获取的用户智能合约的调用信息作为统计服务智能合约的入口参数。

在一个实施例中,获取用户智能合约的调用信息,对统计服务智能合约进行批量调用可以包括:在每次执行用户智能合约的过程中,记录每次所获取的调用信息和该用户智能合约的执行次数;在所记录的执行次数的达到阈值次数时,将在该阈值次数的执行该用户智能合约的过程中所记录的调用信息作为统计服务智能合约的入口参数来调用统计服务智能合约。通过批量调用统计服务智能合约来对用户智能合约进行统计,可以实现一次性对多条调用信息(例如,多个调用次数、多个调用价格、多个调用响应时间)进行统计,因此可以避免频繁地调用统计服务智能合约以减少资源开销(例如,每次调用统计服务智能合约时需要消耗一定的资源)并减少读写区块链账本的操作。例如,假设阈值次数为5,在执行了第1、2、3、4次用户智能合约的过程后,当执行第5次用户智能合约时,由于记录的执行次数达到了阈值次数,将调用统计服务智能合约,同时记录的执行次数被重置为0,以便每执行5次用户智能合约才调用1次统计服务智能合约,从而实现对统计服务智能合约的批量调用。

在一个实施例中,步骤302中基于该调用信息来更新被写入区块链账本中的该用户智能合约的调用统计结果可以包括以下中的至少一项:基于用户智能合约的调用信息中的调用次数来更新调用统计结果中的总调用次数;基于用户智能合约的调用信息中的调用价格来更新调用统计结果中的平均调用价格;基于用户智能合约的调用信息中的调用响应时间来更新调用统计结果中的平均调用响应时间。例如,基于调用信息中的调用次数、调用价格、调用响应时间,通过对先前的总调用次数进行累加来更新总调用次数,通过对先前的平均调用价格和本次调用价格进行加权来更新平均调用价格,通过对先前的平均调用响应时间和本次调用响应时间进行加权来更新平均调用价格。

在一个实施例中,步骤303中各个用户智能合约的调用统计结果生成统计排名数据可以包括:通过对各个用户智能合约的调用统计结果中的总调用次数、平均调用价格或平均调用响应时间中的至少一项进行排序来生成统计排名数据。例如,统计服务智能合约214可以对从区块链账本中读取的用户智能合约211-213的调用统计结果中的总调用次数、平均调用价格或平均响应时间中的至少一项进行排序来生成统计排名数据。进一步地,可以基于各个用户智能合约的调用信息(例如,名称、类型、调用地址、提供者信息等)和调用统计结果进行多维度统计来获得各用户智能合约的统计排名。例如,在各个用户智能合约中,对于“知识产权申明/确权”类型的用户智能合约,按照总调用次数由高到低进行排序,以得到例如关于排名前三的用户智能合约作为统计排名数据。

在一个实施例中,在向用户提供统计排名数据时,可以向用户返回每一个列于统计排名数据中的用户智能合约的调用地址、名称等信息。

通过以上所描述的本公开的实施例,提供了用于在区块链网络中统计用户智能合约的方案,该方案解决了现有对区块链上运行的智能合约缺乏统计的问题。此外,该方案实现了用专门的统计服务智能合约针对各种用户智能的调用提供统计服务,不仅可以发挥智能合约在成本效率方面的优势,而且可以充分利用区块链的去中心化、不可篡改的特点(例如,智能合约必须执行、不容篡改、可追踪)为统计数据提供完全的客观公正性。

图4示出了根据本公开的实施例的用于在区块链网络中统计用户智能合约的装置400的示意图。装置400可以包括:存储器401和耦合到存储器401的处理器402。存储器401用于存储指令,当所述指令被执行时使得处理器402来执行本文所描述的各种方法(如图3的方法300)中的一个或多个动作或步骤。

存储器401可以包括易失性存储器和非易失性存储器,诸如rom(readonlymemory)、ram(randomaccessmemory)、移动盘、磁盘、光盘和u盘等。处理器402可以是中央处理器(cpu)、微控制器、专用集成电路(asic)、数字信号处理器(dsp)、现场可编程门阵列(fpga)或其它可编程逻辑器件、或是被配置为实现本公开的实施例的一个或多个集成电路等。

一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其它方面可以在可以由控制器、微处理器或其它计算设备执行的固件或软件中实施。当本公开的实施例的各方面被图示或描述为框图、流程图或使用某些其它图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其它计算设备,或其某些组合中实施。

作为示例,可以用通用处理器、dsp、asic、fpga或其它可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件或用于执行本文所述的功能的任意组合来实现或执行结合本公开所描述的各种示例性的逻辑块、模块和电路。通用处理器可以是微处理器,或者,处理器也可以是任何普通的处理器、控制器、微控制器或者状态机。处理器也可以实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器与dsp内核的结合,或者任何其它此种结构。

作为示例,本公开的实施例可以在机器可执行指令的上下文中被描述,机器可执行指令诸如包括在目标的真实或者虚拟处理器上的器件中执行的程序模块中。一般而言,程序模块包括例程、程序、库、对象、类、组件、数据结构等,其执行特定的任务或者实现特定的抽象数据结构。在各实施例中,程序模块的功能可以在所描述的程序模块之间合并或者分割。用于程序模块的机器可执行指令可以在本地或者分布式设备内执行。在分布式设备中,程序模块可以位于本地和远程存储介质二者中。

用于实现本公开的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其它可编程的数据处理装置的处理器,使得程序代码在被计算机或其它可编程的数据处理装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。

在本公开的上下文中,机器可读介质可以是包含或存储用于或有关于指令执行系统、装置或设备的程序的任何有形介质。机器可读介质可以是机器可读信号介质或机器可读存储介质。机器可读介质可以包括但不限于电子的、磁的、光学的、电磁的、红外的或半导体系统、装置或设备,或其任意合适的组合。机器可读存储介质的更详细示例包括带有一根或多根导线的电气连接、便携式计算机磁盘、硬盘、ram、rom、可擦除可编程只读存储器(eprom或闪存)、光存储设备、磁存储设备,或其任意合适的组合。

另外,尽管操作以特定顺序被描绘,但这并不应该理解为要求此类操作以示出的特定顺序或以相继顺序完成,或者执行所有图示的操作以获取期望结果。在某些情况下,多任务或并行处理会是有益的。同样地,尽管上述讨论包含了某些特定的实施细节,但这并不应解释为限制任何发明或权利要求的范围,而应解释为对可以针对特定发明的特定实施例的描述。本说明书中在分开的实施例的上下文中描述的某些特征也可以整合实施在单个实施例中。反之,在单个实施例的上下文中描述的各种特征也可以分离地在多个实施例或在任意合适的子组合中实施。

虽然已经参考若干具体实施例描述了本公开的实施例,但是应该理解,本公开的实施例并不限于所公开的具体实施例。本公开的实施例旨在涵盖在所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1