对于以太坊的Solidity语言介绍
其他
2020-06-26 11:18:12
阅读次数: 0
Solidity是什么
- Solidity是一门面向合约的、为实现智能合约而创建的高级编程语言,主要目的是为了在以太坊虚拟机(EVM)上运行
- Solidity是静态语言,支持继承、库和复杂的用户定义等特性
- 内含的类型除了常见的编程语言中的标准类型,还包括address等以太坊独有的类型,solidity源码文件通常以sol作为扩展名
- 目前对于solidity语言编程最好的是Remix。remix是一个基于Web浏览器的IDE,它可以编写、部署智能合约
Solidity的语言特性
- Solidity语法接近于JavaScript,是一种面向对象的语言,但是因为Solidity是为了编写真正意义上的运行在网络中的去中心化合约,与传统的语言相比具有很多的不同点
- 以太坊底层是基于账户,而不是UTXO,所以增加了一个特殊的address的数据类型用于定位用户和合约账户
- 语言内嵌框架就支持支付,提供了和支付相关的payable关键字,可以在语言层面上直接支持支付
- 使用区块链进行数据存储,数据中的每一个状态都可以永久存储,所以在合约中定义变量是需要指定使用内存还是区块链存储
- 运行环境是在去中心化的网络上,所以需要强调合约或者函数执行的调用方式
- 不同的异常机制。遵循原子特性,一旦出现异常,所有的执行都会被回撤,这主要是为了保证合约执行的原子特性,防止出现中间状态出现数据不一致的情况
Solidity源码和智能合约
- solidity源代码要想成为可以运行在以太坊上的智能合约需要经历以下步骤
- 用Solidity编写的智能合约源代码需要使用编译器编译为成为字节码文件(bytecode),编译过程中会同时产生智能合约的二进制接口规范(Application Binary Interface,简称为ABI)
- 通过交易(Transaction)的方式将字节码部署到以太坊网络,每次成功部署都会产生一个新的智能合约账户
- 使用JavaScript编写的DApp通常通过修改web3.js+ABI去调用智能合约中的函数来实现对于数据的读取和修改
Solidity编译器
Remix
- Remix是一个基于web浏览器的Solidity IDE,可在线使用而且不需要安装任何东西
solcjs
- Solcjs是Solidity的源码库的构建目标之一,是Solidity的命令行编译器
- 使用npm可以便携地安装Solidity编译器solcjs
- 默认是安装在/opt/node-v9.0.0-linux-x64的文件夹下,可以使用软连接映射到/usr/local/bin文件夹下
命令如下
npm install -g solc
转载自blog.csdn.net/CHYabc123456hh/article/details/106956390