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

itmrtan · · 1327 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

> 欢迎加入[GOLANG ROADMAP](https://www.golangroadmap.com),一个年轻的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. 技术难点 4. 以太坊相比于比特币的创新点 5. 区块链落地场景 6. 反问 > 本篇面经中涉及的面试题已收录进GOLANG ROADMAP企业题库(搜索关注wx-gzh:GOLANG ROADMAP),可查看面试题解析和参与讨论。

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1327 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传