上海落户咨询网-为您提供一对一的落户咨询服务!

深圳入户咨询网logo

上海落户咨询网落户一对一咨询服务

蚂蚁区块链第11课 以租房积分管理系统为例讲透蚂蚁Solidity语言差异精要

栏目:积分落户 人气:0发表时间:2023-06-24来源:网络
信息摘要:
本文以住房租赁积分管理系统为例,给大家演示CLOUD左边ID右边E如何编译调试solidity智能合约,并以此为例,给大家分享以太坊SOL左边ID右边ITY跟蚂蚁区块链SOL左边ID右边ITY语言的差异点。基于区块链智能合约的住房租赁积分管理系统旨在有效地服务于公众群体、市民,真正让那些为城市当前发......

蚂蚁区块链第11课 以租房积分管理系统为例讲透蚂蚁Solidity语言差异精要

(蚂蚁区块链第11课 以租房积分管理系统为例讲透蚂蚁Solidity语言差异精要)

入户上海咨询二维码  

  

  

本文以住房租赁积分管理系统为例,给大家演示CLOUD左边ID右边E如何编译调试solidity智能合约,并以此为例,给大家分享以太坊SOL左边ID右边ITY跟蚂蚁区块链SOL左边ID右边ITY语言的差异点。

  

基于区块链智能合约的住房租赁积分管理系统旨在有效地服务于公众群体、市民,真正让那些为城市当前发展做出努力的人有房住、租得起,让那些为城市建设长远发展做出贡献的人有房产、买得起。为此,建立住房租赁积分制度,从住房租赁市场主体属性、政策激励、租赁行为三方面,运用区块链、大数据等前沿技术,建立科学、有效的住房租赁积分全生命周期管理机制,营造活力、健康、有序、可持续的住房租赁生态。

  

通过使用区块链平台作为底层数据支撑,确保隐私保护和数据不可篡改,达到公平、公正、透明的目的;利用积分决策引擎,结合住房租赁积分评价体系,产出应用于住房租赁场景的综合积分方案。该方案具备横向扩展性,在底层技术、数据不变的基础上,未来能够支撑经济信用积分、绿色生活积分等诸多积分体系的建设,从而扩展形成城市信用体系,应用于如医疗教育、金融借贷、绿色生活等诸多场景。

  

在住房租赁积分管理系统中,主要分为4种角色,分别是管理者、操作者、观察者以及市民。管理者、操作者、观察者是智能合约的操作人员,每个角色可以对应多名人员。市民是租赁积分智能合约服务的对象,是整个智能合约的核心用户。

  

角色操作权限

  

管理者是合约的超级管理员,能够对管理者、操作者以及观察者进行添加、删除、查询操作。操作者可以查询操作者信息。观察者可以查询观察者信息。

  

1

  

积分操作权限

  

管理者:具有积分奖励、积分查询、积分转移、积分违规扣除、积分权益兑换等积分操作权限。操作者:操作者是由管理者设置的积分操作角色,该角色可以是具体的人员也可以是系统服务,具有积分奖励、积分转移、积分违规扣除、积分权益兑换等积分操作权限。观察者:观察者是由管理者设置的积分查询角色,该角色可以是具体的人员也可以是系统服务,具有积分查询的操作权限。市民:市民是住房租赁积分系统的用户,是住房租赁积分系统的实际权益对象。

  

市民可以通过组织机构的租赁积分外部服务系统代理的观察者权限查看自己的积分状况。租赁积分外部服务系统会根据市民的合规表现,通过操作者的权限进行积分奖励或积分违规扣除。市民可以通过租赁积分外部服务系统代理的操作者权限进行积分权益兑换或积分转移操作。

  

2

  

租赁积分智能合约提供的服务方法包括积分奖励、积分查询、积分权益兑换、积分违规扣除、积分转移以及积分达到阈值后触发积分事件。

  

3

  

积分奖励(awardScore)

  

在市民租赁房屋的过程中,针对租赁的时间、租赁过程中产生的行为,为市民进行积分累计。

  

积分查询(queryScore)

  

市民可通过租赁积分外部服务系统代理的观察者权限查看自己的积分状况。

  

积分权益兑换(exchangeScore)

  

市民的积分达到指定阈值后可以享有相应的权益,如租房优惠、买房资格、落户资格等。

  

积分违规扣除(deductScore)

  

在市民租赁房屋的过程中,针对租赁过程中产生的错误行为,对市民惩罚性的扣减积分。住房租赁积分作为正向激励的积分体系,鼓励民众积极向上。对于积分主体的伪造资料行为,视情节严重程度扣减积分、取消积分资格以及收回积分对应的权益。

  

积分事件(SCORE_EQUITY_NOTICE)

  

当积分权益实时增加时,会触发积分权益检查。若积分达到了指定的阈值,则会产生相应的积分权益通知事件。通过外部服务系统通知到具体的市民。

  

积分转移(transferScore)

  

当市民因工作关系、家庭因素需要到其他城市生活时,可以将该城市的积分转移到目标城市的积分系统。为满足该合约的调用,目标合约需要有对应的积分奖励方法,且需要为发起合约提供操作权限,即将发起合约的地址设置为操作者或管理员。

  

参考《蚂蚁区块链第8课如何创建新的账户,获取私钥和identity标识?》文章获得辉哥需要的账号的解密私钥和identity。

  

角色定义如下,其中的私钥已被辉哥篡改过了,防止被误用。

  

因为目前(2019.04.06)蚂蚁BAAS系统存在一个BUG,导致ella等账号不能被用于智能合约部署,辉哥目前可使用的账号只有test002和duncanwang账号,辉哥在测试用例设计上做了一个小调整。

  

参考《蚂蚁区块链第5课如何配置Cloud左边ID右边E证书并进行Solidity智能合约调试?》完成智能合约的编译和部署,采用默认的test002账号。

  

【告警】在蚂蚁BAAS系统中,相同的合约名称只能使用一次。

  

如果该合约已部署,可按“已部署合约”根据已部署的智能合约名称来调用合约。

  

调用test002部署的LeasingScoreManager合约

  

账号:test002

  

账号identity:0xd6b1f9e8a0da740faa41b78eba7be9214cf96e7fed20

  

创建LeasingScoreManager,其合约identity:0x64d555c5cd319fe7ddd2eb1741a5d3c4386fac168eded5044

  

(1)管理员test002做账户设置操作

  

<1>管理员test002部署合约(上海合约)后增加自己为管理员

  

functionaddAdmin(identityadmin)publiconlyAdmin

  

addAdmin(0xd6b1f9e8a0da740faa41b78eba7be9214cf96e7fed20)

  

1- 管理员test002部署合约(上海合约)后增加自己为管理员

  

结果:

  

txhash:0x842c8da9fa0c1f356fcb0317ce5aca2edd8cd1a80

  

log:

  

VAL左边ID右边(bool,uint8):true,0

  

USER_EXIST(bool,uint8):false,0

  

<2>管理员test002增加操作员duncanwang

  

functionaddCalculator(identitycalculator)publiconlyAdmin

  

addCalculator(0x4983bcbaf60b9c90dc9d9a0b38a8931aad9a444acaa2adcbc61c5e3e218c49e1)

  

2- 管理员test002增加操作员 duncanwang

  

结果:

  

txhash:0xe68c2fadba293e95f803e511ba46e9e111ef1e44e685a2df2e2269b

  

log:

  

VAL左边ID右边(bool,uint8):true,0

  

USER_EXIST(bool,uint8):false,1

  

<3>管理员test002增加观察员duncanwang

  

functionaddObserver(identityobserver)publiconlyAdmin

  

addObserver(0x4983bcbaf60b9c90dc9d9a0b38a8931aad9a444acaa2adcbc61c5e3e218c49e1)

  

3-管理员test002增加观察员 duncanwang

  

结果:未记录。

  

账号切换到duncanwang账号:

  

7.切换到duncanwang账号

  

(2)操作员duncanwang给市民dingheng增加100积分,理由:在马路上勇敢扶起一位摔倒的80岁老奶奶。

  

functionawardScore(bytes32player,uintscore,stringdescribe)

  

awardScore(“dingheng”,100,“理由:dingheng在马路上勇敢扶起一位摔倒的80岁老奶奶。”)

  

8.增加积分

  

输出信息:

  

txhash:0x591daac5d038de4d9a3f437dd8aeeabbe3d5af2903ef122

  

log

  

VAL左边ID右边(bool,uint8):true,1

  

SCORE_OPERATOR(uint8,string):0,理由:dingheng在马路上勇敢扶起一位摔倒的80岁老奶奶。

  

SCORE_EQUITY_NOTICE(string,uint256,string):RentConcessions,100,Citizensenjoya90%discountonrentalhousing

  

(3)操作员duncanwang收到市民dingheng申请,理由:需要租房1年,花费80积分。

  

functionexchangeScore(bytes32player,uintscore,stringdescribe)publiconlyCalculatorOrAdminreturns(bool)

  

exchangeScore(“dingheng”,80,“理由:需要租房1年,花费80积分。”)

  

9.租房花费积分

  

输出信息:

  

txhash:0xd7ce3c91a3b6e3cc4d6e4ad1bc05e5ba8dda81dbdc0b68a

  

log

  

VAL左边ID右边(bool,uint8):true,1

  

SCORE_OPERATOR(uint8,string):1,理由:需要租房1年,花费80积分。

  

(4)操作员duncanwang发现市民dingheng房租到期后,未及时退租。扣10个积分,电话催丁恒来退租。

  

functiondeductScore(bytes32player,uintscore,stringdescribe)publiconlyCalculatorOrAdmin

  

deductScore(“dingheng”,10,“理由:dingheng房租到期后,未及时退租。扣10个积分。”)

  

10 租房到期未退租扣除积分

  

输出信息:

  

txhash:0x970e9ad61dfd9e264cd1bd12ca0d8426d1bbe9a178b0ec88d82d6a30ec2c5c99

  

log:

  

VAL左边ID右边(bool,uint8):true,1

  

SCORE_OPERATOR(uint8,string):2,理由:dingheng房租到期后,未及时退租。扣10个积分。

  

蚂蚁区块链合约平台基本支持Solidity所有的数据类型,但是对于一些用户编写的合约的输入参数类型并没有完全的支持,比如参数输入中二维数组的输入。同时,蚂蚁区块链合约平台提供了identity类型来标注每一个用户的身份,不支持原生Solidity中的address类型,identity的长度为32字节。

  

蚂蚁BAAS的identity就是账号名称的SHA256算法产生的32字节内容。

  

例如,在站长工具网站中输入账号名字duncanwang,获得其identity为0x4983bcbaf60b9c90dc9d9a0b38a8931aad9a444acaa2adcbc61c5e3e218c49e1

  

image.png

  

更多信息,可查看Solidity官网关于类型的文档(英文)。

  

蚂蚁区块链合约平台支持的Solidity语法基本与官方文档一致,具体语法介绍可参看Solidity官方文档(英文)。

  

本文主要介绍Solidity合约函数构造的常用权限关键字和修饰关键字。

  

蚂蚁区块链合约平台为合约开发者提供一些新的特性接口支持,包括对区块数据获取、交易数据获取、加密方法的支持。

  

block.blockhash(uintblockNumber)returns(bytes32):传入,返回块的哈希值。block.gaslimit(uint):系统中的gas最大值。block.number(uint):当前块高度。block.timestamp(uint):当前区块创建的时间戳。now(uint):的别名。

  

msg.data(bytes):用户的输入数据。msg.gas(uint):用户交易中的gas值。msg.sender(identity):用户交易中的发送方。msg.sig(bytes4):用户交易输入数据的前四字节。msg.value(uint):用户交易中的gas值。

  

蚂蚁区块链合约平台还支持查询交易哈希,示例如下:

  

可通过此方法获取当前交易的哈希值。

  

【告警】不支持TOKEN,不支持地址相关的转账函数了。

  

.balance(uint256):以Wei为单位的地址类型的余额。.transfer(uint256amount):向地址类型发送数量为amount的Wei,失败时抛出异常,发送2300gas的矿工费,不可调节。.send(uint256amount)returns(bool):向地址类型发送数量为amount的Wei,失败时返回false,发送2300gas的矿工费用,不可调节。.call(...)returns(bool):发出低级函数CALL,失败时返回false,发送所有可用gas,可调节。.callcode(...)returns(bool):发出低级函数CALLCODE,失败时返回false,发送所有可用gas,可调节。.delegatecall(...)returns(bool):发出低级函数DELEGATECALL,失败时返回false,发送所有可用gas,可调节。

  

蚂蚁区块链合约平台主要支持两种合约调用方式,分别为和。

  

类型的合约调用主要是通过调用其他合约代码获取某个方法的调用结果。同时,在执行该合约时,被调用合约的变量会被修改(即修改的是被调用合约的内存),调用执行成功时返回true,失败则返回false。如果被调用合约不存在,则返回执行调用合约的函数。

  

函数原型

  

请求参数

  

参数必选类型说明id是identity被调用合约左边ID右边data是string被调用合约方法签名args是var被调用合约方法传入参数

  

返回值

  

参数必选类型说明result是bool方法返回值,成功为true,否则为false。

  

类型的合约调用也是调用其他合约的方法,与不同的是,修改的是合约调用方的内存。此方法的主要目的在于让合约能够在不传输自身状态(如、)的情况下使用其他合约的代码。不支持传输value。

  

函数原型

  

请求参数

  

参数必选类型说明id是identity被调用合约左边ID右边data是string被调用合约方法签名args是var被调用合约方法传入参数

  

返回值

  

参数必选类型说明result是bool方法返回值,成功为true,否则为false。

  

(1)Solidity合约开发

  

(2)Solidity官方中文文档

扫描微信咨询

扫描上面二维码,微信咨询

落户咨询热线:13671738356


声明:
本站部分内容和图片来源于互联网,经本站整理和编辑,版权归原作者所有,本站转载出于传递更多信息、交流和学习之目的,不做商用不拥有所有权,不承担相关法律责任。若有来源标注存在错误或侵犯到您的权益,烦请告知网站管理员,将于第一时间整改处理。管理员邮箱:y569#qq.com(#转@)


最新资讯
上海积分落户申请这样验证学历 学信网学位验证报告操作指南

上海积分落户申请这样验证学历 学信网学位验证报告操作指南

学位信息查询与认证服务调整后,已在学位授予信息报送(备案)系统中注册的国内学......
23-10-04
学历信息虚假导致上海居住积分申请失败

学历信息虚假导致上海居住积分申请失败

申请人的情况:唐先生32岁,持有上海市居住证,学士学位,社保正常缴纳,在沪社......
23-10-04
上海市积分入户学历要求标准

上海市积分入户学历要求标准

基础指标包含年龄、教育背景、专业技术职称和技能等级、在上海市工作及缴纳职工社......
23-10-04
听说:120积分上学和上海户口已经一样了?

听说:120积分上学和上海户口已经一样了?

无论是120积分还是上海户口,都是让生活在上海的人们能享受到上海的公共资源和......
23-10-04
上海积分增加子女信息 超生二孩能积分 非婚生的未婚先育 违反计生政策能办积分

上海积分增加子女信息 超生二孩能积分 非婚生的未婚先育 违反计生政策能办积分

上海积分增加子女信息超生二孩能积分非婚生的未婚先育违反计生政策能办积分马老师......
23-10-04
2022年天津积分落户结果查询(附查询入口)

2022年天津积分落户结果查询(附查询入口)

2022年第一期居住证积分落户结果查询一、查询时间2022年6月9日起查询入......
23-10-04
天津积分落户分值表和申请材料清单

天津积分落户分值表和申请材料清单

2022年天津居住证积分落户分值表如下图:2022年天津买房、落户政策汇总申......
23-10-04
上海落户积分和居住证积分是怎么回事?这两者区别太大了!

上海落户积分和居住证积分是怎么回事?这两者区别太大了!

大家都知道上海居住证积分是什么,但上海落户积分又是什么意思呢?上海有积分落户......
23-10-04
推荐资讯
最新政策发布!落户燕郊、北三县,需要满足这些条件

最新政策发布!落户燕郊、北三县,需要满足这些条件

北三县户籍制度改革实施细则公布啦!5月7日,廊坊市公安局发布《廊坊市深化户籍......
22-11-10
【积分落户】2021年上海居住证转户口条件及注意事项

【积分落户】2021年上海居住证转户口条件及注意事项

很多朋友在办理积分落户的过程中都会碰到各种各样的问题,而这类问题又无法在相关......
23-07-21
上海静安区专业积分申请受理不通过原因2022已更新(今日/本地公司)

上海静安区专业积分申请受理不通过原因2022已更新(今日/本地公司)

上海静安区专业积分申请受理不通过原因2022已更新(今日/本地公司)awtp......
23-07-13
上海积分落户的标准有望主要以社保缴纳年限和实际居住年限为主

上海积分落户的标准有望主要以社保缴纳年限和实际居住年限为主

【大河财立方消息】在1月23日下午举行的上海市政协十三届四次会议委员与市民网......
23-09-07
上海居住证积分达标就能落户上海?大错特错!

上海居住证积分达标就能落户上海?大错特错!

原标题:上海居住证积分达标就能落户上海?大错特错!上海居住证积分达标可以在上......
23-07-26
上海积分落户需要注意哪些事项?

上海积分落户需要注意哪些事项?

上海积分落户推出后,3-5月已经在后台收到了几百个咨询,主要是对医保报销有疑......
23-09-28
学位证丢失,学位证明不给办,上海市办理积分达不到120分,小孩没法上学高考怎么办?

学位证丢失,学位证明不给办,上海市办理积分达不到120分,小孩没法上学高考怎么办?

本人由于疏忽学位证丢失,去学校办理只给用A4纸张写了个学位证明,但上海这边要......
23-09-06
北上广积分落户政策比拼,快看你离上岸还差多少分!

北上广积分落户政策比拼,快看你离上岸还差多少分!

原标题:北上广积分落户政策比拼,快看你离上岸还差多少分!前段时间北京积分落户......
23-10-01
最新更新
2021年入深户中的调干和招工,调工,有什么区别?

2021年入深户中的调干和招工,调工,有什么区别?

一、调干条件1、统招统考大学本科生,有学士学位,干部身份,可免社保;2、没学......
23-03-08
深圳入户招工调干真的那么简单吗?别听一些人瞎忽悠

深圳入户招工调干真的那么简单吗?别听一些人瞎忽悠

当你不了解深圳入户招工调干的时候,你望而生畏,解决问题的目标起初看起来都无法......
23-03-08
麻烦各位前辈!有谁能给我推荐一下 调干入户书什么该怎么入户?

麻烦各位前辈!有谁能给我推荐一下 调干入户书什么该怎么入户?

分数入户是还包括了调干,调工,招工。调干就是以分数入户的方式迁出深圳户口,但......
23-03-08
招工调干入深户相关规定

招工调干入深户相关规定

深圳户口不再难求关于为员工办理招工调干入深户的规定为奖励对公司有重大贡献、表......
23-03-08
深圳户籍政策2022,职称入深户

深圳户籍政策2022,职称入深户

深圳户籍政策2022,职称入深户2021年只剩下四十多天,深圳户籍新政很快就......
23-03-07
深圳积分入户什么职称政策解读

深圳积分入户什么职称政策解读

一、入深户4个基本条件1.年龄18--45周岁之间,正常在我市参加社会保险;......
23-03-07
目前中级职称落户深圳的条件

目前中级职称落户深圳的条件

2022年没有学历,没有房产,社保交往不多的普通人该如何入户深圳?其实,即使......
23-03-07
深圳职称入户条件2022已更新(今日/商情)

深圳职称入户条件2022已更新(今日/商情)

需要引入需求覆盖率和代码覆盖率来衡量测试执行的完备性,并以此为依据来找出遗漏......
23-03-07
深圳入户哪些职称可以入户,职称人才引进落户政策总结

深圳入户哪些职称可以入户,职称人才引进落户政策总结

深圳市社会福利局有关部门负责人介绍说,第二批突破了社会福利、、发展改革、政务......
23-03-07
硕志教育:深圳积分入户中谈到的中级职称是什么?

硕志教育:深圳积分入户中谈到的中级职称是什么?

最近很多人都在后台问,积分入户中可以加分的中级职称是什么?看在这么多朋友都不......
23-03-07
推荐资讯
全日制本科入户深圳,学历入深户

全日制本科入户深圳,学历入深户

全日制本科入户深圳,入深户感谢各位伙伴阅读此文章,你们的支持就是我的动力,希......
23-02-28
2022年深圳入户中级职称能加分证书是这个!

2022年深圳入户中级职称能加分证书是这个!

我们都知道深圳户口有分两个形式可以办理落户,一个是核准入户直接人才引进即可办......
23-01-31
应届毕业生转为深圳户口好吗福田办理入户

应届毕业生转为深圳户口好吗福田办理入户

应届生转为深圳户口好吗福田办理入户从LED产业周期上来讲,在经过2015年及......
23-02-04
震惊:原来深圳集体户口是怎么样的是这么简单的!

震惊:原来深圳集体户口是怎么样的是这么简单的!

我想分享一些深圳集体户口是怎么样的信息给需要的朋友,我觉得这些建议适用于很多......
23-02-08
入深户年龄放宽,本科40岁硕士45岁博士50岁,入户一步到位_重复

入深户年龄放宽,本科40岁硕士45岁博士50岁,入户一步到位_重复

深圳市人力资源和社会保障局在市政府定期新闻发布会上重点通报了人才落户、就业创......
23-03-04
关于应届生落户深圳需要什么条件的信息

关于应届生落户深圳需要什么条件的信息

深圳要求档案和户口同时办理应届生落户深圳需要什么条件,也就是说不能只挂靠档案......
23-02-05
我是深圳市福田区集体户口,妻子是外地户口,如何办理准生证?

我是深圳市福田区集体户口,妻子是外地户口,如何办理准生证?

申请一胎准生证以女方户籍地办理为主。申请二胎准生证在女方户籍地提出申请。根据......
23-02-11
快40岁,非深户,年收入10多万,两娃,要离开深圳?

快40岁,非深户,年收入10多万,两娃,要离开深圳?

木兰返青,蔷薇暗结,春天从来不会缺少花朵。——舒丹丹《雾水》5月8日晚上,有......
22-12-18
推荐内容
居转户,落户上海有哪些隐形要求?

居转户,落户上海有哪些隐形要求?

(四)在本市被评聘为中级及以上专业技术职务或者具有技师(国家二级以上职业资格......
23-02-22
2016年天津市人才引进政策、办理天津、落户流程

2016年天津市人才引进政策、办理天津、落户流程

一、人才引进政策(一)引进国内人才【引进标准】下列人员经用人单位同意录用或聘......
23-09-22
应届毕业生户口本没带可以报到吗

应届毕业生户口本没带可以报到吗

报到证,由1999年以前的“派遣证”转化而来,是应届普通高等学校、应届普通中......
23-02-11
早婚早育能申请上海居住证积分吗?未婚先育能申请积分及落户吗?

早婚早育能申请上海居住证积分吗?未婚先育能申请积分及落户吗?

上海未婚先育能申请积分吗?上海早婚早育能积分吗?上海早婚早育影响积分上学吗?......
22-09-26
2022年外地孩子想参加上海的中考,积分不达标解决方案

2022年外地孩子想参加上海的中考,积分不达标解决方案

外地的父母将孩子接到上海读书,本来是一件好事,是为了孩子的学习考虑的。但是孩......
23-08-30
应届生考编被发现交了个税

应届生考编被发现交了个税

应届生考编被发现交了个税答案是:一般情况下应届生考公务员,在APP个人所得税......
23-02-23
全国首个政校合作联合培养的劳动关系领域博士后出站

全国首个政校合作联合培养的劳动关系领域博士后出站

见圳客户端?深圳新闻网讯(记者潘峰通讯员张密)2019年12月16日,中山大......
22-12-19
高中生须知:同样是重点高校,分校、校区和本部毕业证区别是什么?

高中生须知:同样是重点高校,分校、校区和本部毕业证区别是什么?

原标题:高中生须知:同样是重点高校,分校、校区和本部毕业证区别是什么?全日制......
23-08-22

咨询热线

13671738356