Solidity基础
1.概念:一种智能合约的高级语言,用于编写以太坊智能合约。运行在EVM上面
2.语法类似js,是一种面向对象的语言.
3.和传统语言的区别
- Address类型:由于以太坊的底层是基于账户的,所以拥有address类型,主要作用是定位合约,账户,合约代码等
- Payable关键字:通过payable可以让以太坊在语言层面上支持支付
- 可见性:除去传统语言所支持的public, private,solidity还支持external, internal.
- 变量分类:与传统语言不同,solidity分类状态变量和内存变量,其中状态变量永久存在(保存在合约的存储空间中)
- 最大的不同,异常机制,在solidity中,一旦出现异常,所有执行都会被回滚,主要是为了保证合约执行的原子性
4.Solidity是静态类型语言,在编译时就需要明确指定变量的类型
5.Solidity IDE了解
Solc:没有remix方便,有warning没关系


- Sudo app-apt-repository ppa:Ethereum/Ethereum
- Sudo apt-get update
-
Sudo apt-get install

- VSCode
- Goland

Remix(需要翻墙)

对中文支持不好,写注释不方便,可以在vscode上面写。
- 环境选择Injected Web3 会自动连接metamask

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

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



Solidity开发测试环境搭建
1.npm安装(linux下)
- node版本:node -v
- npm版本:npm -v

npm安装(Mac下)

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

truffle和testrpc

truffle和testrpc(linux下)
- truffle和testrpc是配套的以太坊开发测试框架,truffle可以快速编译和部署,testrpc可以快速生成测试账号
- 安装
- 如果由于安装比较慢,可以考虑先设置国内的源
- npm config set registry https://......
- npm install -g truffle
- npm install -g ethereumjs-testrpc
truffle和testrpc(Mac下)
安装完成后命令行输入truffle,查看是否安装成功。



3.Ganache


TRANSACTIONS:记录账户上的操作转账。
LOGS:显示所有的操作