Solidity 简介学习手册

收录于 2023-04-20 00:10:05 · English · بالعربية · Español · हिंदीName · 日本語 · Русский язык · 中文繁體

Redis教程Solidity语言是一种面向合约的高级编程语言,用于在以太坊区块链网络上实现智能合约。Solidity语言深受c++、Python和JavaScript的影响,针对以太坊(Ethereum)虚拟机(EVM)设计。
Solidity语言是静态类型语言,支持继承、库和复杂的用户定义类型。
可以使用Solidity语言创建区块链上运行的投票、众筹、钱包等各种类型的智能合约。

以太坊/Ethereum是什么?

以太坊是一个去中心化的,运行智能合约的区块链平台。

以太坊/Ethereum虚拟机(EVM)

Ethereum虚拟机,也称为EVM,是以太坊/Ethereum中智能合约的运行时环境。
可以用某种语言,例如Solidity语言,开发智能合约程序,编译成以太坊(Ethereum)虚拟机支持的字节码/bytecode,然后该程序就可以在虚拟机中执行了。

什么是智能合约?

智能合约(Smart contract )是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于1995年由Nick Szabo首次提出。
智能合约的目的是提供优于传统合约的安全方法,并减少与合约相关的其他交易成本。
简单地说,智能合约可以理解为一个自执行的协议。智能合约可以自动处理协议的履行、管理、以及支付。
例如,可以编写这样一个智能合约:本月底之前,老王转账给小张1个以太币,这个智能合约部署后,就会在月底之前,自动把老王的1个以太币转账给小张,无需人为干预。
如果你现在不理解智能合约也没关系,我们稍后会更详细地讲解。

可用的 Solidity 集成

Remix:基于浏览器的 IDE,集成了编译器和 Solidity 运行时环境,不需要服务端组件。 IntelliJ IDEA plugin:IntelliJ IDEA 的 Solidity 插件(可用于其他所有的 JetBrains IDE) Visual Studio Extension: Microsoft Visual Studio 的 Solidity 插件,包含 Solidity 编译器。 Package for SublimeText — Solidity language syntax: SublimeText 编辑器的语法高亮包。 Etheratom: Atom 编辑器的插件,支持高亮、编译和运行时环境(兼容后端节点和虚拟机)。 Atom Solidity Linter: Atom 编辑器的插件,提供 Solidity 语言的 Lint 检查(静态检查)。 Atom Solium Linter: Atom 的可配置的 Solidty 静态检查器,基于 Solium。 Solium: 一种静态检查器,识别和修复 Solidity 中的风格以及安全问题。 Solhint: 一种静态检查器,提供安全和风格指南以及智能合约验证的最佳实践规则。 Visual Studio Code extension: Microsoft Visual Studio Code 插件,包含语法高亮和 Solidity 编译器。 Emacs Solidity: Emacs 编辑器的插件,提供语法高亮和编译错误报告。 Vim Solidity: Vim 编辑器的插件,提供语法高亮。 Vim Syntastic: Vim 编辑器的插件,提供编译检查。

不再维护:

Mix IDE: 基于 Qt 的 IDE,可以设计、调试和测试 Solidity 智能合约。 Ethereum Studio: 专门的网页 IDE,也提供一个完整以太坊环境的脚本访问。

Solidity 工具列表

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

第三方 Solidity 解析器和语法

solidity-parser: JavaScript 的 Solidity 解析器 Solidity Grammar for ANTLR 4: ANTLR 4 解析器生成器的 Solidity 语法