cjb / GitTorrent

A decentralization of GitHub using BitTorrent and Bitcoin
MIT License
4.75k stars 262 forks source link

How to integrate naming services with GitTorrent? #73

Open paulkernfeld opened 8 years ago

paulkernfeld commented 8 years ago

There have been a couple proposals for integrating different decentralized naming systems with GitTorrent (see #71, #72). If we go with the "namespacing" option (e.g. paulkernfeld@namecoin), how should these systems be integrated with GitTorrent?

It seems like a bad idea to integrate these libraries directly into GitTorrent for a couple reasons. First, this would bloat GitTorrent, increasing install time and complexity. Second, not all decentralized naming clients are written in Node.

So, perhaps the best option is to have GitTorrent run clients by calling out to an external process?

CC @blockstack, @xloem

xloem commented 8 years ago

The most public energy I've found so far around storing non-financial data in mainstream blockchains has been in Node -- see for example https://github.com/blockai/blockcast .

I think the route is to create a fledgling distributed naming system library in Node that could be used by other projects as well, and to use this library with gittorrent.

It wouldn't have to provide any more implementations than we care for in the moment, but maybe somebody would want to add e.g. gnunet later for a different project, and then gittorrent could benefit.

adlai commented 8 years ago

If the entire "namespacing" need fits within 80 bytes, then inserting it directly into OP_RETURN suffices. Blockcast is excellent for prototyping, but a finalized use-case can probably do better (at the very least, one should extend Blockcast to support dynamic fees).

xloem commented 8 years ago

I mentioned blockcast as an example of how Node already has an active OP_RETURN ecosystem. I think namespacing should be done in a separate Node module that can be later extended to support a variety of backends. The initial implementation doesn't matter and should be whatever backend is easiest to write the code for.