基于区块链的溯源处理方法及区块链分布式溯源系统与流程

文档序号:19741215发布日期:2020-01-18 05:14阅读:324来源:国知局
基于区块链的溯源处理方法及区块链分布式溯源系统与流程

本发明属于基于区块链的溯源防伪技术领域,尤其涉及一种基于区块链的溯源处理方法及区块链分布式溯源系统。



背景技术:

一物一码溯源系统的出现,目的在于实现对商品全生命周期的监控,进而实现对商品的来源可查、去向可追、责任可究、风险可控。

目前的溯源系统通常使用传统的数据库技术进行商品溯源信息的保存,然而,在基于传统数据库技术的溯源系统中,溯源信息在采集保存后容易被修改,公众无法确定溯源信息的真实性。

为了保证商品溯源信息的真实性和难以修改性,提高商品溯源的可信度,提供一种更为可靠的溯源处理方案于本领域而言十分必要。



技术实现要素:

有鉴于此,本发明的目的在于提供一种基于区块链的溯源处理方法及区块链分布式溯源系统,以尽可能保证商品溯源信息的真实性,提高商品溯源的可信度。

为此,本发明公开如下技术方案:

一种基于区块链的溯源处理方法,应用于区块链分布式溯源系统,所述区块链分布式溯源系统包括平台节点、多个企业节点及用于对企业节点进行监管的多个监管节点,各个监管节点为所述平台节点的下级节点,各个企业节点为相应监管节点或所述平台节点的下级节点;

该方法包括:

企业节点或监管节点在产生商品的交易信息时,将商品交易信息对应的溯源信息及商品的防伪码上报至主记账节点;

主记账节点基于接收的溯源信息及防伪码生成商品的记账信息,并将记账信息保存到商品的账本中;

主记账节点将商品的账本同步至多个从记账节点;

每个从记账节点接收并存储主记账节点同步的商品的账本;

其中,所述主记账节点为平台节点从所述多个监管节点中选取的某一个节点,所述多个从记账节点为平台节点从所述平台节点与所述监管节点中选取的多个节点。

上述方法,优选的,企业及监管机构基于已申请的资源账户加入所述区块链分布式溯源系统,所述平台节点拥有ca根证书;

该方法还包括:

在监管机构基于已申请的资源账户加入所述区块链分布式溯源系统以作为该系统的一个监管节点时,所述平台节点基于所述ca根证书向所述监管机构签发监管方ca证书;

在企业基于已申请的资源账户加入所述区块链分布式溯源系统以作为该系统的一个企业节点时,所述平台节点基于所述ca根证书向所述企业签发企业方ca证书,或者,负责监管所述企业的监管节点基于其监管方ca证书向所述企业签发企业方ca证书;

其中,所述监管方ca证书至少用于为所述监管机构提供一对公钥和私钥,所述企业方ca证书至少用于为所述企业提供一对公钥和私钥。

上述方法,优选的,商品的溯源信息为商品的交易信息或商品交易信息的url地址信息;商品的交易信息包括企业节点内部生产商品时所对应的商品生产信息、不同企业节点间进行商品转移时所对应的商品流转信息,以及监管节点对企业节点的商品进行监管时所产生的监管信息中的至少一种;

其中,不同企业节点间进行商品转移时不同企业节点间的信息交互、监管节点对企业节点的商品进行监管时企业节点与监管节点间的信息交互、溯源信息上报时企业节点或监管节点与主记账节点之间的信息交互,以及主记账节点进行信息同步时主记账节点与从记账节点之间的信息交互,均基于源节点的私钥对待交互的信息进行加密,并由目的节点基于源节点的公钥对接收的加密信息进行解密。

上述方法,优选的,所述平台节点基于共识算法进行主记账节点的选取;

所述方法还包括:

在符合预定条件时,平台节点基于共识算法重新进行主记账节点的选取;

所述平台节点基于共识算法重新进行主记账节点的选取,具体包括:

平台节点确定各个记账节点的预定指标的取值;

平台节点基于各个记账节点的预定指标的取值,选取一候选主记账节点;

平台节点向全部记账节点发送主记账消息,所述主记账消息用于表示待选取所述候选主记账节点作为主记账节点;

平台节点接收各个记账节点反馈的确认消息,并在确认消息的数量满足预定的数量条件时,选取所述候选主记账节点作为新的主记账节点;在确认消息的数量不满足所述数量条件时,基于各个记账节点的预定指标的取值选取下一候选主记账节点并重复上述过程,直至主记账节点选取成功为止。

上述方法,优选的,该方法还包括:

接收通过对防伪码进行扫码所发出的携带目标防伪码编码的溯源请求;

从主记账节点或从记账节点中查询与所述目标防伪码编码相对应的目标溯源信息;

若所述目标溯源信息包括商品的交易信息,生成包括所述商品的交易信息的查询结果,并返回所述查询结果;

若所述目标溯源信息包括商品的交易信息的url地址信息,则基于所述url地址信息调取相应商品的交易信息,并生成包括所调取商品的交易信息的查询结果、返回所述查询结果。

上述方法,优选的,该方法还包括:

所述平台节点对所述区块链分布式溯源系统进行账户管理、角色管理和权限管理;

所述账户包括普通账户和资源账户,所述角色包括查询角色、平台角色、监管角色及企业角色,所述权限包括查询权限、交易权限、记账权限。

上述方法,优选的,商品的防伪码为商品的福码。

一种区块链分布式溯源系统,包括:平台节点、多个企业节点及多个监管节点,各个监管节点为所述平台节点的下级节点,各个企业节点为相应监管节点或所述平台节点的下级节点;其中:

所述平台节点,用于从多个监管节点中选取一个节点作为主记账节点、从所述平台节点与所述多个监管节点中选取多个节点作为从记账节点;

所述监管节点,用于对其下级的企业节点进行监管;

所述企业节点及所述监管节点,用于在产生商品的交易信息时,将商品交易信息对应的溯源信息及商品的防伪码上报至主记账节点;

所述主记账节点,用于基于接收的溯源信息及防伪码生成商品的记账信息,并将记账信息保存到商品的账本中,以及将商品的账本同步至多个从记账节点;

所述从记账节点,用于接收并存储主记账节点同步的商品的账本。

上述系统,优选的,企业及监管机构基于已申请的资源账户加入所述区块链分布式溯源系统,所述平台节点拥有ca根证书;

所述平台节点还用于:

在监管机构基于已申请的资源账户加入所述区块链分布式溯源系统以作为该系统的一个监管节点时,基于所述ca根证书向所述监管机构签发监管方ca证书;

在企业基于已申请的资源账户加入所述区块链分布式溯源系统以作为该系统的一个企业节点时,基于所述ca根证书向所述企业签发企业方ca证书;

所述监管节点还用于:

在企业基于已申请的资源账户加入所述区块链分布式溯源系统,以作为该系统中该监管节点的一个下级企业节点时,在平台节点未向该企业签发证书的情况下,基于其监管方ca证书向所述下级企业节点签发企业方ca证书;

其中,所述监管方ca证书至少用于为所述监管机构提供一对公钥和私钥,所述企业方ca证书至少用于为所述企业提供一对公钥和私钥。

上述系统,优选的,所述平台节点具体基于共识算法进行主记账节点的选取;

所述平台节点还用于:在符合预定条件时,基于共识算法重新进行主记账节点的选取;

所述平台节点基于共识算法重新进行主记账节点的选取,具体包括:

平台节点确定各个记账节点的预定指标的取值;

平台节点基于各个记账节点的预定指标的取值,选取一候选主记账节点;

平台节点向全部记账节点发送主记账消息,所述主记账消息用于表示待选取所述候选主记账节点作为主记账节点;

平台节点接收各个记账节点反馈的确认消息,并在确认消息的数量满足预定的数量条件时,选取所述候选主记账节点作为新的主记账节点;在确认消息的数量不满足所述数量条件时,基于各个记账节点的预定指标的取值选取下一候选主记账节点并重复上述过程,直至主记账节点选取成功为止。

上述系统,优选的,所述主记账节点及所述从记账节点,还用于:

接收通过对防伪码进行扫码所发出的携带目标防伪码编码的溯源请求;

从自身的节点中查询与所述目标防伪码编码相对应的目标溯源信息;

若所述目标溯源信息包括商品的交易信息,生成包括所述商品的交易信息的查询结果,并返回所述查询结果;

若所述目标溯源信息包括商品的交易信息的url地址信息,则基于所述url地址信息调取相应商品的交易信息,并生成包括所调取商品的交易信息的查询结果、返回所述查询结果。

上述系统,优选的,所述平台节点还用于:对所述区块链分布式溯源系统进行账户管理、角色管理和权限管理;

所述账户包括普通账户和资源账户,所述角色包括查询角色、平台角色、监管角色及企业角色,所述权限包括查询权限、交易权限、记账权限。

由以上方案可知,本申请提供的基于区块链的溯源处理方法及区块链分布式溯源系统,构建了一个包括平台节点、多个企业节点及多个监管节点的区块链分布式溯源系统,并由该系统中的平台节点及多个监管节点中的相应节点来同时承担主、从记账节点的角色,在此基础上,对于企业节点及监管节点产生的所有商品交易信息,基于区块链思想将商品交易信息对应的溯源信息分布式存储至所有记账节点,由于本申请基于区块链思想将商品溯源信息分布式存储为了多份,从而会导致篡改溯源信息的代价很大,要求所有记账节点都同时被修改才能使得溯源信息篡改成功,篡改成本可能远超预期收益,且篡改难度较高,从而尽可能保证了商品溯源信息的真实性,提高了商品溯源的可信度。

附图说明

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

图1是本申请实施例一可选实施方式中基于区块链的溯源处理方法的一种流程示意图;

图2是本申请实施例一可选实施方式中基于区块链的溯源处理方法的另一种流程示意图;

图3是本申请实施例一可选实施方式中基于区块链的溯源处理方法的又一种流程示意图;

图4是本申请实施例一可选实施方式中基于区块链的溯源处理方法的再一种流程示意图;

图5是本申请实施例一可选实施方式中基于共识算法选取主记账节点的处理逻辑示意图;

图6是本申请实施例一可选实施方式中基于区块链的溯源处理方法的再一种流程示意图;

图7是本申请实施例一可选实施方式中区块链分布式溯源系统的结构示意图;

图8是本申请实施例一可选实施方式中区块链分布式溯源系统的系统功能示意图。

具体实施方式

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

本申请公开了一种基于区块链的溯源处理方法及区块链分布式溯源系统,以用于尽可能保证商品溯源信息的真实性,提高商品溯源的可信度,以下将通过具体实施例对本申请的基于区块链的溯源处理方法及区块链分布式溯源系统进行详细说明。

在本申请实施例的一可选实施方式中,提供了一种基于区块链的溯源处理方法,该方法可应用于区块链分布式溯源系统中,所述区块链分布式溯源系统包括平台节点、多个企业节点及用于对企业节点进行监管的多个监管节点,各个监管节点为所述平台节点的下级节点,各个企业节点为相应监管节点或所述平台节点的下级节点,所述平台节点从多个监管节点中选取一个节点作为主记账节点、从所述平台节点与所述多个监管节点中选取多个节点作为从记账节点,也即,对于选取为记账节点的平台节点来说,其同时承载平台节点及记账节点的功能,对于选取为记账节点的监管节点来说,其同时承载监管节点及记账节点的功能。

区块链分为3种:公共链,联盟链,私有链。对于溯源的需求,只有所涉及的平台、监管机构、企业才具有交易的能力,而公众只有查询的能力,因此需要采用联盟链的方式来实现本申请的基于区块链的溯源处理方法,进而达到保证溯源信息的真实性和不可修改性,进而提高商品溯源的可信度的目的。

参阅图1示出的基于区块链的溯源处理方法的流程示意图,该基于区块链的溯源处理方法包括如下处理:

步骤101、企业节点或监管节点在产生商品的交易信息时,将商品交易信息对应的溯源信息及商品的防伪码上报至主记账节点。

商品的交易信息,可以包括企业节点内部生产商品时所对应的商品生产信息、不同企业节点间进行商品转移时所对应的商品流转信息,以及监管节点对企业节点的商品进行监管时所产生的监管信息中的至少一种;其中,商品的生产信息可以包括但不限于商品原料、原料产地、加工厂商等信息,商品流转信息可以包括但不限于商品在企业间转移过程中涉及的转移物流信息、仓储信息等,商品的监管信息可以包括但不限于监管机构、监管人员、监管结果等等。

企业内部生产商品或者企业间进行商品的流转时,相应可以产生商品生产信息或商品流转信息等交易信息,监管机构对企业的商品进行监管时则可产生监管信息等交易信息,这些交易信息也即是企业节点或监管节点所产生的商品交易信息,在企业节点或监管节点产生商品的交易信息时,需至少将商品的交易信息所对应的溯源信息及商品的防伪码上报至区块链分布式溯源系统中的主记账节点进行溯源信息的记账。

其中,在所产生的商品交易信息的数据量较小、如未达到设定的数据量阈值的情况下,可以直接将商品交易信息作为商品的溯源信息参与上报,在所产生的商品交易信息的数据量较大、如达到设定的数据量阈值的情况下,通常仅取交易信息的url(uniformresourcelocator,统一资源定位符)地址作为其溯源信息参与上报,而对于该数据量较大的商品交易信息的原始交易数据,则通常可以由产生该交易信息的节点(如企业节点或监管节点等)进行维护。

在进行商品的溯源信息的上报时,基于一物一码的思想,还至少需要同时在上报的信息中携带商品的防伪码,该防伪码可以是但不限于福码、二维码等商品码,本实施例中,优选地,采用福码作为商品的防伪码,由此,当企业节点或监管节点在产生商品的交易信息时,可至少将商品交易信息对应的溯源信息及商品的福码上报至主记账节点。

步骤102、主记账节点基于接收的溯源信息及防伪码生成商品的记账信息,并将记账信息保存到商品的账本中。

主记账节点在接收到企业节点或监管节点上报的商品溯源信息及商品防伪码后,比如,在接收到企业节点上报的商品生产信息对应的溯源信息及商品福码、或者接收到监管节点上报的商品监管信息对应的溯源信息及商品福码后,主记账节点会基于接收到的这些信息,生成商品的账本或记账信息,并存储商品的账本或记账信息。

具体实施中,可根据实际需求,针对每一个商品为其生成一个账本,并在账本中对应记录该商品的溯源信息(如商品交易信息或交易信息的url等)及其福码,或者,还可以针对同一批次的多件商品,如同一批次生产、监管的一千袋大米等,为其生成一个账本,并在该账本中对应记录该批次的多件商品中每个商品的溯源信息及其福码,本实施例对记账节点的账本形式不作具体限定。

在主记账节点接收到商品的溯源信息及其福码后,若主记账节点中已存在该商品的账本,则可将新接收到的信息作为一条记账信息记录添加至其所属的账本中,若主记账节点中不存在该商品的账本,则可为该商品新生成一个账本,并将接收的该商品的溯源信息及其福码作为记账信息记录在该账本中,同时存储所生成的账本或记账信息。

步骤103、主记账节点将商品的账本同步至多个从记账节点。

除了存储所生成的账本,主记账节点还可将生成的账本同步至区块链分布式溯源系统的所有从记账节点,以便于各个从记账节点对商品的溯源信息及其防伪码进行同步存储。

步骤104、每个从记账节点接收并存储主记账节点同步的商品的账本。

相对应地,各个从记账节点接收并存储主记账节点同步的商品的账本,这样,就实现了基于区块链思想将商品交易信息对应的溯源信息分布式存储至不同的记账节点。

由以上方案可知,本申请提供的基于区块链的溯源处理方法,构建了一个包括平台节点、多个企业节点及多个监管节点的区块链分布式溯源系统,并由该系统中的平台节点及多个监管节点中的相应节点来同时承担主、从记账节点的角色,在此基础上,对于企业节点及监管节点产生的所有商品交易信息,基于区块链思想将商品交易信息对应的溯源信息分布式存储至所有记账节点,由于本申请基于区块链思想将商品溯源信息分布式存储为了多份,从而会导致篡改溯源信息的代价很大,要求所有记账节点都同时被修改才能使得溯源信息篡改成功,篡改成本可能远超预期收益,且篡改难度较高,从而尽可能保证了商品溯源信息的真实性,提高了商品溯源的可信度。

在本申请实施例的一可选实施方式中,参阅图2示出的基于区块链的溯源处理方法的流程示意图,该方法还可以包括:

步骤105、所述平台节点对所述区块链分布式溯源系统进行账户管理,角色管理和权限管理。

本申请中,系统中的账户分为2类:一类为普通账户(账本账户),所有的使用系统的用户通常来说需要申请一个普通账户;另一类为资源账户,系统中每个运行的节点(平台节点除外,平台节点可理解为超级用户)都必须有唯一的资源账户。

所述账户管理,是指对系统用户或系统节点进行账户开户、销户、冻结等管理。如上文所述,系统账户分为普通账户(账本账户)和资源账户,那么,相对应地,所述账户管理又可进一步细分为账本账户管理和资源账户管理。其中,账本账户管理,是指对系统用户的账户开户、销户、冻结等进行管理;资源账户管理,是指管理系统中的节点(如企业节点、监管节点)对资源账户的创建,销户、冻结等。

所述角色管理,是指管理系统角色和对应的权限。系统有三类业务功能/业务权限,即交易、记账、查询。“交易”是指在企业自身、企业与企业之间或者企业与监管机构之间进行的交易事件,在完成交易后会由产生交易信息的节点触发将交易信息对应的溯源信息进行上报的事件;“记账”是指由主记账节点生成账本并同步发送至其他具有记账功能的各个从记账节点。“查询”是指系统用户也即普通用户查询溯源信息。有记账功能的节点如上文所述为记账节点(主记账节点、从记账节点),有交易功能的节点为交易节点(如企业节点、监管节点等),普通用户可理解为查询节点。

系统配置有各个角色的缺省功能,各个角色的缺省功能示例性地可以为:

查询角色:只能查询系统中的交易信息,缺省任何账户、任何角色有查询权限;

平台角色:平台管理、记账节点选择、ca中心管理(会在下文介绍);

监管角色:交易、记账;

企业角色:交易、记账。

在实际应用中,平台节点的管理人员可基于实际需求在平台节点上对上述各种角色的功能进行配置式管理。通常情况下,平台节点和监管节点默认具有记账功能,也即由系统中的平台节点与监管节点来作为记账节点承载记账功能,且具体实施中,会由平台节点从各个监管节点中选取其中之一作为多个记账节点中的主记账节点;而对于企业节点,只有在其申请记账功能且通过平台审核后才有记账权利。

所述权限管理,是指配置账户和角色的关系。

具体地,各种角色的功能/权限可通过其拥有的账户类型来体现,通常情况下,平台角色为系统的超级用户,拥有根权限,不需进行开户即可具备上述各种权限,企业角色及监管角色则是通过申请的资源账户来拥有相对应的查询、交易及记账等功能,系统的普通用户则通过申请的普通账户(账本账户)来拥有查询账本信息也即商品溯源信息的功能。由此,可通过在平台节点上预先由管理人员对角色和账户之间的关系进行配置,来使得不同角色拥有不同的权限。

基于本实施例方案,可根据实际需求,在平台节点上对账户、角色、权限之间的对应关系进行配置,实现了对区块链分布式溯源系统中不同角色的不同权限进行灵活管理。

基于以上实施例可知,区块链分布式溯源系统中每个运行的节点(平台节点除外)都必须有唯一的资源账户,那么,相对应地,当某一企业或监管机构欲加入所述区块链分布式溯源系统时,需首先申请一个资源账户,之后则可基于已申请的资源账户加入所述区块链分布式溯源系统。

为了进一步保证系统的各个节点间交易信息的可信性,在本申请实施例的一可选实施方式中,所述平台节点还拥有ca根证书,并可基于拥有的ca根证书进行ca中心管理。

具体地,平台节点自身建立有ca中心,拥有根证书,能够发放各类用户证书,比如,对于作为平台节点的下级节点、也即作为二级机构的监管机构来说,平台节点可向其签发监管方ca证书,对于作为监管节点的下级节点、也即作为三级机构的企业来说,平台节点可向其签发企业方ca证书,当然,对于企业节点来说,还可以由其所接入的监管机构为其签发企业方ca证书。

由此,参阅图3示出的基于区块链的溯源处理方法的流程示意图,在本申请实施例的一可选实施方式中,该方法还可以包括:

步骤106、在监管机构基于已申请的资源账户加入所述区块链分布式溯源系统以作为该系统的一个监管节点时,所述平台节点基于所述ca根证书向所述监管机构签发监管方ca证书;

步骤107、在企业基于已申请的资源账户加入所述区块链分布式溯源系统以作为该系统的一个企业节点时,所述平台节点基于所述ca根证书向所述企业签发企业方ca证书,或者,负责监管所述企业的监管节点基于其监管方ca证书向所述企业签发企业方ca证书;

其中,所述监管方ca证书至少用于为所述监管机构提供一对公钥和私钥,所述企业方ca证书至少用于为所述企业提供一对公钥和私钥。

在此基础上,系统中的不同企业节点间进行商品转移时不同企业节点间的信息交互、监管节点对企业节点的商品进行监管时企业节点与监管节点间的信息交互、溯源信息上报时企业节点或监管节点与主记账节点之间的信息交互,以及主记账节点进行信息同步时主记账节点与从记账节点之间的信息交互,均基于源节点的私钥对待交互的信息进行加密(也即加签),并由目的节点基于源节点的公钥对接收的加密信息进行解密(也即解签)。

本实施例方案基于平台节点的ca中心管理功能,为系统中的每个企业节点及监管节点进行ca证书的签发,可使得后续各个节点之间的信息交互能够利用ca证书中的公私钥进行信息的加解密处理,保证了各节点之间信息交互的可信性,相应地,进一步保证了系统中商品溯源信息的可信性。

在本申请实施例的一可选实施方式中,所述平台节点具体可基于共识算法进行主记账节点的选取。

参阅图4示出的基于区块链的溯源处理方法的流程示意图,本实施例中,所述方法还可以包括:

步骤108、在符合预定条件时,平台节点基于共识算法重新进行主记账节点的选取。

所述预定条件可以是但不限于:到达设定的周期性更换主记账节点的时间,或者现有主记账节点的计算力不再符合预定的计算力要求(如可用cpu核数、内存和/或存储资源等低于设定的可用资源量),或者现有主记账节点的使用时长达到设定的时长阈值等等。每当系统达到所述预定条件时,平台节点可触发基于共识算法的共识处理流程来重新进行主记账节点的选取。

如图5所示,该基于共识算法的共识处理流程可以包括:

1)平台节点确定各个记账节点的预定指标的取值;

示例性地,平台节点可选取记账节点的计算力和该节点未记账时长作为选择主记账节点的选取指标,从而,相对应地,在系统达到所述预定条件时,可确定每个记账节点当前的计算力(可基于节点当前的剩余可用资源如cpu核数、内存、存储空间等进行衡量)及其未记账时长。

2)平台节点基于各个记账节点的预定指标的取值,选取一候选主记账节点;

在确定各个记账节点的计算力、未记账时间等指标的取值后,可综合这些指标的取值,确定每个记账节点被选择为主记账节点的概率,一般来说,节点的计算力越高、未记账时间越长,其被选择为主记账节点的概率越大,具体实施中,可基于归一化、加权计算等方式,对每个记账节点的计算力、未记账时间等指标取值进行归一化处理及归一化处理基础上的加权计算,以此确定出每个记账节点被选择为主记账节点的概率。

在此基础上,可首先选取被选择为主记账节点的概率最大的节点(该节点通常不是现有的主记账节点),作为当前的候选主记账节点,对于具有相同选取指标或相同概率的节点随机选择其中之一作为候选主记账节点。

3)平台节点向全部记账节点发送主记账消息,所述主记账消息用于表示待选取所述候选主记账节点作为主记账节点;

4)平台节点接收各个记账节点反馈的确认消息,并在确认消息的数量满足预定的数量条件时,选取所述候选主记账节点作为新的主记账节点;在确认消息的数量不满足所述数量条件时,基于各个记账节点的预定指标的取值选取下一候选主记账节点并重复上述过程,直至主记账节点选取成功为止。

示例性地,比如,如果平台节点收到超过80%记账节点的确认消息,则表示多数记账节点认可所选择的候选主记账节点作为新的主记账节点,从而平台节点确定由所述候选主记账节点作为新的主记账节点来进行账本记录。否则,如果失败,则对该候选主记账节点进行相关信息设置,如设置其12小时内不能参与主记账节点的选择等,然后选择下一个候选主记账节点,如选择次高概率的记账节点作为候选主记账节点等,并重复上述主记账节点的共识处理过程,直至主记账节点选取成功为止。

本实施例中,平台节点在系统满足预定条件时通过利用共识算法动态选取、变更主记账节点,一方面可缓解系统中主记账节点的记账压力,不会将主记账功能长期固定不变地承载在一个节点上,另一方面,主记账节点的动态变更还可降低某一个主记账节点一旦发生故障而导致的主记账功能异常的风险。

在本申请实施例的一可选实施方式中,参阅图6示出的基于区块链的溯源处理方法的流程示意图,所述方法还可以包括:

步骤109、接收通过对防伪码进行扫码所发出的携带目标防伪码编码的溯源请求。

所述防伪码可以是商品的福码,所述目标防伪码编码则相对应地可以是商品的福码编码。

用户(也即作为一个查询节点)可通过扫描商品福码的方式获取商品的福码编码,然后向记账节点发送携带该福码编码的溯源请求(查询请求)。具体地,可以根据网络链路的远近、就近向距离最近的记账节点发送商品的溯源请求,或者也可以根据网络速度选择向速度最快的记账节点发送商品的溯源请求,本实施例对此不作限定。

步骤1010、从主记账节点或从记账节点中查询与所述目标防伪码编码相对应的目标溯源信息;

记账节点如主记账节点或从记账节点等在接收到所述溯源请求后,会从自身节点中查询与溯源请求中所携带的福码编码相对应的目标溯源信息。

步骤1011、若所述目标溯源信息包括商品的交易信息,生成包括所述商品的交易信息的查询结果,并返回所述查询结果;

如果查询出的目标溯源信息包括商品的交易信息,则可直接生成包括该交易信息的查询结果,并向用户返回所述查询结果以供用户对反馈的商品交易信息进行溯源查看。

步骤1012、若所述目标溯源信息包括商品的交易信息的url地址信息,则基于所述url地址信息调取相应商品的交易信息,并生成包括所调取商品的交易信息的查询结果、返回所述查询结果。

如果查询出的目标溯源信息包括商品的交易信息的url地址信息,则记账节点可以进一步从该url地址信息所对应的系统节点如企业节点或监管节点中调取商品的交易信息,进而生成包括所调取的交易信息的查询结果、并返回所述查询结果给用户查看,从而实现了在用户端对商品信息进行溯源。

基于本实施例方案,用户可基于扫描商品福码的方式对区块链分布式溯源系统中基于区块链思想存储的账本信息(也即商品溯源信息)进行查询,由于系统基于区块链思想对商品溯源信息进行分布式存储时,加大了商品溯源信息的篡改难度,尽可能保证了商品溯源信息的真实性,提高了商品溯源的可信度,从而相对应地,可使得用户查询到可信度较高的商品溯源信息。

除了上述的处理过程,所述基于区块链的溯源处理方法还可以基于所述区块链分布式溯源系统进行通讯管理、账本存储管理、交易合约管理、查询合约管理、api接口管理等处理。

本申请中,系统的各个节点使用开源的p2p(pointtopoinit)通讯协议进行交互,系统中的各个节点具体可针对开源的p2p通讯协议进行通信管理。在账本存储管理中,各记账节点可以但不限于采用高效的kv本地存储数据库,例如rocksdb等,对账本信息进行存储。各记账节点进行账本信息存储时所采用的存储结构可以是但不限于:key=福码+发起时间+发起用户id+交易发起节点id,value=交易信息的hash值或交易信息。交易合约管理具体管理系统的交易合约,要求有执行交易的权限,该交易合约管理本质上为基于合约形式来对系统中不同节点(如企业节点、监管节点等)之间的交易进行管理,查询合约管理具体管理系统的公众查询合约,不要求权限。

在api接口管理中,具体提供外部系统调用本申请中区块链分布式溯源系统的接口,该接口通常来说为查询接口,也就是说,作为一个外部系统,其身份与本申请区块链分布式溯源系统的一个普通用户相当,仅拥有对区块链分布式溯源系统的账本信息进行查询的功能。

对应于上述的基于区块链的溯源处理方法,本申请还提供了一种区块链分布式溯源系统,参阅图7示出的区块链分布式溯源系统的结构示意图,该系统可以包括:

平台节点701、多个企业节点702及多个监管节点703,各个监管节点703为所述平台节点701的下级节点,各个企业节点702为相应监管节点703或所述平台节点701的下级节点;其中:

所述平台节点701,用于从多个监管节点703中选取一个节点作为主记账节点、从所述平台节点701与所述多个监管节点703中选取多个节点作为从记账节点;

所述监管节点703,用于对其下级的企业节点702进行监管;

所述企业节点702及所述监管节点703,用于在产生商品的交易信息时,将商品交易信息对应的溯源信息及商品的防伪码上报至主记账节点;

所述主记账节点,用于基于接收的溯源信息及防伪码生成商品的记账信息,并将记账信息保存到商品的账本中,以及将商品的账本同步至多个从记账节点;

所述从记账节点,用于接收并存储主记账节点同步的商品的账本。

在本申请实施例的一可选实施方式中,企业及监管机构基于已申请的资源账户加入所述区块链分布式溯源系统,所述平台节点701拥有ca根证书;

所述平台节点701还用于:

在监管机构基于已申请的资源账户加入所述区块链分布式溯源系统以作为该系统的一个监管节点时,基于所述ca根证书向所述监管机构签发监管方ca证书;

在企业基于已申请的资源账户加入所述区块链分布式溯源系统以作为该系统的一个企业节点时,基于所述ca根证书向所述企业签发企业方ca证书;

所述监管节点703还用于:

在企业基于已申请的资源账户加入所述区块链分布式溯源系统以作为该系统中该监管节点的一个下级企业节点时,在平台节点701未向该企业签发证书的情况下,基于其监管方ca证书向所述下级企业节点签发企业方ca证书;

其中,所述监管方ca证书至少用于为所述监管机构提供一对公钥和私钥,所述企业方ca证书至少用于为所述企业提供一对公钥和私钥。

在本申请实施例的一可选实施方式中,商品的溯源信息为商品的交易信息或商品交易信息的url地址信息;商品的交易信息包括企业节点702内部生产商品时所对应的商品生产信息、不同企业节点702间进行商品转移时所对应的商品流转信息或监管节点703对企业节点702的商品进行监管时所产生的监管信息中的至少一种;

其中,不同企业节点702间进行商品转移时不同企业节点702间的信息交互、监管节点703对企业节点702的商品进行监管时企业节点702与监管节点703间的信息交互、溯源信息上报时企业节点702或监管节点803与主记账节点之间的信息交互,以及主记账节点进行信息同步时主记账节点与从记账节点之间的信息交互,均基于源节点的私钥对待交互的信息进行加密,并由目的节点基于源节点的公钥对接收的加密信息进行解密。

在本申请实施例的一可选实施方式中,所述平台节点801具体基于共识算法进行主记账节点的选取;

所述平台节点701还用于:在符合预定条件时,基于共识算法重新进行主记账节点的选取;

所述平台节点701基于共识算法重新进行主记账节点的选取,具体包括:

平台节点701确定各个记账节点的预定指标的取值;

平台节点701基于各个记账节点的预定指标的取值,选取一候选主记账节点;

平台节点701向全部记账节点发送主记账消息,所述主记账消息用于表示待选取所述候选主记账节点作为主记账节点;

平台节点701接收各个记账节点反馈的确认消息,并在确认消息的数量满足预定的数量条件时,选取所述候选主记账节点作为新的主记账节点;在确认消息的数量不满足所述数量条件时,基于各个记账节点的预定指标的取值选取下一候选主记账节点并重复上述过程,直至主记账节点选取成功为止。

在本申请实施例的一可选实施方式中,所述主记账节点及所述从记账节点,还用于:

接收通过对防伪码进行扫码所发出的携带目标防伪码编码的溯源请求;

从自身的节点中查询与所述目标防伪码编码相对应的目标溯源信息;

若所述目标溯源信息包括商品的交易信息,生成包括所述商品的交易信息的查询结果,并返回所述查询结果;

若所述目标溯源信息包括商品的交易信息的url地址信息,则基于所述url地址信息调取相应商品的交易信息,并生成包括所调取商品的交易信息的查询结果、返回所述查询结果。

在本申请实施例的一可选实施方式中,所述平台节点701还用于:对所述区块链分布式溯源系统进行账户管理、角色管理和权限管理;

所述账户包括普通账户和资源账户,所述角色包括查询角色、平台角色、监管角色及企业角色,所述权限包括查询权限、交易权限、记账权限。

如图8所示,所述区块链分布式溯源系统的各种功能可以归纳为图8中的账户管理、权限管理、区块链管理以及交易管理等功能。

其中,账户管理包括:普通账户管理、资源账户管理及配置管理;权限管理包括:角色管理、ca中心管理及权限管理;区块链管理包括:通讯管理、账本存储管理及共识算法管理;交易管理包括:交易合约管理、查询合约管理及api接口管理。各项管理功能分别与上述的基于区块链的溯源处理方法所执行的相应处理相对应,具体可参阅上文中对基于区块链的溯源处理方法所执行的相应处理的介绍,这里不再详细阐述。

对于本发明实施例公开的区块链分布式溯源系统而言,由于其与上文各实施例公开的基于区块链的溯源处理方法相对应,所以描述的比较简单,相关相似之处请参见上文各实施例中基于区块链的溯源处理方法部分的说明即可,此处不再详述。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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