如何成为智能合约开发者
本文含有大量链接,由于公众号设计,无法插入外部链接,需要查看具体内容的小伙伴请查看原文:
https://blog.chain.link/how-to-become-a-smart-contract-developer-zh/
(文中链接请复制至浏览器打开)
如今成为一名智能合约开发者成了一种非常具有吸引力的职业选择,从有机会使用为世界带来变革性影响的技术到人才市场对智能合约开发者的巨大需求等多种因素导致这样的结果。
另外,智能合约开发技能正变得越来越重要。在20世纪90年代,工程师们从封闭的大型机世界转向了互联网的开放数据库。现在随着智能合约的出现,相似的转变正在发生。正如当年的开发者转向与未来更相关的技术栈,如今的开发者们也正在转向Web 3.0技术栈。
有志向的智能合约开发者们一定有很多关于如何实现这种转变的问题:什么是Web 3.0开发者技术栈?应该学习哪些编程语言?哪些技能是必须的,以及如何学习它们?下面,你会找到关于这些问题和更多问题的答案,它们会帮助你进入智能合约开发的世界。
区块链语言
区块链智能合约的主要语言是Solidity,Vyper是其主要竞争对手。与Python这种解释型语言不同,Solidity是静态(变量类型是声明的)编译型语言,也就是说你需要在运行前生成二进制文件。Solidity是由Gavin Wood在2014年开发的用于解决以太坊面临的独特问题的语言,现在它是所有以太坊虚拟机(EVM)兼容链的默认开发语言。这也意味着无论是在以太坊,Avalanche,Polygon,BSC还是其他的EVM链上开发,你只需要搞清楚Solidity相关开发即可。但是,也有一些公链并未采用EVM,用的是其他语言开发。Solana就是这样的例子,它不用Solidity,而是采用了之前就存在的编程语言Rust和C/C++。
那么,怎样选择一门区块链编程语言呢?有很多考虑因素,且没有标准答案。以太坊目前拥有最多的dApp,且拥有最多的流动性。以太坊的历史赋予了它可靠性的声誉。假如速度和低成本不是你的主要考量,并且你有生态系统的需求(比如,你想要与之交互的dApp仅在以太坊上),那么以太坊是很好的选择。
你也可以在如Arbitrum等扩容方案(L2)上部署合约,它们也是EVM兼容的,但是它们会将交易“卷起/汇总”到压缩包中,因此交易吞吐量会更高,也意味着成本更低、速度更快。至于其他的EVM链,每种都有某种形式的对以太坊的扩容改进。BSC使用更大的交易区块,Polygon是一种为扩容而牺牲一定的去中心化的侧链,Avalanche使用了新的共识算法来改进交易速度和成本。
本篇文章我们将关注采用Solidity开发的EVM链,这也是最常见的选择。
技术能力
有C/C++这类编译型的相对底层的后端语言背景的开发者,学习Solidity编程要容易很多。有web开发背景或者有JavaScript和Python经验的开发者则需要适应一下Solidity的开发模式。你可能会发现自己在对变量进行位操作。但是,全栈的区块链程序员需要同时具备这两种技能。因为大多数与Solidity智能合约交互是通过 web3.js,ethers.js和web3.py这些库来实现的。好的开发者可以处理智能合约后端或者JS/Python前端,但是优秀的开发者能够处理全栈。另外,OpenZeppelin合约库也是一个很好的依赖库,因为它能为开发者省去编写一些普通合约的麻烦,比如通证合约等。
可能需要培养的最关键的技能是安全。因为你所编写的智能合约未来可能要处理数十亿美元的价值,所以最重要的是合约没有漏洞。在智能合约中考虑重入攻击等漏洞很重要。另外,因为智能合约常常会调用其他智能合约功能,其他合约功能可能会中断你得智能合约的流程。这正是著名的价值7000万美元的ETH DAO被攻击的原因。对智能合约开发者来说,考虑安全性是至关重要的。
那么合约的开发流程是怎样的呢?是否有工具和IDE可以帮助我们呢?当然,流行的IDE是Remix,这是一种基于网页的IDE,能够帮助编译合约并将其部署到你选择的链上。此外,Truffle和Brownie也是能辅助开发的框架。要详细了解从头到尾的流程,包括如何使用这些框架,我们强烈建议你查看来自Chainlink Labs的Patrick Collins通过freeCodeCamp提供的智能合约课程:Solidity、区块链和智能合约课程 – 初学者到专家的Python开发教程。
▲完整视频请见:
https://www.youtube.com/watch?v=M576WGiDBdQ
复习一下,下面是成为智能合约开发者应该熟悉的一些语言、库和工具:
Solidity
JavaScript
Python
web3.js/web3.py
ethers.js
Truffle
Brownie
Remix
社区
社区在智能合约领域中极为重要。这个领域中创新层出不穷,很难凭借个人跟上进展。这也是为什么最优秀的开发者们会积极在Twitter上建立联系,加入黑客松认识其他的开发者和潜在的投资人或者雇主,在Gitcoin上选择赏金项目以帮助开源项目的开发,参与诸如Smart Contract Research这种具有深度信息的论坛,并在Discord上聊天以及帮助他人等。
黑客松是培养智能合约技能的好地方。在黑客松中,你可以边做边学,并在开发过程中实时磨练自己的才能,同时业内受人尊敬的成员们也会帮助指导你——甚至可能成为你项目的合作者!Chainlink 2021年秋季黑客松正是这样一个开始创作智能合约的好地方。本次黑客松提供55万美元的总奖池,并有业界领先的专家和风投出席,同时有数千名开发者参与,这对于智能合约开发者来说是对职业生涯的极大的促进。另外,Chainlink Discord也是很棒的资源,开发者布道者们和热情的社区成员们积极会帮助你入门。
去哪里学习
有大量资源可用于支持你的学习,从黑客松到博客,再到Discord和YouTube频道等等。我们选择了以下八种资源,这些资源为那些希望成为智能合约开发者的人提供了绝佳的资源组合,然后后面是每个资源领域的顶级资源介绍。
Solidity, Blockchain, and Smart Contract Course – Beginner to Expert Python Tutorial
CryptoZombies
ChainShot
Chainlink YouTube
Chainlink Blog
Chainlink Discord
Ethereum.org
ConsenSys Bootcamp
YouTube
如果你是一名视觉学习者,并且更喜欢有人指导你完成教程而不是单独学习,那么YouTube是很好的资源。这些YouTuber都为学习智能合约开发的人提供了优秀的材料,并提供了详细的教程供你学习。
Dapp University
Ivan on Tech
Eat the Blocks
Patrick Collins
Austin Griffith
Nader Dabit
社区
在智能合约领域,参与社区活动是至关重要。向那些更有经验的人学习,交朋友,帮助别人,而别人也会反过来帮助你。Discord和Reddit社区是一个强大的资源,可以获得实时帮助,并与其他志同道合的开发者扩大你的社交圈。这里有一些空间将帮助你在智能合约开发的旅程中前进。
Chainlink Discord
Hardhat Discord
ConsenSys Discord
Brownie Discord
Ethereum Discord
Reddit ethdev
黑客松
黑客松是加速你的开发者之旅的一种令人兴奋的方式。突破你的极限,在新技术的最前沿进行开发,而知名的社区领袖会在那里提供建议,投资者也在寻找下一个大项目--这可能就是你的项目。Chainlink黑客松是一个很好的开始,它提供了大量的资源、研讨会、奖品和交流机会。
Chainlink Hackathon
ETH Global
ETH India
迈出你的智能合约之旅的第一步
成为智能合约开发者的道路有很多。我们已经列出了一些选择,但这取决于你如何选择最适合你的。最重要的是,你要开始行动,创作一些有趣的东西,开始探索,并开始提出问题--其他的将随之而来。无论你是后端开发者、网页开发者,还是刚开始从事开发工作的人,都有一条通向成功的道路,而且有很多人乐意帮助你。因此,迈出第一步:加入Discord,阅读教程,参加黑客松,并开始构建令人兴奋的未来,即Web 3.0。
当涉及到构建安全、功能丰富的dApp时,Chainlink成熟的预言机基础设施为开发者开启了无数的可能性。想了解更多关于Chainlink的信息,请访问chain.link,订阅Chainlink新闻通讯,并在Twitter上关注@chainlink。要了解Chainlink网络的全部愿景,请阅读Chainlink 2.0白皮书。
Chainlink 2.0白皮书中文版已于日前发布,想要了解更多关于Chainlink 2.0的内容细节,请扫描下方二维码▼
END
加入 Chainlink官方社区▼
QQ群: 6135525
点击“阅读原文” 进入 Chainlink中文官网