对于以太坊的Solidity语言介绍

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

 

 

你可能感兴趣的:(区块链)