New to Busy?

How I used the Manubot to reproduce the Bitcoin Whitepaper

2 comments

dhimmel
64
2 years agoSteemit3 min read

Lately I've been working on a tool called Manubot to power the next generation of scholarly manuscript. If you've ever written a science paper, you may be bitterly familiar with tools such as Microsoft Word, LaTeX, EndNote, Mendeley, BibTeX, or MathType. The Manubot supersedes all of these tools and replaces them with a modern, reproducible, and open software stack.

Here's how the Manubot works. Manuscript text is written in Markdown, just like on Steemit but with additional extensions for things like equations and citations. Each manuscript resides in a git repository, meaning content is versioned and you can easily explore the history of edits. The git repository is hosted on GitHub, which provides a nice web-interface for viewing the manuscript as well as a platform for collaboration (via pull requests). Every time a new change (commit) is made, Travis CI rebuilds the HTML and PDF manuscripts and deploys them back to GitHub. Finally, Travis CI uses OpenTimestamps to undisputedly date the manuscript's existence in the Bitcoin blockchain.

To show what this system is capable of, I reproduced the Bitcoin Whitepaper using the Manubot. Check out the resulting HTML manuscript, GitHub source, and Travis CI build. Here's the head of the HTML manuscript:

Screenshot of Manubot's HTML version of the Bitcoin Whitepaper

I was able to convert the Bitcoin Whitepaper to Manubot markdown in just a few steps. The commit history tells the story:

Screenshot of the dhimmel/bitcoin-whitepaper commit history

In short, I converted the whitepaper provided by the Satoshi Nakamoto Institute into markdown using the fuckyeahmarkdown.com utility, which converts a webpage to markdown text. I fixed some formatting issues, updated the repository's documentation, and applied the citations. Manubot has a souped-up citation system. For example, here's the entire markdown source for the Timestamp Server section.

## 3. Timestamp Server

The solution we propose begins with a timestamp server.
A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [@tag:massias; @doi:10.1007/bf00196791; @doi:10.1007/978-1-4613-9323-8_24; @doi:10.1145/266420.266430].
The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash.
Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it.

![](images/timestamp-server.svg)

Notice the way citations are specified: [@tag:massias; @doi:10.1007/bf00196791; @doi:10.1007/978-1-4613-9323-8_24; @doi:10.1145/266420.266430]. The DOIs here uniquely identify the cited publications, and Manubot automatically retrieves the corresponding bibliographic details. As such, the markdown above gets converted to:

Manubot HTML Rendered Timestamp Server Section

Whereby the following bibliographic entries are autogenerated:

timestamp-server-bibliography.png

Are you required to use a different bibliographic format? Manubot uses the Citation Style Language, so you can easily swap in your preferred format.

For more information on the Manubot, see these slides or check out some of the other projects using it, which include the Deep Review and the Sci-Hub Coverage Study. Setting up a new manuscript is still a bit technical, but we'd love your feedback and usage of this system! Cheers to a free & open future for scholarly publishing and cryptographic study.

Comments

Sort byBest