【第二期】2022秋招区块链开发工程师技术面面经 腾讯

欢迎加入GOLANG ROADMAP,一个年轻的Go开发者社区,目前是邀请注册制,邀请码:简书。本篇面经中的面试题已收录到社区企业题库版块。

腾讯CDG 腾讯区块链

一面

  • 深挖项目20min

  • 以太坊中有哪些树(交易树、收据树、状态树)

  • 为什么需要收据树(将交易执行过程中的一些特定信息编码为交易收据,方便对交易进行零知识证明、索引和搜索)

  • 以太坊里的状态是什么,状态树怎么存的状态(账户状态包括balance、nonce、codeHash、storageRoot,使用Merkle Patricia Trie即MPT存的账户状态)

  • 以太坊的合约数据的储存形式(还是MPT。合约账户中的storage root,对应账户的storage trie)

  • 比特币里的交易是怎么存的(Merkle Tree,MT)

  • 介绍Merkle Tree的性质、优点,为什么用Merkle Tree存(实现SPV、Merkle Proof)

  • 为什么以太坊要将MT改成MPT(这个问题比较复杂,建议读者去B站北大肖臻老师的区块链课中寻找答案)

  • 介绍比特币的UTXO

  • 比特币查询余额只能从头开始遍历整条链吗,有没有高效方法(创建UTXOSet缓存)

  • 比特币地址是怎么生成的(助记词 <-> seed -> 私钥 -> 公钥 -> PubKeyHash <-> address, 其中<->表可双向转换,->表单向转换,最后的PubKeyHash转换为address的时候用的是base58编码,base58编码的原理即辗转相除法)

  • 数据库索引,hash索引与B+树索引的适用场景,为什么用B+树索引

  • 主键与非主键和索引的关系(InnoDB主键一定是聚簇索引,非主键如果是索引的话,查询可能需要回表)

  • 进程、线程、协程的区别

  • Golang协程间如何通信

  • 算法:口撕链表是否有环

  • 堆排序、快速排序的时间复杂度以及分别适用什么场景

  • 反问

二面(八股极少,基本全程聊项目)

  1. 项目深挖

  2. 为什么用区块链?区块链的创新点在哪?(灵魂发问)

  3. 技术难点

  4. 以太坊相比于比特币的创新点

  5. 区块链落地场景

  6. 反问

本篇面经中涉及的面试题已收录进GOLANG ROADMAP企业题库(搜索关注wx-gzh:GOLANG ROADMAP),可查看面试题解析和参与讨论。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容