2023年全省职业院校技能大赛高职学生组-区块链技术与应用-样题样本二_第1页
2023年全省职业院校技能大赛高职学生组-区块链技术与应用-样题样本二_第2页
2023年全省职业院校技能大赛高职学生组-区块链技术与应用-样题样本二_第3页
2023年全省职业院校技能大赛高职学生组-区块链技术与应用-样题样本二_第4页
2023年全省职业院校技能大赛高职学生组-区块链技术与应用-样题样本二_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单选题运用()技术,可以在保证数据安全的前提下解决数据孤岛问题。A、移动互联网B、区块链C、互联网D、电子货币2、在区块链技术中,数据以何种方式永久存储。A、链条方式B、区块方式C、加密方式D、分散方式3、以太坊主网在刚开始运行发布的时候的是以下哪种共识机制进行挖矿?A、powB、dposC、poaD、pos4、区块链技术在不断发展,其演进过程可以分为三个阶段,区块链3.0是指()。A、可编程社会B、可编程金融C、可编程货币D、以上选项都不是5、共识层用来解决网络节点的共识问题,通过()的方式保持节点一致性A、PowB、DposC、PBFTD、POP6、以太坊编辑器remix下的部著代码的作用是什么?A、将合约上链B、将合约编译C、将合约进行预处理D、将合约进行赋值7、去中心化的三个优点不包括?A、防篡改性B、容错性C、抗攻击性D、抗勾结性8、数据元的唯一标识被称作为A、标识符B、元代码C、元号D、元区块9、区块链网络中的节点包括()。A、计算机B、事件C、交易IDD、记录10、Dpos是一种区块链的共识算法.那么它的专业术语是以下哪个?A、工作量证明机制B、权益证明机制C、股份授权证明机制D、容量证明11、非对称加密包含()密钥,分别是()?A、一个,公钥B、一个,私钥C、两个,公钥、密钥D、两个,公钥、私钥12、普通节点根据所承担的角色又可以分为记账节点、________、主节点和锚节点。A、模拟节点B、背书节点C、排序节点D、审查节点13、在区块链上向某一个人转账时需要获取这个人的什么?A、地址B、私钥C、账号D、姓名14、在组织的搭建中,节点是发起业务交易、存储通道账本、背书交易、验证区块等核心功能的主体,在联盟链中扮演着不可替代的作用,请判断出节点有哪些类型?A、轻节点、全节点、超级节点、挖矿节点B、记账节点、主节点、背书节点、锚节点C、轻节点、全节点、背书节点、挖矿节点D、记账节点、挖矿节点、背书节点、全节点15、节点编号文件在哪个文件下生成?A、配置文件B、数据文件C、日志文件D、公链文件16、"以下函数的可见性是?functionadd()privateviewreturns(uint){returna+uint(b);}"A、内部及派生合约B、内部及外部C、内部D、外部17、Solidity中msg.sender表示()A、当前调用数据B、当前消息所附带的金额C、当前区块的基础费用D、当前调用发起人的地址18、整数类型int默认值为()A、0B、0.0C、1D、1.0如果想要在外部包中使用全局变量,则全局变量必须()A、首字母必须大写B、首字母必须小写必须加上const关键字D、必须加上var关键词保存在全局命名空间的变量是()全局变量B、局部变量C、函数参数D、状态变量溯源应用总体架构分为五个层级结构,其中不包括的是?A、应用层B、服务层C、基础层D、生态层22、在Go语言编辑器中单行注释的快捷键是什么()A、Ctrl+/B、Ctrl+Shift+/C、Ctrl+CD、Ctrl+D23、"解释代码中的变量对应于哪个内存区域:contractMyContract{uintcount;uint[]totalPoints;}"A、StorageB、MemoryC、CalldataD、Stack24、关于逻辑运算符||下列说法正确的是()A、如果两边的操作数都是True,则条件True,否则为False。B、如果两边的操作数有一个True,则条件True,否则为False。C、如果条件为True,则逻辑NOT条件False,否则为True。D、如果两边的操作数都是True,则条件Fasle,否则为True。25、一段给定时间内发生的事务处理结果持久化成块链式数据结构属于区块链的()数据类型。A、账户数据B、区块数据C、事务数据D、合约数据二、多选题1、区块链是一个去中心化运行的共享数据库,以数学难题为基础,使用非对称加密算法来保证数据的安全性.存储在其中的数据或信息.有以下哪些特征?A、不可伪造B、可追溯C、公开透明D、集体维护2、区块链即由一个个区块组成的链。每个区块分为()A、区块头B、区块体C、区块链D、账本3、区块链技术上要有三个关键点是()A、采用非对称加密来做数据签名B、任何人都可以参与C、共识算法D、以链式区块的方式来存储4、在Metamask浏览器插件中.我们用remix测试完合约后需要将合约部署在测试链上.以下哪些网络可以领取测试使用的ETH?A、以太坊主网络B、Ropsten测试网络C、Kovan测试网络D、Rinkeby测试网络区块链的四个特征是A、去中心化B、去信任C、集体维护D、可靠数据库关于package包,下面说法正确的是()main包是Go语言程序的入口包。如果一个程序没有main包,也能编译成功。一个Go语言程序必须有且仅有一个main包。D、一个main包中也必须有且仅有一个main函数。7、下列关于关键词解释中说法正确的是()A、func:用于定义函数和方法B、var和const:变量和常量的声明C、struct:用于定义抽象数据类型D、map用于声明自定义类型8、下列关于关系运算符正确的有()A、==:检查两个值是否相等,如果相等返回True否则返回False。B、!=:检查两个值是否不相等,如果不相等返回True否则返回False。C、>=:检查左边值是否大于等于右边值,如果是返回True否则返回False。D、<=:检查左边值是否小于等于右边值,如果是返回True否则返回False。9、区块链技术带来的价值包括(

)。A、提高业务效率B、降低拓展成本C、增强监管能力D、创造合作机制10、哈希函数有3个重要的性质,下面包含在内的是?A、抗碰撞性B、原像不可逆C、不可逆加密D、难题友好性三、判断题1、客户端、对等点、排序服务节点是节点的三种类型()对错公有链是任何人都不可以写入和访问的数据。()对错在区块链上,我所有的数据都必须公开,无法进行加密或者权限控制。对错私有链是指对全部人可见,并且可以进行修改的。()对错哈希值通常用一个短的随机字母和数字组成的字符串来代表。对错一个函数被调用后,返回给调用处的执行结果,叫做函数的返回值。对错Go语言数组是具有相同类型的⼀组⻓度固定的数据序列。对错Solidity是静态类型的语言。对错将多个合约定义放入单个Solidity文件中是完全正确的。对错随着区块链的持续应用,区块链数据的大小一直在增长,这种不断增长的现象称为容量贪吃蛇。对错Go:区块链技术代码实现1、Go:bool类型题Go:bool类型题7分关系运算符也叫比较运算符,在Go语言中,关系运算符的结果都是bool型,也就是运算的结果要么是ture,要么是false任务要求:

1、请根据a,b对应的值,完成下面表格的填写

2、填写完成后,请点击保存按钮,完成试题的填写Go:hash的运算Go:hash的运算8分通过Go语言实现hash加密,学生能够了解hash的生成过程以及其中的数据流转,字符加密,认知到hash传动的数据流程线。任务要求:

1、请根据题干要求,通过Go语言完成试题

2、填写完成后,请点击保存按钮,完成试题的填写

3、请把你编写的代码,保存到下面代码编辑器中,作为代码数据的留存。”知链科技“四个字进行md4加密之后的hash(string类型)是多少

_________题目B:"区块链-人才培养摇篮"(string类型),三个字通过sha256类型下224类型下加密后hash值(string类型)是_________。Go:算数运算符Go:算数运算符8分在go语言中,通过算术运算符的特性(只对数值类型的变量进行运算)将初始化赋值的变量进行算术运算,得到新的数值赋值给临时变量,并存储到新地址中从而完成整个计算

任务要求:

1、请根据题干要求,通过Go语言完成试题

2、填写完成后,请点击保存按钮,完成试题的填写

3、请把你编写的代码,保存到下面代码编辑器中,作为代码数据的留存。正整数从100到200(100-200)偶数有多少个_________?2、正整数从100到200(100-200)不能被3整除的数的和是多少_________4、Go:时间的转换Go:时间的转换7.5分时间戳Go语言中time包为我们提供了一个数据类型time.Time(作为值使用)以及显示和测量时间和日期的功能函数。

任务要求:

1、请根据题干要求,通过Go语言完成试题

2、填写完成后,请点击保存按钮,完成试题的填写

3、请把你编写的代码,保存到下面代码编辑器中,作为代码数据的留存。请把当前时间戳1666002176,转化时间是多少(必须输入数字),年_________?月_________?日_________?时_________?分_________?秒_________?题目B:时间戳(1663012276)与时间戳(1638413573),请计算两个时间戳之间相差的

_________日。5、Go:区块链UTXO交易模型Go:区块链UTXO交易模型8.5分区块链的交易模型也简称为UTXO(unspenttransactionoutput),全称是未花费的交易输出,一次交易如果有余额,就有未花费的交易输出,如果没有余额,那么交易输入中存的就都是已花费的交易输出。所以,所有未花费的交易输出加起来,就是当前账户的余额。题目要求:

1、已经提供了A、B、C、D的区块链钱包地址

2、请根据下方交易的类型,填写UTXO模型内容A钱包地址:B钱包地址:C钱包地址:D钱包地址:1MJCRVk83vZD6RZ53xtpNHdwJNe46V38F814ZM3zX72hirAwqHY2RV5YwdJRTzEjkJqS1KZfqmKLUCEkSrs1QdUVkqWFjmVVBZKxay1GhBFsMTSg3BVbUoEzguuVv8LLS4XCwHmh第一笔交易:D打包记账获得30第二笔交易:C打包记账获得50第三笔交易:D转账给C10交易ID:TXid1交易ID:TXid2交易ID:TXid36、Go:区块链MerkleTreeGo:区块链MerkleTree13分任务说明:Merkle根,是由区块主体中所有交易的哈希值再逐级两两哈希计算出来的一个数值,用于检验一笔交易是否在这个区块中存在。Merkle是一种二叉树,由一组叶子结点、一组中间节点和一个根节点构成,根据默克尔树的构建特性和原理分析,完成下方Merkle二叉树的模型。7、Go:区块链编码算法Go:区块链编码算法10分算法在区块链中普遍应用任务要求:

1、请根据题干要求,通过Go语言完成试题

2、填写完成后,请点击保存按钮,完成试题的填写

3、请把你编写的代码,保存到下面代码编辑器中,作为代码数据的留存。Base58是一种基于文本的二进制编码,安装base58标准包命令是:_______。2、msg:="知链科技",通过base58编码以后的值是_______。8、Go:区块链存储文件Go:区块链存储文件16分通过区块链存储机制了解区块链存储机制的多样化方法以及在其中的结构本质,认知到区块链存储机制的实现过程。

1、请下载本题提供的源码

2、打开编辑器,阅读并补全源码,并运行区块链存储文件源码,其中BlockChain.dat存储了区块链的区块信息

3、请解析区块链的区块信息,回答以下问题

4、请把补全的核心代码粘贴到下方代码区,作为代码留存试题A:请下载本试题提供的试题源码压缩包文件,回答下面问题当前文件中,存储区块链文件的文件名字是__________________。区块链(Block)结构体中,区块Hash(Hash)数据类型格式是____________。试题B:请根据提供的试题源码,补充部分源码,解析区块链存储文件,回答一下问题要想解析区块链存储文件,需要先打包go文件,下面哪个命令可以进行打包,并生成运行文件________________________。2、在osCli.go文件中,打印区块链命令是______________________________。9、Go:RSA算法Go:RSA算法10分非对称加密算法指加密和解密使用不同密钥的加密算法,也称为公私钥加密。

RSA是目前计算机密码学中最经典算法,也是目前为止使用最广泛的数字签名算法,RSA数字签名算法的密钥实现与RSA的加密算法是一样的,算法的名称都叫RSA。题目要求:

1、请下载本题提供的源码压缩包

2、文件压缩包里面包含公钥私钥文件

3、请使用私钥公钥文件,回答下面问题

4、请把补全的核心代码粘贴到下方代码区,作为代码留存同学A通过私钥数字签名得到了签名信息:

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

同学B接受拿到了明文信息:

forMsg:="区块链人才"请问B同学通过公钥验签,验证结果是_________________

请下载本试题提供的源码回答下面问题:请问源码文件中,私钥是_________________文件。请问源码文件中,公钥是_________________文件。10、Go:区块链钱包地址Go:区块链钱包地址12分任务说明:公钥和私钥公钥加密技术中,公钥和私钥成对出现,公钥加密的东西可以拿私钥解开,私钥加密的东西可以用公钥解开。两者的关系,大家可以想象成一个带锁的盒子和一把钥匙之间的关系。这个特性用来加密和签名。钱包地址的生成区块链世界几个关键的信息是按照这个顺序生成的:先生成私钥,再由私钥算出公钥,再由公钥经过一系列哈希算出钱包地址。任务要求:

1、请根据题干要求,通过Go语言完成试题

2、填写完成后,请点击保存按钮,完成试题的填写

3、请把你编写的代码,保存到下面代码编辑器中,作为代码数据的留存。区块链钱包地址生成算法:先生成___________,再由___________算出___________,再由___________经过一系列哈希算出___________。五、智能合约实战1、编写智能合约题目描述:根据开发文档分析ItemSharing.sol文件中的智能合约,在正确的位置填写代码实现物品共享合约,将结果保存上传到考试平台并编译智能合约。某公司打算开发区块链物品共享系统,该系统主要提供出租者可以共享物品数据,租借者也可以进行租借及归还,在进行系统开发时,需要完成合约的编写与编译。任务要求:以下是物品共享合约要实现的功能,请根据“开发文档”,在正确的位置填写代码实现物品共享合约,将结果保存上传到考试平台并编译智能合约。功能对应名称上传新物品setItem租赁物品getItem归还物品returnIte查询商品idgetItemToName获得租借信息getItemToId获得起始租借时间getReturnTime获得物品数量getTheNum获得物品信息getTheItem获得租借人信息getRenter1______________>=0.0.0;23_______ItemSharing{445addresspublicowner;//合约所有者67//租借人信息8structrenter{9addresspayablearr;//租借人地址10uintleasetime;//租借时间11}12​13//物品信息14structitem{15addresspayablecreate;//创建人地址16stringitemName;//物品名称17uintitemPrice;//物品价格18uintitemDeposit;//物品租赁费用19bytesitemHash;//物品哈希20renterren;//租借人信息21boolynren;//是否被租借22}23​24uint[]itemids;//物品列表25uintitemNum;//物品数量26​27item[]items;//存储物品28mapping(string=>uint)nameToid;//姓名对应id2930​31//初始化合约所有者地址为合约调用者地址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//存储物品姓名、id及数量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//保存租借人、租借时间、物品押金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//根据商品名称查询商品id98functiongetItemToName(_____________________)publicviewreturns(uint){99returnnameToid[name];100}101​102//根据商品id获得租借信息103functiongetItemToId(uintid)publicviewreturns(bool){104returnitems[id].ynren;105}106​107//根据商品id获得起始租借时间108functiongetReturnTime(uintid)publicviewreturns(uint){109if(!items[id].ynren)110return0;111returnblock.timestamp-items[id].ren.leasetime;112}113​114//获得物品数量115functiongetItemNum()publicviewreturns(uint){116_____________________117}118​119//根据物品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//根据物品id获得租借人信息125functiongetRenter(uintid)publicviewreturns(uint,_______,uint){126return(id,items[id].ren.arr,items[id].ren.leasetime);127}128}2、部署智能合约题目描述:根据智能合约源码及下方提示文字填写初始化参数,完成智能合约的部署。智能合约在开发完成后,需要部署才能上链。智能合约部署到百度超级链中时需要初始化参数。任务要求:在进行合约部署上链时,需要填写合约的初始化参数,请通过对智能合约源码的解读,填写物品共享合约的初始化参数,完成合约的部署上链。3、调用智能合约题目描述:根据开发文档分析并补全XuperChainApiController.java文件中的调用代码,将结果保存上传到考试平台并编译运行代码,启动智能合约调用界面,实现智能合约的运行。为了在链上调用智能合约,需要读取智能合约的状态、数据等,最终调用合约的方法。任务要求:当调用智能合约时,要求从导入信息、调用接口、账户keys等几个方面的信息实现智能合约的调用,参考以下表格完成智能合约调用代码的实现,将结果保存上传到考试平台并编译运行代码,启动智能合约调用界面,实现智能合约的运行。功能详情KEYS_PATHsrc/main/resources/keysCODE_PATHsrc/main/resources/contract/CLIENT_URL:37101调用录入文件信息的接口addContractInterface调用查询文件信息的接口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//导入日志25publicstaticfinalStringKEYS_PATH=____________;26publicstaticfinalStringCONTRACT_ACCOUNT="XC2022081600000001@xuper";27publicstaticfinalStringCODE_PATH=____________;28publicstaticfinalStringCLIENT_URL=____________;29//调用上传新物品的接口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//导入合约账户的kyes38Accountaccount=Account.create(KEYS_PATH);39account.setContractAccount(CONTRACT_ACCOUNT);40//解析请求参数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//调用租赁新物品的接口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//导入合约账户的kyes66Accountaccount=Account.create(KEYS_PATH);67account.setContractAccount(CONTRACT_ACCOUNT);68//解析请求参数69Map<String,String>contractParams=JSONObject.fromObject(parameterJson);707172TransactioninvokeTx=client.invokeEVMContract(____________,____________,____________,____________,____________);73

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论