BlockChain

0x00-环境配置

https://www.cnblogs.com/KRDecad3/p/10798383.html

Rinkeby获取测试币网站

https://faucets.chain.link/rinkeby

其他的获取都没啥问题,选择购买->第二个即可

0x01-基础使用

可以本地化安装,也可以使用在线网站 http://remix.ethereum.org

0x00-创建文件

按照如下操作创建新文件,名称后缀为.sol

0x01-源码编译

源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
pragma solidity ^0.4.23;
contract Trans{

string flag;
mapping(address => uint256) balances;
constructor () public {
//flag = WHAT_YOU_WANT;
}

function getBalance() public returns (bool){
balances[msg.sender] = 100;
return true;
}

function showBalance() public view returns (uint256){
return balances[msg.sender];
}

function Transfer(address[] _addr, uint256 _value) public returns (bool){
uint times = _addr.length;
uint256 amount = uint256(times) * _value;
require(_value > 0 && balances[msg.sender] >= amount);
require(times > 0 && times < 10);
balances[msg.sender] -= amount;
for(uint i = 0; i < times; i++){
balances[_addr[i]] += _value;
}
return true;
}

function getFlag() public view returns (string){
require(balances[msg.sender] > 9999999);
return flag;
}
}

一些说明

我们选择的COMPILER需要和题目的源码的版本一致

然后我选择了自动编译

0x02-配置题目合约

一些说明

弄好之后点击Deploy即可,然后他会连接并让我们确认支付

然后这些就是函数

0x02-刷题网站

https://chainflag.org/challenges

因为智能合约基本是solidity语法,所以需要学习一下

https://www.jianshu.com/p/70aecda3212e