Decentralized Open Journal Systems

Enabling publishers, editors and authors to store publication data on Ethereum and IPFS and to seamlessly onboard users (authors, reviewers, etc.) and giving them the opportunity to take control of their data.

Source Code


DOJS is an attempt at a modernization of the academic publishing structures that follows two main goals: first, using open data and open source, it aims to give a journal's community the opportunity to build their own tools and infrastructure. Second, it aims to represent and support the same structures as regular academic communities, in the form of semi-closed groups developing around shared knowledge and its exchange. To this end, DOJS stores large parts of the data shared by its members on decentralized networks. That way, data can be shared with others and will still be available even when any centralized architecture fails. This aspect is particularly useful for those who wish to make contributions of unpaid editors and reviewers more visible. Contributions, however, are still governed through access control on smart contracts and storage of private or personal information on centralized, secured servers. The core functionality of DOJS is implemented as a smart contract stored on bloxberg, a public, Ethereum-based proof-of-authority blockchain, spearheaded by the Max Planck Digital Library and maintained by a consortium of public research institutions. As a science-oriented project and its pool of validators made up of research institutions, bloxberg welcomes developers and researchers alike to evaluate and establish new research and publishing infrastructure. Second, the native currency of bloxberg, “bergs”, which is required to pay for transactions on the blockchain, can be obtained free of charge through a public faucet. While this makes bloxberg susceptible to spam attacks, it also makes high transaction volume dapps (decentralized applications) viable.

How It's Made

The smart contracts hold only basic information, such as the blockchain address of the author of an article and the IPFS address of files stored on IPFS. If a review or the full-text of an article cannot or should not be public, the submitting author may choose to encrypt the file before it is uploaded to IPFS. In that case, the item cannot be accessed without the centralized DOJS infrastructure as the encryption key will be stored there. The bulk of the data is stored on IPFS in JSON format, following the CrossRef [9] standard. Since onboarding of new users to a blockchain usually involves several steps, such as setting up a wallet, an account and transferring native currency to pay for transactions, we have implemented meta transactions with the help of the Gas Station Network4. That way, any user who is not interested in taking control of their data may join the journal, and the DOJS backend acts as a custodial wallet, generates an public-private keypair for the user and executes the on-chain transactions on behalf of the user. Frontend and backend that enable the interaction between users, DOJS, bloxberg and IPFS are implemented using JavaScript and SQL.


Sebastian Mueller
← click here to see all projects