区块链开发工程师需要具备什么条件?

%title插图%num

区块链开发工程师需要具备什么条件?

区块链开发工程师需要具备什么样基础?【汉全区块链开发】区块链行业涉及到的范围十分广泛,此篇介绍技术层应具备的基础。   技术层是区块链最底层,这一层主要工作是底层技术与基础设施的开发。可以把技术层比作操作系统的内核。 1、理论基础   全序/偏序,因果顺序   物理时钟/逻辑时钟   两阶段算法(2PC/三阶段算法(3PC   Safeti&&Liveness   FLP不可能定理   Paxos/Multi-paxos   Raft/Multi-Raft   CA P理论   副本一致性、强/弱、最终一致性   简单哈希/一致性哈希   Base/A CID分布式 ID等等   BFTByzantinFaultTolerance   2、专业经验   专业经验则是指对目前最主流的区块链项目的掌握水平,比方BitcoinEthereum等,不只要了解它运行原理,账户模型、智能合约等,而且要能在基础上持续改进、开拓以及创新,比方对侧链的轻节点、分布式存储、扩容方案等有一定的理解等。   以下列表主要展示对区块链的专业经验的一些要求:   目前区块链主流共识算法之间的差别(比方 PBFTPOW等原理与区别)   联盟链、公链及私链之间的区别及适用场景   针对区块链的攻击方式:51%算力攻击、Sybil攻击、Eclips攻击、DDo攻击   P2P网络通信模式(GossipTotemDHT等)   MerklTree数据结构   BitcoinUTXO模型,以太坊转账流程(GA S计算、Nonc值等等)   以太坊智能合约的编写,Solid相关知识   密码学(公钥/私钥、ECDSA RSA 哈希算法)签名、多重签名、盲签名等等   以太坊协议:ERC20ERC721ERC223ERC875   比特币(P2SH地址、交易脚本等)   3、技术准备   技术能力则是一项通用能力,对网络编程、内存控制、操作系统、编解码、密码学、异步编程等开发功底的一个综合考核。一个日积月累的能力,扎实的技术背景可以让我快速适应区块链底层的开发。   列举了一些比较核心的研发能力和技术准备:   数据结构(二叉树、tri树、数组、结构体/类 等等)   算法(回溯/递归、字符串编码、排序、搜索等等)   锁(原子锁、互斥锁/自旋锁)死锁检测、内存泄露检测   多线程编程(共享内存、线程/进程/协程)用户态/内核态   同步、异步、阻塞/非阻塞、多路复用 I/O   异步编程/响应式编程范式、事件驱动   网络编程:TCP/IP/UDP协议、time_wait状态、socket/select/epollC10k问题等   服务器编程:熟悉 Linux编程、系统资源(如:cpu/iodiskusage等)   HTTP协议、RPC通信、负债均衡等等。