以太坊solidity demo
demo.sol
pragma solidity ^0.4.21;
//定义合约
contract SimpleStorage{
//状态变量,属于成员变量
uint storedData;
//构造函数
constructor() public{
storedData = 100;
}
//成员函数
function set(uint x) public{
storedData = x;
}
function get() constant public returns (uint retVal){
return storedData;
}
//析构函数
function destroy() public{
selfdestruct(msg.sender);
}
}
本地部署流程 (remix)
get可以查看到100 set可以设置变量 但是需要发送交易 destroy销毁后 合约无法使用set get
在编译详情可以看到BYTECODE
编好的二进制文件(Contract ByteCode)
如何部署
合约写好后,把.sol编译成EVM(Ethereum Virtual Machine)可用的二进制文件(Contract ByteCode)才能部署到Ethereum的区块链上执行,部署到区块链上的合约会有一个钱包地址(地址)和一样格式的合约地址(Contract Address)
部署后智能合约可自动执行。后续call智能合约的时候,使用者可以使用部署合约的钱包地址(所有者账户),或根据编写的智能合约条件,让其他钱包地址也能呼叫这个智能合约。呼叫智能合约,其实就是向这个合约地址发起交易,只是交易的不只是代币,而可以是智能合约提供的呼叫方法。




