项目简介
本项目DataShare是一个基于以太坊区块链和IPFS(InterPlanetary File System)的分布式数据存储与共享项目。借助区块链技术的不可篡改性和IPFS的分布式存储特性,实现数据安全、可靠的共享。
项目的主要特性和功能
- 利用以太坊区块链开展用户身份认证和权限管理。
- 通过IPFS达成数据的分布式存储和访问。
- 支持数据的上传、下载、浏览和搜索功能。
- 配备可视化界面,便于用户操作。
安装使用步骤
初次运行
1. 环境准备
将项目clone到本地后,确保系统中安装了geth、npm、solc、truffle、ipfs,浏览器安装了MetaMask插件。安装指令如下: ```bash sudo apt-get install software-properties-common sudo add-apt-repository -y ppa:ethereum/ethereum sudo apt-get update sudo apt-get install ethereum
sudo apt-get install npm sudo npm config set registry https://registry.npm.taobao.org
sudo npm install -g solc
sudo npm install -g truffle
tar xzvf go-ipfs_v0.8.0_linux-amd64.tar.gz cd go-ipfs ./ipfs init ./ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]' ipfs config Addresses.Gateway /ip4/127.0.0.1/tcp/8081 ```
2. 节点生成与初始化
假设已有一个主链,主链中至少有一个授权节点,若没有主链,请参考基于以太坊的联盟链搭建——同域下两台主机节点的互通 。根据生成主链的genesis.json文件生成区块链,步骤如下: ```bash geth --datadir node account new
geth --datadir node init genesis.json
geth --datadir node --rpc --port 30304 --rpcport 8546 --rpccorsdomain "*" --rpcapi "eth,net,web3,admin,personal,miner" --networkid 2021 --nodiscover --unlock 'cDEa18962A2c7e921305439Eecbfc5D0C08D3140' --allow-insecure-unlock console
``
若要与其他节点通信,可通过以下三种方式:
- 去掉启动指令中的
--nodiscover。
- 启动区块链后,通过
admin.addPeer(enode)指令添加其他节点。其中参数enode是欲连接的节点的enode,通过
admin.nodeInfo.enode` 指令获取。
- 在存储区块链数据的文件下(这里是node),添加一个static-nodes.json文件,其中添加所要连接节点的enode,保存后重启区块链。
注:enode后的ip要改成对应主机的ip。进行连接操作后,可以通过 admin.peers
指令查看是否连接到目标节点。
3. 启动项目
- 进入项目根目录下,即含有truffle-config.json文件的目录下,打开终端,输入
truffle migrate
,同时启动授权节点挖矿,等待部署完成。部署完成后,其他连接的节点会自动同步。 - 进入此前下载的ipfs文件夹下,执行
./ipfs daemon
启动ipfs本地服务器(如果不需要上传下载服务可不启动)。 - 进入app文件夹下(即package.json所在目录),执行
npm run dev
,等待编译完成。 - 打开浏览器,配置MetaMask,具体参考基于以太坊的联盟链搭建——同域下两台主机节点的互通 的4.3节。
- 访问http://localhost:8080 。
重复启动项目
- 启动区块链(公钥记得替换):
bash geth --datadir node --rpc --port 30304 --rpcport 8546 --rpccorsdomain "*" --rpcapi "eth,net,web3,admin,personal,miner" --networkid 2021 --nodiscover --unlock 'cDEa18962A2c7e921305439Eecbfc5D0C08D3140' --allow-insecure-unlock console
- 进入ipfs文件夹,执行
./ipfs daemon
(如果不需要上传下载服务可不启动)。 - 进入app文件夹下(即package.json所在目录),执行
npm run dev
。 - 打开浏览器,访问http://localhost:8080 。
注意:在使用本项目时,请确保理解并遵守所有相关的区块链和分布式系统安全准则,防止潜在风险。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】