在区块链上知识付费数据的存储方法及其装置与流程

文档序号:22679869发布日期:2020-10-28 12:39阅读:242来源:国知局
在区块链上知识付费数据的存储方法及其装置与流程

本发明涉及互联网大数据技术领域,尤其涉及在区块链上知识付费数据的存储方法及其装置。



背景技术:

目前,区块链技术是运用加密算法、共识机制等技术的分布式存储账本。随着区块链技术的运用,越来越多的互联网数据会存储在区块链上;可参见专利号:201910306004.5。

现有的共享经济数据存储在区块链上,区块链节点需要先将数据打包成区块;然后将区块完成共识后,存入区块链中。若采用工作量证明pow的共识方法,该上链流程需要60分钟左右;若采用授权股权证明dpos的方法,该上链流程需要15分钟左右;pow和dpos这两种共识方法,是目前区块链系统的主流共识方法。当用户需要将知识付费数据(例如:千聊课程、知乎课程等互联网知识付费平台数据)上链时,动辄十几分钟的上链时间,会影响用户使用区块链技术的体验。

因此,如何针对共享经济数据上链存储,进而缩短用户数据上链的时间,成为亟待解决的问题。

以上描述仅仅为了方便理解,并不应限定为本申请的现有技术。



技术实现要素:

基于上述问题,本申请提供一种在区块链上知识付费数据的存储方法及其装置,该方法采用实用拜占庭共识算法(pbft)对每条需要存储的知识付费数据进行验证,验证通过后;该验证后的数据被出块节点打包成区块上链,出块节点不需要再次对该验证后的数据进行验证,进而极大的缩短了知识付费数据的上链时间,提高了用户体验。

本申请第一方面公开了一种在区块链上知识付费数据的存储方法,区块链系统包括存储节点和出块节点,出块节点用于将知识付费数据打包成区块上链,存储节点通过本地数据库存储所述知识付费数据,所述方法应用于出块节点中,包括:

接收用户设备发送的知识付费数据存储请求,所述知识付费数据包括知识付费数据id、用户id、用户设备私钥签名以及用户设备公钥;

选择预定数量的存储节点,将所述知识付费数据发送给所述预定数量的存储节点,以使所述预定数量的存储节点采用实用拜占庭算法对所述知识付费数据进行共识验证;

接收所述预定数量存储节点发送的存储证明,所述存储证明包括完成验证的所述知识付费数据、各存储节点的存储地址、各存储节点的私钥签名以及各存储节点的公钥;

将所述存储证明发送给所述用户设备,以提示用户设备的所述知识付费数据已被存储。

在一种可能的实施方式中,所述方法还包括:所述出块节点从数据池中获取所述知识付费数据,所述数据池包括已被所述预定数量存储节点验证过的知识付费数据;

将所述知识付费数据打包成区块上链,以使所述用户设备通过所述知识付费数据id或者用户id查询所述知识付费数据。

在一种可能的实施方式中,所述知识付费数据包括知识课程开课数据、知识课程收藏数据、知识课程购买数据、知识课程浏览数据以及知识课程的评价数据中的一种或多种。

在一种可能的实施方式中,所述预定数量为3m+1,m≥1,且m为整数。

在一种可能的实施方式中,所述方法还包括:所述出块节点接收所述用户设备的积分抵押请求;

根据所述积分抵押请求中积分数量,给所述用户设备分配对应的存储空间权限;

给所述用户设备发送所述存储空间权限,所述存储空间权限=单位时间存空间权限x存储时间。

在一种可能的实施方式中,所述出块节点接收用户设备发送的知识付费数据存储请求,之后,还包括:

所述出块节点对所述用户设备的存储空间权限进行校验;

确认所述用户设备存储空间权限≥所述知识付费数据存储需要的存储空间权限,从所述用户设备存储空间权限中扣除所述知识付费数据存储需要的存储空间权限。

在一种可能的实施方式中,所述出块节点接收所述用户设备发送的积分解抵押请求;

获取所述用户设备的剩余空间存储权限;

将所述剩余空间存储权限对应的积分发送给所述用户设备。

在一种可能的实施方式中,所述预定数量的存储节点中各存储节点宕机率的乘积小于预设宕机率阈值。

在一个可能的实施方式中,m=1,即4个存储节点做实用拜占庭算法(pbft)共识。

在一个可能的实施方式中,单位时间为一天、一周或者一个月。

本申请第二方面公开了在区块链上知识付费数据的存储装置,区块链系统包括存储节点和出块节点,出块节点用于将知识付费数据打包成区块上链,存储节点通过本地数据库存储所述知识付费数据,所述方法应用于出块节点中,所述出块节点包括接收单元、处理单元以及发送单元;其中,

所述接收单元接收用户设备发送的知识付费数据存储请求,所述知识付费数据包括知识付费数据id、用户id、用户设备私钥签名以及用户设备公钥;

所述处理单元选择预定数量的存储节点,将所述知识付费数据发送给所述预定数量的存储节点,以使所述预定数量的存储节点采用实用拜占庭算法对所述知识付费数据进行共识验证;

所述接收单元接收所述预定数量存储节点发送的存储证明,所述存储证明包括完成验证的所述知识付费数据、各存储节点的存储地址、各存储节点的私钥签名以及各存储节点的公钥;

所述发送单元将所述存储证明发送给所述用户设备,以提示用户设备的所述知识付费数据已被存储。

在一种可能的实施方式中,所述处理单元从数据池中获取所述知识付费数据,所述数据池包括已被所述预定数量存储节点验证过的知识付费数据;

所述处理单元将所述知识付费数据打包成区块上链,以使所述用户设备通过所述知识付费数据id或者用户id查询所述知识付费数据。

在一种可能的实施方式中,所述知识付费数据包括知识课程开课数据、知识课程收藏数据、知识课程购买数据、知识课程浏览数据以及知识课程的评价数据中的一种或多种。

在一种可能的实施方式中,所述预定数量为3m+1,m≥1,且m为整数。

本申请中,区块链系统中的几个存储节点,通过pbft对知识付费数据完成共识验证,就可以告诉用户该知识付费数据已经被存储;出块节点只需要将该被验证的知识付费数据打包成区块,上链即可;因为该知识付费数据已经被验证过,不需要出块节点再次发起共识验证,该知识付费数据一定会上链;此外,几个存储节点进行pbft共识验证,速度较快,现对于dpos共识或pow共识要快的多;用户能够直接接收到区块链系统的知识付费数据被存储的反馈,直接提升用户的体验。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请公开的一种区块链系统与终端设备的架构示意图;

图2为本申请公开的一种在区块链上知识付费数据的存储方法流程示意图;

图3为本申请公开的一种知识付费数据同步存储设备结构示意图;

图4为本申请公开的一种在区块链上知识付费数据的存储装置结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请中的“第一”“第二”仅仅是便于理解,给技术词做区分,并不理解为先后,或作为限制性的理解。

为便于对本发明实施例的理解,下面将结合附图以具体实施例作进一步的解释说明,实施例并不构成对本发明实施例的限定。

如图1所示,在区块链上知识付费数据的存储方法,区块链系统包括存储节点和出块节点,出块节点用于将知识付费数据打包成区块上链,存储节点通过本地数据库存储所述知识付费数据。

如图2所示,所述方法应用于出块节点中,包括步骤s201-s204。

s201、接收用户设备发送的知识付费数据存储请求,所述知识付费数据包括知识付费数据id、用户id、用户设备私钥签名以及用户设备公钥。

s202、选择预定数量的存储节点,将所述知识付费数据发送给所述预定数量的存储节点,以使所述预定数量的存储节点采用实用拜占庭算法对所述知识付费数据进行共识验证。

在一个示例中,所述预定数量为3m+1,m≥1,且m为整数。

在一个示例中,m=1,即4个存储节点做实用拜占庭算法(pbft)共识。

此时,进行pbft共识的存储节点数量越少,进行共识验证的时间越短,返回给用户存储证明的时间越短,用户体验越好。并且,经过pbft共识验证过的知识付费数据,不需要再次被出块节点验证,从而节省了出块节点进行验证的时间;与此同时,出块节点一定会从数据池中获取数据进行打包,保证了经过验证的数据池中的知识付费数据一定会上链,即返回存储证明给用户时,相当于知识付费数据已经上链。

此外,存储节点也会将经过验证的知识付费数据,存储在本地数据库中。

s203、接收所述预定数量存储节点发送的存储证明,所述存储证明包括完成验证的所述知识付费数据、各存储节点的存储地址、各存储节点的私钥签名以及各存储节点的公钥。

在一个示例中,所述预定数量的存储节点中各存储节点宕机率的乘积小于预设宕机率阈值。从而可以保证整个存储节点的高可用性。

s204、将所述存储证明发送给所述用户设备,以提示用户设备的所述知识付费数据已被存储。

需要说明的是,本申请中经过预定数量存储节点验证过的知识付费数据,会被放入数据池中,出块节点直接从数据池中获取经过验证的知识付费数据,打包成区块后上链,耗时短;区别于现有技术中,出块节点打包成区块后,还需要进行共识验,耗费时间的方式。不仅提高了用户体验,还节省了区块链系统的资源消耗,能够提升了区块链系统的性能。

在一个示例中,所述方法还包括:所述出块节点从数据池中获取所述知识付费数据,所述数据池包括已被所述预定数量存储节点验证过的知识付费数据;将所述知识付费数据打包成区块上链,以使所述用户设备通过所述知识付费数据id或者用户id查询所述知识付费数据。

在一个示例中,所述知识付费数据包括知识课程开课数据、知识课程收藏数据、知识课程购买数据、知识课程浏览数据以及知识课程的评价数据中的一种或多种。

在一个示例中,所述方法还包括:所述出块节点接收所述用户设备的积分抵押请求;根据所述积分抵押请求中积分数量,给所述用户设备分配对应的存储空间权限;给所述用户设备发送所述存储空间权限,所述存储空间权限=单位时间存空间权限x存储时间。

上述中,用户设备通过积分抵押的方式才能使用本申请的区块链系统数据存储服务,从而避免了用户过度使用区块链系统的存储资源。

在一个示例中,单位时间为一天、一周或者一个月。

在一个示例中,所述出块节点接收用户设备发送的知识付费数据存储请求,之后,还包括:所述出块节点对所述用户设备的存储空间权限进行校验;确认所述用户设备存储空间权限≥所述知识付费数据存储需要的存储空间权限,从所述用户设备存储空间权限中扣除所述知识付费数据存储需要的存储空间权限。

在一个示例中,所述方法还包括:所述出块节点接收所述用户设备发送的积分解抵押请求;获取所述用户设备的剩余空间存储权限;将所述剩余空间存储权限对应的积分发送给所述用户设备。

本申请中,区块链系统中的几个存储节点,通过pbft对知识付费数据完成共识验证,就可以告诉用户该知识付费数据已经被存储;出块节点只需要将该被验证的知识付费数据打包成区块,上链即可;因为该知识付费数据已经被验证过,不需要出块节点再次发起共识验证,该知识付费数据一定会上链;此外,几个存储节点进行pbft共识验证,速度较快,现对于dpos共识或pow共识要快的多;用户能够直接接收到区块链系统的知识付费数据被存储的反馈,直接提升用户的体验。

如图4所示,在区块链上知识付费数据的存储装置,区块链系统包括存储节点和出块节点,出块节点用于将知识付费数据打包成区块上链,存储节点通过本地数据库存储所述知识付费数据,所述方法应用于出块节点中,所述出块节点包括接收单元、处理单元以及发送单元。

所述接收单元接收用户设备发送的知识付费数据存储请求,所述知识付费数据包括知识付费数据id、用户id、用户设备私钥签名以及用户设备公钥;

所述处理单元选择预定数量的存储节点,将所述知识付费数据发送给所述预定数量的存储节点,以使所述预定数量的存储节点采用实用拜占庭算法对所述知识付费数据进行共识验证;

所述接收单元接收所述预定数量存储节点发送的存储证明,所述存储证明包括完成验证的所述知识付费数据、各存储节点的存储地址、各存储节点的私钥签名以及各存储节点的公钥;

所述发送单元将所述存储证明发送给所述用户设备,以提示用户设备的所述知识付费数据已被存储。

在一个示例中,所述处理单元从数据池中获取所述知识付费数据,所述数据池包括已被所述预定数量存储节点验证过的知识付费数据;所述处理单元将所述知识付费数据打包成区块上链,以使所述用户设备通过所述知识付费数据id或者用户id查询所述知识付费数据。

在一个示例中,所述知识付费数据包括知识课程开课数据、知识课程收藏数据、知识课程购买数据、知识课程浏览数据以及知识课程的评价数据中的一种或多种。

在一个示例中,所述预定数量为3m+1,m≥1,且m为整数。

需要说明的是,上述装置实施例中,与方法实施例中相同或相近的部分可以相互参见,在装置实施例中不在赘述。

本申请中,区块链系统中的几个存储节点,通过pbft对知识付费数据完成共识验证,就可以告诉用户该知识付费数据已经被存储;出块节点只需要将该被验证的知识付费数据打包成区块,上链即可;因为该知识付费数据已经被验证过,不需要出块节点再次发起共识验证,该知识付费数据一定会上链;此外,几个存储节点进行pbft共识验证,速度较快,现对于dpos共识或pow共识要快的多;用户能够直接接收到区块链系统的知识付费数据被存储的反馈,直接提升用户的体验。

本申请又公开了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任意实施例中的方法。

本申请还公开了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意实施例中的方法。

图3示出了一种计算机设备结构示意图,该计算机设备可以包括:处理器310、存储器320、输入/输出接口330、通信接口340和总线350。其中处理器340、存储器320、输入/输出接口330和通信接口340通过总线350实现彼此之间在设备内部的通信连接。

处理器310可以采用通用的cpu(centralprocessingunit,中央处理器)、微处理器、应用专用集成电路(applicationspecificintegratedcircuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

存储器320可以采用rom(readonlymemory,只读存储器)、ram(randomaccessmemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器320可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器320中,并由处理器310来调用执行。

输入/输出接口330用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

通信接口340用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。

总线350包括一通路,在设备的各个组件(例如处理器310、存储器320、输入/输出接口330和通信接口340)之间传输信息。

需要说明的是,尽管上述设备仅示出了处理器310、存储器320、输入/输出接口330、通信接口340以及总线350,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的范围之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1