文章是我一边学习区块链技术,一边记录下来的内容,所有内容都经过测试,其实是我为了给自己留的参考文档,呵呵
下面开始进行一个Dapp的开发,请使用root用户操作。
1、学习总结
要开发一个Dapp需要做的准备工作已经基本完成,那么下面说一下都需要哪些内容,然后就开始开发。
1.1、开发架构
Demo架构图
Web Frontend:业务展现层,采用基于可以访问以太访私有链的js框架web3开发的web应用。
FS :文件存放位置,本地文件存放磁盘空间。
NodeJs Server:采用nodejs做为服务器后台。
Ethereum-Blockchain:以太访区块链。
1.2 、搭建私有链
可以有很多种搭建私有链的方式:go-ethereum私有链、基于docker的go-ethereum私有链、mist自带的私有链、testrpc私有链测试环境、
ganache可视化私有链。
我们这个案例里面使用基于ganache可视化私有链进行Dapp进行开发。
ganache安装:http://mp.blog.csdn.net/postedit/79118556
1.3、web前端框架
以太访提供了很多语言来支持Dapp的开发,这个案例里使用基于js的web3客户端进行业务层的开发,
demo是基于nodejs进行开发,因此需要安装nodejs才能运行。
nodejs安装:http://mp.blog.csdn.net/postedit/79029044
1.4、撰写合约Solidity工具Atom
基于Atom进行智能合约进行编写。
Atom安装:http://mp.blog.csdn.net/postedit/79039550
1.5、合约编译安装部署工具truffle
使用truffle对智能合约进行安装部署。
truffle安装:http://mp.blog.csdn.net/postedit/79029328
2、编译部署合约
环境准备好了,可以开发啦。
2.1、创建Dapp项目工程
编译以后多出build目录
mkdir filehash
cd filehash
truffle init
2.2、编写合约
在目录/home/jack/demo/filehash下执行以下启动Atom
atom ./
2.3、编译合约
在目录/home/jack/demo/filehash下执行
truffle compile
2.5、配置truffle连接文件
在目录/home/jack/demo/filehash下执行
vi truffle.js
以下是truffle官网提供的配置,修改development为local_dev,修改8545为6666,修改*为8888
module.exports = {
networks: {
development: {
host: "127.0.0.1",
port: 8545,
network_id: "*" // Match any network id
}
}
};
2.6、配置编译文件
创建编译文件,truffle会默认找配置文件中的development网络进行安装部署,修改后要制定安装部署网络local_dev。
在目录/home/jack/demo/filehash下执行
vi 2_deploy_contracts.js
进入 /home/jack/demo/filehash目录下,执行以下命令:
truffle migrate --network local_dev
获取合约部署地址: Proof: 0x345ca3e014aaf5dca488057592ee47305d9b3e10
用于后面应用代码