所以分别执行下面三个命令:1)cd/usr/local
2)mkdirpet_test//创建项目文件地址
执行:truffleunboxpet-shop
这个命令会自动帮我们初始化truffleinit,然后创建前端的文件夹。
介绍一下truffle的文件架构:
contracts/:智能合约文件存在这里,后缀.sol(solidity)
migrations/:部署脚本
test/:测试脚本
truffle.js:truffle的配置文件
编写智能合约:
在contracts/目录下创建Adoption.sol文件,内容如下:
pragmasolidity^0.4.17;contractAdoption{address[16]publicadopters;//adoptingapetfunctionadopt(uintpetId)publicreturns(uint){require(petId>=0&&petId<=15);adopters[petId]=msg.sender;returnpetId;}//retrievetheadoptersfunctiongetAdopters()publicviewreturns(address[16]){returnadopters;}}
编写前端:
用户界面(UI)是前端工作,这里用的javascript。主要文件是app.js,存在目录/src/js/app.js中。文件内容如下:
到这里整个项目的前端和合约部分都完成了。下面讲述如何编译部署合约和如何启动前端应用。
因为部署是要把合约部署到ropsten的测试网络上,所以要提前配置好。部署就需要消耗gas,那么就需要指定账号。打开truffle的配置文件truffle.js。修改内容为:
HDWalletProvider需要提前安装:
因为我是centOs系统,执行安装gcc:
yum-yupdategccyum-yinstallgcc+gcc-c++
mnemonic是你账号的助记词,是通过metaMask获取的:
显示的Yourprivateseedphrase就是你的助记词。替换到这个变量中。
编译部署合约
1.首先执行trufflecompile
这里是编译合约把合约编译成对应的ABI二进制文件。
2.下面要部署合约,教程的目的是把合约部署到ropsten的测试网络上。结合truffle.js中的配置,读者可以更好的理解部署命令:
trufflemigrate--networkropsten到这里你的合约就成功部署完成了。
因为pet_shop是一个打包好的文件,所以只需要执行npmrundev就可以启动。默认的端口是3000,这个是litesever默认的端口。