CN109361664B - 基于区块链的数据验证方法、系统和计算机可读存储介质 - Google Patents

基于区块链的数据验证方法、系统和计算机可读存储介质 Download PDF

Info

Publication number
CN109361664B
CN109361664B CN201811183705.6A CN201811183705A CN109361664B CN 109361664 B CN109361664 B CN 109361664B CN 201811183705 A CN201811183705 A CN 201811183705A CN 109361664 B CN109361664 B CN 109361664B
Authority
CN
China
Prior art keywords
node
terminal
router
service node
time
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
CN201811183705.6A
Other languages
English (en)
Other versions
CN109361664A (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 CN201910673596.4A priority Critical patent/CN110381072B/zh
Priority to CN201811183705.6A priority patent/CN109361664B/zh
Publication of CN109361664A publication Critical patent/CN109361664A/zh
Application granted granted Critical
Publication of CN109361664B publication Critical patent/CN109361664B/zh
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
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请涉及一种基于区块链的数据验证方法、系统、计算机可读存储介质和计算机设备,方法包括:当区块链中的路由器节点处于在线状态时,区块链中的服务节点随机从区块链中选取预设第一数量的节点作为检测节点对路由器节点进行检测得到对应的检测结果;服务节点根据检测结果确定路由器节点的实际在线时长;服务节点获取路由器节点的节点参数,根据节点参数与实际在线时长确定路由器节点对应的资源数值;服务节点根据预设转移时间将资源数值转入至路由器节点对应的账户;服务节点生成路由器节点对应的交易资源信息,交易资源信息包括资源数值;服务节点将交易资源信息写入至区块链中,从而确保了交易数据的可靠性。

Description

基于区块链的数据验证方法、系统和计算机可读存储介质
技术领域
本申请涉及区块链技术领域,特别是涉及一种基于区块链的数据验证方法、系统、计算机可读存储介质和计算机设备。
背景技术
随着虚拟数字货币的发展,大众也越来越关注于其对应的区块链技术。使用现有的区块链技术,可以构建出一套依赖代币进行交易的经济体系,比如会员体系中的会员积分。传统的区块链应用中,区块链上数据全部是由区块链内部生成的,且数据总量是可查的,但并未涉及到外部数据的引入,也未涉及到通过某一机制来抵抗引入外部数据时可能存在的对数据进行篡改的行为。如果直接应用现有的区块链技术,则无法满足对外源输入数据的可信校验。在数据验证时,至少需要一个第三方来进行数据校验,但是作为第三方又必须是链上节点概率认可的,即多数的链上节点认为其可信才可信,因此会陷入一种信任死循环。而且区块链中常用的共识算法,都是与交易记账相关,操作的数据都是链内的货币数据。
对于现有的区块链存储、路由器等应用所采用的技术,实际聚焦的是节点的共享度。共享度存在一个时间区间属性,核算共享度时候需要一个时间结束点。如果只是采用第二天结算上一天分享度来分配报酬,并没有发挥区块链多节点共识的作用,甚至只需要后台统计所有参与者的信息,通过计算公式给出一个共享度即可完成。而实际上,这些上传的信息没有其他节点的验证,是很容易被篡改的。因此,传统技术中并未能够有效的对外部输入数据的可信度进行验证。
发明内容
基于此,有必要针对上述的技术问题,提供一种能够有效对区块链外部输入的数据进行验证的基于区块链的数据验证方法、系统、计算机可读存储介质和计算机设备。
一种基于区块链的数据验证方法,所述区块链中包括服务节点、路由器节点和检测节点,所述方法包括:
当区块链中的所述路由器节点处于在线状态时,所述区块链中的所述服务节点随机从所述区块链中选取预设第一数量的节点作为检测节点对所述路由器节点进行检测得到对应的检测结果;
所述服务节点根据所述检测结果确定所述路由器节点的实际在线时长;
所述服务节点获取所述路由器节点的节点参数,根据所述节点参数与所述实际在线时长确定所述路由器节点对应的资源数值;
所述服务节点根据预设转移时间将所述资源数值转入至所述路由器节点对应的账户;
所述服务节点生成所述路由器节点对应的交易资源信息,所述交易资源信息包括所述资源数值;
所述服务节点将所述交易资源信息写入至所述区块链中。
一种基于区块链的数据验证系统,所述系统包括:
节点检测模块,用于当区块链中的所述路由器节点处于在线状态时,所述区块链中的所述服务节点随机从所述区块链中选取预设第一数量的节点作为检测节点对所述路由器节点进行检测得到对应的检测结果;
节点时长确定模块,用于所述服务节点根据所述检测结果确定所述路由器节点的实际在线时长;
资源数值模块,用于所述服务节点获取所述路由器节点的节点参数,根据所述节点参数与所述实际在线时长确定所述路由器节点对应的资源数值;所述服务节点根据预设转移时间将所述资源数值转入至所述路由器节点对应的账户;
打包模块,用于所述服务节点生成所述路由器节点对应的交易资源信息,所述交易资源信息包括所述资源数值;所述服务节点将所述交易资源信息写入至所述区块链中。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述基于区块链的数据验证方法的步骤。此处基于区块链的数据验证方法的步骤可以是上述实施例中的基于区块链的数据验证方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述基于区块链的数据验证方法的步骤。此处基于区块链的数据验证方法的步骤可以是上述实施例中的基于区块链的数据验证方法中的步骤。
上述基于区块链的数据验证方法、系统、计算机可读存储介质和计算机设备,通过在区块链中增加多个检测节点对处于在线状态的路由器节点进行检测,确保路由器节点是正常在线的,确保路由器节点的实际在线时长是可信的,从而可以确保路由器节点可获得的资源数值也是准确的,确保了交易数据的可靠性。
一种基于区块链的数据验证方法,所述区块链中包括服务节点和公证节点,所述方法包括:
服务节点获取终端发送的与预设网络连接的网络连接请求,以使所述公证节点根据所述网络连接请求从所述终端对应的账户中扣除预设资源数值;
所述服务节点获取终端上传的与所述预设网络连接成功的连接起始时间;
所述服务节点获取所述终端发送的网络断开请求,根据所述连接起始时间和所述网络断开请求中携带的网络断开时间确定第一网络连接时长;
所述服务节点获取路由器节点提供的所述终端与所述预设网络对应的第二网络连接时长;
所述服务节点根据所述第一网络连接时长和所述第二网络连接时长确定所述终端的实际网络连接时长;
所述服务节点通知所述公证节点根据所述实际网络连接时长从所述预设资源数值中转移对应的实际资源数值至所述路由器节点对应的账户;
所述服务节点生成所述路由器节点对应的交易资源信息,所述交易资源信息包括所述实际资源数值;
所述服务节点将所述交易资源信息写入至所述区块链中。
一种基于区块链的数据验证系统,其特征在于,所述区块链中包括服务节点和公证节点,所述系统包括:
网络请求获取模块,服务节点获取终端发送的与预设网络连接的网络连接请求,以使所述公证节点根据所述网络连接请求从所述终端对应的账户中扣除预设资源数值;
连接时长模块,用于所述服务节点获取终端上传的与所述预设网络连接成功的连接起始时间;所述服务节点获取所述终端发送的网络断开请求,根据所述连接起始时间和所述网络断开请求中携带的网络断开时间确定第一网络连接时长;所述服务节点获取路由器节点提供的所述终端与所述预设网络对应的第二网络连接时长;所述服务节点根据所述第一网络连接时长和所述第二网络连接时长确定所述终端的实际网络连接时长;
资源数值转移模块,用于所述服务节点通知所述公证节点根据所述实际网络连接时长从所述预设资源数值中转移对应的实际资源数值至所述路由器节点对应的账户;
交易资源信息打包模块,用于所述服务节点生成所述路由器节点对应的交易资源信息,所述交易资源信息包括所述实际资源数值;所述服务节点将所述交易资源信息写入至所述区块链中。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述基于区块链的数据验证方法的步骤。此处基于区块链的数据验证方法的步骤可以是上述实施例中的基于区块链的数据验证方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述基于区块链的数据验证方法的步骤。此处基于区块链的数据验证方法的步骤可以是上述实施例中的基于区块链的数据验证方法中的步骤。
上述基于区块链的数据验证方法、系统、计算机可读存储介质和计算机设备,通过在区块链中增加公证节点,在服务节点获取到终端与预设网络连接的网络连接请求后,公证节点会从终端对应的账户中扣除预设资源数值,并获取到终端与预设网络连接成功后上传的连接起始时间。在终端与预设网络断开的网络断开请求后,服务节点会根据网络断开请求中携带的网络断开时间与终端上传的连接起始时间确定第一网络连接时长,同时服务节点可获取到路由器节点提供的第二网络连接时长,根据第一网络连接时长和第二网络连接时长确定终端与预设网络的实际网络连接时长,从而服务节点可通知公证节点触发智能合约,即公证节点可以从预设资源数值中转移终端实际所需要支付的实际资源数值至路由器节点对应的账户中,这种方式,通过在区块链中增加一个公证节点对交易行为进行一个仲裁,只有当确定了数据的可靠性才触发真正的交易行为,确保了交易数据的可靠性。
一种基于区块链的数据验证方法,所述区块链中包括服务节点和观察节点,所述方法包括:
服务节点获取终端上传的与预设网络连接的连接起始时间;
所述服务节点向观察节点发送通知消息,以使所述观察节点根据所述通知消息向所述终端发送随机挑战数据包,当根据所述终端对所述随机挑战数据包的响应判定所述终端验证失败时,确定所述终端对应的挑战失败时间;
所述服务节点接收所述观察节点返回的挑战失败时间,根据所述连接起始时间和所述挑战失败时间确定所述终端的第一网络连接时长;
所述服务节点生成所述终端对应的第一交易资源信息,所述第一交易资源信息包括根据所述第一网络连接时长确定的转入资源数值;
所述服务节点将所述第一交易资源信息写入至所述区块链中。
一种基于区块链的数据验证系统,其特征在于,所述区块链中包括服务节点和观察节点,所述系统包括:
起始时间获取模块,用于服务节点获取终端上传的与预设网络连接的连接起始时间;
终端挑战模块,用于所述服务节点向观察节点发送通知消息,以使所述观察节点根据所述通知消息向所述终端发送随机挑战数据包,当根据所述终端对所述随机挑战数据包的响应判定所述终端验证失败时,确定所述终端对应的挑战失败时间;
第一连接时长确定模块,用于所述服务节点接收所述观察节点返回的挑战失败时间,根据所述连接起始时间和所述挑战失败时间确定所述终端的第一网络连接时长;交易信息打包模块,用于所述服务节点生成所述终端对应的第一交易资源信息,所述第一交易资源信息包括根据所述第一网络连接时长确定的转入资源数值;所述服务节点将所述第一交易资源信息写入至所述区块链中。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述基于区块链的数据验证方法的步骤。此处基于区块链的数据验证方法的步骤可以是上述实施例中的基于区块链的数据验证方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述基于区块链的数据验证方法的步骤。此处基于区块链的数据验证方法的步骤可以是上述实施例中的基于区块链的数据验证方法中的步骤。
上述基于区块链的数据验证方法、系统、计算机可读存储介质和计算机设备,通过区块链中的服务节点获取到终端上传的连接起始时间,并指定区块链中的任意一个节点为观察节点对终端发起挑战,以确定终端当前是否是正常与预设网络进行连接的,若是终端挑战失败,则服务节点可以将终端挑战失败的时间作为终端与预设网络的连接终止时间,从而可以根据终端上传的连接起始时间与终端的挑战失败时间确定终端与预设网络的实际连接时长,这种方式,通过在区块链中增加一个观察节点对终端进行验证,确保终端了输入区块链的数据是可信的,保证了区块链中从外部输入的数据的可信度。
附图说明
图1为一个实施例中基于区块链的数据验证方法的应用环境图;
图2为一个实施例中基于区块链的数据验证方法的流程示意图;
图3A为一个实施例中基于区块链的数据验证方法的时序图;
图3B为一个实施例中基于区块链的数据验证方法还包括的步骤的流程示意图;
图4为另一个实施例中数据验证方法的流程示意图;
图5为又一个实施例中基于区块链的数据验证方法的流程示意图;
图6为另一个实施例中基于区块链的数据验证方法还包括的步骤的流程示意图;
图7为又一个实施例中基于区块链的数据验证方法的流程示意图;
图8为另一个实施例中基于区块链的数据验证方法的时序图;
图9为又一个实施例中基于区块链的数据验证方法的流程示意图;
图10为又一个实施例中基于区块链的数据验证方法还包括的步骤的流程示意图;
图11为又一个实施例中基于区块链的数据验证方法还包括的步骤的流程示意图;
图12为再一个实施例中基于区块链的数据验证方法的流程示意图;
图13为一个实施例中基于区块链的数据验证系统的结构框图;
图14为另一个实施例中基于区块链的数据验证系统的结构框图;
图15为又一个实施例中基于区块链的数据验证系统的结构框图;
图16为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中基于区块链的数据验证方法的应用环境图。参照图1,该基于区块链的数据验证方法应用于数据验证系统。数据验证系统用于确保由外部输入至区块链的数据是可信的,进而解决区块链上交易可信的问题。比如,通过区块链确定终端与预设网络的网络连接时长时,由于终端上传至区块链中的连接起始时间和连接终止时间是可以伪造的,导致终端上传的数据是不可信的,在这种情况下,则需要在区块链中增加一个观察节点对终端的数据进行验证,以保证根据终端的数据在区块链上发生的交易的可信度。该数据验证系统包括终端110和区块链120。终端110和区块链120通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。区块链120中包含有至少一个服务节点122和观察节点124,服务节点122通过网络与终端110连接,可获取到终端110上传的与预设网络连接的连接起始时间等数据,并将终端110上传的数据与处于同一区块链中的观察节点124进行同步。在区块链120中还可以包含有路由器节点126,用于分发预设网络供终端110进行连接。
请一并参阅图2,为本发明基于区块链的数据验证方法的一个实施例,本实施例主要以该方法应用于上述图1中的区块链120来举例说明。参照图2,区块链中包括服务节点和观察节点,该基于区块链的数据验证方法,包括如下实现步骤:
步骤202,服务节点获取终端上传的与预设网络连接的连接起始时间。
在区块链中包括有多个节点,其中至少包括有服务节点和观察节点。区块链中还可以包含有路由器节点,预设网络是指区块链中的路由器节点发出的预先设定或指定的网络。服务节点是指区块链中与终端保持联系的节点,可通过网络与终端进行数据传输。当区块链中的路由器节点分发出预设网络后,终端可以通过与预设网络进行连接实现上网操作。在区块链中构建了一套经济系统,可以设定在经济系统中流通的货币。货币可以是虚拟积分,虚拟货币等等。以区块链中的货币是积分为例,终端可以通过购买获得区块链中的积分,也可以从系统每日的发行量中获得。终端还可以通过连接区块链中指定的预设网络,通过连接该预设网络的时长获得一定数值的积分。也就是说,当终端与区块链中的预设网络连接成功后,终端不仅通过连接预设网络进行上网,还可以获得一定的积分。当终端与预设网络的连接时长越久,终端可获得的积分也越多,因此,需要确保终端与预设网络的连接时长是可信的,即需要确保终端上传至区块链中的服务节点的连接起始时间与连接终止时间是可信的。终端可通过终端上安装的预设应用连接该预设网络,若是终端上安装的预设应用被逆向,即预设应用被破解,该预设应用的代码文件被篡改,那么则可能导致终端可以对上传的数据进行修改,因此终端上传的数据是不可尽信的。
在区块链的框架上,通常具备两类节点,共识节点和普通节点,这两个节点的区别在于是否具备打包区块的功能,也就是俗称的矿工挖矿功能。在公链上,所有的节点通过算力比拼,比如POW共识(Proof ofWork,工作证明)来获取到打包权以得到相应的收益。在区块链中,货币是由系统内部产生,交易行为也是区块链上的交易,因此当一定数量的节点达到共识之后,就可以将交易数据打包进区块,即记账行为。在本实施例中,区块链上也存储有交易行为数据,但是交易分为两个部分,一是使用区块链之外的数据计算交易额,触发交易;二是区块链上的交易,并打包写入区块。但第一种情况下的交易行为,由于引入了外部数据来触发计算交易的行为,因为需要保证外部数据存储至区块链的时候是真实可信的,不然将会破坏区块链自身的性质。因此,在本实施例中,对于区块链中的节点进行多角色划分,除了传统的打包区块的矿工节点,还增加了第三方节点,即观察节点对终端上传的数据进行验证,以确保终端上传的数据的可靠性。预设网络可以是区块链中的路由器节点分发的无线网络,在本实施例中,可以认为路由器节点是不可控的,即区块链中的其他节点无法获取到路由器节点的日志记录,或无法在路由器上安装应用对数据进行验证。因此区块链无法通过路由器节点对终端的数据进行验证。
步骤204,服务节点向观察节点发送通知消息,以使观察节点根据通知消息向终端发送随机挑战数据包,当根据终端对随机挑战数据包的响应判定终端验证失败时,确定终端对应的挑战失败时间。
当终端成功连接上预设网络后,终端则会向区块链中的服务器节点发送与预设网络连接的连接起始时间。当服务节点获取到终端上传的与预设网络连接的连接起始时间后,服务节点可以将接收到的数据与区块链中的观察节点进行同步,即服务节点可以通知区块链中的观察节点可向终端发送随机挑战数据包。观察节点可以是区块链中的任意一个节点,由于在区块链中各个节点中存储的数据均是一致的,因此若是当前的观察节点发生宕机,可以随机从区块链中任意再指定一个节点作为观察节点。
随机挑战数据包是指发起挑战的时间随机,且发送的挑战数据包也是随机的一个数据包,用于观察节点对终端的状态进行检测。挑战的时间随机是指某个时间区间内,随机挑选一个时间发起挑战,比如在[30s,1min]的区间内,观察节点随机选择一个时间向终端发送随机挑战数据包。挑战数据包随机是指每次发送的数据包都是随机的,发生变化的。挑战数据包中的内容通常与挑战的时间与终端连接的网络数据有关,比如观察节点对终端发起挑战的时间seed,或是终端上一次挑战时与预设网络的连接时长。终端连接的网络数据可以包含SSID(Service Set Identifier,服务集标识)和BSSID(Basic Service Set,特殊的Ad-hoc LAN的应用),也可以包含终端连接预设网络时生成的一个key(密码)。
步骤206,服务节点接收观察节点返回的挑战失败时间,根据连接起始时间和挑战失败时间确定终端的第一网络连接时长。
当服务节点获取到终端上传的与预设网络连接的连接起始时间后,服务节点可以向观察节点发生通知消息,使得观察节点可以根据通知消息向终端发送随机挑战数据包。由于观察节点与服务节点处于同一个区块链中,观察节点也可以同步到服务节点的数据,即观察节点也可以在同步获取到终端上传的连接起始时间后,向终端发送随机挑战数据包。观察节点会随机向终端发送随机挑战数据包时,在未接收到终端主动发送的与预设网络断开连接的通知时,终端必须接受挑战,即终端必须根据观察节点发送的随机挑战数据包返回对应的响应数据。若是终端超时未响应,或者终端返回的响应数据是错误的,则可以判定终端响应失败。此时观察节点可以根据终端的响应失败或终端的无响应,观察节点可判定对终端验证失败,即可以将观察节点向终端发送挑战的时间作为终端的挑战失败时间。或者观察节点可以根据挑战数据包中设定的响应时间作为终端挑战失败时间,比如观察节点向终端发送挑战数据包的时间为12时02分03秒,在挑战数据包中设定的响应时间是5秒,则若是终端在5秒内未返回响应数据,则可以将12时02分08秒作为终端的挑战时间。若是终端在响应时间内返回了响应数据,但响应数据存在错误,可以将观察节点接收到终端的响应数据的时间作为终端的挑战时间,也可以统一将观察节点发送挑战数据包的时间作为终端的挑战时间,可以根据设定进行确定。
观察节点在确定了终端的挑战失败时间后,可以将挑战失败时间上传至服务节点,服务节点则可以将连接起始时间和挑战失败时间的时间差值作为终端的第一网络连接时长。比如终端上传的与预设网络连接的连接起始时间为11时11分11秒,终端的挑战时间为11分15分11秒,则可以将11分15分11秒与11时11分11秒之间的时间长4分0秒作为终端的第一网络连接时长。从而可以根据终端的第一网络连接时长确定终端可以获得的转入资源数值。转入资源数值是指,终端可以通过与预设网络进行连接以获取到对应资源,且终端可获取到的资源与预设网络的连接时长有关,当与预设网络的连接时间越长终端可获取到的转入资源数值也越高。即,当终端与预设网络连接成功后,若是观察观点对终端验证失败,即观察节点检测到终端未处于正常连接状态,那么终端与预设网络的连接时长则是根据终端上传的连接起始时间和观察节点确定的挑战失败时间所确定。
步骤208,服务节点生成终端对应的第一交易资源信息,第一交易资源信息包括根据第一网络连接时长确定的转入资源数值。
步骤210,服务节点将第一交易资源信息写入至区块链中。
第一交易资源信息是指,服务节点根据终端的第一网络连接时长所确定的终端可获得的第一资源数值对应的信息。在服务节点确定了终端对应的第一交易资源信息后,可以生成与终端对应的第一交易资源信息,第一交易资源信息可以包括有终端的第一连接时长,以及终端与预设网络连接了第一连接时长所对应的转入资源数值。服务节点还可以将生成的第一交易资源信息打包写入至区块链中,从而区块链中的全部节点中均可以将终端的第一交易资源信息进行同步存储。
如图3A所示的时序图,终端向服务节点发送对预设网络的网络连接请求,服务节点返回预设网络的连接密码至终端,终端在接收到连接密码后,可以成功连接上预设网络。同时,终端会上传与预设网络连接成功的连接起始时间至服务节点。服务节点可以向观察节点发送挑战通知,观察节点在接收到服务节点发送的通知后,可以向终端发送随机挑战数据包以对终端发起挑战。第一种情况,当终端未在预设时间内向观察节点返回与随机挑战数据包对应的响应数据时,即观察节点未在预设时间内接收到终端返回的对应的响应数据时,观察节点将判定终端挑战失败,并将获取到的终端挑战失败的时间发送至服务节点。从而服务节点则可以根据终端上传的连接起始时间和观察节点上传的挑战失败时间确定终端的第一网络连接时长。服务节点可以生成终端对应的第一交易资源信息,并将第一交易资源信息写入至区块链中。第二种情况,当终端在预设时间内向观察节点返回了与随机挑战数据包对应的响应数据时,即观察节点在预设时间内成功接收到终端返回的对应的响应数据时,观察节点将判定终端挑战成功,在此之后,观察节点将不断的向终端发送随机挑战数据包。假设终端一直挑战成功,也就是说终端一直与预设网络处于正常连接状态,则不存在终端挑战失败,也不存在有终端挑战失败的时间。终端可以一直与预设网络连接,直到终端主动与预设网络断开连接,则终端会向服务节点发送与预设网络断开连接的通知,在网络断开的通知中携带有终端的连接终止时间。服务节点在获取到终端上传的连接终止时间后,可以根据终端上传的连接起始时间与连接终止时间确定终端的第二网络连接时长。服务节点可以生成终端对应的第二交易资源信息,并将第二交易资源信息写入至区块链中。
在一个实施例中,如图3B所示,上述方法还包括:
步骤302,当终端验证成功,服务节点获取到终端断开连接预设网络的通知时,服务节点获取终端上传的连接终止时间,服务节点根据连接起始时间与连接终止时间确定终端的第二网络连接时长。
步骤304,服务节点生成终端对应的第二交易资源信息,第二交易资源信息包括根据第二网络连接时长确定的转入资源数值。
步骤306,服务节点将第二交易资源信息写入至区块链中。
当观察节点向终端发送随机挑战数据包,终端向观察节点返回与随机挑战数据包对应的响应数据时,则观察节点可以判定终端验证成功,即观察节点可判定终端处于正常连接状态。由于终端挑战成功,因此不存在挑战失败时间,则观察节点会继续随机向终端发送挑战数据包对终端进行验证。假设每一次终端都能挑战成功,即观察节点对终端验证成功,那么终端与预设网络的连接终止时间则会通过终端主动发送的数据进行确定。当服务节点获取到终端断开连接预设网络的通知时,服务节点可以获取到终端上传的连接终止时间,服务节点可以根据终端上传的连接起始时间与连接终止时间确定终端的第二网络连接时长。也就是说,当终端与预设网络连接成功后,若是观察观点对终端验证成功,即观察节点检测到终端与预设网络是处于正常连接状态,那么终端与预设网络的连接时长则是根据终端上传的连接起始时间和连接终止时间所确定。
服务节点可根据第二网络连接时长确定终端可获得的转入资源数值,从而生成终端对应的第二交易资源信息,并将第二交易资源信息写入至区块链中,第二交易资源信息可以包括有终端的第二连接时长,以及终端与预设网络连接了第二连接时长所对应的转入资源数值。
在一个实施例中,上述方法还包括:当服务节点确定终端与预设网络处于连接状态时,进入区块链中的观察节点向终端发送随机挑战数据包的步骤。
在观察节点向终端发起挑战,向终端发送随机挑战数据包,并接收到终端返回的对应的响应数据时,观察节点可判定为终端挑战成功,即观察节点对终端验证成功。此后,若是服务节点确定终端与预设网络处于连接状态,则观察节点均会随机向终端发起挑战,即观察节点会向终端发送随机挑战数据包。服务节点确定终端与预设网络处于连接状态可以是服务节点未获取到终端断开连接预设网络的通知,故服务节点确定终端与预设网络处于连接状态,也可以是服务节点未获取到观察节点发送的挑战失败通知,即观察节点对终端发起挑战时终端均挑战成功,因此服务节点确定终端是与预设网络处于连接状态的。
上述基于区块链的数据验证方法,通过区块链中的服务节点获取到终端上传的连接起始时间,并指定区块链中的任意一个节点为观察节点对终端发起挑战,以确定终端当前是否是正常与预设网络进行连接的,若是终端挑战失败,则服务节点可以将终端挑战失败的时间作为终端与预设网络的连接终止时间,从而可以根据终端上传的连接起始时间与终端的挑战失败时间确定终端与预设网络的实际连接时长,这种方式,通过在区块链中增加一个观察节点对终端进行验证,确保了终端输入区块链的数据是可信的,保证了区块链中从外部输入的数据的可信度。
如图4所示,在一个实施例中,提供了一种基于区块链的数据验证方法。本实施例主要以该方法应用于上述图1中的区块链120来举例说明。参照图4,该基于区块链的数据验证方法具体包括如下步骤:
步骤402,区块链中的服务节点获取终端上传的与预设网络连接的连接起始时间。
在本实施例中的区块链中构建了一套经济系统,可以设定在经济系统中流通的货币。货币可以是虚拟积分,虚拟货币等等。以区块链中的货币是积分为例,终端可以通过购买获得区块链中的积分,也可以从系统每日的发行量中获得。终端还可以通过连接区块链中指定的预设网络,通过连接该预设网络的时长获得一定数值的积分。当终端与预设网络的连接时长越久,终端可获得的积分也越多,因此,需要确保终端与预设网络的连接时长是可信的,即需要确保终端上传至区块链中的服务节点的连接起始时间与连接终止时间是可信的。终端可通过终端上安装的预设应用连接该预设网络,若是终端上安装的预设应用被逆向,即预设应用被破解,该预设应用的代码文件被篡改,那么则可能导致终端可以对上传的数据进行修改,因此终端上传的数据是不可尽信的。
在区块链的框架上,通常具备两类节点,共识节点和普通节点,这两个节点的区别在于是否具备打包区块的功能,也就是俗称的矿工挖矿功能。在公链上,所有的节点通过算力比拼,比如POW共识(Proof ofWork,工作证明)来获取到打包权以得到相应的收益。在区块链中,货币是由系统内部产生,交易行为也是区块链上的交易,因此当一定数量的节点达到共识之后,就可以将交易数据打包进区块,即记账行为。在本实施例中,区块链上也存储有交易行为数据,但是交易分为两个部分,一是使用区块链之外的数据计算交易额,触发交易;二是区块链上的交易,并打包写入区块。但第一种情况下的交易行为,由于引入了外部数据来触发计算交易的行为,因为需要保证外部数据存储至区块链的时候是真实可信的,不然将会破坏区块链自身的性质。因此,在本实施例中,对于区块链中的节点进行多角色划分,除了传统的打包区块的矿工节点,还增加了第三方节点,即观察节点对终端上传的数据进行验证,以确保终端上传的数据的可靠性。预设网络可以是区块链中的路由器节点分发的无线网络,在本实施例中,可以认为路由器节点是不可控的,即区块链中的其他节点无法获取到路由器节点的日志记录,或无法在路由器上安装应用对数据进行验证。因此区块链无法通过路由器节点对终端的数据进行验证。
步骤404,区块链中的观察节点向终端发送随机挑战数据包。
步骤406,终端是否向观察节点返回对应的响应数据,若否,则执行步骤408;若是,则执行步骤412。
步骤408,观察节点判定终端验证失败。
步骤410,观察节点确定终端的挑战失败时间并上传至服务节点终端的挑战失败时间。
为了对终端进行验证,在区块链中增加了观察节点,观察节点可以是区块链中指定的任意一个节点。观察节点的作用是,在终端与预设网络的连接期间,随机地向终端发送随机挑战数据包,以对终端发起挑战。也就是说,在终端未主动与预设网络断开连接时,观察节点均会随机向终端发起挑战。终端在接收到观察节点发送的随机挑战数据包后,终端需要返回对应的响应数据。若是终端超时会返回对应的响应数据,或是终端返回的响应数据并不是随机挑战数据包中规定的数据,则认为终端挑战失败,观察节点则可判定终端验证失败,即终端已经预设网络断开连接。因此观察节点可以将终端的挑战失败时间上传至服务节点,服务节点可将终端的挑战时间作为终端与预设网络的连接终止时间。
步骤412,观察节点判定终端验证成功。
步骤414,服务节点是否接收到终端断开连接预设网络的通知,若是,则执行步骤416;若否,则执行步骤404。
步骤416,服务节点获取到终端上传的连接终止时间。
若是终端成功根据接收到的随机挑战数据包向观察节点返回对应的响应数据,则观察节点判定终端验证成功。此时,服务节点会判断是否接收到终端断开连接预设网络的通知,若是接收到了,则服务节点确定终端与预设网络断开连接。服务节点可以获取到终端上传的与预设网络的连接终止时间。若是服务节点未接收到终端与预设网络断开连接的通知,则服务节点确定终端与预设网络处于连接状态。观察节点则会在终端与预设网络的连接期间向终端发送随机挑战数据包,不断的向终端发起挑战以对终端进行验证。
步骤418,服务节点确定终端的连接时长,并确定终端的转入资源数值。
步骤420,服务节点将交易信息打包至区块链中。
终端与预设网络的连接时长的确定有两种情况。情况一,在终端与预设网络的连接过程中,当观察节点对终端进行挑战,终端挑战失败时,观察节点可以将终端挑战失败的时间上传至服务节点,服务节点则可以根据终端上传的连接起始时间与观察节点上传的挑战失败时间确定终端与预设网络的连接时长。情况二,当观察节点对终端进行挑战,终端挑战成功时,服务节点可以获取到终端上传的连接终止时间,根据终端上传的连接起始时间与连接终止时间确定终端与预设网络的连接时长。
通过预设网络的连接时长可以确定终端对应的转入资源数值,即可以确定终端与预设网络连接后可以获得的积分数值。在根据终端与预设网络的连接时长计算终端可获得的积分数值时,可以按照一定的比例公式进行计算,比如计算公式可以是,本次连接预设网络可获得的积分=【本次连接时长/(本次全部的终端与预设网络的连接总时长+时长加权)】*当日可分配的积分。在通过比例公式进行积分计算时,为了保证每天的积分分配是收敛的,即为了保证后续的时间里终端通过与预设网络的连接时长获得积分时,获得的积分不会过少,可以根据当天全部的终端与预设网络的连接总时长对时长加权进行调整,从而可以按照实时比例将积分进行分配。服务节点可以根据终端与预设网络的连接时长、终端可获得的转入资源数值生成对应的交易资源信息,并将该交易资源信息打包存储至区块链的区块中,区块链中的各个节点即可同步保存该交易资源信息。通过这种在区块链中增加一个观察节点对终端进行验证的方式,确保了终端输入区块链的数据是可信的,保证了区块链中从外部输入的数据的可信度。
请一并参阅图5,为本发明基于区块链的数据验证方法的一个实施例,本实施例主要以该方法应用于上述图1中的区块链120来举例说明。参照图5,区块链中包括服务节点和公证节点,该基于区块链的数据验证方法,包括如下实现步骤:
步骤502,服务节点获取终端发送的与预设网络连接的网络连接请求,以使公证节点根据网络连接请求从终端对应的账户中扣除预设资源数值。
步骤504,服务节点获取终端上传的与预设网络连接成功的连接起始时间。
区块链中包括有多个节点,其中至少包括有服务节点和公证节点。预设网络是指区块链中的路由器节点发出的预先设定或指定的网络。终端上安装预设预设应用,终端可以通过预设应用与预设网络进行连接。当终端成功连接上预设网络后,终端则会向区块链中的服务器节点发送与预设网络连接的网络连接请求。网络连接请求中包含有终端标识以及账户标识,终端标识是指终端这个设备的设备标识,终端标识可以是mac地址(MediaAccess Control或者Medium Access Control,媒体访问控制,或称为物理地址),账户标识是指终端通过预设应用与预设网络进行连接时所使用的账户对应的标识。终端标识与mac地址都是唯一的,即一个终端对应一个终端标识,一个账户对应一个账户标识。服务节点是指区块链中与终端保持联系的节点,可通过网络与终端进行数据传输。在终端网络连接请求至服务节点后,服务节点可将预设网络的连接密码发送至终端,终端即可连接上预设网络。同时,服务节点可以将网络连接请求同步至区块链中的公证节点,公证节点则可以根据网络连接请求从网络连接请求中携带的账户标识所对应的账户中扣除预设的资源数值。当公证节点扣除了预设资源数值后,才认为终端是真正的与预设网络连接成功,因此终端会将与预设网络连接成功的连接起始时间发送至服务节点。预设资源数值是指在终端连接上预设网络时,公证节点会预先从终端账户中扣除的资源数值,此数值可以是预先统一设置的数值,也可以由终端自行选择或输入的随意数值。公证节点可以是区块链中的任意一个节点,由于在区块链中各个节点中存储的数据均是一致的,因此若是当前的公证节点发生宕机,可以随机从区块链中任意再指定一个节点作为公证节点。公证节点是触发终端发生交易的节点。比如,当需要从终端中扣除相应资源数值时,需要公证节点确定该交易可以发生,终端账户中的资源数值才会被扣除。
当终端获取到预设网络的账户和密码进行连接时,公证节点会从终端的账户中进行资源扣除,扣除成功后,终端才能够真正的连接上预设网络,从而终端才可以通过与预设网络连接进行上网等操作。因此,若是终端的账户上没有余额,或者余额低于预设资源数值,均会导致公证节点扣除预设资源数值的操作失败,那么终端也无法真正的连接上预设网络。
步骤506,服务节点获取终端发送的网络断开请求,根据连接起始时间和网络断开请求中携带的网络断开时间确定第一网络连接时长。
步骤508,服务节点获取路由器节点提供的终端与预设网络对应的第二网络连接时长。
步骤510,服务节点根据第一网络连接时长和第二网络连接时长确定终端的实际网络连接时长。
当终端断开与预设网络的连接时,终端向区块链中的服务节点发送网络断开请求,在网络断开请求中包含有终端与预设网络断开连接的连接终止时间。服务节点可以根据终端上传的连接起始时间,和网络断开请求中包含的连接终止时间确定第一网络连接时长,即终端与预设网络的连接时长。同时,服务节点可以获取到路由器节点的日志记录,在路由器节点的日志中记录有终端与预设网络的连接起始时间和终止时间,因此服务节点可以获取到路由器节点提供的终端与预设网络对应的第二网络连接时长。第一网络连接时长根据终端上传的数据确定的终端与预设网络的连接时长,第二网络连接时长是根据路由器节点记录的数据确定的终端与预设网络的连接时长。
在一个实施例中,服务节点根据第一网络连接时长和第二网络连接时长确定实际网络连接时长,包括:当第一网络连接时长和第二网络连接时长的时长差距超过预设阈值时,将第二网络连接时长作为实际网络连接时长;否则,将第一网络连接时长和第二网络连接时长中时长大的作为实际网络连接时长。
当服务节点获取到第一网络连接时长与第二网络连接时长后,服务节点需要根据路由器节点提供的第二网络连接时长对终端上传的第一网络连接时长进行验证。可以设定一个预设阈值,当第一网络连接时长与第二网络连接时长的差值大于预设阈值时,说明终端上传的第一网络连接时长与路由器节点记录的第二网络连接时长相差较大,则终端处于不可信的状态。因此,当第一网络连接时长与第二网络连接时长的差值大于预设阈值时,可以将路由器节点提供的第二网络连接时长作为终端与预设网络的实际网络连接时长,在计算终端需要支付的资源数值时,也是根据第二网络连接时长进行相应的计算。当第一网络连接时长与第二网络连接时长的差值小于预设阈值时,说明终端上传的数据是可信的,此时可以将两个连接时长中数值较大的作为终端与预设网络的实际网络连接时长。当然,服务节点也可以将两个连接时长中数值较小的作为终端与预设网络的实际网络连接时长,具体可根据设定而定。
步骤512,服务节点通知公证节点根据实际网络连接时长从预设资源数值中转移对应的实际资源数值至路由器节点对应的账户。
当服务节点确定了终端与预设网络的实际网络连接时长后,服务节点可计算出终端所需要支付的实际资源数值,服务节点可以发送通知至公证节点。公证节点在接收到服务节点发送的通知后,可以从终端预支付的预设资源数值中转移终端实际所需要支付的实际资源数值至路由器节点对应的账户。
在一个实施例中,上述方法还包括:当实际资源数值小于预设资源数值时,公证节点将实际资源数值与预设资源数值的差额数值转回至终端对应的账户。
当终端实际所需要支付的实际资源数值小于终端预支付的预设资源数值时,公证节点在将实际资源数值至路由器节点对应的账户后,会将实际资源数值与预设资源数值的差额数值转回至终端对应的账户。比如,终端预支付的预设资源数值为X1,终端实际需要支付的实际资源数值为X2,且X1>X2,也就是说,终端预支付的预设资源数值在扣除了实际资源数值后是存在剩余的,则公证节点会将实际资源数值与预设资源数值的差额数值转回至终端对应的账户。
在一个实施例中,服务节点通知公证节点根据实际网络连接时长从预设资源数值中转移对应的实际资源数值至路由器节点对应的账户,包括:服务节点向公证节点发送合约通知,合约通知包括实际资源数值,合约通知用于公证节点根据合约通知触发智能合约,根据触发智能合约的时间对实际资源数值进行验证,当验证通过时,从预设资源数值中转移对应的实际资源数值至路由器节点对应的账户。
在服务节点确定了终端的实际网络连接时长后,服务节点会向公证节点发送合约通知,公证节点根据服务节点发送的合约通知即可触发智能合约。在合约通知中可以包括有终端实际所需要支付的实际资源数值,公证节点可以根据接收到合约通知的时间对实际资源数值进行验证,当验证通过时,公证节点即可从预设资源数值中转移对应的实际资源数值至路由器节点对应的账户。若是验证失败,公证节点则不会将实际资源数值转移至路由器节点对应的账户。
在本实施例中,即使路由器节点与终端任意一方的数据存在造假的情况,但公证节点是可以进行判断的,因为服务节点在发送合约通知至公证节点时有一个时间戳,而任何一方存在造假的时间都不可能晚于合约通知的时间。也就是说,当终端主动断开与预设网络的连接时,或者终端与预设网络的连接时长达到预设网络连接时长时导致终端与预设网络断开连接时,都会导致服务节点向公证节点发送合约通知,即终端与预设网络断开连接就会触发合约。而合约的触发时间是区块链记录的,是无法被篡改的。如果公证节点检测到终端与预设网络的断开时间晚于合约通知的时间,则可以判定终端的连接数据存在问题,那么公证节点将不会触发智能合约的执行,即公证节点不会将预设资源数值转移至路由器节点。公证节点与服务节点均是区块链中的节点,因此公证节点可以获取到服务节点中保存的区块链数据,即公证节点可以获取到终端与预设网络的连接起始时间和连接终止时间,以及服务节点获取到的路由器节点记录的终端的连接起始时间和连接终止时间。从而公证节点可以进一步根据合约通知对终端的连接数据进行验证。
步骤514,服务节点生成路由器节点对应的交易资源信息,交易资源信息包括实际资源数值。
步骤516,服务节点将交易资源信息写入至区块链中。
交易资源信息是指,服务节点根据终端的实际网络连接时长所确定的终端所需要支付的实际资源数值对应的信息。在服务节点确定了终端对应的交易资源信息后,可以生成与终端对应的交易资源信息,交易资源信息可以包括有终端的实际网络连接时长,以及终端与预设网络连接了该实际网络连接时长所需要支付的实际资源数值。服务节点还可以将生成的交易资源信息打包写入至区块链中,从而区块链中的全部节点中均可以将终端的交易资源信息进行同步存储。
上述基于区块链的数据验证方法中,通过在区块链中增加公证节点,在服务节点获取到终端与预设网络连接的网络连接请求后,公证节点会从终端对应的账户中扣除预设资源数值,并获取到终端与预设网络连接成功后上传的连接起始时间。在终端与预设网络断开的网络断开请求后,服务节点会根据网络断开请求中携带的网络断开时间与终端上传的连接起始时间确定第一网络连接时长,同时服务节点可获取到路由器节点提供的第二网络连接时长,根据第一网络连接时长和第二网络连接时长确定终端与预设网络的实际网络连接时长,从而服务节点可通知公证节点触发智能合约,即公证节点可以从预设资源数值中转移终端实际所需要支付的实际资源数值至路由器节点对应的账户中,这种方式,通过在区块链中增加一个公证节点对交易行为进行一个仲裁,只有当确定了数据的可靠性才触发真正的交易行为,确保了交易数据的可靠性。
在一个实施例中,如图6所示,上述方法还包括:
步骤602,服务节点根据预设资源数值确定终端对应的预设网络连接时长。
步骤604,当在预设网络连接时长到达,且服务节点未获取到终端发送的网络断开请求时,服务节点通知公证节点将预设资源数值转移至路由器节点对应的账户。
步骤606,服务节点将终端与预设网络断开连接。
当区块链中的服务节点获取到终端与预设网络的网络连接请求后,公证节点会从终端对应的账户中扣除预设资源数值。从终端对应的账户中扣除了预设资源数值后,可计算出预设资源数值所对应的预设网络连接时长。预设网络连接时长代表了终端在预支付了预设资源数值后可以与预设网络的连接时长,当终端与预设网络的连接时长达到了预设网络连接时长时,终端若是未主动与预设网络断开连接,即服务节点未获取到终端发送的与预设网络的网络断开请求时,服务节点会通知公证节点将终端预支付的预设资源数值转移至路由器节点所对应的账户,同时服务节点会强制将终端与预设网络断开连接。
服务节点在确定终端与预设网络的连接时长是否达到预设网络连接时长时,服务节点可以通过获取路由器节点的日志记录获取到终端与预设网络的连接起始时间,也可以获取到终端上传的与预设网络连接成功的连接起始时间。服务节点可以在确定了终端与预设网络的预设网络连接时长后,为终端设定一个“定时器”,当定时器倒计时结束后,服务节点还未获取到终端发送的与预设网络的网络断开请求,则服务节点可以将终端与预设网络断开连接。比如终端预支付了预设资源数值后所对应的预设网络连接时长为30分钟,则服务节点可以为终端设置一个30分钟的定时器,当达到30分钟还未获取到终端发送的与预设网络的网络断开请求时,服务节点可以将终端与预设网络断开连接。或者服务节点可以随时对终端的连接时长进行检测,当检测到终端与预设网络的连接时长达到预设网络连接时长时,服务节点则可以将终端与预设网络断开连接,并通知公证节点触发智能合约,将终端预支付的预设资源数值转移至路由器节点对应的账户中。
请一并参阅图7,为本发明基于区块链的数据验证方法的一个实施例,本实施例主要以该方法应用于上述图1中的区块链120来举例说明。参照图7,该基于区块链的数据验证方法,包括如下实现步骤:
步骤702,服务节点获取终端连接预设网络连接时发送的网络连接请求。
步骤704,区块链中的公证节点根据网络连接请求从终端对应的账户中扣除预设资源数值。
步骤706,服务节点获取终端上传的与预设网络连接成功的连接起始时间。
在本实施例中的区块链中构建了一套经济系统,可以设定在经济系统中流通的货币。货币可以是虚拟积分,虚拟货币等等。以区块链中的货币是积分为例,终端可以通过多种方式获得区块链中的积分,也可以花费积分连接区块链中的预设网络。在确定终端所需花费的积分时,是根据终端与预设网络的连接时长进行确定的。当终端与预设网络的连接时长越久,终端需要花费的积分也越多,因此,需要确保终端与预设网络的连接时长是可信的,即需要确保终端上传至区块链中的服务节点的连接起始时间与连接终止时间是可信的。终端可通过终端上安装的预设应用连接该预设网络,若是终端上安装的预设应用被逆向,即预设应用被破解,该预设应用的代码文件被篡改,那么则可能导致终端可以对上传的数据进行修改,因此终端上传的数据是不可尽信的。
在这种场景下,如果只是依靠终端上传的连接起始时间与连接终止时间确定终端与预设网络的连接时长,可能会出现数据造假的问题。终端很有可能通过上报更短的连接时长,以能够支付更少的积分。在区块链的框架上,通常具备两类节点,共识节点和普通节点,这两个节点的区别在于是否具备打包区块的功能,也就是俗称的矿工挖矿功能。在公链上,所有的节点通过算力比拼,比如POW共识(Proof ofWork,工作证明)来获取到打包权以得到相应的收益。在区块链中,货币是由系统内部产生,交易行为也是区块链上的交易,因此当一定数量的节点达到共识之后,就可以将交易数据打包进区块,即记账行为。在本实施例中,区块链上也存储有交易行为数据,但是交易分为两个部分,一是使用区块链之外的数据计算交易额,触发交易;二是区块链上的交易,并打包写入区块。但第一种情况下的交易行为,由于引入了外部数据来触发计算交易的行为,因为需要保证外部数据存储至区块链的时候是真实可信的,不然将会破坏区块链自身的性质。因此,在本实施例中,对于区块链中的节点进行多角色划分,除了传统的打包区块的矿工节点,还增加了第三方节点,即公证节点对交易的执行进行仲裁,以确保交易的正确无误。预设网络可以是区块链中的路由器节点分发的无线网络,在本实施例中,可以认为路由器节点是可控的,即区块链中的其他节点可以获取到路由器节点的日志记录,或可以在路由器上安装应用对数据进行验证。且,由于预设网络是路由器节点分发的,因此终端连接预设网络所花费的资源数值将会转入至路由器节点对应的账户中。
终端可通过安装的预设应用发起对预设网络的网络连接请求,当服务节点获取到终端的网络连接请求后,服务节点可将预设网络的连接密码发送至终端,终端即可连接上预设网络。同时,服务节点可以将网络连接请求同步至区块链中的公证节点,公证节点则可以根据网络连接请求从网络连接请求中携带的账户标识所对应的账户中扣除预设的资源数值。当公证节点扣除了预设资源数值后,才认为终端是真正的与预设网络连接成功,因此终端会将与预设网络连接成功的连接起始时间发送至服务节点。在网络连接请求中包含有终端标识以及账户标识,终端标识可以用于从路由器节点获取到终端对应的连接数据。路由器节点分发的预设网络可以被多个终端连接,因此路由器节点的日志中可以记录有多个终端的连接数据,因此可根据终端标识从路由器节点的日志记录中查找到各个终端标识对应的连接数据,从而可以确定路由器节点记录的各个终端与预设网络的连接时长。
步骤708,服务节点根据预设资源数值确定终端对应的预设网络连接时长。
步骤710,检测终端与预设网络的连接时长是否达到预设网络连接时长,若是,则执行步骤712;若否,则执行步骤716。
步骤712,服务节点通知公证节点触发智能合约。
步骤714,公证节点将预设资源数值转移至路由器节点对应的账户。
公证节点根据网络连接请求从终端对应的账户中扣除预设资源数值后,服务节点可以确定终端在预支付了预设资源数值后可以与预设网络的连接时长,即为终端与预设网络的预设网络连接时长。也就是说,当终端预支付了预设资源数值后,终端可以与预设网络连接对应的预设网络连接时长。服务节点会检测终端与预设网络的连接时长是否达到了预设网络连接时长,若是达到了,服务节点会通知公证节点触发智能合约,公证节点根据服务节点发送的合约通知即可触发智能合约。在合约通知中可以包括有终端实际所需要支付的实际资源数值,公证节点可以根据接收到合约通知的时间对实际资源数值进行验证,当验证通过时,公证节点即可从预设资源数值中转移对应的实际资源数值至路由器节点对应的账户。若是验证失败,公证节点则不会将实际资源数值转移至路由器节点对应的账户。
步骤716,服务是否获取到终端发送的网络断开请求,若是,则执行步骤718;若否,则执行步骤710。
步骤718,服务节点获取终端发送的网络断开请求,确定第一网络连接时长。
步骤720,服务节点获取路由器节点的日志记录,确定第二网络连接时长。
步骤722,服务节点根据第一网络连接时长和第二网络连接时长确定终端的实际网络连接时长。
步骤724,服务节点通知公证节点触发智能合约。
步骤726,公证节点从预设资源数值中转移对应的实际资源数值至路由器节点对应的账户,并将差额数值转回至终端对应的账户。
当终端预支付了预设资源数值后,终端可以与预设网络连接对应的预设网络连接时长。服务节点会检测终端与预设网络的连接时长是否达到了预设网络连接时长,若是未达到,说明终端仍然可以继续与预设网络进行连接。在终端与预设网络连接期间,终端可以随时主动与预设网络断开连接。当终端与预设网络断开连接时,终端向区块链中的服务节点发送网络断开请求,在网络断开请求中包含有终端与预设网络断开连接的连接终止时间。服务节点可以根据终端上传的连接起始时间,和网络断开请求中包含的连接终止时间确定第一网络连接时长,即终端与预设网络的连接时长。同时,服务节点可以获取到路由器节点的日志记录,在路由器节点的日志中记录有终端与预设网络的连接起始时间和终止时间,因此服务节点可以获取到路由器节点提供的终端与预设网络对应的第二网络连接时长。第一网络连接时长根据终端上传的数据确定的终端与预设网络的连接时长,第二网络连接时长是根据路由器节点记录的数据确定的终端与预设网络的连接时长。
如图8所示的时序图,终端可通过预设应用向区块链中的服务节点发送对预设网络的网络连接请求,服务节点可将预设网络的连接密码发送至终端,终端从而可以连接预设网络。公证节点则可以从终端对应的账户中扣除预设资源数值。预设资源数值可以是公证节点预定义的数值,也可以是终端自行选择输入的数值,比如终端账户中的余额为30个积分,终端可以选择扣除30个积分,也可以选择扣除25个积分。若是终端中积分余额为0,公证节点将无法从终端的账户中进行资源数值的扣除,即终端无法进行预支付操作,则会导致终端无法成功连接上预设网络。当公证节点成功从终端对应的账户中扣除了预设资源数值后,终端则能够成功连接上预设网络,终端则会将与预设网络成功连接的连接起始时间发送至服务节点。本实施例中的终端与预设网络的连接起始时间,可以认为是公证节点在扣除了预设资源数值后,终端真正与预设网络连接成功的时间,而不是终端向服务节点发送网络连接请求的时间。
服务节点可以根据终端预支付的预设资源数值确定终端可以与预设网络而定预设网络连接时长。若是终端与预设网络的连接时长达到了预设网络连接时长,且终端也未主动断开与预设网络的连接时,服务节点会通知公证节点触发智能合约,将预设资源数值转移至路由器节点对应的账户,同时服务节点还会将终端与预设网络断开连接。若是终端与预设网络的连接时长未达到预设网络连接时长,服务节点获取到了终端发送的与预设网络的网络断开通知,服务节点可根据终端上传的连接终止时间与连接起始时间,确定终端统计的与预设网络的第一连接时长。同时,服务节点可以从路由器节点的日志记录,在路由器节点的日志中记录有终端与预设网络的连接起始时间和终止时间。因此可根据路由器节点的记录确定终端与预设网络的第二连接时长。
当服务节点获取到第一网络连接时长与第二网络连接时长后,服务节点需要根据路由器节点提供的第二网络连接时长对终端上传的第一网络连接时长进行验证。可以设定一个预设阈值,当第一网络连接时长与第二网络连接时长的差值大于预设阈值时,说明终端上传的第一网络连接时长与路由器节点记录的第二网络连接时长相差较大,则终端处于不可信的状态。因此,当第一网络连接时长与第二网络连接时长的差值大于预设阈值时,可以将路由器节点提供的第二网络连接时长作为终端与预设网络的实际网络连接时长,在计算终端需要支付的资源数值时,也是根据第二网络连接时长进行相应的计算。当第一网络连接时长与第二网络连接时长的差值小于预设阈值时,说明终端上传的数据是可信的,此时可以将两个连接时长中数值较大的作为终端与预设网络的实际网络连接时长。当然,服务节点也可以将两个连接时长中数值较小的作为终端与预设网络的实际网络连接时长,具体可根据设定而定。
当服务节点确定了终端与预设网络的实际网络连接时长后,服务节点可计算出终端所需要支付的实际资源数值,服务节点可以发送通知至公证节点。公证节点在接收到服务节点发送的通知后,可以从终端预支付的预设资源数值中转移终端实际所需要支付的实际资源数值至路由器节点对应的账户,同时公证节点会将实际资源数值与预设资源数值的差额数值转回至终端对应的账户。在服务节点确定了终端对应的交易资源信息后,可以生成与终端对应的交易资源信息,交易资源信息可以包括有终端的实际网络连接时长,以及终端与预设网络连接了该实际网络连接时长所需要支付的实际资源数值。服务节点还可以将生成的交易资源信息打包写入至区块链中,从而区块链中的全部节点中均可以将终端的交易资源信息进行同步存储。
通过在区块链中增加公证节点,在服务节点获取到终端与预设网络连接的网络连接请求后,公证节点会从终端对应的账户中扣除预设资源数值,并获取到终端与预设网络连接成功后上传的连接起始时间。在终端与预设网络断开的网络断开请求后,服务节点会根据网络断开请求中携带的网络断开时间与终端上传的连接起始时间确定第一网络连接时长,同时服务节点可获取到路由器节点提供的第二网络连接时长,根据第一网络连接时长和第二网络连接时长确定终端与预设网络的实际网络连接时长,从而服务节点可通知公证节点触发智能合约,即公证节点可以从预设资源数值中转移终端实际所需要支付的实际资源数值至路由器节点对应的账户中,这种方式,通过在区块链中增加一个公证节点对交易行为进行一个仲裁,只有当确定了数据的可靠性才触发真正的交易行为,确保了交易数据的可靠性。
请一并参阅图9,为本发明基于区块链的数据验证方法的一个实施例,本实施例主要以该方法应用于上述图1中的区块链120来举例说明。参照图9,区块链中包括服务节点、路由器节点和检测节点,该基于区块链的数据验证方法,包括如下实现步骤:
步骤902,当区块链中的路由器节点处于在线状态时,区块链中的服务节点随机从区块链中选取预设第一数量的节点作为检测节点对路由器节点进行检测得到对应的检测结果。
在区块链中包括有多个节点,其中至少包括有服务节点、路由器节点和检测节点。路由器节点是指可以分发无线网络的节点,路由器节点处于在线状态是指,路由器节点的路由器成功登录,可以开启无线网络供其他设备连接的状态。可以理解的是,每个路由器节点每天在线的时长最多为24小时。区块链中的路由器节点可通过在线状态的时间获取到相应的资源数值,路由器节点在线的时间越长,可获得的资源数值也越多。因此,区块链需要对路由器在线的时长进行验证,确认路由器处于在线状态的时长是可信的。在区块链的框架上,通常具备两类节点,共识节点和普通节点,这两个节点的区别在于是否具备打包区块的功能,也就是俗称的矿工挖矿功能。在公链上,所有的节点通过算力比拼,比如POW共识(Proof ofWork,工作证明)来获取到打包权以得到相应的收益。在区块链中,货币是由系统内部产生,交易行为也是区块链上的交易,因此当一定数量的节点达到共识之后,就可以将交易数据打包进区块,即记账行为。在本实施例中,区块链上也存储有交易行为数据,但是交易分为两个部分,一是使用区块链之外的数据计算交易额,触发交易;二是区块链上的交易,并打包写入区块。但第一种情况下的交易行为,由于引入了外部数据来触发计算交易的行为,因为需要保证外部数据存储至区块链的时候是真实可信的,不然将会破坏区块链自身的性质。因此,在本实施例中,对于区块链中的节点进行多角色划分,除了传统的打包区块的矿工节点,还增加了第三方节点,即增加检测节点对路由器节点进行检测。当路由器节点处于在线状态时,区块链中的服务节点可以随机从区块链中选取第一数量的节点,将选取出的节点作为检测节点对路由器节点进行检测。第一数量是预先设置的数量,可根据实际项目需求对第一数量进行设定。
在一个实施例中,区块链中的服务节点随机从区块链中选取预设第一数量的节点作为检测节点对路由器节点进行检测得到对应的检测结果,包括:各个检测节点向路由器节点发送随机挑战数据包,根据路由器节点对应于各个检测节点的挑战响应得到各个检测节点对应的初始检测结果;根据相同的初始检测结果的比例确定路由器节点对应的检测结果。
通过检测节点对路由器节点进行检测时,检测节点可以向路由器节点发送随机挑战数据包,路由器节点必须在规定的时间内返回对应的响应数据,若是路由器节点返回的响应数据与挑战数据包不符,或者路由器节点超时未响应,则检测节点判定路由器节点挑战失败,则检测节点对路由器节点的检测结果为检测异常。反之,若是路由器节点在规定时间内向检测节点了返回了对应的响应数据,则判定为路由器节点挑战成功,检测节点对路由器节点的检测结果为检测正常。检测节点在对路由器节点进行检测时,检测内容可以包括有硬件信息检测,是否在线的心跳检测等等。硬件信息检测包括,路由器节点对应的路由器的各个硬件参数。在线的心跳检测是指,检测节点发送一个类似于Ping-Pong包的挑战数据包至路由器节点,路由器节点为了证明自己是在线的,比如返回对应的响应数据至检测节点,检测节点才会判定路由器节点是处于正常在线状态的。
根据路由器节点对应于每个检测节点的挑战响应可以得到每个检测节点对路由器节点的初始检测结果,各个检测节点的初始检测结果可能是一致的,也可能存在差异。服务节点选取的检测节点的数量为第一数量,也就是说,当第一数量大于1时,则会存在有检测节点对路由器节点的初始检测结果不一致的问题,那么可以按照相同的初始结果的比例确定检测结果。比如第一数量为3,3个检测节点分别为A1,A2,A3,若是A1,A2对路由器节点的检测结果为检测正常,但A3的检测结果为检测异常,则可以按照“少数服从多数”的原则,即,可以将相同的初始检测结果比例更高的初始检测结果作为路由器节点的最终检测结果。那么在上述例子中,则是将初始检测结果为检测正常作为路由器节点的最终检测结果。
步骤904,服务节点根据检测结果确定路由器节点的实际在线时长。
在一个实施例中,服务节点根据检测结果确定路由器节点的实际在线时长,包括:当路由器节点对应的检测结果为路由器节点处于异常在线状态时,将检测节点上传的异常时间作为路由器节点的在线结束时间;当路由器节点对应的检测结果为路由器节点处于正常在线状态时,获取路由器节点处于下线状态时上传的时间作为路由器节点的在线结束时间;服务节点根据在线起始时间与在线结束时间确定路由器节点的实际在线时长。
当第一数量的检测节点对路由器节点的检测结果为检测异常时,即检测到路由器处于异常在线状态时,检测节点会将检测到路由器节点处于异常在线状态的异常时间发送至服务节点,服务节点可以将异常时间作为路由器节点的在线结束时间,服务节点则可以根据路由器节点的处于在线状态所对应的在线开始时间,与路由器节点的在线结束时间计算出路由器节点的实际在线时长。当第一数量的检测节点对路由器节点的检测结果为检测正常时,即检测到路由器处于正常在线状态时,服务节点可获取到路由器节点处于下线状态时上传的时间作为路由器节点的在线结束时间,从而可以确定可以路由器节点的实际在线时长。在路由器处于在线状态期间,检测节点均会不断的随机向路由器节点发送挑战数据包对路由器节点进行检测,以确定路由器状态是属于正常在线状态,从而确保路由器节点的实际在线时长是可信的。
步骤906,服务节点获取路由器节点的节点参数,根据节点参数与实际在线时长确定路由器节点对应的资源数值。
路由器节点的节点参数是指路由器节点的性能参数等。在根据路由器节点的实际在线时长计算路由器节点可获得的资源数值时,还可以加入节点参数的考虑,即可以根据节点参数与实际在线时长确定路由器节点可获得的资源数值。
在一个实施例中,节点参数包括路由器节点的磁盘空间以及上行带宽。根据节点参数与实际在线时长确定路由器节点对应的资源数值,包括:根据节点参数与实际在线时长确定路由器节点的贡献度;根据贡献度确定路由器节点获得的资源数值,贡献度是对磁盘空间数值、上行带宽数值以及实际在线时长的加权求和。
节点参数可以包括有路由器节点的磁盘空间以及上行带宽。磁盘空间是指路由器节点的空闲存储内存,上行带宽是指路由器的上传数据的速率。在获取到路由器节点的节点参数后,可以根据路由器节点的节点参数与路由器节点的实际在线时长计算路由器节点的贡献度。贡献度是对磁盘空间数值、上行带宽数值以及实际在线时长的加权求和计算得到的。具体地,贡献度=磁盘空间数值*磁盘权重+上行带宽数值*带宽权重+实际在线时长*时长权重。磁盘权重、带宽权重以及时长权重均是预先定义的值,可根据实际情况进行调整。在计算出贡献度后,可根据贡献度确定路由器节点获得的资源数值。以区块链中的资源为积分为例,可以获取到区块链中每日发行的积分S,路由器节点的贡献度为X1,那么路由器节点可获取到的积分为X1*S。
步骤908,服务节点根据预设转移时间将资源数值转入至路由器节点对应的账户。
步骤910,服务节点生成路由器节点对应的交易资源信息,交易资源信息包括资源数值。
步骤912,服务节点将交易资源信息写入至区块链中。
预设转移时间是指预先设定的对资源数值进行转移的时间。在服务节点根据路由器节点的节点参数与实际在线时长确定了路由器节点可获得的资源数值后,服务节点可以根据预先设定的预设转移时间将资源数值转入至路由器节点的账户中。服务节点可以生成与路由器节点对应的交易资源信息,交易资源信息可以包括有路由器节点的实际在线时长,以及路由器节点通过在线可以获得的资源数值。服务节点还可以将生成的交易资源信息打包写入至区块链中,从而区块链中的全部节点中均可以将路由器节点的交易资源信息进行同步存储。
通过在区块链中增加多个检测节点对处于在线状态的路由器节点进行检测,确保路由器节点是正常在线的,确保路由器节点的实际在线时长是可信的,从而可以确保路由器节点可获得的资源数值也是准确的,确保了交易数据的可靠性。
在一个实施例中,如图10所示,上述方法还包括:
步骤1002,服务节点获取终端上传的待存储数据及待存储数据对应的存储参数。
在区块链中的路由器节点,不仅具备有无线网络分发功能,还具备有数据存储功能。不论是云存储还是CDN(Content Delivery Network,即内容分发网络)存储,都需要路由器节点保持在线状态,且需要路由器节点保持长时间的在线状态,以便在需要访问存储数据或需要进行数据存储的时候,都能够连接到路由器节点。因此,在路由器节点处于在线状态期间,路由器节点可以作为区块链中的一个存储节点,用于存储数据。终端上可安装有预设应用,并通过预设应用上传待存储数据至区块链中的服务节点。服务节点在获取到终端上传的待存储数据时,还可以获取到该待存储数据对应的存储参数。存储参数是指待存储数据对应的数据参数,可以包含有待存储数据的文件大小、待存储数据的存储时间以及待存储数据的文件类型等。
在一个实施例中,节点参数包括路由器节点的磁盘空间以及上行带宽。路由器节点的节点参数满足以下至少一个条件:磁盘空间数值大于或等于预设内存数值;上行带宽数值大于或等于预设带宽数值。
在本实施例中,路由器节点的节点参数可以包括路由器节点的磁盘空间以及上行带宽。在路由器节点处于在线状态时,路由器节点可以作为存储节点对数据进行存储,为了提高数据的存储效率,可以对作为存储节点的路由器节点进行限制。也就是说,并非所有处于在线状态的路由器节点均会被作为存储节点进行数据存储,而是节点参数满足一定条件的路由器节点才会被作为存储节点。可被作为存储节点的路由器节点的节点参数需要满足以下至少一个条件:磁盘空间数值大于或等于预设内存数值;上行带宽数值大于或等于预设带宽数值。预设内存数值和预设带宽数值均是预先自定义的一个数值,用于判断路由器节点的节点参数是否符合预设的条件。进一步地,还可以对路由器节点的在线时长进行限定,限定只有当路由器节点的在线时长需达到预设时长,才会将该路由器节点作为存储节点。
步骤1004,服务节点根据存储参数确定待存储数据对应的存储资源数值,从终端对应的账户中扣取存储资源数值。
当终端需要将待存储数据上传至区块链中进行存储时,终端需要花费相应的存储资源数值。终端需花费的存储资源数值是根据需要存储的待存储数据的存储参数所确定的,因此服务节点可根据存储参数确定终端所需要花费的存储资源数值,并从终端对应的账户中扣取相应的存储资源数值。扣取存储资源数值的操作可以由服务节点进行,也可以由区块链中增加的公证节点进行操作。
步骤1006,服务节点将待存储数据随机存储至处于在线状态的路由器节点和第二预设数量的存储节点中。
当服务节点根据终端上传的待存储数据的存储参数,从终端对应的账户中扣取了对应的存储资源数值后,服务节点将待存储数据随机存储在多个节点中。当路由器节点满足作为存储节点的条件时,可以将待存储数据存储至路由器节点和第二预设数量的其他存储节点,也可以是将待存储数据存储至多个路由器节点。若是没有存在满足作为存储节点的路由器节点,则可以将待存储数据存储至多个其他存储节点上。其他存储节点是指除路由器节点之外的节点。将一份待存储数据存储至多个节点的作用在于,当某一个存储有待存储数据的节点发生宕机或者发生故障时,其他存储节点上还能够完整的保存有该待存储数据。当终端需要下载取回存储的数据时,也能够从其他存储有该待存储数据的节点获取到,达到冗余存储容灾的作用。
步骤1008,当路由器节点处于正常存储状态时,服务节点从存储资源数值中转移与路由器节点对应的目标资源数值至路由器节点对应的账户。
节点在存储待存储数据时,可能存在以下两种情况,一是并没有真正的对数据进行存储,而是在验证前从其他存储节点对该待存储数据进行同步存储以应对验证过程。二是在验证后,路由器节点可能会将待存储数据进行删除而释放磁盘空间。这种情况会导致即使一开始对存储数据的节点进行了验证且均通过了验证,但当终端需要取回存储的数据时,却没有一个节点真正的存储有待存储数据,导致用户无法正常的取回存储的数据。因此,为了确保待存储数据的存储节点是真正的存储了数据,且保证存储的数据能够正常的被取回,可以采取以下方式对存储待存储数据的节点进行验证。这种验证方式可以应用于对存储待存储数据的路由器节点进行验证,也可以应用于除路由器节点之外的其他存储节点进行验证。
以对路由器节点进行验证为例。服务节点可随机从区块链中选取预设数量的节点对路由器节点进行验证挑战,验证路由器节点是否正常将待存储数据进行存储,或者路由器节点上是否正常存储有待存储数据。验证挑战的周期不是固定的,而是随机地进行挑战操作,以防路由器节点采取作弊行为以应对验证操作。选取的预设数量的节点可以是路由器节点,也可以是非路由器节点。当预设数量的节点验证路由器节点处于正常存储状态时,则服务节点可以从存储资源数值中转移与路由器节点对应的目标资源数值至路由器节点对应的账户。假设每一份待存储数据的存储资源数值为B1,那么将待存储数据存储至N个节点时,每个节点可以获得的目标资源数值为B1/N,则作为N个节点中的路由器节点可以获得的目标资源数值为B1/N。当路由器节点存储了待存储数据后,还需要通过多个节点的验证,当验证通过后,该路由器节点才可以获取到对应的目标资源数值。
在一个实施例中,如图11所示,上述方法还包括:
步骤1102,当当前随机周期时间到达时,服务节点通知预设数量的节点对路由器节点进行检测。
步骤1104,当检测结果为路由器节点处于正常存储状态时,服务节点根据当前随机周期时间确定路由器节点对应的目标资源数值。
步骤1106,从存储资源数值中转移目标资源数值至路由器节点对应的账户。
为了验证路由器节点是否处于正常存储状态,服务节点会选取预设数量的节点对路由器节点进行检测。检测的周期是随机的,因此当当前随机周期时间到达时,预设数量的节点会再一次的对路由器节点进行检测。也就是说,每一个随机周期预设数量的节点就会对路由器节点进行一次随机检测。当预设数量的节点对路由器节点的检测结果为路由器节点处于正常存储状态时,服务节点则可以根据当前随机周期时间确定路由器节点对应的目标资源数值,从存储资源数值中将路由器节点可获得的目标资源数值转移至路由器节点对应的账户。也就是说,路由器节点通过数据存储获得的目标资源数值并非是一次性结算清楚的,而是根据每一次路由器节点通过验证的周期次数进行计算的。
对假设每一份待存储数据的存储资源数值为B1,那么将待存储数据存储至N个节点时,路由器节点总共可以获得的目标资源数值为B1/N。若是每一次路由器节点都能够通过验证,则路由器节点最终能够获得的目标数值为B1/N。假设待存储资源数据的存储时长为1小时,服务节点选取的预设数量的节点对路由器节点的随机挑战时间为每隔十分钟内的任意一个时间里,也就是说在【0,10】、【10,20】,…,【50,60】这6个时间段内,预设数量的节点在每一个时间段内都会随机对路由器节点进行验证挑战,即进行6次挑战。因此,可理解的是,路由器节点每通过一次验证可得到的目标资源数值为(B1/N)/6。因此可根据这种方式,路由器节点每一次通过验证就确定当次验证所对应的目标资源数值,从而路由器节点实际上可获得的目标资源数值实际上是根据通过验证的次数确定的。服务节点可根据预设转移时间将路由器节点实际上可获得的目标资源数值转入至路由器节点对应的账户。这种目标资源数值的方式也可以进行灵活变动,并不局限于这一种计算方式,具体可根据实际情况进行调整。
步骤1108,当检测结果为路由器节点处于异常存储状态时,服务节点从区块链中选择替换存储节点,将路由器节点替换为替换存储节点,将待存储数据备份至替换存储节点。
当预设数量的对路由器节点的检测结果为路由器节点处于异常存储状态时,为了确保待存储数据能够存储在预先设定的多个节点,服务节点可以从区块链中选取替换存储节点,替换存储节点将代替原来的路由器节点对待存储数据进行备份存储。替换存储节点可以从其他存储有待存储数据的节点获取到待存储数据,从而对待存储数据进行同步备份。假设预先将待存储数据存储在3个存储节点,其中一个节点为路由器节点。当检测到路由器节点处于异常存储状态时,服务节点将会从区块链中选择替换存储节点,将路由器节点替换为替换存储节点,由替换存储节点代替路由器节点对待存储数据进行存储,从而可以保证仍然有3个节点中存储有完整的待存储数据。
如图12所示,在一个实施例中,提供了一种基于区块链的数据验证方法。本实施例主要以该方法应用于上述图1中的区块链120来举例说明。参照图12,该基于区块链的数据验证方法具体包括如下步骤:
步骤1202,服务节点获取终端上传的待存储数据及待存储数据对应的存储参数。
步骤1204,服务节点根据存储参数确定待存储数据对应的存储资源数值,从终端对应的账户中扣取存储资源数值。
终端上可安装预设应用,通过预设应用将需要备份的待存储数据上传至区块链中的服务节点。服务节点获取到待存储数据时,还可以获取到待存储数据的存储参数。存储参数可以包含有待存储数据的文件大小、待存储数据的存储时间以及待存储数据的文件类型等。终端将待存储数据备份存储在区块链中时,终端需要花费相应的存储资源数值。终端需花费的存储资源数值是根据需要存储的待存储数据的存储参数所确定的,因此服务节点可根据存储参数确定终端所需要花费的存储资源数值,并从终端对应的账户中扣取相应的存储资源数值。扣取存储资源数值的操作可以由服务节点进行,也可以由区块链中增加的公证节点进行操作。
步骤1206,当区块链中的路由器节点处于在线状态时,服务节点将待存储数据随机存储至处于在线状态的路由器节点和第二预设数量的存储节点中。
在路由器节点处于在线状态时,路由器节点可以作为存储节点对数据进行存储,为了提高数据的存储效率,可以对作为存储节点的路由器节点进行限制。也就是说,并非所有处于在线状态的路由器节点均会被作为存储节点进行数据存储,而是节点参数满足一定条件的路由器节点才会被作为存储节点。可被作为存储节点的路由器节点的节点参数需要满足以下至少一个条件:磁盘空间数值大于或等于预设内存数值;上行带宽数值大于或等于预设带宽数值。比如可以将预设内存数值设置为200G,预设带宽数值设置为5M,则能够作为存储节点的在线路由器节点的磁盘空间应大于或等于200G,上行带宽应大于或等于5M。在此基础上,还可以对路由器节点的在线时长进行限定,限定只有当路由器节点的在线时长需达到预设时长,才会将该路由器节点作为存储节点。比如将预设时长设置为3小时,则能够作为存储节点的在线路由器节点的磁盘空间应大于或等于200G,上行带宽应大于或等于5M,且每天的在线时长应大于或等于3小时。
将一份待存储数据存储至多个节点的作用在于,当某一个存储有待存储数据的节点发生宕机或者发生故障时,其他存储节点上还能够完整的保存有该待存储数据。当终端需要下载取回存储的数据时,也能够从其他存储有该待存储数据的节点获取到,达到冗余存储容灾的作用。
步骤1208,检测待存储数据是否超过存储时长,若是,则执行步骤1210;若否,则执行步骤1212。
步骤1210,不作处理。
步骤1212,服务节点通知预设数量的节点对路由器节点进行检测。
终端在上传待存储数据时,待存储数据对应的存储参数中包含有存储时长。存储时长是指终端需要将待存储数据备份存储在区块链中的时长。比如当待存储数据的存储时长为48小时,则说明终端需要将该待存储数据在区块链中备份48小时,服务节点在根据存储参数确定待存储数据对应的存储资源数值时,也是根据待存储数据存储48小时来计算待存储数据对应的存储资源数值的。因此,需要检测待数据数据的存储时间是否超过了存储时长,若是未超过存储时长,说明区块链仍然需要保证待存储数据是正常备份存储的,故服务节点需要通知预设数量的节点对路由器节点进行检测,以确保路由器节点是正常对待存储数据进行存储的。若是超过了存储时长,区块链则无需保证待存储数据是正常备份存储在多个节点的,对于备份了待存储数据的各个节点,区块链可以不作处理,节点可以在一段时间后,自行对存储的待存储数据进行清理,也可以等待服务节点的通知。比如服务节点确定了可以对超期存储的数据进行清除时,则可以发送清除通知至各个存储节点对数据进行整理。也可以采取其他方式对待存储数据进行处理,具体方式可根据项目需求进行自定义。
步骤1214,检测路由器节点是否处于正常存储状态,若是,则执行步骤1216;若否,则执行步骤1220。
步骤1216,服务节点根据当前随机周期时间确定路由器节点对应的目标资源数值。
步骤1218,从存储资源数值中转移目标资源数值至路由器节点对应的账户。
步骤1220,服务节点从区块链中选择替换存储节点,将路由器节点替换为替换存储节点,将待存储数据备份至替换存储节点。
节点在存储待存储数据时,可能存在以下两种情况,一是并没有真正的对数据进行存储,而是在验证前从其他存储节点对该待存储数据进行同步存储以应对验证过程。二是在验证后,路由器节点可能会将待存储数据进行删除而释放磁盘空间。这种情况会导致即使一开始对存储数据的节点进行了验证且均通过了验证,但当终端需要取回存储的数据时,却没有一个节点真正的存储有待存储数据,导致用户无法正常的取回存储的数据。因此,为了确保待存储数据的存储节点是真正的存储了数据,且保证存储的数据能够正常的被取回,可以采取以下方式对存储待存储数据的节点进行验证。为了验证路由器节点是否处于正常存储状态,服务节点会选取预设数量的节点对路由器节点进行检测。
检测的周期是随机的,因此当当前随机周期时间到达时,预设数量的节点会再一次的对路由器节点进行检测。也就是说,每一个随机周期预设数量的节点就会对路由器节点进行一次随机检测。当预设数量的节点对路由器节点的检测结果为路由器节点处于正常存储状态时,服务节点则可以根据当前随机周期时间确定路由器节点对应的目标资源数值,从存储资源数值中将路由器节点可获得的目标资源数值转移至路由器节点对应的账户。也就是说,路由器节点通过数据存储获得的目标资源数值并非是一次性结算清楚的,而是根据每一次路由器节点通过验证的周期次数进行计算的。
服务节点可以贡献度确定路由器节点可获得的目标资源数值。贡献度是对磁盘空间数值、上行带宽数值以及实际在线时长的加权求和计算得到的。具体地,贡献度=磁盘空间数值*磁盘权重+上行带宽数值*带宽权重+实际在线时长*时长权重。为了避免路由器节点恶意通过提高贡献度以获得更高的目标资源数值,可以对磁盘权重、带宽权重以及时长权重进行额外的定义。比如将磁盘权重的起始值设置为0.1,随着路由器节点磁盘空间的增加,将磁盘权重的增量递减,即随着路由器节点磁盘空间的增加,磁盘权重也会增加,但每一次增加的比例会逐渐降低,且设定磁盘权重最高不能超过0.2,即设定磁盘权重的区间为【0.1,0.2】。即便存在有路由器节点的磁盘空间很大,也不会导致该路由器节点的贡献度因为磁盘空间的增加而增加太多。还可以将带宽权重进行设定,设定带宽权重的起始值为0.1,同样地,随着路由器节点上行带宽的数值增加,将带宽权重的增量递减,且设定带宽权重最高不能超过0.5。即设定带宽权重的区间为【0.1,0.5】。即便存在有路由器节点的上行带宽很大,也不会导致该路由器节点的贡献度因为上行带宽的增加而增加太多。
同样地,还可以对时长权重进行设定。将时长权重的起始值设置为0.05,随着路由器节点实际在线时长的增加,将时长权重的增量递减,即随着路由器节点实际在线时长的增加,时长权重也会增加,但每一次增加的比例会逐渐降低,且设定磁盘权重最高不能超过0.3,且路由器节点的实际在线时长最多不能超过24小时。即设定磁盘权重的区间为【0.05,0.3】。即便存在有路由器节点的实际在线时长很大,也不会导致该路由器节点的贡献度因为在线时长的增加而增加太多。进一步地,可以设定总权重是小于或等于1的,总权重=磁盘权重+带宽权重+时长权重,可理解的是,这三种权重的总和应该是小于或等于1的。
当预设数量的对路由器节点的检测结果为路由器节点处于异常存储状态时,为了确保待存储数据能够存储在预先设定的多个节点,服务节点可以从区块链中选取替换存储节点,替换存储节点将代替原来的路由器节点对待存储数据进行备份存储。替换存储节点可以从其他存储有待存储数据的节点获取到待存储数据,从而对待存储数据进行同步备份。假设预先将待存储数据存储在3个存储节点,其中一个节点为路由器节点。当检测到路由器节点处于异常存储状态时,服务节点将会从区块链中选择替换存储节点,将路由器节点替换为替换存储节点,由替换存储节点代替路由器节点对待存储数据进行存储,从而可以保证仍然有3个节点中存储有完整的待存储数据。
步骤1222,服务节点生成路由器节点对应的交易资源信息,交易资源信息包括资源数值。
步骤1224,服务节点将交易资源信息写入至区块链中。
在服务节点根据路由器节点的节点参数与实际在线时长确定了路由器节点可获得的资源数值后,服务节点可以根据预先设定的预设转移时间将资源数值转入至路由器节点的账户中。服务节点可以生成与路由器节点对应的交易资源信息,交易资源信息可以包括有路由器节点的实际在线时长,以及路由器节点通过在线可以获得的资源数值。服务节点还可以将生成的交易资源信息打包写入至区块链中,从而区块链中的全部节点中均可以将路由器节点的交易资源信息进行同步存储。通过在区块链中增加多个检测节点对处于在线状态的路由器节点进行检测,确保路由器节点是正常在线的,确保路由器节点的实际在线时长是可信的,从而可以确保路由器节点可获得的资源数值也是准确的,确保了交易数据的可靠性。
终端上传的数据可以通过观察节点进行验证,路由器节点上传的数据可以通过检测节点进行验证。还存在一种情况是,输入的数据是来源于区块链中的某一个节点,但通过区块链中的其他节点的同步写入备份数据中时,在正式将这些数据写入至区块链的区块时,可以按照同样的方式对这些节点备份的数据进行验证,即通过增加一个第三方节点对备份的数据进行验证。进一步地,为了对外部输入的数据在写入至区块中时,防止数据的伪造和抵赖行为,可以将某一段时间的数据作为一个数据验证任务,对这段时间内的数据进行整体校验。这种整体检验的操作需要满足两个要求,一是完成任务必须要大于等于预设的校验时间,二是检测结果能够快速被检验。如此,可以有效快速的对区块链中的外部数据进行验证。
图2-图12分别为各个实施例中基于区块链的数据验证方法的流程示意图。应该理解的是,虽然各个流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各个图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图13所示,提供了一种基于区块链的数据验证系统,区块链中包括服务节点和观察节点,系统包括:
起始时间获取模块1302,用于区块链中的服务节点获取终端上传的与预设网络连接的连接起始时间。
终端挑战模块1304,用于服务节点向观察节点发送通知消息,以使观察节点根据通知消息向终端发送随机挑战数据包,当根据终端对随机挑战数据包的响应判定终端验证失败时,确定终端对应的挑战失败时间。
第一连接时长确定模块1306,用于服务节点接收观察节点返回的挑战失败时间,根据连接起始时间和挑战失败时间确定终端的第一网络连接时长。
交易信息打包模块1308,用于服务节点生成终端对应的第一交易资源信息,第一交易资源信息包括根据第一网络连接时长确定的转入资源数值;服务节点将第一交易资源信息写入至区块链中。
在一个实施例中,上述系统还包括第二连接时长确定模块(图中未示出),用于当终端验证成功,服务节点获取到终端断开连接预设网络的通知时,服务节点获取终端上传的连接终止时间,服务节点根据连接起始时间与连接终止时间确定终端的第二网络连接时长。交易信息打包模块1308还用于服务节点生成终端对应的第二交易资源信息,第二交易资源信息包括根据第二网络连接时长确定的转入资源数值;服务节点将第二交易资源信息写入至区块链中。
在一个实施例中,终端挑战模块1304还用于当服务节点确定终端与预设网络处于连接状态时,进入区块链中的观察节点向终端发送随机挑战数据包的步骤。
在一个实施例中,如图14所示,也提供了一种基于区块链的数据验证系统,区块链中包括服务节点和公证节点,系统包括:
网络请求获取模块1402,用于服务节点获取终端发送的与预设网络连接的网络连接请求,以使所述公证节点根据所述网络连接请求从所述终端对应的账户中扣除预设资源数值。
连接时长模块1404,用于服务节点获取终端上传的与预设网络连接成功的连接起始时间;服务节点获取终端发送的网络断开请求,根据连接起始时间和网络断开请求中携带的网络断开时间确定第一网络连接时长;服务节点获取路由器节点提供的终端与预设网络对应的第二网络连接时长;服务节点根据第一网络连接时长和第二网络连接时长确定终端的实际网络连接时长。
资源数值转移模块1406,用于服务节点通知公证节点根据实际网络连接时长从预设资源数值中转移对应的实际资源数值至路由器节点对应的账户。
交易资源信息打包模块1408,用于服务节点生成路由器节点对应的交易资源信息,交易资源信息包括实际资源数值;服务节点将交易资源信息写入至区块链中。
在一个实施例中,上述系统还包括断网模块(图中未示出),用于服务节点根据预设资源数值确定终端对应的预设网络连接时长;当在预设网络连接时长到达,且服务节点未获取到终端发送的网络断开请求时,服务节点通知公证节点将预设资源数值转移至路由器节点对应的账户;服务节点将终端与预设网络断开连接。
在一个实施例中,上述系统还包括差额转回模块(图中未示出),用于当实际资源数值小于预设资源数值时,公证节点将实际资源数值与预设资源数值的差额数值转回至终端对应的账户。
在一个实施例中,上述资源数值转移模块1406还用于服务节点向公证节点发送合约通知,合约通知包括实际资源数值,合约通知用于公证节点根据合约通知触发智能合约,根据触发智能合约的时间对实际资源数值进行验证,当验证通过时,从预设资源数值中转移对应的实际资源数值至路由器节点对应的账户。
在一个实施例中,上述连接时长模块1404用于当第一网络连接时长和第二网络连接时长的时长差距超过预设阈值时,将第二网络连接时长作为实际网络连接时长;否则,将第一网络连接时长和第二网络连接时长中时长大的作为实际网络连接时长。
在一个实施例中,如图15所示,还提供了一种基于区块链的数据验证系统,区块链中包括服务节点、路由器节点和检测节点,系统包括:
节点检测模块1502,用于当区块链中的路由器节点处于在线状态时,区块链中的服务节点随机从区块链中选取预设第一数量的节点作为检测节点对路由器节点进行检测得到对应的检测结果。
节点时长确定模块1504,用于服务节点根据检测结果确定路由器节点的实际在线时长。
资源数值模块1506,用于服务节点获取路由器节点的节点参数,根据节点参数与实际在线时长确定路由器节点对应的资源数值;服务节点根据预设转移时间将资源数值转入至路由器节点对应的账户。
打包模块1508,用于服务节点生成路由器节点对应的交易资源信息,交易资源信息包括资源数值;服务节点将交易资源信息写入至区块链中。
在一个实施例中,上述节点检测模块1502还用于各个检测节点向路由器节点发送随机挑战数据包,根据路由器节点对应于各个检测节点的挑战响应得到各个检测节点对应的初始检测结果;根据相同的初始检测结果的比例确定路由器节点对应的检测结果。
在一个实施例中,上述节点时长确定模块1504还用于当路由器节点对应的检测结果为路由器节点处于异常在线状态时,将检测节点上传的异常时间作为路由器节点的在线结束时间;当路由器节点对应的检测结果为路由器节点处于正常在线状态时,获取路由器节点处于下线状态时上传的时间作为路由器节点的在线结束时间;服务节点根据在线起始时间与在线结束时间确定路由器节点的实际在线时长。
在一个实施例中,上述系统还包括存储模块(图中未示出),用于服务节点获取终端上传的待存储数据及待存储数据对应的存储参数;服务节点根据存储参数确定待存储数据对应的存储资源数值,从终端对应的账户中扣取存储资源数值;服务节点将待存储数据随机存储至处于在线状态的路由器节点和第二预设数量的存储节点中;当路由器节点处于正常存储状态时,服务节点从存储资源数值中转移与路由器节点对应的目标资源数值至路由器节点对应的账户。
在一个实施例中,节点参数包括路由器节点的磁盘空间以及上行带宽。路由器节点的节点参数满足以下至少一个条件:磁盘空间数值大于或等于预设内存数值;上行带宽数值大于或等于预设带宽数值。
在一个实施例中,上述系统还包括节点替换模块(图中未示出),用于当当前随机周期时间到达时,服务节点通知预设数量的节点对路由器节点进行检测;当检测结果为路由器节点处于正常存储状态时,服务节点根据当前随机周期时间确定路由器节点对应的目标资源数值;从存储资源数值中转移目标资源数值至路由器节点对应的账户;当检测结果为路由器节点处于异常存储状态时,服务节点从区块链中选择替换存储节点,将路由器节点替换为替换存储节点,将待存储数据备份至替换存储节点。
在一个实施例中,节点参数包括路由器节点的磁盘空间以及上行带宽。上述资源数值模块1506还用于根据节点参数与实际在线时长确定路由器节点的贡献度;根据贡献度确定路由器节点获得的资源数值,贡献度是对磁盘空间数值、上行带宽数值以及实际在线时长的加权求和。
图16示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的区块链120。如图16所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现基于区块链的数据验证方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行基于区块链的数据验证方法。
本领域技术人员可以理解,图16中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述基于区块链的数据验证方法的步骤。此处基于区块链的数据验证方法的步骤可以是上述各个实施例的基于区块链的数据验证方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述基于区块链的数据验证方法的步骤。此处基于区块链的数据验证方法的步骤可以是上述各个实施例的基于区块链的数据验证方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (26)

1.一种基于区块链的数据验证方法,所述区块链中包括服务节点、路由器节点和检测节点,所述方法包括:
当区块链中的所述路由器节点处于在线状态时,所述区块链中的所述服务节点随机从所述区块链中选取预设第一数量的节点作为检测节点,各个所述检测节点向所述路由器节点发送随机挑战数据包,根据所述路由器节点对应于各个所述检测节点的挑战响应得到各个所述检测节点对应的初始检测结果;根据相同的初始检测结果的比例确定所述路由器节点对应的检测结果;
所述服务节点根据所述检测结果确定所述路由器节点的实际在线时长;
所述服务节点获取所述路由器节点的节点参数,根据所述节点参数与所述实际在线时长确定所述路由器节点对应的资源数值;
所述服务节点根据预设转移时间将所述资源数值转入至所述路由器节点对应的账户;
所述服务节点生成所述路由器节点对应的交易资源信息,所述交易资源信息包括所述资源数值;
所述服务节点将所述交易资源信息写入至所述区块链中。
2.根据权利要求1所述的方法,其特征在于,所述根据所述路由器节点对应于各个所述检测节点的挑战响应得到各个所述检测节点对应的初始检测结果,包括:
若所述路由器节点在规定的时间内返回的响应数据与所述挑战数据包不符,或者所述路由器节点未在规定的时间内返回响应数据,则判定所述检测节点对所述路由器节点的检测结果为检测异常;
若所述路由器节点在规定的时间内返回的响应数据与所述挑战数据包对应,则判定所述检测节点对所述路由器节点的检测结果为检测正常。
3.根据权利要求1所述的方法,其特征在于,所述服务节点根据所述检测结果确定所述路由器节点的实际在线时长,包括:
当所述路由器节点对应的检测结果为所述路由器节点处于异常在线状态时,将所述检测节点上传的异常时间作为所述路由器节点的在线结束时间;
当所述路由器节点对应的检测结果为所述路由器节点处于正常在线状态时,获取所述路由器节点处于下线状态时上传的时间作为所述路由器节点的在线结束时间;
所述服务节点根据所述在线起始时间与所述在线结束时间确定所述路由器节点的实际在线时长。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述服务节点获取终端上传的待存储数据及所述待存储数据对应的存储参数;
所述服务节点根据所述存储参数确定所述待存储数据对应的存储资源数值,从所述终端对应的账户中扣取所述存储资源数值;
所述服务节点将所述待存储数据随机存储至处于在线状态的所述路由器节点和第二预设数量的存储节点中;
当所述路由器节点处于正常存储状态时,所述服务节点从所述存储资源数值中转移与所述路由器节点对应的目标资源数值至所述路由器节点对应的账户。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当当前随机周期时间到达时,所述服务节点通知预设数量的节点对所述路由器节点进行检测;
当检测结果为所述路由器节点处于正常存储状态时,所述服务节点根据当前随机周期时间确定所述路由器节点对应的目标资源数值;
从所述存储资源数值中转移所述目标资源数值至所述路由器节点对应的账户;
当检测结果为所述路由器节点处于异常存储状态时,所述服务节点从所述区块链中选择替换存储节点,将所述路由器节点替换为所述替换存储节点,将所述待存储数据备份至所述替换存储节点。
6.根据权利要求1所述的方法,其特征在于,所述节点参数包括所述路由器节点的磁盘空间以及上行带宽;所述根据所述节点参数与所述实际在线时长确定所述路由器节点对应的资源数值,包括:
根据所述节点参数与所述实际在线时长确定所述路由器节点的贡献度;
根据所述贡献度确定所述路由器节点获得的资源数值,所述贡献度是对所述磁盘空间数值、所述上行带宽数值以及所述实际在线时长的加权求和。
7.一种基于区块链的数据验证方法,所述区块链中包括服务节点和公证节点,所述方法包括:
服务节点获取终端发送的与预设网络连接的网络连接请求,以使所述公证节点根据所述网络连接请求从所述终端对应的账户中扣除预设资源数值;
所述服务节点获取终端上传的与所述预设网络连接成功的连接起始时间;
所述服务节点获取所述终端发送的网络断开请求,根据所述连接起始时间和所述网络断开请求中携带的网络断开时间确定第一网络连接时长;
所述服务节点获取路由器节点提供的所述终端与所述预设网络对应的第二网络连接时长;
所述服务节点根据所述第一网络连接时长和所述第二网络连接时长确定所述终端的实际网络连接时长;
所述服务节点通知所述公证节点根据所述实际网络连接时长从所述预设资源数值中转移对应的实际资源数值至所述路由器节点对应的账户;
所述服务节点生成所述路由器节点对应的交易资源信息,所述交易资源信息包括所述实际资源数值;
所述服务节点将所述交易资源信息写入至所述区块链中。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述服务节点根据所述预设资源数值确定所述终端对应的预设网络连接时长;
当在所述预设网络连接时长到达,且所述服务节点未获取到所述终端发送的网络断开请求时,所述服务节点通知所述公证节点将所述预设资源数值转移至所述路由器节点对应的账户;
所述服务节点将所述终端与所述预设网络断开连接。
9.根据权利要求8所述的方法,其特征在于,所述服务节点通知所述公证节点根据所述实际网络连接时长从所述预设资源数值中转移对应的实际资源数值至所述路由器节点对应的账户,包括:
所述服务节点向所述公证节点发送合约通知,所述合约通知包括实际资源数值,所述合约通知用于所述公证节点根据所述合约通知触发智能合约,根据触发智能合约的时间对所述实际资源数值进行验证,当验证通过时,从所述预设资源数值中转移对应的实际资源数值至所述路由器节点对应的账户。
10.一种基于区块链的数据验证方法,所述区块链中包括服务节点和观察节点,所述方法包括:
服务节点获取终端上传的与预设网络连接的连接起始时间;
所述服务节点向观察节点发送通知消息,以使所述观察节点根据所述通知消息向所述终端发送随机挑战数据包,当根据所述终端对所述随机挑战数据包的响应判定所述终端验证失败时,确定所述终端对应的挑战失败时间;
所述服务节点接收所述观察节点返回的挑战失败时间,根据所述连接起始时间和所述挑战失败时间确定所述终端的第一网络连接时长;
所述服务节点生成所述终端对应的第一交易资源信息,所述第一交易资源信息包括根据所述第一网络连接时长确定的转入资源数值;
所述服务节点将所述第一交易资源信息写入至所述区块链中。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
当所述终端验证成功,所述服务节点获取到所述终端断开连接所述预设网络的通知时,所述服务节点获取所述终端上传的连接终止时间,所述服务节点根据所述连接起始时间与所述连接终止时间确定所述终端的第二网络连接时长;
所述服务节点生成所述终端对应的第二交易资源信息,所述第二交易资源信息包括根据所述第二网络连接时长确定的转入资源数值;
所述服务节点将所述第二交易资源信息写入至所述区块链中。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
当所述服务节点确定所述终端与所述预设网络处于连接状态时,进入所述区块链中的观察节点向所述终端发送随机挑战数据包的步骤。
13.一种基于区块链的数据验证系统,其特征在于,所述区块链中包括服务节点、路由器节点和检测节点,所述系统包括:
节点检测模块,用于当区块链中的所述路由器节点处于在线状态时,所述区块链中的所述服务节点随机从所述区块链中选取预设第一数量的节点作为检测节点,各个所述检测节点向所述路由器节点发送随机挑战数据包,根据所述路由器节点对应于各个所述检测节点的挑战响应得到各个所述检测节点对应的初始检测结果;根据相同的初始检测结果的比例确定所述路由器节点对应的检测结果;
节点时长确定模块,用于所述服务节点根据所述检测结果确定所述路由器节点的实际在线时长;
资源数值模块,用于所述服务节点获取所述路由器节点的节点参数,根据所述节点参数与所述实际在线时长确定所述路由器节点对应的资源数值;所述服务节点根据预设转移时间将所述资源数值转入至所述路由器节点对应的账户;
打包模块,用于所述服务节点生成所述路由器节点对应的交易资源信息,所述交易资源信息包括所述资源数值;所述服务节点将所述交易资源信息写入至所述区块链中。
14.根据权利要求13所述的系统 ,其特征在于,所述节点检测模块还用于:
若所述路由器节点在规定的时间内返回的响应数据与所述挑战数据包不符,或者所述路由器节点未在规定的时间内返回响应数据,则判定所述检测节点对所述路由器节点的检测结果为检测异常;
若所述路由器节点在规定的时间内返回的响应数据与所述挑战数据包对应,则判定所述检测节点对所述路由器节点的检测结果为检测正常。
15.根据权利要求13所述的系统 ,其特征在于,所述节点时长确定模块还用于:当所述路由器节点对应的检测结果为所述路由器节点处于异常在线状态时,将所述检测节点上传的异常时间作为所述路由器节点的在线结束时间;
当所述路由器节点对应的检测结果为所述路由器节点处于正常在线状态时,获取所述路由器节点处于下线状态时上传的时间作为所述路由器节点的在线结束时间;
所述服务节点根据所述在线起始时间与所述在线结束时间确定所述路由器节点的实际在线时长。
16.根据权利要求13所述的系统 ,其特征在于,所述系统 还包括:
存储模块,应用于所述服务节点获取终端上传的待存储数据及所述待存储数据对应的存储参数;所述服务节点根据所述存储参数确定所述待存储数据对应的存储资源数值,从所述终端对应的账户中扣取所述存储资源数值;所述服务节点将所述待存储数据随机存储至处于在线状态的所述路由器节点和第二预设数量的存储节点中;当所述路由器节点处于正常存储状态时,所述服务节点从所述存储资源数值中转移与所述路由器节点对应的目标资源数值至所述路由器节点对应的账户。
17.根据权利要求16所述的系统 ,其特征在于,所述系统 还包括:
节点替换模块,用于当当前随机周期时间到达时,所述服务节点通知预设数量的节点对所述路由器节点进行检测;当检测结果为所述路由器节点处于正常存储状态时,所述服务节点根据当前随机周期时间确定所述路由器节点对应的目标资源数值;从所述存储资源数值中转移所述目标资源数值至所述路由器节点对应的账户;当检测结果为所述路由器节点处于异常存储状态时,所述服务节点从所述区块链中选择替换存储节点,将所述路由器节点替换为所述替换存储节点,将所述待存储数据备份至所述替换存储节点。
18.根据权利要求13所述的系统 ,其特征在于,所述节点参数包括所述路由器节点的磁盘空间以及上行带宽;所述资源数值模块还用于:根据所述节点参数与所述实际在线时长确定所述路由器节点的贡献度;根据所述贡献度确定所述路由器节点获得的资源数值,所述贡献度是对所述磁盘空间数值、所述上行带宽数值以及所述实际在线时长的加权求和。
19.一种基于区块链的数据验证系统,其特征在于,所述区块链中包括服务节点和公证节点,所述系统包括:
网络请求获取模块,用于服务节点获取终端发送的与预设网络连接的网络连接请求,以使所述公证节点根据所述网络连接请求从所述终端对应的账户中扣除预设资源数值;
连接时长模块,用于所述服务节点获取终端上传的与所述预设网络连接成功的连接起始时间;所述服务节点获取所述终端发送的网络断开请求,根据所述连接起始时间和所述网络断开请求中携带的网络断开时间确定第一网络连接时长;所述服务节点获取路由器节点提供的所述终端与所述预设网络对应的第二网络连接时长;所述服务节点根据所述第一网络连接时长和所述第二网络连接时长确定所述终端的实际网络连接时长;
资源数值转移模块,用于所述服务节点通知所述公证节点根据所述实际网络连接时长从所述预设资源数值中转移对应的实际资源数值至所述路由器节点对应的账户;
交易资源信息打包模块,所述服务节点生成所述路由器节点对应的交易资源信息,所述交易资源信息包括所述实际资源数值;所述服务节点将所述交易资源信息写入至所述区块链中。
20.根据权利要求19所述的系统 ,其特征在于,所述系统 还包括:
断网模块,用于所述服务节点根据所述预设资源数值确定所述终端对应的预设网络连接时长;当在所述预设网络连接时长到达,且所述服务节点未获取到所述终端发送的网络断开请求时,所述服务节点通知所述公证节点将所述预设资源数值转移至所述路由器节点对应的账户;所述服务节点将所述终端与所述预设网络断开连接。
21.根据权利要求20所述的系统 ,其特征在于,所述资源数值转移模块,还用于:
所述服务节点向所述公证节点发送合约通知,所述合约通知包括实际资源数值,所述合约通知用于所述公证节点根据所述合约通知触发智能合约,根据触发智能合约的时间对所述实际资源数值进行验证,当验证通过时,从所述预设资源数值中转移对应的实际资源数值至所述路由器节点对应的账户。
22.一种基于区块链的数据验证系统,其特征在于,所述区块链中包括服服务节点和观察节点,所述系统包括:
起始时间获取模块,用于服务节点获取终端上传的与预设网络连接的连接起始时间;
终端挑战模块,用于所述服务节点向观察节点发送通知消息,以使所述观察节点根据所述通知消息向所述终端发送随机挑战数据包,当根据所述终端对所述随机挑战数据包的响应判定所述终端验证失败时,确定所述终端对应的挑战失败时间;
第一连接时长确定模块,用于所述服务节点接收所述观察节点返回的挑战失败时间,根据所述连接起始时间和所述挑战失败时间确定所述终端的第一网络连接时长;
交易信息打包模块,用于所述服务节点生成所述终端对应的第一交易资源信息,所述第一交易资源信息包括根据所述第一网络连接时长确定的转入资源数值;所述服务节点将所述第一交易资源信息写入至所述区块链中。
23.根据权利要求22所述的系统 ,其特征在于,所述系统 还包括:
第二连接时长确定模块,用于当所述终端验证成功,所述服务节点获取到所述终端断开连接所述预设网络的通知时,所述服务节点获取所述终端上传的连接终止时间,所述服务节点根据所述连接起始时间与所述连接终止时间确定所述终端的第二网络连接时长;所述服务节点生成所述终端对应的第二交易资源信息,所述第二交易资源信息包括根据所述第二网络连接时长确定的转入资源数值;所述服务节点将所述第二交易资源信息写入至所述区块链中。
24.根据权利要求22所述的系统 ,其特征在于,所述终端挑战模块还用于:
当所述服务节点确定所述终端与所述预设网络处于连接状态时,进入所述区块链中的观察节点向所述终端发送随机挑战数据包的步骤。
25.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至12中任一项所述方法的步骤。
26.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至12中任一项所述方法的步骤。
CN201811183705.6A 2018-10-11 2018-10-11 基于区块链的数据验证方法、系统和计算机可读存储介质 Active CN109361664B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910673596.4A CN110381072B (zh) 2018-10-11 2018-10-11 基于区块链的数据验证方法、系统和计算机可读存储介质
CN201811183705.6A CN109361664B (zh) 2018-10-11 2018-10-11 基于区块链的数据验证方法、系统和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811183705.6A CN109361664B (zh) 2018-10-11 2018-10-11 基于区块链的数据验证方法、系统和计算机可读存储介质

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201910673596.4A Division CN110381072B (zh) 2018-10-11 2018-10-11 基于区块链的数据验证方法、系统和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN109361664A CN109361664A (zh) 2019-02-19
CN109361664B true CN109361664B (zh) 2021-05-11

Family

ID=65348746

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910673596.4A Active CN110381072B (zh) 2018-10-11 2018-10-11 基于区块链的数据验证方法、系统和计算机可读存储介质
CN201811183705.6A Active CN109361664B (zh) 2018-10-11 2018-10-11 基于区块链的数据验证方法、系统和计算机可读存储介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201910673596.4A Active CN110381072B (zh) 2018-10-11 2018-10-11 基于区块链的数据验证方法、系统和计算机可读存储介质

Country Status (1)

Country Link
CN (2) CN110381072B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110288064A (zh) * 2019-07-04 2019-09-27 江苏前来信息科技有限公司 一种rfid产品防伪追溯系统
CN110555017A (zh) * 2019-07-25 2019-12-10 深圳壹账通智能科技有限公司 区块链数据清理方法、装置、计算机设备和存储介质
CN110597916B (zh) * 2019-09-21 2021-03-26 腾讯科技(深圳)有限公司 基于区块链的数据处理方法、装置、存储介质及终端
CN110690999B (zh) * 2019-10-11 2021-06-11 腾讯科技(深圳)有限公司 基于区块链的带宽分配方法、装置、设备及存储介质
CN111190754B (zh) * 2019-12-30 2023-08-11 联动优势科技有限公司 一种区块链事件通知方法及区块链系统
CN111291420B (zh) * 2020-01-21 2022-11-11 国家市场监督管理总局信息中心 一种基于区块链的分布式离链数据存储方法
CN111341024A (zh) * 2020-03-05 2020-06-26 广州宏算信息科技有限公司 基于区块链的充电桩共享方法、装置、设备及存储介质
CN111460458B (zh) * 2020-03-31 2022-05-27 腾讯科技(深圳)有限公司 一种数据处理方法、相关装置及计算机可存储介质
CN111314494A (zh) * 2020-05-09 2020-06-19 湖南天河国云科技有限公司 一种基于区块链的分布式存储贡献判定方法及装置
CN111353175B (zh) * 2020-05-22 2021-01-22 腾讯科技(深圳)有限公司 数据处理方法、装置、设备、区块链系统及存储介质
CN114143017A (zh) * 2020-08-17 2022-03-04 中国电信股份有限公司 区块链数据提供方法、装置、系统和存储介质
CN112217645B (zh) * 2020-09-28 2021-10-26 电子科技大学 一种基于区块链技术的匿名通信系统路由选择方法
CN112738196B (zh) * 2020-12-25 2021-11-30 卓尔智联(武汉)研究院有限公司 区块链代表节点选取方法、装置、计算机设备和存储介质
CN113468118B (zh) * 2021-05-11 2023-09-22 深圳前海移联科技有限公司 一种基于区块链的文件增量存储方法、装置及存储介质
CN113286177B (zh) * 2021-07-26 2021-09-28 北京小鸟科技股份有限公司 基于区块链的分布式视频处理系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105844505A (zh) * 2016-03-17 2016-08-10 深圳市新世纪启航科技开发有限公司 一种通过区块链技术进行数字货币交易的方法
CN106789911A (zh) * 2016-11-15 2017-05-31 深圳银链科技有限公司 一种基于区块链的网络身份验证方法与系统
CN107197036A (zh) * 2017-06-22 2017-09-22 广东网金控股股份有限公司 一种基于区块链的信息一致处理方法及终端
KR20170142374A (ko) * 2016-06-17 2017-12-28 주식회사 킹홀딩스 가상화폐를 이용한 송금 시스템 및 방법
CN108182581A (zh) * 2017-12-29 2018-06-19 北京欧链科技有限公司 一种区块链的记账方法及装置
CN108197944A (zh) * 2017-11-22 2018-06-22 远光软件股份有限公司 基于区块链技术的资源交易方法及装置
JP6363254B1 (ja) * 2017-05-02 2018-07-25 株式会社 みずほ銀行 支払支援システム及び支払支援方法
CN108512652A (zh) * 2018-04-02 2018-09-07 陆雷钦 基于时间证明的去中心化共识方法、系统及区块链系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10318938B2 (en) * 2016-02-22 2019-06-11 Bank Of America Corporation System for routing of process authorization and settlement to a user in process data network based on specified parameters
CN105786648A (zh) * 2016-02-25 2016-07-20 深圳天珑无线科技有限公司 数据处理方法及装置
CN108009441B (zh) * 2017-11-23 2023-05-30 创新先进技术有限公司 资源转移和资金转移的方法和装置
CN107995270A (zh) * 2017-11-24 2018-05-04 成都赤乌软件技术有限公司 一种基于区块链实现分布式文件存储的方法
CN108174381B (zh) * 2018-04-17 2018-08-03 上海连尚网络科技有限公司 用于连接无线接入点的方法和设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105844505A (zh) * 2016-03-17 2016-08-10 深圳市新世纪启航科技开发有限公司 一种通过区块链技术进行数字货币交易的方法
KR20170142374A (ko) * 2016-06-17 2017-12-28 주식회사 킹홀딩스 가상화폐를 이용한 송금 시스템 및 방법
CN106789911A (zh) * 2016-11-15 2017-05-31 深圳银链科技有限公司 一种基于区块链的网络身份验证方法与系统
JP6363254B1 (ja) * 2017-05-02 2018-07-25 株式会社 みずほ銀行 支払支援システム及び支払支援方法
CN107197036A (zh) * 2017-06-22 2017-09-22 广东网金控股股份有限公司 一种基于区块链的信息一致处理方法及终端
CN108197944A (zh) * 2017-11-22 2018-06-22 远光软件股份有限公司 基于区块链技术的资源交易方法及装置
CN108182581A (zh) * 2017-12-29 2018-06-19 北京欧链科技有限公司 一种区块链的记账方法及装置
CN108512652A (zh) * 2018-04-02 2018-09-07 陆雷钦 基于时间证明的去中心化共识方法、系统及区块链系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Decentralized Access Control Mechanism with Temporal Dimension Based on Blockchain";M. Jemel and A. Serhrouchni;《2017 IEEE 14th International Conference on e-Business Engineering (ICEBE), Shanghai, China, 2017》;20171231;177-182页 *
"区块链:信任背书大数据时代的可能性";冯珊珊;《首席财务官》;20161231(第6期);14-16页 *

Also Published As

Publication number Publication date
CN110381072A (zh) 2019-10-25
CN110381072B (zh) 2020-07-03
CN109361664A (zh) 2019-02-19

Similar Documents

Publication Publication Date Title
CN109361664B (zh) 基于区块链的数据验证方法、系统和计算机可读存储介质
US10762479B2 (en) Method and system for processing blockchain-based real-time transaction
KR102248454B1 (ko) 분산 시스템, 메시지 처리 방법, 노드, 클라이언트 및 기록매체
CN107480990A (zh) 区块链记账方法及装置
CN109598505B (zh) 一种基于区块链的质量数据处理方法和装置
CN111191294B (zh) 基于区块链的单节点记账方法、系统、设备和存储介质
CN114039733B (zh) 一种针对联盟链的存证业务转移方法、装置及设备
CN110784521B (zh) 区块链的共识方法、电子设备和存储介质
CN113904847B (zh) 物联网卡的云平台绑定方法、系统、设备及介质
CN112087497B (zh) 数据同步方法、装置、电子设备及可读存储介质
CN110599267A (zh) 电子发票开票方法、装置、计算机可读存储介质和计算机设备
CN111311254A (zh) 一种基于区块链的业务处理方法、装置和系统
CN106203179B (zh) 一种对文件的完整性校验系统及方法
CN115913802A (zh) 业务数据处理方法、装置、电子设备和存储介质
CN117041981A (zh) 一种基于信任值评估的无线传感网络异常检测方法
CN111190754B (zh) 一种区块链事件通知方法及区块链系统
CN101841800A (zh) 预付费业务计费方法和系统
CN111131329A (zh) 区块链系统的数据共识方法、装置及硬件设备
CN113095940B (zh) 基于同构多链的交易处理方法、区块链系统、设备及介质
CN113362064B (zh) 多重签名方法、计算机设备和存储介质
KR102542063B1 (ko) 뉴럴 블록 클러스터 기반의 안전한 블록 체인을 구축하는 장치 및 그 동작 방법
CN112583908B (zh) 应用于出块节点的区块链共识方法、系统、设备及介质
CN112258184B (zh) 冻结区块链网络的方法、装置、电子设备及可读存储介质
CN110766407A (zh) 基于区块链的交易验证方法、记账节点及介质
CN111831851A (zh) 基于pbft共识的家庭监控数据存储方法及装置

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