IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> 【以太坊篇】-完成一个简易的智能合约部署 -> 正文阅读

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

首先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使用手冊。

图片

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

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

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

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

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

(可以)

图片

在本地部署合约

1. 设置网络

点选左上的?run。

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

2. 发送交易部署合约

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

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

图片

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


执行合约?—?查询余额

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

可以点右边的按钮复制

2. 输入账户

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

"0xca35b7d915458ef540ade6068dfe2f44e8fa733c"

3. 点击 balanceOf

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

图片

第二个用户代币为0.

di

图片


执行合约?—?转移代币

1. 选择要输出的账户

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

?2. 输入要转入的账户

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

"0x4b0897b0513fdc7c541b6d9d7e929c4e5364d2db",?10

 

3. 点击 transfer

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

图片

4. 确认余额更新

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

图片

错误情況

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


在测试网络部署合约

1. 安裝?MetaMask

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

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

图片

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

图片

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

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

图片

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

图片

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

图片

?然后点击continue进入:

图片

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

图片

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

我们选择 Ropsten Test?Net

2. 选择测试网络

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

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

3. 部署合约

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

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

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

图片

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

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

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

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

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

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

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

?

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2021-09-04 17:34:51  更:2021-09-04 17:35:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 19:53:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码