[发明专利]一种基于Fabric联盟链的投票共识方法在审
| 申请号: | 201911385348.6 | 申请日: | 2019-12-28 |
| 公开(公告)号: | CN111163165A | 公开(公告)日: | 2020-05-15 |
| 发明(设计)人: | 孙恩昌;姚勇锋;王勇;邱凯;张延华;司鹏搏 | 申请(专利权)人: | 北京工业大学 |
| 主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L29/06;H04L9/32;H04L12/58;G07C13/00;G06Q40/04 |
| 代理公司: | 北京思海天达知识产权代理有限公司 11203 | 代理人: | 沈波 |
| 地址: | 100124 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 fabric 联盟 投票 共识 方法 | ||
1.一种基于Fabric联盟链的投票共识方法,其特征在于:包括以下步骤:
步骤1:在HyperledgerFabric平台上搭建一个联盟链网络,将现实生活中联盟成员绑定到联盟链网络中,在Fabric中编写相应的配置文件,预留动态加入联盟组织的节点数量,并建立通道,布置通道中的排序节点及排序算法;
步骤2:搭建Web端的投票系统,完成前台页面的开发,使用Java的SSM框架搭建后台服务器,分别设定联盟内外成员的业务逻辑,而与Fabric区块链交互的接口使用Fabric-Java-SDK编写;
步骤3:联盟链中的节点是通过投票系统调用相应接口,触发联盟链的链码最终实现和区块链账本之间的交互,所以联盟链必须设计相应的业务链码,并与联盟链节点之间进行身份绑定,确保系统交易的真实性,最终将设计的链码部署到联盟链的每个节点上;
步骤4:当有组织外成员想加入到联盟链的通道时,首先要在系统内进行身份注册,注册成功后变成系统内的联盟外节点用户,再登录到系统内部,申请加入联盟链中,提交信息后等待联盟链中各成员的审核,各成员一致同意后成为联盟链节点,参与到联盟组织的业务中;
步骤5:当某个联盟成员需要在联盟内部对某项内容达成共识时,先利用系统投票共识功能发布相应的内容,并通知系统内的联盟成员在规定时间内投票,其它成员收到信息后登录到系统内进行投票表决,当所有节点完成投票或达到投票截止时间时,链码统计最终的投票结果,将结果存入联盟链每个节点中;
步骤6:组织内成员还能通过系统内的查询记录功能对每次投票结果进行查询验证,发现各节点账本中存储的投票结果不同时,便认为此次投票结果发生篡改,共识内容也在联盟内作废,需重新进行新一轮的投票共识。
2.根据权利要求1所述的一种基于Fabric联盟链的投票共识方法,其特征在于:
步骤1.1:联盟组织各节点搭建HyperledgerFabric的相应环境,并在配置文件中将各个节点地址信息写入,组成一个Fabric联盟链;
步骤1.2:建立通道,在通道中设定好相应的背书节点、排序节点、记账节点,在配置文件中预留动态加入联盟链的节点数量,根据实际需求选择网络的排序算法,并在配置文件中声明。
3.根据权利要求1所述的一种基于Fabric联盟链的投票共识方法,其特征在于:
步骤2.1:搭建Web端的投票系统,使用HTML、CSS、JavaScript完成前台页面的开发;
步骤2.2:使用Java的Spring、SpringMVC、Mybatis框架搭建后台服务器,在后台分别设定联盟内外成员的业务逻辑,将用户注册登录作为内外成员都能使用的功能,加入联盟功能专门给联盟外用户使用,而投票共识及查询记录功能只允许联盟内用户使用,数据则存储在Mysql数据库和区块链两端;
步骤2.3:开发Fabric-Java-SDK,用其作为后台服务器与区块链交互的入口。
4.根据权利要求1所述的一种基于Fabric联盟链的投票共识方法,其特征在于:
步骤3.1:根据联盟内用户的功能需求,设定所需要的链码,包含投票链码、统计投票结果链码以及查询投票结果链码,并在统计投票链码中设定投票通过的阈值,在各个链码中绑定各节点登录系统的账号密码以及联盟链的节点身份地址,确保交易真实性;
步骤3.2:进入Fabric的cli容器中,各节点安装并实例化链码,保证链码部署到整个通道网络中;
步骤3.3:各节点使用命令启动Fabric网络。
5.根据权利要求1所述的一种基于Fabric联盟链的投票共识方法,其特征在于:
步骤4.1:当有组织外成员想加入到联盟链的通道时,首先要在系统内进行身份注册,注册成功后变成系统内的联盟外节点用户,使用系统功能;
步骤4.2:登录到系统内部,申请加入联盟链中,提交相应信息后等待联盟链中各成员的审核;
步骤4.3:联盟内所有成员登录到系统中查看加入联盟的请求信息,一致同意后成为联盟链节点,加入对应的账本通道,参与到联盟组织的业务中,若有联盟内任意成员拒绝,则加入联盟失败;
步骤4.4:联盟外节点加入成功后需要更新相应链码,升级链码后重启Fabric网络,系统运行。
6.根据权利要求1所述的一种基于Fabric联盟链的投票共识方法,其特征在于:
步骤5.1:当某个联盟成员需要在联盟内部对某项内容达成共识时,先利用系统投票共识功能发布相应的内容,只有联盟链中的成员能够成功发布,联盟外成员会提示权限不够;
步骤5.2:发布成功后,利用系统的发送邮件功能通知所有联盟成员在规定时间内投票,其它成员收到信息后登录到系统内进行投票表决
步骤5.3:其它成员在投票时,首先系统客户端会将投票结果发送给背书节点,背书节点调用投票链码对节点身份进行签名验证,验证通过后将签名结果发送给其它背书节点,取得联盟内所有背书节点的签名后投票交易才能生效,调用链码将该节点投票结果发送给投票结果统计链码,投票结束时链码会统计所有节点的投票结果,并判断投票是否通过,最后取得所有背书节点的签名后将投票结果发送给排序节点,排序节点打包交易生成区块发送给联盟中的所有记账节点,保证每个节点中存储的账本信息一致。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911385348.6/1.html,转载请声明来源钻瓜专利网。





