【以太坊篇】-完成一个简易的智能合约部署

首先1号是尝试过很多方法,最后吐血总结的。部署本地以太坊平台,最后以钱包安装问题告终,将remix换成本地登录,最后以geth安装告终。(题外:成功过一次后来就用不了了)最后选择用在线remix结合metamask来部署连接。

这个相比之下容易多了,需要两个工具:在线remix和metamask安装。

  1. remix网址:http://remix.ethereum.org/

  2. metamask安装处:https://metamask.io/download.html

metamask其实与本地部署的Ethereum wallet钱包一样的功能,但前者是在对应浏览器上的插件(若谷歌不行可以换edge)。

      代币合约的范例很多,Ethereum 官网有提供一个最小可执行的代币合约(MINIMUM VIABLE TOKEN):

pragma solidity ^0.4.0;
contract MyToken{
    mapping (address => uint256) public balanceOf;
    function Mytoken(uint256 _supply) public {
        if (_supply ==0)_supply =10000;
        balanceOf[tx.origin] = _supply;
    }
    function transfer(address _to,uint256 _value)public {
        if (balanceOf[tx.origin] < _value) return;
        if (balanceOf[_to] + _value < balanceOf[_to]) return;
        
        balanceOf[tx.origin] -= _value;
        balanceOf[_to] += _value;
    }
}

这个 MyToken 合约真的很简单,只能做两件事:

  • 创建代币:发起合约时创建指定数量的代币,代币拥有者是发起合约的 Ethereum 帐户

  • 转移代币:转移指定数量的代币到指定的 Ethereum 帐户

至于一个完整的代币合约,可参考ERC20 Token使用手冊。

【以太坊篇】-完成一个简易的智能合约部署_第1张图片

如上图,创建一个MyToken.sol的合约文件,成功后左边编译处会显示绿色,同时应注意,pragma的版本号一定要低于COMPILER。

1. 点右上角 + 新增一个合约

名称任意只要扩展名是 “.sol”。

2. 复制合约內容到该合约并编译

Remix 默认设置会自动编译,只要旁边没有蹦出红色的 error 提示就代表编译成功。

(可以)

【以太坊篇】-完成一个简易的智能合约部署_第2张图片

在本地部署合约

1. 设置网络

点选左上的 run。

Environment 选择 JavaScript VM 代表所有资料都是存在本地(功能类似 testrpc)。它会提供 5 个虚拟账户每个有 100 ETH,随便选择一个账户(要记住后面一直要用)。

2. 发送交易部署合约

选择 MyToken。可以看到 create 按钮。且已根据合约內容显示必须输入 initialSupply(也就是要发行的代币数量)。输入一个数目点create,就可以发送交易部署合约。

合约部署成功后,可以看到合约的使用界面。Remix 会自动根据合约的內容,产生对应的合约使用界面。可以看到合约有两个功能:balanceOf(查询余额) 和 transfer(转移代币)。

【以太坊篇】-完成一个简易的智能合约部署_第3张图片

可以看到 log(记录每一次的操作)。实际上部署合约是通过一个 Ethereum 交易完成,点 Details 可以看到这笔交易详细资料。


执行合约 — 查询余额

1. 选择刚刚发起合约的账户

可以点右边的按钮复制

2. 输入账户

注意要用 “” 把账户括起來,示例:

"0xca35b7d915458ef540ade6068dfe2f44e8fa733c"

3. 点击 balanceOf

可以看到执行结果,也就是目前这个账户的代币余额。

【以太坊篇】-完成一个简易的智能合约部署_第4张图片

第二个用户代币为0.

di

【以太坊篇】-完成一个简易的智能合约部署_第5张图片


执行合约 — 转移代币

1. 选择要输出的账户

选择刚刚发起的合约的账户。

 2. 输入要转入的账户

选择並复制另一个账户。在合约界面 transfer 后面的输入位置,输入转入账户和要转移的代币数量。账户同样需要用 “” 括起來,示例:

"0x4b0897b0513fdc7c541b6d9d7e929c4e5364d2db", 10

 
  

3. 点击 transfer

点击 transfer,成功后会看到 log 更新。

【以太坊篇】-完成一个简易的智能合约部署_第6张图片

4. 确认余额更新

这时在查询转入账户的余额,就可以看到代币余额增加啦!

【以太坊篇】-完成一个简易的智能合约部署_第7张图片

错误情況

如果选择要转出的账户代币余额不足,这个交易就会失败,会在 log 看到错误提示。


在测试网络部署合约

1. 安裝 MetaMask

首先,要连到测试网络,这就要安裝 MetaMask。它是浏览器端的 Ethereum 钱包,可以连結 Ethereum 公共和测试网络。安装后需要建立 Ethereum 账号。

到chrome网上应用商店去下载metamask:

【以太坊篇】-完成一个简易的智能合约部署_第8张图片

然后查找metamask,进行安装即可

【以太坊篇】-完成一个简易的智能合约部署_第9张图片

因为我这已经安装好了,所以按钮处是评分,否则应该是安装按钮

安装好后查看chrome://extensions:

【以太坊篇】-完成一个简易的智能合约部署_第10张图片

然后点击详细信息就可以查看到其的UUID:

【以太坊篇】-完成一个简易的智能合约部署_第11张图片

然后点击右上见的图标就进入metamask了:

【以太坊篇】-完成一个简易的智能合约部署_第12张图片

 然后点击continue进入:

【以太坊篇】-完成一个简易的智能合约部署_第13张图片

因为之前我已经在Firefox上安装过了,所以这里直接使用seed phrase来加入钱包,如果你之前没有使用过,则看本博客metamask的使用

【以太坊篇】-完成一个简易的智能合约部署_第14张图片

然后就能够使用你之前钱包中的账户了。

我们选择 Ropsten Test Net

2. 选择测试网络

回到 Remix,这次 Environment 选择 Injected Web3,Remix 会自动连接 MetaMask。

成功连接后会看到和 MetaMask 相同账号和 Ether 余额

3. 部署合约

接着用同样的方式,按 create 部署合约,就会看到 MetaMask 的弹出窗口。直接按 submit 发送交易。

稍等片刻(需要等交易被确认),部署成功后合约的使用界面就会出来。

ok,现在可以用同样的方式使用合约啦!(好勒我余额不足)

【以太坊篇】-完成一个简易的智能合约部署_第15张图片

部署平台尝试更多的合约并开发是我后续要去做的事情。同样的除了区块链其余的关于能源方面的知识其实也没有更新过,后续会出几期关于需求响应虚拟电厂总结的一些模型,或者是一些新的政策新闻。

这个号也不是纯粹说区块链,回归本质,说的是能源区块链。

好勒如果后续有问题可以随时猛戳1号。

下期再见,我会努力一个星期一期的。枯

参考:https://www.cnblogs.com/wanghui-garcia/p/9897751.html

https://www.cnblogs.com/helloworld2018/p/8888197.html

关注微信公众号,随时随地获得能源区块链知识,跟我一起来学习吧

【以太坊篇】-完成一个简易的智能合约部署_第16张图片

 

你可能感兴趣的:(以太坊,区块链)