2023年区块链职业技能大赛——区块链应用技术(一)模块一
模块一:区块链产品方案设计及系统运维:
任务1-1:区块链产品需求分析与方案设计
1.依据给定区块链食品溯源系统的业务架构图,对考题进行业务分析,可能多的去考虑一个业务系统所需要的模块,使用Visio或思维导图工具展现本系统的基本设计概念和处理流程,要求分为区块链食品溯源业务平台和支撑平台两个部分;
参考答案:略
2.据描述,设计区块链系统的总体功能概览图.
参考答案:略
3.整合上述设计内容,完善"01系统概要设计说明书.doc",具体工作内容如下:
⚪将设计内容根据说明书中模块需要进行补充,并完善概要设计说明书中的"需求概要"
⚪完善说明书中接口说明部分内容
任务1-2:区块链系统部署与运维
1.根据参数与端口设置要求,部署区块链系统并验证;
2.根据参数与端口设置要求,部署区块链网络管理平台并验证;
3.基于区块链系统相关管理平台,按照任务指南实施系统运维工作并验证。
4.基于区块链系统相关监管工具,按照任务指南对区块链系统进行监管.
子任务1-2-1:搭建区块链系统并验证
基于给定的服务器环境及软件(地址"/root/tools"),搭建一条4节点的区块链系统并验证,具体工作如下:
1.采用默认配置搭建区块链网络;
参考答案:
(1)配置网络
命令: bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545
输出:
(2)启动节点:
命令:bash nodes/127.0.0.1/start_all.sh
输出:

2.通过命令验证区块链节点进程运行情况
参考答案:
命令: ps -ef | grep -v grep | grep fisco-bcos
输出:

3.通过命令验证区块链连接状态和共识状态日志输出
参考答案:
命令: tail -f nodes/127.0.0.1/node0/log/log* | grep connected
输出:

子任务1-2-2:搭建区块链系统管理平台并验证;
给予给定服务器环境以及软件 (地址 “/root/tools”), 搭建区块链控制台并开展相关运维工作,具体工作内容如下:
1.配置可视化平台,管理相关证书并启动
参考答案:
(1)配置控制台证书.
命令: cp -n console/conf/config-example.toml console/conf/config.toml && cp -r nodes/127.0.0.1/sdk/* console/conf/
输出:

(2)启动控制台
命令: cd console && bash start.sh
输出:

2.使用控制台安装HelloWorld智能合约
参考答案:
命令: deploy HelloWorld
输出:

3.使用控制台完成HelloWorld智能合约的set和get
参考答案:
(1)调用set操作
命令: call HelloWorld 0x26255782cf37d290a00efaa4ca1201b1ff9be081 set "Hello,Blockchain"
(2)调用get操作
命令:call HelloWorld 0x26255782cf37d290a00efaa4ca1201b1ff9be081 get
输出:

4.使用控制台查看区块链中的区块高度.
参考答案:
命令:getBlockNumber
输出:

子任务1-2-3:区块链节点运维.
基于已经完成的区块链系统与管理平台搭建工作,开展区块链节点的加入与退出运维工作,具体工作如下:
1.获得区块链节点输出登记为警告级,并设置日志存储阈值为100MB并验证
参考答案:
(1)修改配置文件: vi node0/config.ini

(2)重新启动节点node0,使配置文件生效
命令:bash node0/stop.sh && node0/start.sh
输出:

2.通过给定的工具(地址/root/tools)完成对新节点(node4)的配置
参考答案:
(1)使用gen_node_cert.sh 生成新节点node4
命令: bash gen_node_cert.sh -c nodes/cert/agency- o node4
输出:

(2)将新节点node4 复制到节点群nodes目录下
命令:cp -r bash ./node4 nodes/127.0.0.1/
输出:

(3)将新节点node0的文件复制到节点群node4目录下
命令:cd nodes/127.0.0.1/ && cp node0/config.ini node0/start.sh node0/stop.sh node4/
输出:

(4)修改node4/config.ini
对于[rpc]模块,修改 channel_listen_port和jsonrpc_listen_port;
对于[p2p]模块,修改listen_port并在node中增加自身节点信息
命令:vi node4/config.ini
输出:

(5)复制群组配置信息
命令: cp node1/conf/group.1.genesis node4/conf/ && cp node1/conf/group.1.ini node4/conf
输出:

3.启动新节点加入区块链系统并验证
参考答案:
命令:cd node4 && bash stop.sh && bash start.sh

(2) 检查新节点连接情况
命令:tail -f node4/log/log* | grep P2P

子任务1-2-4:区块链网络运维
根据任务描述要求,完成网络配置与管理运维操作,具体内容如下:
1.设置区块链系统黑名单,将node3设为黑名单禁止连接,并验证
参考答案:
(1)查看node0节点的连接状态日志(现有4个节点连接)
命令:tail -f node0/log/log* | grep connected
输出:

(2)编辑节点node0的config.ini文件,将node3加入黑名单里面
命令:vi config.ini
编辑certficate_blacklist,设置node3节点ID为黑名单

(3)重新启动节点
命令:bash node0/stop.sh && bash node0/start.sh
输出:

(4)查看node0的节点连接状态日志(现有3个节点连接)
命令:tail -f node0/log/log* | grep connected
输出:

(5)重复操作(1)-(4),验证节点配置数量

(6)重复操作(1)-(4),完成节点node2的配置与验证

(7)重复操作(1)-(4),完成节点node4的配置与验证

2.设置系统中区块打包数量为2000
参考答案:
(1)启动控制台:命令:bash start.sh

(2)设置区块打包数量为2000
命令:setSystemConfigByKey tx_count_limit 2000
输出:

3.验证区块打包数量
参考答案:
命令:getSystemConfigByKey tx_count_limit
输出:

任务1-3:区块链系统测试
设计对区块链系统的测试流程,结合实际业务需求,调用部署的智能合约中进行系统测试,性能测试等;根据业务需求,分析并且修复给定智能合约中的安全漏洞.利用模拟业务和测试工具来完成对区块链系统服务数据的测试.
1.使用命令启动区块链系统可视化一体平台并验证启动情况
参考答案:
命令:python3 deploy.py startAll

实现基于浏览器测试启动情况验证(访问地址http://{服务器IP}:5000)
2.通过可视化平台生成包括生产商(producer)、经销商(distributor)、零售商(retailer)账户,并将账户以p12加密形式导出后倒入指定前置可视化平台,验证地址一致性.
参考答案:
(1)验证producer地址的一致
(2)验证distributor地址的一致
(3)验证retailer地址的一致
3.使用postman对上述功能接口进行验证,并进行验证结果截图提交工程文档.
- ⚪对食品安全溯源系统服务端“添加食品”(/produce)功能接口进行验证,并将验证结果截图提交工程文档
| 请求路由: | /produce |
| 请求方法: | POST |
| 输入项说明: |
| |||||||||||||||
| 输出项说明: |
|
参考答案:
使用Postman正确操作如下:

4. 参照工程项目(地址: “/root/projects”)使用Calipers测试工具对食品安全溯源系统智能合约生成新食品(newFood) 功能进行压力测试。具体要求如下:
⚪ 提供核心测试代码。
参考答案:
(1)config.yaml 核心代码

(2)newFood.js核心代码

⚪ 设置txNumber=10,tps=1,所有测试通过率为100%
参考答案:
命令:npx caliper benchmark run --caliper-workspace caliper-benchmarks --caliper-benchconfig benchmarks/samples/fisco-bcos/trace/config.yaml --caliper-networkconfig networks/fisco-bcos/test-nw/fisco-bcos.json
输出:

report.html

5.智能合约安全漏洞测试.
参考答案:略
相关文章:
2023年区块链职业技能大赛——区块链应用技术(一)模块一
模块一:区块链产品方案设计及系统运维: 任务1-1:区块链产品需求分析与方案设计 1.依据给定区块链食品溯源系统的业务架构图,对考题进行业务分析,可能多的去考虑一个业务系统所需要的模块,使用Visio或思维导图工具展现本系统的基本设计概念和…...
4 软件工程——总体设计
一、设计过程 1.两个主要阶段 系统设计阶段:确定系统的具体实现方案结构设计阶段:确定软件结构 2.九个步骤 设想供选择的方案选取合理的方案推荐最佳方案功能分解设计软件结构设计数据库制定测试计划书写文档审查和复审 二、设计原理 1.模块化 模块…...
Elasticsearch:确保业务规则与语义搜索无缝协作
作者:来自 Elastic Kathleen DeRusso 利用查询规则与语义搜索和重新排序相结合的强大功能。 更多阅读: Elasticsearch 8.10 中引入查询规则 - query rules Elasticsearch 查询规则现已正式发布 - query rules 你是否知道查询规则(query ru…...
【大语言模型】ACL2024论文-33 Johnny 如何说服大型语言模型越狱:通过人性化 LLMs 重新思考挑战 AI 安全性的说服技巧
【大语言模型】ACL2024论文-33 Johnny 如何说服大型语言模型越狱:通过人性化 LLMs 重新思考挑战 AI 安全性的说服技巧 目录 文章目录 【大语言模型】ACL2024论文-33 Johnny 如何说服大型语言模型越狱:通过人性化 LLMs 重新思考挑战 AI 安全性的说服技巧目…...
【LuaFramework】LuaFramework_UGUI_V2框架学习
GitHub - jarjin/LuaFramework_UGUI_V2: 基于tolua的热更新框架V2 旧版本是Unity 5.0,这个是新版本支持更高版本的 导入工程后先清除wrap 然后重新生成wrap,你会发现有个报空null,框架的问题总结下所有的框架wrap相关报错问题和修复方法&…...
使用 AOP 在 Spring Boot 中实现跟踪和日志记录
在现代应用程序中,尤其是使用微服务构建的应用程序,跟踪和日志记录在跟踪流经各种服务的请求方面起着至关重要的作用。跟踪可帮助开发人员诊断问题、监控性能并了解用户在多个系统中的旅程。 在此博客中,我们将介绍如何使用traceId从前端生成…...
如何永久解决Apache Struts文件上传漏洞
Apache Struts又双叒叕爆文件上传漏洞了。 自Apache Struts框架发布以来,就存在多个版本的漏洞,其中一些漏洞涉及到文件上传功能。这些漏洞可能允许攻击者通过构造特定的请求来绕过安全限制,从而上传恶意文件。虽然每次官方都发布补丁进行修…...
FPGA远程升级 -- FLASH控制
简介 前文讲到如何实现XILINX芯片程序跳转,但升级程序是事先通过VIVADO工具将两个程序合成一个BIN文件实现升级的,并不能在线更新升级。要实现远程升级的能力需要对FPGA的FLASH进行在线写入升级程序。 FLASH介绍 本次设计FLASH选用的是S25FL128芯片&…...
企业内训|高智能数据构建、Agent研发及AI测评技术内训-吉林省某汽车厂商
吉林省某汽车厂商为提升员工在AI大模型技术方面的知识和实践能力,举办本次为期8天的综合培训课程。本课程分为两大部分:面向全体团队成员的AI大模型技术结构与行业应用,以及针对技术团队的高智能数据构建与Agent研发。课程内容涵盖非结构化数…...
ARM异常处理 M33
1. ARMv8-M异常类型及其详细解释 ARMv8-M Exception分为两类:预定义系统异常(015)和外部中断(1616N)。 各种异常的状态可以通过Status bit查看,获取更信息的异常原因: CFSR是由UFSR、BFSR和MMFSR组成: 下面列举HFSR、MMFSR、…...
(补)算法刷题Day24: BM61 矩阵最长递增路径
题目链接 思路 方法一:dfs暴力回溯 使用原始used数组4个方向遍历框架 , 全局添加一个最大值判断最大的路径长度。 方法二:加上dp数组记忆的优雅回溯 抛弃掉used数组,使用dp数组来记忆遍历过的节点的最长递增路径长度。每遍历到已…...
探索 Bokeh:轻松创建交互式数据可视化的强大工具
探索 Bokeh:轻松创建交互式数据可视化的强大工具 在数据科学和数据分析领域,交互式数据可视化是一项不可或缺的技能。Bokeh 是一个强大的 Python 库,它可以帮助我们快速构建高质量的交互式图表和仪表盘,同时兼具高性能和灵活性。…...
【Rust自学】6.1. 定义枚举
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 6.1.1. 什么是枚举 枚举允许我们列举所有可能的值来定义一个类型。这与其他编程语言中的枚举类似,但 Rust 的枚举更加灵活和强…...
【Java基础面试题035】什么是Java泛型的上下界限定符?
回答重点 Java泛型的上下界限定符用于对泛型类型参数进行范围限制,主要有上界限定符和下届限定符。 1)上界限定符 (? extends T): 定义:通配符?的类型必须是T或者T的子类,保证集合元素一定是T或者T的子类作用&…...
0基础学前端系列 -- 深入理解 HTML 布局
在现代网页设计中,布局是至关重要的一环。良好的布局不仅能提升用户体验,还能使内容更具可读性和美观性。HTML(超文本标记语言)结合 CSS(层叠样式表)为我们提供了多种布局方式。本文将详细介绍流式布局、Fl…...
【python高级】342-TCP服务器开发流程
CS模式:客户端-服务端模式 TCP客户端开发流程介绍(五步)(C端) 1.创建客户端套接字对象 2.和服务端套接字建立连接 3.发送数据 4.接收数据 5.关闭客户端套接字 TCP服务端开发流程(七步)…...
《计算机组成及汇编语言原理》阅读笔记:p48-p81
《计算机组成及汇编语言原理》学习第 4 天,p48-p81 总结,总计 34 页。 一、技术总结 1.CISC vs RISC p49, complex instruction set computing For example, a complex instruction set computing (CISC) chip may be able to move a lar…...
AI在传统周公解梦中的技术实践与应用
本文深入探讨了人工智能在传统周公解梦领域的技术实践与应用。首先介绍了传统周公解梦的背景与局限性,随后详细阐述了 AI 技术如何应用于梦境数据的采集、整理与分析,包括自然语言处理技术对梦境描述的理解,机器学习算法构建解梦模型以及深度…...
GIS数据处理/程序/指导,街景百度热力图POI路网建筑物AOI等
简介其他数据处理/程序/指导!!!(1)街景数据获取(2)街景语义分割后像素提取,指标计算代码(绿视率,天空开阔度、视觉熵/景观多样性等)(3…...
ssr实现方案
目录 序言 一、流程 二、前端要做的事情 三、节点介绍 四、总结 序言 本文不是详细的实现过程,是让你最快最直接的理解ssr的真正实现方法,有前端经验的同学,能够很好的理解过程,细节根据具体项目实现 一、前端要做的事情 1.…...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
毫米波雷达基础理论(3D+4D)
3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文: 一文入门汽车毫米波雷达基本原理 :https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...
