一种基于联盟链的农机自助付费租赁方法技术

技术编号:27938477 阅读:16 留言:0更新日期:2021-04-02 14:19
本发明专利技术公开一种基于联盟链的农机自助付费租赁方法,包含以下部分:(1)基于联盟链FISCO BCOS架构节点共识机制的账户管理,(2)Solidity智能合约设计、编译和部署,(3)农机租赁信息上链并智能验证和预警。本发明专利技术通过联盟链的共识机制属性对权限进行自动化管理,更严格精确,不会被人为篡改;联盟链的区块时间戳可以帮助快速定位需要查找的农机租赁信息数据;农机租赁信息数据一经上链存证无法被人为修改,数据更安全诚信可靠;在不影响数据上链效率的情况下,拓宽了单次数据上链的业务应用层次,实现了自动验证和预警行为。

【技术实现步骤摘要】
一种基于联盟链的农机自助付费租赁方法
本专利技术涉及一种基于联盟链的农机自助付费租赁方法,尤其涉及的是(1)基于联盟链FISCOBCOS架构节点共识机制的账户管理,(2)Solidity智能合约设计、编译和部署,(3)农机租赁信息上链并智能验证和预警。
技术介绍
目前,市场上现有的农机自助租赁系统与方法,大部分只是单纯地完成农机预约和归还的过程管理,无法做到租赁记录可信存证、信用黑名单、避免掮客分成、租赁信息实时监管、区域性农机综合化治理等高级管理功能。
技术实现思路
专利技术目的:针对现有技术中存在的问题与不足,本专利技术提供一种可保障信用信息诚信度、数据安全不易被篡改、可实现高效检索数据、可自动化实现分权限治理的、基于FISCOBCOS联盟链架构的农机自助付费租赁的实现方法。本专利技术基于FISCOBCOS联盟链架构,对农机自助租赁系统的出借方、租赁方、监管方的账号管理模式进行设计,对控制租赁业务模式的Solidity智能合约进行设计,并将租赁记录和信用分数据上链存证并实现智能验证和报警。本专利技术所涉及的
技术实现思路
,有效解决了以下农机自助租赁的信息管理、信用管理痛点:(1)农机租赁信息和信用信息无法做到一经存储不被人为篡改;(2)监管方较难在某一地区范围实现对多家企业的农机租赁信息数据,实现自动的、严格的分权限治理和数据查询;(3)较难避免掮客转租、冒名租赁的不诚信行为。同时,本专利技术所涉及的
技术实现思路
,具有以下技术优势:(1)通过联盟链的共识机制属性对权限进行自动化管理,更严格精确,不会被人为篡改;(2)联盟链的区块时间戳可以帮助快速定位需要查找的农机租赁信息数据;(3)农机租赁信息数据一经上链存证无法被人为修改,数据更安全诚信可靠;(4)在不影响数据上链效率的情况下,拓宽了单次数据上链的业务应用层次,实现了自动验证和预警行为。技术方案:一种基于联盟链的农机自助付费租赁方法,包含以下部分:(1)基于联盟链FISCOBCOS架构节点共识机制的账户管理,(2)Solidity智能合约设计、编译和部署,(3)农机租赁信息上链并智能验证和预警。实现基于联盟链FISCOBCOS架构节点共识机制的账户管理,包括如下步骤:步骤101,将节点按权限等级设定分为3种类型:“平台监管节点”、“出借农机企业节点”和“普通节点”。通过根证书CA签发的R证书,在服务器注册进入联盟链中时,标定单个服务器将成为的节点类型。步骤102,通过根证书CA签发的SDK证书允许“监管账号”、“出借农机企业账号”和“普通账号”这3类账号,分别准入联盟链并挂靠在步骤101中所述对应的节点上,获取对应的账号权限。步骤103,对步骤102所述3种账号的信息结构进行定义:平台监管账号platformMgr包含:mgrName监管账号名称、companyGroup[]监管范围内的企业账号地址组、_platformMgr账户地址(payable可接收支付)。出借农机企业账号company包含:companyName企业账号名称、machineGroup[]拥有的农机SN组、_company账户地址(payable可接收支付)。租赁方普通账号tenant包含:tenantName租赁方姓名、mobile租赁方手机号、credit租赁方信用分、blacklist信用黑名单状态布尔变量、_tenant账户地址。实现Solidity智能合约设计、编译和部署,包括如下步骤:步骤201,首先在计算机上启动Docker容器引擎程序作为基础环境准备。步骤202,在solcjs编译台上创建一个sol格式智能合约文件;对所述sol格式智能合约文件代码进行编辑。编辑内容包括版本声明、对农机自助付费租赁业务信息所含变量的定义、租赁业务函数设计。步骤203,对步骤202中所述版本声明进行编写,调用pragma语句声明所使用solidity语言版本。步骤204,对步骤202中所述农机自助付费租赁业务信息所含变量进行定义,包括①单台农机信息的结构、②租赁业务公用信息,如下:①单台农机信息machine的结构:enumStatuses枚举农机状态值Vancant(可用)和Occupied(占用);StatusescurrentStatus用Statuses定义的农机当前状态;holder农机归属方账户地址;enumTypes枚举农机8种类型,依序分别对应:收割,排灌,耕地,播种,植保,畜牧饲养,动力输送,其他;TypesmachineType用Types定义单台农机类型;machineSN农机序列号;machineName农机名称;perPrice农机每小时租赁单价。②租赁业务公用信息:eventOccupy(address_tenant,uint256_value)定义事件Occupy(付费租用),包含变量_tenant(租赁方账户地址)和_value(付费价格);eventToken(machineSN,string_token)定义事件Token(验证口令),包含变量machineSN(农机序列号)和_token(验证口令);owner收款方账户地址;rentHour租赁小时数;rentStart实际起租时间;deadLine归还截止时间;rentEnd实际归还时间;realrentHour实际租赁小时数;ifOk是否成功归还状态布尔变量。步骤205,对步骤204中变量的值进行初始化如下:currentStatus=Statuses.Vancant初始化农机当前状态为可用;owner=msg.sender初始化收款方为合约部署方;rentHour=1初始化租赁小时数为1;credit=0初始化信用分为0;rentStart=block.timestamp初始化起租时间为区块时间戳;deadline=rentStart+rentHour*3600初始化归还截止时间为起租时间加上租赁时长(单位:秒);ifOk=true初始化是否成功归还状态为true;blacklist=false初始化租赁方信用黑名单状态为正常(非拉黑)。步骤206,对步骤202中所述租赁业务函数(包括函数修饰器)进行设计:①函数修饰器“农机状态判定与返回”modifieronlyWhileVancant要求仅当当前农机状态为可用时(currentStatus==Statuses.Vancant)后续函数生效,否则返回“该农机已租出!”②函数修饰器“信用分判定与返回”modifieronlyWhileCreditable要求仅当租赁方信用分大于等于0且是否成功归还变量状态为true时(credit>=0&&ifOk=true)后续函数生效,否则返回“租赁方信用本文档来自技高网...

【技术保护点】
1.一种基于联盟链的农机自助付费租赁方法,其特征在于:包含以下部分:(1)基于联盟链FISCO BCOS架构节点共识机制的账户管理,(2)Solidity智能合约设计、编译和部署,(3)农机租赁信息上链时智能合约验证数据和预警的运行机制。/n

【技术特征摘要】
1.一种基于联盟链的农机自助付费租赁方法,其特征在于:包含以下部分:(1)基于联盟链FISCOBCOS架构节点共识机制的账户管理,(2)Solidity智能合约设计、编译和部署,(3)农机租赁信息上链时智能合约验证数据和预警的运行机制。


2.根据权利要求1所述的基于联盟链的农机自助付费租赁方法,其特征在于:实现基于联盟链FISCOBCOS架构节点共识机制的账户管理,包括如下步骤:
步骤101,将节点按权限等级设定分为3种类型:平台监管节点、出借农机企业节点和普通节点;通过根证书CA签发的R证书,在服务器注册进入联盟链中时,标定单个服务器将成为的节点类型;
步骤102,通过根证书CA签发的SDK证书允许监管账号、出借农机企业账号和普通账号这3类账号,分别准入联盟链并挂靠在步骤101中所述对应的节点上,获取对应的账号权限;
步骤103,对步骤102所述3种账号的信息结构进行定义:
平台监管账号包含:监管账号名称、监管范围内的企业账号地址组、账户地址;
出借农机企业账号包含:企业账号名称、拥有的农机SN组、账户地址;
租赁方普通账号包含租赁方姓名、租赁方手机号、租赁方信用分、信用黑名单状态布尔变量、账户地址。


3.根据权利要求1所述的基于联盟链的农机自助付费租赁方法,其特征在于:实现Solidity智能合约设计、编译和部署,包括如下步骤:
步骤201,首先在计算机上启动Docker容器引擎程序作为基础环境准备;
步骤202,在solcjs编译台上创建一个sol格式智能合约文件;对所述sol格式智能合约文件代码进行编辑;编辑内容包括版本声明、对农机自助付费租赁业务信息所含变量的定义、租赁业务函数设计;
步骤203,对步骤202中所述版本声明进行编写,调用pragma语句声明所使用solidity语言版本;
步骤204,对步骤202中所述农机自助付费租赁业务信息所含变量进行定义,包括①单台农机信息的结构、②租赁业务公用信息;
①单台农机信息machine的结构:
enumStatuses枚举农机状态值Vancant和Occupied,其中Vancant表示可用,Occupied表示占用;
StatusescurrentStatus用Statuses定义的农机当前状态;
holder农机归属方账户地址;
enumTypes枚举农机8种类型,依序分别对应:收割,排灌,耕地,播种,植保,畜牧饲养,动力输送,其他;
TypesmachineType用Types定义单台农机类型;
machineSN农机序列号;
machineName农机名称;
perPrice农机每小时租赁单价;
②租赁业务公用信息:
eventOccupy(address_tenant,uint256_value)定义事件Occupy,付费租用,包含变量_tenant租赁方账户地址和_value付费价格;
eventToken(machineSN,string_token)定义事件Token,验证口令,包含变量machineSN农机序列号和_token验证口令;
owner收款方账户地址;
rentHour租赁小时数;
rentStart实际起租时间;
deadLine归还截止时间;
rentEnd实际归还时间;
realrentHour实际租赁小时数;
ifOk是否成功归还状态布尔变量;
步骤205,对步骤204中变量的值进行初始化如下:
currentStatus=Statuses.Vancant初始化农机当前状态为可用;
owner=msg.sender初始化收款方为合约部署方;
rentHour=1初始化租赁小时数为1;
credit=0初始化信用分为0;
rentStart=block.timestamp初始化起租时间为区块时间戳;
deadline=rentStart+rentHour*3600初始化归还截止时间为起租时间加上租赁时长,单位:秒;
ifOk=true初始化是否成功归还状态为true;
blacklist=false初始化租赁方信用黑名单状态为正常;
步骤206,对步骤202中所述租赁业务函数进行设计;
步骤207,使用solcjs对所述sol格式智能合约文件代码进行编译;由原始代码转译成二进制码和字节码;
步骤208,所述智能合约在联盟链上的部署过程为:将创建的sol格式智能合约文件,以部署交易的方式上链至联盟链;发送智能合约文件二进制码和字节码放入区块链交易的InputData中,编辑接收地址以0x0开头,打包成交易区块;区块链矿工根据0x0的地址头,判定这一交易区块中的交易类型为:发送合约,部署上链,验证信息正确性后执行区块上链,即将智能合约部署上链;此时智能合约拥有合约地址并存在链上;
步骤209,所述智能合约部署交易将被联盟链同步至所有节点,即所有节点将可通过EVM读取并调用该智能合约。


4.根据权利要求1所述的基于联盟链的农机自助付费租赁方法,其特征在于:农机租赁信息上链时智能合约验证数据和预警的运行机制分为信息上链并同步至所有节点、节点调用智能合约判断农机租赁数据、获得判断返回报警结果;具体实现过程如下步骤301~步骤306:
步骤301,所述信息上链并同步至所有节点,包括:将农机租赁信息打包成区块并加密、区块上链并同步至所有联盟链内节点;
步骤302,步骤301中提到的农机租赁信息打包成区块并加密具体为:节点调用SDK工具包,按照一个区块的结构将农机租赁信息写入区块体中的InputData,并写入时间戳、调用智能合约地址等,然后对农机租赁信息进行一次哈希处理,并对哈希进行签名;
步骤303,步骤301中提到的将包含农机租赁信息的区块上链并同步至所有联盟链节点具体为:该包含农机租赁信息的区块信息被联盟链广播至所有节点,在数据写入格式符合要求的情况下,通过共识机制将该区块信息同步至所有节点,并更新整条区块链;
步骤304,所述节点调用智能合约判断农机租赁信息数据机制方法为,3类不同权限节点自动通过EVM读取智能合约的字节码,将农机租赁信息的对应变量值带入智能合约代码,之后执行智能合约;3类不同权限节点即平台监管节点、出借农机企业节点和普通节点;
步骤305,通过步骤304所述将农机租赁信息结构的对应变量值带入智能合约代码并执行智能合约内功能函数后,各节点将可能获得对应报警返回结果类型;
步骤306,3类节点自动将步骤305中所获得的报警返回结果返回给SDK工具包。


5.根据权利要求3所述的基于联盟链的农机自助付费租赁方法,其特征在于:所述步骤206,对步骤202中所述租赁业务函数进行设计,包括:
①函数修饰器,农机状态判定与返回
要求仅当当前农机状态为可用时后续函数生效,否则返回:该农机已租出!
②函数修饰器,信用分判定与返回
要求仅当租赁方信用分大于等于0且是否成功归还变量状态为true时,...

【专利技术属性】
技术研发人员:吕滢卞立平罗智彬
申请(专利权)人:南京知麦信息科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1