In 2016, Steve Huffman, the CEO of Reddit, confessed to modifying the Reddit comments of one of the site's users from r/The_Donald. This incident illustrated the potential issues that came with centralization, particularly on an idea-sharing site such as Reddit. Fortunately, blockchain offers the solution. By being decentralized and transparent, it ensures that no single entity can secretly change the site's records.

What it does

EthReddit replicates Reddit's most fundamental features with its entire backend running on the Ethereum blockchain. Users do not have to register and can make posts, vote on posts, and comment on posts of other users. The app offers a browser front-end that allows it to be used like a normal website.

How I built it

The blockchain backend of the app was built using the Solidity language and Truffle framework, which helped me make and test the smart contract used for the project. Front-end was done using ReactJS and the Web3 API, which allowed JS code running in the browser to communicate with the blockchain.

Challenges I ran into

Web3 was a huge hassle to set up properly, since its workings are mysterious and things tend to go wrong. I also initially planned to use MetaMask, a browser extension that makes using Web3 easier. A mysterious bug, however, caused long delays and eventually led to the abandonment of MetaMask.

Accomplishments that I'm proud of

The fact the the initially planned iteration of the app was finished in its entirety marks a great achievement. The frameworks involved in the process are by no means simple, and the fact that the finished product is actually functional is pretty amazing.

What I learned

I figured out what can go wrong when attempting to connect JS code to Ethereum. The building of a React frontend from the ground up was also instructive, since I've never done such a thing in the past. Now I know how it feels to build an Ethereum based app.

What's next for Ethreddit

The most immediately needed features are probably the ability to vote on comments and have nested comments. Uploading pictures is important but restricted by the limitations of the platform. There's also the change of an ICO if we really get lucky.

Share this project: