区块链新闻资讯
数字货币投资分析

三链:这可能是你进阶区块链技术的最好时机

如果说一名程序员希望进阶区块链技术的最好时机是什么时候,那一定是2019年。

理由有以下两点:

一、区块链技术已经成为全球关注焦点,并逐步开始发展落地

最近被区块链界津津乐道的是区块链发票不断在各个场景落地。当乘客搭乘深圳地铁、深港出租车公司的部分车辆、深圳机场巴士330全部线路时,可以用手机自助开具区块链电子发票。

三链可以说,区块链从来没距离我们这么近

我们通过数据分析还发现,尽管比特币价格大幅下滑,但2018年依然是区块链专利审批的高峰年,有记录表明在此期间至少发布了1,060项专利。

并且从2019年1月至今,世界知识产权组织(WIPO)已授予242项加密货币或区块链相关专利。

我们再从这些年的总数量来看:

中国获得790项加密货币或区块链相关专利批准,位居第一;

美国紧随其后,有762项专利申请获得批准;

韩国与澳大利亚分别以161项和136项位居第三和第四;

加拿大和印度以67项蝉联第五;

英国则是唯一一个排名进入前十的欧洲国家,为36项。

区块链媒体,三链财经

最值得一提的是,阿里巴巴以60项进入第五名;中国人民银行数字货币研究所则为第六名,有50项专利;另外,凤凰社成员——杭州复杂美公司进入12强。有两个中国大学也进入了这个名单,其中电子科技大学以16项排第十四名。

我们再来看看刚刚过去的两会,大家都知道,今年是区块链“走进两会”的第三年,在人大会议上的代表们对区块链技术的关注度也是逐年递增。

为什么这么说呢?三链来给大家分享一个惊人的数据:截止到目前,今年两会期间共有34条区块链相关的提案、观点和发言,较去年增长了近61.9%。

并且在这次会议中,我们发现更多区块链技术发展、区块链行业规范、区块链应用落地等方向的提案和观点被提出。

其中,关于区块链应用的有14条,关于区块链监管的有5条……

区块链媒体,三链财经

因此,区块链行业在未来的路会越走越宽,也将逐步开始更加落地的发展。

二、在国家政策指导下,随着中国的区块链行业迅速崛起,相应的人才需求也开始增加

下面,我们不妨直接来几张各大厂负责人在某招聘网站上发布的关于区块链开发工程师的招聘消息感受下:

区块链媒体,三链财经区块链媒体,三链财经

我们又仔细查看了在北京、上海、深圳、杭州四个城市招聘区块链技术工程师大概470份职业,清晰的发现大部分招聘的岗位要求里都有提到熟练使用Solidity语言以及智能合约Solidity开发

“智能合约开发”已经成为这些招聘需求中的高频词汇。

区块链媒体,三链财经区块链媒体,三链财经区块链媒体,三链财经

由以上两点,相信你已然知道学习“区块链技术”以及成为一名“智能合约开发者”的重要性。

那么就有了接下来的问题——

如何才能成为一名合格的智能合约开发者呢?

换句话说,想要深入学习智能合约开发,我们该学些什么内容?怎么学又才能最有效呢?在今天,不妨分享一些经验给大家。

首先班班想问一下大家,在区块链行业怎样找智能合约开发工作、转行等相关事情,你有没有遇到以下几种问题呢:

1)如何深入地学习以太坊智能合约开发,有没有什么好的学习路径?

2)看了一些入门教程,能使用开发工具,写一些简单 DApp,但是想开发一个产品级的 DAPP,又感觉能力不够,没有信心,如何进一步提高自己?

3)怎么样从全局去思考“以太坊智能合约开发”?觉得无从着手怎么办?

我猜测,在过去你学习的途径可能有——

1) 去知乎看一些有关“智能合约”的干货回答

2) 啃一些智能合约开发的专业书籍

3) 去网上翻有关智能合约的课程

1)和 2)属于碎片化的学习,它是极为低效的。

对于智能合约开发来说,你通过“干货回答”和“专业书籍”这样的学习途径来学习,往往只能让你建立一个基本认知,停留在理论的表面上。

且,关于“智能合约开发”的相关书籍和文章又是极其海量的,如何快速找到能解决你业务需求的知识,又成为了一个难题。

以上这些都是非常值得探讨的话题,坦白来讲,对于智能合约开发从业者来说,入门很简单,但深入也很难。

我也曾经无数次在交流时听到有人跟我说:“我想学习/做智能合约开发。”

但如果你要问起到底他们理解的“智能合约开发”是什么,得到的答案往往五花八门,或者说,那些答案都只是“智能合约开发”的冰山一角,并非全貌。

我们清楚的认为,作为一名合格的智能合约开发者,必须更深地了解Solidity语言、以太坊平台,而这就涉及到一些所谓的“高级话题”。

在传统开发语言里,“高级”往往是“奢侈品”,仅用基本语言特性也能写出可用的代码。但是智能合约开发涉及到安全、性能等很多因素,这些“高级话题”属于必须掌握的知识,是“必需品”,不夸张地说,是业余开发者和专业开发者的分水岭。

如果问我一名合格的智能合约开发者该具备哪些能力,也许可以从以下几个方面来看。

1、掌握 Solidity 的特殊语言特性

初学以太坊只能合约开发的人,会觉得 Solidity 很简单。

但是 Solidity 真的简单吗?

Solidity是一种结合了 C++、Python 和 Javascript 语言创造出来的为智能合约开发而定制的语言,它在事实上简化了智能合约的开发,是一种上手很容易、对初学者“很友好的”开发语言。

只要你稍有编程经验,就可以很快写出一些简单的智能合约。

不过,这种看起来“很简单的”语言,其实并不简单,因为有太多不那么直观的因素会影响 Solidity 程序的运行。

而大部分开发者也许并不那么理解智能合约的运行环境——以太坊虚拟机(EVM)的各种各样的技术细节,各种各样的大坑小坑。

  • 比如 private 函数和 public 函数在调用时到底有什么不同,仅仅是可见性么?
  • 比如数据在内存和存储(storage)中的结构有什么区别,为什么我可以对存储中的动态数组使用 push 和 pop,而对内存中的就不行?
  • 比如 fallback 函数是如何运作的,它真的不能接收参数也不能有返回值么?比如 transfer、send 和带 value 的 call 有什么区别?

显然,这些问题并不是我们学习传统的编程语言可以了解到的,所以对于大多数初学者来讲,这些细节很可能会妨碍他们真正掌握合约开发或者影响他们处理一些相对复杂逻辑的能力。

所以让智能合约开发者都真正搞懂 Solidity 与其他开发语言的区别便是首先要进行的重要工作。

2、掌握智能合约安全编码的原则、最佳实践和实操要点

智能合约安全吗?我想这个问题的答案已经众所周知。

自以太坊诞生以来,各种各样的合约漏洞、安全问题已经多次出现在技术社区乃至公众视野中,所以合约安全问题早已不是小众的话题。

你需要知道常见的安全漏洞类型,理解这些漏洞产生的原因以及规避的方法,这无论是对开发者本身还是实际业务安全都极其关键。在熟悉安全漏洞以及背后的原理的基础上,最佳实践可以帮助你开发出更加可靠的代码。

你需要知道智能合约安全开发的一般原则,比如牢记区块链特性、使合约尽量简单等等;

你还需要知道 Solidity 智能合约开发中的一些最佳实践,比如一定要谨慎处理外部合约调用、处理错误和意外、仔细处理 fallback 函数等等。

此外,你还需要学习一些软件工程上的经验,从工程实践上进一步保证合约的正常运转、响应意外情况,尽可能确保项目/用户的资金安全。

3、了解智能合约的 gas 优化技术

以太坊是一个很“昂贵”的计算平台,本质上是因为每次 transaction 带来的合约运算,都要在所有的全节点上运行。

但是昂贵并不意味着开发者无能为力。对于我们做合约开发的人来说,有很多技术方法可以减少 gas 的消耗,这对项目的成功是至关重要的,也是开发者应该做到的事情。这就是所谓的性能优化问题。

所以,作为一名合格的智能合约开发者,你需要充分掌握性能优化的方法,大概需要知道一些基础知识,包括 gas 机制和汇编等等。

4、清楚知道智能合约到底能做什么,不能做什么

我们在上面的性能优化里已经提到了汇编,其实汇编的作用远不止这些。

在以太坊协议中,智能合约的本质就是 EVM(以太坊虚拟机)字节码加上合约状态数据所组成的所谓“自主对象(Autonomous Object)”。

所以,内联汇编就是我们的终极武器。

了解了内联汇编,你就知道了智能合约到底都能做什么、不能做什么。因为不管我们用什么高级语言来写合约,最终都是要反映为 EVM 字节码的,也就是 EVM 汇编指令,它们就是以太坊智能合约的全部能力。同时,了解 EVM 指令也是进行终极 gas 优化的基础。

以上这四个方面相对的高级话题,是一名合格的智能合约开发者必须要具备的能力。

那么,一个高效的学习途径是什么样的呢?

答案是:课程。因为起码它会经由老师提炼,且尚且系统。但,我们教研团队调研了市面上几乎所有数据相关的课程,发现它们往往还存在着两个问题:

第一, 市面上大多数主讲老师所设计的课程内容无法与实际工作相结合。你学了再多的方法,面对实际且具体的业务问题,依然不知道如何下手工作。

第二, 案例过于高端,对一般深耕业务的从业者来说不落地。空学一身“理论”,回到工作中也没有办法给你真正实践去做一次的机会。

赞(0) 打赏
未经允许不得转载:三链财经 » 三链:这可能是你进阶区块链技术的最好时机

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏