Skip to content
a decentralized and anonymous database
JavaScript
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
diagrams/hnet1
examples
lib
.gitignore
README.md
package.json

README.md

hnet - an experimental decentralized and anonymous database

hnet spreads small amounts of data across several non-traditional storage engines such as images, gists, pastebin, twitter streams, irc chat rooms, etc...

hnet is ideal for distributing small amounts of state anonymously. By design, it is not reliable, fast, or consistent.

An ideal use-case for hnet would be storing sets of IP addresses and ports for servers.

How does it work?

A series of unknown hnet nodes exist in the cloud

You connect to any number of "known" nodes

These nodes return data and arbitrary JSON-RPC commands

Optionally, JSON-RPC commands are executed

Client receives data from many nodes

Circular node linking is supported through a TTL ( Time to Live )

Saving data creates a new node that links back to at least two existing nodes

Usage

For now, see examples: https://github.com/Marak/hnet/tree/master/example

There is also a basic http server example which will response to http requests with hnet data

the hnet protocol is JSON

Supports arbitrary data

[
  { "foo": "bar", "tar": "val" },
  { "foo": "boo", "something": ["a","b","c"] },
  { "foo": "bar", "tar": "val" },
]

Supports JSON-RPC commands

hnet optionally supports JSON-RPC commands.

[
  { "foo": "boo", "something": ["a","b","c"] },
  { "method": "link", params: [ { "type": "couch", "uri": "http://hnet.iriscouch.com/public/0"} ] },
  { "foo": "bar", "tar": "val" }
]

hnet protocol JSON-RPC methods

method: link

params: type, uri

the link method indicates that we should lazily link this document from a remote dataset

type - the type of dataset we are going to load

ex: couch, gist, imgur, irc, etc..

uri - the uri of the node. i.e., the location

ex: http://hnet.iriscouch.com/0

Ex:

{ "method": "link", params: [ { "type": "couch", "uri": "http://hnet.iriscouch.com/public/0"} ] },

TODO:

  • Finish pluggable crypto system
  • Add additional engines for:
    • Image Stenography
    • PasteBin
    • Reddit
    • Imgur
    • Hacker News deadlink jail
    • Twitter
    • IRC
Something went wrong with that request. Please try again.