阿里云服务器上部署去中心化应用-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
6.运行
npm run dev
然后在浏览器输入你的IP:3000就可以看到页面了这里因为开启了浏览器同步 ,需要关掉,否则你执行动作别人的电脑也会执行相同的动作,可以通过 ip:3001进入browersync关掉同步
当你点击adopt的时候就自然会出现领养提示了
虽然写好了部署的过程,可是里面好多东西的道理都不理解,刚开始学习区块链,一点点深入学习
reference:
英文版:http://truffleframework.com/tutorials/pet-shop
中文版:https://www.jianshu.com/p/4575e5f0e131