文章目录
- 一、区块链面试题
-
- 1. 什么是区块链?
- 2. 流行的区块链平台有哪些。
- 3. 区块链是如何工作的?
- 4. 为什么区块链是一种值得信赖的方法?
- 5. 什么是区块链中的区块,如何识别?
- 6. 块的主要元素是什么?
- 7. 是否可以从区块链的网络中删除一个或多个块?
- 8. 将数据写入块后是否可以更改数据?
- 9. 区块链数据库中可用的记录类型是什么?
- 10. 哪种类型的记录可以保存在区块链中?
- 11. 有哪些不同类型的区块链?
- 12. 什么是分类账,并命名区块链中用户考虑的常见分类账类型?
- 13. 公钥和私钥有什么区别?
- 14. 区块链的主要特征是什么?
- 15. 区块链以什么顺序链接?
- 16. BIP代表什么?
- 17. 什么是加密及其在区块链中的作用?
- 18. 区块链分类账与普通分类账有何不同?
- 19. 什么是共识算法?
- 20. 共识算法有哪些类型?
- 21. 比特币区块链中使用哪种加密算法?
- 22. 什么是加密货币?
- 23. 使用区块链技术有什么好处?
- 24. 区块链架构的核心组件是什么?
- 26. 什么是双重支出?
- 27. 什么是盲目签名?
- 28. 区块链中有助于消除安全威胁的关键原则是什么?
- 29. 权益证明和工作证明有什么区别?
- 30. 什么是51%的攻击?
- 31. 什么是Coinbase交易?
- 32. 什么是默克尔树?它在区块链中的重要性是什么?
- 33. 是什么使您的交易数据在区块链中安全?
- 34. 什么是秘密共享?
- 35. 您对主管会计了解多少?区块链支持相同吗?
- 36. 什么是安全策略?
- 37. 区块链开发中的活板门功能是什么?
- 38. 为什么区块链需要硬币或代币?
- 39. scriptPubKey和P2SH地址之间有什么区别?
- 40. 什么是采矿?
- 41. 硬叉与区块链中的软叉有何不同?
- 42. 如何实施区块链项目?
- 43. 脱链交易和链上交易有什么区别?
- 44. 集中式网络,分散式网络和分布式分类帐之间有什么区别?
- 45. 哪些是使用最广泛的密码算法?
- 46. 什么是RSA算法?
- 47. RSA会受到攻击吗?如果是这样,怎么办?
- 48. 区块链生态系统的主要元素是什么?
- 49. 在保护交易记录时,您将如何进行风险管理?
- 50. 在组织中采用区块链技术是否有特定于网络的条件?
- 二、以太坊面试题A
-
- 1. 以太坊的有价通证叫什么?
- 2. Wei和以太有什么区别?
- 3. 以太坊的平均出块时间是多少?
- 4. 以太坊的平均块大小是多少?
- 5. 以太坊是否支持脚本? 如果是这样,支持什么类型的脚本?
- 6. 你如何得到以太?
- 7. 以太从哪里来的?
- 8. 什么是节点?
- 9. 你熟悉多少种以太坊网络?
- 10. 与以太坊网络交互的方式有哪些?
- 11. 你可以“隐藏”一个以太坊交易吗?
- 12. 交易记录在哪里?
- 13. 这些网络的ID是什么?
- 14. 我可以在Rinkeby测试网络中挖一些以太,然后转移到Live网络吗?
- 15. 为什么需要私有网络?
- 16. 你如何轻松查看有关交易和区块的详细信息?
- 17. 私有网络的交易和区块信息怎么查看呢?
- 18. 区块链的共识是什么?
- 19. 区块链中两种常用的共识模型是什么?
- 20. 简单地解释下工作量证明。
- 21. 以简单的方式解释权益证明。
- 22. 以太坊使用什么共识模式?
- 23. 怎么挖以太币?
- 24. 用什么来对交易进行签名?
- 25. 丢失私钥后还能恢复以太坊账户吗?
- 26. 有哪些方法可以连接到一个以太坊节点?
- 27. 那么Geth是什么?
- 28. 连接到geth客户端的默认方式是什么?
- 29. 你知道geth的哪些API?
- 30. 你可以使用哪些RPC通过网络连接到geth客户端?
- 31. 如果启动geth时使用了-rpc选项,哪些RPC会被启用?
- 32. 哪些RPC API是默认启用的?
- 33. 如何为JSON RPC启用Admin API?
- 34. 选项-datadir有什么作用?
- 35. 什么是geth的“快速”同步,为什么它更快?
- 36. 选项--testnet是做什么的?
- 37. 启动geth客户端会在屏幕上输出大量文字,应该如何减少输出信息?
- 38. 如何使用IPC-RPC将一个geth客户端连接到另一个客户端?
- 39. 如何将自定义javascript文件加载到geth控制台中?
- 40. geth客户端的帐户存储在哪里?
- 41. 为了进行交易,需要对账户进行什么操作?
- 42. 你提到了一些有关账户序号的内容。 什么因素决定账户的序号?
- 43. 是否可以使用geth进行挖矿?
- 44. 什么是“etherbase”?
- 45. 什么是智能合约?
- 46. 智能合约可以使用哪些语言编写?
- 47. 你能举出一个智能合约的用例吗?
- 48. 什么是Metamask?
- 49. Metamask使用哪个以太坊节点?
- 50. Metamask不支持什么?
- 51. 执行合约是否免费?
- 52. 访问智能合约的状态是否免费?
- 53. 谁执行合同?
- 54. 为什么调用智能合约的方法需要付费?
- 55. 为什么需要gas?
- 56. 是不是gas的价格决定了交易什么时候被处理?
- 57. 交易中的gas使用量取决于什么?
- 58. 交易费是如何计算的?
- 59. 如果智能合约的执行成本低于调用方指定的gas用量,用户是否得到退款?
- 60. 如果智能合约的执行成本高于指定的gas用量,会发生什么情况?
- 61. 谁支付智能合约的调用费用?
- 62. 节点在什么上面运行智能合约代码?
- 63. 为了运行智能合同,EVM需要什么?
- 64. 粗略的说,EVM有哪些组成部分?
- 65. 什么是Remix?
- 66. 在Remix中,可以连接哪些节点?
- 67. 什么是DApp,它与App有什么不同?有什么不同?
- 68. DApp的前端是否局限于某些技术或框架?
- 69. 前端用什么库连接后端(智能合同)?
- 70. 在DApp的前端需要哪些东西才能与指定的智能合约进行交互?
- 71. ABI有什么作用?
- 72. 字节码有什么作用?
- 73. 为什么要使用BigNumber库?
- 74. 为什么需要检查在Web DApp代码的开始部分是否设置了web3提供器(Provider)?
- 75. 为什么要使用web3.js版本1.x而不是0.2x.x?
- 76. 如何在web3 1.x中列出账户?
- 77. .call和.send有什么区别?
- 78. 这样发送1个以太对吗:.send({value:1})?
- 79. 那么为了发送1个以太,我必须将这个值乘以10^18?
- 80. 调用.send()时需要指定什么?
- 81. web3.eth.sendTransaction()的唯一功能是将以太发送到特定的地址,这个说法是否正确?
- 82. 你是否知道以太坊的可扩展性解决方案?
- 83. Solidity是静态类型的还是动态类型的语言?
- 84. Solidity中与Java“Class”类似的是什么?
- 85. 什么是合约实例?
- 86. 请说出Java和Solidity之间的一些区别。
- 87. 你必须在Solidity文件中指定的第一件事是什么?
- 88. 合约中包含什么?
- 89. 合约中有哪些类型的函数?
- 90. 如果我将多个合约定义放入单个Solidity文件中,我会得到什么错误?
- 91. 两个合约之间交互的方式有哪些?
- 92. 当你尝试使用部署一个包含多个合约的文件时会发生什么?
- 93. 如果我有一个大项目,我需要将所有相关的合约保存到一个文件中吗?
- 94. 我只能导入本地合约文件吗?
- 95. EVM的内存分成了哪些部分?
- 96. 请解释一下Storage。
- 97. 请解释一下Memory。
- 98. 请解释一下Calldata 。
- 99. 哪些变量存储在Storage,那些变量存储在Memory?
- 100. 看看下面的代码,并解释代码的哪一部分对应于哪个内存区域:
- 101. 这样做对吗:
- 三、以太坊面试题B
-
- 1. 什么是UTXO, 以太坊转账流程
- 2. 交易中的nonce有什么作用,区块中的nonce有什么作用
- 3. 密码学相关,什么是非对称加密,原理是什么、如何运行(公钥私钥生成、使用),签名, 多签, 盲签
- 4. 熟悉的共识算法有哪些,运行过程是什么
- 5. Merkle Tree 数据结构, 以太坊中的块中有哪几颗MPT数, 作用是什么,布隆过滤器
- 6. 智能合约相关, ERC20 ERC721协议的区别,ERC20定义的接口有哪些
- 7. 如何进行合约调用, 关键字payable的作用
- 8. 合约中如何实现随机数
- 9. 含有library的合约如何部署
- 10. 转账交易是否会进EVM
- 11. 关键词index的作用
- 12. hash计算的种类
- 13. 以太坊存储区域
- 14. 交易的hash是如何生成的
- 15. 以太坊合约常见问题
- 16. EOS, IPFS, COSMOS,Fabric, BTC 等的运行原理
- 17. 公有链, 私有链, 联盟链是什么, 如何运行
- 18. 各种链的性能
- 19. channel, 有无缓冲,是否阻塞
- 20. select 相关
- 21. 什么是gorutine?
- 22. protobuf 是什么,如何使用
- 23. go tools, 建议了解一下
- 24. 一致性哈希算法
一、区块链面试题
1. 什么是区块链?
回答:区块链是不间断的经济交易数字分类帐,可以进行编程,以记录不仅是金融交易,还可以记录几乎所有有价值的东西。简单来说,它是一个不可变记录的分散式分布式数据库,该数据库由计算机集群管理,但不属于任何单个实体。区块链存储为数据库或平面文件。
2. 流行的区块链平台有哪些。
回答: 流行的区块链平台如下:
区块链平台 共识算法 分类帐类型 管治
以太坊 工作证明 不允许 以太坊开发人员
超级账本锯齿 可插拔框架 允许的 Linux基金会
超级账本面料 可插拔框架 允许的 Linux基金会
超级账本Iroha 基于链的拜占庭容错 允许的 Linux基金会
开放链 分割共识 允许的 Linux基金会
恒星 恒星共识协议 公共和私人 恒星发展基金会
NEO 委派拜占庭式容错 允许的 通过NEO持有者的投票进行链上治理,并通过NEO Foundation支持进行链下治理。
EOS 委托权益证明 允许的 EOSIO核心仲裁论坛(ECAF)
赫德拉Hashgraph