Upgrade to Pro — share decks privately, control downloads, hide ads and more …

#radBIOS: Shouting a database across the room

#radBIOS: Shouting a database across the room

My #hopex talk about moving databases about using audio.

Code is at github.com/richo/groundstation

Richo Healey

July 19, 2014
Tweet

More Decks by Richo Healey

Other Decks in Programming

Transcript

  1. Source of truth is the set of these points This

    sucks for things like code. It’s pretty great when human beings will be processing it.
  2. Distributing data •“Give everyone everything” •Nodes aggressively hand over all

    the data they know about. •The idea is to build up a coherent knowledge graph.
  3. Practical Applications •Disaster affected regions •Never underestimate the bandwidth of

    a station wagon full of tapes •Office comms (“It’s all git”)
  4. Transport Drivers •All assume physical proximity •Internet routing was actually

    an afterthought •Wireless was easy and practical •Needing an 802.11 stack kinda sucks though…
  5. Quietnet •Amazing project from Katee •Easy enough for a non

    radio person to understand •Not hugely fault tolerant •Easy to hack on and embed!
  6. Let's talk about encoding •need to turn some information into

    a bitstream •existing schemes like PSK31
  7. Unambiguous Encapsulation •Ossmann and Spill’s work from Shmoocon this year

    •Defends against packet in packet •Also makes this kind of absurd FSK madness approachable •Cheap way to add fault tolerance
  8. Here begins the fail talk.... •Groundstation's TCP driver is full

    duplex •"I'll just redo it with audio" •Turns out audio is hard
  9. Echo - Response •Repeat a tone until your peer repeats

    •Alternate codes to allow for repeated characters •Better schemes exist •This is easy to debug
  10. Audio isn’t binary though! •Missed bits can still be reasoned

    about •Ternary state for bits: 1, 0 _ •Let hamming soak up bits we miss