richo’s 12 days of haxmas: pt3

After vanishing off the radar for a few days, I can now unveil groundstation.

Born of a discussion at work about how all existing solutions to issue tracking and project management pretty much suck, and my natural flair for finding the most awkward way imaginable to do something, I started building a framework for decentralised issue management, based on gossip protocols (full points to @wolfeidau for planting that seed in my head) and utilising git’s object store as a backend.

Right now all it can do is propogate git objects over the local network via broadcast discovery, but the TODO list is pretty significant. I’m planning to implement:

  • Verification of changesets based on RSA/ECDSA cryptography (choosing those algorithms because of their ubiquity with developers)
  • Implementation of an arbiter node making the broadcast discovery an effective local means, but not the only way to “sync” your events
  • Better control over “channel” subscription to avoid the obvious DoS attacks that are trivial to exploit with the current implementation
  • Better support for event based propagation, instead of polling as currently stands

… and if there’s time maybe a frontend or something so you can actually interact with it. Who can say.

You can try it out right now if you’re ok with not syncing any git objects other than blobs (the only primitive type that I’m planning to use in my tracker).

Clone the sources down on a few local machines on the same subnet,

pip install -r requirements.txt; python stationd

and watch whatever’s in

~/.groundstation

get synced up.

About richo

I enjoy exploring interesting concepts in weird languages. I also like hacking on all of the things.
This entry was posted in Hax, psych0tik software and tagged , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>