3
0
Fork
You've already forked spec
0
Specification of the Encoding for Robust Immutable Storage http://purl.org/eris
  • HTML 91%
  • Scheme 4.3%
  • CSS 3.2%
  • Roff 1.3%
  • Makefile 0.1%
pukkamustard 77982f9e8a Fix typo in URN section.
Reported-by: mirai on IRC
2023年07月21日 14:47:02 +02:00
.reuse use reuse for license information 2020年08月18日 08:22:53 +02:00
artwork Cleanup scripts and build small talk tests from Makefile 2022年08月23日 12:43:36 +02:00
LICENSES remove Guile implementation 2021年07月19日 14:53:15 +02:00
public v1.0.0 2022年08月23日 13:27:03 +02:00
ros ros: add link to ros 2022年02月08日 19:14:14 +01:00
schemas Use RFC 7991 format instead of RFC7749. 2022年02月03日 13:32:49 +01:00
scripts Update version in test-vectors to 1.0.0 2022年08月23日 12:49:15 +02:00
test-vectors Update version in test-vectors to 1.0.0 2022年08月23日 12:49:15 +02:00
.gitignore Smalltalk test generator script 2022年06月16日 19:43:37 -05:00
eris.xml Fix typo in URN section. 2023年07月21日 14:47:02 +02:00
guix.scm guix: use-module python-build. 2023年03月24日 16:16:41 +01:00
Makefile Cleanup scripts and build small talk tests from Makefile 2022年08月23日 12:43:36 +02:00
README.md v1.0.0 2022年08月23日 13:27:03 +02:00
schemas.xml Use RFC 7991 format instead of RFC7749. 2022年02月03日 13:32:49 +01:00
security.txt Fix security.txt (again) 2022年08月03日 13:59:14 +02:00
style.css Use a custom css to prevent using Google Fonts 2022年02月03日 12:18:44 +01:00

Encoding for Robust Immutable Storage (ERIS)

ERIS is an encoding for arbitrary content into uniformly sized encrypted blocks that can be reassembled only in possession of a short read capability that can be encoded as an URN.

This repository contains the specification documents.

The latest version of the specification is published at: http://purl.org/eris. Please use this URL as a stable reference to the specification.

Status

ERIS is considered to be stable. See also the section on versioning in the specification document.

Implementations

A list of known implementations of ERIS:

  • guile-eris: The reference implementation in Guile Scheme.
  • elixir-eris: Elixir implementation.
  • eris: Go implementation.
  • eris: Nim implementation.
  • js-eris: Javascript implementation.

See also the section "Implementations" of the specification document.

Working on the Specification Document

The source code of the speficiation document is in the eris.xml file. It is formatted in the IETF XML Format specified in RFC 7991.

The xml2rfc tool is used to generate HTML documents from the source specification.

To build the specification:

guix shell -D -f guix.scm -- make

This will produce the files public/index.html, public/eris.txt and public/eris-test-vectors.tar.gz.

Schema files

RelaxNG schema files are provided for your favorite XML editor.

Citation Library

The IETF provides a tool for getting suitable references for DOIs and RFCs. For example:

curl https://xml2rfc.tools.ietf.org/public/rfc/bibxml-doi/reference.DOI.10.3233/SW-190380.xml

or:

curl https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7929.xml

Generate test-vectors

make generate-test-vectors

Making a release

  • Update test vectors (in particular make sure that the spec-version field is correct)
  • Add changelog entry
  • Adapt link to test vectors archive in section Test Vectors to a versioned archive (e.g. eris-test-vectors-vX.X.X.tar.gz).
  • Copy public/index.html to public/eris-vX.X.X.html
  • Copy public/eris-test-vectors.tar.gz to public/eris-test-vectors-vX.X.X.tar.gz
  • Manually adapt the generated HTML (see below)
  • Create a release commit
  • Tag the commit with an annotated and signed tag (e.g. git tag -s v0.4.0 -m "0.4.0")
  • Push to repository at codeberg
  • Publish the html to the pages branch.

Manually adapt the generated HTML

The IETF xml2rfc tool adds some things that we do not want in the final document: Expiration date, and copyright boilerplate. Currently we just edit the generated HTML by hand to remove such things. Things that should be manually adapted in generated HTML before releasing:

  • Remove expiration date
  • Remove working group
  • Remove intended status
  • Add a version field in the description list identifiers
  • Remove "Status of this Memo" section (div with id status-of-memo)
  • Remove "Copyright Notice" section (div with id copyright)

Acknowledgments

ERIS was initially developed as part of the openEngiadina project and has been supported by the NLNet Foundation trough the NGI0 Discovery Fund. Further development is being supported by the NLnet Foundation trough NGI Assure.

Contact

Questions and comments may be directed to the ~pukkamustard/eris@sr.ht mailing list or directly to the authors (pukkamustard [at] posteo.net, ehmry [at] posteo.net, dvn [at] mail.me).

You are also invited to share your implementations and use-cases on the mailing list.

Urgent and sensitive security issues may be addressed directly to the ERIS maintainers. See security.txt.

License