![2023年全省职业院校技能大赛高职学生组-区块链技术与应用-样题样卷一_第1页](http://file4.renrendoc.com/view14/M0A/04/32/wKhkGWcRmkWATMQrAAHCFPTiWw0825.jpg)
![2023年全省职业院校技能大赛高职学生组-区块链技术与应用-样题样卷一_第2页](http://file4.renrendoc.com/view14/M0A/04/32/wKhkGWcRmkWATMQrAAHCFPTiWw08252.jpg)
![2023年全省职业院校技能大赛高职学生组-区块链技术与应用-样题样卷一_第3页](http://file4.renrendoc.com/view14/M0A/04/32/wKhkGWcRmkWATMQrAAHCFPTiWw08253.jpg)
![2023年全省职业院校技能大赛高职学生组-区块链技术与应用-样题样卷一_第4页](http://file4.renrendoc.com/view14/M0A/04/32/wKhkGWcRmkWATMQrAAHCFPTiWw08254.jpg)
![2023年全省职业院校技能大赛高职学生组-区块链技术与应用-样题样卷一_第5页](http://file4.renrendoc.com/view14/M0A/04/32/wKhkGWcRmkWATMQrAAHCFPTiWw08255.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、单选题1、在区块链技术中,数据以何种方式永久存储。A、链条方式B、区块方式C、加密方式D、分散方式2、以下关于状态机的描述中正确的是()A、Moore型状态机其输出是当前状态和所有输入的函数,Mealy型状态机其输出信号是当箭状态和当前输入的函数B、与Moore型状态机相比,Mealy型的输出变化要领先一个时钟周期C、Mealy型状态机其输出是当前状态的函数D、以上都不对3、实现同一功能的Mealy型同步时序电路比Moore型同步时序电路所需要的()A、状态数目更多B、状态数目更少C、触发器更多D、触发器更少4、状态机的编码风格包括一段式,两段式和三段式,下列描述正确的是()A、一段式寄存器输出,易产生毛刺不利于时序B、二段式组合逻辑输出不产生毛刺.有利于时序约束C、三段式寄存器输出。不产生毛刺,有利于时序约束;D、所有描述风格都是寄存器输出,易产生毛刺,有利于时序约束5、组织的上链要完成组织身份的发放,组织可以向CAServer或者ICAServer进行证书申请,以获取自身的MSP身份文件。MSP的身份文件,规定了该组织在联盟链中的成员权限、身份、签名等相关信息。那么,共有9部分组成MSP身份文件,其中存储组织私钥的文件是:A、AdministratorsB、SigningCertificatesCKeystoreD、RootCAs6、以太坊主网在刚开始运行发布的时候的是以下哪种共识机制进行挖矿?A、powB、dposC、poaD、pos7、以太坊编辑器:Remix下的部署合约使用的语言是JavaScript,在部署合约代码中我们使用的是哪一个前端库进行合约的部署?A、WebB、Web3.jsC、Web3.0D、w3c8、交易实质上是包含了一组输入列表和输出列A、运算记录B、上链记录C、转账记录D、成交记录9、_______是指任何人都可以随时进入到系统中读取数据、发送可确认交易、竞争记账的区块链。需要用代币激励参与者竞争记账的是_______。在______中,公共的可读性并非是必须的。A、公有链;联盟链;私有链B、私有链;联盟链;公有链C、公有链;公有链;私有链D、私有链;私有链;公有链10、以太坊中由智能合约代码控制的账户叫做()。A、外部拥有账户B、合约账户C、内部加密账户D、漱活账户11、下面的solidity语句书写正确的是A、functionhelloreturns(uint){}B、functionhello(uinti)return(uint){}C、functionhello(uinti)returns(uint){}D、functionhello(uinti)returns{}12、关于Hash下列说法正确的是?A、哈希是一种数学计算机程序,它只能接受固定长度的输入信息,通过哈希算法变换成固定的长度的数据指纹输出形式B、哈希是一种数学计算机程序,它可以接受任意长度的输入信息,通过哈希算法变换成固定的长度的数据指纹输出形式C、哈希使存储和查找信息的速度变的更慢,因为哈希值通常是固定的长度的数据D、哈希使存储和查找信息的速度变的更快,因为哈希值通常是不固定的长度的数据13、Solidity处理错误需要保证事务的()A、一致性B、持久性C、原子性D、隔离性14、"解释代码中的变量对应于哪个内存区域:contractMyContract{uintcount;uint[]totalPoints;}"A、StorageB、MemoryC、CalldataD、Stack15、在哪里修改配置数据?A、配置文件B、数据文件C、日志文件D、搭链文件16、节点编号文件在哪个文件下生成?A、配置文件B、数据文件C、日志文件D、公链文件17、在Go语言编辑器中单行注释的快捷键是什么()A、Ctrl+/B、Ctrl+Shift+/C、Ctrl+CD、Ctrl+D18、Solidity智能合约的文件扩展名是()A、.goB、goC、.solD、sol19、区块链的分层结构不包括?A、数据层与网络层B、共识层与合约层C、激励机制与应用层D、合约层与发布层20、关于区块链3.0,下列说法正确的是?A、区块链3.0被称为“可编程金融”B、区块链3.0不属于智能合约C、区块链3.0不需要节点与地址D、区块链3.0主要应用在社会治理领域21、关于逻辑运算符||下列说法正确的是()A、如果两边的操作数都是True,则条件True,否则为False。B、如果两边的操作数有一个True,则条件True,否则为False。C、如果条件为True,则逻辑NOT条件False,否则为True。D、如果两边的操作数都是True,则条件Fasle,否则为True。22、Solidity语言编写的智能合约的开发过程不包括()A、编写B、编译C、链接D、部署23、关于main函数,下面说法错误的是()A、main函数能带参数B、main()函数只能声明在main包中,不能声明在其他包中C、main函数不能定义返回值D、main函数中可以使用flag包来获取和解析命令行参数24、解释代码中的变量对应于哪个内存区域:functionlocalVars(){uint[]pointer=totalPoints;}A、StorageB、MemoryC、CalldataD、Stack25、关于智能合约,下列说法正确的是:A、智能合约随着以太坊(ETH)的发明而被提出B、智能合约指当一个预先编好的条件被触发时,智能合约会立即执行相应的合同条款。C、使用智能合约的区块链只能承担货币职能。D、智能合约的工作原理类似于计算机程序的while语句。二、多选题以下哪些可以应用区块链应用的领域是()?A、金融B、物流C、医疗D、保险2、在金融的案例中,所有的组织进行了联盟链的上链操作。区块链在节点权限方面分为公有链、私有链和联盟链。在信用结算的案例中,之所以选择联盟链,必有其独特的优势。下面属于联盟链优点的是:A、交易成本更便宜B、节点之间的连接更稳定C、联盟链数据读取权限受到限制,可以对商业信息提供更好的隐私保护D、更灵活。运行联盟链的组织或公司可以很容易地修改该区块链的规则,还原交易,修改交易等3、以下对区块链技术描述优点正确的是A、去中心化B、透明公开C、完整性D、机密性4、一笔业务数据在区块链上处理的流程大致可分为那几个阶段A、查询阶段B、上链前处理阶段C、链上处理阶段D、智能合约处理阶段5、联盟链中的CA证书服务模块,包括五个部分,分别是:CAServer、CAClient、ICA、LDAP、CA数据库,这五部分相互之间进行联系。其中这五部分中和CAServer相关联的部分为:A、CAClientB、ICAC、LDAPD、CA数据库 6、Go语言的作者都有哪几位()A、RobPike(罗伯.派克)B、KenThompson(肯.汤普森)C、RobertGriesemer(罗伯特.格利茨默)D、SatoshiNakamoto(中本聪)7、下列关于if条件语句说法正确的有()A、if语句由一个布尔表达式后紧跟一个或多个语句组成。B、if在布尔表达式为true时,其后紧跟的语句块执行,如果为false则不执行。C、if条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为true来决定是否执行指定语句,并在条件为false的情况在执行另外的语句。D、if条件语句可以通过&&逻辑与||逻辑或!逻辑非,判断表达式。8、区块链达成分布式商业基础设施阶段,需要的前提条件有?A、务高效率集中处理B、资产上链C、区块链被社会大规模的接受,政府、金融机构都纳入区块链中D、不同政府部门开具不同的证明,信息系统互相独立9、整型的关键字有()A、structB、boolC、intD、uint10、联盟链的通道是实现链上数据隔离和隐私保护的关键服务,通道的搭建必然和其他的服务组件有多重链接,那么请选择出下面那些组件与通道产生直接关联。A、BroadcastB、DliverC、orderer节点D、kafka共识组件E、锚节点F、区块链账本G、世界状态H、组织I、系统链码三、判断题1、分叉包括软分叉与硬分叉对错2、客户端、对等点、排序服务节点是节点的三种类型()对错3、在区块链中,通过解决一个数学难题来证明自己的工作量。这个数据难题就是,对一个数字串进行两次SHA256运算,如果得到的数,小于一个指定的值,就算是成功。否则,要通过不断的尝试试错,来求解这个数。对错一个函数被调用后,返回给调用处的执行结果,叫做函数的返回值。对错5、函数是Go里面的核心设计,它通过关键字func来声明。对错6、下面说法是否正确:Base58是一种基于文本的二进制编码,多用在加密货币中,主要用于产生各类加密货币的钱包地址对错7、下面关于交易输出列表TXOutputList说法是否正确:交易output(TxOut)结构由地址和数量两个成员变量组成。数量代表了交易的虚拟货币的数量。地址就是一个ECDSA的公钥,代表接收者。对错8、状态变量不能设置为external。对错构造函数是特殊的函数,在部署合约的时候,就会被调用。对错10、公私钥是由非对称加密技术产生的,公钥和私钥不同,但是可以基于私钥生成公钥。对错区块链技术代码实现1、Go:bool类型题7分关系运算符也叫比较运算符,在Go语言中,关系运算符的结果都是bool型,也就是运算的结果要么是ture,要么是false任务要求:1、请根据a,b对应的值,完成下面表格的填写2、填写完成后,请点击保存按钮,完成试题的填写 2、Go:hash的运算8分通过Go语言实现hash加密,学生能够了解hash的生成过程以及其中的数据流转,字符加密,认知到hash传动的数据流程线。任务要求:1、请根据题干要求,通过Go语言完成试题2、填写完成后,请点击保存按钮,完成试题的填写3、请仔细读题,注意不同类型之间的数据转换。4、请把你编写的代码,保存到下面代码编辑器中,作为代码数据的留存。题目A:"北京知链科技"(string类型),六个字通过sha1加密以后的hash(string类型)是_______________。题目B:"区块链"(string类型),三个字通过sha256类型下224类型下加密后hash值(string类型)是_______________。题目C:数字num=2022(int类型),数字2022通过md5加密以后hash(string类型)的值是_______________。题目D:数字2022.10(float32类型),通过sha256加密算法中224类型加密,得到的加密hash为_______________。3、在go语言中,通过算术运算符的特性(只对数值类型的变量进行运算)将初始化赋值的变量进行算术运算,得到新的数值赋值给临时变量,并存储到新地址中从而完成整个计算任务要求:1、请根据题干要求,通过Go语言完成试题2、填写完成后,请点击保存按钮,完成试题的填写3、请把你编写的代码,保存到下面代码编辑器中,作为代码数据的留存。试题A:请使用Go语言知识,完成下面填空题:正整数从100到999(100-999)的和是_______________。试题B:1、正整数从100到200(100-200)奇数有_______________个。2、正整数从100到200(100-200)能被3整除的数的和是_______________。试题C:斐波那契数列(Fibonaccisequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(LeonardoFibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)这个数列有以下特点:第1,2两个数为1,1,。从第三个数开始,该数是其前两个数之和。1、请根据上述数列的描述,计算Fibonacci数列的前20个数的和为_______________。4、Go:时间的转换7.5分时间戳Go语言中time包为我们提供了一个数据类型time.Time(作为值使用)以及显示和测量时间和日期的功能函数。任务要求:1、请根据题干要求,通过Go语言完成试题2、填写完成后,请点击保存按钮,完成试题的填写3、请把你编写的代码,保存到下面代码编辑器中,作为代码数据的留存。试题A:请把当前时间戳1666847356,转化时间是多少(必须输入数字),____
年,____
月,____
日,
____时,____
分,____
秒。试题B:时间戳(1666372476)与时间戳(1628468567)相差多少________秒。把上面两个时间戳相差的秒数,换算得到
____日,
____时,____
分,____
秒。题目C:请使用Go语言,算出2022年10月29号,是2022年的第几天?____________5、Go:区块链UTXO交易模型13.5分区块链的交易模型也简称为UTXO(unspenttransactionoutput),全称是未花费的交易输出,一次交易如果有余额,就有未花费的交易输出,如果没有余额,那么交易输入中存的就都是已花费的交易输出。所以,所有未花费的交易输出加起来,就是当前账户的余额。题目要求:1、已经提供了A、B、C、D的区块链钱包地址2、请根据下方交易的类型,填写UTXO模型内容A钱包地址:B钱包地址:C钱包地址:D钱包地址:1MJCRVk83vZD6RZ53xtpNHdwJNe46V38F814ZM3zX72hirAwqHY2RV5YwdJRTzEjkJqS1KZfqmKLUCEkSrs1QdUVkqWFjmVVBZKxay1GhBFsMTSg3BVbUoEzguuVv8LLS4XCwHmh第一笔交易:B打包记账获得80第二笔交易:A打包记账获得50第三笔交易:A转账给B10第四笔交易:B转账给C85交易ID:TXid1交易ID:TXid2交易ID:TXid3交易ID:TXid46、Go:区块链MerkleTree8分任务说明:Merkle根,是由区块主体中所有交易的哈希值再逐级两两哈希计算出来的一个数值,用于检验一笔交易是否在这个区块中存在。Merkle是一种二叉树,由一组叶子结点、一组中间节点和一个根节点构成,根据默克尔树的构建特性和原理分析,完成下方Merkle二叉树的模型。一棵Merkle树有如下特点:1、叶子结点的值是实际数据块的Hash值。2、每个非叶子结点的值,都是孩子结点的Hash值。根结点称为Merkle根3、如果树是二叉树的话,称为二叉Merkle树,且二叉Merkle树一定是满二叉树(奇数叶子凑成偶数个,如果出现需要处理的数据块是奇数个,只需要把这些数据块中的任意一个复制一份凑成偶数个就行,一般选择复制最后一个块。)4、请根据下面展示内容,比如当交易Tx1,Tx2节点产生节点H12。请完成下面奇数交易与偶数交易时的节点树题目A:奇数交易题目B:偶数交易7、Go:区块链编码算法10分算法在区块链中普遍应用任务要求:1、请根据题干要求,通过Go语言完成试题2、填写完成后,请点击保存按钮,完成试题的填写3、请把你编写的代码,保存到下面代码编辑器中,作为代码数据的留存。试题A:Base58编码解码1、Base58是一种基于文本的二进制编码,安装base58标准包命令是:_________。2、msg:="知链科技-区块链人才培养摇篮",通过base58编码以后的值是_________。3、encode:="2cCdUeP76PYZByQ649kps8PBxqPVD92yzDG"是通过base58编码以后的结果,通过base58转码后,原文是_________。试题B:Ripemd160算法Ripemd160算法是一种基于字节转换的二进制编码,安装Ripemd160标准包命令是:_________。2、Rmsg:="知链-区块链技术大赛",Rmsg通过ripemd160算法编码以后,得到的值(string类型)是___________。8、Go:区块链存储文件16分通过区块链存储机制了解区块链存储机制的多样化方法以及在其中的结构本质,认知到区块链存储机制的实现过程。1、请下载本题提供的源码2、打开编辑器,阅读并补全源码,并运行区块链存储文件源码,其中BlockChain.dat存储了区块链的区块信息3、请解析区块链的区块信息,回答以下问题4、请把补全的核心代码粘贴到下方代码区,作为代码留存试题A:请下载本试题提供的试题源码压缩包文件,回答下面问题当前文件中,存储区块链文件的文件名字是_________。2、区块链(Block)结构体中,区块高度(ChainHigh)数据类型格式是_________。3、在utils.go中,判断文件是否存在的方法名字是_________。4、创世区块中,存储的创世区块Data值是_________。试题B:请根据提供的试题源码,补充部分源码,解析区块链存储文件,回答一下问题要想解析区块链存储文件,需要先打包go文件,下面哪个命令可以进行打包,并生成运行文件_________。2、在osCli.go文件中,打印区块链命令是_________。3、解析区块链文件,区块高度为0对应的区块,时间戳是_________。4、解析区块链文件,区块高度为1对应的区块,Hash是_________。5、解析区块链文件,区块高度为3对应的区块,data存储的值是_________。6、解析区块链文件,区块高度为4对应的区块,前置hash是_________。9、Go:RSA算法10分非对称加密算法指加密和解密使用不同密钥的加密算法,也称为公私钥加密。RSA是目前计算机密码学中最经典算法,也是目前为止使用最广泛的数字签名算法,RSA数字签名算法的密钥实现与RSA的加密算法是一样的,算法的名称都叫RSA。题目要求:1、请下载本题提供的源码压缩包2、文件压缩包里面包含公钥私钥文件3、请使用私钥公钥文件,回答下面问题4、请把补全的核心代码粘贴到下方代码区,作为代码留存试题A:请下载本试题提供的源码回答下面问题:1、请问源码文件中,私钥是____________文件。2、请问源码文件中,公钥是____________文件。试题B:RSA公钥加密、私钥解密 data:="w4TkMZ/KsLuLiCsO0QFEGT14l6WUvhkhi/0E5TuzEoEqOiaMFnDGykKJly4+fiqAg8JFneWvBT4U2M9Nzto0jg=="加密数据(data)是公钥加密以后的结果,请根据试题提供的私钥,解密得到的原文是________。试题C:RSA私钥签名、公钥验签题一:同学A得到一组信息info:="2022-10"请使用试题提供的私钥,对info进行数字签名,得到的数字签名是__________题二:同学A通过私钥数字签名得到了签名信息:signMsg:="EtP98oXA120RKU/NBYAk0pkdo2PrSbJA6NTYVPYQzPjm+PN6aaRqSkAtuw8mkGvnVBTppS2DJPSHp66CnvJQ2A=="同学B接受拿到了明文信息:forMsg:="区块链人才"请问B同学通过公钥验签,验证结果是_______________。10、Go:区块链钱包地址12分任务要求:1、请根据题干要求,通过Go语言完成试题2、填写完成后,请点击保存按钮,完成试题的填写3、请下载本试题提供的试题源码文件,完成试题4、请把你编写的代码,保存到下面代码编辑器中,作为代码数据的留存。试题A:钱包地址的生成区块链钱包地址生成算法:先生成________,再由________算出________,再由________经过一系列哈希算出____________。试题B:区块链钱包地址1、解析区块链钱包公私钥文件,公钥hash(string类型)是____________。2、解析区块链钱包公私钥文件,前4个字节是(string类型)________________。3、解析区块链钱包公私钥文件,25个字节是(string类型)________________。4、解析区块链钱包公私钥文件,区块链钱包地址是(string类型)____________。五、智能合约实战
工程师1、编写智能合约题目描述:根据开发文档分析CreditInquiry.sol文件中的智能合约,在正确的位置填写代码实现物品共享合约,将结果保存上传到考试平台并编译智能合约。
某公司打算开发区块链征信查询系统,该系统主要将用户及征信分数添加到合约中,查询其征信分数,在进行系统开发时,需要完成合约的编写与编译。任务要求:以下是征信查询合约要实现的功能,请根据“开发文档”,在正确的位置填写代码实现征信查询合约,将结果保存上传到考试平台并编译智能合约。功能对应名称合约所有者owner用户管理userMessage用户IDid用户密码password合约限制Owner添加用户ownerSetUser添加征信分数ownerSetScore合约发起人获得用户征信分数ownerGetScore用户获得征信分数userGetScore1_________>=0.0.0;23____ItemSharing{45addresspublicowner;//合约所有者67//租借人信息8structrenter{9addresspayablearr;//租借人地址10uintleasetime;//租借时间11}1213//物品信息14structitem{15addresspayablecreate;//创建人地址16stringitemName;//物品名称17uintitemPrice;//物品价格18uintitemDeposit;//物品租赁费用19bytesitemHash;//物品哈希20renterren;//租借人信息21boolynren;//是否被租借22}2324uint[]itemids;//物品列表25uintitemNum;//物品数量2627item[]items;//存储物品28mapping(string=>uint)nameToid;//姓名对应id293031//初始化合约所有者地址为合约调用者地址32constructor(){33owner=____;34}3536 //上传新物品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;4647//存储物品姓名、id及数量48items.push(newItem);49itemids.push(____);50nameToid[itemName]=itemNum;51itemNum++;5253returnitemNum;54}5556//租赁物品57functiongetItem(uintid,addresspayableren,uintdatetamp)publicpayablereturns(bool){5859itemmemorytemp=items[id];6061if(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;7273items[id].ren.arr.transfer(temp.itemDeposit);7475returntrue;76}7778//归还物品79functionreturnItem(uintid,addresspayableren)publicpayablereturns(bool){8081itemmemorytemp=items[id];8283if(!temp.ynren)84return____;8586items[id].ynren=false;87items[id].ren.arr=ren;8889items[id].ren.leasetime=0;9091items[id].create.transfer(msg.value);92items[id].ren.arr.transfer(temp.itemDeposit-msg.value);9394returntrue;95}9697//根据商品名称查询商品id98functiongetItemToName(_____________)publicviewreturns(uint){99returnnameToid[name];100}101102//根据商品id获得租借信息103functiongetItemToId(uintid)publicviewreturns(bool){104returnitems[id].ynren;105}106107//根据商品id获得起始租借时间108functiongetReturnTime(uintid)publicviewreturns(uint){109if(!items[id].ynren)110return0;111returnblock.timestamp-items[id].ren.leasetime;112}113114//获得物品数量115functiongetItemNum()publicviewreturns(uint){116____________117}118119//根据物品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}123124//根据物品id获得租借人信息125functiongetRenter(uintid)publicviewreturns(uint,____,uint){126return(id,items[id].ren.arr,items[id].ren.leasetime);127}128}2、部署智能合约题目描述:根据智能合约源码及下方提示文字填写初始化参数,完成智能合约的部署。智能合约在开发完成后,需要部署才能上链。智能合约部署到百度超级链中时需要初始化参数。任务要求:在进行合约部署上链时,需要填写合约的初始化参数,请通过对智能合约源码的解读,填写物品共享合约的初始化参数,完成合约的部署上链。初始化参数怎么填写?1.使用模板合约:请按照默认通数填写参数。注:部分合的初始化参数为0,即无需填写,2.使用自定义合约:请自己填写初始化参数,初始化参数是litilize方法中要求的参数,以JSON格式组织的Key-Value对,例如counter合约的初始化参数范例:(“creator":"xchain")。3、调用智能合约题目描述:根据开发文档分析并补全XuperChainApiController.java文件中的调用代码,将结果保存上传到考试平台并编译运行代码,启动智能合约调用界面,实现智能合约的运行。
为了在链上调用智能合约,需要读取智能合约的状态、数据等,最终调用合约的方法。任务要求:当调用智能合约时,要求从导入信息、调用接口、账户keys等几个方面的信息实现智能合约的调用,参考以下表格完成智能合约调用代码的实现,将结果保存上传到考试平台并编译运行代码,启动智能合约调用界面,实现智能合约的运行。功能详情KEYS_PATHsrc/main/resources/keysCODE_PATHsrc/main/resources/contract/CLIENT_URL:37101调用录入文件信息的接口addContractInterface调用查询文件信息的接口queryContractInterface1package.api;23importcom.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);6465//导入合约账户的kyes66Accountaccount=Account.create(KEYS_PATH);67
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 比的综合运用-(专题练习)-数学六年级下册苏教版
- 2025年排风扇项目可行性研究报告
- 2025年劳动合同续签总结报告模板
- 2025年氯化丁基橡胶瓶塞行业深度研究分析报告
- 2025年中国多级离心泵行业市场全景监测及投资前景展望报告
- 中国数字阅读APP行业投资分析及发展战略咨询报告
- 高中贫困生补助申请书
- 2025年土狗罐头行业深度研究分析报告
- 劳动仲裁反诉申请书
- 异松油烯行业市场发展及发展趋势与投资战略研究报告
- 执行总经理岗位职责
- 2025年中铁十二局集团招聘笔试参考题库含答案解析
- NS3000计算机监控系统使用手册
- 小学生情绪调适课件
- 2025蛇年中小学春节寒假安全教育课件模板
- 《黑神话:悟空》跨文化传播策略与路径研究
- 员工食堂服务外包运营管理方案
- DB31-T 329.17-2019 重点单位重要部位安全技术防范系统要求 第17部分:监管场所
- 居家养老上门服务投标文件
- 长沙市公安局交通警察支队招聘普通雇员笔试真题2023
- 2024年学校科研工作计划(6篇)
评论
0/150
提交评论