区块链相较于其它方向,确实是一个很小众而前沿的方向,无论是招实习生的公司还是招收的人数都十分少,因此如果想要从事此方向,就需要做好长期找不到实习的准备。
在招实习的过程中,在牛客网上也很难找到相应的面经,因此我在历经千辛万苦通过我投递的公司所有面试后,决定写一份面经,也希望如果你看到了我的面经,并且之后能够顺利拿到区块链的offer的话,能够也写一份面经,供大家借鉴。
蚂蚁一面(4.8 电话54min):
太过遥远只记得部分问题了
1.针对项目深入提问
2.智能合约中如何解决随机数的问题
3.oracle预言机(oraclize,chainlink,TEE(SGX))
4.event,modifier的作用和用法
5.solidity 0.6.0 的新特性
蚂蚁二面(4.26 电话41min)
0.进一步深入项目
1.形式化证明
2.linux内核,进程和线程实现上有何不同
3.contractfuzzer(模糊测试)有什么缺点
4.以太坊中nonce的作用(防止重放攻击),如果获得nonce
5.如何调用他人的合约(当时不太明白面试官想问什么):1.实例化合约对象 2.合约地址.call()
6.除开EVM,还知道什么虚拟机
7.iptables/netfilter
8.linux如何追踪系统调用(strace/dmesg)
9.Merkle树,MPT树如何构建,有何区别(这个经常问)
10.Morris算法
11.以太坊是如何从POW转向POS的(Casper协议)
蚂蚁三面(4.29 视频20+min)
1.以太坊使用的密码学(keccak,ECC(ecdsa)),对两者进行介绍
2.以密码学生成真随机数的一种方式(不懂)
3.SGX(基本介绍+如何远程通信(Quoting enclave))
4.介绍项目
HR(5.7 视频20+min)
intel一面(很久远了,不太记得)
1.多线程,多进程,多协程
2.c是如何实现多线程的
3.linux如何查询某个时间段修改过的文件(ll + sed)
intel二面
1.联盟链和公链
2.介绍项目
其他问题
1.MongoDB和Mysql的区别
2.Myisam和Innodb
总结:
1.区块链方向的实习生面试很少问计算机基础知识(面试过很多家,像是TCP三次握手或者什么进程线程区别被问的次数屈指可数),都比较喜欢深入项目
2.比起比特币的实现,以太坊的细节问得更多
有些公司的面试有些久远,不太记得了,之后如果想起来再补充。
希望大家都能获得自己心仪的offer,希望大家的努力都有回报!
全部评论
(13) 回帖