具体实施方式
以下参考附图详细描述本发明的各个示例性实施例。虽然以下所描述的示例性方法、装置包括在其它组件当中的硬件上执行的软件和/或固件,但是应当注意,这些示例仅仅是说明性的,而不应看作是限制性的。例如,考虑在硬件中独占地、在软件中独占地、或在硬件和软件的任何组合中可以实施任何或所有硬件、软件和固件组件。因此,虽然以下已经描述了示例性的方法和装置,但是本领域的技术人员应容易理解,所提供的示例并不用于限制用于实现这些方法和装置的方式。
此外,附图中的流程图和框图示出了根据本发明的各种实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者它们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。
本发明内容中的术语“网页读取请求”中的“读取”包括由搜索引擎去抓取网页和由用户通过用户设备来获取网页,其中,通过用户设备来获取网页具体是指用户通过用户设备来查询或者浏览由区块链数据生成的网页。
本发明内容中的术语“用户设备”是指包括但不限于智能手机、平板电脑、台式机、笔记本电脑的智能终端。
本发明内容中的术语“统一资源定位地址”是指因特网上标准的资源的地址,又称统一资源定位符(URL:Uniform Resource Locator)或网页地址。相应地,本发明内容中的术语“第一统一资源定位地址”是指依据本发明所提出的用于搜索区块链数据的方法执行时本级的统一资源定位地址,即本级URL;而本发明内容中的术语“第二统一资源定位地址”是指依据本发明所提出的用于搜索区块链数据的方法执行时下一级的统一资源定位地址,即次级URL。
本发明内容中的术语“第一区块链数据”是指区块链中在第一统一资源定位地址处的区块链数据;与之相对应地,本发明内容中的术语“第二区块链数据”是指区块链中在第二统一资源定位地址处的区块链数据。
本发明内容中的术语“公开数据”是指不需要身份验证即可访问的数据,而“隐私数据”是指需要身份验证才可访问的数据。
本发明内容中的术语“属性A1”是指用于表示所述区块链数据的数据解析方法的数据格式名或用于指示所述区块链数据的数据解析方法的数据格式解析函数名、数据格式解析服务地址、或数据格式解析智能合约地址。而术语“属性A2”用于标记区块链数据为隐私或者公开,其中,当所述区块链数据为公开数据时,“属性A2”具有第一值,而当所述区块链数据为隐私数据时,“属性A2”具有不同于所述第一值的第二值。
本发明内容中的术语“第一”、“第二”仅用于描述指代、目的或某具体事物,而不能理解为指示或暗示相对重要性,或者隐含指明所指示的技术特征的数量。
本发明内容中的术语“多个”是指两个或两个以上。
本发明内容中出现了术语“检索”和“搜索”,其中,术语“检索”是指搜索引擎通过网络爬虫程序对于区块链数据的抓取、处理、建立索引和遍历的过程,而术语“搜索”是指搜索引擎接收用户在搜索引擎页面上输入关键词后对于之前的建立过索引的网页内容的查找。
本发明内容中的表述“在所述至少一个第二统一资源定位地址处的第二区块链数据与所述第一区块链数据相关联”是指所述第一区块链数据所包括的层次属性和预先确定的层次关系树表明是否存在处于第二统一资源定位地址的第二区块链数据的关联关系。
本发明内容中的术语“层次关系树”是指预先确定的表明所访问的区块链数据所生成的网页的层次结构的逻辑关系树。
本发明内容中的术语“层次属性”是指表明与所读取的网页相关联的统一资源定位地址属于上述的层次关系树中的哪一层的信息。
本发明内容中的术语“第一属性”用于标记区块链数据为隐私或者公开,其中,术语“第一值”表示与之关联的区块链数据为公开数据,而术语“第二值”表示与之关联的区块链数据为隐私数据。
本发明内容中的术语“公开账本”是指在其中仅存储不需要身份验证即可访问的公开数据的区块链账本。
本发明内容中的术语“隐私账本”是指在其中仅存储需要身份验证才可访问的隐私数据的区块链账本。
本发明内容中的术语“账本的公开区域”是指账本中用于存储公开数据的区域。
本发明内容中的术语“账本的隐私区域”是指账本中用于存储隐私数据的区域。
如上文所述,搜索引擎的用户通过当前的搜索引擎无法搜索位于区块链上的数据。为了实现针对区块链网络的性能优异的搜索服务,本发明的实施例主要关注以下问题:首先,当前的区块链节点无法处理搜索引擎发送的超文本传输协议请求;其次,当前的搜索引擎是将检索到的网页存储在数据库中,在接收到用户的搜索请求后直接从数据库中获取相应的网页信息提供给用户。然而,在区块链网络中,信息是以特定的数据格式存储的,并不是网页文本形式。再者,当前的网络搜索引擎是通过网络爬虫程序来抓取网页的方式来遍历网络中的信息的,但是当前的搜索引擎并不能遍历区块链网络中的区块链数据。
此外,当前的搜索引擎所搜索的都应该是公开数据,而区块链网络可能会同时存储公开数据和隐私数据,在搜索过程中应当区分这两类数据。
为解决这些问题,实现针对区块链网络的搜索服务,本发明的实施例首先提供了一种超文本传输协议接口,该超文本传输协议接口例如位于区块链节点中,使得区块链节点能够处理由搜索引擎发送的超文本传输协议请求。其次,本发明的实施例还提供了将诸如XML或JSON等特定的数据格式的数据转换为网页的方法。再者,本发明的实施例通过将其他网页的统一资源定位地址作为信息加入到该网页中,使得搜索引擎能够通过该网页链接到其他网页,实现了针对区块链网络的网页抓取功能。此外,本发明的实施例还针对区块链网络中的公开数据和隐私数据进行了区分处理。更为具体的实现方法和本发明的其他优势请参见下文中的阐述。
图1示出了该用于搜索区块链数据的方法100的流程图,从图1中可以看出,该方法100至少包括以下五个步骤,即首先在方法步骤110中经由超文本传输协议接口接收由搜索引擎发送的网页读取请求,所述网页读取请求包含第一统一资源定位地址;然后在方法步骤120中获取在所述第一统一资源定位地址处的第一区块链数据;接下来在方法步骤130中判断是否存在至少一个第二统一资源定位地址,其中,在所述至少一个第二统一资源定位地址处的第二区块链数据与所述第一区块链数据相关联;再接下来在方法步骤140中在存在所述至少一个第二统一资源定位地址的情况下,根据所述第一区块链数据和所述至少一个第二统一资源定位地址生成与所述第一统一资源定位地址相关联的网页;最后,在方法步骤150中将所述网页经由所述超文本传输协议接口返回至所述搜索引擎。
上述用于搜索区块链数据的方法100还能够包括以下步骤,即在不存在所述至少一个第二统一资源定位地址的情况下,根据所述第一区块链数据生成所述网页。
通过一方面提供超文本传输协议接口,另一方面提供根据区块链数据来生成与区块链数据中的数据相关联的网页的方式,搜索引擎便能够对与区块链数据相关联的网页进行遍历,从而使得搜索引擎的用户输入搜索关键字后,搜索引擎便能够对区块链数据进行搜索了。
以下结合图2来描述依据本发明所提出的方法能够在其中实施的网络架构示意图。图2示出了在其中能够实施依据图1所示的方法100的网络架构示意图200。从图中可以看出,架构200包括区块链节点211、212、213、214、215以及216。这些区块链节点可以通过网络同步数据,但是当前区块链网络并不支持搜索引擎对其数据进行检索。
如前所述,在诸如区块链节点212的区块链节点上提供超文本传输协议接口,然后搜索引擎220便能够通过该超文本传输协议接口访问区块链网络了。在对区块链网络的数据进行检索之后,当搜索引擎220通过客户端230从搜索引擎的用户接收到搜索请求后便能够通过对之前检索得到的结果进行搜索从而实现对于区块链数据的搜索。
具体到如何生成与区块链数据中的数据相关联的网页,其实现方式能够是多种多样的。例如能够根据第一统一资源定位地址即第一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来表示,这样更简洁,可以节省存储空间。
图3示出了具有属性A1的采取键值方式存储的区块链数据的示意图300,从图3中可以看出,诸如K1、Kn的区块链数据包括属性A1,该属性A1包括用于表示诸如K1、Kn的区块链数据的数据解析方法的数据格式名。替代地,诸如K1的区块链数据和诸如Kn的区块链数据也能够包括用于指示该区块链数据的数据解析方法的数据格式解析函数名、数据格式解析服务地址、或数据格式解析智能合约地址。从图3中可以看出,诸如K1的区块链数据具有为“XML”的属性A1的值,这表明其值(Value)的解析方式为XML解析方法,与之相对应地,诸如Kn的区块链数据具有为“JSON”的属性A1的值,这表明其值(Value)的解析方式为JSON解析方法。也就是说,调用相应的解析函数或者解析方法能够解析出各个K1、Kn等的区块链数据。
在实现上述链接地址时,同样需要遵循搜索引擎所需遵守的Robots协议。具体而言,Robots协议也称为爬虫协议、机器人协议等,其全称是“网络爬虫排除标准”(RobotsExclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。
具体到本发明内容,对于该入口网页中的各项链接地址,也需要通过Robots协议告知搜索引擎哪些链接地址可以遍历,哪些链接地址不可以遍历。但是Robots协议只是告知搜索引擎应该遍历哪些链接地址不应该遍历哪些连接地址从而实现对于区块链数据的检索,并不能够保证搜索引擎一定会很好地遵守该Robots协议,所以本发明内容的发明人创新性地想到利用区块链数据本身的属性来实现对于搜索引擎的搜索行为的控制,例如依据本发明内容所公开的区块链数据包括公开数据和隐私数据,其中,公开数据为不需要身份验证即可访问的数据并且隐私数据为需要身份验证才可访问的数据,并且其中,公开数据和隐私数据存储在区块链的不同位置或者所述公开数据和所述隐私数据具有不同的标记。
设置该属性A2的原因在于,在目前主流的区块链平台中,公有链完全不对区块链数据的访问设置限制,而比如Fabric、Corda等联盟链则对所有区块链数据中的全部的数据都做访问权限控制。由此可见,区块链平台对于有不同要求的数据都做了一样的访问控制而不具有不同的访问控制的能力。而一般而言,企业级区块链通常使用联盟链平台,对全部数据均做访问权限控制导致需要公开的信息无法被外部搜索引擎检索到。举例来说,一个使用区块链实现的保险销售系统,区块链中的保险价格、条款等信息是希望能够被搜索引擎检索查询、无需授权的;但是其他信息,例如用户信息、交易信息、理赔记录等信息是需要进行访问权限控制的,否则既不利于保护客户隐私也不利于保护保险公司的商业秘密。
具体而言,公开数据和隐私数据存储在区块链的不同位置或者所述公开数据和所述隐私数据具有不同的标记的实现方式方法能够有很多种。
举例来说,图4示出了分账本来存储公开数据和隐私数据的示意图400,从图中可以看出,该区块链网络中包括多个账本,例如账本401、402、…、408、409等九个账本,本领域的技术人员应当了解,此处示出了九个账本仅仅是示例性的而非限制性的,本领域的技术人员当然可以实现更多个或者更少个账本,实现账本的数量多少并不是本发明内容的关键,关键在于对于多个账本进行区分,例如将第一个账本即账本401标记为公开账本,即其上仅仅存储上述的公开数据,例如上述的区块链中的保险价格、条款等信息;而将其他账本即账本402、…、408、409等八个账本标记为隐私账本,其上仅仅存储隐私数据,例如上述的用户信息、交易信息、理赔记录等信息。本领域的技术人员应当了解,公开账本和隐私账本的数量能够根据区块链上需要公开的数据和隐私数据的比例动态配置。由此能够实现对于区块链网络上的数据的区分对待,从而为后续对于区块链上的数据的搜索服务提供保障。
替代地,也能够例如将第一个账本401划分为两个不同的区域,在第一个区域上存储公开数据,而在第二个区域上存储隐私数据,由此也能够实现对于区块链网络上的数据的区分对待,从而为后续对于区块链上的数据的搜索服务提供保障。
通过以上方式,即通过将公开数据和隐私数据存储于不同的账本之上或者将公开数据和隐私数据存储于相同的账本的不同区域之上来实现对于公开数据和所述隐私数据进行标记,以便后续搜索阶段能够基于账本类型或者账本的区域的类型来区分公开数据和隐私数据,从而为后续搜索提供支持。
附加地或者替代地,公开数据和隐私数据存储在区块链的不同位置或者所述公开数据和所述隐私数据具有不同的标记也能够通过其他方式来实现,例如通过额外的属性域的方式来实现,具体而言,公开数据和隐私数据可以包括属性A2,其中,所述公开数据具有例如为0的属性A2,而所述隐私数据具有例如为1的属性A2。
举例来说,例如每条区块链数据能够包含一个属性A2,该属性A2为例如为0时表示该区块链数据为公开数据,而当该属性A2为1的第二值时表示该区块链数据为隐私数据。相较于上述的采取分不同账本或者相同账本的不同区域来存储公开数据和隐私数据的技术方案来说,采取公开的动态调整,允许表示该区块链数据为公开数据或隐私数据的额外的属性A2的技术方案允许管理员在区块链运行过程之中实时动态地进行调整,从而提高了数据的动态维护性。
图5示出了以键值(Key/Value)方式存储的数据500的示例,从图5中可以看出,第一个区块链数据K1的值为V1,其属性A2为0,这则表明该第一区块链数据K1为公开数据,外部搜索引擎能够不需要任何访问控制或者验证即可访问该公开数据;而第n个区块链数据Kn的值为Vn,其属性A2为1,这则表明该区块链数据Kn为隐私数据,外部搜索引擎能够需要访问控制或者验证才可访问该隐私数据。也就是说,该公开数据K1和隐私数据Kn采取键值方式进行存储,并且公开数据具有为0的属性A2,而隐私数据具有为1的属性A2。本领域的技术人员应当了解,此处将属性A2的值设置为0或1仅仅是示例性的而非限制性的,其他能够实现本发明内容所公开的发明构思的不偏离本发明内容的发明精神的技术方案也同样包括在本发明内容所附的权利要求书的保护范围之内。
针对区块链网络上的对于区块链数据的访问无法保证满足搜索引擎的诸如Robots协议的搜索要求的技术问题,本发明内容的发明人创新性地意识到能够通过改造区块链网络上的数据的属性来适配搜索引擎,从而实现基于搜索引擎来搜索区块链网络上的数据的目的,此外,在实现检索的同时还能够满足区块链对于需要进行隐私保护部分数据的隐私保护。
上述用于搜索区块链数据的方法可以公开共享的数据无需访问控制即可访问而需要隐私保护的数据保留访问控制;另一方面限定了一种供访问检索的内部机制和接口,不仅可以让外部网页链接可以直接链接区块链中的公开数据,也可以让区块链中的公开数据相互链接,从而使得搜索引擎可以对区块链中的全部信息进行遍历检索。此外,通过本发明内容所提供的解决方案可以实现区块链和互联网信息的互联互通,进一步发挥出区块链的巨大价值。
此外,替代地,上述方法能够通过计算机程序产品,即计算机可读存储介质来实现。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本发明内容的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(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.根据所述第一区块链数据的存储区域位置来确定是否获取在所述第一统一资源定位地址处的第一区块链数据,
其中,在所述第一区块链数据或所述第二区块链数据为公开数据的情况下,所述第一区块链数据或所述第二区块链数据存储在账本的公开区域中;以及在所述第一区块链数据或所述第二区块链数据为隐私数据的情况下,所述第一区块链数据或所述第二区块链数据存储在账本的隐私区域中。
通过以上方式,即通过将公开数据和隐私数据存储于不同的账本之上或者将公开数据和隐私数据存储于相同的账本的不同区域之上来实现对于公开数据和所述隐私数据进行标记,以便后续搜索阶段能够基于账本类型或者账本的区域的类型来区分公开数据和隐私数据,从而为后续所搜提供支持。
图7示出了用于搜索区块链数据的装置700的示意性框图。应当理解,装置700可以实现为实现图1中的用于搜索区块链数据的方法100的功能。从图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通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各种方法,例如用于搜索区块链数据的方法能够由处理单元701执行。例如,在一些实施例中,用于搜索区块链数据的方法100可以实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到该装置700上。当计算机程序被加载到RAM 703并由CPU 701执行时,可以执行上文描述的方法100中的一个或多个动作或步骤。
一般而言,本发明的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本发明的实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。
虽然上面描述了本发明的各种示例实施例可以在硬件或专用电路中实现,但是上述用于区块链的数据处理设备既可以以硬件的形式来实现,也可以通过软件的形式来实现,这是因为:在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。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
用于执行本发明内容的各个方面的计算机可读程序指令或者计算机程序产品也能够存储在云端,在需要调用时,用户能够通过移动互联网、固网或者其他网络访问存储在云端上的用于执行本发明内容的一方面的计算机可读程序指令,从而实施依据本发明内容的各个方面所公开的技术方案。
综上所述,本发明内容所提出的用于搜索区块链数据的方法一方面能够对区块链上的数据作出精确控制,让可以公开共享的数据无需访问控制即可访问而需要隐私保护的数据保留访问控制;另一方面限定了一种供访问检索的内部机制和接口,不仅可以让外部网页链接可以直接链接区块链中的公开数据,也可以让区块链中的公开数据相互链接,从而使得搜索引擎可以对区块链中的全部信息进行遍历检索。此外,通过本发明内容所提供的解决方案可以实现区块链和互联网信息的互联互通,进一步发挥出区块链的巨大价值。
以上所述仅为本发明内容的实施例可选实施例,并不用于限制本发明的实施例,对于本领域的技术人员来说,本发明的实施例可以有各种更改和变化。凡在本发明的实施例的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本发明的实施例的保护范围之内。
虽然已经参考若干具体实施例描述了本发明的实施例,但是应当理解,本发明的实施例并不限于所公开的具体实施例。本发明的实施例旨在涵盖在所附权利要求的精神和范围内所包括的各种修改和等同布置。权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。