推荐基于区块链的数字权益系统的制作方法

将乐信息网 http://www.jianglexinxi.cn 2020-10-18 04:26 出处:网络
这里写的推荐基于区块链的数字权益系统的制作方法,可以跟着小编一起阅读下去

这里写的推荐基于区块链的数字权益系统的制作方法,可以跟着小编一起阅读下去


本发明涉及区块链技术领域,特别涉及一种基于区块链的数字权益系统。



背景技术:

数字权益系统,例如积分系统,是很多企业面向用户开放的权益平台。例如银行、电信运营商、航空公司、互联网公司等都会有面向其用户的积分系统。由于很多机构本身没有积分运营的经验和能力,需要依赖外部服务商提供运营服务。机构和服务商之间彼此以商业信任为前提,机构相信服务商可以做好基于其发行积分的用户运营,为用户提供积分兑换商品和服务,帮助机构实现其运营目标;服务商相信机构可以为其向用户承诺的数字权益进行刚性兑现。

现有的积分系统,无论是机构自身运营或者依赖服务商运营,均存在数据被篡改的风险,积分系统面临着安全隐患。



技术实现要素:

本发明有鉴于上述的现有状况而完成的,其目的在于提供一种基于区块链的数字权益系统,有效防止积分系统的数据被篡改,提升积分系统的安全性。

为了实现上述目的,本发明实施方式提供如下技术方案:

本发明提供一种基于区块链的数字权益系统,所述数字权益系统基于联盟链建立,所述联盟链包括:

共识节点,所述共识节点通过记账程序记录区块链账本,在所述共识节点上搭建核心数字权益系统;

成员节点,在所述成员节点上搭建商城系统,所述商城系统产生交易订单;以及

客户端节点,运行于终端设备;

其中,所述成员节点从所述共识节点同步所述区块链账本,所述客户端节点可以向所述共识节点或者成员节点发起交易请求,在所述共识节点和所述成员节点运行关系数据库,所述关系数据库包括订单表,所述订单表用于保存所述交易订单,所述记账程序从所述订单表读取所述交易订单并保存在所述区块链账本。在这种情况下,一方面,基于现有的数字权益系统大部分通过关系数据库实现,采用本发明涉及的数字权益系统,可以最小改造成本完成对现有数字权益系统的改造;另一方面,充分利用了现有的关系数据库已具备的较好的每秒钟事务处理(tps)性能,可以快速地确认交易结果,可以满足数字权益系统的场景需求。

其中,所述区块链账本包括区块链文件和kv数据库,所述订单表包括自增id、上链状态,所述上链状态包括已上链和未上链,所述记账程序在每一个记账周期开始,判断所述上链状态;所述记账程序将所述未上链的所述交易订单存入所述订单表并根据所述自增id进行排序;所述数字权益系统判断当前所述区块链文件是否已满,如果已满,则创建新的所述区块链文件,将所述新的区块链文件作为当前区块链文件;向所述当前区块链文件中追加新区块;根据所述新区块的所述交易订单向所述kv数据库中同步;所述记账周期结束,向其他所述成员节点同步所述新区块中的所述交易订单。由此,通过关系数据库的订单表快速实现了交易排序。

其中,所述订单表还包括唯一标识所述交易订单的所述数字权益系统的交易编号、下游所述商城系统的系统代码、由所述下游商城系统提供的交易编号、交易积分、用户积分账号、服务商或商户积分账号、下单时间、交易发送方签名、交易发送方公钥。由此,交易信息可以完整地存入区块链文件。

其中,所述记账程序将所述未上链的所述交易订单存入所述订单表并根据所述自增id进行排序,具体包括:根据所述自增id的大小进行排序,计算所述交易订单的merkle树的根节点数据,拼接所述区块头和区块体,生成区块。在这种情况下,未上链的交易订单可以依次存入区块链文件中。

其中,预先设定固定数量的所述交易订单存储于一个所述区块,并设定超时时间,当达到所述超时时间,结束所述区块的存储。由此,避免了交易量低时,因长时间不能凑齐一个区块而导致交易数据迟迟无法固化。

其中,所述记账程序每记录一个所述区块,将所述区块发送至所有的所述成员节点,所述成员节点将所述区块与自身的区块进行比较,判断是否为最新区块,并对所述区块的数据进行验证,若是所述最新区块且验证正确,则将所述最新区块存入所述成员节点本地,并更新所述kv数据库。

其中,所述区块头包括版本号、上一区块哈希值、所述merkle树根节点、时间戳、随机数。由此,区块头中添加版本号可以在系统升级时导致区块数据变化时,识别区块。

其中,所述成员节点向所述共识节点发送加入申请,所述共识节点认证所述成员节点加入所述联盟链。

其中,所述共识节点基于公钥基础设施机制认证所述成员节点加入所述联盟链。

其中,所述共识节点定时向所述成员节点同步所述区块链账本,所述成员节点将所述区块链账本同步至本地区块链账本,所述成员节点基于所述本地区块链账本设置查询接口。在这种情况下,交易数据的查询无需经过共识节点完成,有效地均衡了客户端的查询负载。

根据本发明所提供的基于区块链的数字权益系统,一方面,基于现有的数字权益系统大部分通过关系数据库实现,采用本发明涉及的数字权益系统,可以最小改造成本完成对现有数字权益系统的改造;另一方面,充分利用了现有的关系数据库已具备的较好的每秒钟事务处理(tps)性能,可以快速地确认交易结果,可以满足数字权益系统的场景需求。

附图说明

图1示出了本发明的实施方式所涉及的基于区块链的数字权益系统的结构示意图。

具体实施方式

以下,参考附图,详细地说明本发明的优选实施方式。在下面的说明中,对于相同的部件赋予相同的符号,省略重复的说明。另外,附图只是示意性的图,部件相互之间的尺寸的比例或者部件的形状等可以与实际的不同。

本发明实施方式涉及一种基于区块链的数字权益系统。所述数字权益系统可应用于银行、电信运营商、航空公司、互联网公司,用户利用积分可兑换相应权益,例如奖品等。

如图1所示,基于区块链的数字权益系统基于联盟链建立。联盟链包括:共识节点10、成员节点20以及客户端节点30。共识节点10通过记账程序记录区块链账本。在共识节点10上搭建核心数字权益系统。在成员节点20上搭建商城系统。商城系统产生交易订单。客户端节点30运行于终端设备。其中,成员节点20从共识节点10同步区块链账本。客户端节点30可以向共识节点10或者成员节点20发起交易请求。在共识节点10和成员节点20运行关系数据库。关系数据库包括订单表。订单表用于保存交易订单。记账程序从订单表读取交易订单并保存在区块链账本。在这种情况下,一方面,基于现有的数字权益系统大部分通过关系数据库实现,采用本发明涉及的数字权益系统,可以最小改造成本完成对现有数字权益系统的改造;另一方面,充分利用了现有的关系数据库已具备的较好的每秒钟事务处理(tps)性能,可以快速地确认交易结果,并且也可以完成对交易排序、区块生成、账本数据的持久化工作,可以满足数字权益系统的场景需求。

在一些示例中,在共识节点10运行核心数字权益系统的服务、关系数据库、记账程序、区块链账本。

在一些示例中,在成员节点20运行商城系统(外围系统)及关系数据库、区块链通信程序、区块链账本。

在一些示例中,商城系统可以是积分商城。

在本实施方式中,数字权益系统的参与者可以包括:

发行机构:维护所有用户积分和所有交易的账本;

服务商:维护基于积分的商城系统,为用户提供积分兑换商品或服务;

用户:积分的拥有者,可以用积分兑换商品或服务。

在本实施方式中,共识节点10由发行机构维护。成员节点20由服务商维护。客户端节点30由服务商维护。

在本实施方式中,终端设备可以是移动终端,例如手机。

在一些示例中,成员节点20可以向共识节点10发送加入申请。共识节点10认证成员节点20加入联盟链。

在本实施方式中,共识节点10基于公钥基础设施机制认证成员节点20加入联盟链。

在本实施方式中,共识节点10负责所有成员节点20、客户端节点30及用户的证书签发。加入联盟链的成员节点20或客户节点30,生成证书以后,在使用证书前向共识节点发起证书签名请求。共识节点10收到请求后,签署证书,并将签发后的证书发送回成员节点20或客户端节点。

在一些示例中,客户端节点可以运行客户端应用程序。

在一些示例中,成员节点、客户端节点与共识节点三者之间的通信,均要使用各自的证书做ssl双向认证。

在本实施方式中,共识节点10定时向成员节点20同步区块链账本。成员节点20将区跨链账本同步至本地区块链账本。成员节点20基于本地区块链账本设置查询接口。在这种情况下,交易数据的查询无需经过共识节点完成,有效地均衡了客户端的查询负载。

在本实施方式中,数字权益系统的交易流程如下:

step1:用户在客户端应用程序中选择要兑换的权益。权益可以是商城系统中的商品。每个商品都标有所要消耗的不同的积分价格。

step2:用户将所选择的商品合成一个订单,向商城系统请求下单。下单的请求参数包括:

{

uid:用户id;

commlist:商品列表,包括要兑换的商品及数量;

score:商品列表对应的积分总额;

mchid:商户id;

timestamp:下单时间;

}

step3:商城系统收到请求参数后,生成订单编号(txid),并向数字权益系统发送支付交易请求,把订单信息发送至数字权益系统。请求参数进一步包括:

{

syscode:商城系统代号

txid:商城订单编号

订单信息:{

uid:用户id;

commlist:商品列表,每个商品项包括商品、数量、每项商品对应的积分额;

score:商品列表对应的积分总额

mchid:商户id

timestamp:下单时间

}

}

step4:数字权益系统收到商城系统的支付交易请求后,判断用户积分余额是否充足,并锁定用户积分账户。如果充足,为该订单生成支付交易编号(pid),与syscode+txid对应。否则直接返回余额不足导致下单失败。

在这种情况下,由于数字权益系统可能会对应不同的商城应用,不同的商城应用可能会有相同的txid。为了区分不同商城应用的支付交易,因此在数字权益系统要为每一个订单分配唯一的支付交易编号。生成交易编号以后,要把交易编号返回给商城。返回参数为:

{

pid:积分系统交易编号

}

step5:商城系统会把商城系统支付单号和积分系统交易编号返回给用户端。

返回参数为:

{

txid:商城系统订单编号

pid:积分系统交易编号

}

step6:用户输入交易密码,对交易信息用私钥加签。用户端向数字权益系统以密文形式发送支付交易请求。发送请求参数为:

{

pid:积分系统交易编号

txid:商城系统订单标号

syscode:商城系统代号

uid:用户

score:交易积分

mchid:商户id

timestamp:下单时间

sign:签名

pubkey:用户公钥

}

step7:商城系统收到交易请求后,首先验证签名是否为uid用户的签名,其次确认用户积分余额是否充足。验证成功,则交易生效;否则交易失败。

step8:商城系统收到交易结果后,再返回用户端。

step9:商城系统交易生效以后,要扣除用户积分,解锁用户积分账户。

step10:在交易事务完结后,对交易数据做持久化处理。持久化处理主要是把数据写入区块链文件中。

step11:成员节点从共识节点中同步区块链文件,更新各自的账本数据。

在本实施方式中,区块链账本包括区块链文件和kv数据库。订单表包括自增id、上链状态。上链状态包括已上链和未上链。记账程序对交易数据的处理过程如下:

step21:记账程序在每一个记账周期开始,判断上链状态;

step22:记账程序将未上链的交易订单存入订单表并根据自增id进行排序;

step23:数字权益系统判断当前区块链文件是否已满,如果已满,则创建新的区块链文件,将新的区块链文件作为当前区块链文件;

step24:向当前区块链文件中追加新区块;根据新区块的交易订单向kv数据库中同步;

step25:记账周期结束,向其他成员节点同步新区块中的交易订单。

由此,通过关系数据库的订单表快速实现了交易排序。

在本实施方式中,订单表还包括唯一标识交易订单的数字权益系统的交易编号、下游商城系统的系统代码、由下游商城系统提供的交易编号、交易积分、用户积分账号、服务商或商户积分账号、下单时间、交易发送方签名、交易发送方公钥(详见表1)。由此,交易信息可以完整地存入区块链文件。

表1订单表结构

在一些示例中,state字段是表示交易是否上链,其他字段均是数字权益系统收到的交易信息。mchid表示商城系统的服务商,或者是商城系统中的商品供应商,具体依据服务商与供应商之间的业务关系和资金结算关系设定。商城系统的运营服务商或供应商收取积分后,由积分发行机构与其进行结算。如果服务商或商品供应商均没有积分账户,那么mchid统一用共识节点的账号,表示发行机构将发放出去的积分回收。

在本实施方式中,记账程序将未上链的交易订单存入订单表并根据自增id进行排序,具体包括:根据自增id的大小进行排序,计算交易订单的merkle树的根节点数据,拼接区块头和区块体,生成区块。在这种情况下,未上链的交易订单可以依次存入区块链文件中。

在一些示例中,根据自增id由大到小进行排序。

在本实施方式中,预先设定固定数量的交易订单存储于一个区块,并设定存储于区块的超时时间,当达到超时时间,结束所述区块的存储。由此,避免了交易量低时,因长时间不能凑齐一个区块而导致交易数据迟迟无法固化。

在本实施方式中,记账程序每记录一个区块,将区块发送至所有的成员节点,成员节点将区块与该成员节点自身的区块进行比较,判断是否为最新区块,并对区块的数据进行验证,若是最新区块且验证正确,则将最新区块存入成员节点的本地,并更新kv数据库。

在本实施方式中,区块头包括版本号、上一区块哈希值、merkle树根节点、时间戳、随机数。由此,区块头中添加版本号可以在系统升级时导致区块数据变化时,识别区块。

以上所述的实施方式,并不构成对该技术方案保护范围的限定。任何在上述实施方式的精神和原则之内所作的修改、等同更换和改进等,均应包含在该技术方案的保护范围之内。


技术特征:

1.一种基于区块链的数字权益系统,其特征在于,所述数字权益系统基于联盟链建立,所述联盟链包括:

共识节点,所述共识节点通过记账程序记录区块链账本,在所述共识节点上搭建核心数字权益系统;

成员节点,在所述成员节点上搭建商城系统,所述商城系统产生交易订单;以及

客户端节点,运行于终端设备;

其中,所述成员节点从所述共识节点同步所述区块链账本,所述客户端节点可以向所述共识节点或者成员节点发起交易请求,在所述共识节点和所述成员节点运行关系数据库,所述关系数据库包括订单表,所述订单表用于保存所述交易订单,所述记账程序从所述订单表读取所述交易订单并保存在所述区块链账本。

2.如权利要求1所述的基于区块链的数字权益系统,其特征在于,所述区块链账本包括区块链文件和kv数据库,所述订单表包括自增id、上链状态,所述上链状态包括已上链和未上链,所述记账程序在每一个记账周期开始,判断所述上链状态;所述记账程序将所述未上链的所述交易订单存入所述订单表并根据所述自增id进行排序;所述数字权益系统判断当前所述区块链文件是否已满,如果已满,则创建新的所述区块链文件,将所述新的区块链文件作为当前区块链文件;向所述当前区块链文件中追加新区块;根据所述新区块的所述交易订单向所述kv数据库中同步;所述记账周期结束,向其他所述成员节点同步所述新区块中的所述交易订单。

3.如权利要求2所述的基于区块链的数字权益系统,其特征在于,所述订单表还包括唯一标识所述交易订单的所述数字权益系统的交易编号、下游所述商城系统的系统代码、由所述下游商城系统提供的交易编号、交易积分、用户积分账号、服务商或商户积分账号、下单时间、交易发送方签名、交易发送方公钥。

4.如权利要求2所述的基于区块链的数字权益系统,其特征在于,所述记账程序将所述未上链的所述交易订单存入所述订单表并根据所述自增id进行排序,具体包括:根据所述自增id的大小进行排序,计算所述交易订单的merkle树的根节点数据,拼接所述区块头和区块体,生成区块。

5.如权利要求4所述的基于区块链的数字权益系统,其特征在于,预先设定固定数量的所述交易订单存储于一个所述区块,并设定超时时间,当达到所述超时时间,结束所述区块的存储。

6.如权利要求4所述的基于区块链的数字权益系统,其特征在于,所述记账程序每记录一个所述区块,将所述区块发送至所有的所述成员节点,所述成员节点将所述区块与自身的区块进行比较,判断是否为最新区块,并对所述区块的数据进行验证,若是所述最新区块且验证正确,则将所述最新区块存入所述成员节点本地,并更新所述kv数据库。

7.如权利要求4所述的基于区块链的数字权益系统,其特征在于,所述区块头包括版本号、上一区块哈希值、所述merkle树根节点、时间戳、随机数。

8.如权利要求1所述的基于区块链的数字权益系统,其特征在于,所述成员节点向所述共识节点发送加入申请,所述共识节点认证所述成员节点加入所述联盟链。

9.如权利要求8所述的基于区块链的数字权益系统,其特征在于,所述共识节点基于公钥基础设施机制认证所述成员节点加入所述联盟链。

10.如权利要求1所述的基于区块链的数字权益系统,其特征在于,所述共识节点定时向所述成员节点同步所述区块链账本,所述成员节点将所述区块链账本同步至本地区块链账本,所述成员节点基于所述本地区块链账本设置查询接口。

技术总结
本发明提供了一种基于区块链的数字权益系统,基于联盟链建立,联盟链包括:共识节点,所述共识节点通过记账程序记录区块链账本,在所述共识节点上搭建核心数字权益系统;成员节点,在所述成员节点上搭建商城系统,所述商城系统产生交易订单;以及客户端节点;其中,所述成员节点从所述共识节点同步所述区块链账本,所述客户端节点可以向所述共识节点或者成员节点发起交易请求,在所述共识节点和所述成员节点运行关系数据库,所述关系数据库包括订单表,所述订单表用于保存所述交易订单,所述记账程序从所述订单表读取所述交易订单并保存在所述区块链账本。本发明提供的数字权益系统,有效防止积分系统的数据被篡改,提升积分系统的安全性。

技术研发人员:林威;王伟志
受保护的技术使用者:深圳市二十一天网络科技有限公司
技术研发日:2020.02.17
技术公布日:2020.06.26

推荐基于区块链的数字权益系统的制作方法的相关内容如下:

本文标题:推荐基于区块链的数字权益系统的制作方法
http://www.jianglexinxi.cn/yanergaozhi/522209.html

0

精彩评论

暂无评论...
验证码 换一张
取 消