aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpukkamustard <pukkamustard@posteo.net>2020-12-06 21:09:28 +0100
committerpukkamustard <pukkamustard@posteo.net>2020-12-07 08:43:19 +0100
commitf5813d3a9b3b33ea5edd01167c486b7f4d43f034 (patch)
treea6449e5a7138e8373e270ae28466a368b4b2dd7d
parent6dbc527f6bc4971bc843162a5b8d1ebf4b60f848 (diff)
tree-wide: bits and pieces everywhere
-rw-r--r--README.org10
-rw-r--r--ROADMAP1
-rw-r--r--configure.ac4
-rw-r--r--doc/eris.adoc17
-rw-r--r--doc/eris.texi20
-rw-r--r--hall.scm2
-rw-r--r--public/index.html23
7 files changed, 44 insertions, 33 deletions
diff --git a/README.org b/README.org
index 9e996ec..d7d31f1 100644
--- a/README.org
+++ b/README.org
@@ -8,7 +8,7 @@ ERIS is an encoding for arbitrary content into uniformly sized encrypted blocks
This repository contains a [[./doc/eris.adoc][specification]] and a reference Guile implementation.
-ERIS is considered to be experimental see the [[./ROADMAP][ROADMAP]].
+ERIS is considered to be experimental. See the [[./ROADMAP][ROADMAP]] for a rough plan on where this is going.
This work has been done as part of the [[https://openengiadina.net][openEngiadina]] project and has been supported by the [[https:/nlnet][NLNet Foundation]] trough the [[https://nlnet.nl/discovery/][NGI0 Discovery Fund]].
@@ -85,9 +85,13 @@ Note that ~eris-encode~ and ~eris-encode->urn~ can encode a string, a bytevector
Given a read capability and access to the blocks the content can be decoded into a bytevector with ~eris-decode->bytevector~:
#+BEGIN_SRC scheme :exports both
+(use-modules (ice-9 receive)
+ (rnrs bytevectors))
+
(define blocks
- (call-with-values (lambda () (eris-encode "Hello world!"))
- (lambda (_ blocks) blocks)))
+ (receive (read-capability blocks)
+ (eris-encode "Hello world!")
+ blocks))
(utf8->string
(eris-decode->bytevector
diff --git a/ROADMAP b/ROADMAP
index 05cfca6..b9fa4f9 100644
--- a/ROADMAP
+++ b/ROADMAP
@@ -9,6 +9,7 @@
* 0.3.0 (early 2021)
- Incorporate feedback from 0.2.0 and prepare a third version for circulation and feedback.
+- Add CBOR tag for read capability for more efficient encoding of references in CBOR
- Implement random-access decoder in Guile implementation
- Document the Guile implementation
diff --git a/configure.ac b/configure.ac
index a8e125b..2bab5cc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,8 +1,8 @@
dnl -*- Autoconf -*-
-AC_INIT(guile-eris, 0.2)
-AC_SUBST(HVERSION, "\"0.2\"")
+AC_INIT(guile-eris, 0.2.0)
+AC_SUBST(HVERSION, "\"0.2.0\"")
AC_SUBST(AUTHOR, "\"pukkamustard\"")
AC_SUBST(COPYRIGHT, "'(2020)")
AC_SUBST(LICENSE, gpl3+)
diff --git a/doc/eris.adoc b/doc/eris.adoc
index 367cd7b..2c70395 100644
--- a/doc/eris.adoc
+++ b/doc/eris.adoc
@@ -106,7 +106,10 @@ ERIS uses two block sizes: 1KiB (1024 bytes) and 32KiB (32768 bytes). The block
Both block sizes can be used to encode content of arbitrary size. The block size of 1KiB is an optimization towards smaller content.
-Content smaller than TODO SHOULD be encoded with block size 1KiB, content larger than TODO SHOULD be encoded with block size 32KiB.
+[TODO]
+====
+TODO: Content smaller than TODO SHOULD be encoded with block size 1KiB, content larger than TODO SHOULD be encoded with block size 32KiB.
+====
The block size is encoded in the read capability and the decoding process is capable of handling both cases.
@@ -117,6 +120,7 @@ When using block size 32KiB to encode content smaller than 1KiB, the content wil
On the other hand, using small block sizes increases the number of internal nodes that must be used to encode the content (see <<_collect_reference_key_pairs_in_nodes>>). When encoding larger content it is more efficient to use a block size of 32KiB.
====
+
=== Convergence Secret
Using the hash of the content as key is called _convergent encryption_.
@@ -485,19 +489,22 @@ Further implementations are being developed in https://github.com/cjslep/eris/[G
== Acknowledgments
+Thanks to Cory Slep, Arne Babenhauserheide, Serge Wroclawski, Christopher Lemmer Webber, Christian Grothoff, Natacha, Hellekin, Nemael, TG, Devan, Emery, Arie, Allen and many others for the discussions, suggestions and support.
+
+Development of ERIS has been supported by the https://nlnet.nl[NLNet Foundation] trough the https://nlnet.nl/discovery/[NGI0 Discovery Fund].
:sectnums!:
== Changelog
[discrete]
-=== link:eris-v0.1.html[v0.1.0 (11. June 2020)]
+=== http://purl.org/eris[v0.2.0-draft (UNRELEASED)]
-Initial version.
+Major update of encoding that removes the _verification capability_ - ability to verify integrity of content without reading content.
[discrete]
-=== http://purl.org/eris[v0.2.0-draft (UNRELEASED)]
+=== link:eris-v0.1.html[v0.1.0 (11. June 2020)]
-Major update of encoding that removes the _verification capability_ - ability to verify integrity of content without reading content.
+Initial version.
== Copyright
diff --git a/doc/eris.texi b/doc/eris.texi
index 1c10efd..3447881 100644
--- a/doc/eris.texi
+++ b/doc/eris.texi
@@ -44,12 +44,14 @@ Edition @value{EDITION} @*
@node Top
@top Guile-ERIS
-This document describes Guile-ERIS version @value{VERSION}.
+This document will describes Guile-ERIS version @value{VERSION}.
+
+@quotation Warning
+This manual is incomplete.
+@end quotation
@menu
* Introduction:: About ERIS.
-* Encoding and Decoding:: Encoding and decoding content with ERIS.
-* Streaming Interface:: Encoding as transducing.
@end menu
@c *********************************************************************
@@ -58,18 +60,6 @@ This document describes Guile-ERIS version @value{VERSION}.
The Encoding for Robust Immutable Storage (ERIS) is an encoding of arbitrary content into a set of uniformly sized, encrypted and content-addressed blocks as well as a read capability. The content can be reassembled from the encrypted blocks only with this read capability. The read capability can be encoded as an URN allowing encoded content to be referenced from existing applications.
-This manual documents the Guile implementation of ERIS.
-
For more information on ERIS see the @url{http://purl.org/eris, specification}.
-@node Encoding and Decoding
-@chapter Encoding and Decoding
-
-
-@node Block Storage
-@section Block Storage
-
-@node Streaming Interface
-@chapter Streaming Interface
-
@bye
diff --git a/hall.scm b/hall.scm
index 02fb698..2020d55 100644
--- a/hall.scm
+++ b/hall.scm
@@ -5,7 +5,7 @@
(hall-description
(name "eris")
(prefix "guile")
- (version "0.2")
+ (version "0.2.0")
(author "pukkamustard")
(copyright (2020))
(synopsis
diff --git a/public/index.html b/public/index.html
index 954f6dd..8dad44c 100644
--- a/public/index.html
+++ b/public/index.html
@@ -693,8 +693,12 @@ This document describes the Encoding for Robust Immutable Storage (ERIS). ERIS i
<div class="paragraph">
<p>Both block sizes can be used to encode content of arbitrary size. The block size of 1KiB is an optimization towards smaller content.</p>
</div>
+<div class="exampleblock">
+<div class="content">
<div class="paragraph">
-<p>Content smaller than TODO SHOULD be encoded with block size 1KiB, content larger than TODO SHOULD be encoded with block size 32KiB.</p>
+<p>TODO: Content smaller than TODO SHOULD be encoded with block size 1KiB, content larger than TODO SHOULD be encoded with block size 32KiB.</p>
+</div>
+</div>
</div>
<div class="paragraph">
<p>The block size is encoded in the read capability and the decoding process is capable of handling both cases.</p>
@@ -1779,20 +1783,25 @@ ERIS-Decode(BLOCK-SIZE, LEVEL, ROOT-REFERENCE, ROOT-KEY):
<div class="sect1">
<h2 id="_acknowledgments"><a class="anchor" href="#_acknowledgments"></a>6. Acknowledgments</h2>
<div class="sectionbody">
-
+<div class="paragraph">
+<p>Thanks to Cory Slep, Arne Babenhauserheide, Serge Wroclawski, Christopher Lemmer Webber, Christian Grothoff, Natacha, Hellekin, Nemael, TG, Devan, Emery, Arie, Allen and many others for the discussions, suggestions and support.</p>
+</div>
+<div class="paragraph">
+<p>Development of ERIS has been supported by the <a href="https://nlnet.nl">NLNet Foundation</a> trough the <a href="https://nlnet.nl/discovery/">NGI0 Discovery Fund</a>.</p>
+</div>
</div>
</div>
<div class="sect1">
<h2 id="_changelog"><a class="anchor" href="#_changelog"></a>Changelog</h2>
<div class="sectionbody">
-<h3 id="_v0_1_0_11_june_2020" class="discrete"><a href="eris-v0.1.html">v0.1.0 (11. June 2020)</a></h3>
-<div class="paragraph">
-<p>Initial version.</p>
-</div>
<h3 id="_v0_2_0_draft_unreleased" class="discrete"><a href="http://purl.org/eris">v0.2.0-draft (UNRELEASED)</a></h3>
<div class="paragraph">
<p>Major update of encoding that removes the <em>verification capability</em> - ability to verify integrity of content without reading content.</p>
</div>
+<h3 id="_v0_1_0_11_june_2020" class="discrete"><a href="eris-v0.1.html">v0.1.0 (11. June 2020)</a></h3>
+<div class="paragraph">
+<p>Initial version.</p>
+</div>
</div>
</div>
<div class="sect1">
@@ -1879,7 +1888,7 @@ ERIS-Decode(BLOCK-SIZE, LEVEL, ROOT-REFERENCE, ROOT-KEY):
</div>
<div id="footer">
<div id="footer-text">
-Last updated 2020-12-03 08:58:39 +0100
+Last updated 2020-12-06 20:52:09 +0100
</div>
</div>
</body>