Jrnlst is an application that allows journalists to publish their work, and subsequent changes to it, on a censorship resistant tracking platform. The project combines the immutable nature of the Ethereum blockchain with the decentralized IPFS storage system. This application allows for good and true journalism for publications and journalists that want to be more transparent in what changes and additions they are making to their articles after their initial posting online. Instead of trusting that a large, corporate publication or author is broadcasting anytime an edit is made to their article (often just a small note in the article's footer, if one is made at all), publishers and authors can simply provide the article's jrnlst unique ID or link to its dedicated jrnlst page. Users are then free to run diffs of the different article versions to see what changed. Since on every update the article text is uploaded to IPFS and receives an additional unique content identifier, the text of each full version is also available. Publishers are able to add approved author addresses to grant permission to authors to publish articles/updates under their platform. Users can browse all articles published by both a given author or publication, with all their versions only a click away.

jrnlst showcase

How it's made

This project uses Solidity smart contracts as a way of maintaining an immutable ledger of publications, journalists, and every version of a published article stored on the Ethereum blockchain. It further utilizes IPFS to store the main content of every article and their subsequent updates on a decentralized file sharing network. Anytime an article is created, our smart contract creates an article data structure with metadata such as its name, the author/publication address, and post/update times. In addition to this, our smart contract also notes many relationships (in the form of mappings), including which author address authored which articles, along with a list of CID's for each article corresponding to each time an update was made. Similar relationships exist for publishers as well. Articles are never removed, only published. An article's CID's/IPHS hashes are never erased, only added to. Due to this infrastructure of articles with many potentially changing versions, it made sense to add a way to view these changes. Every article has a text differencing/comparison page, where users can compare various versions to see what was changed, all outlined clearly in green, red, and grey text. Although not complete, we have further plans to allow publishers to use Filecoin to keep article text data persistent and fully available for as long as they wish.

Technologies used