@cryptotaxi247 / kubo / commits / 4b1bae8bc

dev pseudo-roadmap

Juan Batiz-Benet committed Jul 30, 2014 at 02:41 UTC 4b1bae8bc8d4b52e33a3868ac19f76b6f1f36194
2 files changed +58
README.md
+1
@@ -48,6 +48,7 @@ go-ipfs is MIT licensed open source software. We welcome contributions big and s
48
49 Guidelines:
50
51 +- see the [dev pseudo-roadmap](dev.md)
52 - please adhere to the protocol described in [the main ipfs repo](https://github.com/jbenet/ipfs) and [paper](http://static.benet.ai/t/ipfs.pdf).
53 - please make branches + pull-request, even if working on the main repository
54 - ask questions or talk about things in [Issues](https://github.com/jbenet/go-ipfs/issues) or #ipfs on freenode.
dev.md new
+57
@@ -0,0 +1,57 @@
1 +# go-ipfs development
2 +
3 +This is a simple description of where the codebase stands.
4 +
5 +There are multiple subpackages:
6 +
7 +- `bitswap` - the block exchange
8 +- `blocks` - retrieve blocks for the core node
9 +- `cmd/ipfs` - cli ipfs tool - the main **entrypoint** atm
10 +- `config` - load/edit configuration
11 +- `core` - the core node, joins all the pieces
12 +- `fuse/readonly` - mount `/ipfs` as a readonly fuse fs
13 +- `importer` - import files into ipfs
14 +- `merkledag` - merkle dag data structure
15 +- `path` - path resolution over merkledag data structure
16 +- `peer` - identity + addresses of local and remote peers
17 +- `routing` - the routing system
18 +- `routing/dht` - the dht default routing system implementation
19 +- `swarm` - connection multiplexing, many peers and many transports
20 +- `util` - various utilities
21 +
22 +
23 +### What's done:
24 +
25 +- merkle dag data structure
26 +- path resolution over merkle dag
27 +- local storage of blocks
28 +- basic file import/export (`ipfs add`, `ipfs cat`)
29 +- mounting `/ipfs` (try `{cat, ls} /ipfs/<path>`)
30 +- multiplexing connections (tcp atm)
31 +- peer addressing
32 +
33 +### What's next:
34 +
35 +- dht - impl basic kademlia routing
36 +- bitswap - impl basic block exchange functionality
37 +- ipns - impl `/ipns` obj publishing + path resolution
38 +- **(at this point should have func similar to bittorrent)**
39 +- block splitting on import - Rabin fingerprints, etc
40 +- version control - `commit` like data structure
41 +- expose objects to the web at `http://ipfs.io/<path>`
42 +- more...
43 +
44 +## Cool demos
45 +
46 +A list of cool demos to work towards
47 +
48 +- boot a VM from an image in ipfs
49 +- boot a VM from a filesystem tree in ipfs
50 +- publish static websites directly from ipfs
51 +- expose objects to the web at `http://ipfs.io/<path>`
52 +- mounted auto-committing versioned personal dropbox
53 +- mounted encrypted personal/group dropbox
54 +- mounted {npm, apt, other pkg manager} registry
55 +- open a video on ipfs, stream it in
56 +- watch a video with a topology of 1 seed N leechers (N ~100)
57 +- more in section 3.8 in the [paper](http://http://static.benet.ai/t/ipfs.pdf)