Dapp-IPFS-Image
基于IPFS去中心化相册以太坊Dapp
注意: 使用该 github 克隆到本地, 需要 执行 $ npm install 安装依赖 node_modules
安装IPFS
官网(访问不了时,需要科学上网) https://ipfs.io
下载 解压缩
$ tar xvfz go-ipfs_v0.4.10_darwin-amd64.tar.gz
$ cd go-ipfs
$ mv ipfs /usr/local/bin/ipfs
创建IPFS节点
$ ipfs init
$ cd ~/.ipfs
启动服务器
ipfs daemon
跨域资源共享 CORS配置
control + c 终止ipfs服务器进程
$ ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods ‘[“PUT”, “GET”, “POST”, “OPTIONS”]’
$ ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin ‘["*"]’
$ ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials ‘[“true”]’
$ ipfs config --json API.HTTPHeaders.Access-Control-Allow-Headers ‘[“Authorization”]’
$ ipfs config --json API.HTTPHeaders.Access-Control-Expose-Headers ‘[“Location”]’
验证
启动IPFS服务器
$ ipfs daemon
新建终端执行:
$ ipfs cat /ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/readme
打开http://localhost:5001/webui会看到UI界面
需要 truffle ,node.js ,npm ,react 环境安装 参考之前环境配置文章
项目开发
新建项目文件夹
$ mkdir 项目名IPFS-Image
cd IPFS-Image
下载unbox react 框架
$ truffle unbox react
安装ipfs-api
$ npm install ipfs-api --save-dev
验证框架和环境:
编译合约
$ truffle compile
开启前端
$ npm start
看见 项目页面, ok
修改项目框架代码:
Atom编辑器打开项目:
$ atom ./
编写智能合约
修改contracts/SimpleStorage.sol文件
pragma solidity ^0.4.19;
contract SimpleStorage {
string[] public photoArr; //定义一个 装图片hash值的字符串数组
function storePhoto(string