Solidity¶

Solidity logo Solidity 是一个 contract-oriented(面向合约的), 为实现 smart contracts(智能合约)而创建的高级语言.它受到 C++, Python 和 JavaScript 语言的影响, 所以其设计的目的是可以在以太坊虚拟机 (EVM) 上来运行使用.

Solidity 是静态类型的语言, 支持继承, 相关库和复杂的用户定义类型, 以及一些其它特性.

正如你所看到的那样, 可以用于创建 voting(投票), crowdfunding(众筹), blind auctions(秘密竞价/盲拍), multi-signature wallets(多重签名钱包)等等的这样的合约.

Note

目前尝试使用 Solidity 的最佳方式是使用 Remix Remix (可能需要一段时间才能加载, 请耐心等待).Remix 是一个基于 Web 浏览器的 IDE, 可以让您编写 Solidity 智能合约, 然后部署和运行它(智能合约).

Warning

由于软件是由人类所编写的, 因此它可能存在 BUG.因此, 智能合约也应该遵循着众所周知的软件开发最佳实践.这包括 code review(代码审查), testing(测试), audits(审计)和 correctness proofs(正确性证明).

  1. 另请注意, 用户有时比其作者对代码更有信心. 最后, 区块链也有它们自己的注意事项, 所以请参阅一下 [安全性考虑](http://solidity.apachecn.org/cn/doc/v0.4.21/security-considerations.html#security-considerations) 这个部分.

翻译¶

本文档由社区志愿者翻译成多种语言, 但是英语版本作为主要参考.

友情链接¶

可用的 Solidity 集成¶

  • Remix基于浏览器的 IDE, 集成了编译器和 Solidity 运行时环境, 并且不需要服务端的组件.
  • IntelliJ IDEA pluginIntelliJ IDEA 的 Solidity 插件(可用于其它所有的 JetBrains IDEs)
  • Visual Studio ExtensionMicrosoft Visual Studio 的 Solidity 插件, 它包含了 Solidity 编译器.
  • Package for SublimeText — Solidity language syntaxSublimeText 编辑器的语法高亮包.
  • EtheratomAtom 编辑器的插件, 其特性是语法高亮, 可编译的和可运行的环境(后端节点 & 虚拟机兼容的).
  • Atom Solidity LinterAtom 编辑器的插件, 提供 Solidity 语言的 Lint 检查(静态检查).
  • Atom Solium LinterAtom 的可配置的 Solidty 静态检查器, 它是基于 Solium 来使用的.
  • Solium一种静态检查器, 识别和修复 Solidity 语言中的风格以及安全问题.
  • Solhint一种静态检查器, 提供安全和风格指南以及智能合约验证的最佳实践规则.
  • Visual Studio Code extensionMicrosoft Visual Studio Code 插件, 包含语法高亮和 Solidity 编译器.
  • Emacs SolidityEmacs 编辑器的插件, 提供语法高亮和编译错误报告.
  • Vim SolidityVim 编辑器的插件, 提供语法高亮.
  • Vim SyntasticVim 编辑器的插件, 提供编译检查. 停止使用:

  • Mix IDE基于 Qt 的 IDE, 可以设计, 调试和测试 Solidity 语言的智能合约.

  • Ethereum StudioSpecialized web IDE that also provides shell access to a complete Ethereum environment.专门的网页 IDE, 它也提供一个 shell 脚本访问完整的以太坊环境.

Solidity 工具列表¶

  • DappSolidity 语言的构建工具, 包管理器以及部署助手.
  • Solidity REPL一个命令行控制台, 可以立刻尝试使用 Solidity 语言.
  • solgraph可视化的 Solidity 控制流, 并能标明潜在的安全漏洞.
  • evmdisEVM 反汇编程序, 它可以执行字节码的静态分析, 能提供比 EVM 操作更高级的抽象.
  • DoxitySolidity 语言的文档生成器.

第三方的 Solidity 解析器和语法¶

Solidity 语言文档¶

在下面的页面中, 我们首先会看到一个使用 Solidity 来编写的 简单智能合约,随后开始讲解 区块链基础,然后再是 以太坊虚拟机(EVM).

接着下一节将会通过给出有用的 合约示例 来解释几个 Solidity 语言方面的特性, 需要提醒一下的是,你都可以在 你的浏览器 中尝试运行这些合约.

最后, 也是最长的一节将会深入讲解 Solidity 的各个方面.

如果还有问题, 你可以尝试在搜索引擎中获取答案,或在 Ethereum Stackexchange 上提问,或者到我们的 gitter channel 中来。随时欢迎改善 Solidity 或本文档的想法!

目录¶

原文: http://solidity.apachecn.org/cn/doc/v0.4.21/index.html