账号创建完成之后,账号余额是0,但是部署合约是需要消耗GAS的,因此需要获取一定的以太币才能够继续本次实现。在测试网中获取以太币可以通过挖矿的方式,在开发菜单中可以选择打开挖矿模式,但是这需要将Syn Mode模式修改为Full,这意味着需要将测试网的全部区块数据同步下来才可以进行挖矿,这些数据非常大且同步缓慢,因此建议采用第2种方案:到以太坊基金会申请以太币,读者可以自行搜索“获取测试网以太坊币”,会有相关的网址获取以太币,一般需要输入读者自己的测试环境以太坊账号。

(1)本节使用的代码案例需要2个以上的以太坊账号,请读者申请创建2个账号并分别申请测试用的ETH代币。成功创建账号并获取以太币之后,就可以开始部署智能合约的操作了,如图2.13所示,选择 COTRACT->DEPLOY NEW CONTRACT。

图2.13 智能合约tab页面

(2)将上一章用的Coin合约代码复制粘贴到图2.14中3的区域,其中1表示账号用于部署该合约的账号,对应于Coin构造函数的msg.sender这个内容。区域2表示给当前的智能合约转账多少,单位是以太币的个数。4表示该合约代码存在编译错误,需要修改。

图2.14智能合约代码输入

(3)稍作修改之后,代码编译通过。在代码的右侧,是一个下拉选项,选项中有智能合约的名称列表,此示例中仅有Coin一个智能合约,选中此合约,在合约代码的下方有GAS费用调节的滑块和DEPLOY按钮。GAS费用前面讲到过,付出越高的GAS费用,被矿工选中打包成区块的概率也越高,如图2.15所示,此示例中我们选中默认GAS数量,然后点击DEPLOY按钮。

图2.15选择智能合约名称并修改GAS费用

(4)点击部署合约之后,以太坊钱包会弹出交易转账密码输入的对话框,此密码即为秘钥的加密密码,通过输入密码,以太坊钱包动态的解密私钥,通过私钥对交易进行签名,然后广播到以太坊网络中,该交易会加入到交易池中并显示为pending状态。矿工会选择该交易并将智能合约运行来修改以太坊状态机的状态。修改成功之后,将产生的新状态以及交易收据、永久存储数据、余额等信息写入到以太坊,并将所有数据打包进新的区块。

(5)正确输入密码并SEND TRASACTION之后,以太坊钱包会进入等待以太坊网络矿机打包的过程中,图2.16就是正在等待交易被打包,该交易是一个Create Contract的操作。交易被成功打包到新的区块之后,会生成关于该交易的很多索引信息,如图2.17所示。

图2.16输入密码,支付费用以便部署智能合约

图2.17交易等待打包的状态提示

(6)图2.18中,1是交易的hash值,点击该链接可以打开区块链浏览器,查看关于该交易的更多详细信息;2是区块打包的时间;3表示该交易设计的转账金额,本示例只是创建合约,并没有转移以太币;4是发起改交易的以太坊账户,点击该选项可以打开区块链浏览器,查看关于该账户的所有交易记录,任何有人都可以查到这些信息,因此区块链是透明公开的;5表示该交易的目的地址,创建智能合约时改地址是空;6、7、8表示执行该交易消耗的以太坊代币数量、GAS数量和GAS的价格,这些是该交易的交易手续费,是给以太坊矿工的激励,当然目前使用的是以太坊测试网,该网络的以太币并没有兑换价值;9表示该交易所在的区块高度,点击链接可以进入区块链浏览器查看该区块的其它信息。

图2.18创建智能合约产生的交易信息

(7)如图2.19所示,点击交易hash值之后浏览器打开的区块链浏览器信息,读者可以自行点击其它信息。该浏览器是第三方开发,与区块链钱包类似,任何人和机构都可以开发钱包和浏览器,以太坊的数据是无主的,去中心化的,任何人都可以开发软件来访问以太坊区块链上的交易数据,这就是区块链公开透明的魅力。同时因为加密学的应用,即使所有数据对所有人公开,代码和规则也公开,也无法通过篡改数据的方式来破坏区块链网络,或者通过作恶的方式来获取区块链上的数字货币,这就为区块链的创新应用提供了技术支持。

图2.19 以太坊区块链浏览器

(8)如图2.20所示,当交易打包完成之后,回到CONTRACTS页下面,可以看到刚刚创建的智能合约显示在了界面中。点击该智能合约,进入下一环节,调试智能合约。

图2.20 合约创建成功之后的界面

2020区块链各种应用都上马了,跟我一起学《区块链DAPP开发入门、代码实现、场景应用》吧。

《区块链DAPP开发入门、代码实现、场景应用》笔记4——Ethereum Wallet中部署合约的更多相关文章

  1. 《区块链DAPP开发入门、代码实现、场景应用》笔记5——区块链福利彩票的设计

    笔者一直强调,一定要利用区块链的特点来解决行业存在的问题,并且该问题最好用区块链解决或者说只能用区块链解决.彩票行业就是个例子. 在讲解代码之前,首先讲解一下业务设计,如图6.15所示. 图6.15 ...

  2. 《区块链DAPP开发入门、代码实现、场景应用》笔记3——Ethereum Wallet的安装

    以太坊官方网站可以下载最新版本的Ethereum Wallet,用户无需选择,浏览器会根据访问者操作系统版本自动展现合适的版本,点击DOWNLOAD按钮下载即可安装,如图2.9所示,其下载网址: ht ...

  3. 《区块链DAPP开发入门、代码实现、场景应用》笔记2——Solidity实现简单的智能合约

    本节仅以一个简单的智能合约示例,介绍智能合约的基本组成元素,本合约定义一个uint类型的变量,以及对应这个变量的读写函数. 01 pragma solidity >=0.4.0 <0.6. ...

  4. 《区块链DAPP开发入门、代码实现、场景应用》笔记1——天外飞仙DAPP

    Solidity编程语言解决了编写智能合约的不友好的问题,但是当合约编译并部署之后,对与这些接口的访问,对于一般的使用者来说,门槛有点高, 对普通用户来说也是非常不友好,为了使广大用户理解并方便快捷的 ...

  5. NEO区块链-DAPP开发直通车-第零篇

    什么是DAPP DAPP 是以太坊发明的词汇 Decentralized Application. 目前基于区块链技术开发的应用程序广泛的接受使用了这一名称.   NEL将为开发DAPP提供全面的服务 ...

  6. [币严区块链]以太坊(ETH)Dapp开发入门教程之宠物商店领养游戏

    阅读本文前,你应该对以太坊.智能合约有所了解,如果你还不了解,建议你先看以太坊是什么 除此之外,你最好还了解一些HTML及JavaScript知识. 本文通过实例教大家来开发去中心化应用,应用效果如图 ...

  7. 区块链会2020再次爆发,先学点DAPP压压惊,跟我一起学《区块链DApp入门实战》

    区块链DApp正在经历市场洗礼,常言道,对抗动荡最稳妥的是稳扎稳打的技术学习,不能临时抱佛脚. 马化腾说:互联网会像水和电一样融入我们的生活.而区块链呢?它是价值互联网的基石,是未来必然的趋势,也会像 ...

  8. 未来-区块链-IBM:IBM 区块链技术开发社区

    ylbtech-未来-区块链-IBM:IBM 区块链技术开发社区 1.返回顶部 1. 开始学习 IBM Blockchain 101:开发人员快速入门指南 这篇快速入门指南适合不熟悉区块链技术,希望快 ...

  9. C#区块链零基础入门,学习路线图 转

    C#区块链零基础入门,学习路线图 一.1分钟短视频<区块链100问>了解区块链基本概念 http://tech.sina.com.cn/zt_d/blockchain_100/ 二.C#区 ...

随机推荐

  1. C++ 已知两个时间(年月日)求日期差

    转载:https://blog.csdn.net/flyyufenfei/article/details/79796035 #include<iostream> #include < ...

  2. yum提示problem making ssl connection的解决办法

    yum缓存提示problem making ssl connection的解决办法 缺少ssl证书认证本地获取的问题导致,解决办法如下: 执行命令:yum install -y ca-certific ...

  3. Android硬编码——音频编码、视频编码及音视频混合

    视频编解码对许多Android程序员来说都是Android中比较难的一个知识点.在Android 4.1以前,Android并没有提供硬编硬解的API,所以之前基本上都是采用FFMpeg来做视频软件编 ...

  4. Spark SQL里concat_ws和collect_set的作用

    concat_ws: 用指定的字符连接字符串 例如: 连接字符串: concat_ws("_", field1, field2),输出结果将会是:“field1_field2”. ...

  5. SpringBoot Error creating bean with name 'dataSource' defined in class path resource。。。

    启动spring boot项目出错 解决方法在Application类上增加:@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration ...

  6. js代码突然在花括号回车自动多加了一个大括号

    js代码突然在花括号回车自动多加了一个大括号. 检查发现,前面有一个行带有左括号的注释行.

  7. SVM – 线性分类器

    感知机 要理解svm,首先要先讲一下感知机(Perceptron),感知机是线性分类器,他的目标就是通过寻找超平面实现对样本的分类:对于二维世界,就是找到一条线,三维世界就是找到一个面,多维世界就是要 ...

  8. SSAS 项目部署失败的问题

    在创建SSAS项目过程中,创建数据源.数据源视图.多维数据集.纬度等一切都没有问题.但是在“进程”这一步的时候,发现总是报错,提示如下.OLE DB 错误: OLE DB 或 ODBC 错误 : 用户 ...

  9. EasyNVR摄像机网页无插件直播方案H5前端构建之:通道内部搜索功能的实现方案与代码

    EasyNVR网页摄像机直播方案 EasyNVR是一款拥有完整.自主.可控知识产权,同时又能够具备软硬一体功能的安防互联网化流媒体服务器,能够通过简单的网络摄像机通道配置,将传统监控行业里面的高清网络 ...

  10. Vmvare v12下搭建Ubuntu操作系统-18.04-desktop-amd64.iso镜像环境

    1.选择[典型],点击下一步.  2.找到ubuntu镜像文件所在位置,如图所示:  3.配置用户信息  4.设置安装位置  5.磁盘尽量大一些,笔者设置40g  6.自定义修改硬件信息  7.内存建 ...