zoukankan      html  css  js  c++  java
  • 通过METAMASK调试和发布智能合约指南(转载)

    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

     

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

    本人精通java高并发,DDD,微服务等技术实践,专注java,rust技术栈。 本人姓名郭莹城,坐标深圳,前IBM架构师、咨询师、敏捷开发技术教练,前IBM区块链研究小组成员、十多年架构设计工作经验,《区块链核心技术与应用》作者之一, 现聚焦于:区块链创投与交易所资源对接和技术咨询。 工作微信&QQ:360369487,区块链创投与交易所资源对接,加我注明:博客园+对接,技术咨询和顾问,加我注明:博客园+顾问。想学习golang和rust的同学,也可以加我微信,备注:博客园+golang或博客园+rust,谢谢!
  • 相关阅读:
    Leetcode 121. Best Time to Buy and Sell Stock
    Leetcode 120. Triangle
    Leetcode 26. Remove Duplicates from Sorted Array
    Leetcode 767. Reorganize String
    Leetcode 6. ZigZag Conversion
    KMP HDU 1686 Oulipo
    多重背包 HDU 2844 Coins
    Line belt 三分嵌套
    三分板子 zoj 3203
    二分板子 poj 3122 pie
  • 原文地址:https://www.cnblogs.com/gyc567/p/8303086.html
Copyright © 2011-2022 走看看