目录

2023年全国职业院校技能大赛高职组区块链技术应用赛项赛卷6卷解析

目录

2023年全国职业院校技能大赛高职组“区块链技术应用”赛项赛卷(6卷)解析

https://i-blog.csdnimg.cn/blog_migrate/9c8b29a1813ec4e0c3d717f84bb3f49d.png

https://i-blog.csdnimg.cn/blog_migrate/bc944bf525c428e321df38a7cfeb34f4.png

https://i-blog.csdnimg.cn/blog_migrate/eb9eb7198a89808b7fd49af94cece6a1.png

https://i-blog.csdnimg.cn/blog_migrate/0d94bca352651b8bd240344b20809070.png

https://i-blog.csdnimg.cn/blog_migrate/6d92ae2895520a0a2359fd17d630ecd9.png

https://i-blog.csdnimg.cn/blog_migrate/01fb0648a30334e2d0dbe59358116901.png 配置节点搭建区块链

这边我们基于网络下配置

先下载脚本(因为是默认docker搭建在做题的时候要注意安装docker)

curl -#LO https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/releases/v2.9.1/build_chain.sh && chmod u+x build_chain.sh

https://i-blog.csdnimg.cn/blog_migrate/a5649efee3561520b3ea196d056354eb.png

题目中给了具体的P2P起始端口、channel起始端口、JSONRPC地具体要求

bash build_chain.sh -d -l 127.0.0.1:4 -p 30500,20500,8945

https://i-blog.csdnimg.cn/blog_migrate/e1bf4cdf889c3aa7c8631017644fb3c6.png

这边用默认docker打开各个节点的时候会出现以下条码

https://i-blog.csdnimg.cn/blog_migrate/959fead4712fb1ca8f23dfaf217cefab.png

我们用的是默认fiscoorg/fiscobcos:v2.9.1镜像所以在docker容器库会找到相应的镜像自动下载

https://i-blog.csdnimg.cn/blog_migrate/d3eb582ade992358435540143e2392b0.png

这样就是节点成功打开了

用docker命令查看区块链系统状态

docker ps -a | egrep fiscobcos

https://i-blog.csdnimg.cn/blog_migrate/f38026e8350dfacfd4c870d70f3db292.png 查看连接中node0的链接状态

tail -f nodes/127.0.0.1/node0/log/log*  | grep connected

https://i-blog.csdnimg.cn/blog_migrate/ca2ad9898b729866ac927b7aefc7beb1.png

https://i-blog.csdnimg.cn/blog_migrate/01ca106516833a8c0c478b0adba2ab51.png

因为我们是联网状态下需要获取控制台(下载)

curl -#LO https://gitee.com/FISCO-BCOS/console/raw/master-2.0/tools/download_console.sh && bash download_console.sh

https://i-blog.csdnimg.cn/blog_migrate/742f6418d9cdc9dcd09be0594ab2355a.png 进入我们需要拷贝控制台配置文件

cp -n console/conf/config-example.toml console/conf/config.toml

https://i-blog.csdnimg.cn/blog_migrate/e469200616aefd74fa3033acbc79e63e.png

拷贝控制台证书

cp -r nodes/127.0.0.1/sdk/* console/conf/

启动控制台

bash ~/tools/console/start.sh

可能会出现的报错

https://i-blog.csdnimg.cn/blog_migrate/c14c58e7799020db860d7e0a91125c60.png

是因为我们没有修改我们控制台里的peers端口号(两个文件修改的地方是一样的)

cd ~/toosl/
vim console/conf/config-example.toml
vim console/conf/config.toml

https://i-blog.csdnimg.cn/blog_migrate/4dec3272e3348d8b5ff14d7f1267f856.png

修改完成后我们打开控制台

cd console && ./start.sh

https://i-blog.csdnimg.cn/blog_migrate/bbdbce3ffdd37002634cf718d2888c96.png

getBlockNumber //查看区块链中区块高度
getBlockHeaderByNumber 0 查看创世区块的信息
getConsensusStatus //查看区块共识状态

https://i-blog.csdnimg.cn/blog_migrate/497ee007bf2e6ddf6e37a7175db68258.png

https://i-blog.csdnimg.cn/blog_migrate/21f709e1f27a55aa5e8184ea4382489b.png

https://i-blog.csdnimg.cn/blog_migrate/16460814873624adf0c5ba1d7f09ff86.png

https://i-blog.csdnimg.cn/blog_migrate/4b35db258ec4c6a2987cca64fcee6f88.png

我们先创建3个用户

curl -#LO https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/tools/get_account.sh && chmod u+x get_account.sh && bash get_account.sh -h //获取get_account.sh的脚本
./get_account.sh

https://i-blog.csdnimg.cn/blog_migrate/52d1e854eed287f7363b0727901b948a.png

https://i-blog.csdnimg.cn/blog_migrate/3de7555b4a2197a3a41f45cadb12ddbc.png

生成三个账户

https://i-blog.csdnimg.cn/blog_migrate/55ff519c4ecccc1fca33c8775d582974.png

我们用控制台命令

grantCommitteeMember [账户] //添加某个账户进入委员会(ps加入过程中可能会有委员会同意加入的问题,因为一开始设定的权重是一样的,也可以先修改Account1的权重)
updateCommitteeMemberWeight [账户] [权重数] //更改某个账户的权重
listCommitteeMembers //查看委员会里的成员

https://i-blog.csdnimg.cn/blog_migrate/aa8db538df3d33380a9adfe2cced5d4c.png

https://i-blog.csdnimg.cn/blog_migrate/1223eb4e09cfeee4d6cae0223e3d8355.png https://i-blog.csdnimg.cn/blog_migrate/afb923e29c6fb1b852ca3e4054766e35.png

修改Account的权重 https://i-blog.csdnimg.cn/blog_migrate/6cdc46ec994b3d7e341665e489754605.png

我们要把Account2在委员会中剔除同意的投票数要大于50%所以我们要进行两场投票分别是用Account1进入控制台投票Account3进入控制台投票

revokeCommitteeMember [账户]

投票一次后我们不难发现投票成功但是还没有将Account2在委员会中移除 https://i-blog.csdnimg.cn/blog_migrate/ebc8cb8df2cdab45b18302a91d12c55c.png

换账号登录控制台后我们投完票成功移除Account2

https://i-blog.csdnimg.cn/blog_migrate/028fe091fd9f45e7cd3175df7ba35df2.png https://i-blog.csdnimg.cn/blog_migrate/fac80d8b9fefd8144926ae1111d1783f.png

./start.sh [group] -pem [account] //用某个群组中的某个账户登录控制台

https://i-blog.csdnimg.cn/blog_migrate/e379ed0255c1db6c9ebee7811345fa4d.png