hnet

a decentralized, distributed, anonymous database

npm install hnet
1 downloads in the last month

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 )

Usage

For now, you can find many examples of usage here: hnet api examples

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

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
npm loves you