2023年全省職業(yè)院校技能大賽高職學(xué)生組-區(qū)塊鏈技術(shù)與應(yīng)用-樣題樣本二_第1頁(yè)
2023年全省職業(yè)院校技能大賽高職學(xué)生組-區(qū)塊鏈技術(shù)與應(yīng)用-樣題樣本二_第2頁(yè)
2023年全省職業(yè)院校技能大賽高職學(xué)生組-區(qū)塊鏈技術(shù)與應(yīng)用-樣題樣本二_第3頁(yè)
2023年全省職業(yè)院校技能大賽高職學(xué)生組-區(qū)塊鏈技術(shù)與應(yīng)用-樣題樣本二_第4頁(yè)
2023年全省職業(yè)院校技能大賽高職學(xué)生組-區(qū)塊鏈技術(shù)與應(yīng)用-樣題樣本二_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

單選題運(yùn)用()技術(shù),可以在保證數(shù)據(jù)安全的前提下解決數(shù)據(jù)孤島問題。A、移動(dòng)互聯(lián)網(wǎng)B、區(qū)塊鏈C、互聯(lián)網(wǎng)D、電子貨幣2、在區(qū)塊鏈技術(shù)中,數(shù)據(jù)以何種方式永久存儲(chǔ)。A、鏈條方式B、區(qū)塊方式C、加密方式D、分散方式3、以太坊主網(wǎng)在剛開始運(yùn)行發(fā)布的時(shí)候的是以下哪種共識(shí)機(jī)制進(jìn)行挖礦?A、powB、dposC、poaD、pos4、區(qū)塊鏈技術(shù)在不斷發(fā)展,其演進(jìn)過程可以分為三個(gè)階段,區(qū)塊鏈3.0是指()。A、可編程社會(huì)B、可編程金融C、可編程貨幣D、以上選項(xiàng)都不是5、共識(shí)層用來(lái)解決網(wǎng)絡(luò)節(jié)點(diǎn)的共識(shí)問題,通過()的方式保持節(jié)點(diǎn)一致性A、PowB、DposC、PBFTD、POP6、以太坊編輯器remix下的部著代碼的作用是什么?A、將合約上鏈B、將合約編譯C、將合約進(jìn)行預(yù)處理D、將合約進(jìn)行賦值7、去中心化的三個(gè)優(yōu)點(diǎn)不包括?A、防篡改性B、容錯(cuò)性C、抗攻擊性D、抗勾結(jié)性8、數(shù)據(jù)元的唯一標(biāo)識(shí)被稱作為A、標(biāo)識(shí)符B、元代碼C、元號(hào)D、元區(qū)塊9、區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點(diǎn)包括()。A、計(jì)算機(jī)B、事件C、交易IDD、記錄10、Dpos是一種區(qū)塊鏈的共識(shí)算法.那么它的專業(yè)術(shù)語(yǔ)是以下哪個(gè)?A、工作量證明機(jī)制B、權(quán)益證明機(jī)制C、股份授權(quán)證明機(jī)制D、容量證明11、非對(duì)稱加密包含()密鑰,分別是()?A、一個(gè),公鑰B、一個(gè),私鑰C、兩個(gè),公鑰、密鑰D、兩個(gè),公鑰、私鑰12、普通節(jié)點(diǎn)根據(jù)所承擔(dān)的角色又可以分為記賬節(jié)點(diǎn)、________、主節(jié)點(diǎn)和錨節(jié)點(diǎn)。A、模擬節(jié)點(diǎn)B、背書節(jié)點(diǎn)C、排序節(jié)點(diǎn)D、審查節(jié)點(diǎn)13、在區(qū)塊鏈上向某一個(gè)人轉(zhuǎn)賬時(shí)需要獲取這個(gè)人的什么?A、地址B、私鑰C、賬號(hào)D、姓名14、在組織的搭建中,節(jié)點(diǎn)是發(fā)起業(yè)務(wù)交易、存儲(chǔ)通道賬本、背書交易、驗(yàn)證區(qū)塊等核心功能的主體,在聯(lián)盟鏈中扮演著不可替代的作用,請(qǐng)判斷出節(jié)點(diǎn)有哪些類型?A、輕節(jié)點(diǎn)、全節(jié)點(diǎn)、超級(jí)節(jié)點(diǎn)、挖礦節(jié)點(diǎn)B、記賬節(jié)點(diǎn)、主節(jié)點(diǎn)、背書節(jié)點(diǎn)、錨節(jié)點(diǎn)C、輕節(jié)點(diǎn)、全節(jié)點(diǎn)、背書節(jié)點(diǎn)、挖礦節(jié)點(diǎn)D、記賬節(jié)點(diǎn)、挖礦節(jié)點(diǎn)、背書節(jié)點(diǎn)、全節(jié)點(diǎn)15、節(jié)點(diǎn)編號(hào)文件在哪個(gè)文件下生成?A、配置文件B、數(shù)據(jù)文件C、日志文件D、公鏈文件16、"以下函數(shù)的可見性是?functionadd()privateviewreturns(uint){returna+uint(b);}"A、內(nèi)部及派生合約B、內(nèi)部及外部C、內(nèi)部D、外部17、Solidity中msg.sender表示()A、當(dāng)前調(diào)用數(shù)據(jù)B、當(dāng)前消息所附帶的金額C、當(dāng)前區(qū)塊的基礎(chǔ)費(fèi)用D、當(dāng)前調(diào)用發(fā)起人的地址18、整數(shù)類型int默認(rèn)值為()A、0B、0.0C、1D、1.0如果想要在外部包中使用全局變量,則全局變量必須()A、首字母必須大寫B(tài)、首字母必須小寫必須加上const關(guān)鍵字D、必須加上var關(guān)鍵詞保存在全局命名空間的變量是()全局變量B、局部變量C、函數(shù)參數(shù)D、狀態(tài)變量溯源應(yīng)用總體架構(gòu)分為五個(gè)層級(jí)結(jié)構(gòu),其中不包括的是?A、應(yīng)用層B、服務(wù)層C、基礎(chǔ)層D、生態(tài)層22、在Go語(yǔ)言編輯器中單行注釋的快捷鍵是什么()A、Ctrl+/B、Ctrl+Shift+/C、Ctrl+CD、Ctrl+D23、"解釋代碼中的變量對(duì)應(yīng)于哪個(gè)內(nèi)存區(qū)域:contractMyContract{uintcount;uint[]totalPoints;}"A、StorageB、MemoryC、CalldataD、Stack24、關(guān)于邏輯運(yùn)算符||下列說法正確的是()A、如果兩邊的操作數(shù)都是True,則條件True,否則為False。B、如果兩邊的操作數(shù)有一個(gè)True,則條件True,否則為False。C、如果條件為True,則邏輯NOT條件False,否則為True。D、如果兩邊的操作數(shù)都是True,則條件Fasle,否則為True。25、一段給定時(shí)間內(nèi)發(fā)生的事務(wù)處理結(jié)果持久化成塊鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)屬于區(qū)塊鏈的()數(shù)據(jù)類型。A、賬戶數(shù)據(jù)B、區(qū)塊數(shù)據(jù)C、事務(wù)數(shù)據(jù)D、合約數(shù)據(jù)二、多選題1、區(qū)塊鏈?zhǔn)且粋€(gè)去中心化運(yùn)行的共享數(shù)據(jù)庫(kù),以數(shù)學(xué)難題為基礎(chǔ),使用非對(duì)稱加密算法來(lái)保證數(shù)據(jù)的安全性.存儲(chǔ)在其中的數(shù)據(jù)或信息.有以下哪些特征?A、不可偽造B、可追溯C、公開透明D、集體維護(hù)2、區(qū)塊鏈即由一個(gè)個(gè)區(qū)塊組成的鏈。每個(gè)區(qū)塊分為()A、區(qū)塊頭B、區(qū)塊體C、區(qū)塊鏈D、賬本3、區(qū)塊鏈技術(shù)上要有三個(gè)關(guān)鍵點(diǎn)是()A、采用非對(duì)稱加密來(lái)做數(shù)據(jù)簽名B、任何人都可以參與C、共識(shí)算法D、以鏈?zhǔn)絽^(qū)塊的方式來(lái)存儲(chǔ)4、在Metamask瀏覽器插件中.我們用remix測(cè)試完合約后需要將合約部署在測(cè)試鏈上.以下哪些網(wǎng)絡(luò)可以領(lǐng)取測(cè)試使用的ETH?A、以太坊主網(wǎng)絡(luò)B、Ropsten測(cè)試網(wǎng)絡(luò)C、Kovan測(cè)試網(wǎng)絡(luò)D、Rinkeby測(cè)試網(wǎng)絡(luò)區(qū)塊鏈的四個(gè)特征是A、去中心化B、去信任C、集體維護(hù)D、可靠數(shù)據(jù)庫(kù)關(guān)于package包,下面說法正確的是()main包是Go語(yǔ)言程序的入口包。如果一個(gè)程序沒有main包,也能編譯成功。一個(gè)Go語(yǔ)言程序必須有且僅有一個(gè)main包。D、一個(gè)main包中也必須有且僅有一個(gè)main函數(shù)。7、下列關(guān)于關(guān)鍵詞解釋中說法正確的是()A、func:用于定義函數(shù)和方法B、var和const:變量和常量的聲明C、struct:用于定義抽象數(shù)據(jù)類型D、map用于聲明自定義類型8、下列關(guān)于關(guān)系運(yùn)算符正確的有()A、==:檢查兩個(gè)值是否相等,如果相等返回True否則返回False。B、!=:檢查兩個(gè)值是否不相等,如果不相等返回True否則返回False。C、>=:檢查左邊值是否大于等于右邊值,如果是返回True否則返回False。D、<=:檢查左邊值是否小于等于右邊值,如果是返回True否則返回False。9、區(qū)塊鏈技術(shù)帶來(lái)的價(jià)值包括(

)。A、提高業(yè)務(wù)效率B、降低拓展成本C、增強(qiáng)監(jiān)管能力D、創(chuàng)造合作機(jī)制10、哈希函數(shù)有3個(gè)重要的性質(zhì),下面包含在內(nèi)的是?A、抗碰撞性B、原像不可逆C、不可逆加密D、難題友好性三、判斷題1、客戶端、對(duì)等點(diǎn)、排序服務(wù)節(jié)點(diǎn)是節(jié)點(diǎn)的三種類型()對(duì)錯(cuò)公有鏈?zhǔn)侨魏稳硕疾豢梢詫懭牒驮L問的數(shù)據(jù)。()對(duì)錯(cuò)在區(qū)塊鏈上,我所有的數(shù)據(jù)都必須公開,無(wú)法進(jìn)行加密或者權(quán)限控制。對(duì)錯(cuò)私有鏈?zhǔn)侵笇?duì)全部人可見,并且可以進(jìn)行修改的。()對(duì)錯(cuò)哈希值通常用一個(gè)短的隨機(jī)字母和數(shù)字組成的字符串來(lái)代表。對(duì)錯(cuò)一個(gè)函數(shù)被調(diào)用后,返回給調(diào)用處的執(zhí)行結(jié)果,叫做函數(shù)的返回值。對(duì)錯(cuò)Go語(yǔ)言數(shù)組是具有相同類型的?組?度固定的數(shù)據(jù)序列。對(duì)錯(cuò)Solidity是靜態(tài)類型的語(yǔ)言。對(duì)錯(cuò)將多個(gè)合約定義放入單個(gè)Solidity文件中是完全正確的。對(duì)錯(cuò)隨著區(qū)塊鏈的持續(xù)應(yīng)用,區(qū)塊鏈數(shù)據(jù)的大小一直在增長(zhǎng),這種不斷增長(zhǎng)的現(xiàn)象稱為容量貪吃蛇。對(duì)錯(cuò)Go:區(qū)塊鏈技術(shù)代碼實(shí)現(xiàn)1、Go:bool類型題Go:bool類型題7分關(guān)系運(yùn)算符也叫比較運(yùn)算符,在Go語(yǔ)言中,關(guān)系運(yùn)算符的結(jié)果都是bool型,也就是運(yùn)算的結(jié)果要么是ture,要么是false任務(wù)要求:

1、請(qǐng)根據(jù)a,b對(duì)應(yīng)的值,完成下面表格的填寫

2、填寫完成后,請(qǐng)點(diǎn)擊保存按鈕,完成試題的填寫Go:hash的運(yùn)算Go:hash的運(yùn)算8分通過Go語(yǔ)言實(shí)現(xiàn)hash加密,學(xué)生能夠了解hash的生成過程以及其中的數(shù)據(jù)流轉(zhuǎn),字符加密,認(rèn)知到hash傳動(dòng)的數(shù)據(jù)流程線。任務(wù)要求:

1、請(qǐng)根據(jù)題干要求,通過Go語(yǔ)言完成試題

2、填寫完成后,請(qǐng)點(diǎn)擊保存按鈕,完成試題的填寫

3、請(qǐng)把你編寫的代碼,保存到下面代碼編輯器中,作為代碼數(shù)據(jù)的留存。”知鏈科技“四個(gè)字進(jìn)行md4加密之后的hash(string類型)是多少

_________題目B:"區(qū)塊鏈-人才培養(yǎng)搖籃"(string類型),三個(gè)字通過sha256類型下224類型下加密后hash值(string類型)是_________。Go:算數(shù)運(yùn)算符Go:算數(shù)運(yùn)算符8分在go語(yǔ)言中,通過算術(shù)運(yùn)算符的特性(只對(duì)數(shù)值類型的變量進(jìn)行運(yùn)算)將初始化賦值的變量進(jìn)行算術(shù)運(yùn)算,得到新的數(shù)值賦值給臨時(shí)變量,并存儲(chǔ)到新地址中從而完成整個(gè)計(jì)算

任務(wù)要求:

1、請(qǐng)根據(jù)題干要求,通過Go語(yǔ)言完成試題

2、填寫完成后,請(qǐng)點(diǎn)擊保存按鈕,完成試題的填寫

3、請(qǐng)把你編寫的代碼,保存到下面代碼編輯器中,作為代碼數(shù)據(jù)的留存。正整數(shù)從100到200(100-200)偶數(shù)有多少個(gè)_________?2、正整數(shù)從100到200(100-200)不能被3整除的數(shù)的和是多少_________4、Go:時(shí)間的轉(zhuǎn)換Go:時(shí)間的轉(zhuǎn)換7.5分時(shí)間戳Go語(yǔ)言中time包為我們提供了一個(gè)數(shù)據(jù)類型time.Time(作為值使用)以及顯示和測(cè)量時(shí)間和日期的功能函數(shù)。

任務(wù)要求:

1、請(qǐng)根據(jù)題干要求,通過Go語(yǔ)言完成試題

2、填寫完成后,請(qǐng)點(diǎn)擊保存按鈕,完成試題的填寫

3、請(qǐng)把你編寫的代碼,保存到下面代碼編輯器中,作為代碼數(shù)據(jù)的留存。請(qǐng)把當(dāng)前時(shí)間戳1666002176,轉(zhuǎn)化時(shí)間是多少(必須輸入數(shù)字),年_________?月_________?日_________?時(shí)_________?分_________?秒_________?題目B:時(shí)間戳(1663012276)與時(shí)間戳(1638413573),請(qǐng)計(jì)算兩個(gè)時(shí)間戳之間相差的

_________日。5、Go:區(qū)塊鏈UTXO交易模型Go:區(qū)塊鏈UTXO交易模型8.5分區(qū)塊鏈的交易模型也簡(jiǎn)稱為UTXO(unspenttransactionoutput),全稱是未花費(fèi)的交易輸出,一次交易如果有余額,就有未花費(fèi)的交易輸出,如果沒有余額,那么交易輸入中存的就都是已花費(fèi)的交易輸出。所以,所有未花費(fèi)的交易輸出加起來(lái),就是當(dāng)前賬戶的余額。題目要求:

1、已經(jīng)提供了A、B、C、D的區(qū)塊鏈錢包地址

2、請(qǐng)根據(jù)下方交易的類型,填寫UTXO模型內(nèi)容A錢包地址:B錢包地址:C錢包地址:D錢包地址:1MJCRVk83vZD6RZ53xtpNHdwJNe46V38F814ZM3zX72hirAwqHY2RV5YwdJRTzEjkJqS1KZfqmKLUCEkSrs1QdUVkqWFjmVVBZKxay1GhBFsMTSg3BVbUoEzguuVv8LLS4XCwHmh第一筆交易:D打包記賬獲得30第二筆交易:C打包記賬獲得50第三筆交易:D轉(zhuǎn)賬給C10交易ID:TXid1交易ID:TXid2交易ID:TXid36、Go:區(qū)塊鏈MerkleTreeGo:區(qū)塊鏈MerkleTree13分任務(wù)說明:Merkle根,是由區(qū)塊主體中所有交易的哈希值再逐級(jí)兩兩哈希計(jì)算出來(lái)的一個(gè)數(shù)值,用于檢驗(yàn)一筆交易是否在這個(gè)區(qū)塊中存在。Merkle是一種二叉樹,由一組葉子結(jié)點(diǎn)、一組中間節(jié)點(diǎn)和一個(gè)根節(jié)點(diǎn)構(gòu)成,根據(jù)默克爾樹的構(gòu)建特性和原理分析,完成下方Merkle二叉樹的模型。7、Go:區(qū)塊鏈編碼算法Go:區(qū)塊鏈編碼算法10分算法在區(qū)塊鏈中普遍應(yīng)用任務(wù)要求:

1、請(qǐng)根據(jù)題干要求,通過Go語(yǔ)言完成試題

2、填寫完成后,請(qǐng)點(diǎn)擊保存按鈕,完成試題的填寫

3、請(qǐng)把你編寫的代碼,保存到下面代碼編輯器中,作為代碼數(shù)據(jù)的留存。Base58是一種基于文本的二進(jìn)制編碼,安裝base58標(biāo)準(zhǔn)包命令是:_______。2、msg:="知鏈科技",通過base58編碼以后的值是_______。8、Go:區(qū)塊鏈存儲(chǔ)文件Go:區(qū)塊鏈存儲(chǔ)文件16分通過區(qū)塊鏈存儲(chǔ)機(jī)制了解區(qū)塊鏈存儲(chǔ)機(jī)制的多樣化方法以及在其中的結(jié)構(gòu)本質(zhì),認(rèn)知到區(qū)塊鏈存儲(chǔ)機(jī)制的實(shí)現(xiàn)過程。

1、請(qǐng)下載本題提供的源碼

2、打開編輯器,閱讀并補(bǔ)全源碼,并運(yùn)行區(qū)塊鏈存儲(chǔ)文件源碼,其中BlockChain.dat存儲(chǔ)了區(qū)塊鏈的區(qū)塊信息

3、請(qǐng)解析區(qū)塊鏈的區(qū)塊信息,回答以下問題

4、請(qǐng)把補(bǔ)全的核心代碼粘貼到下方代碼區(qū),作為代碼留存試題A:請(qǐng)下載本試題提供的試題源碼壓縮包文件,回答下面問題當(dāng)前文件中,存儲(chǔ)區(qū)塊鏈文件的文件名字是__________________。區(qū)塊鏈(Block)結(jié)構(gòu)體中,區(qū)塊Hash(Hash)數(shù)據(jù)類型格式是____________。試題B:請(qǐng)根據(jù)提供的試題源碼,補(bǔ)充部分源碼,解析區(qū)塊鏈存儲(chǔ)文件,回答一下問題要想解析區(qū)塊鏈存儲(chǔ)文件,需要先打包go文件,下面哪個(gè)命令可以進(jìn)行打包,并生成運(yùn)行文件________________________。2、在osCli.go文件中,打印區(qū)塊鏈命令是______________________________。9、Go:RSA算法Go:RSA算法10分非對(duì)稱加密算法指加密和解密使用不同密鑰的加密算法,也稱為公私鑰加密。

RSA是目前計(jì)算機(jī)密碼學(xué)中最經(jīng)典算法,也是目前為止使用最廣泛的數(shù)字簽名算法,RSA數(shù)字簽名算法的密鑰實(shí)現(xiàn)與RSA的加密算法是一樣的,算法的名稱都叫RSA。題目要求:

1、請(qǐng)下載本題提供的源碼壓縮包

2、文件壓縮包里面包含公鑰私鑰文件

3、請(qǐng)使用私鑰公鑰文件,回答下面問題

4、請(qǐng)把補(bǔ)全的核心代碼粘貼到下方代碼區(qū),作為代碼留存同學(xué)A通過私鑰數(shù)字簽名得到了簽名信息:

signMsg:="EtP98oXA120RKU/NBYAk0pkdo2PrSbJA6NTYVPYQzPjm+PN6aaRqSkAtuw8mkGvnVBTppS2DJPSHp66CnvJQ2A=="

同學(xué)B接受拿到了明文信息:

forMsg:="區(qū)塊鏈人才"請(qǐng)問B同學(xué)通過公鑰驗(yàn)簽,驗(yàn)證結(jié)果是_________________

請(qǐng)下載本試題提供的源碼回答下面問題:請(qǐng)問源碼文件中,私鑰是_________________文件。請(qǐng)問源碼文件中,公鑰是_________________文件。10、Go:區(qū)塊鏈錢包地址Go:區(qū)塊鏈錢包地址12分任務(wù)說明:公鑰和私鑰公鑰加密技術(shù)中,公鑰和私鑰成對(duì)出現(xiàn),公鑰加密的東西可以拿私鑰解開,私鑰加密的東西可以用公鑰解開。兩者的關(guān)系,大家可以想象成一個(gè)帶鎖的盒子和一把鑰匙之間的關(guān)系。這個(gè)特性用來(lái)加密和簽名。錢包地址的生成區(qū)塊鏈?zhǔn)澜鐜讉€(gè)關(guān)鍵的信息是按照這個(gè)順序生成的:先生成私鑰,再由私鑰算出公鑰,再由公鑰經(jīng)過一系列哈希算出錢包地址。任務(wù)要求:

1、請(qǐng)根據(jù)題干要求,通過Go語(yǔ)言完成試題

2、填寫完成后,請(qǐng)點(diǎn)擊保存按鈕,完成試題的填寫

3、請(qǐng)把你編寫的代碼,保存到下面代碼編輯器中,作為代碼數(shù)據(jù)的留存。區(qū)塊鏈錢包地址生成算法:先生成___________,再由___________算出___________,再由___________經(jīng)過一系列哈希算出___________。五、智能合約實(shí)戰(zhàn)1、編寫智能合約題目描述:根據(jù)開發(fā)文檔分析ItemSharing.sol文件中的智能合約,在正確的位置填寫代碼實(shí)現(xiàn)物品共享合約,將結(jié)果保存上傳到考試平臺(tái)并編譯智能合約。某公司打算開發(fā)區(qū)塊鏈物品共享系統(tǒng),該系統(tǒng)主要提供出租者可以共享物品數(shù)據(jù),租借者也可以進(jìn)行租借及歸還,在進(jìn)行系統(tǒng)開發(fā)時(shí),需要完成合約的編寫與編譯。任務(wù)要求:以下是物品共享合約要實(shí)現(xiàn)的功能,請(qǐng)根據(jù)“開發(fā)文檔”,在正確的位置填寫代碼實(shí)現(xiàn)物品共享合約,將結(jié)果保存上傳到考試平臺(tái)并編譯智能合約。功能對(duì)應(yīng)名稱上傳新物品setItem租賃物品getItem歸還物品returnIte查詢商品idgetItemToName獲得租借信息getItemToId獲得起始租借時(shí)間getReturnTime獲得物品數(shù)量getTheNum獲得物品信息getTheItem獲得租借人信息getRenter1______________>=0.0.0;23_______ItemSharing{445addresspublicowner;//合約所有者67//租借人信息8structrenter{9addresspayablearr;//租借人地址10uintleasetime;//租借時(shí)間11}12?13//物品信息14structitem{15addresspayablecreate;//創(chuàng)建人地址16stringitemName;//物品名稱17uintitemPrice;//物品價(jià)格18uintitemDeposit;//物品租賃費(fèi)用19bytesitemHash;//物品哈希20renterren;//租借人信息21boolynren;//是否被租借22}23?24uint[]itemids;//物品列表25uintitemNum;//物品數(shù)量26?27item[]items;//存儲(chǔ)物品28mapping(string=>uint)nameToid;//姓名對(duì)應(yīng)id2930?31//初始化合約所有者地址為合約調(diào)用者地址32constructor(){33owner=_______;34}35?36//上傳新物品37functionsetItem(stringmemoryitemName,uintitemPrice,uintitemDeposit,bytesmemoryitemHash)publicreturns(uint){38//生成物品,保存新物品的物品信息39______________newItem;40newItem.create=msg.sender;41newItem.itemName=_______;42newItem.itemPrice=itemPrice;43newItem.itemDeposit=itemDeposit;44newItem.itemHash=itemHash;45newItem.ynren=false;46?47//存儲(chǔ)物品姓名、id及數(shù)量48items.push(newItem);49itemids.push(_______);50nameToid[itemName]=itemNum;51itemNum++;52?53returnitemNum;54}55?56//租賃物品57functiongetItem(uintid,addresspayableren,uintdatetamp)publicpayablereturns(bool){58?59itemmemorytemp=items[id];60?61if(temp.ynren)62returnfalse;63if(temp.create==ren)64returnfalse;65if(ren.balance<temp.itemDeposit)66returnfalse;6768items[id].ynren=_______;69//保存租借人、租借時(shí)間、物品押金70items[id].ren.leasetime=datetamp;71items[id].ren.leasetime=datetamp;72?73items[id].ren.arr.transfer(temp.itemDeposit);74?75returntrue;76}77?78//歸還物品79functionreturnItem(uintid,addresspayableren)publicpayablereturns(bool){80?81itemmemorytemp=items[id];82?83if(!temp.ynren)84return_______;8586items[id].ynren=false;87items[id].ren.arr=ren;88?89items[id].ren.leasetime=0;90?91items[id].create.transfer(msg.value);92items[id].ren.arr.transfer(temp.itemDeposit-msg.value);93?94returntrue;95}96?97//根據(jù)商品名稱查詢商品id98functiongetItemToName(_____________________)publicviewreturns(uint){99returnnameToid[name];100}101?102//根據(jù)商品id獲得租借信息103functiongetItemToId(uintid)publicviewreturns(bool){104returnitems[id].ynren;105}106?107//根據(jù)商品id獲得起始租借時(shí)間108functiongetReturnTime(uintid)publicviewreturns(uint){109if(!items[id].ynren)110return0;111returnblock.timestamp-items[id].ren.leasetime;112}113?114//獲得物品數(shù)量115functiongetItemNum()publicviewreturns(uint){116_____________________117}118?119//根據(jù)物品id獲得物品信息120functiongetTheItem(______________)publicviewreturns(uint,address,stringmemory,uint,uint,bytesmemory,bool){121return(id,items[id].create,items[id].itemName,items[id].itemPrice,items[id].itemDeposit,items[id].itemHash,items[id].ynren);122}123?124//根據(jù)物品id獲得租借人信息125functiongetRenter(uintid)publicviewreturns(uint,_______,uint){126return(id,items[id].ren.arr,items[id].ren.leasetime);127}128}2、部署智能合約題目描述:根據(jù)智能合約源碼及下方提示文字填寫初始化參數(shù),完成智能合約的部署。智能合約在開發(fā)完成后,需要部署才能上鏈。智能合約部署到百度超級(jí)鏈中時(shí)需要初始化參數(shù)。任務(wù)要求:在進(jìn)行合約部署上鏈時(shí),需要填寫合約的初始化參數(shù),請(qǐng)通過對(duì)智能合約源碼的解讀,填寫物品共享合約的初始化參數(shù),完成合約的部署上鏈。3、調(diào)用智能合約題目描述:根據(jù)開發(fā)文檔分析并補(bǔ)全XuperChainApiController.java文件中的調(diào)用代碼,將結(jié)果保存上傳到考試平臺(tái)并編譯運(yùn)行代碼,啟動(dòng)智能合約調(diào)用界面,實(shí)現(xiàn)智能合約的運(yùn)行。為了在鏈上調(diào)用智能合約,需要讀取智能合約的狀態(tài)、數(shù)據(jù)等,最終調(diào)用合約的方法。任務(wù)要求:當(dāng)調(diào)用智能合約時(shí),要求從導(dǎo)入信息、調(diào)用接口、賬戶keys等幾個(gè)方面的信息實(shí)現(xiàn)智能合約的調(diào)用,參考以下表格完成智能合約調(diào)用代碼的實(shí)現(xiàn),將結(jié)果保存上傳到考試平臺(tái)并編譯運(yùn)行代碼,啟動(dòng)智能合約調(diào)用界面,實(shí)現(xiàn)智能合約的運(yùn)行。功能詳情KEYS_PATHsrc/main/resources/keysCODE_PATHsrc/main/resources/contract/CLIENT_URL:37101調(diào)用錄入文件信息的接口addContractInterface調(diào)用查詢文件信息的接口queryContractInterface1package.api;2?3importcom.baidu.xuper.api.Account;4importcom.baidu.xuper.api.Transaction;5importcom.baidu.xuper.api.XuperClient;6importnet.sf.json.JSONObject;7importmons.logging.Log;8importmons.logging.LogFactory;9importorg.springframework.stereotype.Controller;10importorg.springframework.web.bind.annotation.RequestMapping;11importorg.springframework.web.bind.annotation.RequestMethod;12importorg.springframework.web.bind.annotation.RequestParam;13importorg.springframework.web.bind.annotation.ResponseBody;1415importjava.math.BigInteger;16importjava.util.HashMap;17importjava.util.Map;1819@Controller20@RequestMapping("/xuperChainApiController")21publicclassXuperChainApiController{2223privatestaticfinalLoglog=LogFactory.getLog(XuperChainApiController.class);24//導(dǎo)入日志25publicstaticfinalStringKEYS_PATH=____________;26publicstaticfinalStringCONTRACT_ACCOUNT="XC2022081600000001@xuper";27publicstaticfinalStringCODE_PATH=____________;28publicstaticfinalStringCLIENT_URL=____________;29//調(diào)用上傳新物品的接口30@RequestMapping(value=____________,method=RequestMethod.POST,produces="application/json;charset=utf-8")31@ResponseBody32publicMap<String,Object>addContractInterface(@RequestParamJSONObjectparameterJson){33Map<String,Object>resultMap=newHashMap<>();34try{35XuperClientclient=newXuperClient(CLIENT_URL);3637//導(dǎo)入合約賬戶的kyes38Accountaccount=Account.create(KEYS_PATH);39account.setContractAccount(CONTRACT_ACCOUNT);40//解析請(qǐng)求參數(shù)41Map<String,String>contractParams=JSONObject.fromObject(parameterJson);424344TransactioninvokeTx=client.invokeEVMContract(____________,____________,____________,____________,____________);45resultMap.put("code",200);46resultMap.put("data",invokeTx.getContractResponse().getBodyStr());47resultMap.put("message","添加成功");48}catch(Exceptione){49log.error("操作失敗",e);50resultMap.put("code",500);51resultMap.put("message",e.getMessage());52returnresultMap;53}54returnresultMap;55}5657//調(diào)用租賃新物品的接口58@RequestMapping(value="/addContractInterface",method=RequestMethod.POST,produces="application/json;charset=utf-8")59@ResponseBody60publicMap<String,Object>addContractInterface(@RequestParamJSONObjectparameterJson){61Map<String,Object>resultMap=newHashMap<>();62try{63XuperClientclient=newXuperClient(CLIENT_URL);64?65//導(dǎo)入合約賬戶的kyes66Accountaccount=Account.create(KEYS_PATH);67account.setContractAccount(CONTRACT_ACCOUNT);68//解析請(qǐng)求參數(shù)69Map<String,String>contractParams=JSONObject.fromObject(parameterJson);707172TransactioninvokeTx=client.invokeEVMContract(____________,____________,____________,____________,____________);73

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論