一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于区块链的捐赠方法、系统、介质及电子设备与流程

2021-11-20 00:30:00 来源:中国专利 TAG:


1.本技术涉及区块链技术领域,具体而言,涉及一种基于区块链的捐赠系统、基于区块链的捐赠方法、计算机可读存储介质及电子设备。


背景技术:

2.物资捐赠通常涉及较为繁杂的流程并且需要多方经手才能使得待捐赠的物资到达受捐人,在这一过程中,通常会存在捐赠流程不透明的问题。一般来说,受理捐赠过程的机构会对多方经手的捐赠物资进行各个流程上的核对和记录,通过公开该记录使得公众或捐赠人了解捐赠的进度或捐赠的结果。但是,人为记录通常准确率不高,进而容易造成捐赠数据可信度不高的问题。
3.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本技术的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:

4.本技术的目的在于提供一种基于区块链的捐赠系统、基于区块链的捐赠方法、计算机可读存储介质及电子设备,通过对捐赠过程进行上链可以使得捐赠过程公开、透明,进而有利于提升捐赠数据的可信度。
5.本技术的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本技术的实践而习得。
6.根据本技术的一方面,提供一种基于区块链的捐赠方法,区块链网络包括多个节点,多个节点包括捐赠平台节点、捐赠方节点以及共识节点,该方法包括:
7.捐赠平台节点在区块链网络中部署用于限定物资捐赠规则的智能合约;
8.捐赠方节点生成物资捐赠请求并广播物资捐赠请求,物资捐赠请求包括物资捐赠信息以及与物资捐赠信息相对应的智能合约地址;
9.共识节点对物资捐赠请求进行合法性验证,验证成功后根据智能合约地址调用物资捐赠信息相对应的智能合约,以通过物资捐赠信息相对应的智能合约对物资捐赠请求进行响应;
10.共识节点对物资捐赠请求的响应结果进行共识并将物资捐赠请求的响应结果打包为区块写入区块链账本。
11.一方面,提供一种基于区块链的捐赠系统,包括:
12.捐赠平台节点,用于在区块链网络中部署用于限定物资捐赠规则的智能合约;
13.捐赠方节点,用于生成物资捐赠请求并广播所述物资捐赠请求,物资捐赠请求包括物资捐赠信息以及与物资捐赠信息相对应的智能合约地址;
14.共识节点,用于对物资捐赠请求进行合法性验证,验证成功后根据智能合约地址调用物资捐赠信息相对应的智能合约,以通过物资捐赠信息相对应的智能合约对物资捐赠请求进行响应;
15.共识节点,还用于对物资捐赠请求的响应结果进行共识并将物资捐赠请求的响应结果打包为区块写入区块链账本。
16.在本技术的一种示例性实施例中,多个节点还包括证书签发方节点、物流方节点、接收方节点以及受捐方节点,上述系统还包括:
17.证书签发方节点,用于生成捐赠平台节点、捐赠方节点、物流方节点、接收方节点以及受捐方节点分别对应的证书;
18.证书签发方节点,还用于根据证书生成证书上链请求;
19.证书签发方节点,还用于通过证书签发方节点对应的私钥对证书上链请求进行签名;
20.证书签发方节点,还用于广播签名后的证书上链请求;
21.共识节点,还用于通过证书签发方节点对应的公钥对签名后的证书上链请求进行合法性验证;
22.共识节点,还用于在验证成功后调用与物资捐赠信息相对应的智能合约对证书上链请求进行响应;
23.共识节点,还用于对证书上链请求的响应结果进行共识,并将证书上链请求的响应结果打包为区块写入区块链账本。
24.在本技术的一种示例性实施例中,共识节点,还用于在验证成功后调用与物资捐赠信息相对应的智能合约对证书上链请求进行响应,包括:
25.共识节点验证成功后调用与物资捐赠信息相对应的智能合约计算证书对应的摘要哈希,并通过摘要哈希验证证书的存在性,以及在证书不存在时将证书对应的摘要哈希和证书以键值形式写入与物资捐赠信息相对应的智能合约。
26.在本技术的一种示例性实施例中,在共识节点将证书上链请求的响应结果打包为区块写入区块链账本之后,上述系统还包括:
27.证书签发方节点,还用于存储证书对应的摘要哈希;
28.证书签发方节点,还用于向捐赠平台节点、捐赠方节点、物流方节点、接收方节点以及受捐方节点分别反馈各自对应的证书的摘要哈希。
29.在本技术的一种示例性实施例中,捐赠平台节点,用于在区块链网络中部署用于限定物资捐赠规则的智能合约,包括:
30.捐赠平台节点生成智能合约部署请求;其中,智能合约部署请求包括智能合约以及捐赠平台节点对应的公钥;
31.捐赠平台节点通过捐赠平台节点对应的私钥对智能合约部署请求进行签名;
32.捐赠平台节点广播签名后的智能合约部署请求;
33.共识节点根据捐赠平台节点对应的公钥对签名后的智能合约部署请求进行合法性验证;
34.共识节点在验证成功后响应智能合约部署请求;
35.共识节点对智能合约部署请求的响应结果进行共识并将智能合约部署请求的响应结果打包为区块写入区块链账本。
36.在本技术的一种示例性实施例中,物资捐赠请求中还包括捐赠方节点对应的证书的摘要哈希,共识节点,还用于在验证成功后根据智能合约地址调用物资捐赠信息相对应
的智能合约,以通过物资捐赠信息相对应的智能合约对物资捐赠请求进行响应,包括:
37.共识节点在验证成功后根据智能合约地址调用物资捐赠信息相对应的智能合约,以通过物资捐赠信息相对应的智能合约生成与物资捐赠信息对应的摘要哈希,并根据物资捐赠信息对应的摘要哈希检测物资捐赠信息的存在性,以及在物资捐赠信息不存在时根据捐赠方节点对应的证书的摘要哈希查询捐赠方节点对应的证书是否存在,若捐赠方节点对应的证书存在则验证捐赠方节点对应的证书中的公钥与物资捐赠请求中的公钥是否一致,若一致,则将物资捐赠信息对应的摘要哈希、物资捐赠信息以及捐赠方节点对应的编号写入物资捐赠信息相对应的智能合约。
38.在本技术的一种示例性实施例中,所述多个节点还包括公证方节点,在共识节点将物资捐赠请求的响应结果打包为区块写入区块链账本之后,上述系统还包括:
39.公证方节点,用于根据与物资捐赠信息对应的公证结果生成公证结果上链请求;
40.公证方节点,还用于通过公证方节点对应的私钥对公证结果上链请求进行签名;
41.公证方节点,还用于广播签名后的公证结果上链请求;
42.共识节点,还用于根据公证方节点对应的公钥验证签名后的公证结果上链请求,若验证成功则调用物资捐赠信息对应的智能合约响应公证结果上链请求;
43.共识节点,还用于共识公证结果上链请求的响应结果并将公证结果上链请求的响应结果打包为区块写入区块链账本。
44.在本技术的一种示例性实施例中,所述多个节点还包括物流方节点,在共识节点将公证结果上链请求的响应结果打包为区块写入区块链账本之后,上述系统还包括:
45.捐赠方节点,还用于将物资捐赠信息对应的物流协议上传区块链网络;
46.捐赠平台节点,还用于根据物流协议的上链结果向物流方节点反馈第一提示信息;
47.物流方节点,用于根据物流协议查询区块链网络中的物资捐赠信息与捐赠平台节点输出的物资捐赠信息是否一致,若一致,则广播物流协议更新请求;
48.共识节点,还用于对物流协议更新请求进行合法性验证,验证成功后调用物资捐赠信息对应的智能合约响应物流协议更新请求,以更新物流协议并依据物流协议进行资产数据转移;
49.共识节点,还用于将物流协议更新请求的响应结果打包为区块写入区块链账本。
50.一方面,提供一种用户节点,包括:存储器,存储有计算机可读指令;处理器,读取存储器存储的计算机可读指令,以实现上述的方法。
51.一方面,提供一种计算机程序介质,其上存储有计算机可读指令,当计算机可读指令被计算机的处理器执行时,实现上述的方法。
52.本技术示例性实施例可以具有以下部分或全部有益效果:
53.在本技术的一示例实施方式所提供的基于区块链的捐赠方法中,捐赠平台节点在区块链网络中部署用于限定物资捐赠规则的智能合约,生成物资捐赠请求并广播物资捐赠请求;其中,物资捐赠请求包括物资捐赠信息以及与物资捐赠信息相对应的智能合约地址。进而,共识节点对物资捐赠请求进行合法性验证,验证成功后根据智能合约地址调用物资捐赠信息相对应的智能合约,以通过物资捐赠信息相对应的智能合约对物资捐赠请求进行响应。进而,共识节点对物资捐赠请求的响应结果进行共识并将物资捐赠请求的响应结果
打包为区块写入区块链账本。依据上述方案描述,一方面,通过对捐赠过程进行上链可以使得捐赠过程公开、透明,进而有利于提升捐赠数据的可信度;另一方面,能够通过区块链对于捐赠过程进行记录,避免捐赠数据被篡改。
54.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
55.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
56.图1示出了基于区块链的捐赠系统的一个可选的结构示意图;
57.图2示出了适于用来实现本技术实施例的区块结构(block structure)一个可选的示意图;
58.图3示意性示出了根据本技术的一个实施例的基于区块链的捐赠方法的流程图;
59.图4示意性示出了根据本技术的一个实施例的基于区块链的捐赠方法的流程图;
60.图5示意性示出了根据本技术的一个实施例的基于区块链的捐赠系统的架构图;
61.图6示意性示出了根据本技术的一个实施例的基于区块链的捐赠系统的架构图。
具体实施方式
62.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本技术将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本技术的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本技术的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本技术的各方面变得模糊。
63.此外,附图仅为本技术的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
64.本发明实施例涉及的系统可以是由客户端、多个用户节点(接入网络中的任意形式的计算设备,如服务器、用户终端)通过网络通信的形式连接形成的基于区块链的捐赠系统。
65.以基于区块链的捐赠系统为区块链系统为例,参见图1,图1是本发明实施例提供的基于区块链的捐赠系统100应用于区块链系统的一个可选的结构示意图,由共识节点、捐赠平台节点、证书签发方节点、捐赠方节点、物流方节点、接收方节点以及受捐方节点(接入
网络中的任意形式的计算设备,如服务器、用户终端)和客户端形成,上述各节点之间形成组成的点对点(p2p,peer to peer)网络,p2p协议是一个运行在传输控制协议(tcp,transmission control protocol)协议之上的应用层协议。
66.具体地,捐赠平台节点202、捐赠方节点201、物流方节点204、接收方节点205以及受捐方节点206对应的证书均由证书签发方节点207生成并广播,由共识节点208、共识节点209或共识节点210进行验证、共识、打包为区块写入区块链。进而,捐赠平台节点202可以在区块链网络中部署用于限定物资捐赠规则的智能合约。捐赠方节点201可以生成物资捐赠请求并广播所述物资捐赠请求,进而通过区块链网络中的共识节点208、共识节点209或共识节点210进行验证、共识以及将智能合约对物资捐赠请求的响应结果写入区块链;捐赠平台节点202还可以将物流协议进行广播,以使得共识节点208、共识节点209或共识节点210对其进行验证、共识以及将智能合约对物流协议上链请求的响应结果写入区块链,进而,物流方节点204能够通过更新区块链网络中物流协议的签署状态,触发智能合约将物资捐赠信息对应的资产数据由捐赠者节点604转移至物流方节点204。进而,物流方节点204还可以将签收协议进行广播,以使得共识节点208、共识节点209或共识节点210对其进行验证、共识以及将智能合约对签收协议上链请求的响应结果写入区块链,进而,接收方节点205能够通过更新区块链网络中签收协议的签署状态,触发智能合约将物资捐赠信息对应的资产数据由物流方节点204转移至接收方节点205。进而,接收方节点205还可以将捐赠协议进行广播,以使得共识节点208、共识节点209或共识节点210对其进行验证、共识以及将智能合约对捐赠协议上链请求的响应结果写入区块链,进而,受捐方节点206能够通过更新区块链网络中捐赠协议的签署状态,触发智能合约将物资捐赠信息对应的资产数据由接收方节点205转移至受捐方节点206,以完成物资捐赠流程。在基于区块链的捐赠系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
67.参见图1示出的区块链系统中各节点的功能,涉及的功能包括:
68.1)路由,节点具有的基本功能,用于支持节点之间的通信。
69.节点除具有路由功能外,还可以具有以下功能:
70.2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
71.例如,应用实现的业务包括:
72.2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币;
73.2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
74.2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化
的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
75.3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
76.参见图2,图2是本发明实施例提供的区块结构(block structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
77.基于现实问题,目前捐赠物资的流程通常复杂繁琐、效率较低,并且捐赠物资在流转过程中存在不透明性,因此,这一过程中可能会存在假捐或利益输送等风险,容易导致捐赠物资被盗用或挪用,进而容易造成捐赠数据可信度较低的问题。
78.基于上述一个或多个问题,本示例实施方式提供了一种基于区块链的捐赠方法。参考图3所示,该基于区块链的捐赠方法可以包括:步骤s310~步骤s340,其中:
79.步骤s310:捐赠平台节点在区块链网络中部署用于限定物资捐赠规则的智能合约。
80.步骤s320:捐赠方节点生成物资捐赠请求并广播物资捐赠请求,物资捐赠请求包括物资捐赠信息以及与物资捐赠信息相对应的智能合约地址。
81.步骤s330:共识节点对物资捐赠请求进行合法性验证,验证成功后根据智能合约地址调用物资捐赠信息相对应的智能合约,以通过物资捐赠信息相对应的智能合约对物资捐赠请求进行响应。
82.步骤s340:共识节点对物资捐赠请求的响应结果进行共识并将物资捐赠请求的响应结果打包为区块写入区块链账本。
83.实施图3所示的方法,通过对捐赠过程进行上链可以使得捐赠过程公开、透明,进而有利于提升捐赠数据的可信度。此外,能够通过区块链对于捐赠过程进行记录,避免捐赠数据被篡改。
84.下面,对于本示例实施方式的上述步骤进行更加详细的说明。
85.在步骤s310中,捐赠平台节点在区块链网络中部署用于限定物资捐赠规则的智能合约。
86.其中,捐赠平台节点用于提供捐赠服务,以使得捐赠方节点能够基于该捐赠平台节点实现资产捐赠;此外,捐赠平台节点还用于为捐赠方节点、物流方节点、接收方节点以及受捐方节点提供密钥生成服务。另外,捐赠方节点、物流方节点、接收方节点以及受捐方节点中任意一方均可以为一个或多个,例如,一个捐赠方节点可以对应多个受捐方节点,本技术实施例不作限定。另外,证书签发方节点可以为证书颁发机构(ca,certificate authority),ca用于发放并管理数字证书,可以作为交易中受信任的第三方,承担公钥体系中公钥的合法性检验任务。另外,捐赠平台节点、捐赠方节点、物流方节点、接收方节点以及受捐方节点中任意一方均存在相对应的证书,该证书可以通过字符串形式进行表示。另外,
本技术实施例中所述的智能合约可以为一个或多个,本技术实施例不作限定。
87.此外,上述方法还可以包括:捐赠方节点、物流方节点、接收方节点以及受捐方节点分别向捐赠平台节点发送各自对应的身份认证信息,以使得捐赠平台节点根据身份认证信息执行身份认证操作并生成与身份认证信息相对应的非对称加密密钥;其中,非对称加密密钥中包括成对存在的公钥和私钥,捐赠方节点、物流方节点、接收方节点以及受捐方节点分别对应一对非对称加密密钥,故,非对称加密密钥的数量为多个。
88.进一步地,捐赠方节点、物流方节点、接收方节点以及受捐方节点分别向捐赠平台节点发送各自对应的身份认证信息,以使得捐赠平台节点根据身份认证信息执行身份认证操作并生成与身份认证信息相对应的非对称加密密钥的方式具体可以为:捐赠方节点向捐赠平台节点发送身份认证信息,以使得捐赠平台节点根据捐赠方节点的身份认证信息执行针对捐赠方节点的身份认证操作并在认证捐赠方节点的身份合法之后生成与捐赠方节点相对应的非对称加密密钥;物流方节点向捐赠平台节点发送身份认证信息,以使得捐赠平台节点根据物流方节点的身份认证信息执行针对物流方节点的身份认证操作并在认证物流方节点的身份合法之后生成与物流方节点相对应的非对称加密密钥;接收方节点向捐赠平台节点发送身份认证信息,以使得捐赠平台节点根据接收方节点的身份认证信息执行针对接收方节点的身份认证操作并在认证接收方节点的身份合法之后生成与接收方节点相对应的非对称加密密钥;受捐方节点向捐赠平台节点发送身份认证信息,以使得捐赠平台节点根据受捐方节点的身份认证信息执行针对受捐方节点的身份认证操作并在认证受捐方节点的身份合法之后生成与受捐方节点相对应的非对称加密密钥。
89.本技术实施例中,可选的,多个节点还包括证书签发方节点、物流方节点、接收方节点以及受捐方节点,上述方法还包括:
90.证书签发方节点生成捐赠平台节点、捐赠方节点、物流方节点、接收方节点以及受捐方节点分别对应的证书;
91.证书签发方节点根据证书生成证书上链请求;其中,证书上链请求中包括证书签发方节点对应的公钥;
92.证书签发方节点通过证书签发方节点对应的私钥对证书上链请求进行签名;
93.证书签发方节点广播签名后的证书上链请求;
94.共识节点通过证书签发方节点对应的公钥对签名后的证书上链请求进行合法性验证;
95.共识节点在验证成功后调用与物资捐赠信息相对应的智能合约对证书上链请求进行响应;
96.共识节点对证书上链请求的响应结果进行共识,并将证书上链请求的响应结果打包为区块写入区块链账本。
97.其中,证书签发方节点生成捐赠平台节点对应的证书的方式具体可以为:捐赠平台节点生成与捐赠平台节点相对应的目标公钥和目标私钥;通过目标私钥对捐赠平台节点的证书申请信息进行签名,证书申请信息包括捐赠平台节点的服务资质信息和身份信息;根据目标公钥和加密后的证书申请信息生成第一证书申请请求;向证书签发方节点传输第一证书申请请求,以使得证书签发方节点对捐赠平台节点进行身份验证并在身份验证成功后生成与捐赠平台节点对应的证书。其中,目标公钥和目标私钥为一对非对称加密密钥,目
标公钥和目标私钥均与捐赠平台节点相对应。另外,捐赠平台节点的服务资质信息用于表示捐赠平台节点向捐赠方节点、物流方节点、接收方节点以及受捐方节点提供非对称密钥生成服务的资质,捐赠平台节点的身份信息用于表明捐赠平台节点的合法身份。
98.进一步可选的,捐赠平台节点根据目标公钥和加密后的证书申请信息生成第一证书申请请求的方式具体可以为:捐赠平台节点根据目标公钥、数字签名以及证书申请信息生成第一证书申请请求;其中,第一证书申请请求中包括目标公钥、数字签名以及证书申请信息。进一步地,在捐赠平台节点向证书签发方节点传输第一证书申请请求之后,证书签发方节点,还用于接收第一证书申请请求并根据第一证书申请请求对捐赠平台节点进行实名验证;具体地,对捐赠平台节点进行实名验证的方式具体可以为:检测捐赠平台节点输入的合法证件号码(如,注册登记号、身份证号等)的合法性;若捐赠平台节点的合法证件号码存在合法性,则生成与捐赠平台节点对应的证书。
99.此外,在证书签发方节点生成捐赠平台节点、捐赠方节点、物流方节点、接收方节点以及受捐方节点分别对应的证书之前,上述方法还可以包括以下步骤:捐赠方节点根据与捐赠方节点对应的非对称加密密钥中的私钥对捐赠方节点的身份认证信息进行签名,得到捐赠方节点对应的数字签名,并根据包含捐赠方节点对应的数字签名的身份认证信息和捐赠方节点对应的非对称加密密钥中的公钥生成捐赠方节点对应的证书申请请求并向证书签发方节点传输捐赠方节点对应的证书申请请求;物流方节点根据与物流方节点对应的非对称加密密钥中的私钥对物流方节点的身份认证信息进行签名,得到物流方节点对应的数字签名,并根据包含物流方节点对应的数字签名的身份认证信息和物流方节点对应的非对称加密密钥中的公钥生成物流方节点对应的证书申请请求并向证书签发方节点传输物流方节点对应的证书申请请求;接收方节点根据与接收方节点对应的非对称加密密钥中的私钥对接收方节点的身份认证信息进行签名,得到接收方节点对应的数字签名,并根据包含接收方节点对应的数字签名的身份认证信息和接收方节点对应的非对称加密密钥中的公钥生成接收方节点对应的证书申请请求并向证书签发方节点传输接收方节点对应的证书申请请求;受捐方节点根据与受捐方节点对应的非对称加密密钥中的私钥对受捐方节点的身份认证信息进行签名,得到受捐方节点对应的数字签名,并根据包含受捐方节点对应的数字签名的身份认证信息和受捐方节点对应的非对称加密密钥中的公钥生成受捐方节点对应的证书申请请求并向证书签发方节点传输受捐方节点对应的证书申请请求。
100.可见,实施该可选的实施例,能够生成各参与方对应的证书并通过区块链网络中的共识节点对其进行验证、共识,进而写入区块链账本,以使得各参与方能够基于区块链技术进行协作,进而实现线上捐赠。
101.进一步地,共识节点在验证成功后调用与物资捐赠信息相对应的智能合约对证书上链请求进行响应,包括:
102.共识节点在验证成功后调用与物资捐赠信息相对应的智能合约计算证书对应的摘要哈希,并通过摘要哈希验证证书的存在性,以及在证书不存在时将证书对应的摘要哈希和证书以键值形式写入与物资捐赠信息相对应的智能合约。
103.其中,对于捐赠平台节点:共识节点在验证成功后,调用与物资捐赠信息相对应的智能合约计算捐赠平台节点的证书对应的摘要哈希,并中查询是否存在与该摘要哈希相对应的证书,若存在,则返回用于表示执行失败的提示信息;若不存在,则将摘要哈希作为
key,将捐赠平台节点的证书作为value,以键值形式(key-value)将捐赠平台节点的证书对应的摘要哈希和捐赠平台节点的证书写入智能合约;
104.其中,对于捐赠方节点:共识节点在验证成功后,调用与物资捐赠信息相对应的智能合约计算捐赠方节点的证书对应的摘要哈希,并中查询是否存在与该摘要哈希相对应的证书,若存在,则返回用于表示执行失败的提示信息;若不存在,则将摘要哈希作为key,将捐赠方节点的证书作为value,以键值形式(key-value)将捐赠方节点的证书对应的摘要哈希和捐赠平台节点的证书写入智能合约;
105.其中,对于物流方节点:共识节点在验证成功后,调用与物资捐赠信息相对应的智能合约计算物流方节点的证书对应的摘要哈希,并中查询是否存在与该摘要哈希相对应的证书,若存在,则返回用于表示执行失败的提示信息;若不存在,则将摘要哈希作为key,将物流方节点的证书作为value,以键值形式(key-value)将物流方节点的证书对应的摘要哈希和捐赠平台节点的证书写入智能合约;
106.其中,对于接收方节点:共识节点在验证成功后,调用与物资捐赠信息相对应的智能合约计算接收方节点的证书对应的摘要哈希,并中查询是否存在与该摘要哈希相对应的证书,若存在,则返回用于表示执行失败的提示信息;若不存在,则将摘要哈希作为key,将接收方节点的证书作为value,以键值形式(key-value)将接收方节点的证书对应的摘要哈希和捐赠平台节点的证书写入智能合约;
107.其中,对于受捐方节点:共识节点在验证成功后,调用与物资捐赠信息相对应的智能合约计算受捐方节点的证书对应的摘要哈希,并中查询是否存在与该摘要哈希相对应的证书,若存在,则返回用于表示执行失败的提示信息;若不存在,则将摘要哈希作为key,将受捐方节点的证书作为value,以键值形式(key-value)将受捐方节点的证书对应的摘要哈希和捐赠平台节点的证书写入智能合约。
108.此外,可选的,上述方法还包括:捐赠方节点、物流方节点、接收方节点以及受捐方节点分别接收存储由捐赠平台节点反馈的各自对应的上链结果和各自对应的证书的摘要哈希;其中,捐赠方节点、物流方节点、接收方节点以及受捐方节点分别对应的证书的摘要哈希不同。
109.可见,实施该可选的实施例,捐赠方节点、物流方节点、接收方节点以及受捐方节点可以通过捐赠平台节点以及证书签发方节点获取各自对应的证书,以使得捐赠方节点、物流方节点、接收方节点以及受捐方节点能够在区块链中实现对捐赠过程的记录,提升捐赠过程的透明度以及捐赠数据的可信度。
110.更进一步地,在共识节点将证书上链请求的响应结果打包为区块写入区块链账本之后,上述方法还包括:
111.证书签发方节点存储证书对应的摘要哈希;
112.证书签发方节点向捐赠平台节点、捐赠方节点、物流方节点、接收方节点以及受捐方节点分别反馈各自对应的证书的摘要哈希。
113.其中,捐赠方节点、物流方节点、接收方节点以及受捐方节点分别对应的证书的摘要哈希不同。
114.可见,实施该可选的实施例,能够向捐赠平台节点、捐赠方节点、物流方节点、接收方节点以及受捐方节点反馈各自对应的证书,以便捐赠平台节点、捐赠方节点、物流方节
点、接收方节点以及受捐方节点能够基于各自对应的证书触发智能合约执行相应的逻辑,进而实现线上捐赠。
115.本技术实施例中,可选的,捐赠平台节点在区块链网络中部署用于限定物资捐赠规则的智能合约,包括:
116.捐赠平台节点生成智能合约部署请求;其中,智能合约部署请求包括智能合约以及捐赠平台节点对应的公钥;
117.捐赠平台节点通过捐赠平台节点对应的私钥对智能合约部署请求进行签名;
118.捐赠平台节点广播签名后的智能合约部署请求;
119.共识节点根据捐赠平台节点对应的公钥对签名后的智能合约部署请求进行合法性验证;
120.共识节点在验证成功后响应智能合约部署请求;
121.共识节点对智能合约部署请求的响应结果进行共识并将智能合约部署请求的响应结果打包为区块写入区块链账本。
122.其中,智能合约部署请求还包括捐赠平台节点对应的证书的摘要哈希。
123.此外,可选的,共识节点在验证成功后响应智能合约部署请求的方式具体可以为:共识节点在验证成功后生成与智能合约的目标摘要哈希并将目标摘要哈希确定为智能合约地址;通过智能合约地址检测智能合约在区块链中是否具有唯一性;若智能合约在区块链中不具有唯一性,则返回用于表示执行失败的提示信息;若智能合约在区块链中具有唯一性,则根据捐赠平台节点的证书的摘要哈希查询该捐赠平台节点的证书是否存在;若不存在捐赠平台节点的证书,则返回用于表示执行失败的提示信息;若证书库中存在捐赠平台节点的证书,则比对捐赠平台节点的证书中的目标公钥与交易中的目标公钥之间是否存在一致性;若不存在一致性,则返回用于表示执行失败的提示信息;若存在一致性,则将智能合约地址作为key,将智能合约作为value,以键值形式将智能合约地址和智能合约写入缓存;其中,智能合约地址可以通过字符串进行表示。
124.可见,实施该可选的实施例,可以通过在区块链网络中部署智能合约,方便捐赠者实现线上捐赠;此外,捐赠者的捐赠过程对应的数据可以存储于区块链中,这样可以使得捐赠过程公开透明,还可以提升捐赠过程对应的数据的可信度。
125.在步骤s320中,捐赠方节点生成物资捐赠请求并广播物资捐赠请求,物资捐赠请求包括物资捐赠信息以及与物资捐赠信息相对应的智能合约地址。
126.其中,物资捐赠信息包括待捐赠的物资明细以及待捐赠的物资的相关信息(如,物资名称、物资数量等)。
127.进一步可选的,捐赠方节点生成物资捐赠请求并广播物资捐赠请求,包括:捐赠方节点生成物资捐赠请求;其中,物资捐赠请求中包括捐赠方节点对应的公钥;捐赠方节点通过捐赠方节点对应的私钥对物资捐赠请求进行签名;捐赠方节点广播签名后的物资捐赠请求。其中,物资捐赠请求中还可以包括捐赠方节点的编号以及捐赠方节点对应的证书的摘要哈希。
128.在步骤s330中,共识节点对物资捐赠请求进行合法性验证,验证成功后根据智能合约地址调用物资捐赠信息相对应的智能合约,以通过物资捐赠信息相对应的智能合约对物资捐赠请求进行响应。
129.其中,共识节点对物资捐赠请求进行合法性验证,包括:共识节点通过捐赠方节点对应的公钥验证签名后的物资捐赠请求。
130.本技术实施例中,可选的,物资捐赠请求中还包括捐赠方节点对应的证书的摘要哈希,共识节点在验证成功后根据智能合约地址调用物资捐赠信息相对应的智能合约,以通过物资捐赠信息相对应的智能合约对物资捐赠请求进行响应,包括:
131.共识节点在验证成功后根据智能合约地址调用物资捐赠信息相对应的智能合约,以通过物资捐赠信息相对应的智能合约生成与物资捐赠信息对应的摘要哈希,并根据物资捐赠信息对应的摘要哈希检测物资捐赠信息的存在性,以及在物资捐赠信息不存在时根据捐赠方节点对应的证书的摘要哈希查询捐赠方节点对应的证书是否存在,若捐赠方节点对应的证书存在则验证捐赠方节点对应的证书中的公钥与物资捐赠请求中的公钥是否一致,若一致,则将物资捐赠信息对应的摘要哈希、物资捐赠信息以及捐赠方节点对应的编号写入物资捐赠信息相对应的智能合约。
132.其中,将物资捐赠信息对应的摘要哈希、物资捐赠信息以及捐赠方节点对应的编号写入物资捐赠信息相对应的智能合约的方式具体可以为:将物资捐赠信息对应的摘要哈希作为key,将物资捐赠信息和捐赠方节点的编号作为value,以键值形式将物资捐赠信息对应的摘要哈希、物资捐赠信息和捐赠方节点的编号写入智能合约;以及,将物资捐赠信息的摘要哈希作为key,将物资捐赠请求对应的哈希值作为value,以键值形式将物资捐赠信息的摘要哈希和物资捐赠请求对应的哈希值写入智能合约;以及,将捐赠方节点的编号作为key,将物资捐赠信息对应的资产形式和捐赠状态作为value,以键值形式写入智能合约。
133.此外,上述方法还可以包括:区块链网络将物资捐赠信息的上链结果、物资捐赠信息的摘要哈希以及物资捐赠请求对应的哈希值返回捐赠平台节点;捐赠平台节点接收并存储物资捐赠信息的上链结果、物资捐赠信息的摘要哈希以及物资捐赠请求对应的哈希值;捐赠平台节点向捐赠方节点以及公证方节点反馈用于表示物资捐赠信息上链情况的提示信息。
134.可见,实施该可选的实施例,可以便于捐赠者通过区块链网络进行线上资产捐赠,并且,捐赠者的捐赠过程对应的数据可以存储于区块链中,这样可以使得捐赠过程公开透明,进而可以提升捐赠过程对应的数据的可信度。
135.在步骤s340中,共识节点对物资捐赠请求的响应结果进行共识并将物资捐赠请求的响应结果打包为区块写入区块链账本。
136.本技术实施例中,可选的,所述多个节点还包括公证方节点,在共识节点将物资捐赠请求的响应结果打包为区块写入区块链账本之后,上述方法还包括:
137.公证方节点根据与物资捐赠信息对应的公证结果生成公证结果上链请求;其中,公证结果上链请求中包括公证方节点对应的公钥;
138.公证方节点通过公证方节点对应的私钥对公证结果上链请求进行签名;
139.公证方节点广播签名后的公证结果上链请求;
140.共识节点根据公证方节点对应的公钥验证签名后的公证结果上链请求,若验证成功则调用物资捐赠信息对应的智能合约响应公证结果上链请求;
141.共识节点共识公证结果上链请求的响应结果并将公证结果上链请求的响应结果打包为区块写入区块链账本。
142.其中,公证方节点可以为公证机构,用于提供对物资捐赠信息进行公证的服务。
143.此外,可选的,上述方法还可以包括:公证方节点向捐赠平台节点发送身份认证信息,以使得捐赠平台节点根据公证方节点的身份认证信息执行针对公证方节点的身份认证操作并生成与公证方节点对应的非对称加密密钥;公证方节点根据与公证方节点对应的非对称加密密钥中的私钥对公证方节点的身份认证信息进行签名名,并根据签名后的身份认证信息和公证方节点对应的非对称加密密钥中的公钥生成公证方节点对应的证书申请请求并向证书签发方节点传输公证方节点对应的证书申请请求,以使得证书签发方节点根据公证方节点对应的证书申请请求生成与公证方节点对应的证书;证书签发方节点根据公证方节点对应的证书生成证书上链请求;其中,证书上链请求中包括证书签发方节点对应的公钥;证书签发方节点通过证书签发方节点对应的私钥对证书上链请求进行签名;证书签发方节点广播签名后的证书上链请求;共识节点通过证书签发方节点对应的公钥对签名后的证书上链请求进行合法性验证;共识节点在验证成功后调用与物资捐赠信息相对应的智能合约对证书上链请求进行响应;共识节点对证书上链请求的响应结果进行共识,并将证书上链请求的响应结果打包为区块写入区块链账本。
144.其中,共识节点在验证成功后调用与物资捐赠信息相对应的智能合约对证书上链请求进行响应的方式具体可以为;共识节点在验证成功后调用与物资捐赠信息相对应的智能合约计算公证方节点的证书对应的摘要哈希,并在证书库中查询是否存在与该摘要哈希相对应的证书;若存在,则返回用于表示第一交易执行失败的提示信息;若不存在,则将公证方节点的证书对应的摘要哈希作为key,将公证方节点的证书作为value,以键值形式将公证方节点的证书对应的摘要哈希和公证方节点的证书写入智能合约。
145.此外,公证结果上链请求中还可以包括:捐赠方节点的编号、物资捐赠信息对应的摘要哈希、智能合约地址以及公证方节点的证书对应的摘要哈希。
146.进一步地,共识节点调用物资捐赠信息对应的智能合约响应公证结果上链请求的方式具体可以为:共识节点调用物资捐赠信息对应的智能合约检测是否存在已部署的与智能合约地址相对应的智能合约,若不存在,则返回用于表示执行失败的提示信息;若存在,则调用物资捐赠信息对应的智能合约计算公证结果对应的摘要哈希并查询是否存在与公证结果对应的摘要哈希相匹配的公证结果,若存在,则返回用于表示执行失败的提示信息;若不存在,则比对公证方节点对应的证书中的公钥与公证结果上链请求中的公钥是否一致,若不一致,则返回用于表示执行失败的提示信息;若一致,则根据物资捐赠信息对应的摘要哈希检测物资捐赠信息的唯一性,若该物资捐赠信息不具有唯一性,则返回用于表示执行失败的提示信息;若该物资捐赠信息具有唯一性,则校验物资捐赠信息的捐赠信息与公证结果中的捐赠信息是否一致,若不一致,则返回用于表示执行失败的提示信息;若一致,则将智能合约中的捐赠状态更新为已公证;将公证结果上链请求对应的哈希值和公证方节点的编号写入智能合约。
147.可见,实施该可选的实施例,能够通过公证方节点对区块链网络中的物资捐赠信息进行公证,以提升捐赠数据的可信度。
148.进一步地,所述多个节点还包括物流方节点,在共识节点将公证结果上链请求的响应结果打包为区块写入区块链账本之后,上述方法还包括:
149.捐赠方节点将物资捐赠信息对应的物流协议上传区块链网络;
150.区块链网络向捐赠平台节点返回物流协议的上链结果;
151.捐赠平台节点根据物流协议的上链结果向物流方节点反馈第一提示信息;
152.物流方节点根据物流协议查询区块链网络中的物资捐赠信息与捐赠平台节点输出的物资捐赠信息是否一致,若一致,则广播物流协议更新请求;
153.共识节点对物流协议更新请求进行合法性验证,验证成功后调用物资捐赠信息对应的智能合约响应物流协议更新请求,以更新物流协议并依据物流协议进行资产数据转移;
154.共识节点将物流协议更新请求的响应结果打包为区块写入区块链账本。
155.其中,第一提示信息中包括物流协议的上链结果。
156.另外,可选的,捐赠方节点将物资捐赠信息对应的物流协议上传区块链网络的方式具体可以为:捐赠方节点根据物资捐赠信息对应的物流协议生成协议上链请求;其中,协议上链请求包括捐赠方节点的编号、物流方节点的编号、物资捐赠信息对应的智能合约地址、物流号、物资捐赠信息的摘要哈希、捐赠平台节点的证书对应的摘要哈希以及捐赠方节点对应的公钥;捐赠方节点通过捐赠方节点对应的私钥对协议上链请求进行签名;协议上链请求广播签名后的协议上链请求;共识节点根据捐赠方节点对应的公钥对签名后的协议上链请求进行合法性验证;共识节点在验证成功后调用物资捐赠信息对应的智能合约对协议上链请求进行响应;共识节点对协议上链请求的响应结果进行共识并将协议上链请求的响应结果打包为区块写入区块链账本。
157.其中,共识节点在验证成功后调用物资捐赠信息对应的智能合约对协议上链请求进行响应的方式具体可以为:共识节点在验证成功后调用物资捐赠信息对应的智能合约查询是否已部署与智能合约地址相匹配的智能合约,如果未部署智能合约,则返回用于表示执行失败的提示信息;如果已部署智能合约,则通过捐赠平台节点的证书对应的摘要哈希查询是否存在捐赠方节点对应的证书,如果查询失败,则返回用于表示执行失败的提示信息;如果查询成功,则比对捐赠方节点的证书中的公钥与协议上链请求中的公钥之间是否存在一致性,如果不存在一致性,则返回用于表示执行失败的提示信息;如果存在一致性,则通过物资捐赠信息的摘要哈希查询是否存在与之对应的物资捐赠信息的信息,如果查询失败,则返回用于表示执行失败的提示信息;如果查询成功,则检测物资捐赠信息对应的捐赠方节点编号与交易对应的捐赠方节点编号是否一致,如果不一致,则返回用于表示执行失败的提示信息;如果一致,则通过捐赠方节点编号查询资产信息并校验捐赠状态是否为已公证,如果查询失败或捐赠状态不是已公证,则返回用于表示执行失败的提示信息;如果查询成功且捐赠状态为已公证,则将物流协议对应的签署状态确定为已签约并将物流号作为key,将捐赠方节点的编号、物流方节点编号、物资捐赠信息的摘要哈希、签署状态以及协议上链请求对应的哈希值作为value,以键值形式将key和value写入智能合约。
158.此外,可选的,物流协议更新请求可以包括:捐赠方节点的编号、物流方节点的编号、智能合约地址、物流号、物资捐赠信息的摘要哈希、协议上链请求对应的哈希值、物流方节点的证书对应的摘要哈希以及物流方节点的公钥。进一步地,共识节点在验证成功后调用物资捐赠信息对应的智能合约响应物流协议更新请求的方式具体可以为:共识节点在验证成功后调用物资捐赠信息对应的智能合约查询是否已部署与智能合约地址相匹配的智能合约,如果未部署智能合约,则返回用于表示执行失败的提示信息;如果已部署智能合
约,则通过物流方节点的证书对应的摘要哈希查询是否存在物流方节点对应的证书,如果查询失败,则返回用于表示执行失败的提示信息;如果查询成功,则比对物流方节点的证书中的公钥与物流协议更新请求中的公钥之间是否存在一致性,如果不存在一致性,则返回用于表示执行失败的提示信息;如果存在一致性,则检测是否存在物流协议,如果不存在物流协议,则返回用于表示执行失败的提示信息;如果存在物流协议,则通过物流号查询物流内容,比对捐赠方节点针对物流内容的交易哈希与物流方节点针对物流内容的交易哈希是否一致,如果不一致,则返回用于表示执行失败的提示信息;如果一致,则校验签署状态是否为已签约,如果不是,则返回用于表示执行失败的提示信息;如果是,则校验物流方节点编号、物流协议以及物资捐赠信息的摘要哈希是否正确,如果物流方节点编号、物流协议以及物资捐赠信息的摘要哈希中任意一项不正确,则返回用于表示执行失败的提示消息;如果物流方节点编号、物流协议以及物资捐赠信息的摘要哈希均正确,则将物流协议的签署状态更新为已生效并在物流协议中新增物流方节点的物流协议更新请求的哈希值,进而将新增哈希值后的物流协议写入智能合约。
159.此外,可选的,共识节点调用物资捐赠信息对应的智能合约,以使得智能合约依据物流协议进行资产数据转移的方式具体可以为:智能合约从捐赠方节点的编号对应的总资产中扣除物资捐赠信息对应的资产数据并在物流方节点的编号对应的总资产中增加物资捐赠信息对应的资产数据,以实现物资捐赠信息由捐赠方节点向物流方节点的转移。
160.可见,实施该可选的实施例,能够通过区块链实现线上捐赠,并且实现捐赠过程的公开透明,提升捐赠数据的可信度。
161.进一步可选的,在共识节点将物流协议更新请求的响应结果打包为区块写入区块链账本之后,上述方法还包括:物流方节点将物资捐赠信息对应的签收协议上传区块链网络;区块链网络向捐赠平台节点返回签收协议的上链结果;捐赠平台节点根据签收协议的上链结果向接收方节点反馈第二提示信息;接收方节点根据签收协议查询区块链网络中的物资捐赠信息与捐赠平台节点输出的物资捐赠信息是否一致,若一致,则广播签收协议更新请求;共识节点对签收协议更新请求进行合法性验证,验证成功后调用物资捐赠信息对应的智能合约对签收协议更新请求进行响应,以更新签收协议并依据签收协议进行资产数据转移;共识节点将签收协议更新请求的响应结果打包为区块写入区块链账本。
162.其中,第二提示信息中包括:签收协议的上链结果。签收协议更新请求包括:物流方节点的编号、接收方节点的编号、智能合约地址、签收协议的编号、物资捐赠信息的摘要哈希、物流方节点的证书对应的摘要哈希以及物流方节点对应的公钥。进一步地,共识节点在验证成功后调用物资捐赠信息对应的智能合约对签收协议更新请求进行响应的方式具体可以为:共识节点在验证成功后调用物资捐赠信息对应的智能合约查询是否已部署与智能合约地址相匹配的智能合约,如果未部署智能合约,则返回用于表示执行失败的提示信息;如果已部署智能合约,则通过物流方节点的证书对应的摘要哈希查询是否存在物流方节点对应的证书,如果查询失败,则返回用于表示执行失败的提示信息;如果查询成功,则比对物流方节点的证书中的公钥与签收协议更新请求中的公钥之间是否存在一致性,如果不存在一致性,则返回用于表示执行失败的提示信息;如果存在一致性,则通过物资捐赠信息的摘要哈希查询是否存在与之对应的物资捐赠信息的信息,如果查询失败,则返回用于表示执行失败的提示信息;如果查询成功,则通过物流方节点的编号查询资产信息并通过
物流号查询物流协议,若其中任一项查询失败,则返回用于表示执行失败的提示信息;若均查询成功,则检查物流协议对应的签署状态是否为已生效,若不是已生效,则返回用于表示执行失败的提示信息;若为已生效,则将签收协议的签署状态确定为已签约并将签收协议编号作为key,将物流方节点编号、接收方节点的编号、签收协议、签收协议的签署状态以及签收协议更新请求对应的哈希值作为value,以键值形式将key和value写入智能合约。
163.更进一步可选的,在共识节点将签收协议更新请求的响应结果打包为区块写入区块链账本之后,上述方法还包括:接收方节点将物资捐赠信息对应的捐赠协议上传区块链网络;区块链网络向捐赠平台节点返回捐赠协议的上链结果;捐赠平台节点根据捐赠协议的上链结果向受捐方节点反馈第三提示信息;受捐方节点根据捐赠协议查询区块链网络中的物资捐赠信息与捐赠平台节点输出的物资捐赠信息是否一致,若一致,则广播捐赠协议更新请求;共识节点对捐赠协议更新请求进行合法性验证,验证成功后调用物资捐赠信息对应的智能合约对捐赠协议更新请求进行响应,以更新捐赠协议并依据捐赠协议进行资产数据转移;共识节点将捐赠协议更新请求的响应结果打包为区块写入区块链账本。
164.其中,捐赠协议更新请求包括:接收方节点的编号、受捐方节点的编号、智能合约地址、捐赠协议的编号、物资捐赠信息的摘要哈希、接收方节点的证书对应的摘要哈希以及接收方节点对应的公钥。进一步地,共识节点在验证成功后调用物资捐赠信息对应的智能合约对捐赠协议更新请求进行响应的方式具体可以为:共识节点在验证成功后调用物资捐赠信息对应的智能合约查询是否已部署与智能合约地址相匹配的智能合约,如果未部署智能合约,则返回用于表示执行失败的提示信息;如果已部署智能合约,则通过接收方节点的证书对应的摘要哈希查询是否存在接收方节点对应的证书,如果查询失败,则返回用于表示执行失败的提示信息;如果查询成功,则比对接收方节点的证书中的公钥与捐赠协议更新请求中的公钥之间是否存在一致性,如果不存在一致性,则返回用于表示执行失败的提示信息;如果存在一致性,则通过物资捐赠信息的摘要哈希查询是否存在与之对应的物资捐赠信息的信息,如果查询失败,则返回用于表示执行失败的提示信息;如果查询成功,则将捐赠协议的签署状态确定为已签约并将捐赠协议的编号作为key,将受捐方节点的编号、接收方节点的编号、捐赠协议、捐赠协议的签署状态以及捐赠协议更新请求的哈希值作为value,以键值形式将key和value写入智能合约。
165.此外,可选的,在共识节点将捐赠协议更新请求的响应结果打包为区块写入区块链账本之后,上述方法还可以包括:区块链网络向受捐方节点发送用于表示资产捐赠成功的提示信息(例如,已通过区块链完成捐赠,请查收)。
166.此外,可选的,在共识节点将捐赠协议更新请求的响应结果打包为区块写入区块链账本之后,上述方法还可以包括以下步骤:
167.受捐方节点获取用于表征捐赠协议的捐赠协议号;
168.受捐方节点根据捐赠协议号在区块链中查询捐赠协议对应的第一捐赠内容;
169.受捐方节点根据捐赠协议号在捐赠平台节点中查询捐赠协议对应的第二捐赠内容;
170.受捐方节点对比第一捐赠内容和第二捐赠内容是否一致;
171.若一致,受捐方节点对捐赠协议进行签名,并将签名后的捐赠协议进行广播,以使得共识节点对签名后的捐赠协议进行验证、共识,进而写入区块链账本。
172.请参阅图4。图4示意性示出了根据本技术的一个实施例的基于区块链的捐赠方法的流程图。一个实施例的基于区块链的捐赠方法包括:步骤s400~步骤s422,其中:
173.步骤s400:证书签发方节点生成捐赠平台节点、捐赠方节点、物流方节点、接收方节点以及受捐方节点分别对应的证书;根据证书生成证书上链请求;其中,证书上链请求中包括证书签发方节点对应的公钥;通过证书签发方节点对应的私钥对证书上链请求进行签名;广播签名后的证书上链请求。
174.步骤s402:共识节点通过证书签发方节点对应的公钥对签名后的证书上链请求进行合法性验证;在验证成功后调用与物资捐赠信息相对应的智能合约计算证书对应的摘要哈希,并通过摘要哈希验证证书的存在性,以及在证书不存在时将证书对应的摘要哈希和证书以键值形式写入与物资捐赠信息相对应的智能合约;对证书上链请求的响应结果进行共识,并将证书上链请求的响应结果打包为区块写入区块链账本。
175.步骤s404:捐赠平台节点生成智能合约部署请求;其中,智能合约部署请求包括智能合约以及捐赠平台节点对应的公钥;通过捐赠平台节点对应的私钥对智能合约部署请求进行签名;广播签名后的智能合约部署请求。
176.步骤s406:共识节点根据捐赠平台节点对应的公钥对签名后的智能合约部署请求进行合法性验证;在验证成功后响应智能合约部署请求;对智能合约部署请求的响应结果进行共识并将智能合约部署请求的响应结果打包为区块写入区块链账本。
177.步骤s408:捐赠方节点生成物资捐赠请求并广播物资捐赠请求,物资捐赠请求包括物资捐赠信息以及与物资捐赠信息相对应的智能合约地址。
178.步骤s410:共识节点对物资捐赠请求进行合法性验证;验证成功后根据智能合约地址调用物资捐赠信息相对应的智能合约,以通过物资捐赠信息相对应的智能合约对物资捐赠请求进行响应;对物资捐赠请求的响应结果进行共识并将物资捐赠请求的响应结果打包为区块写入区块链账本。
179.步骤s412:共识节点对物资捐赠请求的响应结果进行共识并将物资捐赠请求的响应结果打包为区块写入区块链账本。
180.步骤s414:公证方节点根据与物资捐赠信息对应的公证结果生成公证结果上链请求;其中,公证结果上链请求中包括公证方节点对应的公钥;通过公证方节点对应的私钥对公证结果上链请求进行签名;广播签名后的公证结果上链请求。
181.步骤s416:共识节点根据公证方节点对应的公钥验证签名后的公证结果上链请求,若验证成功则调用物资捐赠信息对应的智能合约响应公证结果上链请求;共识公证结果上链请求的响应结果并将公证结果上链请求的响应结果打包为区块写入区块链账本。
182.步骤s418:捐赠方节点将物资捐赠信息对应的物流协议上传区块链网络;区块链网络向捐赠平台节点返回物流协议的上链结果;捐赠平台节点根据物流协议的上链结果向物流方节点反馈第一提示信息;物流方节点根据物流协议查询区块链网络中的物资捐赠信息与捐赠平台节点输出的物资捐赠信息是否一致,若一致,则广播物流协议更新请求;共识节点对物流协议更新请求进行合法性验证,验证成功后调用物资捐赠信息对应的智能合约响应物流协议更新请求,以更新物流协议并依据物流协议进行资产数据转移;将物流协议更新请求的响应结果打包为区块写入区块链账本。
183.步骤s420:物流方节点将物资捐赠信息对应的签收协议上传区块链网络;区块链
网络向捐赠平台节点返回签收协议的上链结果;捐赠平台节点根据签收协议的上链结果向接收方节点反馈第二提示信息;接收方节点根据签收协议查询区块链网络中的物资捐赠信息与捐赠平台节点输出的物资捐赠信息是否一致,若一致,则广播签收协议更新请求;共识节点对签收协议更新请求进行合法性验证,验证成功后调用物资捐赠信息对应的智能合约对签收协议更新请求进行响应,以更新签收协议并依据签收协议进行资产数据转移;共识节点将签收协议更新请求的响应结果打包为区块写入区块链账本。
184.步骤s422:接收方节点将物资捐赠信息对应的捐赠协议上传区块链网络;区块链网络向捐赠平台节点返回捐赠协议的上链结果;捐赠平台节点根据捐赠协议的上链结果向受捐方节点反馈第三提示信息;受捐方节点根据捐赠协议查询区块链网络中的物资捐赠信息与捐赠平台节点输出的物资捐赠信息是否一致,若一致,则广播捐赠协议更新请求;共识节点对捐赠协议更新请求进行合法性验证,验证成功后调用物资捐赠信息对应的智能合约对捐赠协议更新请求进行响应,以更新捐赠协议并依据捐赠协议进行资产数据转移;共识节点将捐赠协议更新请求的响应结果打包为区块写入区块链账本。
185.需要说明的是,步骤s400~步骤s422与图3所示的各步骤及其实施例相对应,针对步骤s400~步骤s422的具体实施方式,请参阅图3所示的各步骤及其实施例,此处不再赘述。
186.可见,实施图4所示的方法,能够通过对捐赠过程进行上链可以使得捐赠过程公开、透明,进而有利于提升捐赠数据的可信度。此外,能够通过区块链对于捐赠过程进行记录,避免捐赠数据被篡改。
187.进一步的,本示例实施方式中,还提供了一种基于区块链的捐赠系统。参考图5所示,该基于区块链的捐赠系统包括:
188.捐赠平台节点501,用于在区块链网络中部署用于限定物资捐赠规则的智能合约;
189.捐赠方节点502,用于生成物资捐赠请求并广播所述物资捐赠请求,物资捐赠请求包括物资捐赠信息以及与物资捐赠信息相对应的智能合约地址;
190.共识节点503,用于对物资捐赠请求进行合法性验证,验证成功后根据智能合约地址调用物资捐赠信息相对应的智能合约,以通过物资捐赠信息相对应的智能合约对物资捐赠请求进行响应;
191.共识节点503,还用于对物资捐赠请求的响应结果进行共识并将物资捐赠请求的响应结果打包为区块写入区块链账本。
192.可见,实施图5所示的系统,能够通过对捐赠过程进行上链可以使得捐赠过程公开、透明,进而有利于提升捐赠数据的可信度。此外,能够通过区块链对于捐赠过程进行记录,避免捐赠数据被篡改。
193.在本技术的一种示例性实施例中,多个节点还包括证书签发方节点(未图示)、物流方节点(未图示)、接收方节点(未图示)以及受捐方节点(未图示),上述系统还包括:
194.证书签发方节点,用于生成捐赠平台节点501、捐赠方节点502、物流方节点、接收方节点以及受捐方节点分别对应的证书;
195.证书签发方节点,还用于根据证书生成证书上链请求;其中,证书上链请求中包括证书签发方节点对应的公钥;
196.证书签发方节点,还用于通过证书签发方节点对应的私钥对证书上链请求进行签
名;
197.证书签发方节点,还用于广播签名后的证书上链请求;
198.共识节点503,还用于通过证书签发方节点对应的公钥对签名后的证书上链请求进行合法性验证;
199.共识节点503,还用于在验证成功后调用与物资捐赠信息相对应的智能合约对证书上链请求进行响应;
200.共识节点503,还用于对证书上链请求的响应结果进行共识,并将证书上链请求的响应结果打包为区块写入区块链账本。
201.可见,实施该可选的实施例,能够生成各参与方对应的证书并通过区块链网络中的共识节点对其进行验证、共识,进而写入区块链账本,以使得各参与方能够基于区块链技术进行协作,进而实现线上捐赠。
202.在本技术的一种示例性实施例中,共识节点503,还用于在验证成功后调用与物资捐赠信息相对应的智能合约对证书上链请求进行响应,包括:
203.共识节点503验证成功后调用与物资捐赠信息相对应的智能合约计算证书对应的摘要哈希,并通过摘要哈希验证证书的存在性,以及在证书不存在时将证书对应的摘要哈希和证书以键值形式写入与物资捐赠信息相对应的智能合约。
204.可见,实施该可选的实施例,捐赠方节点、物流方节点、接收方节点以及受捐方节点可以通过捐赠平台节点以及证书签发方节点获取各自对应的证书,以使得捐赠方节点、物流方节点、接收方节点以及受捐方节点能够在区块链中实现对捐赠过程的记录,提升捐赠过程的透明度以及捐赠数据的可信度。
205.在本技术的一种示例性实施例中,在共识节点503将证书上链请求的响应结果打包为区块写入区块链账本之后,上述系统还包括:
206.证书签发方节点,还用于存储证书对应的摘要哈希;
207.证书签发方节点,还用于向捐赠平台节点501、捐赠方节点502、物流方节点、接收方节点以及受捐方节点分别反馈各自对应的证书的摘要哈希。
208.可见,实施该可选的实施例,能够向捐赠平台节点、捐赠方节点、物流方节点、接收方节点以及受捐方节点反馈各自对应的证书,以便捐赠平台节点、捐赠方节点、物流方节点、接收方节点以及受捐方节点能够基于各自对应的证书触发智能合约执行相应的逻辑,进而实现线上捐赠。
209.在本技术的一种示例性实施例中,捐赠平台节点501,用于在区块链网络中部署用于限定物资捐赠规则的智能合约,包括:
210.捐赠平台节点501生成智能合约部署请求;其中,智能合约部署请求包括智能合约以及捐赠平台节点501对应的公钥;
211.捐赠平台节点501通过捐赠平台节点501对应的私钥对智能合约部署请求进行签名;
212.捐赠平台节点501广播签名后的智能合约部署请求;
213.共识节点503根据捐赠平台节点501对应的公钥对签名后的智能合约部署请求进行合法性验证;
214.共识节点503在验证成功后响应智能合约部署请求;
215.共识节点503对智能合约部署请求的响应结果进行共识并将智能合约部署请求的响应结果打包为区块写入区块链账本。
216.可见,实施该可选的实施例,可以通过在区块链网络中部署智能合约,方便捐赠者实现线上捐赠;此外,捐赠者的捐赠过程对应的数据可以存储于区块链中,这样可以使得捐赠过程公开透明,还可以提升捐赠过程对应的数据的可信度。
217.在本技术的一种示例性实施例中,物资捐赠请求中还包括捐赠方节点502对应的证书的摘要哈希,共识节点503,还用于在验证成功后根据智能合约地址调用物资捐赠信息相对应的智能合约,以通过物资捐赠信息相对应的智能合约对物资捐赠请求进行响应,包括:
218.共识节点503在验证成功后根据智能合约地址调用物资捐赠信息相对应的智能合约,以通过物资捐赠信息相对应的智能合约生成与物资捐赠信息对应的摘要哈希,并根据物资捐赠信息对应的摘要哈希检测物资捐赠信息的存在性,以及在物资捐赠信息不存在时根据捐赠方节点502对应的证书的摘要哈希查询捐赠方节点502对应的证书是否存在,若捐赠方节点502对应的证书存在则验证捐赠方节点502对应的证书中的公钥与物资捐赠请求中的公钥是否一致,若一致,则将物资捐赠信息对应的摘要哈希、物资捐赠信息以及捐赠方节点502对应的编号写入物资捐赠信息相对应的智能合约。
219.可见,实施该可选的实施例,可以便于捐赠者通过区块链网络进行线上资产捐赠,并且,捐赠者的捐赠过程对应的数据可以存储于区块链中,这样可以使得捐赠过程公开透明,进而可以提升捐赠过程对应的数据的可信度。
220.在本技术的一种示例性实施例中,在共识节点503将物资捐赠请求的响应结果打包为区块写入区块链账本之后,上述系统还包括:
221.公证方节点,用于根据与物资捐赠信息对应的公证结果生成公证结果上链请求;其中,公证结果上链请求中包括公证方节点对应的公钥;
222.公证方节点,还用于通过公证方节点对应的私钥对公证结果上链请求进行签名;
223.公证方节点,还用于广播签名后的公证结果上链请求;
224.共识节点503,还用于根据公证方节点对应的公钥验证签名后的公证结果上链请求,若验证成功则调用物资捐赠信息对应的智能合约响应公证结果上链请求;
225.共识节点503,还用于共识公证结果上链请求的响应结果并将公证结果上链请求的响应结果打包为区块写入区块链账本。
226.可见,实施该可选的实施例,能够通过公证方节点对区块链网络中的物资捐赠信息进行公证,以提升捐赠数据的可信度。
227.在本技术的一种示例性实施例中,在共识节点503将公证结果上链请求的响应结果打包为区块写入区块链账本之后,上述系统还包括:
228.捐赠方节点502,还用于将物资捐赠信息对应的物流协议上传区块链网络;
229.区块链网络,用于向捐赠平台节点501返回物流协议的上链结果;
230.捐赠平台节点501,还用于根据物流协议的上链结果向物流方节点反馈第一提示信息;
231.物流方节点,用于根据物流协议查询区块链网络中的物资捐赠信息与捐赠平台节点输出的物资捐赠信息是否一致,若一致,则广播物流协议更新请求;
232.共识节点503,还用于对物流协议更新请求进行合法性验证,验证成功后调用物资捐赠信息对应的智能合约响应物流协议更新请求,以更新物流协议并依据物流协议进行资产数据转移;
233.共识节点503,还用于将物流协议更新请求的响应结果打包为区块写入区块链账本。
234.可见,实施该可选的实施例,能够通过区块链实现线上捐赠,并且实现捐赠过程的公开透明,提升捐赠数据的可信度。
235.请参阅图6,图6示意性示出了根据本技术的另一个实施例的基于区块链的捐赠系统的架构图。其中,上述的捐赠平台节点可以为图6中的捐赠平台节点601、上述的捐赠方节点可以为图6中的捐赠者节点604、上述的证书签发方节点可以为图6中的ca机构节点602、上述的物流方节点可以为图6中的物流节点605、上述的受捐方节点可以为图6中的受捐者节点607、上述的接收方节点可以为图6中的慈善机构节点606。具体地,捐赠平台节点601、捐赠者节点604、物流节点605、慈善机构节点606以及受捐者节点607均由ca机构节点602生成并广播,由共识节点进行验证、共识、打包为区块写入区块链。进而,捐赠平台节点601可以在区块链网络中部署用于限定物资捐赠规则的智能合约。捐赠者节点604可以生成物资捐赠请求并广播所述物资捐赠请求,进而通过区块链网络中的共识节点进行验证、共识以及将智能合约对物资捐赠请求的响应结果写入区块链;捐赠者节点604还可以将物流协议进行广播,以使得共识节点对其进行验证、共识以及将智能合约对物流协议上链请求的响应结果写入区块链,进而,物流节点605能够通过更新区块链网络中物流协议的签署状态,触发智能合约将物资捐赠信息对应的资产数据由捐赠者节点604转移至物流节点605。进而,物流节点605还可以将签收协议进行广播,以使得共识节点对其进行验证、共识以及将智能合约对签收协议上链请求的响应结果写入区块链,进而,慈善机构节点606能够通过更新区块链网络中签收协议的签署状态,触发智能合约将物资捐赠信息对应的资产数据由物流节点605转移至慈善机构节点606。进而,慈善机构节点606还可以将捐赠协议进行广播,以使得共识节点对其进行验证、共识以及将智能合约对捐赠协议上链请求的响应结果写入区块链,进而,受捐者节点607能够通过更新区块链网络中捐赠协议的签署状态,触发智能合约将物资捐赠信息对应的资产数据由慈善机构节点606转移至受捐者节点607,以完成物资捐赠流程。其中,物资捐赠信息对应的资产数据在各方之间进行流转的过程中,相对应的数据可以存储于区块链中,实施本技术实施例可以提升捐赠过程的公开度和透明度,并提升捐赠数据的可信度。
236.由于本技术的示例实施例的基于区块链的捐赠系统的各个步骤与上述基于区块链的捐赠方法的示例实施例的各功能对象对应,因此对于本技术方法实施例中未披露的细节,请参照本技术上述的基于区块链的捐赠方法的实施例。
237.作为另一方面,本技术还提供了一种用户节点,用户节点包括中央处理单元(cpu),其可以根据存储在只读存储器(rom)中的程序或者从存储部分加载到随机访问存储器(ram)中的程序而执行各种适当的动作和处理,以实现本发明实施例提供的各种方法步骤。在ram中,还存储有系统操作所需的各种程序和数据。cpu、rom以及ram通过总线彼此相连。输入/输出(i/o)接口也连接至总线。以下部件连接至i/o接口:包括键盘、鼠标等的输入部分;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分;包括硬盘
等的存储部分;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分。通信部分经由诸如因特网的网络执行通信处理。驱动器也根据需要连接至i/o接口。可拆卸介质,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器上,以便于从其上读出的计算机程序根据需要被安装入存储部分。
238.作为又一方面,本技术还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的用户节点中所包含的;也可以是单独存在。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个用户节点执行时,使得用户节点实现上述实施例中所述的方法。
239.需要说明的是,本技术所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
240.附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
241.描述于本技术实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
242.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的
权利要求指出。
243.应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献