Github: https://github.com/Alva112358/BlockChain
一、项目简介
项目的选题为去中心化的手机交易平台,其实就是一个去中心化的网店。选择这个项目其实还是有考虑的,毕竟区块链的特点是去中心化的分布式系统,而且具有很好的数据隐秘性,因此利用区块链的这一特点,能够在网络交易平台上实现一些很好的应用。
当下像淘宝、京东等线上交易平台都有一个特点,就是他们都是中心化的交易系统,在客户和店家之间进行交易时,需要有一个可信任的第三方用户进行中介,以确保交易的可靠性。虽然当前第三方交易平台的发展前景非常好,客户的满意度也非常高,但是毕竟还是存在隐秘的风险,而且更多的小平台存在的风险也越大,因此发展一个去中心化的交易平台,就能够增加交易的可靠性,而且也是中小企业网络交易平台发展的方向。
本项目的实际环境是一个手机交易平台,利用智能合约进行编程。合约由店主发起,当用户挑选到自己喜欢的手机的时候,就能够提交订单,此时合约内部就能够收到客户订单中的手机数目和手机类型,从而将客户中扣除相应的以太币到合约内部,而不是直接交易给店家。店家只有将货给到物流,物流公司确认买家发货,并且买家最终确定收货以后,钱才能够从合约中扣除交给店家。整个过程中没有第三方中介的参与,实现去中心化。
二、测试环境
项目的测试的操作系统为mac OS,使用truffle框架进行实现,使用Ganache在私有链上进行测试。truffle是目前流行的以太坊开发框架,支持智能合约的编译、部署和测试,本项目属于一个开发学习项目,因此在私有链上进行测试。相应配件的版本如下所示:
truffle -v5.0.0
node -v11.4.0
npm -v6.4.1
由于Github文件大小的限制,在上传的时候将node_modules文件夹删除,因此在运行项目前先在当前目录下执行下列语句:
npm install
如果依然缺某些modules,则需要自行npm进行安装即可。
1. Ganache-cli的配置和使用
项目文件夹为DApp,运行的方法为在DApp目录下开启两个终端,首先在第一个终端上输入如下命令,在Ganache上创建一个私有链:
ganache-cli -e 3001 -l 99999999999999 -g 20000
需要注意的是,如果未安装Ganache,需要在终端下先运行:
sudo npm install -g ganache-cli
本次实验没有用Ganache-cli的图形化界面,只是在终端上运行,启动后,显示的界面如下图所示:
)
为了方便测试,