Hi Christian, Hi Martin,
Thank you for your kind feedback ... and sorry for the delayed response. Christian Grothoff <[email protected]> writes: > You might also want to use > https://gana.gnunet.org/ as a registry for constants, like a GNS record > type for (preferably binary-encoded) ERIS records. Done. Martin Schanzenbach <[email protected]> writes: > Also, an LSD for it would be great as grothoff said especially since > you alredy started a technical specification. I've kept the ERIS specification seperate for the moment. There are still some things to be done for a stable 1.0.0 version. A more stable version of the specification or better a document "ERIS for GNUNet filesharing" - which describes how ERIS is used in GNUNet with exact wire format would make a good LSD. > From my brief glance over it, the spec is missing some crucial > information regarding wire formats in order to ensure implementations > are interoperable. This is intentionally left out of the specification. The specification defines the encoding on a level independent of any concrete serialization or wire format. The hope is that this will allow interoperability between different projects and implementations even if they use very different wire formats. For example we can currently transport ERIS encoded blocks over IPFS or over HTTP (using RFC2169 conventions). There are many other possible transport/storage layers (e.g. GNUNet, OpenDHT, Named Data Networking, a local database). The wire formats are very different, but still the same content can be decoded. I think a document (a LSD) that defines the exact wire-format for GNUNet would be great - but out of scope in the specification of the abstract encoding. An example of an already existing concrete wire-format based on CBOR and CDDL: http://purl.org/dmc#_cbor_serialization > My question would be to you: Would you try and implement it in GNUnet > as well? I have! Unfortunately I didn't get very far... As my C-foo is very limited I planned on creating light-weight Guile bindings to libgnunetblock and then use GNUNet as a block storage/transport from the comfort of my REPL. However, I think I still need to implement a "block plugin" in C. Is this correct? There is no way around implementing a block plugin in C? Also, I am unsure if such a block plugin needs to live in the GNUNet code tree or it can be placed somewhere else and dynamically loaded. I must admit that I was slightly put off by the seeming complexity of doing this. But am motivated to give it another try with some assistance for the block plugin. Also very happy to assist anybody else who might be interested in working on this. > Could you provide an RFC-style LSD document with test vectors > so somebody else may be able to pick it up? I hope the ERIS specification (http://purl.org/eris) would be enough for implementation. Test vectors are also provided (http://purl.org/eris#_test_vectors). There are also a few second-party implementation (not by me) that use the test vectors: - Nim: https://git.sr.ht/~ehmry/eris - Go: https://github.com/cjslep/eris -pukkamustard
