时间:2022-03-10|浏览:7264
用戶喜愛的交易所
已有账号登陆后会弹出下载
2017多年来,区块链逐渐成为互联网的前沿。曝光率的激增带来了人才市场的繁荣。我接触过很多面试候选人,他们大多没有区块链经验。
作为一名从事相关行业5年以上的分布式系统理论研发架构师,我想从面试官的角度解释一些掌握区块链核心技术所需的知识和技能。我希望能给加入这个新兴行业的学生一些灵感。
说到技术,我主要指的是研发。因为我是一个技术职位,技术要求会更严格(严格并不意味着高)。简而言之,基础知识需要非常扎实。大多数来参加区块链工程师面试的学生给我的印象是,读了几本关于区块链知识的书,问了一点简单的知识,你可以回答,但如果具体的话,你就能回答他们。变得模糊了。
在我看来,区块链所需的知识并不是特殊或新兴的知识。除了区块链工程师在密码领域的工作压力外,其他知识和技能几乎都是网络开发中常见的核心知识。
由于区块链行业涉及面广,从各种基础设施到各种上层应用,对技能的要求不同。根据我的经验,区块链开发大致分为两部分:技术层和应用层,使考生能够根据以往的专业技能背景选择合适的领域。
一、技术层
区块链开发公司哪家好区块链开发_区块链和区块链一样吗?_区块链工程师工作压力
技术层是区块链的底层,其主要工作是开发底层技术和基础设施。我们可以将技术层与操作系统的核心进行比较,应用层是在操作系统上构建各种软件。例如,我们最常见的比特币网络的核心技术来自于其共识机制(POW)。当然,对于大多数链来说,共识原则是核心组成部分。建立这种共识机制需要更多的基本技术支持,如网络通信、数据存储、加密安全等。因此,这一层对技术的内涵有很高的要求。这里的技术是综合能力。我将其概括为三个部分:理论基础,
1)理论基础
理论基础主要是指分布式系统的理论。如果你是专业人士(如计算机专业)-分布式系统),或者有分布式数据库、网络等方面的经验,你可能会熟悉或熟悉这部分。. 熟悉和深入了解分布式网络的特点和各种算法是区块链领域取得巨大成就的前提之一。
在这里,我简单列出了分布式系统需要掌握的一些核心概念:
· 全序/偏序,因果序
· 物理时钟/逻辑时钟
两阶段算法(2PC)/三阶段算法(3PC)
· 安全 &&
区块链工程师工作压力_区块链和区块链一样吗?_哪家区块链开发公司是好的区块链开发公司?
· FLP 不可能定理
· Paxos/Multi-paxos
· 筏/多筏
· CAP理论
副本的一致性,强/弱,最终的一致性
简单散列/一致散列
Base/ACID、分布式 ID 等
· BFT(故障)
2)专业经验
专业经验是指掌握比特币等最主流区块链项目区块链工程师的工作压力,不仅要了解其运营原则、账户模型、智能合同等,还要在此基础上不断改进和发展. 和创新,如轻节点、分布式存储、侧链扩展方案等。
为此,我还列出了一份关于区块链专业经验的清单:
· 区块链主流共识算法的差异(如PBFT、POW原原理和差异)
· 联盟链、公链、私链的区别及适用场景
· 区块链攻击方51%计算能攻击,Sybil攻击、Eclipse攻击、DDos攻击
· P2P网络通信方式(Gossip、Totem、DHT等)
· Merkle Tree 数据结构
哪家区块链开发公司是好的区块链开发公司?_区块链工程师工作压力_区块链和区块链一样吗?
·比特币UTXO以太坊转账流程模型(GAS计算、Nonce值等)
· 以太坊智能合同的写作及相关知识
· 密码学(公钥/私钥)ECDSA、RSA、哈希算法)、签名、多重签名、盲签名等。
· 以太坊协议:ERC20、ERC721、ERC223、ERC875
比特币(P2SH 地址、交易脚本等)
3)技术准备
技术能力是对网络编程、内存控制、操作系统、编解码器、密码学、异步编程等开发技能的综合评价,是一种积累能力。扎实的技术背景可以让我们快速适应底层区块链的发展。
为此,我列出了一些核心研发能力和技术准备:
数据结构(二叉树、特里树、数组、结构/类等)
算法(回溯/递归、字符串编码、排序、搜索等)
锁(原子锁、互斥锁/自旋锁)
· 多线程编程(共享内存、线程/过程/协程)
同步、异步、阻塞/非阻塞、多路复用 I/O
· 异步编程/反应编程范式,事件驱动
· 网络编程:TCP/IP/UDP协议、状态、socket/select/epoll、C10k问题等。
· 服务器编程:熟悉Linux编程、系统资源(如:cpu/io、磁盘、使用情况等)