本发明涉及互联网技术领域中的区块链技术,尤其涉及一种区块链网络的信息处理方法及装置、存储介质。
背景技术:
公益是公共利益事业的简称,是个人或组织自愿以利他为内容、以公共利益为目标指向,通过做好事、行善举而向社会公众提供利益或福利的行为。随着社会的发展,公益的方式也从最初的面对面的捐赠发展到了借用第三方平台进行捐赠。所谓借用第三方平台进行捐赠,是指慈善机构或受捐人通过第三方平台发起公益项目,捐赠人通过第三方平台向对应的公益项目进行捐助而实施公益项目的过程。
然而在现有技术中实施公益项目时,对应的项目捐赠信息均存储在第三方平台的数据库中,而该数据库中的数据仅是具有特定权限的人员才能看到,因此,项目捐赠信息的透明度低;另外,该数据库中的数据除了可以进行查询操作之外,也可以进行更新、删除等操作,是能够被篡改的,因此,不能保证项目捐赠信息的完整性。
技术实现要素:
为解决上述技术问题,本发明实施例期望提供一种区块链网络的信息处理方法及装置、存储介质,能够提高项目捐赠信息的透明度,保证项目捐赠信息的完整性,实现项目捐赠信息的可溯源性。
本发明的技术方案是这样实现的:
第一方面,本发明实施例提供了一种区块链网络的信息处理方法,所述方法包括:
当公益项目发起成功时,获取所述公益项目对应的公益捐赠信息;
调用智能合约,将所述公益捐赠信息存储至区块链网络的数据层中;
当检测到查询请求时,根据所述捐赠查询请求,从所述数据层中确定捐赠查询结果。
在上述方案中,当所述公益捐赠信息包括项目信息、捐赠信息、捐赠发放信息和捐赠反馈信息中的至少一种时,所述当公益项目发起成功时,获取所述公益项目对应的公益捐赠信息,包括:
当所述公益项目发起成功时,获取所述项目信息;
当检测到捐赠事件时,获取所述捐赠信息;
当公益项目捐赠完成时,获取所述捐赠发放信息;
当检测到捐赠反馈事件时,获取所述捐赠反馈信息。
在上述方案中,所述调用智能合约,将所述公益捐赠信息存储至所述区块链网络的数据层中,包括:
构建所述公益捐赠信息对应的账本数据;
调用所述智能合约,将所述账本数据存储在所述数据层对应的区块中。
在上述方案中,当所述账本数据包括项目账本数据、捐赠账本数据、发放账本数据和反馈账本数据中的至少一种时,所述调用所述智能合约,将所述账本数据存储在所述数据层对应的区块中,包括:
基于所述账本数据,在所述数据层中构建项目区块、捐赠区块、发放区块和反馈区块中的至少一种;
将所述项目账本数据、所述捐赠账本数据、所述发放账本数据和所述反馈账本数据中的至少一种,分别存储在对应的所述项目区块、所述捐赠区块、所述发放区块和所述反馈区块中的至少一种。
在上述方案中,所述调用智能合约,将所述账本数据存储在所述数据层对应的区块中,包括:
对所述账本数据进行分类;
当属于同一分类的账本数据对应的数量大于预设阈值时,将所述属于同一分类的账本数据存储至预设消息队列中;
根据预设优先级,依次将所述预设消息队列中的所述属于同一分类的账本数据存储至对应的区块中。
在上述方案中,根据所述捐赠查询请求,从所述数据层中确定捐赠查询结果,包括:
根据所述捐赠查询请求,从所述数据层中获取对应的项目账本数据、捐赠账本数据、发放账本数据和反馈账本数据中的至少一种;
根据所述项目账本数据、所述捐赠账本数据、所述发放账本数据和所述反馈账本数据中的至少一种,生成所述捐赠查询结果。
在上述方案中,所述当公益项目发起成功时,获取所述公益项目对应的公益捐赠信息之前,所述方法还包括:
接收第三方平台发送的项目审核信息;
当所述项目审核信息表征所述公益项目审核通过时,确定所述公益项目发起成功。
在上述方案中,所述调用智能合约,将所述公益捐赠信息存储至所述区块链网络中之前,所述方法还包括:
获取区块链网络源码;
运行所述区块链网络源码,得到初始部署的区块链网络;
在所述初始部署的区块链网络中,安装智能合约,得到所述区块链网络。
第二方面,本发明实施例提供了一种信息处理装置,所述装置包括:
存储器,用于存储可执行指令;
通信总线,用于实现所述存储器与处理器的通信;
所述处理器,用于执行所述存储器中存储的可执行指令,以实现如上述所述的区块链网络的信息处理方法。
第三方面,本发明实施例提供了一种存储介质,存储有可执行指令,当所述可执行指令被执行时,用于引起处理器执行如上述所述的区块链网络的信息处理方法。
本发明实施例提供了一种区块链网络的信息处理方法及装置、存储介质,首先,当公益项目发起成功时,获取公益项目对应的公益捐赠信息;然后,调用智能合约,将公益捐赠信息存储至区块链网络的数据层中;最后,当检测到查询请求时,根据捐赠查询请求,从数据层中确定捐赠查询结果。采用上述技术实现方案,由于公益项目对应的公益捐赠信息是存储在区块链网络中的,而区块链网络中的数据具备公开透明、不可篡改和不可伪造的特性,因此,提高了项目捐赠信息的透明度,保证了项目捐赠信息的完整性;并且由于区块链网络中的数据具有可溯源性的特性,能够追溯到公益项目对应的项目捐赠信息,实现了项目捐赠信息的可溯源性。
附图说明
图1本发明实施例提供的区块链网络的功能架构示意图;
图2本发明实施例提供的区块链网络的组织架构示意图;
图3是本发明实施例提供的共识节点一个可选的结构示意图;
图4为本发明实施例提供的一种区块链网络的信息处理方法实现流程图;
图5为本发明实施例提供的一种区块链网络的架构示意图;
图6为本发明实施例提供的一种示例性的生成区块的示意图;
图7为本发明实施例提供的一种示例性的并发访问流程示意图;
图8为本发明实施例提供的一种示例性的基于区块链网络的公益项目实施流程示意图;
图9为本发明实施例提供的一种示例性的产生项目区块的示意图;
图10为本发明实施例提供的一种示例性的产生捐赠区块的示意图;
图11为本发明实施例提供的一种示例性的产生发放区块的示意图一;
图12为本发明实施例提供的一种示例性的产生发放区块的示意图二;
图13为本发明实施例提供的一种示例性的产生反馈区块的示意图;
图14为本发明实施例提供的一种示例性的捐赠查询结果示意图;
图15为本发明实施例提供的一种信息处理设备的结构示意图一;
图16为本发明实施例提供的一种信息处理设备的结构示意图二。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)交易(transaction),等同于计算机术语“事务”,并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交易”这一术语,本发明实施例遵循了这一习惯。在采用基于账户模型的区块链网络中,交易包括三种不同的交易类型:部署(deploy),调用(invoke)和查询(query)。部署交易用于向区块链网络的节点安装指定的链码,调用和查询类型的交易用于调用部署好的链码,以实现对账本中的目标账户的相关数据的操作,包括增、查、改的操作修改账户中的键值(key-value)对形式的数据,或者在账本中增加新的账户。
2)区块(block),记录一段时间内交易所更新的账本数据的数据结构,被标记上时间戳和之前一个区块的独特标记(例如数字指纹),区块经过区块链网络中节点的共识验证后,会被追加到区块链的末尾成为新的区块。
3)区块链(blockchain),区块以顺序相连的方式组合成的一种链式数据结构,在每个区块中引用前一个区块或者其子集的哈希值,从而以密码学的方式保证所记录交易的防篡改和防伪造。
4)区块链网络,通过共识的方式将新区块纳入区块链的一系列的、无中心的节点的集合。
5)账本(ledger),区块链网络中以账户为维度所记录的数据的总和,包括账本数据、账本状态、账本状态证明和区块索引等元素。
6)账本数据,实际区块数据存储,即区块链中记录的一系列有序的、不可篡改的交易的记录,可以表现为文件系统的文件的形式,交易中调用的智能合约被执行时,实现对账户/账户中数据的更新。
7)账本状态,也称为状态数据,即账本数据的状态,可以表现为数据库终中的键值对的形式,其中实时账本状态用于表示共识的交易所更新的键值对的最新记录,历史账本状态用于表示键值对的历史记录。
8)存在性证明,是对账本数据以加密学方式实现的存在真实性的证明,例对账本数据计算默克尔(merkle)树的方式证明。
9)共识(consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对交易结果达成一致,实现共识的机制包括工作量证明(pow)、权益证明(pos,proofofstake)、股份授权证明(dpos,delegatedproof-of-stake)、消逝时间量证明(poet,proofofelapsedtime)等。
10)智能合约(smartcontracts),也称为链码(chaincode),部署在区块链网络中的根据条件而触发执行的程序,用于通过查询、增加、修改来操作账本,以实现对账本的查询或更新。
11)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
下面说明实现本发明实施例的区块链网络的示例性的功能架构,参见图1,图1是本发明实施例提供的区块链网络的功能架构示意图,包括应用层101、共识层102、网络层103、数据层104和资源层105,下面分别进行说明。
资源层105封装各种可用的计算资源和存储资源,例如计算机、服务器/集群和云中的计算资源和存储资源,进行抽象并向数据层104提供统一的接口以屏蔽实现资源层105的底层硬件的差异性。
计算资源包括各种形式的处理器,例如中央处理器(cpu)、应用专用集成电路(asic,applicationspecificintegratedcircuit)、专用集成电路和现场可编程门阵列(fpga,field-programmablegatearray)的各种形式的处理器。
存储资源包括各种易失性存储器和非易失性存储器等各种类型的存储介质。其中,非易失性存储器可以是只读存储器(rom,readonlymemory)、可编程只读存储器(prom,programmableread-onlymemory)。易失性存储器可以是随机存取存储器(ram,randomaccessmemory),其用作外部高速缓存。
资源层105的计算资源和存储资源可以被映射为区块链网络中各种类型的节点,实现本发明实施例的存储介质存储了用于实现本发明实施例的区块链网络部署方法的可执行指令,一旦被部署到节点的可执行指令被执行,实现节点的底层资源(例如各种类型的处理器)将实现区块链网络中各种类型的节点的部署、以及执行各种类型节点的功能,从而实现针对业务过程中的交易的账本、以及基于账本的各种应用。
作为示例,可执行指令可以采用软件(包括系统程序和应用程序)、软件模块、脚本、插件等的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件或者适合在计算环境中使用的其它单元。
数据层104封装了实现账本的各种数据结构,包括以文件系统实现的账本数据,以数据库形式实现的账本状态和存在性证明。
网络层103封装了点对点(p2p)网络协议、数据传播机制和数据验证机制、接入和认证机制和业务主体身份。p2p网络协议实现区块链网络中节点之间的通信,数据传播机制保证了交易/交易结果在区块链网络中的传播,数据验证机制用于基于加密学方法(例如数字证书、数字签名、公/私钥对)实现节点之间传输数据的可靠性;接入和认证机制用于基于业务主体身份对终端的接入和认证进行管理。
共识层102封装了区块链中传播的交易结果达成一致性的机制,包括pos、pow和dpos等,支持共识机制的可插拔。
应用层101封装了区块链网络能够实现的各种业务,包括交易结算、溯源和存证等。
下面说明实现本发明实施例的区块链网络中节点的示例性的功能架构,参见图2,图2是本发明实施例提供的区块链网络的组织架构示意图,包括至少两个节点110,作为示例,图2中仅示出了节点110-1和节点110-2。区块链网络100响应来自业务主体的终端300通过网络200提交的交易以更新账本或者查询账本,并在终端300的用户界面310显示各种中间结果或最终结果。
在一些实施例中,区块链网络100中的节点根据功能进行了分类;以基于超级账本的区块链网络为例,可以包括背书节点、记账节点、排序服务节点和主节点。
下面说明实现本发明实施例的区块链网络的节点的示例性结构,可以理解地,区块链网络100中的任一类型的节点的硬件结构可以根据下文说明的硬件结构而实施。
参见图3,图3是本发明实施例提供的共识节点一个可选的结构示意图,节点110可以是一个或多个服务器,根据节点110的结构,可以预见节点110的其他的示例性结构,因此这里所描述的结构不应视为限制,例如可以省略下文所描述的部分组件,或者,增设下文所未记载的组件以适应某些应用场景的特殊需求。
图3所示的节点110包括:至少一个处理器1101、存储器1104和至少一个网络接口1102。节点110中的各个组件通过总线系统1103耦合在一起。可理解,总线系统1103用于实现这些组件之间的连接通信。总线系统1103除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统1103。
存储器1104可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。本发明实施例描述的存储器1104旨在包括这些和任意其它适合类型的存储器。
处理器1101可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digitalsignalprocessor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器1104能够存储可执行指令以支持节点110的操作,这些可执行指令的示例包括:用于在节点110上操作的程序、插件和脚本等各种形式的软件模块,程序例如可以包括操作系统和应用程序,其中,操作系统包含各种系统程序和驱动程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序可以包含实现节点110各种功能的程序。
结合上文可知,实现本发明实施例的区块链网络通过提供为一系列的存储器和处理器的形式,在存储器中存储有可执行指令,当可执行指令被处理器执行时,在运行处理器和存储器的多个机器部署有与业务主体的角色相适配的共识节点,当然还可以部署有其他类型的节点。
作为本发明实施例提供的区块链部署方法采用软硬件结合实施的示例,本发明实施例所提供的区块链部署方法可以直接体现为由处理器1101执行的上述不同形式的软件模块,软件模块可以位于存储介质中,存储介质位于存储器1104,处理器1101读取存储器1104中软件模块包括的可执行指令,结合必要的硬件(例如,包括处理器1101以及连接到总线系统1103的其他组件)完成节点110的功能。
基于上述区块链网络,提出本发明的各个实施例。
实施例一
本发明实施例提供了一种区块链网络的信息处理方法,图4为本发明实施例提供的一种区块链网络的信息处理方法实现流程图,如图4所示,该区块链网络的信息处理方法包括:
s101、当公益项目发起成功时,获取公益项目对应的公益捐赠信息。
在本发明实施例中,公益项目是需要被审核的,当信息处理装置确定公益项目对应的审核通过时,即公益项目发起成功,此时,信息处理装置获取该公益项目对应的公益捐赠信息,该公益捐赠信息为实施公益项目时所涉及的一系列的信息。
优选地,公益项目的审核是通过第三方平台进行的,因此,信息处理装置在确定公益项目发起成功的判断依据为:信息处理装置接收第三方平台发送的项目审核信息;通过分析该项目审核信息,当项目审核信息表征公益项目审核通过时,确定公益项目发起成功。这里,第三方平台为公认的具备用于审核公益项目发起状态审核规则的机构或组织,比如,京东公益平台。
需要说明的是,公益捐赠信息为项目信息、捐赠信息、捐赠发放信息和捐赠反馈信息等,在实际应用中,公益捐赠信息包括项目信息、捐赠信息、捐赠发放信息和捐赠反馈信息中的至少一种,即公益捐赠信息可以包括项目信息、捐赠信息、捐赠发放信息和捐赠反馈信息中的任意一种,还可以包括项目信息、捐赠信息、捐赠发放信息和捐赠反馈信息中的多种,又可以包括项目信息、捐赠信息、捐赠发放信息和捐赠反馈信息中的全部,也可以为能够表征公益项目对应的公益捐赠信息的其他信息,本发明实施例对此不作具体限定。
进一步地,在本发明实施例中,当所述公益捐赠信息包括项目信息、捐赠信息、捐赠发放信息和捐赠反馈信息中的至少一种时,s101中当公益项目发起成功时,信息处理装置获取公益项目对应的公益捐赠信息,包括:当公益项目发起成功时,信息处理装置获取项目信息;当检测到捐赠事件时,信息处理装置获取捐赠信息;当公益项目捐赠完成时,信息处理装置获取捐赠发放信息;当检测到捐赠反馈事件时,信息处理装置获取捐赠反馈信息。
也就是说,首先,信息处理装置在公益项目确定发起成功时,就能够获取该公益项目的项目信息,该项目信息表征的为公益项目自身的属性构成的信息,比如,项目发起者、项目物资、受捐对象等。
其次,在公益项目发起成功之后,捐赠者就能够进行公益项目的捐赠,具体在捐赠者进行捐赠时,信息处理装置能够检测到捐赠事件,进而获取该捐赠事件对应的捐赠信息,该捐赠信息表征的为捐赠者进行捐赠的相关信息,比如,捐赠者、捐赠金额、捐赠公益项目等;另外,对于一个公益项目,当该项目为众筹公益项目时,会存在终端捐赠者进行捐赠的捐赠事件。
再次,当公益项目的截止日期到达或公益项目对应的项目物资捐赠到达预设项目物资时,确定公益项目的捐赠完成,从而进行捐赠物资发放环节,此时信息处理装置获取捐赠物资发放环节进行捐赠物资发放的捐赠发放信息,该捐赠发送信息表征的将捐赠物资向受捐者进行发放时所涉及的信息,比如,受捐人、受捐物资、受捐时间等。
最后,当捐赠物资发放到受捐者手中时,受捐者能够对捐赠物资的使用进行捐赠反馈,此时,信息处理装置获取该捐赠反馈的捐赠反馈信息,该捐赠反馈信息表征的为受捐者接收捐赠物资之后的反馈信息,比如,受捐人、捐赠评价、反馈时间等;另外,捐赠反馈信息又可表征捐赠者对本次捐赠事件的反馈信息。
综上,信息处理装置获取的公益捐赠信息为实施公益项目的过程中所涉及的事件对应的信息,而实施公益项目的过程包括项目发起、捐赠者捐赠、捐赠物资发送和受捐者或捐赠者反馈。
s102、调用智能合约,将公益捐赠信息存储至区块链网络的数据层中。
在本发明实施例中,信息处理装置获取到公益项目对应的公益捐赠信息之后,将该公益捐赠信息构建成符合区块链网络的数据格式的数据,调用智能合约,完成将公益捐赠信息在区块链网络的存储,具体该公益捐赠信息存储在区块链网络的数据层中。
需要说明的是,智能合约是区块链网络健壮性的保证,在区块链网络进行的操作均需要调用智能合约。本发明实施例进行公益捐赠信息的存储时,只有通过调用智能合约,在满足智能合约的基础上,才能够实现该公益捐赠信息在区块链网络的数据层的存储。另外,智能合约属于区块链网络的合约层,位于共识层之上应用层之下,该合约层又可归划入区块链网络的共识层中。
这里,由于公益捐赠信息包括项目信息、捐赠信息、捐赠发放信息和捐赠反馈信息中的至少一种,本发明实施例中,信息处理装置在将公益捐赠信息向区块链网络中存储时,需要根据该公益捐赠信息具体包括的信息进行分类存储。
需要说明的是,将公益捐赠信息存储至区块链网络时,通过应用层调用智能合约,在共识层通过投票机制达成共识时,通过网络层完成公益捐赠信息在数据层的存储。
可以理解的是,由于区块链网络的数据层中的数据具备公开透明、不可篡改和不可伪造的特性,信息处理装置通过将公益捐赠信息存储至区块链网络之后,该公益捐赠信息在区块链网络中的存成形式发生了改变,但该公益捐赠信息的透明度也就得到了提高,同时该公益捐赠信息的完整性准确性也得到了保证,鼓舞了公益项目参与者的积极性,提升了公益效果。
s103、当检测到查询请求时,根据捐赠查询请求,从数据层中确定捐赠查询结果。
在本发明实施例中,信息处理装置完成公益捐赠信息在区块链网络的数据层的存储之后,当在区块链网络的应用层检测到查询请求时,信息处理装置根据该捐赠查询请求,从区块链网络的数据层中获取对应的账本数据,并依据该账本数据生成捐赠查询结果。
需要说明的是,查询请求为公益项目的参与者发起的用于查询该公益项目相关信息的请求,一般来说,该查询请求中包含有查询请求的发起者信息和公益项目信息等,当信息处理装置获取到该查询请求时,从该查询请求中提取出发起者信息和公益项目信息等,依据发起者信息和公益项目信息等在区块链网络的数据层的账本数据集合中匹配出与查询请求对应的账本数据,将该与查询请求对应的账本数据作为捐赠查询结果,通过应用层呈现给发起者。这里,发起者即为图三中的终端300。
优选地,信息处理装置将与查询请求对应的账本数据作为捐赠查询结果,通过应用层呈现给发起者时,对该与查询请求对应的账本数据进行分析、提取和重构等操作,得到经将与查询请求对应的账本数据变形的、适合呈现的数据信息,并呈现给发起者。
图5为本发明实施例提供的一种区块链网络的架构示意图,如图5所示,在应用层包含四个界面应用:第三方平台、捐赠者、公益机构和受捐者;应用层的应用调用智能合约完成公益捐赠信息的增加和查询,并根据区块链网络共有的区块链基础服务进行节点管理和账本管理。本发明实施例中的区块链网络的信息处理方法均是基于该架构实现的。
进一步地,在本发明实施例中,s103中信息处理装置根据捐赠查询请求,从数据层中确定捐赠查询结果,具体包括:信息处理装置根据捐赠查询请求,从数据层中获取对应的项目账本数据、捐赠账本数据、发放账本数据和反馈账本数据中的至少一种;以及,根据项目账本数据、捐赠账本数据、发放账本数据和反馈账本数据中的至少一种,生成捐赠查询结果。
也就是说,在区块链网络中,数据层的数据是以账本数据的形式进行存储的,因此,本发明是实施例中的公益捐赠信息在数据层中同样也是以账本数据的形式进行存储的。当信息处理装置获取到捐赠查询请求时,根据该查询请求从数据层中获取对应的项目账本数据、捐赠账本数据、发放账本数据和反馈账本数据中的至少一种,并根据获取的项目账本数据、捐赠账本数据、发放账本数据和反馈账本数据中的至少一种生成适合呈现的形式的数据,将该适合呈现的形式的数据作为捐赠查询结果进行呈现。
进一步地,在本发明实施例中,s102中信息处理装置调用智能合约,将公益捐赠信息存储至区块链网络的数据层中,具体包括s102a-s102b,其中:
s102a、构建公益捐赠信息对应的账本数据。
在本发明实施例中,由于区块链网络的数据层的数据以账本数据的形式存储的,因此,这里信息处理装置将公益捐赠信息存储至数据层时,需构建公益捐赠信息对应的账本数据。当公益捐赠信息中包含多种类型的信息时,信息处理装置基于不同的类型构建该公益捐赠信息对应的账本数据;也就是说,信息处理装置将公益捐赠信息构建为不同类型的账本数据。
s102b、调用智能合约,将账本数据存储在数据层对应的区块中。
在本发明实施例中,当信息处理装置完成公益捐赠信息对应的账本数据的构建之后,通过调用智能合约,将该账本数据存储在数据层对应的区块中。
需要说明的是,区块链网络的数据是分别存储在区块中的,各区块通过哈希进行关联,从而形成区块链网络。本发明实施例中的公益捐赠信息构建的账本数据同样也是存储在区块链网络的区块中的。
进一步地,当账本数据包括项目账本数据、捐赠账本数据、发放账本数据和反馈账本数据中的至少一种时,s102b中信息处理装置调用智能合约,将账本数据存储在数据层对应的区块中,具体包括s102b1-s102b2,其中:
s102b1、基于账本数据,在数据层中构建项目区块、捐赠区块、发放区块和反馈区块中的至少一种。
在本发明实施例中,由公益捐赠信息构建的账本数据的类型不同,这里,根据账本数据中包含的类型,信息处理装置在区块链网络的数据层中构建项目区块、捐赠区块、发放区块和反馈区块中的至少一种。也就是说,若账本数据中存在项目账本数据,就构建项目区块,用于存储项目账本数据;若账本数据中存在捐赠账本数据,就构建捐赠区块,用于存储捐赠账本数据;若账本数据中存在发放账本数据,就构建发放区块,用于存储发放账本数据;若账本数据中存在反馈账本数据,就构建反馈区块,用于存储反馈账本数据。
s102b2、将项目账本数据、捐赠账本数据、发放账本数据和反馈账本数据中的至少一种,分别存储在对应的项目区块、捐赠区块、发放区块和反馈区块中的至少一种。
在本发明实施例中,信息处理装置完成项目区块、捐赠区块、发放区块和反馈区块的至少一种的构建之后,将项目账本数据、捐赠账本数据、发放账本数据和反馈账本数据中的至少一种,分别存储在对应的项目区块、捐赠区块、发放区块和反馈区块中的至少一种。具体信息处理装置进行对应存储时,比如,账本数据包括仅包括项目账本数据、捐赠账本数据,信息处理装置将项目账本数据存储至项目区块中,将捐赠账本数据存储在捐赠区块中。
更进一步地,在本发明实施例中,当同一时间公益捐赠信息较多,需大量构建区块存储账本数据时,s102b中信息处理装置调用智能合约,将账本数据存储在数据层对应的区块中,具体包括:对账本数据进行分类;以及当属于同一分类的账本数据对应的数量大于预设阈值时,将属于同一分类的账本数据存储至预设消息队列中;并根据预设优先级,依次将预设消息队列中的属于同一分类的账本数据存储至对应的区块中。
也就是说,当信息处理装置判定某一类的账本数据的数量较多时,首先将该账本数据存储至预设消息队列中,并根据预设优先级将预设消息队列中的账本数据依次生成区块,从而解决了并发存储问题。
图6为本发明实施例提供的一种示例性的生成区块的示意图,如图6所示,当同一时间大量受捐者进行捐赠物资的反馈需大量将捐赠反馈信息(大量的反馈账本数据)生成捐赠区块时,首先将该大量的反馈账本数据存放在mq消息队列中,再依据预设优先级将该mq消息队列中大量的反馈账本数据存储到反馈区块中。
可以理解的是,本发明实施例中的信息处理装置通过预设消息队列解决了并发存储的问题,提高了信息处理过程的处理效率,保证了区块链网络的健壮性。
在本发明实施例中,当在同一时间收到大量的查询请求时,将从数据层获得的账本数据存储在缓存(比如,redis缓存)中,根据查询请求从缓存中获取对应的捐赠查询结果。
图7为本发明实施例提供的一种示例性的并发访问流程示意图,如图7所示,当在同一时间接收到大量的查询请求时,将公益捐赠信息对应的账本数据从区块中取出并存入至redis缓存中,依据查询请求从该redis缓存中确定捐赠查询结果。
进一步地,在本发明实施例中,在s102信息处理装置将公益捐赠信息存储至区块链网络中之前,该信息处理方法还包括:信息处理装置获取区块链网络源码;并运行区块链网络源码,得到初始部署的区块链网络;以及在初始部署的区块链网络中,安装智能合约,得到区块链网络。
需要说明的是,区块链网络对应有进行部署时所使用的源码,即区块链网络源码,因此,信息处理装置首先需下载区块链网络源码。信息处理装置在获得区块链网络源码之后,运行该区块链网络源码,并进行部署设置,得到初始部署的区块链网络。在该初始部署的区块链网络中,完成智能合约安装,从而得到区块链网络。
在本发明实施例中,公益项目中存在虚拟货币的参与,比如,捐赠者进行捐赠后,会奖励相应的虚拟货币;又比如,受捐者进行反馈后,会奖励相应的虚拟货币。
可以理解的是,采用本发明实施例提供的区块链网络的信息处理方法之后,能够溯源查询捐赠资金的每个节点;由于公益捐赠信息由区块链网络的基础服务进行对应存储和查询的管理,减少了第三方平台的参与,节约了成本;捐赠者和受捐者等均能进行反馈并作为捐赠反馈信息存储在对应的区块中,增加了信息处理装置的反馈功能。另外,受捐者可以直接发起公益项目来接收捐赠者的捐赠,不需要公益机构,从而提升了公益效果。
示例性地,采用hyperledgerfabric1.0框架超级账本进行区块链网络的实现流程为:
1、使用容器(docker)创建fabric网络:
1.1、安装docker。
这里,使用两个命令来确认docker的安装。一个是“dockerimages”;另一个是“dockerrunhello-world”:可以运行hello-world镜像来确认docker已正确安装;当看到“hellofromdocker!”时,说明安装的镜像已经成功。
1.2、检查docker版本。
这里,使用“docker-v”和“dockercompose-v”两个命令来完成docker版本检查。
1.3、安装工具gradle。
这里,通过命令“gradle-v”检查安装的gradle版本。
1.4、安装工具soapui。
2、启动本地区块链网络,并进行部署设置。
2.1、hyperlegerfabric是用go语言写的,需设置gopath,gopath是go语言的root目录,创建目录作为源代码的root目录,设置gopathexportgopath=~/users/zhangyu/mychain;用于通知dockercompose要运行哪些镜像,以及网络应如何与主机相连。
2.2、添加docker-compose.yml
yaml是专门用来写配置文件的语言,对等网络的语言是使用yaml来定义,将其命名为docker-compose.yaml。告诉dockercompose如何创建和运行区块链对等网络,要运行哪些镜像,以及网络应如何与主机相连。
2.3、下载hyperledgerfabric代码,创建并加入通道(网络通道,理解成加入区块链的通道,节点间的通讯通道)
2.3.1、获取通道配置文件,提取为字节;
2.3.2、把client(客户端)实例切换到传入组织;
2.3.3、使用传入组织的加密材料对通道字节签名;
2.3.4、构建request(请求),向order发送创建通道请求;
2.3.5、创建成功则返回成功的结构对象,失败则抛出异常;
2.3.6、client实例切换到传入组织;
2.3.7、基于之前创建的通道,获取该通道的创世区块;
2.3.8、向要加入通道的节点peer发送加入通道的请求;
2.3.9、在向peers发送加入通道请求的同时,为各个peer分别注册blockeventhub来监听区块产生的过程是否正常;
2.3.10、通过校验第一个peer的responsestatus是否为200来判断加入通道的结果,成功则返回成功的结构对象,失败则抛出异常。
3、链码(智能合约)安装。
3.1、下载安装链码;
3.1.1client切换到传入组织;
3.1.2client发出安装链码请求,请求中包括目标peers、链码路径、链码名称、链码版本;
3.1.3对于目标链码返回的proposalresponses结果依次校验。
3.2、实例化链码。
3.2.1、client切换到传入组织;
3.2.2、channel调用initialize();
3.2.3、发送背书proposal给endorsers;
3.2.4、对目标endorse返回的proposalresponses和之前的proposal打包成request,调用sendtransaction发送给order;
3.2.5、在sendtransaction和transactionevent都成功返回的情况下,才说明实例化链码成功;
3.3、执行链码查询、录入。
3.3.1、client切换到传入组织;
3.3.2、发送proposal给endorsers;
3.3.3、对目标endorse返回的proposalresponses和之前的proposal打包成request,调用sendtransaction发送给order;
3.3.4、在sendtransaction和transactionevent都成功返回的情况下,才说明执行链码成功。
当链码执行成功时,就得到本发明实施例需要的区块链网络的部署。
示例性地,图8为本发明实施例提供的一种示例性的基于区块链网络的公益项目实施流程示意图,如图8所示:
首先,慈善机构红十字会在京东公益平台上进行了公益书包项目的发布,经过京东公益平台的审核,确定审核通过时,信息处理装置会收到京东公益平台发送的表征审核通过的信息,此时,信息处理装置确定公益书包项目发起成功,进行展示的同时,信息处理装置获取到项目信息,将项目发起人红十字会加入至区块链网络,成为区块节点,并初始化区块链网络信息,同时,将项目信息构建成如图9所示的项目账本数据产生一个对应的项目区块。
其次,捐赠者看到展示的公益书包项目之后,进行物资和资金的捐赠,此时,信息处理装置获取到捐赠信息,将捐赠者加入至区块链网络,成为区块节点,获取所有区块信息,并将捐赠信息构建成如图10所示的捐赠账本数据产生一个对应的捐赠区块。
再次,当公益书包项目结束时,京东公益平台利用捐赠物资进行公益书包的购买,此时,京东公益平台加入至区块链网络,成为区块节点,获取所有区块信息,并将购买信息(发放信息)构建成如图11所示的第一发放账本数据产生一个对应的第一发放区块(发放区块);另外,受捐者通过红十字会接收到京东公益平台发放的公益书包,即希望小学接收公益书包并发送到小学生手中,此时,希望小学加入至区块链网络,成为区块节点,获取所有区块信息,并将捐赠发放信息构建成如图12所示的第二发放账本数据产生一个对应的第二发放区块(发放区块)。
最后,小学生进行受捐反馈,此时,小学生加入至区块链网络,成为区块节点,获取所有区块信息,并将捐赠反馈信息构建成如图13所示的反馈账本数据产生一个对应的反馈区块。
此时,已完成了调用智能合约,将公益捐赠信息存储至区块链网络的数据层中的过程;当检测到捐赠者的捐赠查询请求时,从数据层中对应区块中调出对应的账本数据生成捐赠查询结果呈现给捐赠者,图14为本发明实施例提供的一种示例性的捐赠查询结果示意图,如图14所示,捐赠查询结果中包含了项目信息、捐赠信息、捐赠发放信息和捐赠反馈信息。
需要说明的是,本发明实施例提供的区块链网络的信息处理方法在进行实际应用时,信息处理装置即为图3中的终端300,通过网络200访问区块链网络100来实现公益项目的实施和查询过程。
可以理解的是,由于公益项目对应的公益捐赠信息是存储在区块链网络中的,而区块链网络中的数据具备公开透明、不可篡改和不可伪造的特性,因此,提高了项目捐赠信息的透明度,保证了项目捐赠信息的完整性;并且由于区块链网络中的数据具有可溯源性的特性,能够追溯到公益项目对应的项目捐赠信息,实现了项目捐赠信息的可溯源性。
实施例二
基于实施例一同一发明构思,本发明实施例提供了一种信息处理装置400,对应于一种区块链网络的信息处理方法,其中,该信息处理装置为图3中终端300的一个具体装置,图15为本发明实施例提供的一种信息处理设备的结构示意图一,如图15所示,该信息处理装置400包括:
获取单元401,用于当公益项目发起成功时,获取所述公益项目对应的公益捐赠信息;
存储单元402,用于调用智能合约,将所述公益捐赠信息存储至区块链网络的数据层中;
查询单元403,当检测到查询请求时,根据所述捐赠查询请求,从所述数据层中确定捐赠查询结果。
进一步地,当所述公益捐赠信息包括项目信息、捐赠信息、捐赠发放信息和捐赠反馈信息中的至少一种时,所述获取单元401,具体用于当所述公益项目发起成功时,获取所述项目信息;当检测到捐赠事件时,获取所述捐赠信息;当公益项目捐赠完成时,获取所述捐赠发放信息;当检测到捐赠反馈事件时,获取所述捐赠反馈信息。
进一步地,所述存储单元402,具体用于构建所述公益捐赠信息对应的账本数据;以及调用所述智能合约,将所述账本数据存储在所述数据层对应的区块中。
进一步地,当所述账本数据包括项目账本数据、捐赠账本数据、发放账本数据和反馈账本数据中的至少一种时,所述存储单元402,还具体用于基于所述账本数据,在所述数据层中构建项目区块、捐赠区块、发放区块和反馈区块中的至少一种;以及将所述项目账本数据、所述捐赠账本数据、所述发放账本数据和所述反馈账本数据中的至少一种,分别存储在对应的所述项目区块、所述捐赠区块、所述发放区块和所述反馈区块中的至少一种。
进一步地,所述存储单元402,还具体用于对所述账本数据进行分类;以及当属于同一分类的账本数据对应的数量大于预设阈值时,将所述属于同一分类的账本数据存储至预设消息队列中;并根据预设优先级,依次将所述预设消息队列中的所述属于同一分类的账本数据存储至对应的区块中。
进一步地,所述查询单元403,具体用于根据所述捐赠查询请求,从所述数据层中获取对应的项目账本数据、捐赠账本数据、发放账本数据和反馈账本数据中的至少一种;并根据所述项目账本数据、所述捐赠账本数据、所述发放账本数据和所述反馈账本数据中的至少一种,生成所述捐赠查询结果。
进一步地,所述信息处理装置400还包括确定单元404,所述确定单元404,用于接收第三方平台发送的项目审核信息;以及当所述项目审核信息表征所述公益项目审核通过时,确定所述公益项目发起成功。
进一步地,所述信息处理装置400还包括部署单元405,所述部署单元405,用于获取区块链网络源码;以及运行所述区块链网络源码,得到初始部署的区块链网络;并在所述初始部署的区块链网络中,安装智能合约,得到所述区块链网络。
需要说明的是,在实际应用中,上述获取单元401、存储单元402、查询单元403、确定单元404和部署单元405可由位于信息处理装置400上的处理器406实现,具体为cpu(centralprocessingunit,中央处理器)、mpu(microprocessorunit,微处理器)、dsp(digitalsignalprocessing,数字信号处理器)或现场可编程门阵列(fpga,fieldprogrammablegatearray)等实现。
本发明实施例还提供了一种信息处理装置400,如图16所示,所述信息处理装置400包括:处理器406、存储器407和通信总线408,所述存储器407通过所述通信总线408与所述处理器406进行通信,所述存储器407存储所述处理器406可执行的指令,当所述指令被执行时,通过所述处理器406执行如实施例一所述的区块链网络的信息处理方法。
本发明实施例提供了一种计算机可读存储介质,存储有可执行指令,当所述可执行指令被执行时,用于引起处理器406执行如实施例一所述的区块链网络的信息处理方法。
可以理解的是,由于公益项目对应的公益捐赠信息是存储在区块链网络中的,而区块链网络中的数据具备公开透明、不可篡改和不可伪造的特性,因此,提高了项目捐赠信息的透明度,保证了项目捐赠信息的完整性;并且由于区块链网络中的数据具有可溯源性的特性,能够追溯到公益项目对应的项目捐赠信息,实现了项目捐赠信息的可溯源性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
1.一种区块链网络的信息处理方法,其特征在于,所述方法包括:
当公益项目发起成功时,获取所述公益项目对应的公益捐赠信息;
调用智能合约,将所述公益捐赠信息存储至区块链网络的数据层中;
当检测到查询请求时,根据所述捐赠查询请求,从所述数据层中确定捐赠查询结果。
2.根据权利要求1所述的方法,其特征在于,当所述公益捐赠信息包括项目信息、捐赠信息、捐赠发放信息和捐赠反馈信息中的至少一种时,所述当公益项目发起成功时,获取所述公益项目对应的公益捐赠信息,包括:
当所述公益项目发起成功时,获取所述项目信息;
当检测到捐赠事件时,获取所述捐赠信息;
当公益项目捐赠完成时,获取所述捐赠发放信息;
当检测到捐赠反馈事件时,获取所述捐赠反馈信息。
3.根据权利要求1所述的方法,其特征在于,所述调用智能合约,将所述公益捐赠信息存储至所述区块链网络的数据层中,包括:
构建所述公益捐赠信息对应的账本数据;
调用所述智能合约,将所述账本数据存储在所述数据层对应的区块中。
4.根据权利要求3所述的方法,其特征在于,当所述账本数据包括项目账本数据、捐赠账本数据、发放账本数据和反馈账本数据中的至少一种时,所述调用所述智能合约,将所述账本数据存储在所述数据层对应的区块中,包括:
基于所述账本数据,在所述数据层中构建项目区块、捐赠区块、发放区块和反馈区块中的至少一种;
将所述项目账本数据、所述捐赠账本数据、所述发放账本数据和所述反馈账本数据中的至少一种,分别存储在对应的所述项目区块、所述捐赠区块、所述发放区块和所述反馈区块中的至少一种。
5.根据权利要求3所述的方法,其特征在于,所述调用智能合约,将所述账本数据存储在所述数据层对应的区块中,包括:
对所述账本数据进行分类;
当属于同一分类的账本数据对应的数量大于预设阈值时,将所述属于同一分类的账本数据存储至预设消息队列中;
根据预设优先级,依次将所述预设消息队列中的所述属于同一分类的账本数据存储至对应的区块中。
6.根据权利要求1-5任一项所述的方法,其特征在于,根据所述捐赠查询请求,从所述数据层中确定捐赠查询结果,包括:
根据所述捐赠查询请求,从所述数据层中获取对应的项目账本数据、捐赠账本数据、发放账本数据和反馈账本数据中的至少一种;
根据所述项目账本数据、所述捐赠账本数据、所述发放账本数据和所述反馈账本数据中的至少一种,生成所述捐赠查询结果。
7.根据权利要求1所述的方法,其特征在于,所述当公益项目发起成功时,获取所述公益项目对应的公益捐赠信息之前,所述方法还包括:
接收第三方平台发送的项目审核信息;
当所述项目审核信息表征所述公益项目审核通过时,确定所述公益项目发起成功。
8.根据权利要求1所述的方法,其特征在于,所述调用智能合约,将所述公益捐赠信息存储至所述区块链网络中之前,所述方法还包括:
获取区块链网络源码;
运行所述区块链网络源码,得到初始部署的区块链网络;
在所述初始部署的区块链网络中,安装智能合约,得到所述区块链网络。
9.一种信息处理装置,其特征在于,所述装置包括:
存储器,用于存储可执行指令;
通信总线,用于实现所述存储器与处理器的通信;
所述处理器,用于执行所述存储器中存储的可执行指令,以实现如权利要求1-8任一项所述的区块链网络的信息处理方法。
10.一种存储介质,其特征在于,存储有可执行指令,当所述可执行指令被执行时,用于引起处理器执行如权利要求1-8任一项所述的区块链网络的信息处理方法。
技术总结