CN114254395A - 一种面向内容发布的自治网络的共识形成方法 - Google Patents
一种面向内容发布的自治网络的共识形成方法 Download PDFInfo
- Publication number
- CN114254395A CN114254395A CN202210189542.2A CN202210189542A CN114254395A CN 114254395 A CN114254395 A CN 114254395A CN 202210189542 A CN202210189542 A CN 202210189542A CN 114254395 A CN114254395 A CN 114254395A
- Authority
- CN
- China
- Prior art keywords
- node
- seed
- nodes
- content
- consensus
- 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
-
- 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
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种面向内容发布的自治网络的共识形成方法,通过构建的用于出版内容分发交易的内容链实现,通过该内容链构建自治的内容发布联盟,该内容链是一个具有区块链特点的面向内容分发的服务网络,内容发布是受管控的,不能自由发布,服务网络的根结点、种子结点或是普通结点三种类型结点能按预定方向动态转换,在当前的根结点、种子结点或是普通结点中的一个结点作为交易请求结点发起一项交易后,从根结点、种子结点选取一个共识leader结点,然后将发起的交易发送给所述共识leader结点进行交易的共识过程,将交易的共识过程产生的交易共识数据存储在区块中。本发明通过该内容链中的共识结构能够提高交易效率,满足内容发布合规,通过在内容链中设立内容结点来解决区块链的存储压力以及对第三方数据库的依赖。
Description
技术领域
本发明涉及区块链技术领域,具体的是涉及一种面向内容发布的自治网络的共识形成方法。
背景技术
传统数字内容发布采用集中式的管理,一方面中心结点集中存储的数字内容易遭受攻击泄露或被篡改;另一方面,各个数字版权发布平台间,数据独立难以共享,数字内容出现侵权问题时,难以溯源。由于区块链具有去中心化、可溯源性、数据透明公开以及不可篡改等特点,因此,针对以上问题,现有研究提出将数字内容发布与区块链技术结合。在这些研究中,一些方案将数字内容本身作为共识数据的一部分,通过共识将数字内容存储在区块中,这对区块链来说造成了巨大的存储压力。另一些方案则只在共识中记录数字内容的存储索引,而将数字内容本身存储在第三方数据库中,内容的安全性与可靠性取决于第三方数据库的稳定性。
发明内容
本发明的目的是提出一种面向内容发布的自治网络的共识形成方法,该方法提供一种分层共识机制,以保证出版内容的安全性与可控性;同时针对出版内容具体业务场景对共识进行简化,提高内容链的共识效率;通过设立内容结点,实现将对内容对象数据的共识加入到整个交易共识过程中,既保证了数字内容本身的安全性与可靠性,又节省空间。
本发明是这样实现的,一种面向内容发布的自治网络的共识形成方法,通过构建的用于出版内容分发交易的内容链实现,通过该内容链构建自治的内容发布联盟,该内容链是一个具有区块链特点的面向内容分发的服务网络;
内容元数据以区块的形式存储于所述内容链的结点中,内容对象数据存储于选定的内容结点中;所述内容链中的结点分为根结点、种子结点、普通结点三种类型;所述根结点为一个,通过根结点选取交易从种子结点中选取结点评分最低的种子结点作为新的根结点;所述种子结点与普通结点通过结点类型变换交易实现类型相互转换,其中,普通结点的结点评分达到种子结点评分阈值时有权申请为种子结点,种子结点的结点评分达不到种子结点评分阈值时变为普通结点;种子结点变为普通结点,不受结点评分限制;
根结点具有最高权限,用于内容发布的管控及对其他结点的管控;维护对所有种子结点的评分,具有种子结点的全部功能权限,负责审核内容及其他结点的合法性,增删其他结点,屏蔽不合法内容;
种子结点参与交易共识,各自维护一份对根结点的评分,存储维护完整的内容元数据,如内容目录列表,对内容进行发布、查询、买卖、获取、下架操作,对内容对象数据进行存储维护;
普通结点与种子结点功能相同,但不参与交易共识;
当前时刻的根结点、种子结点或是普通结点作为交易请求结点发起一项交易后,从当前时刻的根结点、种子结点随机选取一个共识leader结点,然后将发起的交易发送给所述共识leader结点进行交易的共识过程,将交易的共识过程产生的交易共识数据存储在区块中,实现交易的共识存储。
其中,共识存储时,以区块高度index值作为主键存储共识形成的区块信息,区块属性包括高度、交易详情、区块哈希、时间戳和前一区块的哈希;将交易哈希作为主键存储交易信息,交易属性包括交易哈希、交易数据和时间戳。
其中,所述根结点在根结点管理界面中,对发布系统对已发布但被禁止发布的内容进行屏蔽操作,对不再出售的内容进行下架操作,所述屏蔽操作及下架操作通过交易共识被记录在内容链中,在实现根结点对内容的管控的同时,也实现了对根结点行为的监督;
所述根结点具有对其他结点的管控权限,当内容链中的其他结点不符合要求时,根结点通过交易共识的方式,对种子结点降级,或者将种子结点、普通结点从内容链中剔除,从而实现对恶意结点的管控。
其中,所述结点评分包括结点基础评分和结点交易共识评分;其中,根结点和种子结点具有基础评分和共识评分,普通结点只具有基础评分,由根结点维护其他结点的评分,定时向其他结点进行广播更新评分;根结点的评分由根结点自己维护一份,由其他种子结点各自维护一份;
结点基础评分:内容链运行中,对结点进行心跳检测和\或存取成功率的检测,检测失败时,在结点的前一基础评分的基础上,通过增加评分值对内容链中要维护评分的结点进行实时评分,获得结点当前的基础评分;
初始化时,内容链中要维护评分的结点的基础评分均为0,当有结点加入到内容链中时,认为该加入的结点为普通结点,将内容链中所有要维护评分的结点的基础评分的平均评分作为加入的结点的基础评分的初始评分;
结点基础评分用d表示,d值越大,表明结点质量越差;
具体结点基础评分步骤如下:
心跳检测:心跳检测包括根结点定时对包括自己在内的结点进行心跳检测,以及种子结点定时对根结点进行心跳检测;当根结点对包括自己在内的结点进行心跳检测时,在到达约定的时间间隔x后,根结点对被检测的结点发送一个不带任何参数的请求,被检测的结点则返回一个不带任何数据的响应;若根结点请求成功并接受到了被检测的结点的响应,则心跳检测成功;否则,心跳检测失败,此时根结点将被检测结点的d值加1;种子结点对根结点进行心跳检测的步骤与根结点对包括自己在内的结点进行心跳检测的步骤相同,若种子结点对根结点心跳检测失败,则种子结点将根结点的d值加1;
存储失败:结点在存储内容时,如果存储失败且存储内容的这一结点不是根结点,发布结点会收到存储失败的结果,此时,发布结点将存储内容的这一结点存储失败的消息发送给根结点,根结点接收到消息后,将存储失败的结点的d值加1;如果存储内容的这一结点是根结点,发布结点则将根结点存储失败的消息发送给所有种子结点及根结点,种子结点收到消息后将根结点的d值加1,根结点收到消息后将自己的d值加1;
获取失败:从结点获取内容时,如果获取失败且被获取内容的结点不是根结点,则向根结点发送获取失败信息,根结点接收到消息后,将被获取内容的结点的d值加1;如果该被获取内容的这一结点是根结点,则将获取失败信息发送给所有种子结点及根结点,种子结点收到消息后将根结点的d值加1,根结点收到消息后将自己的d值加1;
其中,每经历一个监测周期,根结点将要维护评分的结点的d值以及种子结点将自己维护的根结点的d值按以下式进行设置:
式中,dn表示第n个监测周期要维护评分的结点或根结点的d值,wi表示第i个监测周期要维护评分的结点或根结点的d值所占权重,di表示第i个监测周期要维护评分的结点或根结点的d值;
其中,每个监测周期,内容链中要维护评分的结点的初始的基础评分为0;
结点交易共识评分:结点的交易共识评分用s表示,s值越大,表明结点的交易共识评分越低;交易共识过程中,如果根结点没有接收到种子结点发来的消息,则将该种子结点的交易共识评分加1;如果种子结点没有接收到根结点发来的消息,则将自己维护的对根结点的交易共识评分加1;
其中,每经历一个监测周期,根结点将种子结点的s值以及种子结点将自己维护的根结点的s值按照以下式进行设置;
式中,Sn表示第n个监测周期要维护评分的种子结点或根结点的s值,mi表示第i个监测周期要维护评分的种子结点或根结点的s值所占权重,si表示第i个监测周期要维护评分的种子结点或根结点的s值。
其中,所述根结点的选取包括以下几种:
根结点宕机:当根结点出现故障宕机时,系统从现有种子结点中选取基础评分以及共识评分总分最低的种子结点作为新的根结点,并发起根结点选取交易,交易共识成功后,存储在区块中,并将原根结点中的数据转移备份到新的根结点中;根结点宕机恢复后,增加该宕机恢复后根结点的基础评分,基础评分的增加与宕机时间的长短成正比;如果基础评分或共识评分其一达不到种子结点的要求,则恢复为普通结点;如果基础评分和共识评分都达到种子结点的要求,则恢复为种子结点。
根结点主动申请退出内容链:当根结点主动申请退出内容链时,系统从现有种子结点中选取基础评分以及共识评分总分最低的种子结点作为新的根结点,并发起根结点选取交易,交易共识成功后,存储在区块中,并将原根结点中的数据转移备份到新的根结点中。
所述根结点的更换,分以下情况:
系统自动维护:如果根结点的基础评分或共识评分达不到根结点的评分阈值时,某一种子结点自动提出要求更换根结点,此时该要求更换根结点的种子结点发起根结点更换的请求,其余种子结点收到请求后,根据自己维护的对根结点的评分,自动判断是否同意更换根结点,一半以上的种子结点通过该要求更换根结点种子结点发起的根结点更换的请求后,该要求更换根结点的种子结点从现有种子结点中选取基础评分以及共识评分总分最低的种子结点作为新的根结点,并发起根结点选取交易,交易共识成功后,存储在区块中,并将原根结点中的数据转移备份到新的根结点中;
投票更换:所有种子结点都有权对人为发起的预定事件发起投票,包括更换根结点的事件,某一种子结点人为发起投票且经超过一半的种子结点同意后,发起投票的种子结点从现有种子结点中选取基础评分以及共识评分总分最低的种子结点作为新的根结点,并发起根结点选取交易,交易共识成功后,存储在区块中,并将原根结点中的数据转移备份到新的根结点中;
所述的种子结点降级为普通结点有以下几种情况:
种子结点主动申请成为普通结点,直接发起结点类型变动交易,交易共识成功后变为普通结点;
种子结点的共识评分或基础评分达不到种子结点的阈值,种子结点发起结点类型变动交易,交易共识成功后自动降为普通结点;
某一种子结点人为提出让另一种子结点降为普通结点,在种子结点间发起投票且经一半以上种子结点投票通过后,发起让另一种子结点降为普通结点的投票的种子结点发起结点类型变动交易,将该操作记录在区块中;
种子结点宕机恢复后,增加该宕机恢复后种子结点的基础评分,基础评分的增加与宕机时间的长短成正比;如果基础评分或共识评分其一达不到种子结点的要求,则恢复为普通结点;如果基础评分和共识评分都达到种子结点的要求,则恢复为种子结点;
所述的普通结点升级为种子结点:普通结点的基础评分如果达到种子结点的评分阈值,该普通结点有权限申请成为种子结点;普通结点申请后,结点类型变动交易,交易共识成功后变为种子结点。
其中,所述的用于出版内容分发交易包括适用于出版内容分发的可扩展的多种交易类型,每种交易类型对应一种具体的业务逻辑,具体内容如下:
内容发布:内容发布时,将内容元数据信息存储到区块中;
内容买卖:分为内容所有权买卖和内容使用权买卖;
内容停止发布:分为内容下架和内容屏蔽;
内容存储位置添加:当内容对象数据在三个结点中存储成功时,发布结点发起内容存储位置添加交易,进行结点间共识;
内容存储位置变更:当内容对象数据的存储位置需要变更时,提出内容存储位置变更请求的结点发起内容存储位置变更交易,对某一存储位置进行更换;
根结点选取:记录种子结点被选取为根结点的交易,并进行结点间共识;
根结点删除结点:记录根结点删除其他类型的结点的交易,并进行结点间共识;
结点类型变动:当种子结点变为普通结点或普通结点变为种子结点时,提出结点类型变动请求的结点发起结点类型变动交易,并在结点进行共识。
其中,所述共识leader结点收到交易后的交易的共识过程的步骤如下:
共识leader结点收到交易后,将交易打包成区块,生成预准备消息并将该预准备消息进行广播;
种子结点收到该预准备消息并验证正确后,生成准备消息并进行广播;
收到2f+1个准备消息的结点进入确认阶段, f为拜占庭结点的个数,生成确认消息并将该确认消息进行广播;
收到2f+1个确认消息的结点将区块进行本地存储并执行区块;如果该结点是共识leader结点,则将区块发送给未参与共识的结点进行数据同步;如果该结点是发布结点,则向发布系统返回交易哈希。
本发明提出一套适用于出版内容分发交易的内容链,通过内容链构建自治的内容发布联盟;内容链是一个吸收了区块链优点的面向内容分发的服务网络。
传统区块链中,由于交易需要在所有结点间达成一致,因此交易效率低。而本发明内容的发布是受管控的,不能自由发布,内容链中的共识结构能够提高交易效率,满足内容发布合规。
本发明的内容链中的共识过程不仅是对交易的共识,还包括了对内容对象数据的共识,通过在内容链中设立内容结点来解决区块链的存储压力以及对第三方数据库的依赖。
附图说明
图1是本发明实施例的数字内容本身与内容链间的关系示意图;
图2是本发明实施例的根结点对内容的管控示意示意图;
图3是本发明实施例的根结点对其他结点的管控示意图;
图4是本发明实施例的结点类型转换示意图;
图5是本发明实施例的交易共识流程及共识类型说明示意图。
具体实施方式
以下结合附图和具体实施例对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例中,结点表示相互通信连接而形成数字内容链网络的多个单元结构,多个构成内容链的单元结构间相互通信,形成网络结构且结点的类型可以动态调整,与区块链中顺序排列的节点的含义存在区别。
本发明实施例中,数字内容与内容链的关系如图1所示,内容发布者或是内容所有者通过发布系统进行内容发布,包括内容元数据以及内容对象数据的发布,内容对象数据由发布结点通过内容对象存储的方式备份于内容结点(根据cid将内容存储在内容结点的本地文件系统中,该内容结点从种子结点或普通结点中选取设置),内容元数据由种子结点通过共识存储的方式共识存储于根结点、种子结点或是普通结点,根结点具有管控权限,可以实现对发布内容的管控,包括内容屏蔽以及内容下架,使内容发布受控而非呈自由发布状态。
本发明引入适用于出版内容分发的可扩展的交易类型,针对出版内容发布场景中的具体业务以及内容链中的功能需求,从底层设计出相应的交易类型,每种交易类型对应一种具体的业务逻辑;具体内容如下:
内容发布:内容发布时,将内容元数据等信息存储到区块中。
内容买卖:分为内容所有权买卖和内容使用权买卖。
内容停止发布:根据操作类型可分为内容下架和内容屏蔽。
内容存储位置添加:当内容对象数据在三个结点中存储成功时,发布结点发起内容存储位置添加交易,进行结点间共识。
内容存储位置变更:当内容对象数据的存储位置需要变更时,提出内容存储位置变更请求的结点发起内容存储位置变更交易,对某一存储位置进行更换;
根结点选取:记录种子结点被选取为根结点的交易,并进行结点间共识。
根结点删除结点:记录根结点删除其他类型的结点的交易,并进行结点间共识。
结点类型变动:当种子结点变为普通结点或普通结点变为种子结点时,提出结点类型变动请求的结点发起结点类型变动交易,并在结点间进行共识。
本发明引入分层共识机制,分层机制就是将内容链中的结点按运行方式分成三种不同的类型:根结点、种子结点、普通结点。不同类型的结点具有不同的功能:
种子结点:
种子结点默认参与交易共识,各自维护一份对根结点的评分,存储维护内容元数据以及内容对象数据,对内容进行发布、查询、买卖、获取、下架等操作;
普通结点:
普通结点与种子结点功能相同,但是不参与交易共识过程;
根结点:
根结点从种子结点中选取,维护对所有种子结点的评分,具有种子结点的全部功能权限。除此之外,根结点负责审核内容、结点的合法性,增删结点,屏蔽不合法的内容。
在本发明中,所有种子结点及普通结点都可以作为内容结点,具体可以根据需要从种子结点、普通结点中选取所需要的结点作为内容结点;内容结点负责对内容对象数据进行存储维护。
在分层共识机制下,根结点具有最高权限,使内容的发布受国家相关政策的管控,保证内容发布的可控性;通过种子结点之间的交易共识,保证发布内容的不可篡改性以及安全性。不同类型的结点之间能通过结点评分或是人为发起的结点类型转换的投票来进行类型转换,评分机制与内容发布具体业务逻辑相结合,在保证结点可靠性的同时,也保证了结点的服务质量。
本发明实施方式主要包括根结点管控、结点评分机制、结点类型转换机制、共识过程以及共识存储,具体内容如下:
1.根结点管控
每种类型的结点都具有相应的结点管理界面,作为具有最高管控权限的结点,根结点也不例外。在根结点管理界面中,根结点可以对来自内容商店的可发布而已发布,但是被禁止发布的内容进行屏蔽操作,对不再出售的内容进行下架操作,这些操作需要通过共识被记录在内容链中,在实现根结点对内容的管控的同时,也实现了对根结点行为的监督,如图2所示。
除此之外,根结点还具有对结点的管控权限,当内容链中的其他结点不符合要求时,根结点可以通过共识的方式,对种子结点进行降级为普通结点,或者将种子结点或是普通结点从内容链中剔除,从而实现对恶意结点的管控,如图3所示。
2.结点评分机制
为了实现对内容链中各种类型结点的维护,保证共识方法的正常运行,本发明提出结点评分机制来实现结点间类型的转换。结点评分机制与内容相关的业务逻辑紧密相关。结点评分机制包括结点基础评分和结点交易共识评分。根结点和种子结点具有基础评分和共识评分,普通结点只具有基础评分。由根结点维护其他结点的评分,定时向其他结点进行广播更新评分。根结点的评分由根结点自己维护一份,由其他种子结点各自维护一份;
(1)结点基础评分
当结点加入到内容链中时,将内容链中所有结点的基础评分的平均值作为结点的基础评分。结点基础评分包括对结点心跳反应和存取成功率两部分评估。通过心跳检测机制以及对存取成功率的检测,对结点进行评分;
结点基础评分用d表示,d值越大,表明结点质量越差。
具体评分步骤如下:
1).心跳检测:
心跳检测:心跳检测包括根结点定时对包括自己在内的结点进行心跳检测,以及种子结点定时对根结点进行心跳检测;当根结点对包括自己在内的结点进行心跳检测时,在到达约定的时间间隔x后,根结点对被检测的结点发送一个不带任何参数的请求,被检测的结点则返回一个不带任何数据的响应;若根结点请求成功并接受到了被检测的结点的响应,则心跳检测成功;否则,心跳检测失败,此时根结点将被检测结点的d值加1;种子结点对根结点进行心跳检测的步骤与根结点对包括自己在内的结点进行心跳检测的步骤相同,若种子结点对根结点心跳检测失败,则种子结点将根结点的d值加1;
2).存储失败:
结点在存储内容时,如果存储失败且存储内容的这一结点不是根结点,发布结点会收到存储失败的结果,此时,发布结点将存储内容的这一结点存储失败的消息发送给根结点,根结点接收到消息后,将存储失败的结点的d值加1;如果存储内容的这一结点是根结点,发布结点则将根结点存储失败的消息发送给所有种子结点及根结点,种子结点收到消息后将根结点的d值加1,根结点收到消息后将自己的d值加1;
3)获取失败:
如果从某一结点获取内容失败且该被获取内容的这一结点不是根结点,则向根结点发送获取失败信息,根结点接收到消息后,将被获取内容的结点的d值加1;如果该被获取内容的这一结点是根结点,则将获取失败信息发送给所有种子结点及根结点,种子结点收到消息后将根结点的d值加1,根结点收到消息后将自己的d值加1;
初始设置一个监测周期为24h,监测周期可随实际需求相应变化,每经历一个监测周期,根结点将要维护评分的结点的d值以及种子结点将自己维护的根结点的d值按以下式进行设置:
式中,dn表示第n个监测周期要维护评分的结点或根结点的d值,wi表示前第i个监测周期要维护评分的结点或根结点的d值所占权重,di表示第i个监测周期要维护评分的结点或根结点的d值,n表示当前周期为第n个周期;
(2).结点交易共识评分
结点交易共识评分用s表示,s的值越大,表明结点的共识评分越低。在交易共识过程中,如果根结点没有接收到种子结点发来的消息,则将该种子结点的共识评分加1;如果种子结点没有接收到根结点发来的消息,则将自己维护的对根结点的共识评分加1;
其中,每经历一个监测周期,根结点将种子结点的s值以及种子结点将自己维护的根结点的s值按照下式进行设置。
式中,Sn表示第n个监测周期要维护评分的种子结点或根结点的s值,mi表示第i个监测周期要维护评分的种子结点或根结点的s值所占权重,si表示第i个监测周期要维护评分的种子结点或根结点的s值。
3.结点类型转换机制
为了保证内容链系统可以正常运行,并且保证结点可以在一定程度上自主选择结点类型,提出结点类型转换机制。结点类型转换包括根结点选取、种子结点降级以及普通结点升级。结点类型转换如图4所示。
(1).根结点选取
根结点选取的情况有以下几种:
1).根结点宕机
当根结点出现故障宕机时,为了保证系统正常运行,系统从现有种子结点中选取基础评分以及共识评分总分最低的种子结点作为新的根结点,并发起根结点选取交易,交易共识成功后,存储在区块中,并将原根结点中的数据转移备份到新的根结点中。
根结点宕机恢复后,增加宕机恢复后根结点的基础评分,基础评分的增加与宕机时间的长短成正比;如果基础评分或共识评分其一达不到种子结点的要求,则该结点只能恢复为普通结点;如果基础评分和共识评分都达到了种子结点或根结点的要求,则该结点恢复为种子结点。
2).根结点主动申请退出内容链
当根结点主动申请退出内容链时,系统从现有种子结点中选取基础评分以及共识评分总分最低的种子结点作为新的根结点,并发起根结点选取交易,交易共识成功后,存储在区块中,并将原根结点中的数据转移备份到新的根结点中。
3).种子结点要求更换根结点
a.系统自动维护:
如果根结点的基础评分或共识评分达不到根结点的评分阈值时,某一种子结点自动提出要求更换根结点,此时该要求更换根结点的种子结点发起根结点更换的请求,其余种子结点收到请求后,根据自己维护的对根结点的评分,自动判断是否同意更换根结点,一半以上的种子结点通过该要求更换根结点种子结点发起的根结点更换的请求后,该要求更换根结点的种子结点从现有种子结点中选取基础评分以及共识评分总分最低的种子结点作为新的根结点,并发起根结点选取交易,交易共识成功后,存储在区块中,并将原根结点中的数据转移备份到新的根结点中。
b.投票更换:
所有种子结点都有权对人为发起的预定事件发起投票,包括更换根结点的事件,某一种子结点人为发起投票且经超过一半的种子结点同意后,发起投票的种子结点从现有种子结点中选取基础评分以及共识评分总分最低的种子结点作为新的根结点,并发起根结点选取交易,交易共识成功后,存储在区块中,并将原根结点中的数据转移备份到新的根结点中。
(2).种子结点降级
种子结点的降级有以下几种情况:
1).种子结点主动申请成为普通结点,直接发起结点类型变动交易,交易共识成功后变为普通结点。
2).种子结点的交易共识评分或基础评分达不到种子结点的阈值,自动降为普通结点。
3)人为因素:某一种子结点人为提出让另一种子结点降为普通结点,在种子结点间发起让另一种子结点降为普通结点的投票,且经一半以上种子结点投票通过后,发起让另一种子结点降为普通结点的投票的种子结点发起结点类型变动交易。
种子结点宕机恢复后,增加宕机恢复后种子结点的基础评分,基础评分的增加与宕机时间的长短成正比;如果基础评分或共识评分其一达不到种子结点的要求,则该种子结点只能恢复为普通结点;如果基础评分和共识评分都达到了种子结点的要求,则该结点恢复为种子结点。
(3).普通结点升级
普通结点的基础评分如果达到种子结点的阈值,该普通结点有权限申请成为种子结点;普通结点申请后,自动发起结点类型变动交易,交易共识成功后变为种子结点。
4.交易共识过程
发起交易后,各结点间需要通过多次消息收发,使区块高度、区块哈希、区块中的交易等数据达成一致。
本发明提出的共识方法中,由于引入了结点评分与人为发起结点类型转换的投票,使结点类型能在根结点,种子结点以及普通结点间转换,从而最大程度上保证了交易共识结点的可靠性以及共识效率。
本发明的交易共识流程如图5所示。
(1).请求阶段:
交易请求结点(可以是根结点、种子结点或是普通结点中的一个结点)发送交易请求信息,从根结点、种子结点随机选取一个共识leader结点,然后将发起的交易发送给所述共识leader结点进行交易的共识过程;
(2).预准备阶段:
共识leader结点收到交易后,将交易打包成区块,生成预准备消息并将该消息广播给其他种子结点;
(3).准备阶段:
其他种子结点收到预准备消息并验证正确后,生成准备消息并广播给其他种子结点。
(4).确认阶段:
当其他种子结点收到2f+1(f为拜占庭结点的个数)个准备消息后,进入确认阶段;生成确认消息并将该消息广播给其他结点。当其他种子结点收到2f+1个确认消息后,将区块进行本地存储并执行区块。其中,如果该结点是共识leader结点,则将区块发送给未参与共识的结点进行数据同步;如果该结点是发布结点,则向发布系统返回交易哈希。
5.共识存储
通过共识产生的交易数据存储在区块中,在实际存储中以内容链共识出块的区块高度index值作为主键,存储区块信息,区块的具体属性包括高度、交易详情、区块哈希、时间戳和前一区块的哈希;将交易哈希作为主键,存储交易信息,交易的具体属性包括交易哈希、交易数据和时间戳。
其中,当打包成区块后,通过共识引擎进行共识处理时,在没有达成共识时,丢弃区块,在达成共识后,由内容链中的内容结点通过共识存储进行存储后结束。
其中,开始发起交易后,判断是否达到出块的条件,如果没有达到出块的条件,则进行等待,在达到出块交易后,通过共识池进行交易,将交易打包出块,然后再通过共识引擎进行共识。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点,对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内,不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (7)
1.面向内容发布的自治网络的共识形成方法,其特征在于,通过构建的用于出版内容分发交易的内容链实现,通过该内容链构建自治的内容发布联盟,该内容链是一个具有区块链特点的面向内容分发的服务网络;
内容元数据以区块的形式存储于内容链的结点中,内容对象数据存储于从所述结点中选定的内容结点中;所述内容链的结点分为根结点、种子结点、普通结点三种类型;所述根结点为一个,通过根结点选取交易从种子结点中选取结点评分最低的种子结点作为新的根结点;所述种子结点与普通结点通过结点类型变换交易实现类型相互转换,其中,普通结点的结点评分达到种子结点评分阈值时有权申请为种子结点,种子结点的结点评分达不到种子结点评分阈值时变为普通结点;种子结点变为普通结点,不受结点评分限制;
根结点具有最高权限,用于内容发布的管控及对其他结点的管控;维护对所有种子结点的评分,具有种子结点的全部功能权限,同时负责审核内容及其他结点的合法性,增删其他结点,屏蔽不合法内容;
种子结点参与交易共识,各自维护一份对根结点的评分,存储维护内容元数据和\或内容对象数据,对内容进行发布、查询、买卖、获取、下架操作;
普通结点与种子结点功能相同,但不参与交易共识;
当前时刻的根结点、种子结点或是普通结点作为交易请求结点发起一项交易后,从当前时刻的根结点、种子结点随机选取一个共识leader结点,然后将发起的交易发送给所述共识leader结点进行交易的共识过程,将交易的共识过程产生的交易共识数据存储在区块中,实现交易的共识存储。
2.根据权利要求1所述面向内容发布的自治网络的共识形成方法,其特征在于,共识存储时,以区块高度index值作为主键存储共识形成的区块信息,区块属性包括高度、交易详情、区块哈希、时间戳和前一区块的哈希;将交易哈希作为主键存储交易信息,交易属性包括交易哈希、交易数据和时间戳。
3.根据权利要求2所述面向内容发布的自治网络的共识形成方法,其特征在于,所述根结点在根结点管理界面中,对发布系统已发布但被禁止发布的内容进行屏蔽操作,对不再出售的内容进行下架操作,所述屏蔽操作及下架操作通过交易共识被记录在内容链中;
所述根结点具有对其他结点的管控权限,当内容链中的其他结点不符合要求时,根结点通过交易共识的方式,对种子结点降级或者将种子结点、普通结点从内容链中剔除。
4.根据权利要求3所述面向内容发布的自治网络的共识形成方法,其特征在于,所述结点评分包括结点基础评分和结点交易共识评分;其中,根结点和种子结点具有基础评分和共识评分,普通结点只具有基础评分;根结点维护其他结点的评分,定时向其他结点进行广播更新评分;根结点的评分由根结点自己维护一份,由种子结点各自维护一份;
结点基础评分:内容链运行中,对结点进行心跳检测和\或存取成功率的检测,检测失败时,在结点的前一基础评分的基础上,通过增加评分值对内容链中要维护评分的结点进行实时评分,获得结点的当前的基础评分;
初始化时,内容链中要维护评分的结点的基础评分均为0,当有结点加入到内容链中时,认为该加入的结点为普通结点,将内容链中所有要维护评分的结点的基础评分的平均评分作为加入的结点的基础评分的初始评分;结点的基础评分用d表示,d值越大,表明结点质量越差;
具体基础评分步骤如下:
心跳检测:心跳检测包括根结点定时对包括自己在内的结点进行心跳检测,以及种子结点定时对根结点进行心跳检测;当根结点对包括自己在内的结点进行心跳检测时,在到达约定的时间间隔x后,根结点对被检测的结点发送一个不带任何参数的请求,被检测的结点则返回一个不带任何数据的响应;若根结点请求成功并接受到了被检测的结点的响应,则心跳检测成功;否则,心跳检测失败,此时根结点将被检测结点的d值加1;种子结点对根结点进行心跳检测的步骤与根结点对包括自己在内的结点进行心跳检测的步骤相同,若种子结点对根结点心跳检测失败,则种子结点将根结点的d值加1;
存储失败:结点在存储内容时,如果存储失败且存储内容的结点不是根结点,发布结点会收到存储失败的结果,此时,发布结点将存储内容的结点存储失败的消息发送给根结点,根结点接收到消息后,将存储失败的结点的d值加1;如果存储内容的结点是根结点,发布结点则将根结点存储失败的消息发送给所有种子结点及根结点,种子结点收到消息后将根结点的d值加1,根结点收到消息后将自己的d值加1;
获取失败:从结点获取内容时,如果获取失败且被获取内容的结点不是根结点,则向根结点发送获取失败信息,根结点接收到消息后,将被获取内容的结点的d值加1;如果该被获取内容的结点是根结点,则将获取失败信息发送给所有种子结点及根结点,种子结点收到消息后将根结点的d值加1,根结点收到消息后将自己的d值加1;
其中,每经历一个监测周期,根结点将要维护评分的结点的d值以及种子结点将自己维护的根结点的d值按以下式进行设置:
式中,dn表示第n个监测周期要维护评分的结点或根结点的d值,wi表示第i个监测周期要维护评分的结点或根结点的d值所占权重,di表示第i个监测周期要维护评分的结点或根结点的d值;
其中,每个监测周期,内容链中要维护评分的结点的初始的基础评分为0;
结点交易共识评分:结点的交易共识评分用s表示,s值越大,表明结点的交易共识评分越低;交易共识过程中,如果根结点没有接收到种子结点发来的消息,则将该种子结点的交易共识评分加1;如果种子结点没有接收到根结点发来的消息,则将自己维护的对根结点的交易共识评分加1;
其中,每经历一个监测周期,根结点将种子结点的s值以及种子结点将自己维护的根结点的s值按照以下式进行设置;
式中,Sn表示第n个监测周期要维护评分的种子结点或根结点的s值,mi表示第i个监测周期要维护评分的种子结点或根结点的s值所占权重,si表示第i个监测周期要维护评分的种子结点或根结点的s值。
5.根据权利要求4所述面向内容发布的自治网络的共识形成方法,其特征在于,所述根结点的选取包括以下几种:
根结点宕机:当根结点出现故障宕机时,系统从种子结点中选取基础评分以及共识评分总分最低的种子结点作为新的根结点,并发起根结点选取交易,交易共识成功后,存储在区块中,并将原根结点中的数据转移备份到新的根结点中;根结点宕机恢复后,增加该宕机恢复后根结点的基础评分,基础评分的增加与宕机时间长短成正比;如果基础评分或共识评分达不到种子结点要求,恢复为普通结点;如果基础评分和共识评分都达到种子结点的要求,恢复为种子结点;
根结点主动申请退出内容链:当根结点主动申请退出内容链时,系统从现有种子结点中选取基础评分以及共识评分总分最低的种子结点作为新的根结点,并发起根结点选取交易,交易共识成功后,存储在区块中,并将原根结点中的数据转移备份到新的根结点中;
所述根结点的更换分以下情况:
系统自动维护:如果检测到根结点的基础评分或共识评分达不到根结点的评分阈值时,某一种子结点自动发起根结点更换的请求,一半以上的种子结点通过该根结点更换的请求后,要求更换根结点的种子结点从现有种子结点中选取基础评分以及共识评分总分最低的种子结点作为新的根结点,并发起根结点选取交易,交易共识成功后,存储在区块中,并将原根结点中的数据转移备份到新的根结点中;
投票更换:所有种子结点都有权对更换根结点的事件发起投票,某一种子结点发起更换根结点的事件的投票且经超过一半的种子结点同意后,发起投票的种子结点从现有种子结点中选取基础评分以及共识评分总分最低的种子结点作为新的根结点,并发起根结点选取交易,交易共识成功后,存储在区块中,并将原根结点中的数据转移备份到新的根结点中;
所述的种子结点降级为普通结点有以下几种情况:
主动申请成为普通结点的种子结点直接发起结点类型变动交易,交易共识成功后变为普通结点;
共识评分或基础评分达不到种子结点的阈值的种子结点发起结点类型变动交易,交易共识成功后降为普通结点;
某一种子结点提出让另一种子结点降为普通结点,在种子结点间发起投票且经一半以上种子结点投票通过后,发起让另一种子结点降为普通结点的投票的种子结点发起结点类型变动交易,交易共识成功后变为普通结点;
种子结点宕机恢复后,增加宕机恢复后种子结点的基础评分,基础评分的增加与宕机时间的长短成正比;如果基础评分或共识评分达不到种子结点要求,恢复为普通结点;如果基础评分和共识评分都达到种子结点要求,恢复为种子结点;
所述普通结点升级:达到种子结点的评分阈值的普通结点申请成为种子结点,自动发起结点类型变动交易,交易共识成功后变为种子结点。
6.根据权利要求5所述面向内容发布的自治网络的共识形成方法,其特征在于,所述的交易包括适用于出版内容分发的可扩展的多种交易类型,每种交易类型对应一种具体的业务逻辑,具体内容如下:
内容发布:内容发布时,将内容元数据信息存储到区块中;
内容买卖:分为内容所有权买卖和内容使用权买卖;
内容停止发布:分为内容下架和内容屏蔽;
内容存储位置添加:当内容对象数据在三个结点中存储成功时,发布结点发起内容存储位置添加交易,进行结点间共识;
内容存储位置变更:当内容对象数据的存储位置需要变更时,提出内容存储位置变更请求的结点发起内容存储位置变更交易,对某一存储位置进行更换;
根结点选取:记录种子结点被选取为根结点的交易,并进行结点间共识;
根结点删除结点:记录根结点删除其他类型的结点的交易,并进行结点间共识;
结点类型变动:当种子结点变为普通结点或普通结点变为种子结点时,提出结点类型变动请求的结点发起结点类型变动交易,并进行结点间共识。
7.根据权利要求1所述面向内容发布的自治网络的共识形成方法,其特征在于,所述共识leader结点收到交易后的交易的共识过程的步骤如下:
共识leader结点收到交易后,将交易打包成区块,生成预准备消息并将该预准备消息进行广播;
种子结点收到该预准备消息并验证正确后,生成准备消息并进行广播;
收到2f+1个准备消息的结点进入确认阶段, f为拜占庭结点的个数,生成确认消息并将该确认消息进行广播;
收到2f+1个确认消息的结点将区块进行本地存储并执行区块;如果该结点是共识leader结点,则将区块发送给未参与共识的结点进行数据同步;如果该结点是发布结点,则向发布系统返回交易哈希。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210189542.2A CN114254395B (zh) | 2022-03-01 | 2022-03-01 | 一种面向内容发布的自治网络的共识形成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210189542.2A CN114254395B (zh) | 2022-03-01 | 2022-03-01 | 一种面向内容发布的自治网络的共识形成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114254395A true CN114254395A (zh) | 2022-03-29 |
CN114254395B CN114254395B (zh) | 2022-05-06 |
Family
ID=80797121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210189542.2A Active CN114254395B (zh) | 2022-03-01 | 2022-03-01 | 一种面向内容发布的自治网络的共识形成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114254395B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107018125A (zh) * | 2017-02-17 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 一种区块链系统、数据存储方法及装置 |
CN108881488A (zh) * | 2018-08-01 | 2018-11-23 | 夸克链科技(深圳)有限公司 | 一种基于分域的区块链交易处理方法及网络 |
CN110602239A (zh) * | 2019-09-20 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种区块链信息存储方法及相关设备 |
CN110599174A (zh) * | 2019-09-20 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种区块链信息处理方法及相关设备 |
CN210691319U (zh) * | 2019-11-22 | 2020-06-05 | 中国科学院深圳先进技术研究院 | 一种基于区块链的档案信息安全管理系统 |
CN112163856A (zh) * | 2020-10-09 | 2021-01-01 | 北京邮电大学 | 用于区块链与物联网融合场景的共识方法及系统 |
CN112235420A (zh) * | 2020-12-10 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 基于区块链的数据同步方法、系统及相关设备 |
CN112541758A (zh) * | 2020-12-01 | 2021-03-23 | 鲁静 | 基于区块链的多轮投票式容错排序共识机制与方法 |
CN112565368A (zh) * | 2020-11-26 | 2021-03-26 | 中国船舶工业系统工程研究院 | 基于区块链的海上装备自组网系统、方法和介质 |
CN113067914A (zh) * | 2021-06-02 | 2021-07-02 | 支付宝(杭州)信息技术有限公司 | 一种分配子网标识的方法、装置、电子设备和存储介质 |
EP3862947A1 (en) * | 2016-03-03 | 2021-08-11 | NEC Laboratories Europe GmbH | Method for managing data in a network of nodes |
-
2022
- 2022-03-01 CN CN202210189542.2A patent/CN114254395B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3862947A1 (en) * | 2016-03-03 | 2021-08-11 | NEC Laboratories Europe GmbH | Method for managing data in a network of nodes |
CN107018125A (zh) * | 2017-02-17 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 一种区块链系统、数据存储方法及装置 |
CN108881488A (zh) * | 2018-08-01 | 2018-11-23 | 夸克链科技(深圳)有限公司 | 一种基于分域的区块链交易处理方法及网络 |
CN110602239A (zh) * | 2019-09-20 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种区块链信息存储方法及相关设备 |
CN110599174A (zh) * | 2019-09-20 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种区块链信息处理方法及相关设备 |
CN210691319U (zh) * | 2019-11-22 | 2020-06-05 | 中国科学院深圳先进技术研究院 | 一种基于区块链的档案信息安全管理系统 |
CN112163856A (zh) * | 2020-10-09 | 2021-01-01 | 北京邮电大学 | 用于区块链与物联网融合场景的共识方法及系统 |
CN112565368A (zh) * | 2020-11-26 | 2021-03-26 | 中国船舶工业系统工程研究院 | 基于区块链的海上装备自组网系统、方法和介质 |
CN112541758A (zh) * | 2020-12-01 | 2021-03-23 | 鲁静 | 基于区块链的多轮投票式容错排序共识机制与方法 |
CN112235420A (zh) * | 2020-12-10 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 基于区块链的数据同步方法、系统及相关设备 |
CN113067914A (zh) * | 2021-06-02 | 2021-07-02 | 支付宝(杭州)信息技术有限公司 | 一种分配子网标识的方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114254395B (zh) | 2022-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101902494B (zh) | 更新服务节点 | |
CN110177084A (zh) | 用于防御网络攻击的分布式存储系统元服务结构、构建方法及系统架构 | |
CN100547583C (zh) | 数据库的自动和动态提供的方法 | |
CN104506625B (zh) | 一种提升云数据库元数据节点可靠性的方法 | |
CN100556038C (zh) | 一种基于外部条件触发节点动作的内容分发方法 | |
CN108491504A (zh) | 用于分布式配置管理的方法及装置 | |
CN104580395A (zh) | 一种基于现存云存储平台的多云协同存储中间件系统 | |
CN113783899B (zh) | 节点退出方法和区块链系统 | |
CN111353172B (zh) | 基于区块链的Hadoop集群大数据访问方法及系统 | |
CN104750738B (zh) | 一种更新数据信息的方法、数据节点、管理节点及系统 | |
CN111625598A (zh) | 一种工程协作区块链数据结构及应用方法 | |
CN111460031A (zh) | 一种数据同步的方法、装置、设备和介质 | |
CN108920723A (zh) | 一种节点分层分区管理方法 | |
CN114254395B (zh) | 一种面向内容发布的自治网络的共识形成方法 | |
CN115796261A (zh) | 一种基于区块链的轻量级分组共识的联邦学习方法 | |
CN108459929A (zh) | 一种基于云计算的数据备份方法 | |
CN115695449A (zh) | 一种区块链数字藏品源文件跨平台同步与转移方法 | |
CN113268711B (zh) | 基于Git及区块链的变电站继电保护装置软件版本管理方法 | |
JP2003296487A (ja) | 価値情報交換システム | |
CN113360567A (zh) | 基于区块链的电力交易分布式账本的安全存储方法及应用 | |
US20110088013A1 (en) | Method and system for synchronizing software modules of a computer system distributed as a cluster of servers, application to data storage | |
CN112037873A (zh) | 一种基于集群选主和共识机制的单点优化方法 | |
CN108881479B (zh) | 一种集成消息队列及消息管理方法 | |
CN113595737B (zh) | 基于区块链的敏捷指控系统 | |
CN112765681B (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 |