主要智能合约语言:Solidity
合约编程语言是智能合约开发者最基本的部分,你至少应该掌握一种才能编写智能合约。合约语言通常不是传统的编程语言(如C/C++,Python等), 为了保证合约代码在任何一个区块链节点上都能够得到一个确定的执行结果, 必须要求合约不能访问外部世界(如进行HTTP连接或操作文件),早期的区块链开发者们设计出了专为编写合约的编程语言,如Solidity、Vyper, 后来又诞生了一些新的合约语言如Move或Rust(但包含一些使用限制)。好消息是这些语言都大量借鉴了传统编程语言的语法,如Solidity借鉴JavaScript、Vyper借鉴Python,这使得成为一名合约开发者的学习曲线平坦了一些。
目前90%的智能合约都是Solidity写的。Solidity算是最早也是最流行的面向对象的高级静态语言,最初2014年是为以太坊EVM量身设计的, 后来又出现了很多兼容以太坊EVM的区块链平台(如Ethereum、Avalanche、Moonbeam、Polygon、BSC),所以现在Solidity也可以运行在其他那些兼容EVM的区块链上。 在目前排名前十的 Defi项目 中,有九个使用Solidity作为他们的主要编程语言。
Solidity发展至今已经快十年,生态内已经有大量优秀的开发工具可供使用,包括第三方库以及IDE等(后面介绍)。另外,在EVM上运行的比Solidity更原生的语言是汇编语言Yul,进阶Solidity时你会了解到Solidity与Yul通过内联交互以提高性能的应用。
需要注意的是,Solidity在语法设计上存在一些缺陷,当然,这些年不断的被改进,在易用性和安全性上已经得到了极大的提升。
对于Solidity的学习,这里强烈推荐本仓库主页中列出的书籍 智能合约技术与开发 ,且在本仓库中也存放有笔者对该书的代码笔记 。