区块链模拟题
理论题
我们可以在WeBASE平台根据()来监控区块链系统的共识状态。
- A、用户列表
- B、签名列表
- C、哈希列表
D、节点列表
以下关于断言描述不正确的是()。
A、断言的目的并不是为了表示与验证软件开发者预期的结果
- B、若断言不为真时,程序会中止执行,并给出错误信息
- C、不要使用断言作为公共方法的参数检查,公共方法的参数永远都要执行
- D、断言语句不可以有任何边界效应,不要使用断言语句去修改变量和改变方法的返回值
如何通过Console控制台添加委员。
A、grantCommitteeMember
B、updateCommitteeMemberWeight
C、revokeCommitteeMember
D、updateThreshold
链初始状态,没有任何权限账户记录。使用Console控制台操作。 revokeCommitteeMember:撤销委员 updateCommitteeMemberWeight:修改委员权重 updateThreshold:委员投票生效阈值更改 grantOperator:添加运维角色 revokeOperator:撤销运维角色
对已有用户做需求分析的优势在于可以()或()获取与需求背景高度相关的数据
- A、定量,定值
- B、不定量,定性
- C、不定性、定量
D、定量,定性
WeBASE中的账户管理功能可以新增账号(登录此系统账号),(),修改账户邮箱等等,只有admin账号才能查看此功能。
- A、一号多用
- B、复制账号
- C、冻结账号
D、修改密码
通过Hyperledger Explorer可查看Fabric网络的状态,重点需要观察的时()通道信息
- A、node
- B、contract
C、mychannel
- D、thechannel
明确调研目的是指明确需求调研需要(),初步建立一个需求调研的主题,拟定(),为需求调研的实施指明方向。
- A、达到的具体目标,需求报告
B、达到的具体目标,需求调研提纲
- C、建立的系统模型,需求报告
- D、建立的系统模型,需求调研提纲
以下对区块链常见性能指标描述不正确的是()。
A、响应时间指的是执行一个请求,记录从发送请求到数据上链所需要的时间
B、吞吐量指的是区块链系统每秒发送的请求数量
C、CPU利用率指的是区块链系统计算资源的利用率
D、事务正确性指的是正确处理数据总量/提交事务的总数
吞吐量指的是区块链系统每秒能够处理的交易数量
区块序号从()开始,每生成一个新的区块区块序号加1,可以通过记录区块序号确定监控应用的范围
- A、1
- B、2
- C、3
D、0
以下哪种方法可以注册合约至CNS?()
- A、deployByCNS
- B、queryCNS
- C、callByCNS
D、registerCNS
部署合约后,currentAccount表示的意思是合约地址。
正确
错误
Account Address合约地址
运行()可以授权账户的部署合约和创建用户表权限
A、grantDeployAndCreateManager
B、listDeployAndCreateManager
C、revokeDeployAndCreateManager
D、grantNodeManager
listDeployAndCreateManager:列出有权部署和创建智能合约的管理者列表 revokeDeployAndCreateManager:撤销账户的部署合约和创建用户表权限 grantNodeManager:授予节点管理权限
以下哪一个configtxgen命令可以写入起始块信息的路径()
A、configtxgen -inspectBlock
B、configtxgen -inspectChannelCreateTx
C、configtxgen -outputBlock
D、configtxgen -outputCreateChannelTx
configtxgen -inspectBlock:打印输出指定目录下包含块的配置信息 configtxgen -inspectChannelCreateTx:打印输出指定目录下包含交易的配置信息 configtxgen -outputCreateChannelTx:写入通道创建配置的路径
根据《中华人民共和国密码法》中规定,下列选项中()关于密码的说法不正确的是。
A、普通密码属于国家秘密
B、核心密码属于国家秘密
C、商用密码属于国家秘密
D、密码分为核心密码,普通密码和商用密码
在中华人民共和国密码法中,普通密码和核心密码都属于国家秘密,不能为任何单位或个人所获取。商业密码则是一种非对称密码,用于保护商业机密信息的安全性。因此,普通密码、核心密码和商业密码在法律上都是严格保密的,不得泄露或非法使用。
以下对区块链功能测试结果的分析方法描述不正确的是()。
- A、需要将传统软件部分和区块链部分分开
- B、需要对软件的所有功能进行记录
- C、需要分析软件常用的功能是否用户不必阅读手册就能使用
D、需要分析执行风险操作是否有提示,若无提示则表示合理
使用判断表方式时,如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚超出这个范围边界的值作为测试输入数据。
正确
错误
边界值方式
运行listUserTableManager可以()。
- A、根据键查询系统参数的值
- B、授权账户对用户表的写权限
C、查询拥有对用户表写权限的账号列表
- D、撤销账户对用户表的写权限
样本计划主要对抽样框,调研对象,(),抽样方式,调研范围,调研地点等具体内容进行确定
A、调研数量
- B、样本框
- C、抽样表
- D、调研报告
区块链系统功能测试点包括去中心化,防篡改,去信任,()等
A、开放性
- B、封闭性
- C、去中心化
- D、手动执行
按交易哈希查询交易数据的命令是(),该命令需要以交易哈希作为参数,执行之后返回交易信息。
A、BlockByNumber
B、getBlockByNumber
C、getTransactionByHash
D、setBlockByNumber
getBlockByNumber:按照区块序号查询区块数据
下列对于单元测试的优点描述错误的是()
A、它为代码的重构提供了保障
B、编写单元测试将使我们从调用者的角度观察思考
C、单元测试是一种无价的文档,但他无法展示函数或类是如何使用的
D、自动化的单元测试避免了代码出现回归
单元测试是一种无价的文档,他是展示函数或类如何使用的最佳文档。
在控制台使用命令(),可以生成公司钥
- A、amount.sh
B、get_account.sh
- C、get.sh
- D、account.sh
运行()可以查询拥有部署合约和创建用户表权限的账户列表
- A、grantDeployAndCreateManager
B、listDeployAndCreateManager
- C、revokeDeployAndCreateManager
- D、grantNodeManager
在区块链应用设计中,用户调研问卷设计的基本原则是()。
A、目的性原则
B、明确性原则
C、逻辑性原则
D、简明性原则
E、技巧性原则
PKCS#1是RSA Cryptography Specifications,即RSA密码学规范,他在[rfc8017]中有详细说明 ,定义了RSA密钥文件的格式和编码方式,以及加解密,签名,填充的基础算法,RSA公私钥的ASN.1可根据(),即可解析出RSA公私钥中的参数。
A、类型定义
- B、数据定义
- C、类型编码
- D、数据控制
E、数据编码
以下关于边界测试中边界理解不正确的是()。
A、边界测试中的边界可以指输入域/输出域边界
B、边界测试中的边界可以指数据结构的边界
C、边界测试中的边界可以指状态转换的边界
D、边界测试中的边界可以指功能界限的边界,但不能是端点
边界测试中的边界可以指功能界限的边界和端点
以下对合规性测试的内容描述不正确的是()。
A、收集和分类相关法律,法规,标准和规范,建立安全知识库
B、梳理知识库库文件的控制点,建立合规控制矩阵
C、根据控制点建立评价指标体系和控制方法
D、采用访谈,调查,检查,观察,自动化工具等方法开展合规性测试
收集和分类区块链相关法律、法规、标准和规范,建立安全知识库
测试周期是指从测试项目计划建立到BUG提交的整个测试过程,包括(),测试需求分析,测试用例设计,测试用例执行,BUG提交五个阶段。
A、软件项目测试计划
- B、市场调查报告
- C、市场需求调研
- D、测试经费统计
WeBASE中的()功能可以查看前置()的链上事件通知信息列表
A、订阅事件,已定阅
- B、订阅事件,未订阅
- C、地址管理,已定阅
- D、用户管理,未订阅
捕获并验证数据,使用捕获的数据计算度量值属于度量生命周期中的()阶段
- A、分析
- B、通信
C、评估
- D、报告
getSyncStatus可以提供console控制台()。
- A、查看共识节点列表
- B、获取pbft视图
- C、查看共识状态
D、查看同步状态
交易属性blockHash的含义是()。
- A、交易所在的链ID
B、该交易的区块哈希
- C、交易的区块限制
- D、交易所在的群组ID
常用的统计图包括饼图,(),线型图,面积图,散点图。
A、条形图
- B、雷达图
- C、气泡图
- D、圆环图
根据某表格的交易数据,from字段下的数据是xxxxxxA,hash字段下的数据是XXXXXB,nouce字段下的数据是XXXXc,blockNumber字段下的数据是287.请问转出的积分必须是经其中哪一个数据对应的私钥签名的交易()
A、XXXXA
B、XXXXB
C、XXXXc
D、287
转出积分交易必须是经特定账户对应的私钥签名的交易。题中from代表账户
运行deployByCNS可以采用CNS部署合约
正确
- 错误
以下对于Console控制台中治理方角色说明正确的一项是()。
A、治理方拥有投票权,可以参与治理投票,可以增删节点,修改链配置,添加撤销运维,冻结解冻合约,对用户表的写权限控制
B、治理方由治理方添加运维账号,运维账号可以部署合约,创建表,管理合约版本,冻结解冻本账号部署合约
C、治理方的业务方账号由运维添加到各个合约,可以调用该合约的写接口
D、治理方监管链的运行,能够获取链运行中权限变更的记录,能够获取需要审计的数
B、运维方由治理方添加运维账号 C、业务方的业务账号.... D、监管方
静态类型的编程语言(),是以太坊的智能合约实现的编程语言,运行在以太坊的虚拟机上
- A、C++
- B、MATLAB
C、Solidity
- D、WeChat
Kerckhoffs假设是指如果()的强度依赖于攻击者不知道算法的(),那注定会失败
- A、古典密码系统
- B、旧密码系统
C、新密码系统
- D、外部机制
E、内部机制
区块链交易中可以记录()
A、数字货币
B、域名
C、地理位置
D、股票
用户调研问卷的设计有多种分类方法,问题按照内容不同可以分为()。
- A、学习类
B、行为类
C、态度类
D、背景类
- E、测试类
因果图是一种简化的点状图,能够表示输入条件和输出结果之间的关系
正确
错误
因果图是一种简化的逻辑图
Hyperledger Fabric()配置完成后就可以通过docker-compose启动项目
- A、浏览器
- B、环境变量
C、配置文件
- D、环境依赖
智能合约在()网络中以单独的容器存在
- A、FISCO BCOS
B、Fabric
- C、Codechain
- D、Fichain
运行()可以调用合约
- A、listAbi
B、call
- C、listAbi
- D、getDeployLog
运行()可以根据键查询系统参数的值
A、getSystemConfigByKey
- B、grantUserTableManager
- C、listUserTableManager
- D、revokeUserTableManager
WeBASE中,在"区块链信息"->"查看区块"中可以通过浏览器查看节点连接状态
- 正确
错误
运行()可以授权账户的节点管理权限
- A、grantDeployAndCreateManager
- B、listDeployAndCreateManager
- C、revokeDeployAndCreateManager
D、grantNodeManager
用户的私钥属于Fabric交易提案的信息
正确
错误
私钥本身并不属于交易提案(transaction proposal)的信息。Hyperledger Fabric使用证书和密钥对来表示参与者的身份,私钥用于签署交易和其他与身份验证相关的操作 提案(Proposal): 包含建议的交易,包括要执行的操作、链码函数调用等。 Header(标头): 包含有关交易提案的元信息,例如通道ID、创建时间等。 签名(Signature): 用于证明提案的有效性。每个参与者都使用其私钥对交易提案进行签名。
智能合约编译需要在智能合约的部署之后
正确
错误
编译合约-->部署合约-->测试合约-->撰写报告
完成智能合约部署后,操作人员需要开展应用方面的开发,具体操作步骤包括(),部署项目,参数结果,撰写报告。
- A、编译合约
B、准备环境
- C、修改bug
- D、产品审批
我们可以根据()去查询对应的交易回执,在回执中查看交易最终执行的结果
- A、账户地址
- B、账户余额
C、交易哈希
- D、数字签名
计算机软件保护条例规定,若未经允许,复制或部分复制著作权人的软件的,处每件500元或者货值金额1倍以上5倍以下的罚款
正确
错误
每件100元
区块链应用测试需要度量生命周期,生命周期不同阶段包括()
- A、调研
B、分析
C、通信
D、评估
E、报告
在BaaS平台上区块链浏览器中以下说法正确的有()。
A、在BLOCK(区块信息),包含区块高度,区块Hash,区块时间,难度,额外数据,Gas Limit
B、BLOCK LIST(区块列表),动态更新的区块列表,以及区块中包括的交易个数
- C、节点控制台与区块链浏览器均采用cakeshop提供服务,区块链浏览器主要提供节点相关信息
D、FIND BLOCK,/TRANSACTION,根据区块高度或交易hash进行检索
E、区块链浏览器提供了Quorum联盟网络区块相关的信息浏览与查询
在BaaS平台上交易中,以下说法正确的是()。
A、区块由交易组成,区块体中包含若干项交易数据
B、交易输入用来指明钱的来源
C、交易输出用来指明钱的去向
D、除了交易输入和交易输出外,交易中还包含版本号和锁定时间
E、交易输入中,存储了其关联的交易输出指针,同时还存储了该输出的解锁脚本
区块链服务平台的组织管理功能能够对用户订购的组织实例进行动态管理,支持查看组织的基本信息,管理组织内的节点,管理组织的证书。在证书管理界面不会显示的是()。
- A、证书ID
- B、证书加密方式
C、删除日期
D、申请日期
E、证书地址
实操题
1、缺少方法标识 function
2、for循环缺少i++
3、return后未用括号,应为return (evidence,“null”);
4、方法中应未returns
5、变量类型应为address[] signers是变量名称,不应该加[]
数字藏品:
存储状态–数字藏品需要有状态变化
多方协助–所有参与者都能更新和共享数字藏品的信息
多方不互信–多方不一定都可以信任,需要借助区块链的去中心化来确保数字藏品的可信度
TTP(可信第三方)不能完美解决----对可信第三方存在担忧
不限制参与----数字藏品所有人都可以自由参与
一、手动创建账户的步骤:
1、不同的操作系统命令略有不同,在Ubuntu系统上安装openssl命令是:
sudo
apt
install -y openssl2、检查openssl是否已正确安装;
openssl
version
3、选择ECDSA算法作为非对称加密算法,选择曲线secp256k1作为算法曲线,生成相关的参数文件:
openssl
ecparam
-out secp256k1.param -name secp256k14、查看生成的参数文件:
cat
secp256k15、生成明文形式保存的私钥user.pem命令是:
openssl
genpkey
-paramfile secp256k1.param -out user.pem6、生成公钥文件,使用user.public.pem作为文件名的命令是:
openssl ec -in user.pem -
pubout
-out user.public.pem7、生成加密保存的账户私钥文件的命令是:
openssl pkcs12 -export -name key -nocerts -inkey user.pem -out user.p12
8、查看p12文件的命令是:
openssl pkcs12 -in user.p12 -nodes
二、使用工具创建账户的步骤:
1、在Ubuntu系统上安装openssl命令是:
sudo apt install -y openssl
2、下载账户生成工具get_account.sh的命令是:
curl -#LO hppts://raw.githubusercontent.com/FISCO-BCOS/console/master/tools/get_account.sh && chmod u+x get_account.sh
3、下载国密账户生成工具get_gm_account.sh的命令是:
curl -#LO hppts://raw.githubusercontent.com/FISCO-BCOS/console/master/tools/get_gm_account.sh && chmod u+x get_gm_account.sh
4、检查get_account.sh脚本,执行指令:
bash get_account.sh -
h
5、检查get_gm_account.sh脚本,执行指令
bash get_gm_account.sh -h
6、用get_account.sh脚本创建账户:
bash get_account.sh
7、用get_gm_account脚本创建国密版账户:
bash get_gm_account.sh
8、用get_account.sh脚本创建账户,并输入保存私钥的密码的命令:
bash get_account.sh -
p
9、用get_gm_account脚本创建国密版账户,并输入保护私钥的密码的命令:
bash get_gm_account.sh -p
10、使用get_account.sh直接从私钥文件中获取账户地址的命令是:
bash get_account.sh -
k
accounts/xxxx.pem11、使用get_gm_account.sh直接从国密的私钥文件中直接获取账户地址:
bash get_gm_account.sh -k accounts_gm/xxxxx.pem
12、使用get_account.sh直接从p12私钥文件中直接获取账户地址的命令:
bash get_account.sh -
P
accounts/xxxx.p1213、使用get_gm_account.sh直接从p12私钥文件中直接获取账户地址的命令:
bash get_gm_account.sh -P accounts_gm/xxxx.p12
三、证书的获取和续期流程
1、下载FISCO BCOS运维部署工具的命令
cd ~/
git clone https//github.com.FISCO-BCOS/generator.git
2、安装generator的命令
cd ~/generator && bash ./scripts/install.sh
3、使用generator命令生成链证书
./generator --generate_chain_certificate ./
chain.dir
4、机构通过使用generator命令生成链证书
./generator --generate_agency_certificate ./agency_dir ./chain.dir
AgencyA
5、机构使用generator命令生成节点证书和SDK证书
./generator --generate_node_certificate ./node_dir agnecy_dir/AgencyA
node0
macos环境安装依赖
brew
install
openssl curlubuntu环境安装依赖
sudo
apt
insatll -y openssl curlcentos环境安装依赖
sudo
yum
isntall -y openssl openssl-devel使用-l和-p生成单机联盟链,本地使用-e ./fisco-bcos
bash
build_chain
.sh -l 127.0.0.1:4 -p 30300,20200,8545检查是否启动成功
ps -ef |grep -v grep|
grep
fisco-bcos
区块链模拟题–实操题
一、常用区块链系统监控方法
1、区块链系统进程监控
top
2、更加先进的交互式实时监控工具(需提前安装)的命令
htop
3、区块链系统内存监控的命令:
vmstat的使用是通过两个数字完成的,第一个参数是设置
数据采集的
时间间隔(单位为秒),第二个参数是采样的次数
vmstat 2 10
4、区块链系统网络吞吐监控:
netstat -
nlp
5、将netstat通过管道操作与grep命令联用的命令是:
netstat -nlp |grep ‘20201’
6、区块链系统磁盘使用情况监控:
iostat命令使用也会配套使用两个参数,第一个参数用于指定
采集间隔时间
,单位为秒,第二个参数用于指定采集的次数。iostat 2 10
二、FISCO BCOS节点的通信设置
1、目前FISCO BCOS已支持IPv6的配置信息,可以在config.inl文件中找到[p2p]关键字进行相关配置。
#ipv4 [p2p] listen_ip=0.0.0.0 listen_port=30300 node.0=127.0.0.1:30300 node.1=127.0.0.1:30304 node.2=127.0.0.1:30308 node.3=127.0.0.1:30312 #ipv6 [p2p] listen_ip=::1 listen_port=30300 node.0=[::1]:30300 node.1=[::1]:30304 node.2=[::1]:30308 node.3=[::1]:30312
三、典型区块链技术的数据存储设置方法
1、FISCO BCOS支持多账本,每条链包括多个独立账本,账本间数据相互隔离,群组间交易处理相互隔离。
在group.group1.ini文件中配置,修改node0的可变配置内容:
[storage]
;storage db type,rocksdb/mysql/scalable,rocksdb is recommended
type =
rocksdb
;set true to turn on binary log
binary_log =
true
;scoroll_threshold=scroll_threshold_multiple*1000,only for scalable
scroll_threshold_multple=2
;set fasle to disable CachedStorage
cached_storage=true
;max cache memeory,MB
max_capacity=32
max_forward_block=10
;only for external,deprecated in v2.3.0
max_retry=60
topic=
DB
;only for mysql