以太坊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智能合约的时候,使用者可以使用部署合约的钱包地址(所有者账户),或根据编写的智能合约条件,让其他钱包地址也能呼叫这个智能合约。呼叫智能合约,其实就是向这个合约地址发起交易,只是交易的不只是代币,而可以是智能合约提供的呼叫方法。