Storage dApp with IPFS + Ethereum
This article is about how to run IPFS Ethereum Storage dApp at https://github.com/llSourcell/IPFS_Ethereum_Storage
Most of time, following ReadMe from the git is enough but you need to know a little bit about Web Console of FireBox.
Install IPFS
Download binary from https://ipfs.io/docs/install/
Initialize an Ethereum node for mining
Why? Because we need to mine Ethereum to fetch uploaded file.
$ geth --datadir="./" account new
To run a private blockchain, you need to have a genesis node (the very first block of your private blockchain!)
Save follow json data as genesisblock.json
{
"config": {
"chainID" : 10,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"nonce": "0x01",
"difficulty": "0x20000",
"mixhash": "0x00000000000000000000000000000000000000647572616c65787365646c6578",
"coinbase": "0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x00",
"gasLimit": "0x2FEFD8",
"alloc": {
}
}
Then, initiate Ethereum blockchain:
$ geth --datadir="./" init genesisblock.json
Load the geth console:
$ geth --datadir="./" --networkid 23422 --rpc --rpccorsdomain="*" --rpcport="8545" --minerthreads="1" --mine --nodiscover --maxpeers=0 --unlock 0 console
Initialize IPFS
$ ipfs init
$ ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
$ ipfs config --json Gateway.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
CORS configuration to access remote content from ipfs.
run ipfs daemon:
$ ipfs daemon
Run IPFS dApp
Now, open storage.html
file with FireFox and
Tools > Web Developer > Web Console
Type commands in the command line
deployStorage()
storeContent("https://upload.wikimedia.org/wikipedia/commons/e/e4/160618_MBC_Thank_You_Festival_%E2%80%93_Red_Velvet.jpg")
storeAddress("QmbWQBKEaVBBc42sVbCUwJc294awGeb17aUEf6ijXxcVTk")
fetchContent()
To check your uploaded file, open the ipfs url from your browser: http://localhost:8080/ipfs/QmbWQBKEaVBBc42sVbCUwJc294awGeb17aUEf6ijXxcVTk
or
https://gateway.ipfs.io/ipfs/QmbWQBKEaVBBc42sVbCUwJc294awGeb17aUEf6ijXxcVTk
[wikemedia & MBC]
IPFS (InterPlanetary File System) is a distributed file system inspired by years of research into distributed systems that content addresses data. It stores data in a distributed hash table, transfer it via a bit torrent like mechanism, and structures it in the form of a merkleDAG. To give it all a human readable address by using a naming system called IPNS.
)