CN109194669A - 一种轻量级节点的数据传输方法、装置、设备和介质 - Google Patents

一种轻量级节点的数据传输方法、装置、设备和介质 Download PDF

Info

Publication number
CN109194669A
CN109194669A CN201811089240.8A CN201811089240A CN109194669A CN 109194669 A CN109194669 A CN 109194669A CN 201811089240 A CN201811089240 A CN 201811089240A CN 109194669 A CN109194669 A CN 109194669A
Authority
CN
China
Prior art keywords
node
data
lightweight
block
full
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
Application number
CN201811089240.8A
Other languages
English (en)
Other versions
CN109194669B (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201811089240.8A priority Critical patent/CN109194669B/zh
Publication of CN109194669A publication Critical patent/CN109194669A/zh
Application granted granted Critical
Publication of CN109194669B publication Critical patent/CN109194669B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种轻量级节点的数据传输方法、装置、设备和介质。该方法,应用于轻量级节点,包括:将轻量级数据传输请求发送给代理节点,以请求代理节点向至少一个全节点转发轻量级数据传输请求,轻量级数据传输请求用于请求所述全节点排除轻量级节点非关联事务数据的传输;接收代理节点从全节点转发的数据,其中,数据包括:区块头和轻量级节点关联事务数据;对接收到的数据进行验证。上述技术方案通过数据筛选和代理节点引入的方式减少了轻量级节点的数据传输量,优化了数据传输方式,降低了对轻量级节点的性能要求。

Description

一种轻量级节点的数据传输方法、装置、设备和介质
技术领域
本发明实施例涉及区块链数据通讯技术,尤其涉及一种轻量级节点的数据传输方法、装置、设备和介质。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链网络中每个节点均需要存储区块链的全部数据,这类节点可称为全节点。
随着区块链技术的进步以及应用场景的需求,逐渐出现了轻量级节点的概念。轻量级节点相对于全节点的区别是,仅存储部分区块链数据,例如仅存储区块头,不存储区块体,由此减轻对节点硬件设备的要求。
但是,基于区块链的运行规则,仍然对轻量级节点各方面的性能提出了较高要求,例如数据计算能力、数据传输能力等,限制了轻量级节点的普及应用。
发明内容
本发明实施例提供一种轻量级节点的数据传输方法、装置、设备和介质,以优化数据传输方式,降低对轻量级节点的性能要求。
第一方面,本发明实施例提供了一种轻量级节点的数据传输方法,应用于轻量级节点,所述方法包括:
将轻量级数据传输请求发送给代理节点,以请求代理节点向至少一个全节点转发轻量级数据传输请求,所述轻量级数据传输请求用于请求所述全节点排除所述轻量级节点非关联事务数据的传输;
接收所述代理节点从所述全节点转发的数据,其中,所述数据包括:区块头和轻量级节点关联事务数据;
对所述接收到的数据进行验证。
第二方面,本发明实施例还提供了一种轻量级节点的数据传输方法,应用于代理节点,所述方法包括:
接收轻量级节点发送的轻量级数据传输请求;
将所述轻量级数据传输请求转发给至少一个全节点,以请求所述全节点根据所述轻量级数据传输请求,确定待传输的区块,从所述区块中提取所述轻量级节点关联事务数据;
接收所述全节点发送的数据,其中,所述数据包括:区块头和轻量级节点关联事务数据;
将接收到的数据反馈给所述轻量级节点。
第三方面,本发明实施例还提供了一种轻量级节点的数据传输装置,配置于轻量级节点,所述装置包括:
请求发送模块,用于将轻量级数据传输请求发送给代理节点,以请求代理节点向至少一个全节点转发轻量级数据传输请求,所述轻量级数据传输请求用于请求所述全节点排除所述轻量级节点非关联事务数据的传输;
数据接收模块,用于接收所述代理节点从所述全节点转发的数据,其中,所述数据包括:区块头和轻量级节点关联事务数据;
数据验证模块,用于对所述接收到的数据进行验证。
第四方面,本发明实施例还提供了一种轻量级节点的数据传输装置,配置于代理节点,所述装置包括:
请求接收模块,用于接收轻量级节点发送的轻量级数据传输请求;
请求转发模块,用于将所述轻量级数据传输请求转发给至少一个全节点,以请求所述全节点根据所述轻量级数据传输请求,确定待传输的区块,从所述区块中提取所述轻量级节点关联事务数据;
数据接收模块,用于接收所述全节点发送的数据,其中,所述数据包括:区块头和轻量级节点关联事务数据;
数据反馈模块,用于将接收到的数据反馈给所述轻量级节点。
第五方面,本发明实施例还提供了一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面实施例所提供的一种轻量级节点的数据传输方法。
第六方面,本发明实施例还提供了一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第二方面实施例所提供的一种轻量级节点的数据传输方法。
第七方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面实施例所提供的一种轻量级节点的数据传输方法。
第八方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第二方面实施例所提供的一种轻量级节点的数据传输方法。
本发明实施例轻量级节点将轻量级数据传输请求发送给代理节点,以请求代理节点向至少一个全节点转发用于排除轻量级节点非关联事务数据的轻量级数据传输请求;接收代理节点从全节点转发的包括区块头和轻量级节点关联事务数据的数据;将接收的数据进行验证。上述技术方案通过排除轻量级节点非关联事务数据的方式,对轻量级节点待接收的数据进行筛选;通过代理节点作为轻量级节点和全节点之间的枢纽,在轻量级节点发送多个轻量级数据传输请求时,减少了轻量级节点与全节点之间的交互次数以及接收数据时所包含的协议头的数量。也即,通过数据筛选和代理节点引入的方式减少了轻量级节点的数据传输量,优化了数据传输方式,降低了对轻量级节点的性能要求。
附图说明
图1是本发明实施例一中的一种轻量级节点的数据传输方法的流程图;
图2是本发明实施例二中的一种轻量级节点的数据传输方法的流程图;
图3是本发明实施例三中的一种轻量级节点的数据传输方法的流程图;
图4是本发明实施例四中的一种轻量级节点的数据传输方法的流程图;
图5A是本发明实施例五中的一种轻量级节点的数据传输方法的流程图;
图5B是本发明实施例五中的另一种轻量级节点的数据传输方法的流程图;
图6是本发明实施例六中的一种轻量级节点的数据传输装置的结构图;
图7是本发明实施例七中的一种轻量级节点的数据传输装置的结构图;
图8为本发明实施例八提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一中的一种轻量级节点的数据传输方法的流程图。本发明实施例可适用于全节点向轻量级节点间接传输数据的情况,该方法可以由轻量级节点的数据传输装置来执行,该装置由软件和/或硬件实现,并具体配置于承载有轻量级节点的电子设备中。
如图1所示的轻量级节点的数据传输方法,包括:
S110、将轻量级数据传输请求发送给代理节点,以请求代理节点向至少一个全节点转发轻量级数据传输请求,所述轻量级数据传输请求用于请求所述全节点排除所述轻量级节点非关联事务数据的传输。
其中,轻量级节点区别于区块链网络中的全节点,并不完全存储所有区块链的数据,因此,当需要完整区块链、或需要新增的一个或多个区块数据、或需要查询历史区块数据时,则发起轻量级数据传输请求。例如,轻量级节点所属的用户可能不经常处于活跃状态,所谓活跃状态是指产生或处理事务请求,那么,轻量级节点可以在用户触发进入活跃状态时即触发轻量级数据传输请求。例如,当轻量级用户基于区块链进行交易时则进入了活跃状态。
其中,轻量级数据传输请求表示获取与轻量级节点关联事务数据的事务请求。其中,所获取的关联事务数据可以是下述至少一项:区块链中与轻量级节点所关联的所有事务数据;区块链中指定区块中与轻量级节点所关联的事务数据;区块链中轻量级节点所查询的指定事务数据。其中,指定区块可以是当前区块,还可以是指定的区块链中的其他区块。其中,关联事务数据可以理解为轻量级节点或轻量级节点登录账户作为参与方的事务数据。
其中,接收轻量级数据传输请求的代理节点,可以是区块链网络中任一具备存储区块链的全部数据的常规节点或轻量级节点,一般优选是轻量级节点的信任节点。其中,信任节点可以是区块链网络中具备较高公信力的节点、数据处理能力较高的节点、与轻量级节点的链接次数较高、和/或与轻量级节点建立固定链接关系的节点。其中,一个代理节点可以对应一个或多个轻量级节点。其中,轻量级节点可以根据所需求的代理节点的算力情况,指定轻量级节点或全节点为代理节点。
其中,接收代理节点转发的轻量级数据传输请求的全节点,可以是区块链网络中的任一全节点,还可以是轻量级节点的信任节点或代理节点的信任节点。可以理解的是,轻量级节点、代理节点和全节点均参与到同一区块链网络中。
优选地,接收轻量级数据传输请求的代理节点,具体为与轻量级节点建立固定链接关系且与轻量级节点的链接次数较高的全节点或轻量级节点;接收代理节点转发的轻量级数据传输请求的全节点,具体为与代理节点已建立固定链接关系的公信力较高的一个或两个全节点。或者,代理节点可以根据网络中各个全节点的负载能力、网络传输能力、可靠性等多方面因素来动态确定全节点。也可以考虑从多个全节点并行传输数据。
可选的,轻量级节点确定至少一个全节点,作为请求传输区块数据的全节点,将至少一个全节点的地址添加到轻量级数据传输请求的协议头或信息体中。如果目标全节点的数量为多个,则多个目标全节点的地址可以添加到不同信息体中,封装在一个轻量级数据传输请求中。
可选的,轻量级数据传输请求中包括事务数据的关联规则,用于指示所述全节点根据所述关联规则确定关联事务数据和非关联事务数据。
其中,关联规则可以包括用户设定的数据选取条件。其中数据选取条件可以包括:与轻量级节点标识相关,或者与轻量级节点登录账户相关的基础限定条件;还可以包括:事务数据产生的时间节点,或者事务数据所在区块的区块高度等附加限定条件等。
其中,关联规则还可以包括轻量级节点所需数据的数据传输格式。可选的,数据传输格式可以预先配置在轻量级节点的部署数据的数据通讯协议中。
具体的,当用户在承载轻量级节点的电子设备中执行与轻量级节点的关联事务数据的查询操作,或者是轻量级节点得知区块链网络中有新区块出块时,将会产生对应的轻量级数据传输请求;将产生的轻量级数据传输请求通过代理节点转送至至少一个全节点。相应的,当全节点接收到该轻量级数据传输请求后,获取全部区块数据、指定区块数据或者指定事务数据,并排除与轻量级节点非关联事务数据,得到轻量级节点关联事务数据。
其中,代理节点向至少一个全节点转发轻量级数据传输请求,可以是代理节点根据本地维护的与被代理节点对应的全节点列表,确定至少一个目标全节点,并将轻量级数据传输请求转发至目标全节点;还可以是代理节点根据维护的与代理节点自身对应的全节点列表,确定至少一个目标全节点,并将轻量级数据传输请求转发至目标全节点;还可以是获取轻量级数据传输请求中所包含的至少一个目标全节点,并将轻量级数据传输请求转发至目标全节点。
其中,轻量级节点关联事务数据可以包括涉及所述轻量级节点的元素转入事务数据和/或元素转出事务数据。其中,关联事务数据还可以包括智能合约的运行结果等。
S120、接收所述代理节点从所述全节点转发的数据,其中,所述数据包括:区块头和轻量级节点关联事务数据。
全节点将包含轻量级节点关联事务数据的区块体以及对应的区块头,通过代理节点转发至轻量级节点。其中,区块体是在原区块体基础上删除了非关联事务数据而获取的,区块头则为区块链中的原区块头。相应的,代理节点进行数据接收。其中,区块头中包括轻量级节点关联事务数据的事务标识。
可以理解的是,为了便于轻量级节点对接收到的数据进行验证,全节点发送的数据还可以包括轻量级节点标识或者轻量级节点登录账户等匹配验证信息。
S130、对所述接收到的数据进行验证。
示例性的,对所接收到的数据进行验证,可以是对接收的区块的合法性、有效性、和/或接收区块体中关联事务数据的正确性进行验证。
示例性地,对接收到的数据进行验证,还可以是对所接收的数据与当前使用的轻量级节点或轻量级节点的登录账户的匹配性进行验证。具体的,匹配性验证过程可以是:判断接收到的数据中包含的轻量级节点标识与当前使用的轻量级节点的节点标识是否相同,或者判断接收到的数据中包含的轻量级节点登录账户与当前使用的登录账户是否相同。
本发明实施例轻量级节点将轻量级数据传输请求发送给代理节点,以请求代理节点向至少一个全节点转发用于排除轻量级节点非关联事务数据的轻量级数据传输请求;接收代理节点从全节点转发的包括区块头和轻量级节点关联事务数据的数据;将接收的数据进行验证。上述技术方案通过排除轻量级节点非关联事务数据的方式,对轻量级节点待接收的数据进行筛选;通过代理节点作为轻量级节点和全节点之间的枢纽,在轻量级节点发送多个轻量级数据传输请求时,减少了轻量级节点与全节点之间的交互次数以及接收数据时所包含的协议头的数量。也即,通过数据筛选和代理节点引入的方式减少了轻量级节点的数据传输量,优化了数据传输方式,降低了对轻量级节点的性能要求。
在上述各实施例的技术方案的基础上,进一步地,在“对所述接收到的数据进行验证”之后,还包括:对所述接收到的数据进行存储。
具体的,轻量级节点根据所述接收到的数据,建立关联事务数据与轻量级节点中账号的对应关系,并进行存储。为了减少对轻量级节点存储空间的要求,允许轻量级节点不存在所有区块数据,因此,轻量级节点可以在获取区块数据并进行相应处理后,再丢弃,也可以固定存储在本地,形成轻量级区块链数据。对区块数据的相应处理,例如可以是显示给用户查看等。轻量级节点所对应的登录账户可以为一个或多个,优选是将关联事务数据与轻量级节点中的账号对应存储,方便账户的使用者来查询,相当于一个轻量级账本。
本发明实施例通过对接收到的数据本地存储的方式,实现了轻量级节点对所接收数据的管理。
实施例二
图2是本发明实施例二中的一种轻量级节点的数据传输方法的流程图。本发明实施例在上述各实施例的技术方案的基础上,进行了细分优化。
进一步地,将操作“对所述接收到的数据进行验证”,细化为“根据所述接收到的数据,对所述区块的合法性、有效性和关联事务数据的正确性中的至少一项进行验证”,以完善轻量级节点的数据验证机制。
如图2所示的轻量级节点的数据传输方法,包括:
S210、将轻量级数据传输请求发送给代理节点,以请求代理节点向至少一个全节点转发轻量级数据传输请求,所述轻量级数据传输请求用于请求所述全节点排除所述轻量级节点非关联事务数据的传输。
S220、接收所述代理节点从所述全节点转发的数据,其中,所述数据包括:区块头和轻量级节点关联事务数据。
S230、根据所述接收到的数据,对所述区块的合法性、有效性和关联事务数据的正确性中的至少一项进行验证。
其中,合法性用于作为接收到的数据所在区块是否由区块链网络中正确的节点生成的判断依据;有效性用于作为接收到的数据所在区块是否为区块链中正确连续的区块的判断依据。
示例性地,根据所述接收到的数据,对所述区块的有效性进行验证,可以是:根据本地存储的历史区块的区块头,获取前一个区块的区块标识;如果接收到的区块头中包括前一个区块的区块标识,则有效性验证通过。其中,历史区块为轻量级节点中存储的当前接收到的区块的前一区块。
示例性地,根据所述接收到的数据,对所述区块的合法性进行验证,可以是:根据所述接收到的数据,按照区块链所采用的共识机制,对所述区块的合法性进行验证。当区块链节点采用的共识机制不同时,确定生成区块的节点的方式也不相同。
具体的,当区块链网络采用POW(Proof of Work,工作量证明)共识机制时,获取接收到的区块头中的现时标志nonce值,并根据nonce值以及区块头中的其他数据,计算得到哈希值;将得到的哈希值与获取的区块头的区块标识进行比较;若比较结果为相同,则合法性验证通过。其中,区块头中的其他数据包括前一区块标识、时间戳、事务标识数组以及梅克尔树的根中的至少一种。
具体的,当区块链网络采用POS(Proof of Stake,股权证明)共识机制时,轻量级节点获取所接收区块的区块高度或区块标识;将该区块标识按照轻量级节点部署数据中的共识机制确定对应的生成节点标识;查找所接收的区块头中的生成节点标识与确定的生成节点标识是否匹配;若匹配,则合法性验证通过。其中,区块头中的区块标识包括生成区块的节点标识,也即节点公钥。其中,共识机制中预先设定了区块链网络中的区块生成节点,以及各区块生成节点出块的时间周期或区块高度。
其中,获取所接收区块的区块高度,包括:直接获取轻量级节点本地存储的历史区块的区块高度,或者,基于所接收的区块头中所包含的数据,根据设定算法确定所接收区块的区块高度。
示例性地,根据所述接收到的数据,对关联事务数据的正确性进行验证,可以是:验证事务数组是否在所述区块头中;若是,根据所述关联事务数据计算确定事务标识,并验证所述关联事务数据的事务标识是否在事务数组中;若是,则正确性验证通过。其中,事务数组为存储区块中各事务数据经哈希运算后的事务标识的数组。可以理解的是,当所接收的区块头中不包含事务数组,或者关联事务数据的事务标识并未在事务数组中,则正确性验证失败。
需要注意的是,当关联事务数据包括智能合约的运行结果时,轻量级节点在对关联事务数据的正确性进行验证时,还需要进一步对智能合约运行结果的正确性进行验证。
如果由于共识机制的原因,或轻量级节点算力等各方面原因,使得轻量级节点难以实现对区块的合法性、有效性和关联事务数据的正确性中的至少一项进行验证,或轻量级节点希望进一步提高验证可靠性时,可选的,轻量级节点还可以向代理节点发送验证咨询消息,以请求所述代理节点向至少一个全节点发送所述验证咨询消息,所述验证咨询消息用于请求其他全节点对所述区块的合法性、有效性和关联事务数据的正确性中的至少一项进行验证;接收代理节点转发的所述其他全节点反馈的验证结果。相应的,轻量级节点根据代理节点转发的全节点反馈的验证结果,对所接收的数据的合法性、有效性以及关联事务数据的正确性中的至少一项进行评判。其中,验证咨询消息包括:合法性验证消息、有效性验证消息和关联事务数据正确性验证消息的至少一项。
具体的,对区块的有效性进行验证,可以是:轻量级节点向代理节点发送有效性验证消息,其中有效性验证消息包括待验证区块的区块头。相应地,代理节点将有效验证消息转发至至少一个全节点;全节点接收该有效性验证消息,并基于区块头中的区块标识查找本地存储的相应区块的区块标识,与待验证区块的区块标识进行比对,得到比对结果;获取本地存储的相应区块的前一区块的区块标识与待验证区块中所包含的前一区块的区块标识进行比对,得到比对结果;若比对结果均为相同,则有效性验证通过;否则有效性验证不通过;通过代理节点向轻量级节点反馈有效性验证的验证结果。
可选的,轻量级节点确定至少一个全节点,作为咨询验证的全节点,将至少一个全节点的地址添加到验证咨询消息的协议头或信息体中。如果目标全节点的数量为多个,则多个目标全节点的地址可以添加到不同信息体中,封装在一个验证咨询消息中。或者,也可以不确定目标全节点,而是要求代理节点广播发送验证咨询消息。各个信息体中的内容可以相同或不同。
具体的,对区块的合法性进行验证,可以是:轻量级节点向代理节点发送合法性验证消息,其中合法性验证消息包括待验证区块的区块头。相应的,代理节点将有效验证消息转发至至少一个全节点;全节点接收该合法性验证消息,并根据待验证区块的区块头所包含的数据,与本地所存储区块链中相应区块头中的信息比对,以对区块的合法性进行验证;通过代理节点向轻量级节点反馈有效性验证的验证结果。
具体的,对关联事务数据的正确性进行验证,可以是:轻量级节点向代理节点发送关联事务数据正确性验证消息,其中关联事务数据正确性验证消息包括轻量级节点所接收的数据。相应的,代理节点将有效验证消息转发至至少一个全节点;全节点接收到正确性验证消息后,根据所接收的数据查找区块链中对应区块中的关联事务数据,进行比对;若比对结果一致,则关联事务数据的正确性验证通过;否则正确性验证不通过;通过代理节向轻量级节点反馈正确性性验证的验证结果。
可以理解的是,为了减少轻量级节点传输的数据量,还可以直接对接收到的数据进行签名得到数据签名标识,并添加到验证咨询消息中并通过代理节点发送至至少一个全节点。进行验证的全节点执行的操作与提供数据的全节点类似,同样为该轻量级节点查询到需要的区块,获取区块头和关联事务数据。不同全节点提供的数据内容应该是相同的。而后基于设定算法进行签名计算,与轻量级节点提供的数据签名标识进行比对,若一致则验证通过。
需要说明的是,轻量级节点可以本机对区块数据的正确性进行验证,但是难以对完整性进行验证。具体的,关联事务数据典型的包括元素转入事务数据和元素转出事务数据。对于元素转出事务数据,是由轻量级节点侧发起的事务请求,因此可以根据本机记录来确定是否包括所有元素转出事务数据。对于元素转入事务数据,轻量级节点可能无法获知,无法验证全节点是否提供了所有向本机账户转入元素的事务数据。因此,可以向代理节点发起验证咨询消息,代理节点向多个全节点进行咨询验证。完整性验证并不影响区块链中区块数据的正确性,即元素转入事务数据在处理过程中即存入了区块链,得到了所有全节点的确认。完整性验证可以根据用户需求和/或网络带宽等条件选择执行。本发明实施例通过根据接收到的数据对区块的合法性、有效性和/或关联事务数据的正确性进行验证,并根据轻量级节点算力情况提供了不同的验证方式,完善了轻量级节点的数据验证机制。
实施例三
图3是本发明实施例三中的一种轻量级节点的数据传输方法的流程图。本发明实施例在上述各实施例的技术方案的基础上,进行了优化。
进一步地,在操作“接收所述代理节点从所述全节点转发的数据”之后,追加“对接收到的数据采用全节点对应密钥进行解密”,以增强数据传输的安全性。
如图3所示的轻量级节点的数据传输方法,包括:
S310、将轻量级数据传输请求发送给代理节点,以请求代理节点向至少一个全节点转发轻量级数据传输请求,所述轻量级数据传输请求用于请求所述全节点排除所述轻量级节点非关联事务数据的传输。
S320、接收所述代理节点从所述全节点转发的数据,其中,所述数据包括:区块头和轻量级节点关联事务数据。
S330、对接收到的数据采用全节点对应密钥进行解密。
示例性地,轻量级节点根据本地维护的全节点列表,确定至少一个全节点为目标全节点添加至轻量级数据传输请求中,发送至代理节点;代理节点接收到轻量级数据传输请求后,解析获取目标全节点,并将轻量级数据传输请求转送至目标全节点;目标全节点对轻量级数据传输请求进行响应,得到轻量级节点的关联事务数据,并将包括关联事务数据以及区块头的数据,采用本机私钥加密反馈至代理节点;代理节点直接将接收的数据转发至轻量级节点;轻量级节点根据目标全节点的公钥对接收的数据进行解密。
或者,可以采用轻量级节点与全节点之间的对称密钥来进行加解密,从而保证轻量级节点与全节点之间的通信安全。
可以理解的是,为了保证代理节点转发数据过程的安全性,代理节点还可以采用本机私钥将目标全节点反馈的数据进行二次加密后,发送至轻量级节点;轻量级节点采用代理节点公钥对应解密。
S340、对所述接收到的数据进行验证。
本发明实施例通过在轻量级节点、代理节点和全节点之间进行数据传输时,采用密钥进行加解密操作,提高了数据传输的安全性。
实施例四
图4是本发明实施例四中的一种轻量级节点的数据传输方法的流程图。本发明实施例可适用于全节点向轻量级节点间接传输数据的情况,该方法可以由代理节点的数据传输装置来执行,该装置由软件和/或硬件实现,从具体配置于承载有代理节点的电子设备中。
其中,代理节点可以是区块链网络中任一具备存储区块链的全部数据的常规节点或轻量级节点,还可以是轻量级节点的信任节点。其中,信任节点可以是区块链网络中具备较高公信力的节点、数据处理能力较高的节点、与轻量级节点链接次数较高、和/或与轻量级节点建立固定链接关系的节点。其中,一个代理节点可以对应一个或多个轻量级节点。其中,轻量级节点可以根据所需求的代理节点的算力情况,指定轻量级节点或全节点为代理节点。优选地,本发明实施例所涉及的代理节点为与轻量级节点已建立固定链接关系且与轻量级节点的链接次数较高的全节点或轻量级节点。如图4所示的一种轻量级节点的数据传输方法,包括:
S410、接收轻量级节点发送的轻量级数据传输请求。
其中,轻量级数据传输请求表示获取与轻量级节点关联事务数据的事务请求。其中,所获取的关联事务数据可以是下述至少一项:区块链中与轻量级节点所关联的所有事务数据;区块链中指定区块中与轻量级节点所关联的事务数据;区块链中轻量级节点所查询的指定事务数据。其中,指定区块可以是当前区块,还可以是指定的区块链中的其他区块。其中,关联事务数据可以理解为轻量级节点或轻量级节点登录账户作为参与方的事务数据。
其中,接收代理节点转发的轻量级数据传输请求的全节点,可以是区块链网络中的任一全节点,还可以是轻量级节点的信任节点或代理节点的信任节点。可以理解的是轻量级节点、代理节点和全节点均参与到同一区块链网络中。优选地,接收代理节点转发的轻量级数据传输请求的全节点,具体为与轻量级节点已建立固定链接关系的公信力较高的一个或两个全节点。
当用户在承载轻量级节点的电子设备中执行与轻量级节点的关联事务数据的查询操作,或者当轻量级节点得知区块链网络中有新区块出块时,将会产生对应轻量级数据传输请求;将产生的轻量级数据传输请求发送至代理节点。相应的,代理节点接收轻量级数据传输请求。
S420、将所述轻量级数据传输请求转发给至少一个全节点,以请求所述全节点根据所述轻量级数据传输请求,确定待传输的区块,从所述区块中提取所述轻量级节点关联事务数据。
其中,接收代理节点转发的轻量级数据传输请求的全节点,可以是代理节点根据本地维护的与被代理节点对应全节点列表,确定的至少一个目标全节点,;还可以是代理节点根据维护的与代理节点自身对应的全节点列表,确定的至少一个目标全节点;还可以是获取的轻量级节点预先添加至轻量级数据传输请求中的至少一个目标全节点。
可选的,轻量级数据传输请求中包括事务数据的关联规则。全节点接收到代理节点转发的轻量级数据传输请求后,获取所述轻量级数据传输请求中的事务数据的关联规则;根据事务数据的关联规则确定待传输的区块,并从所述区块中提取所述轻量级节点关联事务数据。
具体的,从所述区块中提取所述轻量级节点关联事务数据,可以是:将待传输的区块的区块体中所包含的与轻量级节点非关联事务数据排除,得到关联事务数据。可以是复制原区块再进行非关联事务数据的删除操作,也可以是从原区块中提取区块头和所需的关联事务数据,相当于从原区块中删除所述轻量级节点非关联事务数据。全节点本地存储的区块链并不因此而发生变化。
其中,关联规则包括用户设定的数据选取条件。其中数据选取条件可以包括:与轻量级节点标识相关,或者与轻量级节点登录账户相关的基础限定条件;还可以包括:事务数据产生的时间节点,或者事务数据所在区块的区块高度等附加限定条件等。
具体的,全节点根据数据选取条件,确定满足数据选取条件的事务数据所对应的区块作为待传输的区块。
或者,全节点也可以根据本地部署数据预先规定的轻量级节点传输要求,向轻量级节点提供关联事务数据。
其中,关联规则还可以包括轻量级节点所需数据的数据传输格式。可选的,数据传输格式可以配置在轻量级节点的部署数据的数据通讯协议中。
可选的,全节点将区块的区块头以及关联事务数据,按照轻量级节点所需数据的数据传输格式发送至代理节点。可以理解的是,当区块中不存在关联事务数据时,可直接将区块头传输至代理节点。
可选的,全节点还可以直接将包括区块头和关联事务数据的数据发送至代理节点,由代理节点按照轻量级节点所需数据的数据传输格式转发至轻量级节点。
其中,轻量级节点关联事务数据包括涉及所述轻量级节点的元素转入事务数据和/或元素转出事务数据。其中,关联事务数据还可以包括智能合约的运行结果。
具体的,代理节点将所述轻量级数据传输请求转发给至少一个全节点可具体包括:从轻量级节点发送的一个所述轻量级数据传输请求中获取信息体;根据所述轻量级数据传输请求中的协议头和信息体,将所述信息体分别封装成为至少两个转发轻量级数据传输请求;将各转发轻量级数据传输请求发送给至少两个全节点。
轻量级节点可以仅发送一个轻量级数据传输请求,而后由代理节点拆分为两个以上的转发轻量级数据传输请求,发送给两个以上全节点,以请求下载区块数据。其中,每个轻量级数据传输请求可包括一个协议头和至少一个信息体。在信息体中包括轻量级数据传输请求的实质内容。轻量级节点可以预先确定要连接的全节点地址,携带在协议头或信息体中,由代理节点进行拆分。或者,轻量级节点也可以不预先确定全节点,由代理节点确定多个全节点,并将信息体复制多份,分别添加协议头,以转发给多个全节点。
上述技术方案,减少了轻量级节点所需发送轻量级数据传输请求的协议头内容,能够减少对轻量级节点的带宽占用。
S430、接收所述全节点发送的数据,其中,所述数据包括:区块头和轻量级节点关联事务数据。
S440、将接收到的数据反馈给所述轻量级节点。
代理节点接收到全节点基于轻量级数据传输请求反馈的数据后,直接进行数据转发,或者将数据按照轻量级节点所需的数据传输格式重新编码后转发。例如,代理节点可以确定多份数据的内容完全相同后,将一份数据反馈给轻量级节点。或将多份数据打包封装在一起发给轻量级节点。
本发明实施例代理节点接收轻量级节点发送的轻量级数据传输请求;将轻量级数据传输请求转发至至少一个全节点,以请求全节点根据轻量级数据传输请求确定待传输的区块,从区块中提取轻量级节点关联事务数据;接收全节点发送的包括区块头和关联事务数据的数据,并将接收到的数据转发至轻量级节点。上述技术方案通过全节点排除轻量级节点非关联事务数据的方式,对轻量级节点待接收的数据进行筛选;通过代理节点作为轻量级节点和全节点之间的枢纽,在轻量级节点需发送多个轻量级数据传输请求时,减少了轻量级节点与全节点之间的交互次数以及接收数据时所包含的协议头的数量。也即,通过数据筛选和代理节点引入的方式减少了轻量级节点的数据传输量,优化了数据传输方式,降低了对轻量级节点的性能要求。
进一步地,代理节点在向全节点转发轻量级数据传输请求,或者向轻量级节点转发全节点反馈的数据时,代理节点还可以将所转发的各数据采用本机私钥进行加密,轻量级节点或全节点对接收的数据采用代理节点的公钥对应解密,以增强数据传输过程的安全性。
实施例五
图5A是本发明实施例五中的一种轻量级节点的数据传输方法的流程图。本发明实施例在上述各实施例的技术方案的基础上,进行了追加优化。
进一步地,代理节点还用于“接收轻量级节点发送的咨询验证消息,并将咨询验证消息转发至至少一个全节点,以请求全节点根据本地区块链中的数据,对验证咨询消息中的验证需求进行验证;接收全节点发送的验证结果,并转发至轻量级节点”,以辅助轻量级节点进行数据验证。
如图5A所示的轻量级节点的数据传输方法,应用于代理节点,具体包括:
S510A、接收轻量级节点发送的咨询验证消息,并将咨询验证消息转发至至少一个全节点,以请求全节点根据本地区块链中的数据,对验证咨询消息中的验证需求进行验证。
其中,验证咨询消息包括:合法性验证消息、有效性验证消息和关联事务数据正确性验证消息的至少一项。其中,合法性验证消息和有效性验证消息用于对待验证区块的合法性或有效性进行验证。其中,合法性用于作为接收到的数据所在区块是否由区块链网络中正确的节点生成的判断依据;有效性用于作为接收到的数据所在区块是否为区块链中正确连接的区块的判断依据。
通常轻量级节点请求提供区块数据的全节点和请求咨询验证的全节点不同。每个全节点可以向不同的轻量级节点提供传输数据的服务,和咨询验证的服务。
S520A、接收全节点发送的验证结果,并转发至轻量级节点。
本发明实施例由于轻量级节点特定要求或者代理节点算力等各方面原因,通过代理节点作为轻量级节点向全节点进行咨询验证的中间枢纽,辅助轻量级节点进行数据验证,完善了轻量级节点的数据验证机制。
本发明实施例还提供了另一实施方式,以将代理节点作为全节点反馈数据的屏障,仅将通过验证后的数据传输至轻量级节点。
进一步地,在“将接收到的数据反馈给所述轻量级节点”之前,追加“根据所述接收到的数据,对所述区块的合法性、有效性和关联事务数据的正确性中的至少一项进行验证”;相应的,将操作“将接收到的数据反馈给所述轻量级节点”细化为“将验证通过后的数据反馈给轻量级节点”。
参见图5B所示的轻量级节点的数据传输方法,应用于代理节点,具体包括:
S510B、接收轻量级节点发送的轻量级数据传输请求。
S520B、将所述轻量级数据传输请求转发给至少一个全节点,以请求所述全节点根据所述轻量级数据传输请求,确定待传输的区块,从所述区块中提取所述轻量级节点关联事务数据。
S530B、接收所述全节点发送的数据,其中,所述数据包括:区块头和轻量级节点关联事务数据。
S540B、根据所述接收到的数据,对所述区块的合法性、有效性和关联事务数据的正确性中的至少一项进行验证。
示例性地,根据所述接收到的数据,对所述区块的有效性进行验证,可以是:根据本地存储的历史区块的区块头,获取前一个区块的区块标识;如果接收到的区块头中包括前一个区块的区块标识,则有效性验证通过。其中,历史区块为轻量级节点中存储的当前接收到的区块的前一区块。
示例性地,根据所述接收到的数据,对所述区块的合法性进行验证,可以是:根据所述接收到的数据,按照区块链所采用的共识机制,对所述区块的合法性进行验证。
示例性地,根据所述接收到的数据,对关联事务数据的正确性进行验证,可以是:验证事务数组是否在所述区块头中;若是,根据所述关联事务数据计算确定事务标识,并验证所述关联事务数据的事务标识是否在事务数组中;若是,则正确性验证通过。其中,事务数组为存储区块中各事务数据经哈希运算后的事务标识的数组。可以理解的是,当所接收的区块头中不包含事务数组,或者关联事务数据的事务标识并未在事务数组中,则正确性验证失败。
需要注意的是,当关联事务数据包括智能合约的运行结果时,轻量级节点在对关联事务数据的正确性进行验证时,还需要进一步对智能合约运行结果的正确性进行验证。
如果由于共识机制的原因,或轻量级节点算力等各方面原因,使得代理节点难以实现对区块的合法性、有效性和关联事务数据的正确性中的至少一项进行验证,或代理节点希望进一步提高验证可靠性时,可选的,代理节点还可以根据本地维护的全节点列表,向至少一个全节点发送验证咨询消息,以请求其他全节点对所述区块的合法性、有效性和关联事务数据的正确性中的至少一项进行验证,请求咨询的全节点与发送轻量级数据传输请求的全节点不相同;接收其他全节点反馈的验证结果。相应的,代理节点根据全节点反馈的验证结果,对所接收的数据的合法性、有效性以及关联事务数据的正确性中的至少一项进行评判。
S550B、将验证通过后的数据反馈给轻量级节点。
代理节点将验证通过后的数据反馈给轻量级节点。可选的,还可以将验证结果以及提供验证结果的全节点标识发送给轻量级节点。
本发明实施例有代理节点自主对从全节点接收的消息直接和/或间接验证,分担了轻量级节点的数据处理量,减少了轻量级节点与代理节点的交互次数,降低了对轻量级节点的性能要求。
上述发送验证咨询消息的过程,具体可以是:
接收所述轻量级节点发送的一个验证咨询消息,并从中获取信息体;
根据所述验证咨询消息中的协议头和信息体,将所述信息体分别封装成为至少两个转发验证咨询消息;
将各验证咨询消息广播发送给区块链网络中的全节点;
接收各全节点反馈的验证结果;
将各所述验证结果封装在一个验证结果反馈消息中,发送给所述轻量级节点。
验证咨询消息与轻量级数据传输请求类似,也可以由一个协议头和至少一个信息体组合而成。轻量级节点可以产生一个或多个待验证的信息体,封装在一个验证咨询消息中,发送给代理节点。代理节点则将信息体拆分封装在多个转发验证咨询消息中,广播发送给各个全节点。所述信息体中可以进一步携带有轻量级节点确定的目标全节点的地址。
轻量级节点确定的多个信息体内容可以不同。
实施例六
图6是本发明实施例六中的一种轻量级节点的数据传输装置的结构图。本发明实施例可适用于全节点向轻量级节点间接传输数据的情况,该装置由软件和/或硬件实现,并具体配置于承载有轻量级节点的电子设备中。如图6所示的轻量级节点的数据传输装置,包括:请求发送模块610,数据接收模块620以及数据验证模块630。
其中,请求发送模块610,用于将轻量级数据传输请求发送给代理节点,以请求代理节点向至少一个全节点转发轻量级数据传输请求,所述轻量级数据传输请求用于请求所述全节点排除所述轻量级节点非关联事务数据的传输;
数据接收模块620,用于接收所述代理节点从所述全节点转发的数据,其中,所述数据包括:区块头和轻量级节点关联事务数据;
数据验证模块630,用于对所述接收到的数据进行验证。
本发明实施例通过请求发送模块将轻量级数据传输请求发送给代理节点,以请求代理节点向至少一个全节点转发用于排除轻量级节点非关联事务数据的轻量级数据传输请求;通过数据接收模块接收代理节点从全节点转发的包括区块头和轻量级节点关联事务数据的数据;通过数据验证模块将接收的数据进行验证。上述技术方案通过排除轻量级节点非关联事务数据的方式,对轻量级节点待接收的数据进行筛选;通过代理节点作为轻量级节点和全节点之间的枢纽,在轻量级节点发送多个轻量级数据传输请求时,减少了轻量级节点与全节点之间的交互次数以及接收数据时所包含的协议头的数量。也即,通过数据筛选和代理节点引入的方式减少了轻量级节点的数据传输量,优化了数据传输方式,降低了对轻量级节点的性能要求。
进一步地,所述轻量级数据传输请求中包括事务数据的关联规则,用于指示所述全节点根据所述关联规则确定关联事务数据和非关联事务数据。
进一步地,所述事务数据的关联规则配置在所述轻量级节点的部署数据中。
进一步地,轻量级节点关联事务数据包括涉及所述轻量级节点的元素转入事务数据和/或元素转出事务数据。
进一步地,数据验证模块630,具体用于:
根据所述接收到的数据,对所述区块的合法性、有效性和关联事务数据的正确性中的至少一项进行验证。
进一步地,数据验证模块630,包括辅助验证单元,用于:
向代理节点发送验证咨询消息,以请求所述代理节点向至少一个全节点发送所述验证咨询消息,所述验证咨询消息用于请求其他全节点对所述区块的合法性、有效性和关联事务数据的正确性中的至少一项进行验证;
接收代理节点转发的所述其他全节点反馈的验证结果。
进一步地,数据验证模块630,还包括消息添加单元,用于在向代理节点发送验证咨询消息之前,对所述接收到的数据进行签名,添加到所述验证咨询消息中。
进一步地,数据验证模块630,包括有效性验证单元,具体用于:
根据本地存储的历史区块的区块头,获取前一个区块的区块标识;
如果接收到的区块头中包括前一个区块的区块标识,则有效性验证通过。
进一步地,数据验证模块630,包括合法性验证单元,具体用于:
根据所述接收到的数据,按照区块链所采用的共识机制,对所述区块的合法性进行验证。
进一步地,数据验证模块630,包括正确性验证单元,具体用于:
验证事务数组是否在所述区块头中;
若是,根据所述关联事务数据计算确定事务标识,并验证所述关联事务数据的事务标识是否在事务数组中;
若是,则正确性验证通过。
进一步地,所述装置,还包括数据存储模块,用于:在对所述接收到的数据进行验证之后,对所述接收到的数据进行存储。
进一步地,数据存储模块,具体用于:根据所述接收到的数据,建立关联事务数据与轻量级节点中账号的对应关系,并进行存储。
进一步地,所述装置,还包括解密模块,用于:在接收所述代理节点从所述全节点转发的数据之后,对接收到的数据采用全节点对应密钥进行解密。
本发明实施例所提供的轻量级节点的数据传输装置可执行本发明任意实施例所提供的轻量级节点的数据传输方法,具备执行轻量级节点的数据传输方法相应的功能模块和有益效果。
实施例七
图7是本发明实施例七中的一种轻量级节点的数据传输装置的结构图。本发明实施例可适用于全节点向轻量级节点间接传输数据的情况,该装置由软件和/或硬件实现,从具体配置于承载有代理节点的电子设备中。如图7所示的轻量级节点的数据传输装置,包括:请求接收模块710,请求转发模块720,数据接收模块730以及数据反馈模块740。
其中,请求接收模块710,用于接收轻量级节点发送的轻量级数据传输请求;
请求转发模块720,用于将所述轻量级数据传输请求转发给至少一个全节点,以请求所述全节点根据所述轻量级数据传输请求,确定待传输的区块,从所述区块中提取所述轻量级节点关联事务数据;
数据接收模块730,用于接收所述全节点发送的数据,其中,所述数据包括:区块头和轻量级节点关联事务数据;
数据反馈模块740,用于将接收到的数据反馈给所述轻量级节点。
请求转发模块720具体可用于:从轻量级节点发送的一个所述轻量级数据传输请求中获取信息体;根据所述轻量级数据传输请求中的协议头和信息体,将所述信息体分别封装成为至少两个转发轻量级数据传输请求;将各转发轻量级数据传输请求发送给至少两个全节点。
该装置还可以包括验证模块,具体用于接收所述轻量级节点发送的一个验证咨询消息,并从中获取信息体;根据所述验证咨询消息中的协议头和信息体,将所述信息体分别封装成为至少两个转发验证咨询消息;将各验证咨询消息广播发送给区块链网络中的全节点;接收各全节点反馈的验证结果;将各所述验证结果封装在一个验证结果反馈消息中,发送给所述轻量级节点。
本发明实施例通过请求接收模块接收轻量级节点发送的轻量级数据传输请求;通过请求转发模块将轻量级数据传输请求转发至至少一个全节点,以请求全节点根据轻量级数据传输请求确定待传输的区块,从区块中提取轻量级节点关联事务数据;通过数据接收模块接收全节点发送的包括区块头和关联事务数据的数据,并通过数据接收模块将接收到的数据转发至轻量级节点。上述技术方案通过全节点排除轻量级节点非关联事务数据的方式,对轻量级节点待接收的数据进行筛选;通过代理节点作为轻量级节点和全节点之间的枢纽,在轻量级节点发送多个轻量级数据传输请求时,减少了轻量级节点与全节点之间的交互次数以及接收数据时所包含的协议头的数量。也即,通过数据筛选和代理节点引入的方式减少了轻量级节点的数据传输量,优化了数据传输方式,降低了对轻量级节点的性能要求。
本发明实施例所提供的轻量级节点的数据传输装置可执行本发明任意实施例所提供的轻量级节点的数据传输方法,具备执行轻量级节点的数据传输方法相应的功能模块和有益效果。
实施例八
图8为本发明实施例八提供的一种电子设备的结构示意图。图8示出了适于用来实现本发明实施方式的示例性电子设备812的框图。图8显示的电子设备812仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,电子设备812以通用计算设备的形式表现。电子设备812的组件可以包括但不限于:一个或者多个处理器或者处理单元816,系统存储器828,连接不同系统组件(包括系统存储器828和处理单元816)的总线818。
总线818表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备812典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备812访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器828可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)830和/或高速缓存存储器832。电子设备812可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统834可以用于读写不可移动的、非易失性磁介质(图8未显示,通常称为“硬盘驱动器”)。尽管图8中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线818相连。存储器828可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块842的程序/实用工具840,可以存储在例如存储器828中,这样的程序模块842包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块842通常执行本发明所描述的实施例中的功能和/或方法。
电子设备812也可以与一个或多个外部设备814(例如键盘、指向设备、显示器824等)通信,还可与一个或者多个使得用户能与该电子设备812交互的设备通信,和/或与使得该电子设备812能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口822进行。并且,电子设备812还可以通过网络适配器820与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器820通过总线818与电子设备812的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备812使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元816通过运行存储在系统存储器828中的多个程序中的至少一个程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的一种轻量级节点的数据传输方法。
实施例九
本发明实施例九还提供了一种电子设备,该电子设备的结构图同样可参见图8。
本发明实施例与实施例八的区别仅在于:处理单元816通过运行存储在系统存储器828中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的另一种轻量级节点的数据传输方法,应用于代理节点。
实施例十
本发明实施例十提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任一实施例所提供的一种轻量级节点的数据传输方法,应用于轻量级节点,所述方法包括:将轻量级数据传输请求发送给代理节点,以请求代理节点向至少一个全节点转发轻量级数据传输请求,所述轻量级数据传输请求用于请求所述全节点排除所述轻量级节点非关联事务数据的传输;接收所述代理节点从所述全节点转发的数据,其中,所述数据包括:区块头和轻量级节点关联事务数据;对所述接收到的数据进行验证。
本发明实施例还提供了另一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任一实施例所提供的一种轻量级节点的数据传输方法,应用于代理节点,所述方法包括:接收轻量级节点发送的轻量级数据传输请求;将所述轻量级数据传输请求转发给至少一个全节点,以请求所述全节点根据所述轻量级数据传输请求,确定待传输的区块,从所述区块中提取所述轻量级节点关联事务数据;接收所述全节点发送的数据,其中,所述数据包括:区块头和轻量级节点关联事务数据;将接收到的数据反馈给所述轻量级节点。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (23)

1.一种轻量级节点的数据传输方法,其特征在于,应用于轻量级节点,所述方法包括:
将轻量级数据传输请求发送给代理节点,以请求代理节点向至少一个全节点发送轻量级数据传输请求,所述轻量级数据传输请求用于请求所述全节点排除所述轻量级节点非关联事务数据的传输;
接收所述代理节点从所述全节点转发的数据,其中,所述数据包括:区块头和轻量级节点关联事务数据;
对所述接收到的数据进行验证。
2.根据权利要求1所述的方法,其特征在于,所述轻量级数据传输请求中包括事务数据的关联规则,用于指示所述全节点根据所述关联规则确定关联事务数据和非关联事务数据。
3.根据权利要求2所述的方法,其特征在于,所述事务数据的关联规则配置在所述轻量级节点的部署数据中。
4.根据权利要求1所述的方法,其特征在于,轻量级节点关联事务数据包括涉及所述轻量级节点的元素转入事务数据和/或元素转出事务数据。
5.根据权利要求1所述的方法,其特征在于,对所述接收到的数据进行验证包括:
根据所述接收到的数据,对所述区块的合法性、有效性和关联事务数据的正确性中的至少一项进行验证。
6.根据权利要求5所述的方法,其特征在于,根据所述接收到的数据,对所述区块的合法性、有效性和关联事务数据的正确性中的至少一项进行验证包括:
向代理节点发送验证咨询消息,以请求所述代理节点向至少一个全节点发送所述验证咨询消息,所述验证咨询消息用于请求其他全节点对所述区块的合法性、有效性和关联事务数据的正确性中的至少一项进行验证;
接收代理节点转发的所述其他全节点反馈的验证结果。
7.根据权利要求6所述的方法,其特征在于,向代理节点发送验证咨询消息之前,还包括:
对所述接收到的数据进行签名,添加到所述验证咨询消息中。
8.根据权利要求5所述的方法,其特征在于,根据所述接收到的数据,对所述区块的有效性进行验证包括:
根据本地存储的历史区块的区块头,获取前一个区块的区块标识;
如果接收到的区块头中包括前一个区块的区块标识,则有效性验证通过。
9.根据权利要求5所述的方法,其特征在于,根据所述接收到的数据,对所述区块的合法性进行验证包括:
根据所述接收到的数据,按照区块链所采用的共识机制,对所述区块的合法性进行验证。
10.根据权利要求5所述的方法,其特征在于,根据所述接收到的数据,对关联事务数据的正确性进行验证包括:
验证事务数组是否在所述区块头中;
若是,根据所述关联事务数据计算确定事务标识,并验证所述关联事务数据的事务标识是否在事务数组中;
若是,则正确性验证通过。
11.根据权利要求1所述的方法,其特征在于,对所述接收到的数据进行验证之后,还包括:
对所述接收到的数据进行存储。
12.根据权利要求11所述的方法,其特征在于,对所述接收到的数据进行存储包括:
根据所述接收到的数据,建立关联事务数据与轻量级节点中账号的对应关系,并进行存储。
13.根据权利要求1所述的方法,其特征在于,接收所述代理节点从所述全节点转发的数据之后,还包括:
对接收到的数据采用全节点对应密钥进行解密。
14.一种轻量级节点的数据传输方法,其特征在于,应用于代理节点,所述方法包括:
接收轻量级节点发送的轻量级数据传输请求;
将所述轻量级数据传输请求转发给至少一个全节点,以请求所述全节点根据所述轻量级数据传输请求,确定待传输的区块,从所述区块中提取所述轻量级节点关联事务数据;
接收所述全节点发送的数据,其中,所述数据包括:区块头和轻量级节点关联事务数据;
将接收到的数据反馈给所述轻量级节点。
15.根据权利要求14所述的方法,其特征在于,将所述轻量级数据传输请求转发给至少一个全节点包括:
从轻量级节点发送的一个所述轻量级数据传输请求中获取信息体;
根据所述轻量级数据传输请求中的协议头和信息体,将所述信息体分别封装成为至少两个转发轻量级数据传输请求;
将各转发轻量级数据传输请求发送给至少两个全节点。
16.根据权利要求14所述的方法,其特征在于,还包括:
接收所述轻量级节点发送的一个验证咨询消息,并从中获取信息体;
根据所述验证咨询消息中的协议头和信息体,将所述信息体分别封装成为至少两个转发验证咨询消息;
将各验证咨询消息广播发送给区块链网络中的全节点;
接收各全节点反馈的验证结果;
将各所述验证结果封装在一个验证结果反馈消息中,发送给所述轻量级节点。
17.根据权利要求15或16所述的方法,其特征在于,所述信息体中携带有目标全节点的地址。
18.一种轻量级节点的数据传输装置,其特征在于,配置于轻量级节点,所述装置包括:
请求发送模块,用于将轻量级数据传输请求发送给代理节点,以请求代理节点向至少一个全节点转发轻量级数据传输请求,所述轻量级数据传输请求用于请求所述全节点排除所述轻量级节点非关联事务数据的传输;
数据接收模块,用于接收所述代理节点从所述全节点转发的数据,其中,所述数据包括:区块头和轻量级节点关联事务数据;
数据验证模块,用于对所述接收到的数据进行验证。
19.一种轻量级节点的数据传输装置,其特征在于,配置于代理节点,所述装置包括:
请求接收模块,用于接收轻量级节点发送的轻量级数据传输请求;
请求转发模块,用于将所述轻量级数据传输请求转发给至少一个全节点,以请求所述全节点根据所述轻量级数据传输请求,确定待传输的区块,从所述区块中提取所述轻量级节点关联事务数据;
数据接收模块,用于接收所述全节点发送的数据,其中,所述数据包括:区块头和轻量级节点关联事务数据;
数据反馈模块,用于将接收到的数据反馈给所述轻量级节点。
20.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-13任一项所述的一种轻量级节点的数据传输方法。
21.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求14-17任一所述的一种轻量级节点的数据传输方法。
22.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-13任一项所述的一种轻量级节点的数据传输方法。
23.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求14-17任一所述的一种轻量级节点的数据传输方法。
CN201811089240.8A 2018-09-18 2018-09-18 一种轻量级节点的数据传输方法、装置、设备和介质 Active CN109194669B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811089240.8A CN109194669B (zh) 2018-09-18 2018-09-18 一种轻量级节点的数据传输方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811089240.8A CN109194669B (zh) 2018-09-18 2018-09-18 一种轻量级节点的数据传输方法、装置、设备和介质

Publications (2)

Publication Number Publication Date
CN109194669A true CN109194669A (zh) 2019-01-11
CN109194669B CN109194669B (zh) 2023-09-15

Family

ID=64908297

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811089240.8A Active CN109194669B (zh) 2018-09-18 2018-09-18 一种轻量级节点的数据传输方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN109194669B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110138566A (zh) * 2019-05-14 2019-08-16 数字钱包(北京)科技有限公司 验证方法、装置、电子设备及计算机可读存储介质
CN110572460A (zh) * 2019-09-11 2019-12-13 腾讯科技(深圳)有限公司 基于区块链系统的数据传输方法、装置及计算机设备
CN110598456A (zh) * 2019-09-24 2019-12-20 腾讯科技(深圳)有限公司 一种数据存储方法、装置、电子设备以及存储介质
CN110602095A (zh) * 2019-09-12 2019-12-20 腾讯科技(深圳)有限公司 基于区块链网络的数据分发、存储方法和装置
CN110708170A (zh) * 2019-12-13 2020-01-17 腾讯科技(深圳)有限公司 一种数据处理方法、装置以及计算机可读存储介质
CN111506656A (zh) * 2020-04-20 2020-08-07 腾讯科技(深圳)有限公司 区块链系统的共识处理方法、装置及智能设备、存储介质
CN115208880A (zh) * 2022-03-29 2022-10-18 深圳大学 预期区块生成方法、装置、计算机设备和存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060193265A1 (en) * 2005-02-25 2006-08-31 Microsoft Corporation Peer-to-peer name resolution protocol with lightweight traffic
CN102591970A (zh) * 2011-12-31 2012-07-18 北京奇虎科技有限公司 一种分布式键-值查询方法和查询引擎系统
CN106530083A (zh) * 2016-10-27 2017-03-22 上海亿账通区块链科技有限公司 基于区块链的多链管理方法及系统
CN106528746A (zh) * 2016-10-26 2017-03-22 江苏通付盾科技有限公司 交易信息查询方法、装置及系统
CN106603698A (zh) * 2016-12-28 2017-04-26 北京果仁宝科技有限公司 基于dpos的区块链共识方法和节点
CN107077674A (zh) * 2016-12-29 2017-08-18 深圳前海达闼云端智能科技有限公司 交易验证处理方法、装置及节点设备
US20180109541A1 (en) * 2016-10-17 2018-04-19 Arm Ltd. Blockchain mining using trusted nodes
CN108259594A (zh) * 2018-01-11 2018-07-06 杭州秘猿科技有限公司 一种基于区块链的数据交互系统以及中继服务器
CN108366138A (zh) * 2018-05-28 2018-08-03 北京奇虎科技有限公司 域名操作方法、系统及电子设备
CN108447014A (zh) * 2018-03-19 2018-08-24 成都零光量子科技有限公司 一种区块链博彩方法及系统

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060193265A1 (en) * 2005-02-25 2006-08-31 Microsoft Corporation Peer-to-peer name resolution protocol with lightweight traffic
CN102591970A (zh) * 2011-12-31 2012-07-18 北京奇虎科技有限公司 一种分布式键-值查询方法和查询引擎系统
US20180109541A1 (en) * 2016-10-17 2018-04-19 Arm Ltd. Blockchain mining using trusted nodes
CN106528746A (zh) * 2016-10-26 2017-03-22 江苏通付盾科技有限公司 交易信息查询方法、装置及系统
CN106530083A (zh) * 2016-10-27 2017-03-22 上海亿账通区块链科技有限公司 基于区块链的多链管理方法及系统
CN106603698A (zh) * 2016-12-28 2017-04-26 北京果仁宝科技有限公司 基于dpos的区块链共识方法和节点
CN107077674A (zh) * 2016-12-29 2017-08-18 深圳前海达闼云端智能科技有限公司 交易验证处理方法、装置及节点设备
CN108259594A (zh) * 2018-01-11 2018-07-06 杭州秘猿科技有限公司 一种基于区块链的数据交互系统以及中继服务器
CN108447014A (zh) * 2018-03-19 2018-08-24 成都零光量子科技有限公司 一种区块链博彩方法及系统
CN108366138A (zh) * 2018-05-28 2018-08-03 北京奇虎科技有限公司 域名操作方法、系统及电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
邰雪,等: ""能源互联网中基于区块链的电力交易和阻塞管理方法"", 《电网技术》 *
邰雪,等: ""能源互联网中基于区块链的电力交易和阻塞管理方法"", 《电网技术》, vol. 40, no. 12, 31 December 2016 (2016-12-31), pages 1 - 5 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110138566A (zh) * 2019-05-14 2019-08-16 数字钱包(北京)科技有限公司 验证方法、装置、电子设备及计算机可读存储介质
CN110572460A (zh) * 2019-09-11 2019-12-13 腾讯科技(深圳)有限公司 基于区块链系统的数据传输方法、装置及计算机设备
CN110572460B (zh) * 2019-09-11 2021-05-14 腾讯科技(深圳)有限公司 基于区块链系统的数据传输方法、装置及计算机设备
CN110602095A (zh) * 2019-09-12 2019-12-20 腾讯科技(深圳)有限公司 基于区块链网络的数据分发、存储方法和装置
CN110602095B (zh) * 2019-09-12 2021-07-13 腾讯科技(深圳)有限公司 基于区块链网络的数据分发、存储方法和装置
CN110598456A (zh) * 2019-09-24 2019-12-20 腾讯科技(深圳)有限公司 一种数据存储方法、装置、电子设备以及存储介质
CN110708170A (zh) * 2019-12-13 2020-01-17 腾讯科技(深圳)有限公司 一种数据处理方法、装置以及计算机可读存储介质
CN110708170B (zh) * 2019-12-13 2020-03-27 腾讯科技(深圳)有限公司 一种数据处理方法、装置以及计算机可读存储介质
CN111506656A (zh) * 2020-04-20 2020-08-07 腾讯科技(深圳)有限公司 区块链系统的共识处理方法、装置及智能设备、存储介质
CN111506656B (zh) * 2020-04-20 2022-06-14 腾讯科技(深圳)有限公司 区块链系统的共识处理方法、装置及智能设备、存储介质
CN115208880A (zh) * 2022-03-29 2022-10-18 深圳大学 预期区块生成方法、装置、计算机设备和存储介质
CN115208880B (zh) * 2022-03-29 2023-11-10 深圳大学 预期区块生成方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN109194669B (zh) 2023-09-15

Similar Documents

Publication Publication Date Title
CN109194669A (zh) 一种轻量级节点的数据传输方法、装置、设备和介质
CN110365491B (zh) 业务处理方法、装置、设备、存储介质以及数据共享系统
KR101795695B1 (ko) 메신저 서비스를 통하여 송수신하는 데이터에 대한 기록 서비스 및 검증 서비스를 제공하는 방법, 및 이를 이용한 서버
CN109101664A (zh) 一种轻量级节点的数据传输方法、装置、设备和介质
US20210304201A1 (en) Transaction verification method and apparatus, storage medium, and electronic device
KR101795696B1 (ko) 메신저 서비스를 통하여 송수신되는 데이터에 대한 기록 및 검증 서비스를 제공하는 방법, 및 이를 이용한 서버
EP3937051B1 (en) Methods and apparatuses for processing transactions based on blockchain integrated station
CN111295660A (zh) 用于将区块链连接到数字孪生的计算机实现的系统和方法
CN108650182A (zh) 网络通信方法、系统、装置、设备及存储介质
CN108961052A (zh) 区块链数据的验证方法、存储方法、装置、设备和介质
CN108665253A (zh) 一种区块链网络的数据处理方法、装置、设备及存储介质
CN109669986A (zh) 基于区块链的黑名单共享方法、装置、设备和存储介质
CN108923908A (zh) 授权处理方法、装置、设备及存储介质
JP2022533396A (ja) ブロックチェーンコンセンサス方法、装置及びシステム
CN109361740A (zh) 一种区块链的区块生成方法、装置、设备和介质
CN109040063A (zh) 车辆ecu密钥的确定方法、装置、设备及存储介质
CN109981297A (zh) 区块链处理方法、装置、设备及存储介质
EP3937052B1 (en) Methods and apparatuses for synchronizing data based on blockchain integrated station
CN102255909B (zh) 监控会话流的方法及装置
CN110096894B (zh) 一种基于区块链的数据匿名共享系统及方法
CN109861992A (zh) 一种监控终端的信息交互方法和跨场景追踪方法
CN110149379B (zh) 一种基于层逻辑的多原链吞吐量扩展方法
CN114567643B (zh) 跨区块链的数据流转方法、装置及相关设备
CN112087502A (zh) 处理请求的方法、装置、设备及存储介质
CN109002349A (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