用于搜索区块链数据的方法、装置及存储介质
技术领域
本发明内容涉及区块链搜索技术,更为具体地涉及一种用于搜索区块链数据的方法、一种用于执行上述用于搜索区块链数据的方法的用于搜索区块链数据的装置以及一种相应的计算机可读存储介质。
背景技术
搜索引擎是指自动从万维网搜集信息,经过一定整理以后,提供给用户进行查询的系统。在搜索引擎搜集信息的过程中,其利用被称为网络爬虫程序(Spider)来连上每一个网页上的超链接。网络爬虫程序根据网页链到其中的超链接,就像日常生活中所说的“一传十、十传百……”一样,从少数几个网页开始,连到网络上所有其他的网页链接。理论上,若网页上有适当的超链接,网络爬虫程序便可以遍历绝大部分网页。
区块链(Blockchain)是用分布式数据库识别、传播和记载信息的智能化对等网络,也称为价值互联网。所谓价值互联网,是指使得用户能够通过网络方便、快捷、低成本地传递价值。
发明内容
本发明的实施例提供了一种用于搜索区块链数据的方法、装置和计算机可读存储介质,使得搜索引擎可以从区块链网络中搜集信息并且获得与所搜索的数据相关联的历史数据,从而实现了针对区块链网络的搜索服务并且实现了对于当前以及历史数据的搜索。
为此,在本发明的实施例的第一方面中提供了一种用于搜索区块链数据的方法,所述方法包括:
A.经由超文本传输协议接口接收由搜索引擎发送的网页读取请求,所述网页读取请求包含第一统一资源定位地址和版本号;
B.获取在所述第一统一资源定位地址处的与所述版本号相对应的历史区块链数据;
C.判断是否存在至少一个第二统一资源定位地址,其中,在所述至少一个第二统一资源定位地址处的第二区块链数据与所述第一区块链数据相关联;
D.在存在所述至少一个第二统一资源定位地址的情况下,根据所述历史区块链数据以及所述至少一个第二统一资源定位地址生成与所述第一统一资源定位地址相关联的网页;以及
E.将所述网页经由所述超文本传输协议接口返回至所述搜索引擎。
此外,本发明的实施例的第二方面还提供了一种用于搜索区块链数据的装置,所述数据装置包括:处理器;以及存储器,其用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
A.经由超文本传输协议接口接收由搜索引擎发送的网页读取请求,所述网页读取请求包含第一统一资源定位地址和版本号;
B.获取在所述第一统一资源定位地址处的与所述版本号相对应的历史区块链数据;
C.判断是否存在至少一个第二统一资源定位地址,其中,在所述至少一个第二统一资源定位地址处的第二区块链数据与所述第一区块链数据相关联;
D.在存在所述至少一个第二统一资源定位地址的情况下,根据所述历史区块链数据以及所述至少一个第二统一资源定位地址生成与所述第一统一资源定位地址相关联的网页;以及
E.将所述网页经由所述超文本传输协议接口返回至所述搜索引擎。
再者,本发明的实施例的第三方面还提供了一种用于搜索区块链数据的方法,所述方法包括:
O.向区块链节点发送第一网页读取请求,其中,所述第一网页读取请求包含第一统一资源定位地址;
P.从区块链节点接收第一网页,其中,所述第一网页包括在所述第一统一资源定位地址处的第一区块链数据和当前版本号;
Q.向区块链节点发送第二网页读取请求,其中,所述第二网页读取请求包含第一统一资源定位地址和由当前版本号确定的第二版本号;
R.从区块链节点接收第二网页,其中,所述第二网页包括在所述第一统一资源定位地址处的与所述第二版本号相对应的历史区块链数据;
S.基于所述第一区块链数据和所述历史区块链数据生成分析结果图表。
此外,本发明的实施例的第四方面还提供了一种用于搜索区块链数据的装置,所述装置包括:
处理器;以及
存储器,其用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
O.向区块链节点发送第一网页读取请求,其中,所述第一网页读取请求包含第一统一资源定位地址;
P.从区块链节点接收第一网页,其中,所述第一网页包括在所述第一统一资源定位地址处的第一区块链数据和当前版本号;
Q.向区块链节点发送第二网页读取请求,其中,所述第二网页读取请求包含第一统一资源定位地址和由当前版本号确定的第二版本号;
R.从区块链节点接收第二网页,其中,所述第二网页包括在所述第一统一资源定位地址处的与所述第二版本号相对应的历史区块链数据;
S.基于所述第一区块链数据和所述历史区块链数据生成分析结果图表。
本发明的实施例的第五方面提供了一种计算机可读存储介质,其具有存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行根据本发明实施例的第一方面所述的用于搜索区块链数据的方法。
最后,本发明的实施例的第六方面提供了一种计算机可读存储介质,其具有存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行根据本发明实施例的第三方面所述的用于搜索区块链数据的方法。
在本发明的实施例中,能够实现对于区块链数据以及与该区块链数据相关联的历史区块链数据的访问,从而在向搜索引擎的用户展示搜索结果时,基于这些区块链数据以及历史区块链数据生成分析结果图表,并且将该分析结果图表显示在搜索结果的页面中,以便更为直观地向搜索引擎的用户展示所搜索到的数据。本发明的其他优势将在下文中进一步说明。
附图说明
结合附图并参考以下详细说明,本发明的各实施例的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本发明的若干实施例,在附图中:
图1示出了依据本发明内容所提出的用于搜索区块链数据的方法100 的流程图;
图2示出了具有属性A1的采取键值方式存储的区块链数据的示意图 200;
图3示出了分账本来存储公开数据和隐私数据的示意图300;
图4示出了以键值(Key/Value)方式存储的具有属性A2的区块链数据400的示例;
图5示出了依据本发明的另一个实施例的用于搜索区块链数据的方法 500的流程图;
图6示出了依据本发明的一个实施例的用于搜索区块链数据的装置600 的示意图;以及
图7示出了依据本发明的另一个实施例的用于搜索区块链数据的装置 700的示意图。
具体实施方式
以下参考附图详细描述本发明的各个示例性实施例。虽然以下所描述的示例性方法、装置包括在其它组件当中的硬件上执行的软件和/或固件,但是应当注意,这些示例仅仅是说明性的,而不应看作是限制性的。例如,考虑在硬件中独占地、在软件中独占地、或在硬件和软件的任何组合中可以实施任何或所有硬件、软件和固件组件。因此,虽然以下已经描述了示例性的方法和装置,但是本领域的技术人员应容易理解,所提供的示例并不用于限制用于实现这些方法和装置的方式。
此外,附图中的流程图和框图示出了根据本发明的各种实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者它们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。
本发明内容中的术语“历史区块链数据”是指与非最新版本号相对应的区块链数据。
本发明内容中的术语“网页读取请求”中的“读取”包括由搜索引擎去抓取网页和由用户通过用户设备来获取网页,其中,通过用户设备来获取网页具体是指用户通过用户设备来查询或者浏览由区块链数据生成的网页。
本发明内容中的术语“用户设备”是指包括但不限于智能手机、平板电脑、台式机、笔记本电脑的智能终端。
本发明内容中的术语“统一资源定位地址”是指因特网上标准的资源的地址,又称统一资源定位符(URL:Uniform Resource Locator)或网页地址。相应地,本发明内容中的术语“第一统一资源定位地址”是指依据本发明所提出的用于搜索区块链数据的方法执行时本级的统一资源定位地址,即本级URL;而本发明内容中的术语“第二统一资源定位地址”是指依据本发明所提出的用于搜索区块链数据的方法执行时下一级的统一资源定位地址,即次级URL。
本发明内容中的术语“第一区块链数据”是指区块链中在第一统一资源定位地址处的区块链数据;与之相对应地,本发明内容中的术语“第二区块链数据”是指区块链中在第二统一资源定位地址处的区块链数据。
本发明内容中的术语“公开数据”是指不需要身份验证即可访问的数据,而“隐私数据”是指需要身份验证才可访问的数据。
本发明内容中的术语“属性A1”是指用于表示所述区块链数据的数据解析方法的数据格式名或用于指示所述区块链数据的数据解析方法的数据格式解析函数名、数据格式解析服务地址、或数据格式解析智能合约地址。而术语“属性A2”用于标记区块链数据为隐私或者公开,其中,当所述区块链数据为公开数据时,“属性A2”具有第一值,而当所述区块链数据为隐私数据时,“属性A2”具有不同于所述第一值的第二值。
本发明内容中的术语“第一”、“第二”仅用于描述指代、目的或某具体事物,而不能理解为指示或暗示相对重要性,或者隐含指明所指示的技术特征的数量。
本发明内容中的术语“多个”是指两个或两个以上。
本发明内容中出现了术语“检索”和“搜索”,其中,术语“检索”是指搜索引擎通过网络爬虫程序对于区块链数据的抓取、处理、建立索引和遍历的过程,而术语“搜索”是指搜索引擎接收用户在搜索引擎页面上输入关键词后对于之前的建立过索引的网页内容的查找。
本发明内容中的表述“在所述至少一个第二统一资源定位地址处的第二区块链数据与所述第一区块链数据相关联”是指所述第一区块链数据所包括的层次属性和预先确定的层次关系树表明是否存在处于第二统一资源定位地址的第二区块链数据的关联关系。
本发明内容中的术语“层次关系树”是指预先确定的表明所访问的区块链数据所生成的网页的层次结构的逻辑关系树。
本发明内容中的术语“层次属性”是指表明与所读取的网页相关联的统一资源定位地址属于上述的层次关系树中的哪一层的信息。
本发明内容中的术语“第一属性”用于标记区块链数据为隐私或者公开,其中,术语“第一值”表示与之关联的区块链数据为公开数据,而术语“第二值”表示与之关联的区块链数据为隐私数据。
本发明内容中的术语“公开账本”是指在其中仅存储不需要身份验证即可访问的公开数据的区块链账本。
本发明内容中的术语“隐私账本”是指在其中仅存储需要身份验证才可访问的隐私数据的区块链账本。
本发明内容中的术语“账本的公开区域”是指账本中用于存储公开数据的区域。
本发明内容中的术语“账本的隐私区域”是指账本中用于存储隐私数据的区域。
如上文所述,搜索引擎的用户通过当前的搜索引擎无法搜索位于区块链上的数据。为了实现针对区块链网络的性能优异的搜索服务,本发明的实施例主要关注以下问题:如何实现搜索引擎对于区块链数据的访问,并且在此基础之上实现对于历史区块链数据的访问,并由此来优化搜索结果。具体来说,当前的搜索引擎既实现不了对区块链数据的检索,也就更谈不上对于历史区块链数据的检索了。由于不能访问区块链数据从而得到当前的区块链数据以及与该当前的区块链数据相关联的历史区块链数据,搜索引擎并不能对区块链数据进行分析,更不能基于该分析得到分析结果图表。
此外,本发明还解决了如下技术问题,即当前的区块链节点无法处理搜索引擎发送的超文本传输协议请求;当前的搜索引擎是将检索到的网页存储在数据库中,在接收到用户的搜索请求后直接从数据库中获取相应的网页信息提供给用户。然而,在区块链网络中,信息是以特定的数据格式存储的,并不是网页文本形式。再者,当前的网络搜索引擎是通过网络爬虫程序来抓取网页的方式来遍历网络中的信息的,但是当前的搜索引擎并不能遍历区块链网络中的区块链数据。
再者,当前的搜索引擎所搜索的都应该是公开数据,而区块链网络可能会同时存储公开数据和隐私数据,在搜索过程中应当区分这两类数据。
为解决这些问题,实现针对区块链网络的搜索服务,本发明的实施例首先提供了一种超文本传输协议接口,该超文本传输协议接口例如位于区块链节点中,使得区块链节点能够识别由搜索引擎发送的超文本传输协议请求,此外,在发送该网页读取请求时,能够包含版本号的信息,从而使得区块链能够返回由与该版本号相对应的历史区块链数据。其次,本发明的实施例还提供了将诸如XML或JSON等特定的数据格式的数据转换为网页的方法。再者,本发明的实施例通过将其他网页的统一资源定位地址作为信息加入到该网页中,使得搜索引擎能够通过该网页链接到其他网页,实现了针对区块链网络的网页抓取功能。此外,本发明的实施例还针对区块链网络中的公开数据和隐私数据进行了区分处理。更为具体的实现方法和本发明的其他优势请参见下文中的阐述。
图1示出了该用于搜索区块链数据的方法100的流程图,从图1中可以看出,该方法100至少包括以下五个步骤,即首先在方法步骤110中经由超文本传输协议接口接收由搜索引擎发送的网页读取请求,所述网页读取请求包含第一统一资源定位地址和版本号;然后在方法步骤120中获取在所述第一统一资源定位地址处的与所述版本号相对应的历史区块链数据;接下来在方法步骤130中判断是否存在至少一个第二统一资源定位地址,其中,在所述至少一个第二统一资源定位地址处的第二区块链数据与所述第一区块链数据相关联;再接下来在方法步骤140中在存在所述至少一个第二统一资源定位地址的情况下,根据所述历史区块链数据以及所述至少一个第二统一资源定位地址生成与所述第一统一资源定位地址相关联的网页;最后,在方法步骤150中将所述网页经由所述超文本传输协议接口返回至所述搜索引擎。
优选地,在依据本发明的一些实施例中,所述第一区块链数据和所述历史区块链数据包括数据值以及与所述数据值相关联的时间信息。由此,搜索引擎能够获得所需搜索的数据的数据值,再结合各个数据值的具体时间信息,则搜索引擎能够呈现出该数据的变化趋势。此外,区块链节点还可以为搜索引擎推荐区块链数据和历史区块链数据适合生成什么类型的分析结果图表的指示,因为区块链节点对于区块链侧的区块链数据适合生成什么类型的分析结果图表是比较清楚的。
通过一方面提供互联网访问接口,另一方面提供根据区块链数据或者历史区块链数据生成的网页的方式,搜索引擎便能够对与区块链数据或者历史区块链数据相关联的网页进行遍历从而获取搜索结果,从而实现了搜索引擎对于区块链数据的搜索。
具体到如何生成与区块链数据中的数据相关联的网页,其实现方式能够是多种多样的。例如能够在网页中生成第一统一资源定位地址即第一 URL所指向的区块链数据,此外,在存在至少一个第二统一资源定位地址即第二统一资源定位地址URL的情况下,该第二统一资源定位地址URL 也能够呈现在该网页上,所以,该网页既能够包括区块链的数据,也能够包括统一资源定位地址URL。在具有多个统一资源定位地址URL的情况下,这些统一资源定位地址URL能够顺序地排列在所述网页上。也能够通过将区块链数据根据其逻辑关系生成与区块链数据中的数据相关联的逻辑搜索树状图的方式来实现。
在具体抓取网页信息时,搜索引擎端可以增加以下功能,即搜索引擎可以访问区块链的入口地址(例如:http://test.com.homepage),以便于搜索引擎能够访问该区块链。在区块链侧接收到网页读取请求之后,首先会根据该网页读取请求所包含统一资源定位地址URL获取在该统一资源定位地址URL处的第一区块链数据,接下来,将会判断是否存在其他统一资源定位地址URL,具体到如何判断,则会根据所述第一区块链数据所包括的层次属性和预先确定的层次关系树来判断是否存在所述至少一个第二统一资源定位地址来判断。如果预先确定的层次关系树表明存在至少一个第二统一资源定位地址,则会将该第二统一资源定位地址也放在上述所生成的网页之中。
再接下来,将该网页返回给搜索引擎。搜索引擎在接收到该返回的网页之后,既能够直接抽取其中的区块链数据及其访问地址,也能够进一步向区块链网络侧发起进一步的网页读取请求,以抓取后续的区块链数据。
在获得该网页的同时,搜索引擎也会获得相应的版本号,由此能够发出新的网页读取请求,以便获得与历史版本号相对应的历史区块链数据。
具体来看,在生成上述网页的时候,区块链数据所包括的层次属性也能够起到非常重要的作用,将会根据第一区块链数据所包括的层次属性和预先确定的层次关系树来判断是否存在至少一个第二统一资源定位地址 URL。具体来看例如区块链数据A的层次属性为“金融”,并且预先确定的层次关系树表明存在层次属性为“金融/区块链金融”的区块链数据B,那么区块链数据B则为区块链数据A的下一级区块链数据。如果网页读取请求是为了抓取层次属性为“金融”的区块链数据A,则将指向层次属性为“金融/区块链金融”的区块链数据B的统一资源定位地址URL也生成在网页上,即在所生成的网页中包含指向层次属性为“金融/区块链金融”的区块链数据B的统一资源定位地址URL。
再比如,如果区块链数据C的层次属性为“中国”,并且预先确定的层次关系树表明存在另一个区块链数据D的层次属性为“中国/上海”,则区块链数据D则为区块链数据C的下一级区块链数据。如果网页读取请求是为了抓取层次属性为“中国”的区块链数据C,则将指向层次属性为“中国/上海”的区块链数据D的统一资源定位地址URL也生成在网页上,即在所生成的网页中包含指向层次属性为“中国/上海”的区块链数据D的统一资源定位地址URL。
也存在一种可能性,即不存在任何其他的统一资源定位地址URL,那么便能仅根据网页读取请求所包含统一资源定位地址URL所指向的区块链数据以及与该区块链数据相关联的历史区块链数据来生成上述网页。
此外,为了实现通过该链接地址对于与其相关联的区块链数据的正确解析,本发明内容的发明人提出了为区块链数据配置属性A1,该属性A1 即用于指定该区块链数据的解析方式。例如该属性A1包括用于表示所述区块链数据的数据解析方法的数据格式名。本领域的技术人员应当了解,该属性A1也能够包括用于指示所述公开数据和所述隐私数据的数据解析方法的数据格式解析函数名、数据格式解析服务地址、或数据格式解析智能合约地址。
此时,当搜索引擎访问该入口地址时,在每个数据的K/V/A1中属性 A1表明该数据的具体数据格式(例如,XML、JSON等);当搜索引擎访问该入口地址时,显示区块链上可以搜索的数据列表,当搜索引擎搜索任一K 值时,区块链根据对应的属性A1的值调用相应的解析方法对数据进行解析后生成对应的网页。
此外,每个区块链节点可以实现一个HTTP服务器,例如域名 http://test.com.homepage指向该HTTP服务器。该页面可以展现部分K/V的内容,通常情况下并不能一次全部展示,因为一次全部展示该页面会过于庞大,同时通过下一页甚至第10页等链接的方式 (http://test.com.homepage?page=10)让搜索引擎可以搜索到其它的K/V数据。同时还通过http://test.com.homepage?key=apple的链接形式显示单个K/V 的内容,至于具体如何呈现,则可以通过不同的页面模板来定义。上述的属性A1除了使用具体数据格式名来表示数据格式,也可以是一个格式解析的函数名、或者一个格式解析服务的地址。也可以用一个内容代码比如1、 2、3来表示,这样更简洁,可以节省存储空间。
图2示出了具有属性A1的采取键值方式存储的区块链数据的示意图 200,从图2中可以看出,诸如K1、Kn的区块链数据包括属性A1,该属性A1包括用于表示诸如K1、Kn的区块链数据的数据解析方法的数据格式名。替代地,诸如K1的区块链数据和诸如Kn的区块链数据也能够包括用于指示该区块链数据的数据解析方法的数据格式解析函数名、数据格式解析服务地址、或数据格式解析智能合约地址。从图2中可以看出,诸如K1 的区块链数据具有为“XML”的属性A1的值,这表明其值(Value)的解析方式为XML解析方法,与之相对应地,诸如Kn的区块链数据具有为“JSON”的属性A1的值,这表明其值(Value)的解析方式为JSON解析方法。也就是说,调用相应的解析函数或者解析方法能够解析出各个K1、 Kn等的区块链数据。
在实现上述链接地址时,同样需要遵循搜索引擎所需遵守的Robots协议。具体而言,Robots协议也称为爬虫协议、机器人协议等,其全称是“网络爬虫排除标准”(RobotsExclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。
具体到本发明内容,对于该入口网页中的各项链接地址,也需要通过 Robots协议告知搜索引擎哪些链接地址可以遍历,哪些链接地址不可以遍历。但是Robots协议只是告知搜索引擎应该遍历哪些链接地址不应该遍历哪些链 接地址从而实现对于区块链数据的检索,并不能够保证搜索引擎一定会很好地遵守该Robots协议,所以本发明内容的发明人创新性地想到利用区块链数据本身的属性来实现对于搜索引擎的搜索行为的控制,例如依据本发明内容所公开的区块链数据包括公开数据和隐私数据,其中,公开数据为不需要验证即可访问的数据并且隐私数据为需要验证才可访问的数据,并且其中,公开数据和隐私数据存储在区块链的不同位置或者所述公开数据和所述隐私数据具有不同的标记。
设置该属性A2的原因在于,在目前主流的区块链平台中,公有链完全不对区块链数据的访问设置限制,而比如Fabric、Corda等联盟链则对所有区块链数据中的全部的数据都做访问权限控制。由此可见,区块链平台对于有不同要求的数据都做了一样的访问控制而不具有不同的访问控制的能力。而一般而言,企业级区块链通常使用联盟链平台,对全部数据均做访问权限控制导致需要公开的信息无法被外部搜索引擎检索到。举例来说,一个使用区块链实现的保险销售系统,区块链中的保险价格、条款等信息是希望能够被搜索引擎检索查询、无需授权的;但是其他信息,例如用户信息、交易信息、理赔记录等信息是需要进行访问权限控制的,否则既不利于保护客户隐私也不利于保护保险公司的商业秘密。
具体而言,公开数据和隐私数据存储在区块链的不同位置或者所述公开数据和所述隐私数据具有不同的标记的实现方式方法能够有很多种。
举例来说,图3示出了分账本来存储公开数据和隐私数据的示意图300,从图中可以看出,该区块链网络中包括多个账本,例如账本301、302、…、308、309等九个账本,本领域的技术人员应当了解,此处示出了九个账本仅仅是示例性的而非限制性的,本领域的技术人员当然可以实现更多个或者更少个账本,实现账本的数量多少并不是本发明内容的关键,关键在于对于多个账本进行区分,例如将第一个账本即账本301标记为公开账本,即其上仅仅存储上述的公开数据,例如上述的区块链中的保险价格、条款等信息;而将其他账本即账本302、…、308、309等八个账本标记为隐私账本,其上仅仅存储隐私数据,例如上述的用户信息、交易信息、理赔记录等信息。本领域的技术人员应当了解,公开账本和隐私账本的数量能够根据区块链上需要公开的数据和隐私数据的比例动态配置。由此能够实现对于区块链网络上的数据的区分对待,从而为后续对于区块链上的数据的搜索服务提供保障。
替代地,也能够例如将第一个账本301划分为两个不同的区域,在第一个区域上存储公开数据,而在第二个区域上存储隐私数据,由此也能够实现对于区块链网络上的数据的区分对待,从而为后续对于区块链上的数据的搜索服务提供保障。
通过以上方式,即通过将公开数据和隐私数据存储于不同的账本之上或者将公开数据和隐私数据存储于相同的账本的不同区域之上来实现对于公开数据和所述隐私数据进行标记,以便后续搜索阶段能够基于账本类型或者账本的区域的类型来区分公开数据和隐私数据,从而为后续搜索提供支持。
附加地或者替代地,公开数据和隐私数据存储在区块链的不同位置或者所述公开数据和所述隐私数据具有不同的标记也能够通过其他方式来实现,例如通过额外的属性域的方式来实现,具体而言,公开数据和隐私数据可以包括属性A2,其中,所述公开数据具有例如为0的属性A2,而所述隐私数据具有例如为1的属性A2。
举例来说,例如每条区块链数据能够包含一个属性A2,该属性A2为例如为0时表示该区块链数据为公开数据,而当该属性A2为1的第二值时表示该区块链数据为隐私数据。相较于上述的采取分不同账本或者相同账本的不同区域来存储公开数据和隐私数据的技术方案来说,采取公开的动态调整,允许表示该区块链数据为公开数据或隐私数据的额外的属性A2的技术方案允许管理员在区块链运行过程之中实时动态地进行调整,从而提高了数据的动态维护性。
图4示出了以键值(Key/Value)方式存储的数据400的示例,从图4 中可以看出,第一个区块链数据K1的值为V1,其属性A2为0,这则表明该第一区块链数据K1为公开数据,外部搜索引擎能够不需要任何访问控制或者验证即可访问该公开数据;而第n个区块链数据Kn的值为Vn,其属性A2为1,这则表明该区块链数据Kn为隐私数据,外部搜索引擎能够需要访问控制或者验证才可访问该隐私数据。也就是说,该公开数据K1和隐私数据Kn采取键值方式进行存储,并且公开数据具有为0的属性A2,而隐私数据具有为1的属性A2。本领域的技术人员应当了解,此处将属性 A2的值设置为0或1仅仅是示例性的而非限制性的,其他能够实现本发明内容所公开的发明构思的不偏离本发明内容的发明精神的技术方案也同样包括在本发明内容所附的权利要求书的保护范围之内。
针对区块链网络上的对于区块链数据的访问无法保证满足搜索引擎的诸如Robots协议的搜索要求的技术问题,本发明内容的发明人创新性地意识到能够通过改造区块链网络上的数据的属性来适配搜索引擎,从而实现基于搜索引擎来搜索区块链网络上的数据的目的,此外,在实现检索的同时还能够满足区块链对于需要进行隐私保护部分数据的隐私保护。
上述用于搜索区块链数据的方法可以公开共享的数据无需访问控制即可访问而需要隐私保护的数据保留访问控制;另一方面限定了一种供访问检索的内部机制和接口,不仅可以让外部网页链接可以直接链接区块链中的公开数据,也可以让区块链中的公开数据相互链接,从而使得搜索引擎可以对区块链中的全部信息进行遍历检索。此外,通过本发明内容所提供的解决方案可以实现区块链和互联网信息的互联互通,进一步发挥出区块链的巨大价值。
此外,在搜索引擎侧需要作出相应的改进。具体而言,图5示出了依据本发明的另一个实施例的用于搜索区块链数据的方法500的流程图。从图中可以看出,该用于搜索区块链数据的方法500至少包括以下五个步骤,即首先在方法步骤510中向区块链节点发送第一网页读取请求,其中,所述第一网页读取请求包含第一统一资源定位地址;然后在方法步骤520中从区块链节点接收第一网页,其中,所述第一网页包括在所述第一统一资源定位地址处的第一区块链数据和当前版本号;接下来,在方法步骤530 中,向区块链节点发送第二网页读取请求,其中,所述第二网页读取请求包含第一统一资源定位地址和由当前版本号确定的第二版本号;然后,在方法步骤540中,从区块链节点接收第二网页,其中,所述第二网页包括在所述第一统一资源定位地址处的与所述第二版本号相对应的历史区块链数据;最后,在方法步骤550中基于所述第一区块链数据和所述历史区块链数据生成分析结果图表。
在依据本发明的一些实施例中,搜索引擎还可以从区块链节点处获得对于具体生成哪种分析结果图表的推荐,因为区块链节点侧对于区块链数据和历史区块链数据适合生成什么类型的分析结果图表是比较清楚的。
此外,替代地,上述方法能够通过计算机程序产品,即计算机可读存储介质来实现。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本发明内容的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
图6示出了依据本发明内容的一个实施例所提出的用于搜索区块链数据的装置600的方框图。从图6中可以看出,用于搜索区块链数据的装置 600包括处理器610和与处理器610耦接的存储器620。
存储器620存储有指令。指令在由处理器610执行时使得处理器610 执行以下动作:
A.经由超文本传输协议接口接收由搜索引擎发送的网页读取请求,所述网页读取请求包含第一统一资源定位地址和版本号;
B.获取在所述第一统一资源定位地址处的与所述版本号相对应的历史区块链数据;
C.判断是否存在至少一个第二统一资源定位地址,其中,在所述至少一个第二统一资源定位地址处的第二区块链数据与所述第一区块链数据相关联;
D.在存在所述至少一个第二统一资源定位地址的情况下,根据所述历史区块链数据以及所述至少一个第二统一资源定位地址生成与所述第一统一资源定位地址相关联的网页;以及
E.将所述网页经由所述超文本传输协议接口返回至所述搜索引擎。
在依据本发明内容的一个实施例中,当所述指令执行时使得所述处理器610还执行以下操作:
D1.在不存在所述至少一个第二统一资源定位地址的情况下,根据所述历史区块链数据生成所述网页。
在依据本发明内容的一个实施例中,所述第一区块链数据和所述历史区块链数据包括数据值以及与所述数据值相关联的时间信息。
在依据本发明内容的一个实施例中,C.判断是否存在至少一个第二统一资源定位地址进一步包括:
C1.根据所述第一区块链数据所包括的层次属性和预先确定的层次关系树来判断是否存在所述至少一个第二统一资源定位地址。
在依据本发明内容的一个实施例中,B.获取在所述第一统一资源定位地址处的第一区块链数据进一步包括:
B1.根据所述第一区块链数据的数据格式名来解析在所述第一统一资源定位地址处的第一区块链数据。
在依据本发明内容的一个实施例中,B.获取在所述第一统一资源定位地址处的第一区块链数据进一步包括:
B2.根据所述第一区块链数据的数据格式解析函数名、数据格式解析服务地址、或数据格式解析智能合约地址来解析在所述第一统一资源定位地址处的第一区块链数据。
在依据本发明内容的一个实施例中,所述第一区块链数据和/或所述第二区块链数据包括第一属性,并且其中,B.获取在所述第一统一资源定位地址处的第一区块链数据进一步包括:
B3.根据所述第一区块链数据的第一属性来确定是否获取在所述第一统一资源定位地址处的第一区块链数据。
在依据本发明内容的一个实施例中,所述第一区块链数据和/或所述第二区块链数据采取键值方式进行存储。
在依据本发明内容的一个实施例中,在所述第一区块链数据为公开数据的情况下,所述第一区块链数据的所述第一属性为第一值;在所述第二区块链数据为公开数据的情况下,所述第二区块链数据的所述第一属性为所述第一值;在所述第一区块链数据为隐私数据的情况下,所述第一区块链数据的所述第一属性为不同于所述第一值的第二值;在所述第二区块链数据为隐私数据的情况下,所述第二区块链数据的所述第一属性为所述第二值。
在依据本发明内容的一个实施例中,B.获取在所述第一统一资源定位地址处的第一区块链数据进一步包括:
B4.根据所述第一区块链数据的账本存储位置来确定是否获取在所述第一统一资源定位地址处的第一区块链数据,
其中,在所述第一区块链数据或所述第二区块链数据为公开数据的情况下,所述第一区块链数据或所述第二区块链数据存储在公开账本中;以及在所述第一区块链数据或所述第二区块链数据为隐私数据的情况下,所述第一区块链数据或所述第二区块链数据存储在隐私账本中。
在依据本发明内容的一个实施例中,B.获取在所述第一统一资源定位地址处的第一区块链数据进一步包括:
B5.根据所述第一区块链数据的存储区域位置来确定是否获取在所述第一统一资源定位地址处的第一区块链数据,
其中,在所述第一区块链数据或所述第二区块链数据为公开数据的情况下,所述第一区块链数据或所述第二区块链数据存储在账本的公开区域中;以及在所述第一区块链数据或所述第二区块链数据为隐私数据的情况下,所述第一区块链数据或所述第二区块链数据存储在账本的隐私区域中。
通过以上方式,即通过将公开数据和隐私数据存储于不同的账本之上或者将公开数据和隐私数据存储于相同的账本的不同区域之上来实现对于公开数据和所述隐私数据进行标记,以便后续搜索阶段能够基于账本类型或者账本的区域的类型来区分公开数据和隐私数据,从而为后续所搜提供支持。
此外,存储器620还能够存储有其他指令。这些指令在由处理器610 执行时使得处理器610执行以下动作:
O.向区块链节点发送第一网页读取请求,其中,所述第一网页读取请求包含第一统一资源定位地址;
P.从区块链节点接收第一网页,其中,所述第一网页包括在所述第一统一资源定位地址处的第一区块链数据和当前版本号;
Q.向区块链节点发送第二网页读取请求,其中,所述第二网页读取请求包含第一统一资源定位地址和由当前版本号确定的第二版本号;
R.从区块链节点接收第二网页,其中,所述第二网页包括在所述第一统一资源定位地址处的与所述第二版本号相对应的历史区块链数据;
S.基于所述第一区块链数据和所述历史区块链数据生成分析结果图表。
图7示出了用于搜索区块链数据的装置700的示意性框图。应当理解,装置700可以实现为实现图5中的用于搜索区块链数据的方法500的功能。从图7中可以看出用于数据库的装置700包括中央处理单元(CPU)701(例如处理器),其可以根据存储在只读存储器(ROM)702中的计算机程序指令或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序指令,来执行各种适当的动作和处理。在RAM 703中,还可存储该装置 700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
装置700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许该装置700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各种方法,例如用于搜索区块链数据的方法能够由CPU 701执行。例如,在一些实施例中,用于搜索区块链数据的方法500可以实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而载入和/或安装到该装置700上。当计算机程序加载到RAM 703 并由CPU 701执行时,可以执行上文描述的方法500中的一个或多个动作或步骤。
一般而言,本发明的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本发明的实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。
虽然上面描述了本发明的各种示例实施例可以在硬件或专用电路中实现,但是上述用于区块链的数据处理设备既可以以硬件的形式来实现,也可以通过软件的形式来实现,这是因为:在20世纪90年代,一个技术改进能够很容易地对该改进属于硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是属于软件上的改进(例如对于方法流程的改进)。然而,随着技术的持续发展,如今的很多方法流程的改进几乎都能够通过将改进的方法流程编程到硬件电路中来实现,换句话说,通过对于硬件电路编程不同的程序从而得到相应的硬件电路结构,即实现了硬件电路结构的改变,故这样的方法流程的改进也可以视为硬件电路结构的直接改进。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device:PLD)(例如现场可编程门阵列(Field Programmable Gate Array:FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片可编程逻辑器件上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compi1er)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language:HDL),而HDL也并非仅有—种,而是有许多种,如ABEL (Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell UniversityProgramming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language) 等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
用于执行本发明内容的各个方面的计算机可读程序指令或者计算机程序产品也能够存储在云端,在需要调用时,用户能够通过移动互联网、固网或者其他网络访问存储在云端上的用于执行本发明内容的一方面的计算机可读程序指令,从而实施依据本发明内容的各个方面所公开的技术方案。
综上所述,本发明内容所提出的用于搜索区块链数据的方法一方面能够对区块链上的数据作出精确控制,让可以公开共享的数据无需访问控制即可访问而需要隐私保护的数据保留访问控制;另一方面限定了一种供访问检索的内部机制和接口,不仅可以让外部网页链接可以直接链接区块链中的公开数据,也可以让区块链中的公开数据相互链接,从而使得搜索引擎可以对区块链中的全部信息进行遍历检索,而且可以获得具体数据的当前值以及历史值。此外,通过本发明内容所提供的解决方案可以实现区块链和互联网信息的互联互通,进一步发挥出区块链的巨大价值。
以上所述仅为本发明内容的实施例可选实施例,并不用于限制本发明的实施例,对于本领域的技术人员来说,本发明的实施例可以有各种更改和变化。凡在本发明的实施例的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本发明的实施例的保护范围之内。
虽然已经参考若干具体实施例描述了本发明的实施例,但是应当理解,本发明的实施例并不限于所公开的具体实施例。本发明的实施例旨在涵盖在所附权利要求的精神和范围内所包括的各种修改和等同布置。权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。