New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Timestamp manuscripts with OpenTimestamps #274

Merged
merged 2 commits into from Mar 4, 2017

Conversation

Projects
None yet
1 participant
@dhimmel
Member

dhimmel commented Mar 3, 2017

Uses opentimestamps.org to prove existence of each manuscript version at their corresponding points in time.

Runs for deployment manuscripts only.

Closes #269

Timestamp manuscripts with OpenTimestamps
Uses opentimestamps.org to prove existence of each manuscript version
at their corresponding points in time.

For deployment manuscripts only.

Closes #269
@dhimmel

This comment has been minimized.

Show comment
Hide comment
@dhimmel

dhimmel Mar 3, 2017

Member

greenelab/deep-review is a collaboratively written review article on deep learning in precision medicine. We're using GitHub to write the article in markdown. We have a build process to automatically download citation medata, create the bibliography, and export HTML and PDF versions of the manuscript. We use Travis CI to:

  1. Build every pull request, thereby spotting citation or other errors.
  2. Build commits to master and deploy (commit) the resulting manuscript to and citation information back to the GitHub.

This pull request adds manuscript proof of existence to part 2 above. It uses OpenTimestamps to create manuscript timestamps (manuscirpt hashes that go into a Merkle tree whose root is written to the Bitcoin blockchain). The .ots files that are created, allow verification at later dates.

OpenTimestamps by @petertodd is very innovative... it's low cost to run and scales since users store the relevant path through the Merkle tree themselves. OpenTimestamps is still alpha, so it may not be all smooth sailing.

Alerting @ctb and @profjsb, since we discussed proof of existence for science at the Moore Investigator Symposium. Also tagging @bgcarlisle who's blogged about timestamping science using bitcoin. Thoughts and code review appreciated.

Member

dhimmel commented Mar 3, 2017

greenelab/deep-review is a collaboratively written review article on deep learning in precision medicine. We're using GitHub to write the article in markdown. We have a build process to automatically download citation medata, create the bibliography, and export HTML and PDF versions of the manuscript. We use Travis CI to:

  1. Build every pull request, thereby spotting citation or other errors.
  2. Build commits to master and deploy (commit) the resulting manuscript to and citation information back to the GitHub.

This pull request adds manuscript proof of existence to part 2 above. It uses OpenTimestamps to create manuscript timestamps (manuscirpt hashes that go into a Merkle tree whose root is written to the Bitcoin blockchain). The .ots files that are created, allow verification at later dates.

OpenTimestamps by @petertodd is very innovative... it's low cost to run and scales since users store the relevant path through the Merkle tree themselves. OpenTimestamps is still alpha, so it may not be all smooth sailing.

Alerting @ctb and @profjsb, since we discussed proof of existence for science at the Moore Investigator Symposium. Also tagging @bgcarlisle who's blogged about timestamping science using bitcoin. Thoughts and code review appreciated.

@dhimmel

This comment has been minimized.

Show comment
Hide comment
@dhimmel

dhimmel Mar 3, 2017

Member

Some potential shortcomings of the current implementation:

  • only manuscript existence is proven, not who contributed what parts. Who contributed what at what time would be more useful. If we timestamp the git commit hash of the source repository, then we could also cryptographically timestamp the commit history. Note that git's reliance on the recently broken SHA1 is not ideal.
  • it doesn't prove that no other versions of the manuscript existed at the same time. While this won't matter for this review, one could imagine a researcher writes many documents, timestamps them, and then later only publicizes the documents that turned out to be true.
Member

dhimmel commented Mar 3, 2017

Some potential shortcomings of the current implementation:

  • only manuscript existence is proven, not who contributed what parts. Who contributed what at what time would be more useful. If we timestamp the git commit hash of the source repository, then we could also cryptographically timestamp the commit history. Note that git's reliance on the recently broken SHA1 is not ideal.
  • it doesn't prove that no other versions of the manuscript existed at the same time. While this won't matter for this review, one could imagine a researcher writes many documents, timestamps them, and then later only publicizes the documents that turned out to be true.
@dhimmel

This comment has been minimized.

Show comment
Hide comment
@dhimmel

dhimmel Mar 3, 2017

Member

If we timestamp the git commit hash of the source repository, then we could also cryptographically timestamp the commit history.

f39ba3b adds the git commit hash to a README file, which is stamped.

Member

dhimmel commented Mar 3, 2017

If we timestamp the git commit hash of the source repository, then we could also cryptographically timestamp the commit history.

f39ba3b adds the git commit hash to a README file, which is stamped.

@dhimmel

This comment has been minimized.

Show comment
Hide comment
@dhimmel

dhimmel Mar 4, 2017

Member

Going to merge this now as it's hard to test the Travis deployment without actually pushing a change to master.

But discussion still welcome.

Member

dhimmel commented Mar 4, 2017

Going to merge this now as it's hard to test the Travis deployment without actually pushing a change to master.

But discussion still welcome.

@dhimmel dhimmel merged commit 65d0006 into greenelab:master Mar 4, 2017

1 of 2 checks passed

codeclimate 5 new issues
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details

dhimmel added a commit that referenced this pull request Mar 4, 2017

Timestamp manuscripts with OpenTimestamps (#274)
This build is based on
65d0006.

This commit was created by the following Travis CI build and job:
https://travis-ci.org/greenelab/deep-review/builds/207788285
https://travis-ci.org/greenelab/deep-review/jobs/207788286

[ci skip]

The full commit message that triggered this build is copied below:

Timestamp manuscripts with OpenTimestamps (#274)

Closes #269

dhimmel added a commit that referenced this pull request Mar 4, 2017

Timestamp manuscripts with OpenTimestamps (#274)
This build is based on
65d0006.

This commit was created by the following Travis CI build and job:
https://travis-ci.org/greenelab/deep-review/builds/207788285
https://travis-ci.org/greenelab/deep-review/jobs/207788286

[ci skip]

The full commit message that triggered this build is copied below:

Timestamp manuscripts with OpenTimestamps (#274)

Closes #269

@dhimmel dhimmel deleted the dhimmel:ots branch Mar 4, 2017

dhimmel added a commit that referenced this pull request Mar 4, 2017

Fix blank output/README.md bug (#275)
Affects gh-pages branch only.

Fixed to allow reading from and writing to the same file.
See http://stackoverflow.com/a/3897483/4651668

Bug introduced in #274.

dhimmel added a commit that referenced this pull request Mar 4, 2017

Fix blank output/README.md bug (#275)
This build is based on
56b25b5.

This commit was created by the following Travis CI build and job:
https://travis-ci.org/greenelab/deep-review/builds/207793662
https://travis-ci.org/greenelab/deep-review/jobs/207793663

[ci skip]

The full commit message that triggered this build is copied below:

Fix blank output/README.md bug (#275)

Affects gh-pages branch only.

Fixed to allow reading from and writing to the same file.
See http://stackoverflow.com/a/3897483/4651668

Bug introduced in #274.

dhimmel added a commit that referenced this pull request Mar 4, 2017

Fix blank output/README.md bug (#275)
This build is based on
56b25b5.

This commit was created by the following Travis CI build and job:
https://travis-ci.org/greenelab/deep-review/builds/207793662
https://travis-ci.org/greenelab/deep-review/jobs/207793663

[ci skip]

The full commit message that triggered this build is copied below:

Fix blank output/README.md bug (#275)

Affects gh-pages branch only.

Fixed to allow reading from and writing to the same file.
See http://stackoverflow.com/a/3897483/4651668

Bug introduced in #274.

dhimmel added a commit to greenelab/manubot-rootstock that referenced this pull request Jun 29, 2017

Fix blank output/README.md bug (#275)
Affects gh-pages branch only.

Fixed to allow reading from and writing to the same file.
See http://stackoverflow.com/a/3897483/4651668

Bug introduced in greenelab/deep-review#274.

dhimmel added a commit to dhimmel/deep-review that referenced this pull request Nov 3, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment