区块链工程师需要掌握哪些技能?

作者:Annchain(本文一切著作权归annchain技术团队所有,未经许可,不得转载。若需转载请联系页尾二维码。) 从2017年开始,区块链逐步成为互联网的风口浪尖。曝光度的激增带来了人才市场的火爆。 区块链所要求的知识并非什么特殊的或者新兴的知识,除了密码学领域的知识需要专门了解之外,其他知识和技能几乎都是一些比较通用的网络开发核心知识。 由于区块链行业涉及到的范…

大家好,又见面了,我是你们的朋友全栈君。

作者:Annchain

(本文一切著作权归annchain技术团队所有,未经许可,不得转载。若需转载请联系页尾二维码。)

 

从2017年开始,区块链逐步成为互联网的风口浪尖。曝光度的激增带来了人才市场的火爆。

 

区块链所要求的知识并非什么特殊的或者新兴的知识,除了密码学领域的知识需要专门了解之外,其他知识和技能几乎都是一些比较通用的网络开发核心知识。

 

由于区块链行业涉及到的范围非常广泛,从各种基础设施,到各种上层应用,它们对技能的要求范围是不一样的。根据以往经验,区块链开发大致可分为两个大的部分:技术层和应用层,根据自己以往的专业技能背景选择自己合适的领域。

 

 

一、技术层

 

 

技术层是区块链最下面的一层,这一层主要工作是底层技术与基础设施的开发。我们可以把技术层比作操作系统的内核,应用层则是在操作系统之上构建各种软件。比如我们最常见的比特币网络,它的核心技术就来源于它的共识机制(POW)。当然,对于大部分链来说,共识的原理都是其最核心的部件。要构建这样的共识机制,还需要更加底层的技术支持,比如网络通信、数据存储、加密安全等等。所以,这一层对于技术的内涵要求比较高,这里的技术是一项综合的能力,可以总结为三个部分:理论基础、专业经验以及技术能力。

 

1)理论基础

 

理论基础主要是指分布式系统理论,如果是专业出身(比如计算机专业-分布式系统方向),或者有过从事过分布式数据库、网络等相关的经验,那么可能会对这一部分相对了解或熟悉。熟悉并深入理解分布式网络的特点和各种算法,是能够在区块链领域大有作为的前提之一。

 

这里,简单列举需要掌握的一些分布式系统核心概念:

 

· 全序/偏序,因果顺序

· 物理时钟/逻辑时钟

· 两阶段算法(2PC)/三阶段算法(3PC)

· Safety && Liveness

· FLP 不可能定理

· Paxos/Multi-paxos

· Raft/Multi-Raft

· CAP 理论

· 副本一致性、强/弱、最终一致性

· 简单哈希/一致性哈希

· Base/ACID、分布式 ID 等等

· BFT(Byzantine Fault Tolerance)

 

2)专业经验

 

专业经验则是指对目前最主流的区块链项目的掌握程度,比如 Bitcoin、Ethereum 等,不仅要了解它们的运行原理,账户模型、智能合约等,而且要能在它们的基础上持续改进、开拓以及创新,比如对侧链的轻节点、分布式存储、扩容方案等有一定的理解等。

 

  这里主要展示对区块链的专业经验的一些要求:

 

· 目前区块链主流共识算法之间的差异(比如 PBFT、 POW 等原理与区别)

· 联盟链、公链及私链之间的区别及适用场景

· 针对区块链的攻击方式:51%算力攻击、Sybil 攻击、Eclipse 攻击、DDos 攻击

· P2P 网络通信模式(Gossip、Totem、DHT 等)

· Merkle Tree 数据结构

· Bitcoin UTXO 模型,以太坊转账流程(GAS 计算、Nonce 值等等)

· 以太坊智能合约的编写,Solidity 相关知识

· 密码学(公钥/私钥、ECDSA、RSA、哈希算法)、签名、多重签名、盲签名等等

· 以太坊协议:ERC20、ERC721、ERC223、ERC875

· 比特币(P2SH 地址、交易脚本等)

 

3)技术准备

 

技术能力则是一项通用能力,是对网络编程、内存控制、操作系统、编解码、密码学、异步编程等开发功底的一个综合考核。它是一个日积月累的能力,扎实的技术背景可以让我们快速适应区块链底层的开发。

 

 以下是一些比较核心的研发能力和技术准备:

 

· 数据结构(二叉树、trie 树、数组、结构体/类 等等)

· 算法(回溯/递归、字符串编码、排序、搜索等等)

· 锁(原子锁、互斥锁/自旋锁)、死锁检测、内存泄露检测

· 多线程编程(共享内存、线程/进程/协程)、用户态/内核态

· 同步、异步、阻塞/非阻塞、多路复用 I/O

· 异步编程/响应式编程范式、事件驱动

· 网络编程:TCP/IP/UDP 协议、time_wait 状态、socket/select/epoll、C10k 问题等

· 服务器编程:熟悉 Linux 编程、系统资源(如:cpu/io、disk、usage等)

· HTTP 协议、RPC 通信、负债均衡等等

 

 

二、应用层

 

 

应用层是区块链最重要的一层,也是区块链行业能蓬勃和持续发展的力量来源。应用层主要涉及的是区块链产品,我们常见的有比如:数字钱包(imToken)、分布式交易所(Cosmos、bitshare)、浏览器插件(MetaMask)、区块链游戏(CryptoKitties、FOMO3D)、保险产品等等。

 

开发这些应用级别的产品,通常是与底层的区块链系统进行交互,因此并不需要对区块链底层技术达到非常专业的掌握。但需要我们对区块链的核心概念有了解,以便能与链的开发者在同一语言上进行沟通而不至于误解。

 

当然,应用层的开发对技术的要求也是共同的。它虽然没有技术层对技术能力要求的那么高,但是其更加侧重对创新和落地。

 

作为区块链行业中的一员,我们都能深深感受到区块链技术对互联网世界的重大意义,它不仅带来的是技术上的创新,而且对未来的经济关系、行业分工都有着巨大的价值潜力。当然现在,区块链技术还处在改变世界的早期阶段,没有一个大规模的应用是其一个硬伤。但是我们也看到,各种区块链创新项目在这波浪潮中如雨后春笋般冒出来,许多顶尖的人才都在致力于解决当前区块链项目的去中心化、安全性和可扩展性这个所谓的“不可能三角”,甚至已经有项目处在领先的位置。所以,我们不仅需要找准自己的目标和方向,更需要夯实技能,争取成为区块链领域中有分量的一员。

 

区块链漫漫长路,路上一同前行。

 

Annchain(众安链)是由众安科技和众安-复旦区块链与信息安全联合实验室自主研发,国内首个基于DAG架构并支持智能合约的高性能通用区块链平台。作为工信部指导的中国区块链技术和产业发展论坛两大开源项目之一,Annchain立足于中国,致力于助力中国抢占区块链全球话语权。

Annchain专注于易用、高效、安全和隐私等关键特性,兼具模块化和高度可定制的特点。目前已在数十家生态伙伴的商业场景中落地,场景涵盖农业溯源、珠宝溯源、资产通证化、公益、医疗数据共享、广告分发平台等。开发者可基于Annchain高效构建适合自身的区块链应用,期待更多伙伴加入我们一起探索新应用。

 

众安科技

众安信息技术服务有限公司(简称“众安科技”)成立于2016年11月2日,是由蚂蚁金服、腾讯、中国平安发起设立的众安保险旗下的全资科技子公司,专注于区块链、人工智能、密码学、物联网等前沿技术研究。众安科技汇聚行业内的顶尖科研人才,其中区块链团队规模近200人,多数来自于各顶尖区块链团队。

 

众安-复旦区块链与信息安全联合实验室

众安-复旦区块链与信息安全联合实验室是国内首个高校与企业联合组建的专一区块链实验室,专注于区块链相关技术的底层理论研究。同时,实验室联合复旦大学、上海众人信息技术有限公司成立了上海区块链工程研究中心。中心伴随构建长效的产学研用合作机制的同时,支撑开展增强的密码学能力,高性能区块链(如Annchain)等,为行业提供示范。

 

 

更多关于annchain:

www.annchain.io

Github: github.com/annchain

Twitter: https://twitter.com/Annchain007

Facebook: https://www.facebook.com/Annchain-295110641341258

TelegramGroup: t.me/Annchain

TelegramChannel: t.me/AnnchainChannel

 

                                                                            扫码备注昵称+研发方向

                                                                             加入annchain技术社群

annchain.jpg

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/125446.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • android缩放动画中心缩放_缩放动画

    android缩放动画中心缩放_缩放动画ScaleAnimation:缩放动画同样,创建ScaleAnimation也有两种方式XML文件+Java代码Java代码方式XML文件+Java代码效果图:文件目录:res/anim/scale.xml

    2022年10月15日
  • GPU利用率低的解决办法[通俗易懂]

    GPU利用率低的解决办法[通俗易懂]watch-n0.1-dnvidia-smi#检查GPU利用率参数解决办法:1.dataloader设置参数2.增大batchsize3.减少IO操作,比如tensorboard的写入和打印。4.换显卡

  • 数据挖掘/机器学习/算法岗2017校招面试总结「建议收藏」

    数据挖掘/机器学习/算法岗2017校招面试总结「建议收藏」目前就职于腾讯,想内推朋友可以发我简历(校招/社招都要),邮箱384375530@qq.com,注明岗位和工作城市。这个岗位叫法很多,算法岗,数据挖掘岗,机器学习岗,基础研究等等,总结一下从16年9月校招的面试情况。百度:师姐给我内推的,一面聊了2个半小时,基本在写代码。用MapReduce写好友推荐,在一堆单词里面找出现次数最多的k个;设计一个栈,O(1)时间返回最值;求多叉树深…

  • Ubuntu RabbitVCS

    Ubuntu RabbitVCSsudoadd-apt-repositoryppa:rabbitvcs/ppasudoapt-getupdatesudoapt-getinstallrabbitvcs-corerabbitvcs-nautilus3rabbitvcs-clinautilus-q转载于:https://www.cnblogs.com/ouuy/archive/2012…

  • 微信小程序的拍照功能「建议收藏」

    作者:刘旭濠撰写时间:2019年04月14日一开始就想弄个微信的小程序玩玩然后想了想最后就决定了,就弄个微信小程序的拍照功能,然后就上网查询了一些资料,在微信社区文档里有很多功能可以使用,然后我就尝试的找了一下关于拍照的资料,然后整理出来文档和网上的一些资料,在微信的API还有更多的资料和其他好玩的玩意代码如下://定时器拍照setTime:function(){  lett…

  • pycharm怎么设置代码补全_vs2010代码自动补全

    pycharm怎么设置代码补全_vs2010代码自动补全代码补全功能在PyCharm上是一流的。默认情况下PyCharm会在你输入的时候给出建议:由于此功能可有点耗电,你可以通过选择File→PowerSaveMode来禁用它。您仍然可以通过Control-Space显式使用这一功能。…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号