腾讯区块链2022秋招面试题(一面)

本文探讨了区块链技术在发票存证中的应用,详细阐述了发票如何上链、数据类型、存证流程以及数据对应性的保障措施。同时,深入讨论了以太坊的合约数据存储方式,包括状态树、Merkle Tree及其改进的Merkle Patricia Trie(MPT)。此外,还涉及比特币的UTXO模型和账户余额查询的高效方法。区块链的账户生成过程、数据库索引策略以及进程、线程、协程的区别也在讨论范围内。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于区块链存证部分的试题

  1. 发票是如何存的?是由谁(用户 or 维护者)来存的?
  2. 发票上链时,交易是由用户签名的吗?
  3. 存的都是什么类型的数据?有看过现实的发票的一些数据字段吗?
  4. 是发票的所有信息上链?还是部分上链?
  5. 发票的源数据怎么存?
  6. 怎么确保源数据跟链上的数据相对应?怎么通过链上的数据找到源数据在哪?
  7. 如果说pdf被更改大小了呢,虽然内容没变,但是hash也是对不上的,还有必要存文件hash吗,换句话说还有必要存原文件吗?
  8. 存上去之后是哪方角色来更新报销进度的?除了更新报销进度之外没有其他功能了吗?
  9. 有没有发票的转交流程,发票在系统里是怎么流转的?(面试官:发票得经过很多部门)
  10. 后端收到前端传过来的发票数据,做完hash之后还有其他操作吗?就是直接构造交易上链吗?

Answer:
1面

  1. 深挖项目
  2. 以太坊的合约数据是怎样的储存形式(存在状态树里)
  3. 以太坊的状态是什么(状态由外部账户和合约账户的状态组成)
  4. 以太坊有哪些树(交易数、收据树、状态树)
  5. 为什么需要收据树(没答上来)
  6. 状态树是怎么存的状态(没答上来,一时间没想到回答MPT)
  7. 区块链里交易是怎么存的(MerkleTree)
  8. 介绍Merkletree的性质、优点,为什么用merkletree(实现快速验证交易,实现轻结点的扩展)
  9. 以太坊有对merkletree进行改进吗?(MPT,介绍了下mpt的结构,这时候想到是mpt存的账户数据)
  10. 为什么以太坊要将MT改进为MPT呢?(没答上来)
  11. 介绍比特币的UTXO
  12. 比特币查询账户余额每次只能从头开始遍历吗?有没有高效的方法?(我答了用一个kv映射从创世块开始记录每个地址的余额,每经过一个区块,就对余额进行更新操作)
  13. 区块链账户是怎么生成的(助记词->seed->私钥->公钥->地址)
  14. 以上过程助记词和私钥可互相生成吗,公钥和地址可互相生成吗?(这里我一时间忘了公钥怎么生成地址,误答公钥和地址可相互生成,实际上公钥是经过单向的hash函数生成地址,不可逆。)
  15. 数据库索引,hash索引与B+索引适用场景,为什么用B+树索引
  16. 主键和非主键与索引的关联?(innoDB主键一定是聚簇索引,非主键如果是索引的话,可能需要回表)
  17. 进程、线程、协程区别
  18. 协程间如何通信
  19. 口撕链表是否有环
  20. 堆排序、快速排序,时间复杂度以及分别适用什么场景
  21. 反问
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值