欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

阿里云服务器上部署去中心化应用-pet shop

程序员文章站 2022-07-16 18:08:41
...

具体的安装过程在下边的reference里面已经有,这里主要说下我部署遇到的问题

环境搭建:

1.安装Node:

sudo apt-get install nodejs-legacy

2.安装npm:

sudo apt-get  install  npm

3.安装truffle:

npm install -g truffle
truffle version   #查看truffle version 版本
报错:
SyntaxError: Unexpected token (
at Module._compile (module.js:439:25)
at Module._extensions..js (module.js:474:10)
at Object.require.extensions.(anonymous function) as .js
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object. (/usr/local/lib/node_modules/truffle/index.js:2:9)
at Module._compile (module.js:456:26)
at Module._extensions..js (module.js:474:10)

在github上找到解决方法(https://github.com/trufflesuite/truffle/issues/128),把nodejs升级一下就可以了,这里我们通过安装n模块来升级

sudo npm install -g n
n stable
这时候再试下  truffle version 就可以正常显示出版本了

4.安装testrpc

sudo npm install -g ethereumjs-testrpc
$testrpc       #测试testrpc是否安装成功
5.创建项目
truffle unbox pet-shop  #此处请自行参考下面reference的中文教程
添加智能合约 Adoption.sol之后编译
truffle compile 
compile过程会有warning出现,不管它

继续按照教程编写  2_deploy_contracts.js,然后migrate

truffle migrate
这里我遇到了一个问题,

Could not connect to your Ethereum client. Please check that your Ethereum client:
    - is running
    - is accepting RPC connections (i.e., "--rpc" option is used in geth)
    - is accessible over the network
    - is properly configured in your Truffle configuration file (truffle.js)
解决方法是将truffle.js下的port端口改成8545就可以了

接下去按照教程编写测试部分,这一部分没遇到什么问题。

直到最后metamask安装那里,又卡住了,这里填写url的时候要加入 http://,否则会报错,后面的端口也是8545,ip填写你的服务器ip
阿里云服务器上部署去中心化应用-pet shop

6.运行

npm run dev
然后在浏览器输入你的IP:3000就可以看到页面了阿里云服务器上部署去中心化应用-pet shop
这里因为开启了浏览器同步 ,需要关掉,否则你执行动作别人的电脑也会执行相同的动作,可以通过 ip:3001进入browersync关掉同步

阿里云服务器上部署去中心化应用-pet shop

当你点击adopt的时候就自然会出现领养提示了

虽然写好了部署的过程,可是里面好多东西的道理都不理解,刚开始学习区块链,一点点深入学习

reference:

英文版:http://truffleframework.com/tutorials/pet-shop

中文版:https://www.jianshu.com/p/4575e5f0e131