亚洲成年网在线观看黄,日本免码va在线看免费,在线看黄aⅴ网站免费观看,三级在线观看视频a毛,超碰caoporen国产,午夜在线无码免费福利院,永久免费无码专区在线观看

螞蟻區(qū)塊鏈第11課 以租房積分管理系統(tǒng)為例講透螞蟻Solidity語言差異精要

本文以住房租賃積分管理系統(tǒng)為例,給大家演示CLOUD左邊ID右邊E如何編譯調(diào)試solidity智能合約,并以此為例,給大家分享以太坊SOL左邊ID右邊ITY跟螞蟻區(qū)塊鏈SOL左邊ID右邊ITY語言的差異點?;趨^(qū)塊鏈智能合約的住房租賃積分管理系統(tǒng)旨在有效

螞蟻區(qū)塊鏈第11課 以租房積分管理系統(tǒng)為例講透螞蟻Solidity語言差異精要

落戶上海咨詢二維碼  

  

  

本文以住房租賃積分管理系統(tǒng)為例,給大家演示CLOUD左邊ID右邊E如何編譯調(diào)試solidity智能合約,并以此為例,給大家分享以太坊SOL左邊ID右邊ITY跟螞蟻區(qū)塊鏈SOL左邊ID右邊ITY語言的差異點。

  

基于區(qū)塊鏈智能合約的住房租賃積分管理系統(tǒng)旨在有效地服務于公眾群體、市民,真正讓那些為城市當前發(fā)展做出努力的人有房住、租得起,讓那些為城市建設(shè)長遠發(fā)展做出貢獻的人有房產(chǎn)、買得起。為此,建立住房租賃積分制度,從住房租賃市場主體屬性、政策激勵、租賃行為三方面,運用區(qū)塊鏈、大數(shù)據(jù)等前沿技術(shù),建立科學、有效的住房租賃積分全生命周期管理機制,營造活力、健康、有序、可持續(xù)的住房租賃生態(tài)。

  

通過使用區(qū)塊鏈平臺作為底層數(shù)據(jù)支撐,確保隱私保護和數(shù)據(jù)不可篡改,達到公平、公正、透明的目的;利用積分決策引擎,結(jié)合住房租賃積分評價體系,產(chǎn)出應用于住房租賃場景的綜合積分方案。該方案具備橫向擴展性,在底層技術(shù)、數(shù)據(jù)不變的基礎(chǔ)上,未來能夠支撐經(jīng)濟信用積分、綠色生活積分等諸多積分體系的建設(shè),從而擴展形成城市信用體系,應用于如醫(yī)療教育、金融借貸、綠色生活等諸多場景。

  

在住房租賃積分管理系統(tǒng)中,主要分為4種角色,分別是管理者、操作者、觀察者以及市民。管理者、操作者、觀察者是智能合約的操作人員,每個角色可以對應多名人員。市民是租賃積分智能合約服務的對象,是整個智能合約的核心用戶。

  

角色操作權(quán)限

  

管理者是合約的超級管理員,能夠?qū)芾碚?、操作者以及觀察者進行添加、刪除、查詢操作。操作者可以查詢操作者信息。觀察者可以查詢觀察者信息。

  

1

  

積分操作權(quán)限

  

管理者:具有積分獎勵、積分查詢、積分轉(zhuǎn)移、積分違規(guī)扣除、積分權(quán)益兌換等積分操作權(quán)限。操作者:操作者是由管理者設(shè)置的積分操作角色,該角色可以是具體的人員也可以是系統(tǒng)服務,具有積分獎勵、積分轉(zhuǎn)移、積分違規(guī)扣除、積分權(quán)益兌換等積分操作權(quán)限。觀察者:觀察者是由管理者設(shè)置的積分查詢角色,該角色可以是具體的人員也可以是系統(tǒng)服務,具有積分查詢的操作權(quán)限。市民:市民是住房租賃積分系統(tǒng)的用戶,是住房租賃積分系統(tǒng)的實際權(quán)益對象。

  

市民可以通過組織機構(gòu)的租賃積分外部服務系統(tǒng)代理的觀察者權(quán)限查看自己的積分狀況。租賃積分外部服務系統(tǒng)會根據(jù)市民的合規(guī)表現(xiàn),通過操作者的權(quán)限進行積分獎勵或積分違規(guī)扣除。市民可以通過租賃積分外部服務系統(tǒng)代理的操作者權(quán)限進行積分權(quán)益兌換或積分轉(zhuǎn)移操作。

  

2

  

租賃積分智能合約提供的服務方法包括積分獎勵、積分查詢、積分權(quán)益兌換、積分違規(guī)扣除、積分轉(zhuǎn)移以及積分達到閾值后觸發(fā)積分事件。

  

3

  

積分獎勵(awardScore)

  

在市民租賃房屋的過程中,針對租賃的時間、租賃過程中產(chǎn)生的行為,為市民進行積分累計。

  

積分查詢(queryScore)

  

市民可通過租賃積分外部服務系統(tǒng)代理的觀察者權(quán)限查看自己的積分狀況。

  

積分權(quán)益兌換(exchangeScore)

  

市民的積分達到指定閾值后可以享有相應的權(quán)益,如租房優(yōu)惠、買房資格、落戶資格等。

  

積分違規(guī)扣除(deductScore)

  

在市民租賃房屋的過程中,針對租賃過程中產(chǎn)生的錯誤行為,對市民懲罰性的扣減積分。住房租賃積分作為正向激勵的積分體系,鼓勵民眾積極向上。對于積分主體的偽造資料行為,視情節(jié)嚴重程度扣減積分、取消積分資格以及收回積分對應的權(quán)益。

  

積分事件(SCORE_EQUITY_NOTICE)

  

當積分權(quán)益實時增加時,會觸發(fā)積分權(quán)益檢查。若積分達到了指定的閾值,則會產(chǎn)生相應的積分權(quán)益通知事件。通過外部服務系統(tǒng)通知到具體的市民。

  

積分轉(zhuǎn)移(transferScore)

  

當市民因工作關(guān)系、家庭因素需要到其他城市生活時,可以將該城市的積分轉(zhuǎn)移到目標城市的積分系統(tǒng)。為滿足該合約的調(diào)用,目標合約需要有對應的積分獎勵方法,且需要為發(fā)起合約提供操作權(quán)限,即將發(fā)起合約的地址設(shè)置為操作者或管理員。

  

參考《螞蟻區(qū)塊鏈第8課如何創(chuàng)建新的賬戶,獲取私鑰和identity標識?》文章獲得輝哥需要的賬號的解密私鑰和identity。

  

角色定義如下,其中的私鑰已被輝哥篡改過了,防止被誤用。

  

因為目前(2019.04.06)螞蟻BAAS系統(tǒng)存在一個BUG,導致ella等賬號不能被用于智能合約部署,輝哥目前可使用的賬號只有test002和duncanwang賬號,輝哥在測試用例設(shè)計上做了一個小調(diào)整。

  

參考《螞蟻區(qū)塊鏈第5課如何配置Cloud左邊ID右邊E證書并進行Solidity智能合約調(diào)試?》完成智能合約的編譯和部署,采用默認的test002賬號。

  

【告警】在螞蟻BAAS系統(tǒng)中,相同的合約名稱只能使用一次。

  

如果該合約已部署,可按“已部署合約”根據(jù)已部署的智能合約名稱來調(diào)用合約。

  

調(diào)用test002部署的LeasingScoreManager合約

  

賬號:test002

  

賬號identity:0xd6b1f9e8a0da740faa41b78eba7be9214cf96e7fed20

  

創(chuàng)建LeasingScoreManager,其合約identity:0x64d555c5cd319fe7ddd2eb1741a5d3c4386fac168eded5044

  

(1)管理員test002做賬戶設(shè)置操作

  

<1>管理員test002部署合約(上海合約)后增加自己為管理員

  

functionaddAdmin(identityadmin)publiconlyAdmin

  

addAdmin(0xd6b1f9e8a0da740faa41b78eba7be9214cf96e7fed20)

  

1- 管理員test002部署合約(上海合約)后增加自己為管理員

  

結(jié)果:

  

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

  

結(jié)果:

  

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

  

結(jié)果:未記錄。

  

賬號切換到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發(fā)現(xiàn)市民dingheng房租到期后,未及時退租???0個積分,電話催丁恒來退租。

  

functiondeductScore(bytes32player,uintscore,stringdescribe)publiconlyCalculatorOrAdmin

  

deductScore(“dingheng”,10,“理由:dingheng房租到期后,未及時退租???0個積分?!?

  

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

  

輸出信息:

  

txhash:0x970e9ad61dfd9e264cd1bd12ca0d8426d1bbe9a178b0ec88d82d6a30ec2c5c99

  

log:

  

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

  

SCORE_OPERATOR(uint8,string):2,理由:dingheng房租到期后,未及時退租???0個積分。

  

螞蟻區(qū)塊鏈合約平臺基本支持Solidity所有的數(shù)據(jù)類型,但是對于一些用戶編寫的合約的輸入?yún)?shù)類型并沒有完全的支持,比如參數(shù)輸入中二維數(shù)組的輸入。同時,螞蟻區(qū)塊鏈合約平臺提供了identity類型來標注每一個用戶的身份,不支持原生Solidity中的address類型,identity的長度為32字節(jié)。

  

螞蟻BAAS的identity就是賬號名稱的SHA256算法產(chǎn)生的32字節(jié)內(nèi)容。

  

例如,在站長工具網(wǎng)站中輸入賬號名字duncanwang,獲得其identity為0x4983bcbaf60b9c90dc9d9a0b38a8931aad9a444acaa2adcbc61c5e3e218c49e1

  

image.png

  

更多信息,可查看Solidity官網(wǎng)關(guān)于類型的文檔(英文)。

  

螞蟻區(qū)塊鏈合約平臺支持的Solidity語法基本與官方文檔一致,具體語法介紹可參看Solidity官方文檔(英文)。

  

本文主要介紹Solidity合約函數(shù)構(gòu)造的常用權(quán)限關(guān)鍵字和修飾關(guān)鍵字。

  

螞蟻區(qū)塊鏈合約平臺為合約開發(fā)者提供一些新的特性接口支持,包括對區(qū)塊數(shù)據(jù)獲取、交易數(shù)據(jù)獲取、加密方法的支持。

  

block.blockhash(uintblockNumber)returns(bytes32):傳入,返回塊的哈希值。block.gaslimit(uint):系統(tǒng)中的gas最大值。block.number(uint):當前塊高度。block.timestamp(uint):當前區(qū)塊創(chuàng)建的時間戳。now(uint):的別名。

  

msg.data(bytes):用戶的輸入數(shù)據(jù)。msg.gas(uint):用戶交易中的gas值。msg.sender(identity):用戶交易中的發(fā)送方。msg.sig(bytes4):用戶交易輸入數(shù)據(jù)的前四字節(jié)。msg.value(uint):用戶交易中的gas值。

  

螞蟻區(qū)塊鏈合約平臺還支持查詢交易哈希,示例如下:

  

可通過此方法獲取當前交易的哈希值。

  

【告警】不支持TOKEN,不支持地址相關(guān)的轉(zhuǎn)賬函數(shù)了。

  

.balance(uint256):以Wei為單位的地址類型的余額。.transfer(uint256amount):向地址類型發(fā)送數(shù)量為amount的Wei,失敗時拋出異常,發(fā)送2300gas的礦工費,不可調(diào)節(jié)。.send(uint256amount)returns(bool):向地址類型發(fā)送數(shù)量為amount的Wei,失敗時返回false,發(fā)送2300gas的礦工費用,不可調(diào)節(jié)。.call(...)returns(bool):發(fā)出低級函數(shù)CALL,失敗時返回false,發(fā)送所有可用gas,可調(diào)節(jié)。.callcode(...)returns(bool):發(fā)出低級函數(shù)CALLCODE,失敗時返回false,發(fā)送所有可用gas,可調(diào)節(jié)。.delegatecall(...)returns(bool):發(fā)出低級函數(shù)DELEGATECALL,失敗時返回false,發(fā)送所有可用gas,可調(diào)節(jié)。

  

螞蟻區(qū)塊鏈合約平臺主要支持兩種合約調(diào)用方式,分別為和。

  

類型的合約調(diào)用主要是通過調(diào)用其他合約代碼獲取某個方法的調(diào)用結(jié)果。同時,在執(zhí)行該合約時,被調(diào)用合約的變量會被修改(即修改的是被調(diào)用合約的內(nèi)存),調(diào)用執(zhí)行成功時返回true,失敗則返回false。如果被調(diào)用合約不存在,則返回執(zhí)行調(diào)用合約的函數(shù)。

  

函數(shù)原型

  

請求參數(shù)

  

參數(shù)必選類型說明id是identity被調(diào)用合約左邊ID右邊data是string被調(diào)用合約方法簽名args是var被調(diào)用合約方法傳入?yún)?shù)

  

返回值

  

參數(shù)必選類型說明result是bool方法返回值,成功為true,否則為false。

  

類型的合約調(diào)用也是調(diào)用其他合約的方法,與不同的是,修改的是合約調(diào)用方的內(nèi)存。此方法的主要目的在于讓合約能夠在不傳輸自身狀態(tài)(如、)的情況下使用其他合約的代碼。不支持傳輸value。

  

函數(shù)原型

  

請求參數(shù)

  

參數(shù)必選類型說明id是identity被調(diào)用合約左邊ID右邊data是string被調(diào)用合約方法簽名args是var被調(diào)用合約方法傳入?yún)?shù)

  

返回值

  

參數(shù)必選類型說明result是bool方法返回值,成功為true,否則為false。

  

(1)Solidity合約開發(fā)

  

(2)Solidity官方中文文檔

免責聲明:本站部分內(nèi)容和圖片來源于互聯(lián)網(wǎng),經(jīng)本站整理和編輯,版權(quán)歸原作者所有,本站轉(zhuǎn)載出于傳遞更多信息、交流和學習之目的,不做商用不擁有所有權(quán),不承擔相關(guān)法律責任。若有來源標注存在錯誤或侵犯到您的權(quán)益,煩請告知網(wǎng)站管理員,將于第一時間整改處理。管理員郵箱:y569#qq.com(#轉(zhuǎn)@)

相關(guān)推薦

推薦內(nèi)容

落戶咨詢2
最新資訊
落戶咨詢3