D

DTube

Decentralized video sharing & social media platform on Ethereum blockchain.

The problem DTube solves

• Storing any media on the blockchain is so costly, hence DTube solves this problem by storing IPFS video hashes to the blockchain.
• On DTube Nobody can take down your video.
• It's green as compared to the energy consumption of centralized servers.
• It's ad-free! Now you can watch videos without those annoying ads, this platform treats you as a "user" not the "product".

IPFS links:

Adding video to IPFS: https://github.com/AkhileshThite/DTube/blob/83ada70f7d64ddebb445b8b211762f32e17fe52a/src/components/App.js#L81

Displaying video on the front-end: https://github.com/AkhileshThite/DTube/blob/83ada70f7d64ddebb445b8b211762f32e17fe52a/src/components/Main.js#L16

Hosted IPFS link of the DApp: https://ipfs.fleek.co/ipfs/QmYTxfY9jobuRW1d9WcwCvbmgXeJWdCAPQndyx6i6Qi7nZ/

Video examples: https://ipfs.infura.io/ipfs/QmP9FpX6LHGQQgeoJJmR3hGFCvr3qgSEjjwEpRi8MzVnz2

Networks:

Matic Mumbai Test Network
Rinkeby Test Network
Ropsten Test Network
Goerli Test Network

Future goals include:

• Updating the smart contracts with more features such as adding descriptions & links to the videos.
• Improving speed and overall performance with large video files.
• Improving overall UI.

Challenges I ran into

"To make the whole platform decentralized"
It was challenging to deploy the whole DTube app to the IPFS. After a lot of experimentation with IPFS, I found that I cannot update/modify the project with the same IPFS hash.
After searching online, I landed on "Fleek" IPFS hosting platform where you can deploy the project, assign the domain, and update the project by simply connecting the GitHub repository.

Solidity version issues: Every version had syntax differences. Everything worked fine on version 0.5.0.

Matic TestNet error:
Error:
*** Deployment Failed ***

"Migrations" -- only replay-protected (EIP-155) transactions allowed over RPC.

Fix:
Fixed this problem by upgrading @truffle/hdwallet-provider version to 1.4.0.

Discussion