CN111460474B - 去中心化的预言机实现方法、装置、存储器和计算机 - Google Patents
去中心化的预言机实现方法、装置、存储器和计算机 Download PDFInfo
- Publication number
- CN111460474B CN111460474B CN202010228064.2A CN202010228064A CN111460474B CN 111460474 B CN111460474 B CN 111460474B CN 202010228064 A CN202010228064 A CN 202010228064A CN 111460474 B CN111460474 B CN 111460474B
- Authority
- CN
- China
- Prior art keywords
- transaction
- timestamp
- data
- latest
- time stamp
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000004364 calculation method Methods 0.000 claims abstract description 114
- 238000013500 data storage Methods 0.000 claims abstract description 46
- 230000000977 initiatory effect Effects 0.000 claims abstract description 22
- 238000007726 management method Methods 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2151—Time stamp
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Accounting & Taxation (AREA)
- Databases & Information Systems (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种去中心化的预言机实现方法、装置、存储器和计算机。如果中心化的数据存储系统的状态为“共识计算结束”,则根据中心化的数据存储系统中存储的数据内容、时间戳和地址发起一笔交易存入区块链中,并将中心化的数据存储系统的状态改为“共识计算中”;检测区块链各节点是否均完成对交易的共识计算;如果未完成则进行共识计算至各节点均完成对所述交易的共识计算;如果完成则根据共识计算结果确定将交易写入区块链或取消交易,更新时间戳并同步到区块链各节点中,并将中心化的数据存储系统的状态改为“共识计算结束”。实现了中心化存储系统中数据的分布式存储,实现了去中心化的预言机功能,并确保了信息的保密性。
Description
技术领域
本发明公开了一种去中心化的预言机实现方法、装置、存储器和计算机。
背景技术
区块链外信息写入区块链内的机制,一般被称为预言机(oraclemechanism)。预言机的功能就是将外界信息写入到区块链内,完成区块链与现实世界的数据互通。它允许确定的智能合约对不确定的外部世界作出反应,是智能合约与外部进行数据交互的唯一途径,也是区块链与现实世界进行数据交互的接口。
区块链智能合约无法主动获取外部数据,当智能合约的触发条件是外部信息时(链外),就需要预言机来提供数据服务。
公链的交易计算共识的时候,所有的节点必须得到预言机提供的一致的数据。所以,预言机需要将数据同步到公链的各节点。预言机的工作流程是接受请求、获取数据、返回数据。
预言机在实际应用时,需要着重加以考虑信息保密性、完整性、可获得性等问题,中心化的预言机虽然在信息完整性和可获得性方面没问题,但是比较容易遭受攻击,所以信息保密性方面存在较大的安全隐患。
发明内容
本发明一方面提供了一种去中心化的预言机实现方法,包括:
如果中心化的数据存储系统的状态为“共识计算结束”,则根据中心化的数据存储系统中存储的数据内容、时间戳和地址发起一笔交易存入区块链中,并将所述中心化的数据存储系统的状态改为“共识计算中”;
检测所述区块链各节点是否均完成对所述交易的共识计算;
如果部分节点未完成对所述交易的共识计算,则进行共识计算至各节点均完成对所述交易的共识计算;
如果所述区块链各节点均完成对所述交易的共识计算,则根据共识计算结果确定将所述交易写入所述区块链或取消所述交易,更新时间戳并同步到所述区块链各节点中,并将所述中心化的数据存储系统的状态改为“共识计算结束”。
优选地,所述根据中心化的数据存储系统中存储的数据内容、时间戳和地址发起一笔交易存入区块链中,包括:
获取所述中心化的数据存储系统中存储的数据内容、时间戳和地址;
计算所述数据内容的哈希值;
获取所述数据内容的副本;
根据所述数据内容的哈希值、时间戳、所述数据内容的副本和地址发起一笔交易存入区块链中。
优选地,所述区块链为公链、私有链或联盟链。
优选地,去中心化的预言机实现方法还包括:
接收用户发送的数据请求信息;
根据所述请求信息中的数据接口ID确定对应的所述区块链的节点;
将所述区块链的节点与用户建立连接;
根据所述请求信息中的待查询时间戳从所述区块链的节点返回数据。
优选地,所述根据所述请求信息中的待查询时间戳从所述区块链的节点返回数据,包括:
检测所述待查询时间戳是否大于最新时间戳;
如果所述待查询时间戳大于或等于所述最新时间戳,则返回最新上链数据;
如果所述待查询时间戳小于所述最新时间戳,则返回在所述待查询时间戳之前的最新上链数据。
优选地,所述如果所述待查询时间戳大于或等于所述最新时间戳,则返回最新上链数据,包括:
当所述待查询时间戳大于或等于所述最新时间戳时,检测所述最新时间戳对应的交易是否完成共识计算并写入区块;
如果所述最新时间戳对应的交易完成共识计算并写入区块,则返回所述交易包含的数据;
如果所述最新时间戳对应的交易未完成共识计算,则返回所述最新时间戳之前的上一个时间戳对应的数据。
优选地,当所述最新时间戳对应的交易未完成共识计算时,在返回所述最新时间戳之前的上一个时间戳对应的数据之前,还包括:
返回等待的信息提示;
在预设的等待时间内如果最新时间戳对应的交易完成共识计算,则返回所述交易包含的数据;
在预设的等待时间内如果最新时间戳对应的交易未完成共识计算,则返回所述最新时间戳之前的上一个时间戳对应的数据。
本发明第二方面还提供了一种去中心化的预言机实现装置,包括:
交易发起模块,用于当中心化的数据存储系统的状态为“共识计算结束”时,根据中心化的数据存储系统中存储的数据内容、时间戳和地址发起一笔交易存入区块链中;
第一状态管理模块,用于发起一笔交易后将所述中心化的数据存储系统的状态改为“共识计算中”;
检测模块,用于检测所述区块链各节点是否均完成对所述交易的共识计算;
共识计算模块,用于当部分节点未完成对所述交易的共识计算时,进行共识计算至各节点均完成对所述交易的共识计算;
交易处理模块,用于当所述区块链各节点均完成对所述交易的共识计算时,根据共识计算结果确定将所述交易写入所述区块链或取消所述交易;
时间戳更新模块,用于当所述区块链各节点均完成对所述交易的共识计算时,更新时间戳并同步到所述区块链各节点中;
第二状态管理模块,用于当所述区块链各节点均完成对所述交易的共识计算时,将所述中心化的数据存储系统的状态改为“共识计算结束”。
本发明还提供了一种存储器,所述存储器存储有多条指令,所述指令可被处理器加载并执行以使所述处理器能够执行上述的去中心化的预言机实现方法。
本发明还提供了一种计算机,包括处理器和与所述处理器连接的存储器,所述存储器存储有多条指令,所述指令可被所述处理器加载并执行,以使所述处理器能够执行上述的去中心化的预言机实现方法。
附图说明
图1为本发明所述去中心化的预言机实现方法流程示意图;
图2为本发明所述去中心化的预言机实现装置结构示意图;
图3为本发明所述计算机结构示意图。
具体实施方案
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案做详细的说明。
本发明提供的方法可以在如下的终端环境中实施,该终端可以包括一个或多个如下部件:处理器、存储器和显示屏。其中,存储器中存储有至少一条指令,所述指令由处理器加载并执行以实现下述实施例所述的方法。
处理器可以包括一个或者多个处理核心。处理器利用各种接口和线路连接整个终端内的各个部分,通过运行或执行存储在存储器内的指令、程序、代码集或指令集,以及调用存储在存储器内的数据,执行终端的各种功能和处理数据。
存储器可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器可用于存储指令、程序、代码、代码集或指令。
显示屏用于显示各个应用程序的用户界面。
除此之外,本领域技术人员可以理解,上述终端的结构并不构成对终端的限定,终端可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端中还包括射频电路、输入单元、传感器、音频电路、电源等部件,在此不再赘述。
实施例一
如图1所示,本发明实施例提供了一种去中心化的预言机实现方法,包括:
S101,如果中心化的数据存储系统的状态为“共识计算结束”,则根据中心化的数据存储系统中存储的数据内容、时间戳和地址发起一笔交易存入区块链中,并将所述中心化的数据存储系统的状态改为“共识计算中”;
S102,检测所述区块链各节点是否均完成对所述交易的共识计算;
S103,如果部分节点未完成对所述交易的共识计算,则进行共识计算至各节点均完成对所述交易的共识计算;
S104,如果所述区块链各节点均完成对所述交易的共识计算,则根据共识计算结果确定将所述交易写入所述区块链或取消所述交易,更新时间戳并同步到所述区块链各节点中,并将所述中心化的数据存储系统的状态改为“共识计算结束”。
上述方法中,中心化的数据存储系统为唯一的内容存储点,在实际应用过程中,考虑访问效率的问题,可以建立白名单,只能预言机网络中的节点可以访问该中心化的数据存储系统。
在实际应用过程中,可以构建一个点对点的服务网络,在该网络中的每个节点对外都提供完全一致的数据访问接口;在点对点的服务网络中部署区块链系统,该区块链系统可以是私有链,联盟链或者公链,考虑到反应速率的问题,作为一个实施例,可以采用较少耗时共识机制的区块链系统。
执行步骤101,首先检测中心化的数据存储系统的状态,当其状态为“共识计算结束”时,上一笔交易的共识计算已经完成,且写入到区块中,则可以发起新的交易,即可根据中心化的数据存储系统中存储的数据内容、时间戳和地址发起一笔交易存入区块链中。采用该方法,可以保证只有上一笔交易在区块链中完成共识时,才会创建新的交易,以保证在一个共识周期内,或者说在一个时间戳内,用户只查询到一笔交易包含的数据。
其中,由于中心化的数据存储系统中存储的数据内容经常更新,比如增加删除修改等,而且不同的用户想要获得的数据可能不同,所以,本发明中,将时间戳作为交易信息存入到区块链中,以便在查询信息时,能够以时间戳作为标记,查询得到不同时间戳对应的数据内容,以便满足不同用户对数据的查询需求。
另外,中心化的数据存储系统可以将不同的数据内容存储在不同的地址,本发明中,将地址作为交易信息存入到区块链中,以便在查询信息时,能够以地址作为标记,查询得到不同地址对应的数据内容,以使用户能够快速的查询到请求的数据。
为了能够提高数据在存入区块链的过程中的保密性,本发明中,对数据内容进行加密计算,并将加密计算的结果、数据内容的副本、时间戳和地址发起一笔交易存入区块链中。作为一个实施例,比如计算所述数据内容的哈希值,并将所述数据内容的哈希值、时间戳、所述数据内容的副本和地址发起一笔交易存入区块链中。
在实际应用过程中,区块链收到交易后,可以根据数据内容的副本计算其哈希值,与收到的哈希值进行比较,如果二者一致,则认为数据内容是可信的。
执行步骤102,交易存入区块链后,区块链中的节点对交易进行共识计算,要求所有节点都要对交易完成共识计算,然后才能根据共识计算的结果将交易写入区块,完成节点中数据的更新或者取消交易。
执行步骤103,如果有的节点对交易完成了共识计算,有的节点对交易未完成共识计算,将继续进行共识计算直到所有的节点对交易完成共识计算,由于有的节点还在进行共识计算,所以,中心化的数据存储系统的状态是“共识计算中”,根据交易创建的条件:中心化的数据存储系统的状态为“共识计算结束”,在“共识计算中”的状态时,不会创建新的交易,只能在中心化的数据存储系统中进行数据的更新。从而保证只有当前的一笔交易的共识计算结束后,才能发起新的交易并存入区块链中。
执行步骤104,如果所述区块链各节点均完成对所述交易的共识计算,则每个节点的共识计算都会产生一个结果,即达成共识将交易写入区块更新节点上的数据,或者未达成共识取消交易不能更新节点上的数据。从而决定了区块链上的节点返回用户的数据是该交易包含的数据,还是上笔交易包含的数据。各节点的共识计算完成后,当前交易包含的数据在一个共识周期内更新完成,系统会更新时间戳并同步到各节点中,进入到下一个交易发起、共识计算和数据更新的周期中。同时,系统将所述中心化的数据存储系统的状态改为“共识计算结束”,作为交易发起的条件,可以保证系统在当前交易的共识周期结束后,能够通过该条件的触发进入到下一个周期内。
上述方法,通过构建区块链网络,将中心化的数据存储系统中的数据同步到该区块链的节点中,形成数据的分布式存储,实现数据存储的去中心化。利用区块链的每个节点都能够对外提供完全一致的数据的特点,确保智能合约访问区块链中的任一节点时都能够得到一致的数据,实现预言机的功能。而由于区块链的共识机制和加密算法,能够确保写入其中的数据具有不可篡改性和保密性,从而实现去中心化的预言机信息的保密性。
本发明实施例提供的去中心化的预言机实现方法,还包括:
接收用户发送的数据请求信息;
根据所述请求信息中的数据接口ID确定对应的所述区块链的节点;
将所述区块链的节点与用户建立连接;
根据所述请求信息中的待查询时间戳从所述区块链的节点返回数据。
采用上述方法可以为用户提供数据。
在实际应用中,用户将数据请求信息发送给预言机系统,数据请求信息可以包括数据接口ID和时间戳,系统可以根据数据接口ID确定用户请求的区块链节点,并建立该节点与用户之间的连接,以便返回用户请求数据。系统根据用户请求信息中的时间戳,确定对应的数据内容,并返回给用户。
由于区块链的每个节点对外提供完全一致的数据接口,能够提供完全一致的数据,所以,用户可以连接任何一个节点都能得到相同的数据。
其中,系统接收到用户发送的待查询时间戳之后,首先检测所述待查询时间戳是否大于最新时间戳;
如果所述待查询时间戳大于或等于所述最新时间戳,则返回最新上链数据;
如果所述待查询时间戳小于所述最新时间戳,则返回在所述待查询时间戳之前的最新上链数据。
作为一个实施例,比如,区块链上的数据包括三个时间戳,分别是3月30日、3月25日和3月20日;最新时间戳为3月30日,历史时间戳为3月25日和3月20日,最新上链数据为3月30日的时间戳对应的数据,时间戳3月25日为3月30日之前的上一个时间戳。如果待查询时间戳为4月1日,则返回3月30日的时间戳对应的数据;如果待查询时间戳为3月27日,3月25日的时间戳对应的数据为待查询时间戳3月27日之前的最新上链数据,则返回3月25日的时间戳对应的数据。
其中,当所述待查询时间戳大于或等于所述最新时间戳时,作为一个优选实施例,检测所述最新时间戳对应的交易是否完成共识计算并写入区块;
如果所述最新时间戳对应的交易完成共识计算并写入区块,则返回所述交易包含的数据;
如果所述最新时间戳对应的交易未完成共识计算,则返回所述最新时间戳之前的上一个时间戳对应的数据。
在实际应用过程中,接收到用户的数据请求时,可能区块链正在进行共识计算,即区块链中还存在部分节点在进行共识计算,当该部分节点完成共识计算时,当前交易包含的数据可能被写入区块,也可能被取消,所以,当最新时间戳对应的交易未完成共识计算时,当前交易包含的数据尚未写入区块,即有的节点数据还尚未更新,有可能共识计算结束时,会取消交易,从而该交易包含的数据不能上链,则最新上链数据为最新时间戳之前的上一个时间戳对应的数据,因此,返回最新时间戳之前的上一个时间戳对应的数据。
如果所述最新时间戳对应的交易完成共识计算并写入区块,则最新上链数据为最新时间戳对应的数据。所以,返回所述最新时间戳对应的交易包含的数据。
当所述最新时间戳对应的交易未完成共识计算时,等待一段时间后,有可能所有的节点都完成共识计算后,将最新时间戳对应的交易写入区块,则区块链上最新的数据为最新时间戳对应的交易包含的数据,也有可能所有的节点都完成共识计算后,取消最新时间戳对应的交易,则区块链上最新的数据为最新时间戳之前的上一个时间戳对应的交易包含的数据。
作为一个优选实施例,为了能够得到最新上链数据,所以,当用户查询数据时,区块链正在进行共识计算,先等待一段时间,待共识计算完成后,根据共识计算的结果确定返回的数据。以便保证用户能够得到最新的上链数据。
实施例二
如图2所示,本发明实施例提供了一种去中心化的预言机实现装置,包括:
交易发起模块201,用于当中心化的数据存储系统的状态为“共识计算结束”时,根据中心化的数据存储系统中存储的数据内容、时间戳和地址发起一笔交易存入区块链中;
第一状态管理模块202,用于发起一笔交易后将所述中心化的数据存储系统的状态改为“共识计算中”;
检测模块203,用于检测所述区块链各节点是否均完成对所述交易的共识计算;
共识计算模块204,用于当部分节点未完成对所述交易的共识计算时,进行共识计算至各节点均完成对所述交易的共识计算;
交易处理模块205,用于当所述区块链各节点均完成对所述交易的共识计算时,根据共识计算结果确定将所述交易写入所述区块链或取消所述交易;
时间戳更新模块206,用于当所述区块链各节点均完成对所述交易的共识计算时,更新时间戳并同步到所述区块链各节点中;
第二状态管理模块207,用于当所述区块链各节点均完成对所述交易的共识计算时,将所述中心化的数据存储系统的状态改为“共识计算结束”。
进一步地,所述交易发起模块201,具体的用于
获取所述中心化的数据存储系统中存储的数据内容、时间戳和地址;
计算所述数据内容的哈希值;
获取所述数据内容的副本;
根据所述数据内容的哈希值、时间戳、所述数据内容的副本和地址发起一笔交易存入区块链中。
进一步地,所述区块链为公链、私有链或联盟链。
进一步地,还包括数据返回模块,用于
接收用户发送的数据请求信息;
根据所述请求信息中的数据接口ID确定对应的所述区块链的节点;
将所述区块链的节点与用户建立连接;
根据所述请求信息中的待查询时间戳从所述区块链的节点返回数据。所述所述根据所述请求信息中的待查询时间戳从所述区块链的节点返回数据,包括:
检测所述待查询时间戳是否大于最新时间戳;
如果所述待查询时间戳大于或等于所述最新时间戳,则返回最新上链数据;
如果所述待查询时间戳小于所述最新时间戳,则返回在所述待查询时间戳之前的最新上链数据。
进一步地,所述如果所述待查询时间戳大于或等于所述最新时间戳,则返回最新上链数据,包括:
当所述待查询时间戳大于或等于所述最新时间戳时,检测所述最新时间戳对应的交易是否完成共识计算并写入区块;
如果所述最新时间戳对应的交易完成共识计算并写入区块,则返回所述交易包含的数据;
如果所述最新时间戳对应的交易未完成共识计算,则返回所述最新时间戳之前的上一个时间戳对应的数据。
进一步地,
当所述最新时间戳对应的交易未完成共识计算时,在返回所述最新时间戳之前的上一个时间戳对应的数据之前,还包括:
返回等待的信息提示;
在预设的等待时间内如果最新时间戳对应的交易完成共识计算,则返回所述交易包含的数据;
在预设的等待时间内如果最新时间戳对应的交易未完成共识计算,则返回所述最新时间戳之前的上一个时间戳对应的数据。
本发明实施例提供的上述装置可通过实施例一提供的去中心化的预言机实现方法实现,具体的实现方法、功能和效果等可参见实施例一中的描述,在此不再赘述。
本发明实施例还提供了一种存储器,所述存储器存储有多条指令,所述指令可被处理器加载并执行以使所述处理器能够执行实施例一所述的去中心化的预言机实现方法。
本发明实施例还提供了一种计算机,如图3所示,包括处理器301和与所述处理器301连接的存储器302,所述存储器302存储有多条指令,所述指令可被所述处理器301加载并执行,以使所述处理器301能够执行实施例一所述的去中心化的预言机实现方法。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (4)
1.一种去中心化的预言机实现方法,其特征在于,包括:
如果中心化的数据存储系统的状态为“共识计算结束”,则根据中心化的数据存储系统中存储的数据内容、时间戳和地址发起一笔交易存入区块链中,并将所述中心化的数据存储系统的状态改为“共识计算中”;
检测所述区块链各节点是否均完成对所述交易的共识计算;
如果部分节点未完成对所述交易的共识计算,则进行共识计算至各节点均完成对所述交易的共识计算;
如果所述区块链各节点均完成对所述交易的共识计算,则根据共识计算结果确定将所述交易写入所述区块链或取消所述交易,更新时间戳并同步到所述区块链各节点中,并将所述中心化的数据存储系统的状态改为“共识计算结束”;
所述根据中心化的数据存储系统中存储的数据内容、时间戳和地址发起一笔交易存入区块链中,包括:
获取所述中心化的数据存储系统中存储的数据内容、时间戳和地址;
计算所述数据内容的哈希值;
获取所述数据内容的副本;
根据所述数据内容的哈希值、时间戳、所述数据内容的副本和地址发起一笔交易存入区块链中;
所述区块链为公链、私有链或联盟链;
还包括:
接收用户发送的数据请求信息;
根据所述请求信息中的数据接口ID确定对应的所述区块链的节点;
将所述区块链的节点与用户建立连接;
根据所述请求信息中的待查询时间戳从所述区块链的节点返回数据;
所述根据所述请求信息中的待查询时间戳从所述区块链的节点返回数据,包括:
检测所述待查询时间戳是否大于最新时间戳;
如果所述待查询时间戳大于或等于所述最新时间戳,则返回最新上链数据;
如果所述待查询时间戳小于所述最新时间戳,则返回在所述待查询时间戳之前的最新上链数据;
所述如果所述待查询时间戳大于或等于所述最新时间戳,则返回最新上链数据,包括:
当所述待查询时间戳大于或等于所述最新时间戳时,检测所述最新时间戳对应的交易是否完成共识计算并写入区块;
如果所述最新时间戳对应的交易完成共识计算并写入区块,则返回所述交易包含的数据;
如果所述最新时间戳对应的交易未完成共识计算,则返回所述最新时间戳之前的上一个时间戳对应的数据;
当所述最新时间戳对应的交易未完成共识计算时,在返回所述最新时间戳之前的上一个时间戳对应的数据之前,还包括:
返回等待的信息提示;
在预设的等待时间内如果最新时间戳对应的交易完成共识计算,则返回所述交易包含的数据;
在预设的等待时间内如果最新时间戳对应的交易未完成共识计算,则返回所述最新时间戳之前的上一个时间戳对应的数据。
2.一种去中心化的预言机实现装置,其特征在于,包括:
交易发起模块,用于当中心化的数据存储系统的状态为“共识计算结束”时,根据中心化的数据存储系统中存储的数据内容、时间戳和地址发起一笔交易存入区块链中;
第一状态管理模块,用于发起一笔交易后将所述中心化的数据存储系统的状态改为“共识计算中”;
检测模块,用于检测所述区块链各节点是否均完成对所述交易的共识计算;
共识计算模块,用于当部分节点未完成对所述交易的共识计算时,进行共识计算至各节点均完成对所述交易的共识计算;
交易处理模块,用于当所述区块链各节点均完成对所述交易的共识计算时,根据共识计算结果确定将所述交易写入所述区块链或取消所述交易;
时间戳更新模块,用于当所述区块链各节点均完成对所述交易的共识计算时,更新时间戳并同步到所述区块链各节点中;
第二状态管理模块,用于当所述区块链各节点均完成对所述交易的共识计算时,将所述中心化的数据存储系统的状态改为“共识计算结束”;
所述交易发起模块,具体的用于获取所述中心化的数据存储系统中存储的数据内容、时间戳和地址;计算所述数据内容的哈希值;获取所述数据内容的副本;根据所述数据内容的哈希值、时间戳、所述数据内容的副本和地址发起一笔交易存入区块链中;
所述区块链为公链、私有链或联盟链;
还包括数据返回模块,用于接收用户发送的数据请求信息;根据所述请求信息中的数据接口ID确定对应的所述区块链的节点;将所述区块链的节点与用户建立连接;根据所述请求信息中的待查询时间戳从所述区块链的节点返回数据;
所述根据所述请求信息中的待查询时间戳从所述区块链的节点返回数据,包括:检测所述待查询时间戳是否大于最新时间戳;如果所述待查询时间戳大于或等于所述最新时间戳,则返回最新上链数据;如果所述待查询时间戳小于所述最新时间戳,则返回在所述待查询时间戳之前的最新上链数据;
所述如果所述待查询时间戳大于或等于所述最新时间戳,则返回最新上链数据,包括:当所述待查询时间戳大于或等于所述最新时间戳时,检测所述最新时间戳对应的交易是否完成共识计算并写入区块;如果所述最新时间戳对应的交易完成共识计算并写入区块,则返回所述交易包含的数据;如果所述最新时间戳对应的交易未完成共识计算,则返回所述最新时间戳之前的 上一个时间戳对应的数据;
当所述最新时间戳对应的交易未完成共识计算时,在返回所述最新时间戳之前的上一个时间戳对应的数据之前,还包括:返回等待的信息提示;在预设的等待时间内如果最新时间戳对应的交易完成共识计算,则返回所述交易包含的数据;在预设的等待时间内如果最新时间戳对应的交易未完成共识计算,则返回所述最新时间戳之前的上一个时间戳对应的数据。
3.一种存储器,其特征在于,所述存储器存储有多条指令,所述指令可被处理器加载并执行以使所述处理器能够执行如权利要求1所述的去中心化的预言机实现方法。
4.一种计算机,其特征在于,包括处理器和与所述处理器连接的存储器,所述存储器存储有多条指令,所述指令可被所述处理器加载并执行,以使所述处理器能够执行如权利要求1所述的去中心化的预言机实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010228064.2A CN111460474B (zh) | 2020-03-27 | 2020-03-27 | 去中心化的预言机实现方法、装置、存储器和计算机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010228064.2A CN111460474B (zh) | 2020-03-27 | 2020-03-27 | 去中心化的预言机实现方法、装置、存储器和计算机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111460474A CN111460474A (zh) | 2020-07-28 |
CN111460474B true CN111460474B (zh) | 2023-12-29 |
Family
ID=71678330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010228064.2A Active CN111460474B (zh) | 2020-03-27 | 2020-03-27 | 去中心化的预言机实现方法、装置、存储器和计算机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111460474B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112153047B (zh) * | 2020-09-24 | 2021-05-18 | 国网区块链科技(北京)有限公司 | 一种基于区块链的网络安全运维及防御方法及系统 |
CN111930852B (zh) * | 2020-09-29 | 2022-03-25 | 北京百度网讯科技有限公司 | 基于区块链的数据处理方法、装置、设备以及存储介质 |
CN112417034A (zh) * | 2020-10-19 | 2021-02-26 | 易联众信息技术股份有限公司 | 一种基于区块链的预言机服务的选定方法及系统 |
CN113114744B (zh) * | 2021-03-30 | 2022-04-26 | 清华大学 | 数据湖架构下支持跨链交易的区块链系统 |
CN113065167A (zh) * | 2021-04-06 | 2021-07-02 | 北京瑞卓喜投科技发展有限公司 | 一种链下数据授权预言机更新的方法、装置和电子设备 |
CN114119242B (zh) * | 2022-01-28 | 2023-03-14 | 浙商银行股份有限公司 | 基于自适应窗口分片的联盟链性能优化方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108305170A (zh) * | 2018-03-07 | 2018-07-20 | 物数(上海)信息科技有限公司 | 基于区块链的外部服务访问方法、系统、设备及存储介质 |
CN110569251A (zh) * | 2019-09-23 | 2019-12-13 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、相关设备及计算机可读存储介质 |
CN110601849A (zh) * | 2019-08-21 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种可信时间戳添加方法、装置和存储介质 |
CN110766550A (zh) * | 2019-09-05 | 2020-02-07 | 阿里巴巴集团控股有限公司 | 基于区块链的资产查询方法及装置、电子设备 |
-
2020
- 2020-03-27 CN CN202010228064.2A patent/CN111460474B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108305170A (zh) * | 2018-03-07 | 2018-07-20 | 物数(上海)信息科技有限公司 | 基于区块链的外部服务访问方法、系统、设备及存储介质 |
CN110601849A (zh) * | 2019-08-21 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种可信时间戳添加方法、装置和存储介质 |
CN110766550A (zh) * | 2019-09-05 | 2020-02-07 | 阿里巴巴集团控股有限公司 | 基于区块链的资产查询方法及装置、电子设备 |
CN110569251A (zh) * | 2019-09-23 | 2019-12-13 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、相关设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111460474A (zh) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111460474B (zh) | 去中心化的预言机实现方法、装置、存储器和计算机 | |
CN108510389B (zh) | 基于区块链的智能合约调用方法、设备及可读存储介质 | |
CN108074177B (zh) | 数据对账方法、系统和计算机可读存储介质 | |
CN109542529B (zh) | 基于函数名称的埋点方法、装置、计算机设备及存储介质 | |
US10924281B2 (en) | Method and apparatus for inter-blockchain transmission of authenticable message | |
CN107066570A (zh) | 数据管理方法及装置 | |
CN109656889B (zh) | 基于区块链的文件系统实现方法、装置、设备和存储介质 | |
EP3582125B1 (en) | System and methods with reduced complexity in the integration of exposed information models with applications | |
CN106790131B (zh) | 一种参数修改方法、装置及分布式平台 | |
CN110597918A (zh) | 一种账户管理方法、装置及计算机可读存储介质 | |
CN109656886B (zh) | 基于键值对的文件系统实现方法、装置、设备和存储介质 | |
CN112347111A (zh) | 数据更新的方法和装置 | |
CN101471843A (zh) | 中继服务器以及中继通信系统 | |
CN111796844A (zh) | 基于蓝牙网络拓扑的固件升级方法、装置、蓝牙网络拓扑 | |
CN110268388A (zh) | 推迟对远程对象的调用请求 | |
CN114328739A (zh) | 数据同步、读取方法及装置、电子设备、存储介质及产品 | |
CN107220818B (zh) | 网上支付方法及装置 | |
CN110852752A (zh) | 充值订单撤销异常处理方法、装置、设备和存储介质 | |
CN111324787B (zh) | 区块链浏览器中区块链数据的展现方法和装置 | |
CN115269530A (zh) | 数据同步方法、电子设备及计算机可读存储介质 | |
CN115113989A (zh) | 事务执行方法、装置、计算设备及存储介质 | |
CN113553488A (zh) | 搜索引擎中索引数据的更新方法、装置、电子设备及介质 | |
CN111538792B (zh) | 一种联盟链数据处理方法、装置和电子设备 | |
CN109343982A (zh) | 功能模块间的信息交互方法、装置、设备及存储介质 | |
CN109710293B (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 |