通过本文你将学习到以下几点:
搭建智能合约开发环境
创建项目
编写智能合约
编译和部署智能合约到区块链
通过和智能合约交互
的使用
注意:本文操作基于 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
在 云撸猫 终端输入命令,将会自动打开浏览器,最终的画面是大概这样
领取专属 10元无门槛券
私享最新 技术干货