Solidity开发测试环境搭建

Solidity基础

1.概念:一种智能合约的高级语言,用于编写以太坊智能合约。运行在EVM上面

2.语法类似js,是一种面向对象的语言.

3.和传统语言的区别

  • Address类型:由于以太坊的底层是基于账户的,所以拥有address类型,主要作用是定位合约,账户,合约代码等
  • Payable关键字:通过payable可以让以太坊在语言层面上支持支付
  • 可见性:除去传统语言所支持的public, private,solidity还支持external, internal.
  • 变量分类:与传统语言不同,solidity分类状态变量和内存变量,其中状态变量永久存在(保存在合约的存储空间中)
  • 最大的不同,异常机制,在solidity中,一旦出现异常,所有执行都会被回滚,主要是为了保证合约执行的原子性

4.Solidity是静态类型语言,在编译时就需要明确指定变量的类型

5.Solidity IDE了解

  • Remix的安装使用

Solc:没有remix方便,有warning没关系

Solidity开发测试环境搭建_第1张图片

Solidity开发测试环境搭建_第2张图片

  1. Sudo app-apt-repository ppa:Ethereum/Ethereum
  2. Sudo apt-get update
  3. Sudo apt-get install

  • 其它IDE
  1. VSCode
  2. Goland

Solidity开发测试环境搭建_第3张图片

Remix(需要)

Solidity开发测试环境搭建_第4张图片

对中文支持不好,写注释不方便,可以在vscode上面写。

  • 环境选择Injected Web3 会自动连接metamask

Solidity开发测试环境搭建_第5张图片

  • 环境选择JavaScript VM ,会生成5个测试账号,每个账号里面有5个100eth。

Solidity开发测试环境搭建_第6张图片

 

  • Transactions recorded:上报交易
  • view:可以在界面上直接看到信息

Solidity开发测试环境搭建_第7张图片

Solidity开发测试环境搭建_第8张图片

Solidity开发测试环境搭建_第9张图片


Solidity开发测试环境搭建

1.npm安装(linux下)

  • 地址:https://nodejs.org/en/download/
  • 解压:tar -zxvf /path/ node.**.tar.gz
  • 进入node目录
  • 执行配置脚本 ./configure
  • 编译、安装:make && make install
  • 检查版本
  1. node版本:node -v
  2. npm版本:npm -v

Solidity开发测试环境搭建_第10张图片

npm安装(Mac下)

  • 在官网上下载

Solidity开发测试环境搭建_第11张图片

  • 下面来测试下是否安装成功: 打开Mac下的终端输入:node -v 会出现版本号就说明成功了:

Solidity开发测试环境搭建_第12张图片


truffle和testrpc

Solidity开发测试环境搭建_第13张图片

truffle和testrpc(linux下)

  • truffle和testrpc是配套的以太坊开发测试框架,truffle可以快速编译和部署,testrpc可以快速生成测试账号
  • 安装
  1. 如果由于安装比较慢,可以考虑先设置国内的源
  2. npm config set registry https://......
  3. npm install -g truffle
  4. npm install -g ethereumjs-testrpc
  • 查看版本号:truffle --version

truffle和testrpc(Mac下)

  • npm install -g truffle。

安装完成后命令行输入truffle,查看是否安装成功。

Solidity开发测试环境搭建_第14张图片

  • 十个测试账号和对应的私钥

Solidity开发测试环境搭建_第15张图片

Solidity开发测试环境搭建_第16张图片

3.Ganache

  • testrpc的升级版
  • 下载地址:https://github.com/trufflesuite/ganache/releases

Solidity开发测试环境搭建_第17张图片

  • 点击钥匙?,显示每个账户的私钥。

Solidity开发测试环境搭建_第18张图片

TRANSACTIONS:记录账户上的操作转账。

LOGS:显示所有的操作

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