首页 > 2022秋招区块链开发工程师技术面面经
头像
Leoguo621
编辑于 2021-12-06 19:45
+ 关注

2022秋招区块链开发工程师技术面面经 内部员工回复

(目前区块链的岗位比较小众,区块链的面经也相当之少,我在秋招的过程中也踩了不少坑,最后还是拿到了区块链相关的offer,这里整理两份比较有代表性的区块链面经,供热爱区块链行业的同学借鉴,也希望大家能开源自己的面经)

腾讯CDG 腾讯区块链

一面

  1. 深挖项目20min
  2. 以太坊中有哪些树(交易树、收据树、状态树)
  3. 为什么需要收据树(将交易执行过程中的一些特定信息编码为交易收据,方便对交易进行零知识证明、索引和搜索)
  4. 以太坊里的状态是什么,状态树怎么存的状态(账户状态包括balance、nonce、codeHash、storageRoot,使用Merkle Patricia Trie即MPT存的账户状态)
  5. 以太坊的合约数据的储存形式(还是MPT。合约账户中的storage root,对应账户的storage trie)
  6. 比特币里的交易是怎么存的(Merkle Tree,MT)
  7. 介绍Merkle Tree的性质、优点,为什么用Merkle Tree存(实现SPV、Merkle Proof)
  8. 为什么以太坊要将MT改成MPT(这个问题比较复杂,建议读者去B站北大肖臻老师的区块链课中寻找答案)
  9. 介绍比特币的UTXO
  10. 比特币查询余额只能从头开始遍历整条链吗,有没有高效方法(创建UTXOSet缓存)
  11. 比特币地址是怎么生成的(助记词 <-> seed -> 私钥 -> 公钥 -> PubKeyHash <-> address, 其中<->表可双向转换,->表单向转换,最后的PubKeyHash转换为address的时候用的是base58编码,base58编码的原理即辗转相除法)
  12. 数据库索引,hash索引与B+树索引的适用场景,为什么用B+树索引
  13. 主键与非主键和索引的关系(InnoDB主键一定是聚簇索引,非主键如果是索引的话,查询可能需要回表)
  14. 进程、线程、协程的区别
  15. Golang协程间如何通信
  16. 算法:口撕链表是否有环
  17. 堆排序、快速排序的时间复杂度以及分别适用什么场景
  18. 反问

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

  1. 项目深挖
  2. 为什么用区块链?区块链的创新点在哪?(灵魂发问)
  3. 技术难点
  4. 以太坊相比于比特币的创新点
  5. 区块链落地场景
  6. 反问

欧科云链(OKEx) 区块链工程院

(面后感受:OKEx问的区块链的底层不多,大多是Golang开发的底层)

一面

  1. 进程、线程、Goroutine的比较
  2. GMP模型
  3. Golang Map底层
  4. 如何实现Map的有序查找(利用一个辅助slice)
  5. sync包了解吗
  6. Mutex与RWMutex
  7. 怎么实现Map的并发安全(sync.Map,底层实际上用了一个Map缓存)
  8. Golang的channel底层
  9. defer函数的使用场景(延迟Close、recover panic)
  10. 简介所知的区块链的共识算法(PoW,PoS,DPoS,PBFT,Raft)
  11. PBFT与Raft的区别(拜占庭容错与崩溃容错)
  12. 场景题:实现一个接口C在指定时间内最大次数并发调用接口A与接口B
  13. MySQL的B+树
  14. 简单问了下Solidity、项目
  15. 反问部门业务

二面

  1. 简单聊了下项目与毕设
  2. PBFT算法底层(核心三阶段,preprepare、prepare、commit)
  3. Raft算法底层(领导者选举、日志复制)
  4. Golang GC(三色标记法,插入屏障、删除屏障、混合写屏障)
  5. Map可以用数组作为Key吗(数组可以,切片不可以)
  6. Channel的阻塞和非阻塞(顺带问了select用法)
  7. 介绍除了单例与工厂模式外的设计模式(消费者模式)
  8. Redis为什么快(内存数据库,单线程IO多路复用)
  9. 介绍Bloom filter特点
  10. 区块链里的MT与MPT
  11. 以太坊智能合约如何执行,介绍EVM底层
  12. 算法:手撕快排
  13. 聊区块链行业
  14. 反问

更多模拟面试

全部评论

(21) 回帖
加载中...
话题 回帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐