CN112003942A - 链下数据请求响应方法、系统、节点设备与存储介质 - Google Patents
链下数据请求响应方法、系统、节点设备与存储介质 Download PDFInfo
- Publication number
- CN112003942A CN112003942A CN202010861954.7A CN202010861954A CN112003942A CN 112003942 A CN112003942 A CN 112003942A CN 202010861954 A CN202010861954 A CN 202010861954A CN 112003942 A CN112003942 A CN 112003942A
- Authority
- CN
- China
- Prior art keywords
- data
- nodes
- talker
- request
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种链下数据请求响应方法、系统、节点设备与存储介质,该方法包括:响应于接收到智能合约中的链下数据请求,生成第一数量的随机数;链下数据请求的请求信息包括数据描述和数据聚合规则;根据第一数量的随机数和预言机网络中的各个预言机节点的声誉分数,从预言机网络中选择第一数量的预言机节点;分别向选定的每个预言机节点发送链下数据请求;对选定的所有预言机节点根据数据描述所获取到的链下数据,按照数据聚合规则进行聚合操作,得到数据聚合结果;响应于共识节点集对数据聚合结果达成共识,向智能合约返回数据聚合结果;共识节点集由预言机网络中的若干预言机节点组成。本方案可降低选择恶意预言机的概率,提高安全性。
Description
技术领域
本申请涉及区块链技术领域,特别是涉及一种链下数据请求响应方法、系统、节点设备与存储介质。
背景技术
区块链(Blockchain)具有去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等特点。智能合约(smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议,其可在满足其协议代码中写入的条件时自行执行。区块链是一个封闭的环境,链上无法主动获取链下真实世界的数据,因此,预言机应运而生。通过预言机,可查找和验证真实世界的数据,并以加密的方式将信息提交给智能合约。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种链下数据请求响应方法、系统、节点设备与存储介质。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书的第一方面,本说明书提供了一种链下数据请求响应方法,该方法包括:
响应于接收到智能合约中的链下数据请求,生成第一数量的随机数;所述链下数据请求的请求信息包括数据描述和数据聚合规则;
根据所述第一数量的随机数和预言机网络中的各个预言机节点的声誉分数,从所述预言机网络中选择第一数量的预言机节点;
分别向选定的每个所述预言机节点发送所述链下数据请求;
对选定的所有所述预言机节点根据所述数据描述所获取到的链下数据,按照所述数据聚合规则进行聚合操作,得到数据聚合结果;
响应于所述共识节点集对所述数据聚合结果达成共识,向所述智能合约返回所述数据聚合结果;所述共识节点集由所述预言机网络中的若干预言机节点组成。
根据本说明书的第二方面,本说明书提供了一种链下数据请求响应系统,该系统包括:随机数生成模块、节点选择模块、发送请求模块、数据聚合模块和数据返回模块;
随机数生成模块用于响应于接收到智能合约中的链下数据请求,生成第一数量的随机数;所述链下数据请求的请求信息包括数据描述和数据聚合规则;
节点选择模块用于根据所述第一数量的随机数和预言机网络中的各个预言机节点的声誉分数,从所述预言机网络中选择第一数量的预言机节点;
发送请求模块用于分别向选定的每个所述预言机节点发送所述链下数据请求;
数据聚合模块用于对选定的所有所述预言机节点根据所述数据描述所获取到的链下数据,按照所述数据聚合规则进行聚合操作,得到数据聚合结果;
数据返回模块用于响应于所述共识节点集对所述数据聚合结果达成共识,向所述智能合约返回所述数据聚合结果;所述共识节点集由所述预言机网络中的若干预言机节点组成。
根据本说明书的第三方面,本说明书提供了一种节点设备,所述节点设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
响应于接收到智能合约中的链下数据请求,生成第一数量的随机数;所述链下数据请求的请求信息包括数据描述和数据聚合规则;
根据所述第一数量的随机数和预言机网络中的各个预言机节点的声誉分数,从所述预言机网络中选择第一数量的预言机节点;
分别向选定的每个所述预言机节点发送所述链下数据请求;
对选定的所有所述预言机节点根据所述数据描述所获取到的链下数据,按照所述数据聚合规则进行聚合操作,得到数据聚合结果;
响应于所述共识节点集对所述数据聚合结果达成共识,向所述智能合约返回所述数据聚合结果;所述共识节点集由所述预言机网络中的若干预言机节点组成。
根据本说明书的第六方面,本说明书提供了一种存储介质,该存储介质为计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
响应于接收到智能合约中的链下数据请求,生成第一数量的随机数;所述链下数据请求的请求信息包括数据描述和数据聚合规则;
根据所述第一数量的随机数和预言机网络中的各个预言机节点的声誉分数,从所述预言机网络中选择第一数量的预言机节点;
分别向选定的每个所述预言机节点发送所述链下数据请求;
对选定的所有所述预言机节点根据所述数据描述所获取到的链下数据,按照所述数据聚合规则进行聚合操作,得到数据聚合结果;
响应于所述共识节点集对所述数据聚合结果达成共识,向所述智能合约返回所述数据聚合结果;所述共识节点集由所述预言机网络中的若干预言机节点组成。
本说明书提供的链下数据请求响应方法、系统、节点设备与存储介质,响应于预言机网络接收到智能合约中的链下数据请求,生成第一数量的随机数,根据第一数量的随机数和预言机网络中的各个预言机节点的声誉分数,从预言机网络中选择第一数量的预言机节点,通过随机数保证了选择预言机节点的随机性,保证所有的预言机节点皆有被选中的可能性,利于减轻部分预言机节点的压力,使得预言机节点的调度更加均衡;结合预言机本身的声誉分数,有利于降低选择到恶意预言机的概率,从而提高安全性。另外,链下数据请求的请求信息包括数据描述和数据聚合规则,通过将链下数据请求分别发送给第一数量的预言机节点,通过冗余保证链下数据的可靠性;对选定的所有预言机节点根据数据描述所获取到的链下数据,按照数据聚合规则进行聚合操作,得到数据聚合结果,可灵活适应用户对数据的不同聚合要求,而且在数据返回至区块链之前进行聚合操作,可有效降低区块链节点的处理压力。
附图说明
图1为本说明书一示例性实施例中的一种链下数据请求响应方法的应用架构示意图;
图2为本说明书一示例性实施例中的一种链下数据请求响应方法的流程图;
图3为本说明书一示例性实施例中的又一种链下数据请求响应方法的流程图;
图4为本说明书一示例性实施例中的又一种链下数据请求响应方法的流程图;
图5为本说明书一示例性实施例中的预言机区间分布的示意图;
图6为本说明书一示例性实施例中的另一种预言机区间分布的示意图;
图7为本说明书一示例性实施例中的链下数据请求响应系统的结构框图;
图8为本说明书一示例性实施例中的节点设备的内部结构图。
具体实施方式
这里将结合附图详细地对示例性实施例进行说明。下面的描述涉及附图时,除非另有表示,不同附图中出现的相同数字表示相同或相似的元素。应当理解,此处描述的示例性实施例并不代表与说明书一个或多个实施例相一致的所有实施方式。
还应当理解,本说明书和权利要求书及上述附图中出现的术语“和/或”,是指包含一个或多个相关联的列出项的任何或所有可能组合。
还应当理解,本说明书和权利要求书及上述附图中出现的“第一”、“第二”等前缀词语,仅用于区别同一类型的信息,而不必用于描述特定的顺序或先后次序。
需要说明的是,在其他实施例中并不一定按照说明书示出和描述的顺序来执行相应方法的步骤。在其他实施例中,其方法所包括的步骤可比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
区块链是由区块(Block)形成的加密的、链式的交易的存储结构。每个区块的头部既可以包括区块中所有交易的哈希值,同时也包含前一个区块中所有交易的哈希值,从而基于哈希值实现区块中交易的防篡改和防伪造;新产生的交易被填充到区块并经过区块链网络中节点的共识后,会被追加到区块链的尾部从而形成链式的增长。
区块链网络为通过共识的方式将新区块纳入区块链的一系列的节点的集合。区块链网络可以包括多个节点,该多个节点形成一个去中心化的、能够协同运转的数据库存储系统。
智能合约(smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议,其可在满足其协议代码中写入的条件时自行执行。区块链是一个封闭的环境,链上无法主动获取链下真实世界的数据,因此,预言机应运而生。
预言机则是一个能将链下数据输入到链内,保障链上数据真实性的工具。预言机节点用于提供预言机服务。若智能合约中存在链下数据请求,当部署于区块链的智能合约被调用时,通过预言机节点提供预言机服务,能够对该链下数据请求进行响应;预言机节点向外部数据源查找并获取链下数据,并将链下数据提交给智能合约。
然而,单独的预言机节点无法满足用户对链下数据可靠性的要求。为此,本说明书引入预言机网络。预言机网络是预言机节点的集合。预言机网络包括共识节点集。共识节点集由预言机网络中的若干预言机节点组成。共识节点集可用于对预言机节点获取到的数据达成共识。在示例性实施例中,共识节点集可以去中心化的方式从预言机网络中产生,例如,可通过区块链网络中的节点对预言机网络的预言机进行投票选举。
图1是本说明书一示例性实施例中的一种链下数据请求响应方法的应用架构示意图。图1中,预言机网络2被示例性地划分为共识节点集21和普通节点集23。共识节点集21中的预言机节点除了具有普通节点集23中的预言机节点的作用之外,还具有共识等作用。共识节点集21和普通节点集23内的空心圆圈用于示意性地表示预言机节点。共识节点集21和普通节点集23的预言机节点之间可相互通信。具体地,普通节点集23的节点数量可多于共识节点集21的节点数量。需要说明的是,图1中的节点数量仅为示例,在实际应用中,共识节点集21和普通节点集23的节点数量不做限定。
当部署于区块链1中的智能合约10被调用时,智能合约10中的链下数据请求被发送到预言机网络2。当共识节点集21监听到智能合约10的链下数据请求时,共识节点集21中的领导节点211从预言机网络2中选择预言机节点来响应链下数据请求,向外部数据源3获取链下数据,并将获取到的链下数据返回给智能合约10。领导节点亦称作控制节点,共识节点集可定期采用共识节点集中的其它预言机节点替代原先的领导节点。可选的,领导节点211可通过轮询等方式从共识节点集中选出。
图2是本说明书一示例性实施例中的一种链下数据请求响应方法的流程图。如图2所示,该方法可应用于如图1所示的领导节点211。该方法可包括以下步骤:
步骤S210、响应于接收到智能合约中的链下数据请求,生成第一数量的随机数。
用户将智能合约部署于区块链中,以通过在智能合约被调用时向预言机网络发出链下数据请求。合约中的链下数据请求的请求信息包括数据描述和数据聚合规则等请求信息。
步骤S212、根据第一数量的随机数和预言机网络中的各个预言机节点的声誉分数,从预言机网络中选择第一数量的预言机节点。
预言机节点的声誉分数用于表示不同预言机节点的权重。预言机网络中的各个预言机的声誉分数可通过预设的声誉评价模型进行计算。预言机节点的选择一方面因随机数而具备随机性,另一方面受预言机节点的声誉分数影响,更利于实现预言机节点调度的均衡。
步骤S214、分别向选定的每个预言机节点发送链下数据请求。
步骤S216、对选定的所有预言机节点根据数据描述所获取到的链下数据,按照数据聚合规则进行聚合操作,得到数据聚合结果。
具体地,领导节点分发链下数据请求时,可将该请求的唯一标识(请求信息的哈希值)与链下数据请求一同分发给选定的预言机节点。
预言机节点根据数据描述向链下数据API发送数据请求,以获取链下数据。选定的预言机节点根据数据描述获取到链下数据,可采用标准的数据模板将获取到的数据与该请求的唯一标识报告给共识节点集的每个预言机节点。共识节点集的领导节点则按照数据聚合规则,对选定的所有预言机节点报告的链下数据进行聚合操作。
数据描述可包括所请求的数据类型和数据索引等描述信息。
数据聚合规则为用户定义的数据聚合操作,例如,可以是对选定的预言机节点获取到的链下数据进行取中位数,或者取平均数、取多数值等操作。
当选定的预言机节点为多个时,会出现数据冗余,可通过对获取到的多份链下数据进行数据聚合操作,得到唯一数据结果,通过数据聚合操作提高数据的可靠性。
在该实施例中,还可在数据聚合操作之前,筛查具有明显错误的数据。若预言机节点获取到的数据出现明显错误,则可在进行数据聚合操作之前将该预言机节点的数据筛除。
步骤S218、响应于共识节点集对数据聚合结果达成共识,向智能合约返回数据聚合结果。
具体地,可通过领导节点主导共识节点集对数据聚合结果进行共识。
共识委员会的其他节点可以根据各自收集的数据自行计算,对领导节点的数据聚合结果进行验证;进一步还可对前面步骤中领导节点的行为进行监督,例如,对领导节点生成的随机数进行验证、对领导节点所广播内容进行验证等,并根据监督结果对数据聚合结果进行表态。在共识节点集完成数据共识后,可通过领导节点将数据聚合结果返回给智能合约,从而使得智能合约中的链下数据请求得到响应,以完成智能合约的执行。
该示例性实施例通过随机数保证了选择预言机节点的随机性,保证所有的预言机节点皆有被选中的可能性,利于减轻部分预言机节点的压力,使得预言机节点的调度更加均衡;结合预言机本身的声誉分数,有利于降低选择到恶意预言机的概率,从而提高安全性。
另外,将链下数据请求分别发送给第一数量的预言机节点,通过冗余保证链下数据的可靠性;对选定的所有预言机节点根据数据描述所获取到的链下数据,按照数据聚合规则进行聚合操作,得到数据聚合结果,可灵活适应用户对数据的不同聚合要求,而且在数据返回至区块链之前进行聚合操作,可有效降低区块链节点的处理压力。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图3是本说明书一示例性实施例中的又一种链下数据请求响应方法的流程图。如图3所示,该方法可应用于如图1所示的领导节点211。该方法可包括以下步骤:
步骤S410、响应于接收到智能合约中的链下数据请求,基于VRF(VerifiableRandom Function,随机可验证函数),根据持有的私钥和原始种子生成随机数。
种子需是领导节点无法预先确定的。具体地,原始种子可包括该请求的唯一标识、最新的区块哈希和领导节点的私钥签名。该请求的唯一标识为链下数据请求的请求信息的哈希值。最新的区块哈希为领导节点无法预先确定的。进一步,若区块链为主侧链架构,则最新的区块哈希可包括主链最新区块哈希和侧链最新区块哈希。
领导节点基于VRF根据持有的私钥和原始种子生成的随机数为可验证随机数,由共识节点集的其他节点对该随机数进行验证,防止领导节点作恶,保证预言机节点选择的随机性。需要说明的是,基于VRF生成随机数以及对该随机数进行验证的技术为本领域公知常识,此处不再赘述。
步骤S412、将生成的随机数作为下一个随机数的种子,基于VRF,根据持有的私钥和所述下一个随机数的种子生成所述下一个随机数。
相比于通过原始种子生成随机数的方式来说,在领导节点生成下一个随机数时,通过将生成的随机数作为下一个随机数的种子,而无需等待最新的区块哈希,即可保证领导节点无法预先确定种子,从而防止领导节点作恶。
步骤S414、根据第一数量的随机数和预言机网络中的各个预言机节点的声誉分数,从预言机网络中选择第一数量的预言机节点。
进一步,步骤S414包括:对每个随机数落在几何分布中的区间所对应的预言机节点进行选定。其中,几何分布由预言机网络中的各个预言机节点的声誉分数在总评分中的占比所形成。总评分为各个预言机的声誉分数的和。
预言机节点的声誉分数可由共识节点集的节点进行评分,也可由区块链中的节点进行评分,还可由其他第三方进行评分,此处不做限定。
具体地,可基于预言机节点的抵押权重和服务表现评分计算声誉分数。
其中,预言机节点的抵押权重为预言机节点的抵押品的数量。
即,从预言机节点的抵押权重和服务表现来计算预言机节点的声誉分数,可使声誉分数的粒度更加细化,利于降低选择到恶意预言机的概率。
预言机在被选中之后可能会出现没有响应请求的情况,或者在响应请求之后可能会出现请求数据出现明显错误而没有被采纳的情况。因此,节点的服务表现可通过节点的响应次数/被选中次数,和/或,采纳次数/响应次数来进行评分。
预言机节点的声誉分数可通过如下公式计算得到:
其中,RepSore为预言机的声誉分数;W为预言机的抵押权重;S为预言机的服务表现评分,S的初始值为0,根据每一次的服务表现进行加分或减分,取值范围为(-∞,+∞)。
步骤S416、分别向选定的每个预言机节点发送链下数据请求。
进一步,链下数据请求的请求信息还包括预言机描述。具体地,预言机描述可包括所需预言机数目,即第一数量。预言机描述还可以包括预言机抵押要求。在其他实施方式中,第一数量也可以是预设数量。
进一步,链下数据请求的请求信息还包括用户报价和请求时间。
步骤S418、对选定的所有预言机节点根据数据描述所获取到的链下数据,按照数据聚合规则进行聚合操作,得到数据聚合结果。
步骤S420、响应于共识节点集对数据聚合结果达成共识,向智能合约返回数据聚合结果。
应该理解的是,虽然图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图4为本说明书一示例性实施例中的又一种链下数据请求响应方法的流程图。如图4所示,该方法可应用于如图1所示的领导节点211。该方法可包括以下步骤:
步骤S610、响应于接收到智能合约中的链下数据请求,生成第一数量的随机数。
步骤S612、对每个随机数落在几何分布中的区间所对应的预言机节点进行选定。
几何分布由预言机网络中的各个预言机节点的声誉分数在总评分中的占比所形成;总评分为各个预言机的声誉分数的和。
即通过声誉分数在总评分中的占比表示不同预言机节点的权重,通过几何分布的方式,将声誉分数在总评分中的占比与随机数结合,在生成随机数之后可确定随机数在集合分布中的区间,从而快速选定预言机节点。
在一种可选的实施方式中,预言机网络中的各个预言机节点的声誉分数在总评分中的占比,随机划分区间(0,100],形成几何分布。图5为本说明书一示例性实施例中的预言机区间分布的示意图。如图5所示,预言机节点A的声誉分数在总评分中的占比为5%,预言机节点B的声誉分数在总评分中的占比为10%,预言机节点C的声誉分数在总评分中的占比为9%,…,则区间(0,100]被随机划分,则A的区间为(0,5]、B的区间为(5,15]、C的区间为(15,24]、…,即预言机节点A、B、C、…形成的几何分布为:(0,5]、(5,15]、(15,24]、…。
在另一种可选的实施方式中,预言机网络中的各个预言机节点的声誉分数在总评分中的占比,按照数值大小划分区间(0,100],形成几何分布。图6为本说明书一示例性实施例中的另一种预言机区间分布的示意图。如图6所示,预言机节点A`的声誉分数在总评分中的占比为5%,预言机节点B`的声誉分数在总评分中的占比为10%,预言机节点C`的声誉分数在总评分中的占比为9%,…,则区间(0,100]被按照数值大小划分,则B`的区间为(0,10]、C`的区间为(10,19]、A`的区间为(19,24]、…,即预言机节点A`、B`、C`、…形成的几何分布为:(19,24]、(0,10]、(10,19]、…。
步骤S614、分别向选定的每个预言机节点发送链下数据请求。
步骤S616、对选定的所有预言机节点根据数据描述所获取到的链下数据,按照数据聚合规则进行聚合操作,得到数据聚合结果。
步骤S618、响应于共识节点集对数据聚合结果达成共识,向智能合约返回数据聚合结果。
应该理解的是,虽然图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图7为本说明书一示例性实施例中的链下数据请求响应系统的结构框图。如图7所示,该系统可应用于如图1所示的领导节点211。该系统可包括:随机数生成模块11、节点选择模块13、发送请求模块15、数据聚合模块17和数据返回模块19。
随机数生成模块11用于响应于接收到智能合约中的链下数据请求,生成第一数量的随机数。
其中,链下数据请求包括数据描述和数据聚合规则。
节点选择模块13用于根据第一数量的随机数和预言机网络中的各个预言机节点的声誉分数,从预言机网络中选择第一数量的预言机节点。
可选的,预言机节点的声誉分数可通过如下公式计算得到:
其中,RepSore为预言机的声誉分数;W为预言机的抵押权重;S为预言机的服务表现评分,S的初始值为0,根据每一次的服务表现进行加分或减分,取值范围为(-∞,+∞)。
发送请求模块15用于分别向选定的每个预言机节点发送链下数据请求。
数据聚合模块17用于对选定的所有预言机节点根据数据描述所获取到的链下数据,按照数据聚合规则进行聚合操作,得到数据聚合结果。
数据返回模块19用于响应于共识节点集对数据聚合结果达成共识,向智能合约返回数据聚合结果。共识节点集由预言机网络中的若干预言机节点组成。
在一个实施例中,该节点选择模块13包括选定单元。
选定单元用于对每个随机数落在几何分布中的区间所对应的预言机节点进行选定。
其中,几何分布由预言机网络中的各个预言机节点的声誉分数在总评分中的占比所形成;总评分为各个预言机的声誉分数的和。
在一个实施例中,预言机网络中的各个预言机节点的声誉分数在总评分中的占比,随机划分区间(0,100],形成几何分布。
在一个实施例中,预言机网络中的各个预言机节点的声誉分数在总评分中的占比,按照数值大小划分区间(0,100],形成几何分布。
在一个实施例中,第一数量为预设数值。
在一个实施例中,链下数据请求还包括预言机描述;第一数量由预言机描述所确定。
在一个实施例中,该随机数生成模块11包括第一生成单元和第二生成单元。
第一生成单元用于响应于接收到智能合约中的链下数据请求,基于VRF,根据持有的私钥和原始种子生成随机数;
第二生成单元用于将生成的随机数作为下一个随机数的种子,基于VRF,根据持有的私钥和下一个随机数的种子生成下一个随机数。
关于链下数据请求响应系统的具体限定可以参见上文中对于链下数据请求响应方法的限定,在此不再赘述。上述链下数据请求响应系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于服务器中的处理器中,也可以以软件形式存储于服务器中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种节点设备,该节点设备包括通过设备总线连接的处理器、存储器、网络接口和数据库。其中,该节点设备的处理器用于提供计算和控制能力。该任意一个成员节点的存储器包括介质和内存储器。该介质为计算机可读存储介质。具体地,该计算机可读存储介质为非易失性计算机可读存储介质。该非易失性计算机可读存储介质存储有操作设备、计算机程序和数据库。该内存储器为非易失性计算机可读存储介质中的操作设备和计算机程序的运行提供环境。该任意一个成员节点的数据库用于存储数据。该任意一个成员节点的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种链下数据请求响应方法。
图8为本说明书一示例性实施例中的节点设备的内部结构图。本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的任意一个成员节点的限定,具体的任意一个成员节点可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种节点设备,该节点设备包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
响应于接收到智能合约中的链下数据请求,生成第一数量的随机数;链下数据请求包括数据描述和数据聚合规则;
根据第一数量的随机数和预言机网络中的各个预言机节点的声誉分数,从预言机网络中选择第一数量的预言机节点;
分别向选定的每个预言机节点发送链下数据请求;
对选定的所有预言机节点根据数据描述所获取到的链下数据,按照数据聚合规则进行聚合操作,得到数据聚合结果;
响应于共识节点集对数据聚合结果达成共识,向智能合约返回数据聚合结果;共识节点集由预言机网络中的若干预言机节点组成。
在一个实施例中,所述根据第一数量的随机数和预言机网络中的各个预言机节点的声誉分数,从预言机网络中选择第一数量的预言机节点,包括:
对每个随机数落在几何分布中的区间所对应的预言机节点进行选定;几何分布由预言机网络中的各个预言机节点的声誉分数在总评分中的占比所形成;总评分为各个预言机的声誉分数的和。
在一个实施例中,预言机网络中的各个预言机节点的声誉分数在总评分中的占比,随机划分区间(0,100],形成几何分布。
在一个实施例中,预言机网络中的各个预言机节点的声誉分数在总评分中的占比,按照数值大小划分区间(0,100],形成几何分布。
在一个实施例中,第一数量为预设数值。
在一个实施例中,链下数据请求还包括预言机描述;第一数量由预言机描述所确定。
在一个实施例中,所述响应于接收到智能合约中的链下数据请求,生成第一数量的随机数,包括:
响应于接收到智能合约中的链下数据请求,基于VRF,根据持有的私钥和原始种子生成随机数;
将生成的随机数作为下一个随机数的种子,基于VRF,根据持有的私钥和下一个随机数的种子生成下一个随机数。
在一个实施例中,提供了一种存储介质,该存储介质为计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
响应于接收到智能合约中的链下数据请求,生成第一数量的随机数;链下数据请求包括数据描述和数据聚合规则;
根据第一数量的随机数和预言机网络中的各个预言机节点的声誉分数,从预言机网络中选择第一数量的预言机节点;
分别向选定的每个预言机节点发送链下数据请求;
对选定的所有预言机节点根据数据描述所获取到的链下数据,按照数据聚合规则进行聚合操作,得到数据聚合结果;
响应于共识节点集对数据聚合结果达成共识,向智能合约返回数据聚合结果;共识节点集由预言机网络中的若干预言机节点组成。
在一个实施例中,所述根据第一数量的随机数和预言机网络中的各个预言机节点的声誉分数,从预言机网络中选择第一数量的预言机节点,包括:
对每个随机数落在几何分布中的区间所对应的预言机节点进行选定;几何分布由预言机网络中的各个预言机节点的声誉分数在总评分中的占比所形成;总评分为各个预言机的声誉分数的和。
在一个实施例中,预言机网络中的各个预言机节点的声誉分数在总评分中的占比,随机划分区间(0,100],形成几何分布。
在一个实施例中,预言机网络中的各个预言机节点的声誉分数在总评分中的占比,按照数值大小划分区间(0,100],形成几何分布。
在一个实施例中,第一数量为预设数值。
在一个实施例中,链下数据请求还包括预言机描述;第一数量由预言机描述所确定。
在一个实施例中,所述响应于接收到智能合约中的链下数据请求,生成第一数量的随机数,包括:
响应于接收到智能合约中的链下数据请求,基于VRF,根据持有的私钥和原始种子生成随机数;
将生成的随机数作为下一个随机数的种子,基于VRF,根据持有的私钥和下一个随机数的种子生成下一个随机数。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种链下数据请求响应方法,其特征在于,包括:
响应于接收到智能合约中的链下数据请求,生成第一数量的随机数;所述链下数据请求的请求信息包括数据描述和数据聚合规则;
根据所述第一数量的随机数和预言机网络中的各个预言机节点的声誉分数,从所述预言机网络中选择第一数量的预言机节点;
分别向选定的每个所述预言机节点发送所述链下数据请求;
对选定的所有所述预言机节点根据所述数据描述所获取到的链下数据,按照所述数据聚合规则进行聚合操作,得到数据聚合结果;
响应于所述共识节点集对所述数据聚合结果达成共识,向所述智能合约返回所述数据聚合结果;所述共识节点集由所述预言机网络中的若干预言机节点组成。
2.根据权利要求1所述的链下数据请求响应方法,其特征在于,所述根据所述第一数量的随机数和预言机网络中的各个预言机节点的声誉分数,从所述预言机网络中选择第一数量的预言机节点,包括:
对每个所述随机数落在几何分布中的区间所对应的预言机节点进行选定;所述几何分布由所述预言机网络中的各个预言机节点的声誉分数在总评分中的占比所形成;所述总评分为所述各个预言机的声誉分数的和。
3.根据权利要求2所述的链下数据请求响应方法,其特征在于,所述预言机网络中的各个预言机节点的声誉分数在所述总评分中的占比,随机划分区间(0,100],形成所述几何分布。
4.根据权利要求2所述的链下数据请求响应方法,其特征在于,所述预言机网络中的各个预言机节点的声誉分数在所述总评分中的占比,按照数值大小划分区间(0,100],形成所述几何分布。
5.根据权利要求1-4任一项所述的链下数据请求响应方法,其特征在于,所述第一数量为预设数值。
6.根据权利要求1-4任一项所述的链下数据请求响应方法,其特征在于,所述链下数据请求的请求信息还包括预言机描述;所述第一数量由所述预言机描述所确定。
7.根据权利要求1-4任一项所述的链下数据请求响应方法,其特征在于,所述响应于接收到智能合约中的链下数据请求,生成第一数量的随机数,包括:
响应于接收到智能合约中的链下数据请求,基于VRF,根据持有的私钥和原始种子生成随机数;
将生成的随机数作为下一个随机数的种子,基于VRF,根据持有的私钥和所述下一个随机数的种子生成所述下一个随机数。
8.一种链下数据请求响应系统,其特征在于,所述系统包括:
随机数生成模块,用于响应于接收到智能合约中的链下数据请求,生成第一数量的随机数;所述链下数据请求的请求信息包括数据描述和数据聚合规则;
节点选择模块,用于根据所述第一数量的随机数和预言机网络中的各个预言机节点的声誉分数,从所述预言机网络中选择第一数量的预言机节点;
发送请求模块,用于分别向选定的每个所述预言机节点发送所述链下数据请求;
数据聚合模块,用于对选定的所有所述预言机节点根据所述数据描述所获取到的链下数据,按照所述数据聚合规则进行聚合操作,得到数据聚合结果;
数据返回模块,用于响应于所述共识节点集对所述数据聚合结果达成共识,向所述智能合约返回所述数据聚合结果;所述共识节点集由所述预言机网络中的若干预言机节点组成。
9.一种节点设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1-7任一项所述的链下数据请求响应方法的步骤。
10.一种存储介质,所述存储介质为计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的链下数据请求响应方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010861954.7A CN112003942B (zh) | 2020-08-25 | 2020-08-25 | 链下数据请求响应方法、系统、节点设备与存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010861954.7A CN112003942B (zh) | 2020-08-25 | 2020-08-25 | 链下数据请求响应方法、系统、节点设备与存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112003942A true CN112003942A (zh) | 2020-11-27 |
CN112003942B CN112003942B (zh) | 2023-04-21 |
Family
ID=73471469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010861954.7A Active CN112003942B (zh) | 2020-08-25 | 2020-08-25 | 链下数据请求响应方法、系统、节点设备与存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112003942B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948499A (zh) * | 2021-03-31 | 2021-06-11 | 北京金山云网络技术有限公司 | 信息获取方法和装置、电子设备和存储介质 |
CN112948900A (zh) * | 2021-03-31 | 2021-06-11 | 工银科技有限公司 | 应用于区块链系统的链下数据获取方法和装置 |
CN112948465A (zh) * | 2021-03-10 | 2021-06-11 | 工银科技有限公司 | 基于区块链的数据处理方法和装置 |
CN113055497A (zh) * | 2021-04-29 | 2021-06-29 | 中国工商银行股份有限公司 | 用于区块链网络的链外数据上链方法、装置及系统 |
CN113052721A (zh) * | 2021-03-18 | 2021-06-29 | 国网北京市电力公司 | 电力数据的处理方法及装置 |
CN113392412A (zh) * | 2021-05-11 | 2021-09-14 | 杭州趣链科技有限公司 | 数据接收方法、数据发送方法及电子设备 |
CN115206018A (zh) * | 2022-06-16 | 2022-10-18 | 湖南天河国云科技有限公司 | 基于区块链预言机的抽奖方法和抽奖设备 |
WO2022267715A1 (zh) * | 2021-06-22 | 2022-12-29 | 中兴通讯股份有限公司 | 一种预言机节点筛选方法、装置、存储介质及电子装置 |
CN116032494A (zh) * | 2023-03-24 | 2023-04-28 | 深圳开鸿数字产业发展有限公司 | 数据交互方法、区块链预言机、设备及介质 |
CN116866045A (zh) * | 2023-07-18 | 2023-10-10 | 四川华西集采电子商务有限公司 | 一种基于访问控制规则的区块链可信预言机决策支撑系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111026578A (zh) * | 2019-11-15 | 2020-04-17 | 杭州云象网络技术有限公司 | 一种基于预言机的智能合约安全检测方法 |
CN111092914A (zh) * | 2020-03-18 | 2020-05-01 | 支付宝(杭州)信息技术有限公司 | 访问外部数据的方法及装置 |
CN111324672A (zh) * | 2020-03-25 | 2020-06-23 | 中国工商银行股份有限公司 | 区块链安全处理系统及方法 |
-
2020
- 2020-08-25 CN CN202010861954.7A patent/CN112003942B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111026578A (zh) * | 2019-11-15 | 2020-04-17 | 杭州云象网络技术有限公司 | 一种基于预言机的智能合约安全检测方法 |
CN111092914A (zh) * | 2020-03-18 | 2020-05-01 | 支付宝(杭州)信息技术有限公司 | 访问外部数据的方法及装置 |
CN111324672A (zh) * | 2020-03-25 | 2020-06-23 | 中国工商银行股份有限公司 | 区块链安全处理系统及方法 |
Non-Patent Citations (1)
Title |
---|
SANGYEON WOO: "A Distributed Oracle Using Intel SGX for Blockchain-Based IoT Applications", 《SENSORS》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948465B (zh) * | 2021-03-10 | 2022-09-06 | 工银科技有限公司 | 基于区块链的数据处理方法和装置 |
CN112948465A (zh) * | 2021-03-10 | 2021-06-11 | 工银科技有限公司 | 基于区块链的数据处理方法和装置 |
CN113052721A (zh) * | 2021-03-18 | 2021-06-29 | 国网北京市电力公司 | 电力数据的处理方法及装置 |
CN113052721B (zh) * | 2021-03-18 | 2024-04-30 | 国网北京市电力公司 | 电力数据的处理方法及装置 |
CN112948900A (zh) * | 2021-03-31 | 2021-06-11 | 工银科技有限公司 | 应用于区块链系统的链下数据获取方法和装置 |
CN112948499A (zh) * | 2021-03-31 | 2021-06-11 | 北京金山云网络技术有限公司 | 信息获取方法和装置、电子设备和存储介质 |
CN113055497A (zh) * | 2021-04-29 | 2021-06-29 | 中国工商银行股份有限公司 | 用于区块链网络的链外数据上链方法、装置及系统 |
CN113392412A (zh) * | 2021-05-11 | 2021-09-14 | 杭州趣链科技有限公司 | 数据接收方法、数据发送方法及电子设备 |
WO2022267715A1 (zh) * | 2021-06-22 | 2022-12-29 | 中兴通讯股份有限公司 | 一种预言机节点筛选方法、装置、存储介质及电子装置 |
CN115206018A (zh) * | 2022-06-16 | 2022-10-18 | 湖南天河国云科技有限公司 | 基于区块链预言机的抽奖方法和抽奖设备 |
CN116032494A (zh) * | 2023-03-24 | 2023-04-28 | 深圳开鸿数字产业发展有限公司 | 数据交互方法、区块链预言机、设备及介质 |
CN116032494B (zh) * | 2023-03-24 | 2023-06-09 | 深圳开鸿数字产业发展有限公司 | 数据交互方法、区块链预言机、设备及介质 |
CN116866045A (zh) * | 2023-07-18 | 2023-10-10 | 四川华西集采电子商务有限公司 | 一种基于访问控制规则的区块链可信预言机决策支撑系统 |
CN116866045B (zh) * | 2023-07-18 | 2024-01-23 | 四川华西集采电子商务有限公司 | 一种基于访问控制规则的区块链可信预言机决策支撑系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112003942B (zh) | 2023-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112003942A (zh) | 链下数据请求响应方法、系统、节点设备与存储介质 | |
CN112003941A (zh) | 分发链下数据请求的方法、系统、节点设备与存储介质 | |
CN111625593B (zh) | 基于区块链的数据处理方法、装置、计算机设备 | |
CN111698094B (zh) | 一种基于区块链系统的共识方法及区块链系统 | |
WO2022088606A1 (zh) | 基于联邦学习的gbdt与lr融合方法、装置、设备和存储介质 | |
CN111949672A (zh) | 一种支持物联网数据增量更新的区块链存储方法 | |
CN110888911A (zh) | 样本数据处理方法、装置、计算机设备及存储介质 | |
CN112714196B (zh) | 基于区块链网络的节点管理方法、装置、设备及存储介质 | |
CN112364059B (zh) | 多规则场景下关联匹配方法、装置、设备和存储介质 | |
CN114239060A (zh) | 数据获取方法、装置、电子设备及存储介质 | |
CN113641517B (zh) | 业务数据的发送方法、装置、计算机设备和存储介质 | |
CN110990790A (zh) | 一种数据处理方法及设备 | |
CN110442764A (zh) | 基于数据爬取的合约生成方法、装置和计算机设备 | |
CN111949411B (zh) | 资源分配方法、装置、计算机设备及计算机可读存储介质 | |
CN116703601B (zh) | 基于区块链网络的数据处理方法、装置、设备及存储介质 | |
CN112927414A (zh) | 基于联盟区块链的业务公识系统及方法 | |
CN109344623B (zh) | 一种基于dag的去中心化方法及终端 | |
CN111814064A (zh) | 基于Neo4j的异常用户处理方法、装置、计算机设备和介质 | |
CN116743771A (zh) | 区块链共识方法、装置、电子设备及计算机可读存储介质 | |
CN111400399A (zh) | 区块链系统的账本同步方法、装置及硬件设备 | |
CN116170162A (zh) | 选择性的共识方法和计算机存储介质、终端设备 | |
CN115310137A (zh) | 一种智能结算系统的保密方法及相关装置 | |
CN115239450A (zh) | 财务数据处理方法、装置、计算机设备及存储介质 | |
Li et al. | Homophily and behavior diffusion | |
CN112182107A (zh) | 名单数据获取方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |