CN115905403A - 一种基于以太坊智能合约的校园巡检积分方法及系统 - Google Patents
一种基于以太坊智能合约的校园巡检积分方法及系统 Download PDFInfo
- Publication number
- CN115905403A CN115905403A CN202211322127.6A CN202211322127A CN115905403A CN 115905403 A CN115905403 A CN 115905403A CN 202211322127 A CN202211322127 A CN 202211322127A CN 115905403 A CN115905403 A CN 115905403A
- Authority
- CN
- China
- Prior art keywords
- hidden danger
- inspection
- intelligent contract
- data
- patrol
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000010354 integration Effects 0.000 title claims abstract description 28
- 238000007689 inspection Methods 0.000 claims abstract description 129
- 238000012545 processing Methods 0.000 claims description 56
- 238000013507 mapping Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 6
- 238000013500 data storage Methods 0.000 claims description 6
- 230000007717 exclusion Effects 0.000 claims description 6
- 230000003993 interaction Effects 0.000 claims description 6
- 125000004122 cyclic group Chemical group 0.000 claims description 5
- 230000000977 initiatory effect Effects 0.000 claims description 4
- 238000004519 manufacturing process Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 11
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 9
- 238000012360 testing method Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于以太坊智能合约的校园巡检积分方法及系统,方法包括S1、根据巡检积分系统中的区块生成算法,检查巡检记录、隐患记录是否满足上链要求;S2、通过合约载入的方式,实现巡检积分系统与智能合约中间系统的连接;S3、巡检积分系统输出待存储的巡检记录或隐患记录数据给智能合约中间层系统,智能合约中间层系统根据特定标识参数进行判断;S4、巡检积分系统输出查询信息,如果要获取用户积分信息,则通过智能合约中间层系统中的积分查询模块从以太坊网络中获取,如果要获取用户巡检或隐患记录,则通过交易哈希从以太坊网络中获取。本发明通过构建多个节点组成以太坊网络,有效地解决了传统中心化服务器负载大、数据延迟的问题。
Description
技术领域
本发明属于校园安防信息管理技术领域,尤其是涉及一种基于以太坊智能合约的校园巡检积分方法及系统。
背景技术
近年来校园安防得到各级政府的高度关注,安全也是校园建设的底线原则,这就为校园安防工作提供了强有力的发展动力。
目前,学校领导对校园安全检查的力度越来越大,对此引入了校园巡检积分系统来管理校内人员的各项安全检查任务,按照一定的时间周期去检查校园各处是否存在安全隐患,通过使用微信小程序来完成巡检和隐患的上报、报备和处理,针对每一个巡检记录和隐患处理流程都会进行记录并归档到数据库中,作为工作人员的校园安防工作证明并为后续监管和复查提供一定证据;通过积分机制对校内工作人员的各项检查工作进行积分,严格按照积分来评定教师以及校内工作人员的工作绩效,以此来鼓励教师和校内工作人员的工作激情并提高工作效率。系统围绕以巡检体现工作量,积分体现工作价值为中心来开展。但是目前校园安防巡检积分系统存在以下问题:
(1)巡检积分系统采用传统数据库进行存储,而传统数据库采用的一般都是C/S架构,数据都放在服务端,服务端可以对不同用户分配不同数据修改权限,从某种程度上来说,一旦服务端被恶意攻击和侵害,则工作记录、隐患、个人所得积分等数据就会受到影响甚至整个数据库都会面临泄露、修改和删除等风险,在这种风险以及校园安防背景下的巡检积分系统中的安全隐患数据无法做到责任到人,个人所得积分也没多大意义,整体核心数据在一定程度上没有说服力。
(2)由于传统的中心化系统中心服务器承受整个系统的数据基础,在整个系统不断扩展时,所有的功能模块的数据都会在中心服务器中进行转发汇总,在请求量过大时中心服务器所面临的系统负载就非常大,对中心服务器的运算效率要求也变高了,甚至还会出现数据延迟,系统宕机的问题发生,这些问题对巡检积分系统有着非常大的影响。
(3)针对隐患流程的各个过程,如果工作人员工作怠慢,弄虚作假还会存在不同程度的安全隐患,对于这种情况无法追责,并且也会存在积分造假,影响校内绩效评定工作。
为了解决这一系列问题,本申请将区块链技术引入校园巡检积分系统中。区块链技术的特点:去中心化、可追溯和不可篡改。其中去中心化特性可以说是区块链技术的标榜。所有利用区块链作为技术支撑的系统底层都是一个无序信任基础的P2P网络,并且利用区块链技术中的共识算法、数据加密以及激励手段等,能够实现一个去中心化、不可篡改、可信任的点对点协调协作系统。在这样的背景下,想要构建一个安全可靠且可编程的校园巡检积分系统,拥有去中心化、数据不可篡改,可追溯以及可编程等特性的区块链技术就非常合适。
发明内容
为了克服上述校园安防背景下巡检系统现有技术存在的缺陷,本发明提供一种基于以太坊智能合约的校园巡检积分方法及系统,以实现核心数据信息的可靠存储和查询,时刻保持巡检、隐患、积分数据不可篡改,隐患流程可追溯,为校园内构建一个安全可信服的系统平台。
本发明采用的技术方案是:
一种基于以太坊智能合约的校园巡检积分方法,其特征在于,包括以下步骤:
S1、根据巡检积分系统中的区块生成算法,检查巡检记录、隐患记录是否满足上链要求;
S2、通过合约载入的方式,实现巡检积分系统与智能合约中间系统的连接;
S3、巡检积分系统输出待存储的巡检记录或隐患记录数据给智能合约中间层系统,智能合约中间层系统根据特定标识参数进行判断,如若为1则代表巡检记录,通过巡检存储单元存入以太坊网络并使用积分存储单元对该用户积1分;如若为2则代表隐患记录,通过隐患存储单元存入以太坊网络并使用积分存储单元对该用户积5分;
S4、巡检积分系统输出查询信息,如果要获取用户积分信息,则通过智能合约中间层系统中的积分查询模块从以太坊网络中获取,如果要获取用户巡检或隐患记录,则通过交易哈希从以太坊网络中获取。
进一步的,所述步骤S1中,具体是调用巡检积分系统中区块生成算法,根据特定标识参数进行循环判断,如若为1则代表巡检记录,则调用智能合约将该记录直接上链;如若为2则代表隐患记录,则继续判断该记录是否已排查,如果已排查则满足上链要求,否则不做任何操作,继续循环判断。
进一步的,所述步骤S2中,具体是在巡检积分系统中输入合约地址、节点信息、账户信息、用户愿意支付的gas价格、用户愿意花费的最高gas上限数量信息给智能合约中间层系统,以建立巡检积分系统与智能合约中间层系统之间的连接。
进一步的,所述步骤S3中,智能合约中间层系统中的存储单包括巡检存储单元、隐患存储单元以及积分存储单元;
巡检存储单元采用map映射巡检数据信息inspectDataInfo,每条记录由账户地址作为key,String对象作为value,其中String 对象中包含巡检记录的具体内容,包括巡检人、巡检地点、巡检项目、巡检时间;
隐患存储单元采用map映射隐患数据信息dnagerDataInfo,每条记录由账户地址作为key,String对象作为value,其中String对象包含隐患记录的具体流程,流程为发现隐患、处理隐患;发现隐患的具体内容包含隐患发现人、隐患类别、隐患图片、隐患描述、隐患时;处理隐患的具体内容包含隐患处理人、隐患处理图片、隐患处理描述、隐患处理时间;
积分存储单元采用map映射用户积分userExpInfo,每条记录采用用户地址作为key,采用uint类型作为value,uint代表每个用户在巡检系统中的积分值;
巡检存储单元、隐患存储单元以及积分存储单元三个单元中的 String对象均使用json字符串进行封装。
进一步的,所述步骤S3的具体过程为:
S31、巡检积分系统输出待存储的巡检记录或隐患记录数据给智能合约中间层系统;
S32、智能合约中间层系统拿到生成的数据存储对象并为程序生成一把互斥锁;
S33、然后根据特定标识参数区分巡检记录和隐患记录,如若标识为1则调用以太坊智能合约中的巡检存储单元,将待存储的数据信息先存入到以太坊网络并返回此次交易hash到巡检积分系统中,再调用以太坊智能合约中的积分存储单元,将该用户的积分+1,并存入到以太坊网络中;如若标识为2则调用以太坊智能合约中的隐患存储单元,将待存储的数据信息先存入到以太坊网络中并返回此次交易 hash到巡检积分系统中,再调用以太坊智能合约中的积分存储单元,将该用户的积分+5,并存入到以太坊网络中;
S34、待存储数据存入以太坊网络中后,释放互斥锁。
进一步的,所述步骤S4的具体过程为:
S41、巡检积分系统输出查询信息给智能合约中间层系统;
S42、智能合约中间层系统生成数据查询对象,如果需要获取用户积分,则通过智能合约中间层系统中的积分查询单元从以太坊网络中获取;如果需要获取用户巡检或隐患记录,则直接通过每次交易的交易Hash从以太坊网络中获取;
S43、智能合约中间层系统将获取的数据信息返回给巡检积分系统。
一种基于以太坊智能合约的校园巡检积分系统,其特征在于,包括以太坊网络、智能合约中间层系统以及巡检积分系统,巡检积分系统负责与智能合约中间层系统进行消息交互,通过向智能合约中间层系统发起存储、查询请求,调用以太坊智能合约实现数据的存储和查询,以太坊网络将交易hash或链上数据通过智能合约中间层系统传输至巡检积分系统;具体构成如下:
以太坊网络,由多个节点构成,并由以太坊作为存储保真;以太坊网络用于将巡检积分系统的核心数据信息进行安全存储,再根据巡检积分系统所输出的查询信息来查询相应数据并将交易hash或链上数据通过智能合约中间层系统交给巡检积分系统;
智能合约中间层系统,包括巡检存储单元、隐患存储单元、积分存储单元以及积分查询单元;其中
巡检存储单元,采用map映射inspectDataInfo,每条记录由账户地址作为key,String对象作为value,其中String对象中包含巡检记录的具体内容,包括巡检人、巡检地点、巡检项目、巡检时间;
隐患存储单元,采用map映射dnagerDataInfo,每条记录由账户地址作为key,String对象作为value,其中String对象包含隐患记录的具体流程,流程为发现隐患、处理隐患;发现隐患的具体内容包含隐患发现人、隐患类别、隐患图片、隐患描述、隐患时;处理隐患的具体内容包含隐患处理人、隐患处理图片、隐患处理描述、隐患处理时间;
积分存储单元,采用map映射userExpInfo,每条记录采用用户地址作为key,采用uint类型作为value,uint代表每个用户在巡检系统中的积分值;
巡检记录存储单元、隐患记录存储单元以及积分存储单元三个单元中的String对象均使用json字符串进行封装;
积分查询单元,根据巡检积分系统的查询信息,从以太坊网络查询到相应的数据后返回给用户,巡检和隐患查询信息通过巡检积分系统根据交易hash从以太坊网络中获取数据返回给用户;
巡检积分系统,包括数据生产模块、数据通信模块以及数据处理模块;
数据生成模块,产生业务数据,业务数据包括巡检和隐患数据;
数据通信模块,负责与智能合约中间层系统进行消息交互,通过向智能合约中间层系统发起存储、查询请求,调用以太坊智能合约实现数据的存储和查询,最后将智能合约中间层系统返回的交易hash 或链上数据交给数据处理模块,对数据进行下一步处理;
数据处理模块,进一步处理由智能合约中间层系统返回的交易 hash或链上数据。
进一步的,所述以太坊网络具体为多个以太坊私有链。
与现在技术相比,本发明具有以下优点:
1、本发明基于以太坊智能合约实现了一种校园巡检积分系统,通过构建多个节点组成以太坊网络,达到一种去中心化的效果,节点之间数据共享,有效地解决了传统中心化服务器负载大、数据延迟的问题。
2、本发明基于以太坊智能合约实现了一种校园巡检积分系统,通过智能合约中间层系统将巡检积分系统与以太坊网络相连接,可使系统能够通过智能合约中间层系统调用以太坊智能合约,保证巡检记录、隐患记录、积分数据的可靠存储,提供用户巡检工作证明、校内安全隐患台账,出现问题可追溯问责,达到责任到人的智能监管;实现积分机制,积分不可篡改,最终以积分体现用户工作价值。
3、本发明构建智能合约中间层系统,能够方便巡检积分系统调用以太坊网络的智能合约;本发明在以太坊网络中部署智能合约,利用其中的智能合约模块,能够将待存储数据信息存储到以太坊网路中,也能根据巡检积分系统输出的查询信息从以太坊网络中获取数据信息,核心数据的存储和查询由区块链网络代替传统数据库。
附图说明
图1为本发明系统控制框图。
图2为本发明的方法流程示意图。
具体实施方式
以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面将参考附图并结合示例性实施例来详细说明本发明。
为便于清楚描述本技术方案,首先对以下名词进行释义:
以太坊(Ethereum):一个开源的有智能合约功能的公共区块链平台,通过其专用加密货币以太币(Ether,简称“ETH”)提供去中心化的以太虚拟机(Ethereum VirtualMachine)来处理点对点合约。
智能合约(Smart contract):一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。
参考图1,本发明的一种基于以太坊智能合约的校园巡检积分方法,包括以下步骤:
S1、根据巡检积分系统中的区块生成算法,检查巡检记录、隐患记录是否满足上链要求。具体步骤是调用巡检积分系统中区块生成算法,根据特定标识参数进行循环判断,如若为1则代表巡检记录,则调用智能合约将该记录直接上链;如若为2则代表隐患记录,则继续判断该记录是否已排查,如果已排查则满足上链要求,否则不做任何操作,继续循环判断。
S2、通过合约载入的方式,实现巡检积分系统与智能合约中间系统的连接。具体是在巡检积分系统中输入合约地址、节点信息、账户信息、用户愿意支付的gas价格、用户愿意花费的最高gas上限数量信息给智能合约中间层系统,以建立巡检积分系统与智能合约中间层系统之间的连接。
S3、巡检积分系统输出待存储的巡检记录或隐患记录数据给智能合约中间层系统。智能合约中具体的存储单元为:巡检存储单元、隐患存储单元、积分存储单元。巡检存储单元采用map映射 inspectDataInfo,每条记录由账户地址作为key,String对象做为value,其中String对象中包含巡检记录的具体内容,包括巡检人、巡检地点、巡检项目、巡检时间;隐患存储单元采用map映射 dnagerDataInfo,每条记录由账户地址作为key,String对象作为 value,其中String对象包含隐患记录的具体流程,流程为发现隐患、处理隐患。发现隐患的具体内容包含隐患发现人、隐患地点、隐患类别、隐患图片、隐患描述、隐患时间,处理隐患的具体内容包含隐患处理人、隐患处理图片、隐患处理描述、隐患处理时间。智能合约中具体的积分存储单元:采用map映射userExpInfo,每条记录采用用户地址作为key,采用uint类型作为value,uint代表每个用户在巡检系统中的积分值。具体的存储过程为:
S31、巡检积分系统输出待存储的巡检记录或隐患记录数据给智能合约中间层系统。
S32、智能合约中间层系统拿到生成的数据存储对象并为程序生成一把互斥锁。
S33、然后根据特定标识参数区分巡检记录和隐患记录,如若标识为1则调用以太坊智能合约中的巡检存储单元,将待存储的数据信息先存入到以太坊网络并返回此次交易hash到巡检积分系统中,再调用以太坊智能合约中的积分存储单元,将该用户的积分+1,并存入到以太坊网络中;如若标识为2则调用以太坊智能合约中的隐患存储单元,将待存储的数据信息先存入到以太坊网络中并返回此次交易 hash到巡检积分系统中,再调用以太坊智能合约中的积分存储单元,将该用户的积分+5,并存入到以太坊网络中。
S34、待存储数据存入以太坊网络中后,释放互斥锁。
S4、巡检积分系统输出查询信息,如果要获取用户积分信息,则通过智能合约中间层系统中的积分查询模块从以太坊网络中获取,如果要获取用户巡检或隐患记录,则通过交易哈希从以太坊网络中获取。具体的查询过程:
S41、巡检积分系统输出查询信息给智能合约中间层系统。
S42、智能合约中间层系统生成数据查询对象,如果需要获取用户积分,则通过智能合约中间层系统中的积分查询单元从以太坊网络中获取,如果需要获取用户巡检或隐患记录,则直接通过每次交易的交易Hash从以太坊网络中获取。
S43、智能合约中间层系统将获取的数据信息返回给巡检积分系统。
参考图2,本发明的一种基于以太坊智能合约的校园巡检积分系统,包括以太坊网络、智能合约中间层系统以及巡检积分系统,巡检积分系统负责与智能合约中间层系统进行消息交互,通过向智能合约中间层系统发起存储、查询请求,调用以太坊智能合约实现数据的存储和查询,以太坊网络将交易hash或链上数据通过智能合约中间层系统传输至巡检积分系统;具体构成如下:
以太坊网络,由多个节点构成,并由以太坊作为存储保真;以太坊网络用于将巡检积分系统的核心数据信息进行安全存储,再根据巡检积分系统所输出的查询信息来查询相应数据并将交易hash或链上数据通过智能合约中间层系统交给巡检积分系统;
智能合约中间层系统,包括巡检存储单元、隐患存储单元、积分存储单元以及积分查询单元;其中
巡检存储单元,采用map映射inspectDataInfo,每条记录由账户地址作为key,String对象作为value,其中String对象中包含巡检记录的具体内容,包括巡检人、巡检地点、巡检项目、巡检时间;
隐患存储单元,采用map映射dnagerDataInfo,每条记录由账户地址作为key,String对象作为value,其中String对象包含隐患记录的具体流程,流程为发现隐患、处理隐患;发现隐患的具体内容包含隐患发现人、隐患类别、隐患图片、隐患描述、隐患时;处理隐患的具体内容包含隐患处理人、隐患处理图片、隐患处理描述、隐患处理时间;
积分存储单元,采用map映射userExpInfo,每条记录采用用户地址作为key,采用uint类型作为value,uint代表每个用户在巡检系统中的积分值;
巡检记录存储单元、隐患记录存储单元以及积分存储单元三个单元中的String对象均使用json字符串进行封装;
积分查询单元,根据巡检积分系统的查询信息,从以太坊网络查询到相应的数据后返回给用户,巡检和隐患查询信息通过巡检积分系统根据交易hash从以太坊网络中获取数据返回给用户;
巡检积分系统,包括数据生产模块、数据通信模块以及数据处理模块;
数据生成模块,产生业务数据,业务数据包括巡检和隐患数据;
数据通信模块,负责与智能合约中间层系统进行消息交互,通过向智能合约中间层系统发起存储、查询请求,调用以太坊智能合约实现数据的存储和查询,最后将智能合约中间层系统返回的交易hash 或链上数据交给数据处理模块,对数据进行下一步处理;
数据处理模块,进一步处理由智能合约中间层系统返回的交易 hash或链上数据。
在一种实施例中,所述以太坊网络具体为多个以太坊私有链。
本发明应用上述技术方案,首先设计部署在以太坊网络的智能合约,合约部署的核心代码实现。
1、智能合约的数据结构
巡检存储单元采用map映射inspectDataInfo,每条记录由账户地址作为key,String对象做为value,其中String对象中包含巡检记录的具体内容,包括巡检人、巡检地点、巡检项目、巡检时间;隐患存储单元采用map映射dnagerDataInfo,每条记录由账户地址作为key,String对象作为value,其中String对象包含隐患记录的具体流程,流程为发现隐患、处理隐患。发现隐患的具体内容包含隐患发现人、隐患地点、隐患类别、隐患图片、隐患描述、隐患时间,处理隐患的具体内容包含隐患处理人、隐患处理图片、隐患处理描述、隐患处理时间;积分存储单元采用map映射userExpInfo,每条记录采用用户地址作为key,采用uint类型作为value,uint代表每个用户在巡检系统中的积分值。具体合约代码如下:
2、智能合约的关键函数
2.1、数据信息存储函数
本发明根据特定标识参数来判断是巡检记录还是隐患记录,如果为1则代表巡检记录,采用巡检存储单元inspectDataInfo将数据存储至以太坊网络,并调用积分存储单元userExp将用户积分+1,如果为2则代表隐患记录,采用隐患存储单元dnagerDataInfo将数据存储至以太坊网络,并调用积分存储单元userExp将用户积分+5。
2.2、数据信息查询函数
//积分查询单元
mapping(address=>uint)public userExp;
//巡检查询单元
mapping(address=>string)public inspectDataInfo;
//隐患查询单元
mapping(address=>string)public dnagerDataInfo;
由于合约中的map映射都为public,因此可直接使用java通过 web3j进行调用该map中的数据,具体以下代码:
//载入智能合约进行积分查询
InspectUserExp_sol_InspectUserExp inspectUserExp= InspectUserExp_sol_InspectUserExp.load(contractsAddress,web 3j,ctm,contractGasProvider);
//示例为用户1的积分
inspectUserExp.userExp(accounts.get(1)).send().getVal ue()
//通过交易hash查询巡检、隐患记录
EthTransaction ethTransaction=web3j.ethGetTransactionByHash("TransactionHa sh").send();
org.web3j.protocol.core.methods.response.TransactiontransactionResult=ethTransaction.getResult();
//将从以太坊获取的input数据进行解析,得到巡检或隐患记录
String input=transactionResult.getInput().substring(2)
String t=toStringHex(input);
String res=tmp.substring(t.indexOf("flag")-2);
本发明还针对设计的智能合约进行了相应的操作测试;
1.部署合约
首先使用solcjs将合约代码提前编译,然后将生成的.sol文件通过web3j封装成java类放到idea项目中,系统的合约部署在本地 idea进行测试,部署成功后保存合约地址。
2.存储数据
本系统合约部署完成之后,然后在idea中进行测试,输入测试数据后运行。测试数据如下:
JSONObject json=new JSONObject();
//flag为1:巡检记录、flag为2:隐患记录
json.put("flag","2");
json.put("schoolId","浙江工业大学屏峰校区");
json.put("username","胡信");
json.put("dangerCategory","消防设备");
json.put("dangerAdddress","隐患地点"); json.put("dangerImage","https://tidukeji.cn/xxx/xxx.png");
json.put("dangerDescribe","灭火器过期了");
json.put("dangerTime","2022-05-24:18:30:00");
json.put("dangerDealName","校内维修师傅xxx"); json.put("dangerDealImage","https://tidukeji.cn/xxx/xxx.png ");
json.put("dangerDealDescribe","已更换灭火器");
json.put("dangerDealTime","2022-05-26 10:30:00");
//contents为待存储的数据
String contents=json.toString();
存储函数调用成功后保存本次交易hash。
3.查询数据
根据用户地址和已保存的交易hash在本地idea进行测试,查询用户积分和该用户的巡检或隐患记录,调用成功后返回用户积分和用户巡检或隐患记录。
在搭建好以太坊网络后,为了方便对智能合约进行调用,本发明设置智能合约中间层系统。每个用户节点可以部署本节点的智能合约中间层系统,也可以调用其他节点的智能合约中间层系统。该系统关键函数如下:
1.合约部署函数
public static RemoteCall<InspectUserExp_sol_InspectUserExp> deploy(Web3j web3j,TransactionManager transactionManager, BigInteger gasPrice,BigInteger gasLimit){
return
deployRemoteCall(InspectUserExp_sol_InspectUserExp.class, web3j,transactionManager,gasPrice,gasLimit,BINARY,"");}
通过输入we3j对象、事务管理器对象、用户愿意支付的gas价格,用户愿意花费的最高gas价格这些参数后,合约部署成功。
2.合约载入函数
public static InspectUserExp_sol_InspectUserExp load (StringcontractAddress,Web3j web3j,TransactionManager transactionManager,BigIntegergasPrice,BigInteger gasLimit) {
return new InspectUserExp_sol_InspectUserExp(contractAddress, web3j,transactionManager,gasPrice,gasLimit);}
通过输入合约地址、we3j对象、事务管理器对象、用户愿意支付的gas价格,用户愿意花费的最高gas价格这些参数后,返回可操作的智能合约对象。
3.合约存储函数
通过输入用户地址、用户巡检或隐患记录、积分、特定标识,返回存储数据的调用对象,只需要在调用该对象的send()方法就可以在以太坊网络中存储业务数据了。
4.合约积分查询函数
通过输入用户地址,返回需要查询数据的调用对象,系统中可通过智能合约查询的数据信息为用户积分,然后在调用该对象的send() 方法就可以在以太坊中查询该用户对应的积分信息了。
5.巡检和隐患记录的查询函数
输入系统中保存的交易hash,通过web3j提供的函数方法获取以太坊交易对象,一般调用ethGetTransactionByHash函数的send() 方法,获取到以太坊交易对象后通过getResult()方法获取交易结果集,通过交易结果集就可以拿到本次交易的from,to,input等数据。
综上所述,采用本发明提出的技术方案,实际应用过程中与巡检积分系统进行对接,采用多节点方式部署私有链,对核心数据包括巡检记录、隐患记录、用户积分通过智能合约存储在以太坊网络,保证数据不可篡改、可追溯。充分保证校园巡检工作的公平性,体现积分的对用户的最大价值。本发明通过应用区块链中以太坊智能合约配合本系统,实现巡检记录、隐患记录安全上链,提供用户巡检工作证明、校内安全隐患台账,出现问题可追溯问责,达到责任到人的智能监管;实现积分机制,由于积分不可篡改,最终可以积分体现用户工作价值。基于以太坊智能合约的校园巡检积分系统整体提高了校内隐患发现率和排查率,加强了校内巡检人员的责任意识,极大的避免了校内人员巡检懈怠、弄虚作假以及校园安全隐患的发生。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (8)
1.一种基于以太坊智能合约的校园巡检积分方法,其特征在于,包括以下步骤:
S1、根据巡检积分系统中的区块生成算法,检查巡检记录、隐患记录是否满足上链要求;
S2、通过合约载入的方式,实现巡检积分系统与智能合约中间系统的连接;
S3、巡检积分系统输出待存储的巡检记录或隐患记录数据给智能合约中间层系统,智能合约中间层系统根据特定标识参数进行判断,如若为1则代表巡检记录,通过巡检存储单元存入以太坊网络并使用积分存储单元对该用户积1分;如若为2则代表隐患记录,通过隐患存储单元存入以太坊网络并使用积分存储单元对该用户积5分;
S4、巡检积分系统输出查询信息,如果要获取用户积分信息,则通过智能合约中间层系统中的积分查询模块从以太坊网络中获取,如果要获取用户巡检或隐患记录,则通过交易哈希从以太坊网络中获取。
2.如权利要求1所述的一种基于以太坊智能合约的校园巡检积分方法,其特征在于,所述步骤S1中,具体是调用巡检积分系统中区块生成算法,根据特定标识参数进行循环判断,如若为1则代表巡检记录,则调用智能合约将该记录直接上链;如若为2则代表隐患记录,则继续判断该记录是否已排查,如果已排查则满足上链要求,否则不做任何操作,继续循环判断。
3.如权利要求1所述的一种基于以太坊智能合约的校园巡检积分方法,其特征在于,所述步骤S2中,具体是在巡检积分系统中输入合约地址、节点信息、账户信息、用户愿意支付的gas价格、用户愿意花费的最高gas上限数量信息给智能合约中间层系统,以建立巡检积分系统与智能合约中间层系统之间的连接。
4.如权利要求1所述的一种基于以太坊智能合约的校园巡检积分方法,其特征在于,所述步骤S3中,智能合约中间层系统中的存储单包括巡检存储单元、隐患存储单元以及积分存储单元;
巡检存储单元采用map映射巡检数据信息inspectDataInfo,每条记录由账户地址作为key,String对象作为value,其中String对象中包含巡检记录的具体内容,包括巡检人、巡检地点、巡检项目、巡检时间;
隐患存储单元采用map映射隐患数据信息dnagerDataInfo,每条记录由账户地址作为key,String对象作为value,其中String对象包含隐患记录的具体流程,流程为发现隐患、处理隐患;发现隐患的具体内容包含隐患发现人、隐患类别、隐患图片、隐患描述、隐患时;处理隐患的具体内容包含隐患处理人、隐患处理图片、隐患处理描述、隐患处理时间;
积分存储单元采用map映射用户积分userExpInfo,每条记录采用用户地址作为key,采用uint类型作为value,uint代表每个用户在巡检系统中的积分值;
巡检存储单元、隐患存储单元以及积分存储单元三个单元中的String对象均使用json字符串进行封装。
5.如权利要求1所述的一种基于以太坊智能合约的校园巡检积分方法,其特征在于,所述步骤S3的具体过程为:
S31、巡检积分系统输出待存储的巡检记录或隐患记录数据给智能合约中间层系统;
S32、智能合约中间层系统拿到生成的数据存储对象并为程序生成一把互斥锁;
S33、然后根据特定标识参数区分巡检记录和隐患记录,如若标识为1则调用以太坊智能合约中的巡检存储单元,将待存储的数据信息先存入到以太坊网络并返回此次交易hash到巡检积分系统中,再调用以太坊智能合约中的积分存储单元,将该用户的积分+1,并存入到以太坊网络中;如若标识为2则调用以太坊智能合约中的隐患存储单元,将待存储的数据信息先存入到以太坊网络中并返回此次交易hash到巡检积分系统中,再调用以太坊智能合约中的积分存储单元,将该用户的积分+5,并存入到以太坊网络中;
S34、待存储数据存入以太坊网络中后,释放互斥锁。
6.如权利要求1所述的一种基于以太坊智能合约的校园巡检积分方法,其特征在于,所述步骤S4的具体过程为:
S41、巡检积分系统输出查询信息给智能合约中间层系统;
S42、智能合约中间层系统生成数据查询对象,如果需要获取用户积分,则通过智能合约中间层系统中的积分查询单元从以太坊网络中获取;如果需要获取用户巡检或隐患记录,则直接通过每次交易的交易Hash从以太坊网络中获取;
S43、智能合约中间层系统将获取的数据信息返回给巡检积分系统。
7.一种基于以太坊智能合约的校园巡检积分系统,其特征在于,包括以太坊网络、智能合约中间层系统以及巡检积分系统,巡检积分系统负责与智能合约中间层系统进行消息交互,通过向智能合约中间层系统发起存储、查询请求,调用以太坊智能合约实现数据的存储和查询,以太坊网络将交易hash或链上数据通过智能合约中间层系统传输至巡检积分系统;具体构成如下:
以太坊网络,由多个节点构成,并由以太坊作为存储保真;以太坊网络用于将巡检积分系统的核心数据信息进行安全存储,再根据巡检积分系统所输出的查询信息来查询相应数据并将交易hash或链上数据通过智能合约中间层系统交给巡检积分系统;
智能合约中间层系统,包括巡检存储单元、隐患存储单元、积分存储单元以及积分查询单元;其中
巡检存储单元,采用map映射inspectDataInfo,每条记录由账户地址作为key,String对象作为value,其中String对象中包含巡检记录的具体内容,包括巡检人、巡检地点、巡检项目、巡检时间;
隐患存储单元,采用map映射dnagerDataInfo,每条记录由账户地址作为key,String对象作为value,其中String对象包含隐患记录的具体流程,流程为发现隐患、处理隐患;发现隐患的具体内容包含隐患发现人、隐患类别、隐患图片、隐患描述、隐患时;处理隐患的具体内容包含隐患处理人、隐患处理图片、隐患处理描述、隐患处理时间;
积分存储单元,采用map映射userExpInfo,每条记录采用用户地址作为key,采用uint类型作为value,uint代表每个用户在巡检系统中的积分值;
巡检记录存储单元、隐患记录存储单元以及积分存储单元三个单元中的String对象均使用json字符串进行封装;
积分查询单元,根据巡检积分系统的查询信息,从以太坊网络查询到相应的数据后返回给用户,巡检和隐患查询信息通过巡检积分系统根据交易hash从以太坊网络中获取数据返回给用户;
巡检积分系统,包括数据生产模块、数据通信模块以及数据处理模块;
数据生成模块,产生业务数据,业务数据包括巡检和隐患数据;
数据通信模块,负责与智能合约中间层系统进行消息交互,通过向智能合约中间层系统发起存储、查询请求,调用以太坊智能合约实现数据的存储和查询,最后将智能合约中间层系统返回的交易hash或链上数据交给数据处理模块,对数据进行下一步处理;
数据处理模块,进一步处理由智能合约中间层系统返回的交易hash或链上数据。
8.如权利要求7所述的一种基于以太坊智能合约的校园巡检积分系统,其特征在于,所述以太坊网络具体为多个以太坊私有链。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211322127.6A CN115905403A (zh) | 2022-10-27 | 2022-10-27 | 一种基于以太坊智能合约的校园巡检积分方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211322127.6A CN115905403A (zh) | 2022-10-27 | 2022-10-27 | 一种基于以太坊智能合约的校园巡检积分方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115905403A true CN115905403A (zh) | 2023-04-04 |
Family
ID=86486329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211322127.6A Pending CN115905403A (zh) | 2022-10-27 | 2022-10-27 | 一种基于以太坊智能合约的校园巡检积分方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115905403A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113689188A (zh) * | 2021-08-23 | 2021-11-23 | 交通银行股份有限公司 | 基于以太坊智能合约的去中心化信息管理系统及其方法 |
-
2022
- 2022-10-27 CN CN202211322127.6A patent/CN115905403A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113689188A (zh) * | 2021-08-23 | 2021-11-23 | 交通银行股份有限公司 | 基于以太坊智能合约的去中心化信息管理系统及其方法 |
CN113689188B (zh) * | 2021-08-23 | 2024-08-06 | 交通银行股份有限公司 | 基于以太坊智能合约的去中心化信息管理系统及其方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112132447B (zh) | 一种基于区块链的算力网络信任评估与保障算法 | |
TW550913B (en) | System and method for assessing the security posture of a network | |
CN108665365B (zh) | 一种混合区块链架构系统、处理方法及处理系统 | |
CN112804358B (zh) | 一种基于中继设备网络跨链中转数据的方法和装置 | |
CN109241772A (zh) | 发票区块链记录方法、装置、区块链网关服务器和介质 | |
CN110502927A (zh) | 一种信息处理方法及相关装置 | |
CN108600163A (zh) | 一种云环境分布式哈希链架构及云数据完整性验证方法 | |
CN107786343A (zh) | 一种私有镜像仓库的访问方法和系统 | |
Zhou et al. | A Smart Contract-based agent marketplace for the J-Park Simulator-a knowledge graph for the process industry | |
CN115439249B (zh) | 一种跨区块链的业务服务实现方法、装置和系统 | |
CN112948217B (zh) | 服务器修复查验方法和装置、存储介质及电子设备 | |
CN110866265A (zh) | 一种基于区块链的数据存储方法、设备及存储介质 | |
WO2023040496A1 (zh) | 基于区块链的虚拟资源分配 | |
CN109905492A (zh) | 基于分布式模块化数据中心的安全运营管理系统及方法 | |
CN110955724A (zh) | 基于区块链的数据处理方法、装置、节点设备及存储介质 | |
CN113850544A (zh) | 基于区块链的数字仓单管理方法及装置、电子设备 | |
CN115905403A (zh) | 一种基于以太坊智能合约的校园巡检积分方法及系统 | |
CN113077233B (zh) | 一种电子保函开具方法、云服务器及电子保函系统 | |
EP3542300A1 (en) | Method for operating a peer-to-peer application | |
CN113129002A (zh) | 一种数据处理方法以及设备 | |
Singh | Blockchain and IOT integrated Smart City Architecture | |
CN112540338A (zh) | 一种基于区块链技术的智能电表检定系统 | |
CN110493008B (zh) | 一种区块链认证方法、装置、设备及介质 | |
WO2023040450A1 (zh) | 区块链服务网络的组建 | |
CN114598680B (zh) | 域名的管理方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |