2017-12-07 芯链团队 小明微思考
原文地址:https://mp.weixin.qq.com/s?__biz=MzA4Mzk2MzUzNg==&mid=2651223347&idx=1&sn=a243a8b171709fbcc8cbffda1190218d&chksm=841caeccb36b27da3cd5a36243c0b1846d77bd2d7f5f8d0ccf42f3532f4ac997fb544f909311&mpshare=1&scene=23&srcid=011796NXzw36h2Exc6IV97UW#rd
版权属于原作者。

本文主要是针对有兴趣进行以太坊智能合约开发的技术爱好者,进行开发调试工具使用方面的指导。

 

1.   安装METAMASK

MetaMask 是一款浏览器插件钱包,不需下载安装客户端,只需添加至浏览器扩展程序即可使用,非常方便,并且可以很方便的调试和测试以太坊的智能合约。

1.1   首先安装Google Chrome浏览器

Google Chrome是一款由Google公司开发的网页浏览器,该浏览器基于其他开源软件撰写,包括WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。

MetaMask是Chrome浏览器上的一种插件,所以必须先安装Chrome浏览器。直接在百度浏览器中搜索,可以直接进行下载。   

1.2   安装Chrome的METAMASK插件

这里先需要提醒下,MetaMask目前必须在Chrome浏览器的在线应用商店进行在线下载和安装,因为网络原因你需要使用VPN才能下载安装。

输入MetaMask官网地址,https://metamask.io/,在官网主页参考下图指引通过Chrome应用商店来安装该插件。

请选择“添加至CHROME”,系统会自动下载和安装。

安装完毕后,在浏览器上会显示该插件的小图标,点击下图中“小狐狸”图标,会出现MetaMask的主操作界面。

首先是提示界面,可以忽略,点击“Accept”,进入下一步,下一步也是声明,需要拉倒低才能点击“Accept”。

然后会看到此界面,请输入账号密码一定不能忘记(也可以导入先去已有的Metamask账号):

在创建账号的时候为了防止账号密码丢失,这里提供的找回的助记词功能,拷贝恢复账号的安全码,一共是12个单词,切记,这一步很重要,一定要把这安全码记录下来方便恢复账号。

然后系统会生成一个以太坊的账号,你可以进行以他操作:

  • 可以很方便的查看钱包地址

  • 将地址转换为二维码

  • 买入以太币

  • 发送以太币

1.3   配置MetaMask

MetaMask默认连接的是以太坊的Main Ethereum Network,为了方便我们测试智能合约,需要切换到Ropsten Test Network。

1.4   在测试网络中获取以太币

在测试网络中获取以太币不需要付费,直接点击“BUY”,进入获取测试网络以太币界面,点击“ROPSTEN TEST FAUCET”,进入挖矿界面,每次最多挖去13个测试网络以太币。

 

 

2.    智能合约发布

2.1   获取HPB智能合约源码

本章节的智能合约发布调试主要以发布在以太坊的HPB智能合约作为测试和调试的对象。

HPB的智能合约源码已提交到etherscan.io,并认证通过,大家可以从以下地址获取:

https://etherscan.io/address/0x38c6A68304cdEfb9BEc48BbFaABA5C5B47818bb2#code

2.2   在线智能合约编译器

通过MetaMask来发布校验代码,需要结合一款Solidity在线编译器,可以很方便的对智能合约的代码进行调试。

请在网页中输入在线Solidity的编辑器地址,直接在网页中打开:https://ethereum.github.io/browser-solidity/

2.3    编译智能合约

把从etherscan.io下载的HPB智能合约源码黏贴到编辑器中。HPB的源码技术爱好者可以自己分析理解下,这里为了后续能在MetaMask中进行调试测试和检查发布结果,这里需要对代码进行校验和编译。

请先在Chrome中登录MetaMask账号,在下图界面上选择“run”按钮,系统会自动把MetaMask中你的ETH账号同步到下图中的“Account”选项中,其他属性不用修改。

注意在下图中,选择智能合约的名称,名称和源码中的名称保持一致:

在Create按钮旁边的输入框输入构造参数,此参数是接受ETH转账地址的账号

例如本文中ETH测试网络中的账号:“0x2F89c15a7e52b00084e01Cc957C656fc53ceAc11”,注意一定要带有双引号。

同时请选择编译版本,和智能合约代码中指定的版本保持一致,同时后发布成功后也需要校验也需要选择和发布时候一致的编译版本。

2.4   发布智能合约

提示:发布智能合约的时候必须指定一个以太坊的账号进行发布。

校验完毕后点“Create”,在线编译器会自动的进行代码校验,如果校验通过会弹出MetaMask对话框。本文是通过创建的账户Account1来提交创建的合约。

2.5   查看智能合约产生的代币

智能合约发布成功后,会自动生成代币,HPB的代币总量是1亿枚。

2.6   查看创建智能合约交易

点击metamask查看最新的一笔发布智能合约的交易,点击跳转到网页显示详情。

通过下图可以找到智能合约的地址,以及ABI字符串,请复制ABI字符串后续校验智能合约的时候需要使用。

提示:注意ABI字符串是通用的截取规范是在下图中的“0029”数字之后。

2.7    校验已发布的智能合约

点击下图中的智能合约地址链接,进入智能合约详情页面。

跳转到此页面后,点击下图中的“Verify And Publish”,进入验证页面。

进入验证页面后,请注意一下几点:

  • Contract Name 务必保持和源码中的Contract Name保持一致。

  • Compiler选择的版本号务必和在MetaMask发布的版本保持一致。、

  • Optimization 请选择Disabled

还是在本页面,找到下图输入项,然后输入本次发布智能合约生成的ABI字符串,点击“Verify And Publish”验证智能合约。

发布过程如果没出现报错提示,会显示下列信息,表示验证通过。

2.8   查看校验通过的智能合约

校验通过后,可以在以太坊测试网络上查看校验通过智能合约详情。

测试网查询地址:https://ropsten.etherscan.io

可以很清晰的看到智能合约的相关属性,输入输出项。

通过METAMASK调试和发布智能合约指南(转载)的更多相关文章

  1. truffle 发布 智能合约

    参考 这篇https://www.codeooze.com/blockchain/ethereum-geth-private-blockchain/ 说的已经很详细了 genesis.json 过时了 ...

  2. c#实战开发:以太坊Geth 命令发布智能合约 (五)

    Token的合约代码我们参考Token-Factory的代码. 打开  https://remix.ethereum.org/#optimize=false&version=soljson-v ...

  3. 使用 Browser-solidity 在 Go-Ethereum1.7.2 上进行简单的智能合约部署

    目录 目录 1.基本概念 1.1.什么是智能合约? 1.2.什么是Solidity? 1.2.1.Solidity的语言特性 1.3.什么是 Browser-solidity? 2.Browser-s ...

  4. eos智能合约开发最佳实践

    安全问题 1.可能的错误 智能合约终止 限制转账限额 限制速率 有效途径来进行bug修复和提升 2.谨慎发布智能合约 对智能合约进行彻底的测试 并在任何新的攻击手法被发现后及时制止 赏金计划和审计合约 ...

  5. 使用remix发布部署 发币 智能合约

    Remix是一个基于浏览器的编译器和IDE,使用户能够使用Solidity语言构建以太坊合约并调试事务. 在上一篇文章已经成功的使用代码讲智能合约编译并且发布部署到了链上,可是在部署 发币的智能合约 ...

  6. 五一劳动节,讲讲NEO智能合约的调试

    之前我们说过NEO智能合约的调试问题,过去了一段时间,有很多东西都发生了比较大的变化.让我们重新再来探讨一下这个话题. 先说日期,2018年4月27日,马上迎来劳动节.   以后可能还会再次谈论这个话 ...

  7. EOS智能合约开发(四):智能合约部署及调试(附编程示例)

    EOS智能合约开发(一):EOS环境搭建和创建节点 EOS智能合约开发(二):EOS创建和管理钱包 EOS智能合约开发(三):EOS创建和管理账号 部署智能合约的示例代码如下: $ cleos set ...

  8. 使用web3+solc编译发布以太坊智能合约

    一.环境安装: 1.安装web3工程:npm install web3 2.安装solc工程:npm install solc二.在node环境中使用 先引用所需环境: var fs = requir ...

  9. java 调用区块链 发布和调用智能合约

    java连接区块链 很简单 ,调用智能合约要麻烦一些. 先说连接 区块链查询数据. 1 maven 项目导入 web3j 的依赖. <dependency> <groupId> ...

随机推荐

  1. 实验报告二&第四周学习总结

    一.实验目的: (1) 掌握类的定义,熟悉属性.构造函数.方法的调用,掌握用类作为类型声明变量和方法返回值: (2) 理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性: (3 ...

  2. MVC的一个简单实例

    基本思路: 一个Regist.jsp注册页面,用于收集用户信息,发送请求给控制器Servlet:控制器层Servlet封装模型层对象 jBean,并调用其方法regiser实现用户信息的保存:模型层J ...

  3. legend3---laravel验证码使用

    legend3---laravel验证码使用 一.总结 一句话总结: 1.先用composer下载好captcha扩展:配置好composer.json然后运行composer update 2.引入 ...

  4. git reset --hard 操作后的数据恢复

    在进行正文之前先简单介绍下git reset 命令 git reset git reset 命令用于改变当前的仓库状态,简单的场景用例:假设一次修改了两个文件,然而需要对这两个文件分别进行两次提交,在 ...

  5. 基本vim快捷键

    w,e等单词间跳转,英文字符(除了_),数字,符号,空格 都被vim独立看成独立的词

  6. 11 ORA-8102:Index Corruption解析

    11 ORA-8102:Index Corruption解析 [oracle@DSI ~]$ oerr ora 810208102, 00000, "index key not found, ...

  7. AndroChef Java Decompile

    With AndroChef Java Decompiler you can decompile apk., dex, jar and java class-files. It's simple an ...

  8. if you wanna the rainbow, you have to deal with the rain.

    bulk. n. 大量 reluctant. adj. 不情愿的 terrorist. n. 恐怖分子 recognition. n. 认出 tout.v. 兜售 conceal.v. 隐藏 dras ...

  9. python每日一练:0014题

    第 0014 题: 纯文本文件 student.txt为学生信息, 里面的内容(包括花括号)如下所示: { "1":["张三",150,120,100], &q ...

  10. 文档压缩 | gzip、bzip2、xz

    6.文档的压缩与打包 Linux下常见后缀名所对应的的压缩工具 .gz 表示由gzip压缩工具压缩的文件 .bz2 表示由bzip2压缩工具压缩的文件 .tar 表示由tar打包程序打包的文件(tar ...