Skip to content
This repository was archived by the owner on Apr 29, 2020. It is now read-only.

Commit 7ba07a2

Browse files
committed
quick thought dump
will develop this more soon-- i havent had time.
0 parents  commit 7ba07a2

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

README.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# car - Certified ARchives -- WIP
2+
3+
**(WIP -- quick thought dump)**
4+
5+
> A car for your data!
6+
7+
`car` is an archive format, like [`tar`](https://en.wikipedia.org/wiki/Tar_(computing)). It is designed to improve upon some deficiencies in `tar` as well as add fundamental improvements. The deatils of `car` are still being worked on, but the design space is already well scoped. `car` is a synthesis of good ideas. Many other archive formats introduced some of its improvements. `car` is different as it was introduced mainly to work with [IPFS](https://ipfs.io) and related protocols, like [IPLD](https://github.com/ipfs/specs/tree/master/merkledag/ipld.md). But `car` is useful beyond IPFS.
8+
9+
File System Improvements:
10+
11+
- **Seeking Optimized:** finding object within a `car` file should be easy and fast. We can do this via an index with in-file byte offsets.
12+
- **[UNIX/POSIX files]():** full unix + posix files compliance.
13+
- **[Extended Attributes](https://en.wikipedia.org/wiki/Extended_file_attributes):** support for xattrs and other extensions.
14+
- **Compression Optimized:** support for object-level and archive-level compression. Modular to support new compression protocols.
15+
- **Encryption Optimized:** support for object-level and archive-level encryption (through [AEADs](https://en.wikipedia.org/wiki/Authenticated_encryption) / [NaCl/Box](https://godoc.org/golang.org/x/crypto/nacl/box))
16+
17+
Fundamentally New Features:
18+
19+
- **[Data Structures](https://github.com/ipfs/specs/tree/master/merkledag/ipld.md):** support for archiving more than files-- arbitrary datastructures (first-class JSON, XML, IPLD support)
20+
- **[Merkle-Linked](https://github.com/ipfs/specs/tree/master/merkledag/ipld.md):** all objects in a `car` file are merkle-linked -- hash-linked -- together. this means the whole `car` file is a [merkle-dag](https://en.wikipedia.org/wiki/Merkle_tree).
21+
- **[Digital Signatures](https://en.wikipedia.org/wiki/Digital_signature):** `car` has first-class support for Digital Signatures, to verify the authorship and certification of its content.
22+
23+
Whishlist:
24+
25+
- **[Repo Friendliness](https://github.com/jbenet/random-ideas/issues/33):** make it _easy, efficient, and useful_ to use `car` archives as on-disk repositories for other tools.
26+
- **[Authenticated Datastructures](https://www.cs.umd.edu/~mwh/papers/gpads.pdf):** define all `car` operations as an authenticated datastructure, to have secure, untrusted computing. Merkle-linking and Digital Signatures get us most of the way there.
27+
28+
Related Work:
29+
30+
- continuity: https://github.com/stevvooe/continuity
31+
- `asar`: https://github.com/atom/asar
32+
- IPFS: https://github.com/ipfs/ipfs
33+
- IPLD: https://github.com/ipfs/specs/tree/master/merkledag/ipld.md
34+
- ipfs/unixfs: https://github.com/ipfs/go-ipfs/tree/master/unixfs
35+
- lambda-auth: http://amiller.github.io/lambda-auth/

0 commit comments

Comments
 (0)