赛题说明
一、竞赛内容
本试卷包含应用运维、应用测试、应用操作、职业素养四个模块,试卷满分100分。
二、竞赛时间
竞赛时间:共计180分钟。
三、竞赛事项要求
(一)参赛选手不得携带通信设备等物品进入赛场,违反者按作弊处理。
(二)请根据大赛所提供的比赛环境,检查所列的硬件设备、软件清单、材料清单是否齐全,计算机设备是否能正常使用。
(三)竞赛结束前,整合各试题操作过程和结果数据,并提交完整代码、文档到指定目录。
(四)竞赛结束时,请将试卷统一提交。禁止将比赛所用的所有物品(包括试卷和稿纸)带离赛场。
(五)竞赛要求
1.每位参赛选手使用一台PC,已经安装必须的软件。每个队伍单独使用一个Ubuntu 20.04 作为服务器。
2.比赛前认真检查软件是否安装完整,确认服务器能够登录。
3. 操作过程保存到桌面上,文件名“比赛交付-队伍名称”。
区块链电子发票
背景描述
税收是国家的财政来源,制造假发票,虚开发票影响国家税收。为了提高发票透明度,市税务局请你开发一套区块链税务系统进行试点。发票的整个开具、使用、核心流程包括:
- 税务局首先登记有资格认领发票的试点企业。经过登记的企业采用有资格认领区块链发票。
- 税务局将试点发票登记进入区块链发票池,发票池中是合法的区块链发票,没有经过登记进入发票池发票均为无效发票。
- 试点企业认领区块链发票,税务局登记企业认领了哪些发票。
- 试点企业根据实际发生的业务,将认领的发票开具给他人,企业只能开具自己认领的发票,不得使用其他企业认领的发票。
- 收到发票的企业可以核销抵税。
限制要求:为了提高系统可信度,由市场监督管理局代表企业运营2个节点,一个处于企业的上链业务,另一个节点向公众提供发票查询服务;财政局作为监督节点,不参与业务。
模块一:应用运维
第1题:搭建区块链应用系统(10分)
【比赛要求】
- 服务器上已经使用搭链脚本build_chian.sh搭建好区块链。
- 区块链搭建在$HOME/fisco目录下。
- 所有节点使用同一个机构证书。
- 搭建完成查询所有节点的共识日志,并截图保存。
【比赛内容】
- 检查系统上安装的openssl版本和Java版本。
- 根据项目背景,规划系统应该有几个节点,各归哪个机构管理?
- 配置控制台使其能够连接到node1。
- 启动FISCO BCOS,并检查每个节点的共识日志。
将各小题答案,输入信息、执行的命令、执行结果,修改的配置文件和配置项,代码等放在下列空白框内(下同)。
1.1.1
1.1.2
系统应有4个节点,节点1归税务局管理,节点0节点2归市场监督管理局管理,节点3归财政局管理
1.1.3
1.1.4
第2题:部署WeBASE-Front管理工具(10分)
【比赛要求】
- 部署过程中不要重新下载WeBASE组件。
- WeBASE-Front连接到node2。
【比赛内容】
- 将$HOME目录下的webase-front.zip解压缩,并完成配置。
- 启动webase-front,在浏览器中打开WeBASE-Front。
- 在合约IDE中完成下列HelloWorld合约的编译与部署。
- 在合约IDE中调用HelloWorld合约的get/set方法,使get方法返回fisco-bcos。
HelloWorld合约代码。
pragma solidity>=0.4.24 <0.6.11;
contract HelloWorld {
string name;
constructor() public {
name = "Hello, World!";
}
function get() public view returns (string memory) {
return name;
}
function set(string memory n) public {
name = n;
}
}
1.2.1
1.2.2
1.2.3
1.2.4
第3题:区块链系统监控(10分)
【比赛要求】
- 通过控制台监控FISCO BCOS。
【比赛内容】
- 启动控制台。
- 查询当前区块的块高。
- 在控制台上查找HelloWorld部署在哪个区块中。
- 在控制台查找调用HelloWorld的set方法,将name设置为fisco-bcos的那个交易的交易哈希。