这篇文章上次修改于 469 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
第一章
1.不在比特币区块头中的字段是(交易计数器)
解:比特币区块头中的字段包括版本号、父区块哈希、Merkle根、时间戳、难度值、Nonce(随机数)
2.比特币系统采用(PoW)共识算法
解:比特币系统采用PoW(工作量证明)共识算法来决定由谁来记账
3.下面属于国产哈希算法的是(SM3)
解:SM开头的算法就是国产算法,国产哈希算法包括SM1-9和祖冲之密码算法。
4.以太坊推出的智能合约编程语言是(Solidity)
5.比特币的“白皮书”,也称之为“创世圣经”由(中本聪)发表
6.可以把每一台参与比特币系统构建的计算机称为(节点)
7.中本聪挖出了比特币的第一个区块,也就是(创世区块)
8.用户记录和验证交易都会得到一定数额的比特币奖励,这个过程被形象的称为(挖矿)
9.标志着比特币第一次有了实际的价值的事件是(A)
A.买了2个披萨   B.买了1个披萨
C.买了2个苹果   D.以上都不是
10.哈希函数又称为(摘要函数),或者(散列函数)
11.比特币系统中采用(SHA-256)算法计算区块的摘要信息
12.Merkle树必须是(满二叉树)
13.从架构设计的角度看,区块链应用的架构可以分为4个层次,即(存储层)、(网络层)、(扩展层)和(应用层)
14.区块链可以分为(公有链)、(私有链)和(联盟链)
15.智能合约是(用户交易)提交的
16.智能合约的概念最早于1996年由法律学者(尼克·绍博)提出
17.智能合约遵守(Code is law,代码既法则)
18.智能合约的内容保存在(链)上
19.智能合约是(点对点)的数字价值转移
第二章
1.以太坊的4个发展阶段中,(边境)是刚刚发布时的测试阶段
解:(1)边境(2)家园(3)大都会(4)宁静
2.以太坊数据存储在谷歌推出的非常高效的键值对数据库(LevelDB)中
3.以太坊区块链的状态数据以(MPT)的形式存储在StateDB中
4.以太币的最小单位是(wei)
解:wei是以太币的最小单位,1ETH等于10的18次方wei
5.以太坊采用的共识算法是(PoW+PoS)
解:以太坊采用PoW+PoS共存的共识算法
6.(以太坊)是智能合约应用最广泛的平台
7.以太坊的创始人(维塔利克·布特林),人称V神
8.本质上,以太坊是一个基于(交易)的状态机
9.智能合约具有(值)和(状态)两个属性
10.如果问以太坊四层架构:(应用层)、(合约层)、(网络层)、(存储层)
11.如果问以太坊三层架构:(应用层)、(区块链核心层)、(基础底层)
12.以太坊客户端所包含的层次是(区块链核心层)和(基础底层)
13.(以太坊应用层)是用户开发的部分
14.以太坊支持(外部账户)和(合约账户)这2种账户
15.以太坊共识算法同PoW转(PoS)
第三章
1.(常量)是内存中用于保存固定值的单元
2.(状态变量)永久性地存储在智能合约的区块链中
3.下面不属于Solidity基本数据类型的是(枚举类型)
A.字符串型   B.地址类型
C.合约类型   D.枚举类型
4.Solidity编辑器(Remix),文件后缀名为(.sol)
5.Solidity标识符的命名规则:
(1)标识符名字的第1个字符必须是字母或下划线(_)
(2)标识符名字的第1个字符后面可以由字母、下划线(_)或数字(0~9)组成
(3)标识符名字是区分大小写的,也就是说Apple和apple是不同的
6.变量分为两种,(全局变量)和(局部变量),其中全局变量可称为(状态变量)
7.修饰符可以分为(可见性修饰符)和(存储位置修饰符)两种
8.存储位置修饰符用于指定变量的存储位置,包括(storage)、(memory)和(calldata)这3种类型
9.msg.sender:返回当前调用函数者的地址
10.msg.value:当前消息所附带的以太币,单位为wei
11.Solidity数据类型分为两种,(基本数据类型)和(引用数据类型)
12.(无符号整型)分为uint8、uint16、uint32、…、uint256,uint代表uint256
13.地址类型数据的长度为(20字节(40位)的16进制数)
14.address类型变量的transfer()和send()函数可以从当前账户中转账到地址对应的账户
15.
•使用(enum)关键字来定义枚举类型
•使用(struct)关键字定义结构体类型
•在Solidity中定义智能合约关键字是(contract)
•使用(function)关键字定义函数
•使用(mapping)关键字定义映射
•使用(is)关键字继承合约
•使用(constructor)关键字使用构造函数
•使用(interface)关键字定义接口
•使用(event)关键字定义事件
•使用(emit)关键字实现事件
•使用(modifier)关键字定义函数修改器
16.
•使用(push())函数用于在数组的尾部追加一个元素
•使用(pop())函数用于在数组的尾部删除一个元素
•使用(length())函数查看数组长度
第四章
1.至少执行一次循环语句体的循环语句是(do…while…语句)
2.(for)语句中通常需要定义一个循环控制变量,其可在初始化语句中声明
第五章
1.下面不是用于选择状态变量可见性的是(external)
A.public   B.private
C.internal   D.external
2.一个智能合约中可以有(1)个构造函数
解:一个智能合约中只能有一个构造函数
3.继承智能合约后,子合约不能访问父合约中的(私有函数)
4.导入外部函数的语句是(import)
5.(revert())用于标识错误,并恢复当前调用
6.
•状态变量可见性修饰符:public、private、internal
•函数可见性修饰符:public、private、internal和external
7.Solidity提供了(assert())和(require())两个函数来检查条件
第一章
1.(哈希)是一个函数,它可以将不同长度的数据映射为固定长度的数据。
2.Merkle树是一个(二叉)树
3.比特币提供一种叫做(UTXO)的机制,也就是未花费的交易输出。比特币系统中并没有账户的概念,每个比特币钱包中都包含若干个大小不一的(UTXO)
4.区块链应用的架构可以分为(存储层)、(网络层)、(扩展层)和(应用层)4个层次。
5.区块链可以分为(公有链)、(私有链)和(联盟链)3种类型
第二章
1.以太坊的状态机是指从创世状态开始,由(交易)而引起的所有以太坊网络状态的变化
2.EVM有自己的专属语言,即(EVM字节码)
3.以太坊的手续费有一个很特别的名次(Gas)
4.以太坊支持(外部账户)和(合约账户)2种账户
5.以太坊私有链中挖矿的命令为(miner.start(1))
第三章
1.因为以太坊提供了一个实时在线Solidity编辑器(Remix),所以无须安装和配置任何软件,即可完成以太坊智能合约的在线开发、在线编译、在线测试和在线部署。
2.Remix IDE页面主要分为(文件管理器)、(文件编辑器)和(开发工具面板)3个区域
3.在定义变量时需要指定变量的修饰符。修饰符可以分为(可见性修饰符)和(存储位置修饰符)两种
4.(映射)是由键值对组成的自定义类型
第四章
1.(分支语句)和(循环语句)统称为流程控制语句
2.Solidity的循环语句包括(for)语句、(while)语句和(do…while…)语句
3.在循环语句中,可以使用(break)语句跳出循环语句
第五章
1.函数的定义包括(函数名)、(函数修饰符)、(参数)、(函数体)和(返回值)等部分
2.函数修饰符包括(可见性)修饰符、(状态性)修饰符和(payable)修饰符和(自定义)修饰符也叫函数修改器等类型
3.Solidity的状态性修饰符包括(pure)、(view)、(constant)等
4.(抽象)函数没有函数体,函数声明头以分号;结束。
没有评论