首页> 中国专利> 一种基于联盟链的农机自助付费租赁方法

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

摘要

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

著录项

  • 公开/公告号CN112598466A

    专利类型发明专利

  • 公开/公告日2021-04-02

    原文格式PDF

  • 申请/专利权人 南京知麦信息科技有限公司;

    申请/专利号CN202011535093.X

  • 发明设计人 吕滢;卞立平;罗智彬;

    申请日2020-12-23

  • 分类号G06Q30/06(20120101);G06F8/30(20180101);G07F17/00(20060101);H04L29/06(20060101);

  • 代理机构32326 南京乐羽知行专利代理事务所(普通合伙);

  • 代理人李玉平

  • 地址 210014 江苏省南京市玄武区钟灵街50号

  • 入库时间 2023-06-19 10:27:30

说明书

技术领域

本发明涉及一种基于联盟链的农机自助付费租赁方法,尤其涉及的是(1)基于联盟链FISCO BCOS架构节点共识机制的账户管理,(2)Solidity智能合约设计、编译和部署,(3)农机租赁信息上链并智能验证和预警。

背景技术

目前,市场上现有的农机自助租赁系统与方法,大部分只是单纯地完成农机预约和归还的过程管理,无法做到租赁记录可信存证、信用黑名单、避免掮客分成、租赁信息实时监管、区域性农机综合化治理等高级管理功能。

发明内容

发明目的:针对现有技术中存在的问题与不足,本发明提供一种可保障信用信息诚信度、数据安全不易被篡改、可实现高效检索数据、可自动化实现分权限治理的、基于FISCO BCOS联盟链架构的农机自助付费租赁的实现方法。

本发明基于FISCO BCOS联盟链架构,对农机自助租赁系统的出借方、租赁方、监管方的账号管理模式进行设计,对控制租赁业务模式的Solidity智能合约进行设计,并将租赁记录和信用分数据上链存证并实现智能验证和报警。

本发明所涉及的发明内容,有效解决了以下农机自助租赁的信息管理、信用管理痛点:(1)农机租赁信息和信用信息无法做到一经存储不被人为篡改;(2)监管方较难在某一地区范围实现对多家企业的农机租赁信息数据,实现自动的、严格的分权限治理和数据查询;(3)较难避免掮客转租、冒名租赁的不诚信行为。

同时,本发明所涉及的发明内容,具有以下技术优势:(1)通过联盟链的共识机制属性对权限进行自动化管理,更严格精确,不会被人为篡改;(2)联盟链的区块时间戳可以帮助快速定位需要查找的农机租赁信息数据;(3)农机租赁信息数据一经上链存证无法被人为修改,数据更安全诚信可靠;(4)在不影响数据上链效率的情况下,拓宽了单次数据上链的业务应用层次,实现了自动验证和预警行为。

技术方案:一种基于联盟链的农机自助付费租赁方法,包含以下部分:(1)基于联盟链FISCO BCOS架构节点共识机制的账户管理,(2)Solidity智能合约设计、编译和部署,(3)农机租赁信息上链并智能验证和预警。

实现基于联盟链FISCO BCOS架构节点共识机制的账户管理,包括如下步骤:

步骤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的结构:

enum Statuses枚举农机状态值Vancant(可用)和Occupied(占用);

Statuses currentStatus用Statuses定义的农机当前状态;

holder农机归属方账户地址;

enum Types枚举农机8种类型,依序分别对应:收割,排灌,耕地,播种,植保,畜牧饲养,动力输送,其他;

Types machineType用Types定义单台农机类型;

machineSN农机序列号;

machineName农机名称;

perPrice农机每小时租赁单价。

②租赁业务公用信息:

event Occupy(address_tenant,uint256_value)定义事件Occupy(付费租用),包含变量_tenant(租赁方账户地址)和_value(付费价格);

event Token(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中所述租赁业务函数(包括函数修饰器)进行设计:

①函数修饰器“农机状态判定与返回”modifier onlyWhileVancant

要求仅当当前农机状态为可用时(currentStatus==Statuses.Vancant)后续函数生效,否则返回“该农机已租出!”

②函数修饰器“信用分判定与返回”modifier onlyWhileCreditable

要求仅当租赁方信用分大于等于0且是否成功归还变量状态为true时(credit>=0&&ifOk=true)后续函数生效,否则返回“租赁方信用分不合格或有农机未归还,不具备租赁资格!”

③函数“租农机”function Rent(machineSN,rentHour)

运行该函数前提为函数修饰器“农机状态判定与返回”和“信用分判定与返回”均符合要求,即(currentStatus==Statuses.Vancant)且(credit>=0&&ifOk=true);

定义是否成功租借状态布尔变量ifSuccess;

总租金total=租用时长rentHour*每小时租赁单价perPrice;

转账金额msg.value等于总租金total;

设收款方owner为农机所属公司账户地址_company;

将收款方地址owner赋值于msg.sender;

改农机状态currentStatus为占用中Statuses.Occupied;

用租赁者账户地址_tenant和实际转账金额_value调用事件Occupy(付费租用);

向msg.sender转账msg.value个以太币;

如果实际转账金额等于应付总租金,则付费租用成功(ifSuccess=true),并生成6位随机验证码rentToken;返回租农机结果ifSuccess和随机验证码rentToken。

如果实际转账金额_value不等于应付总租金msg.value则付费租用失败(ifSuccess=false),仅返回“付费租用失败”文本。

④函数“还农机”function ReturnMch(machineSN,_token)

如果验证口令_token不等于随机验证码rentToken,则归还失败ifOk=false。仅返回文本"验证失败,终止归还";验证口令_token等于随机验证码rentToken,执行如下:

实际归还时间rentEnd为归还农机调用合约区块链时间戳block.timestamp;

实际租用小时数realrentHour为实际归还时间rentEnd(秒转小时除以3600)减去实际起租时间rentStart(秒转小时除以3600);

用农机序列号machineSN和验证口令_token调用事件Token(验证口令);

如果验证口令_token等于随机验证码rentToken,且实际租用时长realrentHour小于等于租用时长rentHour,则属于按时归还,信用分+1,且归还成功ifOk=ture。

如果验证口令_token等于随机验证码rentToken,但实际租用时长realrentHour大于租用时长rentHour,则属于超期归还,须支付总罚款penalty=超期时长(rentHour–realrentHour)*每小时租赁单价perPrice;转账过程如下:

转账金额msg.value等于总罚款penalty;

收款方owner为农机所属公司账户地址_company;

将收款方地址owner赋值于msg.sender;

改农机状态currentStatus为可用Statuses.Vancant;

用租赁者账户地址_tenant和实际转账金额_value调用事件Occupy(付费租用);

向msg.sender转账msg.value个以太币。

如果实际转账金额_value等于应付总罚款msg.value,则归还成功ifOk=true,信用分credit减1,tenant.blacklist重新赋值为false,租赁方从信用黑名单释放;

如果实际转账金额_value不等于应付总罚款msg.value,则归还失败ifOk=false。

在验证口令_token等于随机验证码rentToken的两种情况下,函数最终返回信用分值credit和是否归还成功状态布尔变量ifOk。

⑤函数“农机出借超期报警”function alarm(string SN)

用农机序列号machineSN指向该农机对象machines[SN]即machine;

如果该农机实际租用时长machine.realrentHour大于租用时长machine.rentHour且农机当前状态machine.currentStatus为占用中Statuses.Occupied,则返回文本“农机超期未归还”,并且将租用该农机的用户的信用黑名单状态激活(tenant.blacklist=true);

如果该农机实际租用时长machine.realrentHour大于租用时长machine.rentHour且农机当前状态machine.currentStatus为可用Statuses.Vancant,则返回文本“农机超期已归还”;

其余情况下不报警。

注:该函数须配合应用层定时器定时自动调用,直至到达该台农机租用截止时间deadLine的时刻。

⑥函数“查询用户信用分”function checkCredit(_tenant)

用租赁用户账号地址_tenant指向该账号对象tenants[msg.sender]即tenant;

如果该租赁用户账号信用分大于等于0且未被列入信用黑名单(tenant.credit>=0&&tenant.blacklist==false),则返回"租赁用户信用分正常"和信用分数值;

如果该租赁用户账号信用分小于0或被列入信用黑名单(tenant.credit<0|tenant.blacklist==true),否则返回"租赁用户信用分为负列入黑名单"和信用分数值;

其他情况下,则返回"租赁用户暂时列入黑名单,请尽快归还农机"和信用分数值。

⑦函数“新增监管账号”function ctPlatformMgr(string_Name,address_adrMgr)

将_Name的值的存入监管账号名称mgrName;

将_adrMgr的值的存入监管账户地址_platformMgr。

⑧函数“新增企业账号”function ctCompany(string_Name,address_adrCmp)

将_Name的值的存入企业账号名称companyName;

将_adrCmp的值的存入企业账户地址_company。

⑨函数“新增普通账号”function ctTenant(string_Name,uint256_mobile,address_adrTnt)

将_Name的值的存入普通账号租赁方姓名tenantName;

将_mobile的值存入租赁方手机号mobile;

将_adrTnt的值的存入普通账户地址_tenant。

⑩函数“新增农机”function ctMachine(string_type,string_SN,string_Name,uint_prc)

将_type的值存入农机类型machineType;

将_SN的值存入农机序列号machineSN;

将_Name的值存入农机名称machineName;

将_prc的值存入农机每小时租赁单价perPrice。

将需要绑定的农机的machineSN写入企业账户地址_company为_adrCmp的企业拥有的农机SN组machineGroup[]。

将需要绑定的企业账户地址_company写入账户地址_platformMgr为_adrMgr的平台监管账号的监管范围内的企业账号地址组companyGroup[]。

步骤207,使用solcjs对所述sol格式智能合约文件代码进行编译;由原始代码转译成二进制码和字节码。

步骤208,所述智能合约在联盟链上的部署过程为:将创建的sol格式智能合约文件,以部署交易的方式上链至联盟链;发送智能合约文件二进制码和字节码放入区块链交易的InputData中,编辑接收地址以0x0开头,打包成交易区块;区块链矿工根据0x0的地址头,判定这一交易区块中的交易类型为“发送合约,部署上链”,验证信息正确性后执行区块上链,即将智能合约部署上链。此时智能合约拥有合约地址并存在链上。

步骤209,所述智能合约部署交易将被联盟链同步至所有节点,即所有节点将可通过EVM(以太坊栈式虚拟机)读取并调用该智能合约。

农机租赁信息上链时智能合约验证数据和预警的运行机制主要分为信息上链并同步至所有节点、节点调用智能合约判断农机租赁数据、获得判断返回报警结果。如下步骤301~步骤306:

步骤301,步骤3所述信息上链并同步至所有节点,包括:将农机租赁信息打包成区块并加密、区块上链并同步至所有联盟链内节点。

步骤302,步骤301中提到的农机租赁信息打包成区块并加密具体为:节点调用SDK工具包,按照一个区块的结构将农机租赁信息写入区块体中的Input Data,并写入时间戳、调用智能合约地址等,然后对农机租赁信息进行一次哈希处理,并对哈希进行签名。

步骤303,步骤301中提到的将包含农机租赁信息的区块上链并同步至所有联盟链节点具体为:该包含农机租赁信息的区块信息被联盟链广播至所有节点,在数据写入格式符合要求的情况下,通过共识机制将该区块信息同步至所有节点,并更新整条区块链。

步骤304,步骤3所述节点调用智能合约判断农机租赁信息数据机制方法为,3类不同权限节点(即平台监管节点、出借农机企业节点和普通节点)自动通过EVM(以太坊栈式虚拟机)读取智能合约的字节码,将农机租赁信息的对应变量值带入智能合约代码(其中“函数:农机出借超期报警”须配合应用层定时器定时触发调用),之后执行智能合约。

步骤305,通过步骤304所述将农机租赁信息结构的对应变量值带入智能合约代码并执行智能合约内功能函数后,各节点将可能获得对应报警返回结果类型,包括:

①平台监管节点、出借农机企业节点,收到:"农机超期未归还"、"农机超期归还"(平台监管节点收到所有管辖企业报警,企业仅收到本企业报警);

②普通节点,收到:"付费租用成功"、"付费租用失败"、"租赁方信用分不合格或有农机未归还,不具备租赁资格!"、"归还农机成功"、"验证失败,终止归还"、"归还农机失败"、"租赁用户信用分正常"、"租赁用户信用分为负列入黑名单"、"租赁用户暂时列入黑名单,请尽快归还农机"。

步骤306,3类节点自动将步骤305中所获得的报警返回结果返回给SDK工具包。

有益效果:与现有技术相比,本发明提供的基于区块链智能合约的农机自助付费租赁方法,通过所述FISCO BCOS联盟链架构智能合约,可实现在联盟链内对农机租赁上链信息的智能验证和预警。本发明可广泛应用于智慧农业服务信息化管理体系与产业供应链大数据共享体系,应用成本低,维护简单,并具有功能性优势与广阔的开发前景。对比现有农机自助付费租赁系统和方法,本发明核心优势总结如下:

(1)联盟链共识机制和Solidity合约自动化运行共同作用下,避免传统租赁交易系统常见的账号泄露和管理混乱问题,避免因数据泄露引发的徇私作弊行为,严格保障农机租赁信息、用户信用分的数据安全和不易篡改性;

(2)通过对账号的分级管理与信用管理,以及智能合约中对账号未归还农机信息的校验,精确避免掮客分成、批量转租获利等问题。如果租赁账号信用分为负或被列入信用黑名单则不能继续租赁行为,必须先归还农机、支付罚款等。

(3)不影响数据上链效率的情况下,拓宽了单次数据上链的业务应用层次,实现了分权限等级查看不同数据范围农机租赁信息的目的;

(4)实现租赁信息实时监管、区域性农机综合化治理等高级管理功能;

(5)本发明可在常见服务器上进行部署,并可兼容常见通信设备和采集端口,产业适用度广,应用成本适中,易于联盟链成员机构学习与上手操作。

附图说明

图1是本发明方法的流程图。

具体实施方式

下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。

如图1所示,基于联盟链的农机自助付费租赁方法,包含以下部分:(1)基于联盟链FISCOBCOS架构节点共识机制的账户管理,(2)Solidity智能合约设计、编译和部署,(3)农机租赁信息上链并智能验证和预警。

(1)实现基于联盟链FISCO BCOS架构节点共识机制的账户管理。

步骤101,将节点按权限等级设定分为3种类型:“平台监管节点”、“出借农机企业节点”和“普通节点”。通过根证书CA签发的R证书,在服务器注册进入联盟链中时,标定单个服务器将成为的节点类型。

步骤102,通过根证书CA签发的SDK证书允许“监管账号”、“出借农机企业账号”和“普通账号”这3类账号,分别准入联盟链并挂靠在101所述对应的节点上,获取对应的账号权限。

步骤103,对102所述3种账号的信息结构进行定义:

(2)实现Solidity智能合约设计、编译和部署。

步骤201,首先在计算机上启动Docker容器引擎程序作为基础环境准备。

步骤202,在solcjs编译台上创建一个sol格式智能合约文件;对所述sol格式智能合约文件代码进行编辑。编辑内容包括版本声明、对农机自助付费租赁业务信息所含变量的定义、租赁业务函数设计,如下步骤203~206所述:

步骤203,对步骤202中所述版本声明进行编写,调用pragma语句声明所使用solidity语言版本。

步骤204,对步骤202中所述农机自助付费租赁业务信息所含变量进行定义,包括①单台农机信息的结构、②租赁业务公用信息,如下:

①单台农机信息的结构:

②租赁业务公用信息:

event Occupy(address_tenant,uint256_value);//定义事件Occupy(付费租用),包含变量_tenant(租赁方账户地址)和_value(付费价格)

event Token(machineSN,string_token);//定义事件Token(验证口令),包含变量machineSN(农机序列号)和_token(验证口令)

address payable public owner;//定义收款方账户地址

uint rentHour;//定义租赁小时数

uint rentStart;//定义实际起租时间

uint deadLine;//定义归还截止时间

uint rentEnd;//定义实际归还时间

uint realrentHour;//定义实际租赁小时数

bool ifOk;//定义是否成功归还状态变量ifOk

步骤205,对步骤204中变量的值进行初始化如下:

步骤206,对步骤202中所述租赁业务函数(包括函数修饰器)进行设计:

①函数修饰器:农机状态判定与返回

②函数修饰器:信用分判定与返回

③函数:租农机

④函数:还农机

⑤函数:农机出借超期报警

⑥函数:查询用户信用分

⑦函数:新增监管账号

⑧函数:新增企业账号

⑨函数:新增普通账号

⑩函数:新增农机

步骤207,使用solcjs对所述sol格式智能合约文件代码进行编译;由原始代码转译成二进制码和字节码。

步骤208,智能合约在联盟链上的部署过程为:将创建的sol格式智能合约文件,以部署交易的方式上链至联盟链;发送智能合约文件二进制码和字节码放入区块链交易的Input Data中,编辑接收地址以0x0开头,打包成交易区块;区块链矿工根据0x0的地址头,判定这一交易区块中的交易类型为“发送合约,部署上链”,验证信息正确性后执行区块上链,即将智能合约部署上链。此时智能合约拥有合约地址并存在链上。

步骤209,智能合约部署交易将被联盟链同步至所有节点,即所有节点将可通过EVM(以太坊栈式虚拟机)读取并调用该智能合约。

(3)农机租赁信息上链时智能合约验证数据和预警的运行机制主要分为信息上链并同步至所有节点、节点调用智能合约判断农机租赁数据、获得判断返回报警结果。如下步骤301~步骤306:

步骤301,步骤3所述信息上链并同步至所有节点,包括:将农机租赁信息打包成区块并加密、区块上链并同步至所有联盟链内节点。

步骤302,步骤301中提到的农机租赁信息打包成区块并加密具体为:节点调用SDK工具包,按照一个区块的结构将农机租赁信息写入区块体中的Input Data,并写入时间戳、调用智能合约地址等,然后对农机租赁信息进行一次哈希处理,并对哈希进行签名。

例如1:为了调用函数⑨“新增普通账号”,即实现租赁方注册账号的功能,需要将姓名值_Name,手机值_mobile,账户地址值_adrTnt三个参数的信息写入区块体的InputData。

例如2:为了调用函数⑩“新增农机”,即实现添加一台可出借农机的信息,需要将农机类型值_type,农机SN号值_SN,农机名称值_Name,农机每小时租金值_prc四个参数的信息写入区块体的Input Data。

例如3:为了调用函数③“租农机”,即实现租赁方付费租用某一台农机的功能,需要将农机SN号machineSN,和租赁时长rentHour两个参数的信息写入区块体的InputData。

步骤303,步骤301中提到的将包含农机租赁信息的区块上链并同步至所有联盟链节点具体为:该包含农机租赁信息的区块信息被联盟链广播至所有节点,在数据写入格式符合要求的情况下,通过共识机制将该区块信息同步至所有节点,并更新整条区块链。

步骤304,步骤3所述节点调用智能合约判断农机租赁信息数据机制方法为,3类不同权限节点(即平台监管节点、出借农机企业节点和普通节点)自动通过EVM(以太坊栈式虚拟机)读取智能合约的字节码,将农机租赁信息的对应变量值带入智能合约代码(其中“函数:农机出借超期报警”须配合应用层定时器定时触发调用),之后执行智能合约。

继续上文所提例3:

假设智能合约在接收到调用函数③“租农机”的两个参数machineSN=A0001、rentHour=48后,首先通过函数修饰器①“农机状态判定与返回”modifieronlyWhileVancant判断该SN:A0001农机当前状态是否为Statuses.Vancant可用,同时通过函数修饰器②“信用分判定与返回”modifier onlyWhileCreditable判定调用合约账户的信用分是否大于等于0且是否无农机未归还。当两个前置条件均符合租赁条件时,允许继续执行“租农机”函数。

假设该SN:A0001农机每小时租金为0.2以太币(perPrice=0.2),则租用48小时(rentHour=48)总共需要支付9.6以太币。函数将调用事件“付费租用”emit Occupy向收款方账户地址(通过owner=_company赋值,使出借该农机的公司账户地址为收款地址)支付9.6以太币。假如租赁方账户余额充足大于9.6以太币,则可成功调用“付费租用”事件支付9.6以太币。如余额不足则不能成功完成“付费租用”事件。

步骤305,通过步骤304所述将农机租赁信息结构的对应变量值带入智能合约代码并执行智能合约后,各节点将可能获得对应报警返回结果类型,包括:

①平台监管节点、出借农机企业节点,收到:"农机超期未归还"、"农机超期归还"(平台监管节点收到所有管辖企业报警,企业仅收到本企业报警);

②普通节点,收到:"付费租用成功"、"付费租用失败"、"租赁方信用分不合格或有农机未归还,不具备租赁资格!"、"归还农机成功"、"验证失败,终止归还"、"归还农机失败"、"租赁用户信用分正常"、"租赁用户信用分为负列入黑名单"、"租赁用户暂时列入黑名单,请尽快归还农机"。

继续上文所提例3:

当租赁用户调用事件“付费租用”emit Occupy成功向目标公司账户地址转账9.6以太币后,将得到合约函数返回的信息“付费租用成功”和6位数字验证码(如“268541”)。如租赁用户转账失败则返回信息“付费租用失败”。

后续当该租赁用户在租期结束前,即realrentHour<=48时归还该SN:A0001农机,调用函数④“还农机”,输入参数machineSN(A0001)和_Token(6位数字验证码“268541”),验证码正确验证通过(验证码错误验证失败则返回“验证失败,终止归还”)。该用户可正常归还该农机,并且获得信用分credit增加1分的奖励。函数④“还农机”将返回最新信用分分值和信息“归还农机成功”。

如果该租赁用户一直未归还该SN:A0001农机,则会被应用层定期触发的函数⑤农机出借超期报警执行报警行为,平台监管节点和出借农机企业将收到报警信息"农机超期未归还",同时租赁用户暂时被拉入信用黑名单(tenant.blacklist=true)。

若该租赁用户超期归还,在realrentHour=50时才归还农机,须向收款方账户地址转账(50-48)*0.2=0.4以太币罚款。当租赁用户调用事件“付费租用”emit Occupy成功转账后,函数④“还农机”将返回最新信用分分值和信息“归还农机成功”,且该用户将被从信用黑名单中释放(tenant.blacklist=false)。但该用户将获得信用分credit减少1分的惩罚。

如果租赁用户调用事件“付费租用”emit Occupy支付罚款失败,函数④“还农机”将返回最新信用分分值和信息“归还农机失败”,租赁用户依然处于信用黑名单中(tenant.blacklist=true)。

步骤306,3类节点自动将步骤305中所获得的报警返回结果返回给SDK工具包。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号