程序产品销售方法,区块链节点,存储介质及区块链系统与流程

文档序号:17360016发布日期:2019-04-09 21:59阅读:144来源:国知局
程序产品销售方法,区块链节点,存储介质及区块链系统与流程

本公开涉及应用程序监控领域,具体地,涉及一种程序产品销售方法,区块链节点,存储介质及区块链系统。



背景技术:

目前,软件开发商开发出来的程序产品在进行销售时,为了追踪产品的使用情况,通常会针对每一售出的程序产品部署监控探针,监控探针是应用获取监控数据的重要手段,同时也是产品计费的依据,即可以根据应用监控探针的数量进行计费。

程序产品的销售包括合同对比,制作授权证书,授权写入探针,部署探针等环节。相关技术中,各个环节均由人工进行,并且各个环节对技术人员的专业性要求较高,既浪费时间又增加了各环节人力成本。随着大型软件开发商越来越多使用代理商分区域、逐层代理等销售模式,传统通过人工分发产品授权证书管理方式的弱点日益凸显,除了效率低下且浪费人力成本,同时对代理商的销售情况也无法做到真实有效的跟踪。



技术实现要素:

为了克服现有技术中存在的问题,本公开提供一种程序产品销售方法,区块链节点,存储介质及区块链系统。

为了实现上述目的,本公开实施例第一方面,提供一种程序产品销售方法,所述方法应用于区块链系统,所述方法包括:

获取程序产品的销售合同信息,所述销售合同信息包括探针类型信息;

对所述销售合同信息进行合同验证;

在合同验证成功后,根据所述探针类型信息生成目标程序产品的监控探针;

将所述监控探针写入区块链的区块中,得到区块地址;

将所述目标程序产品以及所述区块地址发送给购买方,所述区块地址用于所述购买方下载所述监控探针以使用所述目标程序产品。

可选地,所述销售合同信息还包括购买方身份信息,所述方法还包括:

将所述监控探针的唯一标识与购买方身份信息的对应关系写入区块链的区块中。

可选地,所述方法还包括:

接收所述监控探针推送的所述目标应用程序的使用信息,所述使用信息包括使用所述目标应用程序的用户身份信息;

查询所述区块链中存储的与所述监控探针唯一标识对应的购买方身份信息;

判断所述购买方身份信息与使用所述目标应用程序的用户身份信息是否一致,以根据判断结果确定所述目标应用程序是否被转用,其中,在所述购买方身份信息与所述使用所述目标应用程序的用户身份信息不一致时,表明所述目标应用程序被转用。

可选地,所述销售合同信息是代理商与购买方签订,并发送给所述区块链系统的,所述销售合同信息包括代理商信息,所述对所述销售合同信息进行合同验证,包括:

根据所述代理商信息对所述代理商进行身份验证,以确定所述代理商是否为软件开发商授权代理销售的商家。

可选地,所述区块链系统通过raft共识算法选举领导节点,该领导节点用于处理来自所述区块链系统外部的请求,所述方法包括:

根据所述区块链系统中每一节点分发的监控探针的数量,设定每一节点的权重,其中,权重大小与所述监控探针数量正相关;

在所述区块链系统每次选举领导节点时,每一节点对该节点获知的权重值最大的节点进行投票,其中,投票数最高的节点作为本次选举产生的领导节点。

本公开实施例第二方面提供一种区块链节点,包括:

获取模块,用于获取程序产品的销售合同信息,所述销售合同信息包括探针类型信息;

验证模块,用于对所述销售合同信息进行合同验证;

探针生成模块,用于在合同验证成功后,根据所述探针类型信息生成目标程序产品的监控探针;

第一写入模块,用于将所述监控探针写入区块链的区块中,得到区块地址;

产品发放模块,用于将所述目标程序产品以及所述区块地址发送给购买方,所述区块地址用于所述购买方下载所述监控探针以使用所述目标程序产品。

可选地,所述销售合同信息还包括购买方身份信息,所述区块链节点还包括:

第二写入模块,用于将所述监控探针的唯一标识与购买方身份信息的对应关系写入区块链的区块中。

可选地,所述区块链节点还包括:

接收模块,用于接收所述监控探针推送的所述目标应用程序的使用信息,所述使用信息包括使用所述目标应用程序的用户身份信息;

查询模块,用于查询所述区块链中存储的与所述监控探针唯一标识对应的购买方身份信息;

判断模块,用于判断所述购买方身份信息与使用所述目标应用程序的用户身份信息是否一致,以根据判断结果确定所述目标应用程序是否被转用,其中,在所述购买方身份信息与所述使用所述目标应用程序的用户身份信息不一致时,表明所述目标应用程序被转用。

可选地,所述销售合同信息是代理商与购买方签订,并发送给所述区块链节点的,所述销售合同信息包括代理商信息,所述验证模块包括:

验证子模块,用于根据所述代理商信息对所述代理商进行身份验证,以确定所述代理商是否为软件开发商授权代理销售的商家。

可选地,所述区块链节点是区块链系统通过raft共识算法选举出的领导节点,其中,所述区块链节点还包括:

投票模块,用于在所述区块链系统每次选举领导节点时,对所述区块链系统中,所述区块链节点获知的权重值最大的节点进行投票,其中,投票数最高的节点作为本次选举产生的领导节点,并且,所述区块链系统中每一区块链节点的权重大小与该区块链节点分发的监控探针数量正相关。

本公开实施例第三方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述方法的步骤。

本公开实施例第四方面提供另一种区块链节点,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面所述方法的步骤。

本公开实施例第五方面提供一种区块链系统,所述区块链系统包括多个区块链节点;

任一区块链节点在作为领导节点时,用于执行第一方面所述方法的步骤。

采用本公开提供的技术方案,至少能够达到如下技术效果:

区块链系统具备信息无法篡改,可追溯,自动监管等特性,本公开技术方案通过区块链系统执行程序产品销售过程中的合同验证环节,监控探针生成环节,并记录销售过程各个环节的信息,使得整个销售过程可追溯,便于查询,并且减少了技术人员参与,节省了人力资源。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是本公开实施例提供的一种程序产品销售方法的流程示意图;

图2是本公开实施例提供的一种程序产品销售过程的示意图;

图3是本公开实施例提供的一种区块链节点的结构示意图;

图4是本公开实施例提供的另一种区块链节点的结构示意图;

图5是本公开实施例提供的又一种区块链节点的结构示意图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

为了使本领域技术人员更容易理解本公开实施例提供的技术方案,下面首先对涉及到的相关技术进行简单介绍。

区块链是由区块链系统中所有节点共同参与维护的去中心化分布式数据库系统,它是由一系列基于密码学方法产生的数据块组成,每个数据块即为区块链中的一个区块。根据产生时间的先后顺序,区块被有序地链接在一起,形成一个数据链条,被形象地称为区块链。

区块链技术中涉及到的相关概念说明:

用户身份:区块链中的用户身份使用公钥表示,所述公钥所对应的私钥由用户掌握而不发布到网络,公钥通过特定的哈希和编码后成为“地址”,“地址”代表了用户,并可随意发布。

区块链数据写入:区块链节点通过向区块链网络发布“交易”(transaction)实现向区块链写入数据。交易中包含用户使用自己私钥对交易的签名,以证明用户的身份。交易被“矿工”(执行区块链共识竞争机制的区块链节点)记录入产生的新区块,然后发布到区块链网络,并被其他区块链节点验证通过和接受后,交易数据即被写入区块链。

区块链具有的特性:

去中心化:整个区块链系统没有中心化的硬件或者管理机构,任意节点之间的权利和义务都是均等的,且任一节点的损坏或者失去都会不影响整个系统的运作。因此也可以认为区块链具有极好的健壮性。

自动监管:区块链采用基于协商一致的规范和协议,比如一套公开透明的算法,这使得整个系统中的所有节点能够在去信任的环境自由安全的交换数据,使对人的信任改成了对机器的信任,任何人为的干预不起作用。

防篡改:一旦信息经过验证并添加至区块链,就会永久的存储起来,除非能够同时控制住系统中超过51%的节点,否则单个节点上对数据库的修改是无效的,因此区块链的数据稳定性和可靠性极高。

可追溯:从第一个区块开始,到最新产生的区块为止,区块链上存储了系统全部的历史数据。所有节点都在每一个区块上盖一个时间戳来记账,表示信息是这个时间写入的,从而形成了一个不可篡改、不可伪造的数据库,链上的每一条交易数据,都可以通过链式结构追本溯源,一笔一笔进行验证。

本公开实施例基于区块链系统,提供一种程序产品销售方法,如图1所示,该方法包括:

s101、获取程序产品的销售合同信息,所述销售合同信息包括探针类型信息。

示例地,购买方向代理商购买程序产品,其中,该代理商是已经与软件开放厂商签订代理合同并支付相关费用,获得身份验证的数字证书的代理商。这样,代理商与最终购买使用的购买方签订合同后,将销售合同信息发送给区块链系统。值得说明的是,本公开实施例中,区块链系统可以是软件开放厂商的一条私有链或者许可链,该区块链系统中各个节点可以通过共识算法(例如raft共识算法)选举出的领导节点,该领导节点用于负责处理来自客户端的请求,并且管理日志复制、以及与其他节点之间保持心跳以维持其领导者地位,在此种情况下,本公开实施例具体的执行主体为区块链系统中当前的领导节点。即,区块链系统中的领导节点获取代理商设备发送的销售合同信息。

s102、对所述销售合同信息进行合同验证。

该销售合同信息包括探针类型信息,还可以包括探针数量,购买方身份信息,代理商身份信息,费用支付信息等。则对该销售合同信息进行验证,可以包括根据预设的合同规范验证该销售合同是否符合规范,还可以包括根据所述代理商信息对所述代理商进行身份验证,以确定所述代理商是否为软件开发商授权代理销售的商家,即对该代理商的数字证书进行签名认证,认证通过后表明该代理商是软件开发商授权代理销售的商家。

s103、在合同验证成功后,根据所述探针类型信息生成目标程序产品的监控探针。

具体地,程序产品通常具备多个安装模式,不同模式下,程序产品具备的功能或者说权限不同,相应地,探针类型也不同,因此,根据购买方的意愿,可以在合同中确定探针类型信息。区块链系统通过在应用层与协议层之间部署的探针管理模块,可以根据探针类型信息,以及可能包括的探针数量信息,自动制作生成监控探针。

s104、将所述监控探针写入区块链的区块中,得到区块地址。

在具体实施时,可以将代理商信息,购买方身份信息,支付信息,探针类型信息,已生成的监控探针的唯一标识信息等写入区块链新的区块中进行存储。

s105、将所述目标程序产品以及所述区块地址发送给购买方,所述区块地址用于所述购买方下载所述监控探针以使用所述目标程序产品。

在具体实施时,对于具有权限控制的区块链系统,该区块链系统还可以针对购买方的身份信息为购买方授予可访问下载的权限,这样,在接收到某一购买方设备根据区块地址发送的下载请求时,可以对购买方设备进行权限认证,在确定该购买方设备具备访问下载的权限时,推送该区块地址对应区块存储的监控探针。

采用上述方法,通过区块链系统执行程序产品销售过程中的合同验证环节,监控探针生成环节,并记录销售过程各个环节的信息,使得整个销售过程可追溯,便于查询,并且减少了技术人员参与,节省了人力资源。特别是在多级分销模式下,相比现有技术中,本公开提供的技术方案,能够真实有效的跟踪程序产品的销售过程。

在本公开实施例的一种可能的实现方式中,所述销售合同信息还包括购买方身份信息,所述方法还包括:将所述监控探针的唯一标识与购买方身份信息的对应关系写入区块链的区块中。从而便于追溯查询每一售出的程序产品的购买方。

示例地,本领域技术人员应该知悉,应用监控探针可以定期向软件开发厂商的服务器推送产品运行期间收集到的运行信息,其中可以包括产品使用者的身份信息。这样,本公开实施例提供的方法还包括:接收监控探针推送的目标应用程序的使用信息,所述使用信息包括使用所述目标应用程序的用户身份信息;查询区块链中存储的与所述监控探针唯一标识对应的购买方身份信息;判断所述购买方身份信息与使用所述目标应用程序的用户身份信息是否一致,以根据判断结果确定所述目标应用程序是否被转用,其中,在所述购买方身份信息与所述使用所述目标应用程序的用户身份信息不一致时,表明所述目标应用程序被转用,从而实现售出程序产品的实际使用者的追踪。

可选地,区块链系统再向购买方发送程序产品之前,也可以将所述监控探针的唯一标识与购买方身份信息的对应关系,以及代理商信息等写入程序产品中,供购买方验证查询。

图2是一种本公开实施例提供的一种程序产品销售过程的示意图,如图所示,该过程涉及到购买方,代理商以及软件开发厂商三个主体,并且参照图中箭头,整个销售过程包括:

s21、购买产品过程:即购买方向代理商购买程序产品,签订合同。此时代理商已经同软件开发商签订代理合同并支付,并获得用于身份验证的数字证书。

s22、验证合同过程:即代理商发起验证合同申请,将购买方身份信息、购买探针类型、数量等发送至区块链系统的合同支付模块进行验证。

s23、验证身份信息过程:根据代理商的数字证书及合同中的信息,验证代理商身份。

s24、探针制作过程:根据合同中的探针类型、数量制作监控探针,生成该监控探针的唯一标识信息。

s25、写入区块过程:将代理商信息、购买方身份信息、合同支付信息、探针类型信息、探针唯一标识等写入区块链新的区块中。

s26、写入区块完毕:将该新的区块放入程序产品中,得到新的产品版本。

s27、产品交付:将程序产品及探针区块地址发给购买方。

这样,购买方根据探针区块地址中的信息下载监控探针写入程序产品后,即可开始使用程序产品。

值得说明的是,图2中所示的合同支付验证模块,身份验证模块,探针管理模块,探针监督模块可以是部署在区块链系统应用层与协议层之间的软件模块,用于实施完成对应的方法步骤。

由上述过程可知,产品多级分销模式下,监控探针的购买、交付以及使用均由区块链记录,整个过程公开透明、无法篡改、方便追溯。

下面说明结合本公开实施例的应用场景,对现有raft共识算法的改进。

raft共识算法用于基于log日志同步保持各个节点状态一致。并将服务器分为三种角色:

leader:即领导者,负责处理来自客户端的请求,管理日志复制、以及与follower保持心跳以维持其领导者地位。

follower:即追随者,负责响应来自leader的日志复制请求,响应来自candidate的选举请求。初始时所有节点均为follower。

candidate:即候选者,负责发起选举投票,raft启动后或leader宕机后,一个节点从follower转为candidate,并发起选举,选举成功后,由candidate转为leader。

现有的raft共识算法在选举投票时,是根据所有候选节点的存活时长进行的投票,即每一节点将票投给获知的存活时长最大的节点,最终投票数最大的节点作为新的领导节点。

而在本公开实施例提供的方法中,可以根据区块链系统中每一节点分发的监控探针的数量,设定每一节点的权重,其中,权重大小与所述监控探针数量正相关;在所述区块链系统每次选举领导节点时,每一节点对该节点获知的权重值最大的节点进行投票,其中,投票数最高的节点作为本次选举产生的领导节点。选举出的领导节点用于处理来自所述区块链系统外部的请求,例如执行图1所示的方法步骤。这样,保证了区块链系统的领导节点始终在具备监控探针发放功能的节点中产生,并且,软件开发厂商控制的区块链节点,通常分发的监控探针的数量是最多的,因此,在不影响区块链系统的去中心化特定的情况下,保证了区块链系统由软件开发厂商控制。

本公开实施例还提供一种区块链节点,用于实施上述方法实施例提供的程序产品销售方法,如图3所示,该区块链节点30包括:

获取模块31,用于获取程序产品的销售合同信息,所述销售合同信息包括探针类型信息;

验证模块32,用于对所述销售合同信息进行合同验证;

探针生成模块33,用于在合同验证成功后,根据所述探针类型信息生成目标程序产品的监控探针;

第一写入模块34,用于将所述监控探针写入区块链的区块中,得到区块地址;

产品发放模块35,用于将所述目标程序产品以及所述区块地址发送给购买方,所述区块地址用于所述购买方下载所述监控探针以使用所述目标程序产品。

采用上述区块链节点,该区块链节点执行程序产品销售过程中的合同验证环节,监控探针生成环节,将销售过程各个环节的信息记录到区块链中,使得整个销售过程可追溯,便于查询,并且减少了技术人员参与,节省了人力资源。特别是在多级分销模式下,相比现有技术中,本公开提供的技术方案,能够真实有效的跟踪程序产品的销售过程。

可选地,如图4所示,所述销售合同信息还包括购买方身份信息,所述区块链节点30还包括:

第二写入模块36,用于将所述监控探针的唯一标识与购买方身份信息的对应关系写入区块链的区块中。

可选地,如图4所示,所述区块链节点30还包括:

接收模块37,用于接收所述监控探针推送的所述目标应用程序的使用信息,所述使用信息包括使用所述目标应用程序的用户身份信息;

查询模块38,用于查询所述区块链中存储的与所述监控探针唯一标识对应的购买方身份信息;

判断模块39,用于判断所述购买方身份信息与使用所述目标应用程序的用户身份信息是否一致,以根据判断结果确定所述目标应用程序是否被转用,其中,在所述购买方身份信息与所述使用所述目标应用程序的用户身份信息不一致时,表明所述目标应用程序被转用。从而实现售出程序产品的实际使用者的追踪。

可选地,如图4所示,所述销售合同信息是代理商与购买方签订,并发送给所述区块链节点的,所述销售合同信息包括代理商信息,所述验证模块32包括:

验证子模块321,用于根据所述代理商信息对所述代理商进行身份验证,以确定所述代理商是否为软件开发商授权代理销售的商家。

可选地,所述区块链节点是区块链系统通过raft共识算法选举出的领导节点,其中,所述区块链节点30还包括:

投票模块301,用于在所述区块链系统每次选举领导节点时,对所述区块链系统中,所述区块链节点获知的权重值最大的节点进行投票,其中,投票数最高的节点作为本次选举产生的领导节点,并且,所述区块链系统中每一区块链节点的权重大小与该区块链节点分发的监控探针数量正相关。

这样,保证了区块链系统的领导节点始终在具备监控探针发放功能的节点中产生,并且,软件开发厂商控制的区块链节点,通常分发的监控探针的数量是最多的,因此,在不影响区块链系统的去中心化特定的情况下,保证了区块链系统由软件开发厂商控制。

关于上述实施例中的区块链节点,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法实施例提供的程序产品销售方法的步骤。

本公开实施例还提供另一种区块链节点,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现上述方法实施例提供的程序产品销售方法的步骤。

图5是该区块链节点的一种结构示意图,参照图5,区块链节点50包括处理器522,其数量可以为一个或多个,以及存储器532,用于存储可由处理器522执行的计算机程序。存储器532中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器522可以被配置为执行该计算机程序,以执行上述程序产品销售方法,比如,处理器522可以获取程序产品的销售合同信息,所述销售合同信息包括探针类型信息;对所述销售合同信息进行合同验证;在合同验证成功后,根据所述探针类型信息生成目标程序产品的监控探针;将所述监控探针入区块链的区块中,得到区块地址;将所述目标程序产品以及所述区块地址发送给购买方,所述区块地址用于所述购买方下载所述监控探针以使用所述目标程序产品。

另外,区块链节点50还可以包括电源组件526和通信组件550,该电源组件526可以被配置为执行区块链节点50的电源管理,该通信组件550可以被配置为实现区块链节点50的通信,例如,有线或无线通信。此外,该区块链节点50还可以包括输入/输出(i/o)接口558。区块链节点50可以操作基于存储在存储器532的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm等等。

值得说明的是,本公开实施例提供的计算机可读存储介质可以为上述包括程序指令的存储器532,上述程序指令可由区块链节点50的处理器522执行以完成上述程序产品销售方法。

本公开实施例还提供一种区块链系统,所述区块链系统包括多个区块链节点;并且,任一区块链节点在作为领导节点时,用于执行上述方法实施例提供的程序产品销售方法的步骤。

可选地,该区块链系统各个节点之间采用raft共识算法选举领导节点,该领导节点用于处理来自所述区块链系统外部的请求,并且,每一区块链节点在每次选举领导节点时,对所述区块链系统中,该区块链节点获知的权重值最大的节点进行投票,其中,投票数最高的节点作为本次选举产生的领导节点,并且,所述区块链系统中每一区块链节点的权重大小与该区块链节点分发的监控探针数量正相关,即制作分发的监控探针数量越多,该节点权重值越大。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

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