Solidity 是一门面向合约的、为实现智能合约而创建的高级编程语言。这门语言受到了 C++,Python 和 Javascript 语言的影响,设计的目的是能在以太坊虚拟机(EVM)上运行。
Solidity 是静态类型语言,支持继承、库和复杂的用户定义类型等特性。
下面您将会看到,使用 Solidity 语言,可以为投票、众筹、秘密竞价(盲拍)、多重签名的钱包以及其他应用创建合约。
Note
目前尝试 Solidity 编程的最好的方式是使用 Remix (需要时间加载,请耐心等待)。Remix 是一个基于 Web 浏览器的 IDE,它可以让你编写 Solidity 智能合约,然后部署并运行该智能合约。
Warning
因为软件是人编写的,就会有 bug,所以,创建智能合约也应该遵循软件开发领域熟知的最佳实践。这些实践包括代码审查、测试、审计和正确性证明。也请注意,有时候用户在代码方面比软件的作者更谙熟。最后,区块链本身有些东西需要留意,请参考 安全考量。
本文档由社区志愿者翻译成多种语言,但是 英语版本 作为主要参考。
基于浏览器的 IDE,集成了编译器和 Solidity 运行时环境,不需要服务端组件。
IntelliJ IDEA 的 Solidity 插件(可用于其他所有的 JetBrains IDE)
Microsoft Visual Studio 的 Solidity 插件,包含 Solidity 编译器。
SublimeText 编辑器的语法高亮包。
Atom 编辑器的插件,支持高亮、编译和运行时环境(兼容后端节点和虚拟机)。
Atom 编辑器的插件,提供 Solidity 语言的 Lint 检查(静态检查)。
Atom 的可配置的 Solidty 静态检查器,基于 Solium。
一种静态检查器,识别和修复 Solidity 中的风格以及安全问题。
一种静态检查器,提供安全和风格指南以及智能合约验证的最佳实践规则。
Microsoft Visual Studio Code 插件,包含语法高亮和 Solidity 编译器。
Emacs 编辑器的插件,提供语法高亮和编译错误报告。
Vim 编辑器的插件,提供语法高亮。
Vim 编辑器的插件,提供编译检查。
不再维护:
基于 Qt 的 IDE,可以设计、调试和测试 Solidity 智能合约。
专门的网页 IDE,也提供一个完整以太坊环境的脚本访问。
Solidity 语言的构建工具、包管理器以及部署助手。
一个命令行控制台,可以让你立刻尝试 Solidity 语言。
可视化的 Solidity 控制流,并能标明潜在的安全漏洞。
EVM 反汇编程序,可以执行字节码的静态分析,能提供比 EVM 操作更高级的抽象。
Solidity 语言的文档生成器。
JavaScript 的 Solidity 解析器
ANTLR 4 解析器生成器的 Solidity 语法
下面的页面中,我们首先会看到一个使用 Solidity 写的 简单智能合约,随后讲解 区块链 基础,然后是 以太坊虚拟机 。
下一节会通过给出有用的 合约样例 ,解释 Solidity 的几个*特性* ,记住你都可以 在你的浏览器中 尝试这些合约!
最后也是最长的一节会深入讲解 Solidity 的所有方面。
如果还有问题,你可以尝试搜索或在 Ethereum Stackexchange 上提问,或者到我们的`gitter 频道 <https://gitter.im/ethereum/solidity/>`_ 来。随时欢迎改善 Solidity 或本文档的想法!