首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

区块链宠物商店

通过本文你将学习到以下几点:

搭建智能合约开发环境

创建项目

编写智能合约

编译和部署智能合约到区块链

通过和智能合约交互

的使用

注意:本文操作基于 Mac,如果你是其他系统,出现问题可以自行搜索解决方案,或者微信联系我,如果我有空。

环境搭建

安装

安装:

安装:

创建项目

打开:打开,输入,然后打开。

cd 到你的项目文件夹下,我是 www 文件夹,在终端(也就是)输入:,至此我在 www 文件夹里创建了一个叫做云撸猫的项目,你可以随便取自己喜欢的项目名,比如什么的,算了,不想开车,没意思。

使用创建项目,这里可能要等一会,看网速。创建成功后,你的终端界面应该是这样的:

注意:这里必须是,不能改成其他的。因为是的一个官方盒子,盒子很蠢啊,莫名其妙出来个盒子,你们是不是很不解,说白了就是官方提供的一个模版。如果你改成了,比如,这样就会报错,报错在终端显示大概是这个样子的:

因为我第一次就是这么干的。。。

项目目录结构

编写智能合约

智能合约承担着分布式应用的后台逻辑和存储,使用,一种类似于的语言编写。 我们在目录下,添加合约文件:

编译部署智能合约

集成了一个开发者控制台,可以用来生成一个开发链来测试和部署智能合约。

编译

是编译型语言,需要把可读的代码编译为字节码才能运行。 打开终端,到你的根目录 云撸猫 下,输入,如果输出了以下内容

再看一下你的项目根目录下是不是多了一个 build 文件夹,里面是一个 contracts 文件夹,里面有两个 json 文件:Adoption.json 和 Migrations.json。如果是这样说明你编译成功了。

部署

编译之后,就可以部署到区块链上了。在 migrations 文件夹下已经有一个 1initialmigration.js 部署脚本,用来部署 Migrations.sol 合约。Migrations.sol 用来保证不会部署相同的合约。 现在我们来创建自己的部署脚本,在 migrations 文件夹下添加一个脚本 2deploycontracts.js。 在执行部署之前,需要确保有一个区块链运行。我们新建一个终端,输入来开启一个私链进行开发测试,会生成9个测试账户和私钥,此时界面应该如下:

注意:我的测试端口8545,那么我们去 truffle.js 修改一下配置,修改后的 truffle.js:

然后转到原先那个 云撸猫 下面的终端,执行部署命令:,这时你的终端界面应该是:

再次转到 ganache-cli 终端处理界面,这个时候区块链状态应该发生了变化,产生了4个区块。像这样:

这时说明我们的智能合约已经部署好了。

嗯,干得不错,给自己点份外卖奖励下吧!(我比较穷,只能继续啃馒头了,如果你觉得我写得还行,麻烦现在拉到最下面,赞赏我5元钱,感激不尽!!!)

测试

在 test 文件夹中创建测试文件 TestAdoption.sol

让我们转到 云撸猫 终端下,测试用例,输入命令,测试通过的话,终端将输出类似下面的界面

这时打开 ganache-cli 终端看一下,应该又产生了10个区块。

Good!测试成功!

你的外卖点好了吗?天气太冷,我的馒头太硬,啃不动,正在烧热水,准备泡一下。。。

创建用户接口和智能合约交互

我们利用来和智能合约进行交互,是一个实现了与以太坊节点进行通讯的库,安装,新开一个终端输入:,安装完直接关闭这个终端。

接下来,打开项目下的 src/js/app.js,修改 initWeb3(),这样在 init函数加载宠物信息时,就能初始化了。

找到

删除注释,修改成

使用 truffle-contract 会帮助我们保存合约部署的信息,就不需要我们手动修改合约地址,那么把下面的 initContract 也替换掉

往下,处理领养,替换 markAdopted 以及 handleAdopt

这一番,复制黏贴,你没有蒙蔽吧?我的水开了,可以泡馒头吃了。你的外卖到了没有?

在浏览器中运行!!!安装 MetaMask

MetaMask 是一款插件形式的以太坊轻客户端。安装教程。安装完成后,浏览器工具条会显示一个小狐狸图标。基于我大天朝的超强安全意识,我劝你:这里会花很长时间的,如果外卖到了,先吃外卖了。嗯,我的馒头泡好了,啃馒头先。

启动 lite-server

在 云撸猫 终端输入命令,将会自动打开浏览器,最终的画面是大概这样

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180208G01WHU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券