0

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

 2 years ago
source link: https://studygolang.com/articles/35426
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

欢迎加入GOLANG ROADMAP,一个年轻的Go开发者社区,目前是邀请注册制,邀请码: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. 区块链落地场景

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK