CN111343212B - 消息处理方法、装置、设备以及存储介质 - Google Patents

消息处理方法、装置、设备以及存储介质 Download PDF

Info

Publication number
CN111343212B
CN111343212B CN202010438631.7A CN202010438631A CN111343212B CN 111343212 B CN111343212 B CN 111343212B CN 202010438631 A CN202010438631 A CN 202010438631A CN 111343212 B CN111343212 B CN 111343212B
Authority
CN
China
Prior art keywords
consensus
message
network
node
legal
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
Application number
CN202010438631.7A
Other languages
English (en)
Other versions
CN111343212A (zh
Inventor
刘攀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010438631.7A priority Critical patent/CN111343212B/zh
Publication of CN111343212A publication Critical patent/CN111343212A/zh
Application granted granted Critical
Publication of CN111343212B publication Critical patent/CN111343212B/zh
Priority to PCT/CN2021/090914 priority patent/WO2021233109A1/zh
Priority to US17/719,176 priority patent/US20220239668A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0209Architectural arrangements, e.g. perimeter networks or demilitarized zones
    • H04L63/0218Distributed architectures, e.g. distributed firewalls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0245Filtering by information in the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请实施例提供了一种消息处理方法、装置、设备以及存储介质,该方法包括:接收网络消息数据,获取网络消息数据对应的消息处理类型;若消息处理类型为共识处理类型,则获取网络消息数据对应的共识参数;若共识参数满足共识合法条件,则确定网络消息数据为合法共识消息,对合法共识消息进行共识业务处理;若共识参数不满足共识合法条件,则删除网络消息数据。采用本申请,可以提高共识消息数据的处理效率。

Description

消息处理方法、装置、设备以及存储介质
技术领域
本申请涉及区块链技术领域,尤其涉及消息处理方法、装置、设备以及存储介质。
背景技术
区块链是一种去中心化的分布式账本系统,具有数据不可篡改、去中心化、开放性的特点。共识网络(由区块链网络中的共识节点所构成的网络)中所涉及的共识机制作为区块链技术的核心,可以保证最新区块被准确添加至区块链,以及节点存储的区块链信息一致不分叉甚至可以抵御恶意攻击,共识节点在共识机制中具有重要作用。
现有技术中,共识网络可以接收各节点(包括区块链网络中的区块链节点和区块链网络之外的外围节点)发送的网络消息,在接收到新的网络消息后,可以对所接收到的网络消息进行业务处理。然而,当共识网络受到外围节点的攻击时,该外围节点可能会向共识网络发送大量的攻击消息,导致共识网络中堆积大量的攻击消息,造成共识网络中的正常网络消息处理不及时甚至超时,还可以可能造成共识网络崩溃,进而导致正常网络消息的处理效率过低。
发明内容
本申请实施例提供一种消息处理方法、装置、设备以及存储介质,可以提高共识消息数据的处理效率。
本申请实施例一方面提供了一种消息处理方法,包括:
接收网络消息数据,获取网络消息数据对应的消息处理类型;
若消息处理类型为共识处理类型,则获取网络消息数据对应的共识参数;
若共识参数满足共识合法条件,则确定网络消息数据为合法共识消息,对合法共识消息进行共识业务处理;
若共识参数不满足共识合法条件,则删除网络消息数据。
本申请实施例一方面提供了一种消息处理装置,其特征在于,包括:
接收模块,用于接收网络消息数据,获取网络消息数据对应的消息处理类型;
获取模块,用于若消息处理类型为共识处理类型,则获取网络消息数据对应的共识参数;
添加模块,用于若共识参数满足共识合法条件,则确定网络消息数据为合法共识消息,对合法共识消息进行共识业务处理;
删除模块,用于若共识参数不满足共识合法条件,则删除网络消息数据。
其中,上述共识参数包括消息索引信息;
该装置还包括:
列表获取模块,用于获取共识网络中的节点委员会列表;节点委员会列表包括共识网络中处于有效工作状态的共识节点,以及共识节点对应的索引信息;
第一条件判断模块,用于若消息索引信息属于节点委员会列表中所包含的共识节点对应的索引信息,则确定共识参数满足共识合法条件;
第二条件判断模块,用于若消息索引信息不属于节点委员会列表中所包含的共识节点对应的索引信息,则确定共识参数不满足共识合法条件。
其中,上述第一条件判断模块包括:
节点获取单元,用于若消息索引信息属于节点委员会列表中所包含的共识节点对应的索引信息,则获取共识网络中具有目标区块高度的交易区块对应的第一生成节点,根据消息索引信息确定网络消息数据对应的第二生成节点;
节点位置判断单元,用于当第一生成节点和第二生成节点为节点委员会列表中相邻的共识节点时,则确定共识参数满足共识合法条件。
其中,上述网络消息数据包括区块数据,上述共识参数包括区块数据对应的区块哈希值;
该装置还包括:
哈希值获取模块,用于获取共识网络中具有目标区块高度的交易区块对应的前继哈希值;
第三条件判断模块,用于若区块哈希值与前继哈希值相同,则确定共识参数满足共识合法条件;
第四条件判断模块,用于若区块哈希值与前继哈希值不相同,则共识参数不满足共识合法条件。
其中,上述共识参数包括目标指针数据;
该装置还包括:
第五条件判断模块,用于若网络消息数据中的目标指针数据对应的内存信息为有效内存,则确定共识参数满足共识合法条件;
第六条件判断模块,用于若网络消息数据中的目标指针数据对应的内存信息为无效内存,则确定共识参数不满足共识合法条件。
该装置还包括:
第七条件判断模块,用于若网络消息数据中的目标指针数据为空指针数据,则确定共识参数不满足共识合法条件。
该装置还包括:
次数统计模块,用于将不满足共识合法条件的共识参数对应的网络消息数据确定为攻击消息,获取攻击消息对应的发送节点,统计与发送节点相关联的攻击消息的接收次数;
黑名单添加模块,用于若接收次数大于或者等于数量阈值,将发送节点添加至黑名单;黑名单包括不具备入网权限的节点。
其中,添加模块可以具体用于:
若共识参数满足共识合法条件,则确定网络消息数据为合法共识消息,将合法共识消息添加至消息处理集合,对消息处理集合进行共识业务处理。
其中,上述消息处理集合包括消息队列;
添加模块包括:
写入单元,用于获取共识网络中的消息队列,将合法共识消息按序写入消息队列;
消息处理单元,用于根据合法共识消息在消息队列中的排列顺序,对合法共识消息进行共识业务处理。
其中,网络消息数据包括目标提案;
添加模块包括:
验证单元,用于从消息处理集合中获取目标提案,对目标提案进行验证,得到目标提案对应的提案投票信息,从消息处理集合中删除目标提案;
共识结果确定单元,用于根据共识网络中的共识节点针对目标提案的提案投票信息,确定目标提案的共识结果;
记账处理单元,用于当共识结果为共识通过时,将目标提案中所包含的共识区块进行记账处理。
其中,该装置还包括:
类型比较模块,用于若消息处理类型不属于共识处理类型,则从共识网络中删除网络消息数据。
本申请实施例一方面提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请实施例中一方面中方法的步骤。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,执行如本申请实施例中一方面中方法的步骤。
本申请实施例可以通过接收网络消息数据,获取该网络消息数据对应的消息处理类型,若消息处理类型为共识处理类型,则获取该网络消息数据对应的共识参数,若共识参数满足共识合法条件,则确定网络消息数据为合法共识消息,对该合法共识消息进行共识业务处理;若共识参数不满足共识合法条件,则删除网络消息数据。可见,在接收到网络消息数据时,可以检测所接收网络消息数据的消息处理类型,在消息处理类型为共识处理类型时,可以进一步地检测网络消息数据中的信息,对满足共识合法条件的网络消息数据进行共识业务处理,将不满足共识合法条件的网络消息数据进行删除。换言之,可以对所接收的网络消息数据进行筛选,将不满足共识合法条件的网络消息进行过滤,进而可以提高共识消息数据的处理效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构图;
图2是本申请实施例提供的一种消息处理场景示意图;
图3是本申请实施例提供的一种消息处理方法的流程示意图;
图4是本申请实施例提供的一种共识参数的验证示意图;
图5是本申请实施例提供的一种共识参数的验证示意图;
图6是本申请实施例提供的一种消息队列中读写网络消息的示意图;
图7是本申请实施例提供的一种将节点加入黑名单的示意图;
图8是本申请实施例提供的一种消息处理装置的结构示意图;
图9是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
区块链(Blockchain)是一种分布式数据存储、点对点传输(P2P传输)、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
区块链中的区块可以由区块链网络中的区块链节点生成,在区块生成后,可以在区块链网络中的共识节点基于共识机制对该区块完成共识后,将该区块添加到区块链中。可以将区块链网络中的所有共识节点构成一个共识网络,该共识网络可以用于对区块链网络中的区块进行共识验证,在达成共识一致性后可以将区块进行记账处理。
请参见图1,是本申请实施例提供的一种网络架构图。如图1所示,该网络架构可以包括多个节点设备,如图1所示,具体可以包括区块链网络中的节点设备10a、节点设备10b、节点设备10c、节点设备10d以及区块链网络之外的外围节点设备10e和外围节点设备10f。其中,节点设备10a、节点设备10b、节点设备10c以及节点设备10d均表示为区块链网络中的区块链节点,区块链节点可以包括共识节点和同步节点,共识节点可以共享区块链网络中的区块链数据,并可以参与区块链网络中的区块共识过程,同步节点可以共享区块链网络中的区块链数据,不具备参与区块链网络共识过程的权限。当节点设备10a、节点设备10b、节点设备10c以及节点设备10d均为共识节点时,由节点设备10a、节点设备10b、节点设备10c以及节点设备10d所构成的网络也可以称为共识网络。外围节点设备10e和外围节点设备10f是指区块链网络之外的节点设备,外围节点设备可以将交易数据以网络消息数据的形式上传至区块链网络。其中,区块链网络中的节点设备以及区块链网络之外的外围节点设备均可以是终端设备,或者是服务器,其中,终端设备可以包括智能手机、平板电脑、笔记本电脑、台式计算机、掌上电脑、移动互联网设备(mobile internet device,MID)、可穿戴设备(例如智能手表、智能手环等)等,但并不局限于此。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
其中,云计算(cloud computing)指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing )、分布式计算(DistributedComputing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
区块链网络中的任一区块链节点以及在区块链网络中进行了身份注册的外围节点设备均可以向共识网络发送网络消息,共识网络可以用于处理区块链网络中的共识过程,即共识网络可以对所接收到的共识消息(可以包括区块提案消息和投票消息等)进行处理,如共识网络中的共识节点可以对所接收到的区块提案消息中所包含的区块提案进行验证,得到区块提案消息对应的投票信息,当然,每个共识节点均可以将自身对区块提案消息的投票信息作为投票消息广播给区块链网络中的其余共识节点。可以理解的是,共识网络在接收到投票消息后,每个共识节点也可以根据所接收到的投票消息,确定区块提案的共识结果。当共识网络所接收到的网络消息不属于共识消息时,共识网络可以将所接收到的网络消息删除,如共识网络在接收到外围节点设备发送的网络消息后,检测到该网络消息为交易消息,此时共识网络可以将所接收到的交易消息进行删除,因此共识网络可以对所接收到的网络消息进行筛选,过滤掉不属于共识消息的网络消息,进而可以降低共识网络被攻击的风险。
请参见图2,是本申请实施例提供的一种消息处理场景示意图。区块链网络中的共识节点可以构成一个共识网络,该共识网络作为区块链网络中的核心,共识网络中的任一共识节点均可以对区块链网络中新生成的区块进行共识,在共识网络中的共识节点对区块达成共识一致性后,区块链节点可以将达成共识的区块写入账本中进行落盘处理。其中,区块链网络中生成区块的节点可以采用网络消息的形式,将所生成的区块进行广播。换言之,共识网络中的所有共识节点均可以获取到该区块,并对该区块进行验证,得到该区块的投票结果,进而可以根据每个共识节点分别对应的投票结果,确定该区块是否达成共识,达成共识的区块方可写入账本中。共识网络可以接收任一区块链节点以及外围节点(此处的外围节点是指在区块链网络中进行了身份注册的节点设备,外围节点不属于区块链网络)发送的网络消息,在接收到网络消息后,共识网络中的任一共识节点均可以对所接收到的网络消息进行验证,验证通过的网络消息可以添加至消息处理集合中,等待共识网络对消息处理集合中所包含的网络消息进行消息处理。
下面以共识网络中的任一共识节点为例,对本申请提出的网络消息处理过程进行描述。如图2所示,上述图1所对应实施例中的外围节点设备10e可以向共识网络发送消息1,节点设备10a可以向共识网络中的当前共识节点(此处的当前共识节点是指当前执行网络消息处理过程的共识节点)发送消息2,节点设备10b可以向当前共识节点发送消息3;其中,节点设备10a和节点设备10b为共识网络中的共识节点时,节点设备10a向当前共识节点发送消息2可以是指节点设备10a在区块链网络中对消息2进行广播的过程,节点设备10b向当前共识节点发送消息3可以是指节点设备10b在区块链网络中对消息3进行广播的过程;不同的节点设备可以在相同的时间点向当前共识节点发送网络消息,也可以在不同的时间点向当前共识节点发送网络消息,如消息1、消息2以及消息3可以为当前共识节点在相同时间点所接收到的网络消息,或者消息1、消息2以及消息3可以为当前共识节点在不同时间点所接收到的网络消息。
当前共识节点在接收到消息1、消息2以及消息3后,可以对所接收到的所有消息均进行验证,如当前共识节点在接收到消息1后,可以获取消息1对应的消息类型,当消息1对应的消息类型为非共识处理类型时,表明当前共识节点不具备处理消息1的功能权限,当前共识节点可以删除该消息1;其中,共识处理类型可以用表示消息的类型,共识处理类型的网络消息也可以称为共识消息,属于共识处理类型的消息可以由共识网络中的共识节点来进行共识处理,非共识处理类型是指不属于共识处理类型的其余消息类型,共识网络中的共识节点无法对属于非共识处理类型的消息进行处理,如消息1为外围节点设备10e发送的交易消息,则消息1对应的消息类型为非共识处理类型,共识节点可以删除该消息1。同理,当前共识节点在接收到消息2和消息3后,可以分别获取消息2和消息3分别对应的消息类型,当消息2和消息3所对应的消息类型均为共识处理类型时,当前共识节点可以进一步获取消息2和消息3分别对应的共识参数,如消息2对应的共识参数为共识参数1,消息3对应的共识参数为共识参数2。其中,共识参数可以包括但不限于:消息发送节点的标识信息(也可以称为消息索引信息)、消息中所包含的指针数据、消息中所包含的区块数据、区块数据中的区块哈希值以及区块数据中交易数据的执行结果。
在获取到消息2和消息3分别对应的共识参数后,当前共识节点可以对消息2对应的共识参数1和消息3对应的共识参数2分别进行合法性检测,当检测到共识参数1不满足共识合法条件时,当前共识节点可以将消息2确定为异常消息(也可以称为攻击消息),将消息2从当前共识节点中进行删除;当检测到共识参数2满足共识合法条件时,当前共识节点可以将消息3确定为合法共识消息,将消息3添加至消息处理集合20a中。
其中,共识合法条件可以包括但不限于:消息发送节点的标识信息属于节点委员会(可以包括区块链网络中处于有效工作状态的共识节点)、消息中所包含的指针数据具有正确的分配内存、消息中所包含的区块数据的区块头中包含共识网络中上一个区块的哈希值;消息处理集合20a中可以包括共识网络中还未进行处理的合法共识消息,如消息处理集合20a中可以包括消息3、消息4、消息5以及消息6等,消息处理集合20a中所包含的合法共识消息是具有排列顺序的,具体排列顺序与消息添加至消息处理集合20a中的时间相关联,且合法共识消息的排列顺序可以决定该合法共识消息的处理顺序,如消息6添加至消息处理集合20a的时间早于消息3添加至消息处理集合20a的时间,则消息6可以位于消息3的前面,且当前共识节点处理消息6的时间应该早于处理消息3的时间。可以理解的是,消息处理集合20a中所包含的消息均为筛选出来的合法共识消息,当前共识节点可以直接从消息处理集合20a中按照排列顺序读取合法共识消息,并对所读取的合法共识消息进行数据处理,可以提高共识消息的处理效率。
请参见图3,是本申请实施例提供的一种消息处理方法的流程示意图,可以理解的是,该方法可以由共识网络中的共识节点执行,共识节点可以是共识网络中的节点服务器,或者是共识网络中的其他节点设备。如图3所示,该消息处理方法可以包括以下步骤:
步骤S101,接收网络消息数据,获取网络消息数据对应的消息处理类型。
具体的,共识网络作为区块链网络中的核心网络,可以用于执行区块链网络中的共识过程,该共识网络可以包括区块链网络中的共识节点,当共识网络接收到各节点发送的网络消息数据时,共识网络中的共识节点可以对所接收到的网络消息数据进行筛选,从所接收的网络消息数据中筛选出合法的共识消息,过滤掉异常的网络消息数据。当共识网络接收到节点设备所发送的网络消息数据时,共识网络中的任一共识节点均可以获取该网络消息数据(如上述图1所对应实施例中的消息1,或消息2,或消息3等),并获取该网络消息数据对应的消息处理类型,此时获取该消息处理类型的共识节点也可以称为当前共识节点,当前共识节点可以继续执行后续的消息处理过程。
其中,发送网络消息数据的节点设备可以是指区块链网络中的任一区块链节点,如同步节点、共识节点等,或者是指在区块链网络中进行了身份注册的外围节点,如用户终端、客户端等。消息处理类型可以用于表示网络消息数据的消息类型,消息处理类型可以包括交易处理类型、共识处理类型、心跳处理类型等,其中,交易处理类型可以用于表示交易消息数据对应的消息类型,共识处理类型可以用于表示共识消息数据对应的消息类型,心跳处理类型可以用于表示心跳消息数据对应的消息类型,不同消息处理类型的网络消息数据可以由不同的节点设备来执行,如属于交易处理类型的网络消息数据可以由区块链网络中的任一区块链节点来进行处理,属于心跳处理类型的网络消息数据可以由具有心跳机制且接收到该网络消息数据的节点来进行处理,属于共识处理类型的网络消息数据可以由共识网络来进行处理,即属于共识处理类型的网络消息数据可以由共识网络中的共识节点来进行处理。
可选的,不同消息处理类型的消息具有不同的消息类型格式,根据消息里类型格式可以确定网络消息数据对应的消息处理类型;在网络消息数据中还可以包括用于表征消息处理类型的字段信息,根据网络消息数据中的字段信息确定该网络消息数据对应的消息处理类型(不同消息处理类型的消息具有不同的字段信息,且同一种消息处理类型的消息具有唯一相同的字段信息)。
可以理解的是,外围节点在向共识网络发送网络消息数据之前,可以在该外围节点的本地生成密钥对(可以包括公钥和私钥),该密钥对中的私钥可以由该外围节点自己管理,该私钥可以用于生成该外围节点的数字签名;该密钥对中的公钥可以上传至区块链网络,该公钥可以用于区块链网络中的区块链节点对该外围节点所上传的消息数据进行验签。在该外围节点将公钥上传至区块链网络之后,该外围节点可以得到一个区块链账户地址,表明该外围节点在区块链网络中完成了身份注册,完成身份注册后的外围节点可以向区块链网络发送网络消息,当然,也可以向区块链网络中的共识网络发送网络消息。需要说明的是,区块链网络中的公钥是唯一的,一个公钥对应一个节点设备。
步骤S102,若消息处理类型为共识处理类型,则获取网络消息数据对应的共识参数。
具体的,由于共识网络中的共识节点可以用于执行区块链网络中的共识过程,因此共识网络可以处理共识处理类型的网络消息数据,除共识处理类型之外的网络消息数据可以确定为异常消息,共识网络可以直接忽略所接收到的异常消息,或者删除所接收到的异常消息。在当前共识节点获取到网络消息数据对应的消息处理类型时,可以确定消息处理类型是否为共识处理类型,若消息处理类型为共识处理类型,则当前共识节点可以获取该网络消息数据对应的共识参数(可以理解为该网络消息数据对应的属性信息);若消息处理类型不属于共识处理类型,则可以从共识网络中删除该网络消息数据。换言之,在网络消息数据属于共识处理类型的消息时,可以对该网络消息数据进行后续共识业务处理,在网络消息数据不属于共识处理类型的消息时,暂停对该网络消息数据的处理过程,或者删除该网络消息数据。
其中,在网络消息数据属于共识处理类型的消息时,当前共识节点可以将该网络消息数据确定为共识消息;进一步地,当前共识节点可以对该共识消息进行合法性检测,因此可以获取该共识消息对应的共识参数,进而可以对共识参数进行验证,基于共识参数的验证结果来确定该共识消息的合法性。其中,共识参数可以是指属于共识处理类型的网络消息数据对应的属性信息,处于共识处理类型的网络消息数据可以由共识节点执行共识过程,共识参数可以包括处于共识处理类型的网络消息数据的消息索引信息、消息指针数据、消息区块数据、消息中的区块哈希值、消息中的各属性数据(如分配值、默认值以及非默认值等)以及消息中交易数据的执行结果等信息中的至少一种。例如,当前共识节点所接收到的网络消息数据为包含目标提案的共识消息时,当前共识节点可以获取该网络消息数据中所携带的消息索引信息(该消息索引信息与发送该网络消息数据的节点相关联,如消息索引信息可以为发送该网络消息数据的节点多对应的节点标识信息),获取目标提案中区块数据所包含的交易数据的执行结果,获取区块数据的区块头中的区块哈希值,获取该网络消息数据中的指针数据等,上述消息索引信息、交易执行结果、区块哈希值、指针数据等均可以确定为该网络消息数据对应的共识参数。
步骤S103,若共识参数满足共识合法条件,则确定网络消息数据为合法共识消息,对合法共识消息进行共识业务处理。
具体的,当前共识节点在获取到网络消息数据对应的共识参数后,需要确定共识参数是否满足共识网络中的共识合法条件,当共识参数满足共识网络中的共识合法条件时,当前共识节点可以将该网络消息数据确定为合法共识消息,当前共识节点可以对该合法共识消息进行共识业务处理。其中,共识合法条件是指共识网络中共识消息需要满足的条件,如消息索引信息为节点委员会列表中的正确索引信息,网络消息数据的区块数据中包含上一区块(可以理解为共识网络中在接收到该网络消息数据之前具有最大区块高度的区块)的哈希值,网络消息数据中所包含的指针数据具有正确的分配内存,等等;当合法共识消息为提案消息时,共识业务处理可以是指提案消息中所包含的提案的验证过程以及根据验证结果生成投票信息的过程;当合法共识消息为投票消息时,共识业务处理可以是指投票信息的验证过程以及投票信息的分析统计过程。
可选的,共识参数包括消息索引信息时,共识参数的合法性验证过程可以包括:当前共识节点可以获取共识网络中的节点委员会列表,该节点委员会列表可以包括共识网络中处于有效工作状态的共识节点,以及处于有效工作状态的共识节点所对应的索引信息,若消息索引信息属于节点委员会列表中所包含的共识节点对应的索引信息,则确定该共识参数满足共识网络中的共识合法条件;若消息索引信息不属于节点委员会列表中所包含的共识节点对应的索引信息,则确定共识参数不满足共识网络中的共识合法条件。其中,当前共识节点所接收到的每个网络消息数据均可以携带相应的消息索引信息,该消息索引信息与网络消息数据的发送节点相关联,即消息索引信息可以用于表征网络消息数据的发送节点,当消息索引信息属于节点委员会列表时,表明该消息索引信息对应的网络消息数据的发送节点为节点委员会列表中的共识节点,共识节点所发送的具有共识处理类型的网络消息数据可以确定为满足共识合法条件;当消息索引信息不属于节点委员会列表时,表明该消息索引信息对应的网络消息数据的发送节点不是节点委员会列表中的共识节点,非共识节点所发送的具有共识处理类型的网络消息数据可以确定为不满足共识合法条件。例如,节点委员会列表中包括共识节点1以及共识节点1对应的索引信息A,共识节点2以及共识节点2对应的索引信息B,共识节点3以及共识节点3对应的索引信息C,共识节点4以及共识节点4对应的索引信息D;当消息索引信息为C(C属于节点委员会列表)时,可以确定共识参数满足共识合法条件;当消息索引信息为E(E不属于节点委员会列表)时,可以确定共识参数不满足共识合法条件。可以理解的是,当前共识节点在接收到网络消息数据后,还可以根据该网络消息数据的发送节点的公钥,对该网络消息数据进行验签,验签未通过时,表明该共识参数不满足共识合法条件。
可选的,节点委员会列表中共识节点的排列顺序可以为共识节点打包区块的顺序,即区块链网络中的共识节点可以根据在节点委员会列表中的排列顺序来打包区块,如节点委员会列表中的共识节点的排列顺序为:共识节点1-共识节点2-共识节点3-共识节点4时,共识节点1可以收集区块链网络中的交易数据,将所收集到的交易数据打包成区块高度为a的区块1,区块1在区块链网络中达成共识后,可以由共识节点2收集区块链网络中的交易数据,并将所收集的交易数据打包成区块高度为a+1的区块2,以此类推,根据节点委员会列表中共识节点的排列顺序生成新的区块。当然,当区块1在区块链网络中未达成共识时,可以将区块高度为a的区块1删除,由共识节点2重新生成一个区块高度为a的区块3,在区块3达成共识后将区块3进行正式上链处理。
因此,网络消息数据为区块提案消息时,若网络消息数据的消息索引信息属于节点委员会列表中所包含的共识节点对应的索引信息,则当前共识节点可以获取共识网络中具有目标区块高度的交易区块所对应的第一生成节点,根据消息索引信息确定网络消息数据对应的第二生成节点,当第一生成节点和第二生成节点为节点委员会列表中相邻的共识节点时,可以确定共识参数满足共识合法条件,其中,目标区块高度是指当前共识节点在接收该网络消息数据之前,共识网络中的最大区块高度。当前共识节点可以根据第一生成节点在节点委员会列表中的排列顺序,来确定生成目标提案的正确共识节点,若当前共识节点所接收到的区块提案消息对应的第二生成节点与上述正确共识节点相同,则表明网络消息数据所携带的消息索引信息是正确的,可以确定共识参数满足共识合法条件;若当前共识节点所接收到的区块提案消息对应的第二生成节点与上述正确共识节点不相同,则表明网络消息数据所携带的消息索引信息是错误的,可以确定共识参数不满足共识合法条件。如前述举例,具有目标区块高度的交易区块对应的第一生成节点为共识节点2,区块提案消息对应的第二生成节点为共识节点3,则可以确定共识参数满足共识合法条件;若区块提案消息对应的第二生成节点为共识节点4,则可以确定共识参数不满足共识合法条件。需要说明的是,若具有目标区块高度的交易区块对应的第一生成节点为共识节点4,则区块提案消息对应的第二生成节点为共识节点1时可以确定共识参数满足共识合法条件。
可选的,网络消息数据包括区块数据,共识参数包括区块数据对应的区块哈希值时,共识参数的合法性验证过程可以包括:当前共识节点可以获取网络消息数据的区块数据的区块头中所包含的前一区块的哈希值,此时区块头中所包含的前一区块的哈希值可以称为区块哈希值,当前共识节点还可以获取共识网络中具有目标区块高度的交易区块对应的前继哈希值;若区块哈希值与前继哈希值相同(如区块哈希值与前继哈希值均为b),则可以确定共识参数满足共识合法条件;若区块哈希值与前继哈希值不相同(区块哈希值为b,前继哈希值为c),则可以确定共识参数不满足共识合法条件。换言之,当前共识节点可以检测网络消息数据的区块数据中是否包含具有目标区块高度的交易区块的哈希值,若包含上述交易区块的哈希值,则表明共识参数满足共识合法条件;若不包含上述交易区块的哈希值,则表明共识参数不满足共识合法条件。
可选的,共识参数可以包括网络消息数据中所包含的属性数据,当前共识节点还可以对网络消息数据中所包含的属性数据进行有效性检查,如对网络消息数据中的内存值、分配值、默认值以及非默认值等数据进行检查,当上述属性数据均没有问题时,当前共识节点可以确定共识参数满足共识合法条件;当上述属性数据存在任意一项出现错误时,当前共识节点可以确定共识参数不满足共识合法条件。
可选的,共识参数为目标指针数据时,共识参数的合法性验证过程可以包括:在检测到网络消息数据中包含指针数据时,当前共识节点可以从网络消息数据中获取具有指针数据类型的目标指针数据,并获取目标指针数据对应的内存信息,若目标指针数据对应的内存信息为有效内存,则可以确定共识参数满足共识合法条件;若目标指针数据对应的内存信息为无效内存,则可以确定共识参数不满足共识合法条件;若检测到目标指针数据为空指针数据,则可以确定共识参数不满足共识合法条件。需要说明的是,若网络消息数据中携带空指针数据,可能会造成整个共识网络中的共识节点崩溃,因此检测到网络消息数据中包含空指针数据时,可以直接确定共识参数不满足共识合法条件,将网络消息数据确定为攻击消息,并从共识网络中删除该攻击消息。指针类型的数据对应的有效内存是可以预先分配好的,若网络消息数据中所携带的目标指针数据分配了正确的内存,则可以确定共识参数满足共识合法条件;若网络消息中所携带的目标指针数据分配了错误的内存,则可以确定共识参数不满足共识合法条件。
应当理解,本申请实施例中共识参数可以包括多种信息,如共识参数可以包括消息索引信息和区块哈希值,此时共识参数的合法性验证过程可以包括消息索引信息的验证过程和区块哈希值的验证过程,在消息索引信息属于节点委员会列表且区块哈希值与前继哈希值相同的情况下,共识参数满足共识合法条件。
请一并参见图4,是本申请实施例提供的一种共识参数的验证示意图。以共识参数包括消息索引信息和区块哈希值为例,对共识参数的合法性验证过程进行说明。如图4所示,共识节点1(此时的共识节点即为当前共识节点)在接收到网络消息数据30a后,检测到网络消息数据的消息处理类型为共识处理类型,其中,该网络消息数据30a中包括区块30b和消息索引信息:CC,区块30b可以包括区块头和区块体,区块头中可以包括生成时间戳、区块高度、区块30b对应的哈希值b(即当前区块哈希值)以及前一区块哈希值a等信息,区块体中可以包括多笔交易数据;在确定了该网络消息数据30a属于共识处理类型的消息后,该共识节点1可以进一步获取该网络消息数据30a对应的共识参数30e,共识参数30e包括网络消息数据30a中的消息索引信息CC和区块30b的区块头中前一区块哈希值a。
为了验证共识参数30e的合法性,共识节点1可以从共识网络中获取具有目标区块高度的交易区块30c,该交易区块30c是指共识节点1在获取到区块30b之前具有最大区块高度的区块,从交易区块30c的区块头中获取该交易区块30c的哈希值a(交易区块30c的区块头中的当前区块哈希值,即为上述前继哈希值),因此共识节点1可以确定共识参数30e中的前一区块哈希值与交易区块30c中的当前哈希值是相同的,表明交易区块30c与区块30b为相邻区块,共识参数30e中的前一区块哈希值是通过验证的。共识节点1还可以从共识网络中获取节点委员会列表30d,该节点委员会列表30d中可以包括共识网络中所包含的所有有效共识节点,以及每个有效共识节点分别对应的索引信息,如节点委员会列表30d可以包括共识节点1、共识节点2、共识节点3和共识节点4等节点,以及共识节点1的索引信息AA、共识节点2的索引信息BB、共识节点3的索引信息CC和共识节点4的索引信息DD等索引。共识参数30e中的消息索引信息CC与节点委员会节点列表30d中共识节点3的索引信息相同,即共识参数30e中的消息索引信息CC属于节点委员会节点列表30d,可以确定共识参数30e中的消息索引信息CC是通过验证的,因此,可以确定共识参数30e通过合法性验证,即共识参数30e满足共识合法条件。
请一并参见图5,是本申请实施例提供的另一种共识参数的验证示意图。如图5所示,共识节点1(此时的共识节点即为当前共识节点)所接收到的网络消息数据30a、网络消息数据30a对应的共识参数30e以及共识网络中的节点委员会列表30d均可以参见上述图4所对应实施例,因此可以确定共识参数30e中的消息索引信息CC是通过验证的;若共识节点1获取到的具有目标区块高度的区块为交易区块30f,该交易区块30f的区块头中的当前哈希值为f,即交易区块30f对应的哈希值为f(即上述前继哈希值),可以确定共识参数30e中的前一区块哈希值a与交易区块30f对应的哈希值为f不相同,进而可以确定共识参数30e中的前一区块哈希值a未通过验证,因此共识参数30e未通过合法性验证,即共识参数30e不满足共识合法条件。
可选的,若当前共识节点在某时间点接收到大量的网络消息数据,则可能会导致当前共识节点的消息接收量过大,无法对所接收到的网络消息数据进行处理,甚至可能会导致当前共识节点的共识业务处理过程奔溃。因此,当前共识节点可以创建一个消息处理集合,若网络消息数据的共识参数满足共识合法条件时,可以将该网络消息数据确定为合法共识消息,并将该合法共识消息添加至消息处理集合,当前共识节点可以从消息处理集合中获取合法共识消息进行共识业务处理。换言之,消息处理集合可以用于暂时缓存当前共识节点所接收到的合法共识消息,可以有效地减少当前共识节点的共识业务处理压力;该消息处理集合中所包含的合法共识消息可以是指还未进行共识业务处理的合法共识消息,当前共识节点从消息处理集合中获取合法共识消息,并完成对该合法共识消息的共识业务处理过程后,可以将该合法共识消息从消息处理集合中删除。
可选的,消息处理集合可以为消息队列,当前共识节点可以从共识网络中获取消息队列,将上述合法共识消息按序写入该消息队列中,根据合法共识消息在消息队列中的排列顺序,对该合法共识消息进行共识业务处理。可选的,当共识网络中还未创建消息队列时,当前共识节点可以创建一个消息队列,将该合法共识消息写入新创建的消息队列中。当然,共识网络中的每个共识节点均可以在本地创建一个用户缓存共识消息的消息队列,每个共识节点可以将各自接收到的合法共识消息写入自身所创建的消息队列中,例如,共识网络可以包括3个共识节点,分别为共识节点1、共识节点2以及共识节点3,其中,共识节点1可以在本地创建消息队列1,共识节点2可以在本地创建消息队列2,共识节点3可以在本地创建消息队列3;当共识节点1接收到网络消息数据且检测到该网络消息数据为合法共识消息(此时的共识节点1可以理解为当前共识节点)时,该共识节点1可以将合法共识消息写入消息队列1;当共识节点2接收到网络消息数据且检测到该网络消息数据为合法共识消息(此时的共识节点2可以理解为当前共识节点)时,该共识节点2可以将合法共识消息写入消息队列2;当共识节点3接收到网络消息数据且检测到该网络消息数据为合法共识消息(此时的共识节点3可以理解为当前共识节点)时,该共识节点3可以将合法共识消息写入消息队列3。
可以理解的是,在创建消息队列时,可以对消息队列进行参数设置,参数设备可以包括消息队列中消息的最大容量(如最大容量为4MB,表示添加至消息队列中的消息的容量不能超过4MB)和消息的结构定义(也可以理解为消息的格式),如消息可以由一个主体和多种属性构成,消息的主体可以由文本、二进制构成,消息的主体还可以根据实际需求进行加密等。消息队列可以具有对应的路径,若存在多个消息队列时,每个消息队列所对应的路径可以是不同的,在确定了网络消息数据为合法共识消息时,当前共识节点可以将合法共识消息写入指定路径的消息队列中。
其中,当前共识节点可以从消息队列中读取合法共识消息,对所读取的合法共识消息进行共识业务处理。当前共识节点从消息队列中读取合法共识消息时,可以根据合法共识消息在消息队列中的排列顺序来选择读取的合法共识消息。其中,合法共识消息在消息队列中的排列顺序可以根据合法共识消息写入消息队列中的时间来确定,写入消息队列的时间越早,在消息队列中的排列顺序越靠前,当前共识节点可以按照从前往后的排列顺序读取合法共识消息;或者,合法共识消息在消息队列中的排列顺序可以由合法共识消息的优先级来确定,优先级越高,在消息队列中的排列顺序越靠前,当前共识节点可以按照从前往后的排列顺序读取合法共识消息,其中,优先级可以与合法共识消息的消息处理有效时长等相关联,如消息处理有效时长越短,该合法共识消息对应的优先级越高,例如合法共识消息1的消息有效处理时长为5分钟,合法共识消息2的消息有效处理时长为10分钟,在消息处理队列中,当前共识节点可以将合法共识消息1排在合法共识消息2的前面,当前共识节点从消息队列中读取合法共识消息1的时间要优先于读取合法共识消息2的时间,换言之,当前共识节点可以优先对合法共识消息1进行共识业务处理。
请一并参见图6,是本申请实施例提供的一种消息队列中读写网络消息的示意图。如图6所示,以共识节点1作为当前节点,对消息队列中网络消息的读写过程进行描述。共识节点2、共识节点3以及共识节点4均可以向共识节点1发送网络消息,如共识节点2向共识节点1发送网络消息1,共识节点3向共识节点1发送网络消息2,共识节点4向共识节点1发送网络消息3等。共识节点1在接收到网络消息1、网络消息2以及网络消息3后,均可以对网络消息1、网络消息2以及网络消息3进行有效性验证,通过有效性验证的网络消息可以写入消息队列40a中,若共识节点1依次完成对网络消息1、网络消息2以及网络消息3的验证过程,且网络消息1、网络消息2以及网络消息3均通过有效性验证,则网络消息1、网络消息2以及网络消息3可以依次写入消息队列40a中。将网络消息1、网络消息2以及网络消息3写入消息队列40a中后,共识节点1后续可以从消息队列40a中读取网络消息进行共识业务处理,如共识节点1可以从消息队列40a中读取网络消息1,在网络消息1完成共识业务处理过程后,可以继续从消息队列40a中读取网络消息2,在网络消息2完成共识业务处理过程后,可以继续从消息队列40a中读取网络消息3进行共识业务处理。
可选的,当网络消息数据中包括目标提案,且网络消息数据为合法共识消息时,当前共识节点可以对该目标提案进行验证,得到该目标提案对应的提案投票信息,并从消息处理集合中删除该目标提案,即删除包含该目标提案的合法共识消息,可以根据共识网络中的每个共识节点对目标提案的提案投票信息,确定目标提案的共识结果,当目标提案的共识结果为共识通过时,将目标提案中所包含的共识区块进行记账处理,即将通过共识的共识区块写入当前共识节点的账本(区块链)中。网络消息数据中包括目标提案时,当前共识节点可以对目标提案进行验证,目标提案的验证过程包括:目标提案中所包含的共识区块的验证过程(如共识区块中的随机数、哈希值、交易数据等信息的验证)以及目标提案对应的生成节点信息的验证(如生成节点的状态信息等),当前共识节点可以根据目标提案的验证结果生成投票信息,验证结果为验证通过时,当前共识节点对目标提案的投票信息为赞成投票;验证结果为验证未通过时,当前共识节点对目标提案的投票信息为反对投票,当前共识节点可以将自身的投票信息在区块链网络中进行广播。当然,当前共识节点也可以获取其余共识节点所广播的针对目标提案的投票信息,进而根据其余共识节点的投票信息和自身投票信息,确定目标提案的共识结果。若所有共识节点对应的投票信息中赞成投票数超过阈值(如区块链网络中共识节点数量的2/3),则可以确定目标提案的共识结果为共识通过,可以将目标提案中的共识区块进行记账处理;若所有共识节点对应的投票信息中赞成投票数未达到阈值,则可以确定目标提案的共识结果为共识未通过,无法对目标提案中的共识区块进行记账处理。
步骤S104,若共识参数不满足共识合法条件,则删除网络消息数据。
具体的,当前共识节点在完成对共识参数的合法性验证后,若共识参数不满足共识网络中的共识合法条件,可以将该网络消息数据确定为攻击消息,可以从共识网络中删除该攻击消息。
可选的,当前共识节点在确定了网络消息数据为攻击消息后,可以获取该攻击消息对应的发送节点,并统计与该发送节点相关联的攻击消息的接收次数,若接收次数大于或者等于数量阈值(如20次),将该发送节点添加至黑名单;该黑名单包括不具备入网权限的节点。换言之,当前共识节点可以统计该发送节点发送攻击消息的次数,若发送攻击消息的次数过多,可以将该发送节点加入黑名单,加入黑名单之后的节点不具备共识网络的入网访问权限,即黑名单中的节点无法向共识网络发送网络消息。可选的,当前共识节点可以统计目标时间范围(如24小时,或者1小时,或者一周等)内接收到该发送节点所发送的攻击消息的次数,次数超过数量阈值,可以将发送节点加入黑名单。
请一并参见图7,是本申请实施例提供的一种将节点加入黑名单的示意图。如图7所示,节点2可以向共识节点1不断地发送网络消息,如节点2在某一段时间内向共识节点1发送了网络消息1、网络消息2以及网络消息3等消息,共识节点1在对网络消息1、网络消息2以及网络消息3进行验证后,确定网络消息1、网络消息2以及网络消息3均为未通过验证,即网络消息1、网络消息2以及网络消息3均为异常消息(也可以称为攻击消息)。共识节点1可以对节点2所发送的异常消息进行统计,如共识节点1统计得到节点2所发送的异常消息的次数为:m,且m大于数量阈值时,可以将节点2加入黑名单50a,加入黑名单50a中的所有节点均不能发送消息至共识网络。
本申请实施例可以通过接收网络消息数据,获取该网络消息数据对应的消息处理类型,若消息处理类型为共识处理类型,则获取该网络消息数据对应的共识参数,若共识参数满足共识合法条件,则确定网络消息数据为合法共识消息,将该合法共识消息添加至消息处理集合,对消息处理集合进行共识业务处理;若共识参数不满足共识合法条件,则删除网络消息数据。可见,在共识网络接收到网络消息数据时,可以检测所接收网络消息数据的消息处理类型,在消息处理类型为共识处理类型时,可以进一步地检测网络消息数据中的信息,将满足共识合法条件的网络消息数据添加至消息处理集合等待业务处理,将不满足共识合法条件的网络消息数据从共识网络中删除。换言之,可以对所接收的网络消息数据进行筛选,对攻击消息(即不满足共识合法条件的网络消息数据)进行过滤,进而可以降低共识网络被攻击的风险,从而提高共识网络中共识消息的处理效率。
请参见图8,是本申请实施例提供的一种消息处理装置的结构示意图。该消息处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该消息处理装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。如图8所示,该消息处理装置1可以包括:接收模块11,获取模块12,添加模块13,删除模块14;
接收模块11,用于接收网络消息数据,获取网络消息数据对应的消息处理类型;
获取模块12,用于若消息处理类型为共识处理类型,则获取网络消息数据对应的共识参数;
添加模块13,用于若共识参数满足共识合法条件,则确定网络消息数据为合法共识消息,对合法共识消息进行共识业务处理;
删除模块14,用于若共识参数不满足共识合法条件,则删除网络消息数据。
其中,接收模块11,获取模块12,添加模块13,删除模块14的具体功能实现方式可以参见上述图3所对应实施例中的步骤S101-步骤S104,这里不再进行赘述。
请一并参见图8,当上述共识参数包括消息索引信息时,该消息处理装置1还可以包括:列表获取模块15,第一条件判断模块16,第二条件判断模块17;
列表获取模块15,用于获取共识网络中的节点委员会列表;节点委员会列表包括共识网络中处于有效工作状态的共识节点,以及共识节点对应的索引信息;
第一条件判断模块16,用于若消息索引信息属于节点委员会列表中所包含的共识节点对应的索引信息,则确定共识参数满足共识合法条件;
第二条件判断模块17,用于若消息索引信息不属于节点委员会列表中所包含的共识节点对应的索引信息,则确定共识参数不满足共识合法条件。
其中,当上述网络消息数据包括区块数据,上述共识参数包括区块数据对应的区块哈希值时,该消息处理装置1还可以包括:哈希值获取模块18,第三条件判断模块19,第四条件判断模块20;
哈希值获取模块18,用于获取共识网络中具有目标区块高度的交易区块对应的前继哈希值;
第三条件判断模块19,用于若区块哈希值与前继哈希值相同,则确定共识参数满足共识合法条件;
第四条件判断模块20,用于若区块哈希值与前继哈希值不相同,则共识参数不满足共识合法条件。
其中,当上述共识参数包括目标指针数据时,该消息处理装置1还可以包括:第五条件判断模块21,第六条件判断模块22,第七条件判断模块23;
第五条件判断模块21,用于若网络消息数据中的目标指针数据对应的内存信息为有效内存,则确定共识参数满足共识合法条件;
第六条件判断模块22,用于若网络消息数据中的目标指针数据对应的内存信息为无效内存,则确定共识参数不满足共识合法条件;
第七条件判断模块23,用于若网络消息数据中的目标指针数据为空指针数据,则确定共识参数不满足共识合法条件。
其中,列表获取模块15,第一条件判断模块16,第二条件判断模块17,哈希值获取模块18,第三条件判断模块19,第四条件判断模块20,第五条件判断模块21,第六条件判断模块22,第七条件判断模块23的具体功能实现方式可以参见上述图3所对应实施例中的步骤S103,这里不再进行赘述。
请一并参见图8,该消息处理装置1还可以包括:次数统计模块24,黑名单添加模块25,类型比较模块26;
次数统计模块24,用于将不满足共识合法条件的共识参数对应的网络消息数据确定为攻击消息,获取攻击消息对应的发送节点,统计与发送节点相关联的攻击消息的接收次数;
黑名单添加模块25,用于若接收次数大于或者等于数量阈值,将发送节点添加至黑名单;黑名单包括不具备入网权限的节点。
类型比较模块26,用于若消息处理类型不属于共识处理类型,则从共识网络中删除网络消息数据。
其中,次数统计模块24,黑名单添加模块25,类型比较模块26的具体功能实现方式可以参见上述图3所对应实施例中的步骤S104,这里不再进行赘述。
其中,添加模块13可以具体用于:
若共识参数满足共识合法条件,则确定网络消息数据为合法共识消息,将合法共识消息添加至消息处理集合,对消息处理集合进行共识业务处理。
其中,当上述消息处理集合包括消息队列时,添加模块13可以包括:写入单元131,消息处理单元132;
写入单元131,用于获取共识网络中的消息队列,将合法共识消息按序写入消息队列;
消息处理单元132,用于根据合法共识消息在消息队列中的排列顺序,对合法共识消息进行共识业务处理。
其中,当网络消息数据包括目标提案时,添加模块13可以包括:验证单元133,共识结果确定单元134,记账处理单元135;
验证单元133,用于从消息处理集合中获取目标提案,对目标提案进行验证,得到目标提案对应的提案投票信息,从消息处理集合中删除目标提案;
共识结果确定单元134,用于根据共识网络中的共识节点针对目标提案的提案投票信息,确定目标提案的共识结果;
记账处理单元135,用于当共识结果为共识通过时,将目标提案中所包含的共识区块进行记账处理。
其中,写入单元131,消息处理单元132,验证单元133,共识结果确定单元134,记账处理单元135的具体功能实现方式可以参见上述图3所对应实施例中的步骤S103,这里不再进行赘述。
请一并参见图8,上述第一条件判断模块16可以包括:节点获取单元161,节点位置判断单元162;
节点获取单元161,用于若消息索引信息属于节点委员会列表中所包含的共识节点对应的索引信息,则获取共识网络中具有目标区块高度的交易区块对应的第一生成节点,根据消息索引信息确定网络消息数据对应的第二生成节点;
节点位置判断单元162,用于当第一生成节点和第二生成节点为节点委员会列表中相邻的共识节点时,则确定共识参数满足共识合法条件。
其中,节点获取单元161,节点位置判断单元162的具体功能实现方式可以参见上述图3所对应实施例中的步骤S103,这里不再进行赘述。
本申请实施例可以通过接收网络消息数据,获取该网络消息数据对应的消息处理类型,若消息处理类型为共识处理类型,则获取该网络消息数据对应的共识参数,若共识参数满足共识合法条件,则确定网络消息数据为合法共识消息,将该合法共识消息添加至消息处理集合,对消息处理集合进行共识业务处理;若共识参数不满足共识合法条件,则删除网络消息数据。可见,在共识网络接收到网络消息数据时,可以检测所接收网络消息数据的消息处理类型,在消息处理类型为共识处理类型时,可以进一步地检测网络消息数据中的信息,将满足共识合法条件的网络消息数据添加至消息处理集合等待业务处理,将不满足共识合法条件的网络消息数据从共识网络中删除。换言之,可以对所接收的网络消息数据进行筛选,对攻击消息(即不满足共识合法条件的网络消息数据)进行过滤,进而可以降低共识网络被攻击的风险,从而提高共识网络中共识消息的处理效率。
请参见图9,是本申请实施例提供的一种计算机设备的结构示意图。如图9所示,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1004可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图9所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在如图9所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
接收网络消息数据,获取网络消息数据对应的消息处理类型;
若消息处理类型为共识处理类型,则获取网络消息数据对应的共识参数;
若共识参数满足共识合法条件,则确定网络消息数据为合法共识消息,将合法共识消息添加至消息处理集合,对消息处理集合进行共识业务处理;
若共识参数不满足共识合法条件,则删除网络消息数据。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3所对应实施例中对消息处理方法的描述,也可执行前文图8所对应实施例中对消息处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的消息处理装置1所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3所对应实施例中对消息处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被部署在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地点且通过通信网络互连的多个计算设备可以组成区块链网络。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储存储器(Read-Only Memory,ROM)或随机存储存储器(Random Access Memory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (13)

1.一种消息处理方法,其特征在于,包括:
接收网络消息数据,根据所述网络消息数据中所包含的字段信息,获取所述网络消息数据对应的消息处理类型;
若所述消息处理类型为共识处理类型,则获取所述网络消息数据对应的共识参数;
若所述共识参数满足共识合法条件,则确定所述网络消息数据为合法共识消息,对所述合法共识消息进行共识业务处理;
若所述共识参数不满足所述共识合法条件,则删除所述网络消息数据;
当所述网络消息数据包括区块数据,所述共识参数包括所述区块数据对应的区块哈希值时,还包括:
获取共识网络中具有目标区块高度的交易区块对应的前继哈希值;
若所述区块哈希值与所述前继哈希值相同,则确定所述共识参数满足共识合法条件;
若所述区块哈希值与所述前继哈希值不相同,则确定所述共识参数不满足所述共识合法条件。
2.根据权利要求1所述的方法,其特征在于,所述共识参数包括消息索引信息;
所述方法还包括:
获取共识网络中的节点委员会列表;所述节点委员会列表包括所述共识网络中处于有效工作状态的共识节点,以及所述共识节点对应的索引信息;
若所述消息索引信息属于所述节点委员会列表中所包含的所述共识节点对应的索引信息,则确定所述共识参数满足所述共识合法条件;
若所述消息索引信息不属于所述节点委员会列表中所包含的所述共识节点对应的索引信息,则确定所述共识参数不满足所述共识合法条件。
3.根据权利要求2所述的方法,其特征在于,所述若所述消息索引信息属于所述节点委员会列表中所包含的所述共识节点对应的索引信息,则确定所述共识参数满足共识合法条件,包括:
若所述消息索引信息属于所述节点委员会列表中所包含的所述共识节点对应的索引信息,则获取所述共识网络中具有目标区块高度的交易区块对应的第一生成节点,根据所述消息索引信息确定所述网络消息数据对应的第二生成节点;
当所述第一生成节点和所述第二生成节点为所述节点委员会列表中相邻的共识节点时,则确定所述共识参数满足所述共识合法条件。
4.根据权利要求1所述的方法,其特征在于,所述共识参数包括目标指针数据;
所述方法还包括:
若所述网络消息数据中的所述目标指针数据对应的内存信息为有效内存,则确定所述共识参数满足所述共识合法条件;
若所述网络消息数据中的所述目标指针数据对应的内存信息为无效内存,则确定所述共识参数不满足所述共识合法条件。
5.根据权利要求4所述的方法,其特征在于,还包括:
若所述网络消息数据中的所述目标指针数据为空指针数据,则确定所述共识参数不满足所述共识合法条件。
6.根据权利要求1所述的方法,其特征在于,还包括:
将不满足所述共识合法条件的共识参数对应的网络消息数据确定为攻击消息,获取所述攻击消息对应的发送节点,统计与所述发送节点相关联的攻击消息的接收次数;
若所述接收次数大于或者等于数量阈值,将所述发送节点添加至黑名单;所述黑名单包括不具备入网权限的节点。
7.根据权利要求1所述的方法,其特征在于,所述若所述共识参数满足共识合法条件,则确定所述网络消息数据为合法共识消息,对所述合法共识消息进行共识业务处理,包括:
若所述共识参数满足共识合法条件,则确定所述网络消息数据为合法共识消息,将所述合法共识消息添加至消息处理集合,对所述消息处理集合进行共识业务处理。
8.根据权利要求7所述的方法,其特征在于,所述消息处理集合包括消息队列;
所述将所述合法共识消息添加至消息处理集合,根据所述消息处理集合进行共识业务处理,包括:
获取所述共识网络中的所述消息队列,将所述合法共识消息按序写入所述消息队列;
根据所述合法共识消息在所述消息队列中的排列顺序,对所述合法共识消息进行共识业务处理。
9.根据权利要求1所述的方法,其特征在于,所述网络消息数据包括目标提案;
所述对所述合法共识消息进行共识业务处理,包括:
对所述目标提案进行验证,得到所述目标提案对应的提案投票信息,从所述消息处理集合中删除所述目标提案;
根据所述共识网络中的共识节点针对所述目标提案的提案投票信息,确定所述目标提案的共识结果;
当所述共识结果为共识通过时,将所述目标提案中所包含的共识区块进行记账处理。
10.根据权利要求1所述的方法,其特征在于,还包括:
若所述消息处理类型不属于所述共识处理类型,则从所述共识网络中删除所述网络消息数据。
11.一种消息处理装置,其特征在于,包括:
接收模块,用于接收网络消息数据,根据所述网络消息数据中所包含的字段信息,获取所述网络消息数据对应的消息处理类型;
获取模块,用于若所述消息处理类型为共识处理类型,则获取所述网络消息数据对应的共识参数;
添加模块,用于若所述共识参数满足共识合法条件,则确定所述网络消息数据为合法共识消息,对所述合法共识消息进行共识业务处理;
删除模块,用于若所述共识参数不满足所述共识合法条件,则删除所述网络消息数据;
当所述网络消息数据包括区块数据,所述共识参数包括所述区块数据对应的区块哈希值时,还包括:
哈希值获取模块,用于获取共识网络中具有目标区块高度的交易区块对应的前继哈希值;
第三条件判断模块,用于若所述区块哈希值与所述前继哈希值相同,则确定所述共识参数满足共识合法条件;
第四条件判断模块,用于若所述区块哈希值与所述前继哈希值不相同,则确定所述共识参数不满足所述共识合法条件。
12.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至10中任一项所述方法的步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如权利要求1至10中任一项所述方法的步骤。
CN202010438631.7A 2020-05-22 2020-05-22 消息处理方法、装置、设备以及存储介质 Active CN111343212B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010438631.7A CN111343212B (zh) 2020-05-22 2020-05-22 消息处理方法、装置、设备以及存储介质
PCT/CN2021/090914 WO2021233109A1 (zh) 2020-05-22 2021-04-29 基于区块链的消息处理方法、装置、设备以及存储介质
US17/719,176 US20220239668A1 (en) 2020-05-22 2022-04-12 Blockchain-based message processing method and apparatus, device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010438631.7A CN111343212B (zh) 2020-05-22 2020-05-22 消息处理方法、装置、设备以及存储介质

Publications (2)

Publication Number Publication Date
CN111343212A CN111343212A (zh) 2020-06-26
CN111343212B true CN111343212B (zh) 2020-08-28

Family

ID=71186441

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010438631.7A Active CN111343212B (zh) 2020-05-22 2020-05-22 消息处理方法、装置、设备以及存储介质

Country Status (3)

Country Link
US (1) US20220239668A1 (zh)
CN (1) CN111343212B (zh)
WO (1) WO2021233109A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111343212B (zh) * 2020-05-22 2020-08-28 腾讯科技(深圳)有限公司 消息处理方法、装置、设备以及存储介质
CN115242479B (zh) * 2022-07-15 2023-10-31 东软集团股份有限公司 基于区块链网关的通信方法、装置、存储介质及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105488665A (zh) * 2015-11-25 2016-04-13 布比(北京)网络技术有限公司 一种去中心化的交易方法
CN107465693A (zh) * 2017-09-18 2017-12-12 北京小度信息科技有限公司 请求消息处理方法和装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102137111A (zh) * 2011-04-20 2011-07-27 北京蓝汛通信技术有限责任公司 一种防御cc攻击的方法、装置和内容分发网络服务器
US9641542B2 (en) * 2014-07-21 2017-05-02 Cisco Technology, Inc. Dynamic tuning of attack detector performance
US11386404B2 (en) * 2015-02-04 2022-07-12 Ripple Luxembourg S.A. Temporary consensus subnetwork in a distributed network for payment processing
US10198325B2 (en) * 2016-05-24 2019-02-05 Mastercard International Incorporated Method and system for desynchronization recovery for permissioned blockchains using bloom filters
US10204341B2 (en) * 2016-05-24 2019-02-12 Mastercard International Incorporated Method and system for an efficient consensus mechanism for permissioned blockchains using bloom filters and audit guarantees
CN106060036B (zh) * 2016-05-26 2019-07-16 布比(北京)网络技术有限公司 去中心化共识方法及装置
US10862959B2 (en) * 2016-11-28 2020-12-08 Keir Finlow-Bates Consensus system and method for adding data to a blockchain
US20200059369A1 (en) * 2017-05-16 2020-02-20 Peking University Shenzhen Graduate School Determining consensus by parallel proof of voting in consortium blockchain
US11281644B2 (en) * 2017-07-28 2022-03-22 Hitachi, Ltd. Blockchain logging of data from multiple systems
CN108418795B (zh) * 2018-01-30 2019-05-28 百度在线网络技术(北京)有限公司 跨区块链的数据访问方法、装置、系统及计算机可读介质
US10135835B1 (en) * 2018-03-19 2018-11-20 Cyberark Software Ltd. Passwordless and decentralized identity verification
US20190386995A1 (en) * 2018-06-14 2019-12-19 Zero31Skytech Inc. Apparatus, system and method to limit access to open networks by requiring the consensus of pre-existing nodes to admit candidate nodes
US10250395B1 (en) * 2018-08-29 2019-04-02 Accenture Global Solutions Limited Cryptologic blockchain interoperation
CN113434592A (zh) * 2018-10-31 2021-09-24 创新先进技术有限公司 基于区块链的数据存证方法及装置、电子设备
AU2018348336B2 (en) * 2018-12-13 2020-07-23 Advanced New Technologies Co., Ltd. Performing a change of primary node in a distributed system
CN109756589B (zh) * 2019-02-20 2020-11-13 中国互联网络信息中心 一种基于区块链多方共治的域名信息维护系统
US11343073B2 (en) * 2019-06-18 2022-05-24 Electronics And Telecommunications Research Institute Apparatus and method for achieving distributed consensus based on decentralized byzantine fault tolerance
CN110930578A (zh) * 2019-11-21 2020-03-27 山东爱城市网信息技术有限公司 一种基于区块链的投票方法及设备、介质
CN111343212B (zh) * 2020-05-22 2020-08-28 腾讯科技(深圳)有限公司 消息处理方法、装置、设备以及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105488665A (zh) * 2015-11-25 2016-04-13 布比(北京)网络技术有限公司 一种去中心化的交易方法
CN107465693A (zh) * 2017-09-18 2017-12-12 北京小度信息科技有限公司 请求消息处理方法和装置

Also Published As

Publication number Publication date
CN111343212A (zh) 2020-06-26
WO2021233109A1 (zh) 2021-11-25
US20220239668A1 (en) 2022-07-28

Similar Documents

Publication Publication Date Title
CN111382456B (zh) 提案消息处理方法、装置、设备以及存储介质
CN111427957B (zh) 区块链投票信息校验方法、装置、设备以及存储介质
CN111444210B (zh) 区块链共识节点管理方法、装置、设备以及存储介质
CN111445333B (zh) 区块生成方法、装置、计算机设备以及存储介质
WO2021233049A1 (zh) 基于区块链的数据处理方法、装置、设备及可读存储介质
CN111444211B (zh) 区块链共识节点校验方法、装置、设备以及存储介质
CN110602217B (zh) 基于区块链的联盟管理方法、装置、设备及存储介质
CN112632629B (zh) 基于区块链的投票管理方法、装置、介质及电子设备
CN111654395B (zh) 投票信息处理方法、装置、设备以及存储介质
CN113487427B (zh) 一种交易风险识别方法、装置及系统
CN113326165B (zh) 基于区块链的数据处理方法、设备及计算机可读存储介质
CN111209339B (zh) 区块同步方法、装置、计算机以及存储介质
US20220239668A1 (en) Blockchain-based message processing method and apparatus, device, and storage medium
CN110705976A (zh) 一种基于大数据的智慧医疗结算方法、系统、电子设备及存储介质
CN111931220A (zh) 区块链网络的共识处理方法、装置、介质及电子设备
CN112003940B (zh) 基于区块链和在线业务的支付网络状态处理方法及服务器
CN111368008B (zh) 基于区块链的数据处理方法、装置、设备及可读存储介质
CN112131002A (zh) 数据管理方法及装置
CN115730935A (zh) 基于区块链的数据处理方法、装置、设备及可读存储介质
CN112417052B (zh) 区块链网络中的数据同步方法、装置、设备及存储介质
Liu et al. Using blockchain technology in IoT manufacture environment for intelligence prediction
CN115701078B (zh) 跨链交易处理方法、装置、电子设备以及存储介质
CN113221151A (zh) 基于区块链的数据处理方法、装置及存储介质
CN110910091A (zh) 一种数据处理方法、设备及介质
CN117453654A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40024818

Country of ref document: HK