The final project consists of two applications for decentralized file sharing. The main aim was to analyze the state-of-the-art in decentralized applications platform.
- Clone the repo using
cdinto the folder
npm installto download all the dependencies
Compiling the smart contract
ethereumfolder and run
Above command will compile the contract using
solc and outputs the
json files under
Deploying the smart contract to Rinkeby
Before deploying the contract, you need to set the
WALLET SEED and the
RINKEBY network url inside the file
WALLET SEED is the 12 word mnemonic phase for your wallet
RINKEBY network url can be obtained by signing up at Infura.io
Once the values are set run
node depoloy.js under
When the contract is successfully deployed, above command console logs the contract address of the newly deployed contract.
Note this contract address as this needs to be set in the
Process environment variables
It's a next.js project, using a node server. Next.js uses React.
To use this project, you'll need to install few things first.
You need to have MongoDB running locally on your machine. Community edition of MongoDB can be downloaded from here.
If you have MongoDB already installed, make sure it's version 3.6 or higher Here's MongoDB is used to run a radiks server, which helps in quering and indexing the data stored on user's gaia hub. Curious about how radiks work? GitHub
Node.js is required to run this project. LTS version should work fine for this project, download it from here This project was tested with node.js version 10.15.0
Yarn is a package manager similar to npm.
Downloading the project
Open the terminal and download the project using git. Once the project is downloaded, run
yarn to download all…
dShare - Next.js was used for frontend. Smart contracts on Ethereum. IPFS for storage. Metamask was used for interacting with the application. However, it does not expose the private key of the user. Hence, whenever a user wants to download a file, he must provide the private key manually.
dShare-Blockstack - Blockstack as the base platform. Next.js for the frontend.
The application on Blockstack was 4 times faster than the application built on Ethereum. It also conveys that Smart Contracts are not always required for building a dApp.
The main insight from the project was the concept of a Self-Sovereign Identity. This makes possible to build a Web without usernames/passwords.