实验目的
了解以太坊的基本逻辑,理解以太坊的运行机理。能正确使用solidity进行简单智能合约设计。能完成链上数据存取。
基本原理
了解solidity语法,使用solidity进行简单智能合约设计。
实验环境
Chrome、Metamask插件
Remix网页:remix.ethereum.org
实验内容
1.学习《Solidity介绍》视频,了解智能合约语法
合约是存放在以太坊区块链具有特定地址的代码和数据集合。 合约账户之间可以相互传递消息以实现图灵完备运算。 合约以以太坊特定的二进制字节码通过以太坊虚拟机(EVM)运行于区块链上。目前,合约通常是以Solidity(一门长得很像js的语言)高级语言编写,编译后传到区块链上运行。可使用浏览器版IDE Remix进行智能合约的开发。
2.在remix网页中,编译部署水龙头faucet合约
新建一个合约文件faucet.sol
pragma solidity ^0.4.22;
contract Faucet{
function withdraw(uint amount) public{
require(amount <= 100000000000000)
msg.sender.transfer(amount);
}
}
激活插件使这两个插件的按钮都变成deactivate
将连接改成Injected Web3
需要先点击compile
再点击deploy
可以看到以太坊从0.188变成了0.184,其中的0.004为手续费
3.(选作)在remix网页中,编译部署简单存储合约
pragma solidity >0.4.22;
contract SimpleStorage{
uint myData;
function setData(uint newData) public{
myData = newData;
}
function getData() public view returns(uint){
return myData;
}
}