Yes, I think that casascius's goals might be a bit too far off. If a usable Bitcoin transaction transfer system over audio comes out of it that's plenty cool though...
He's injecting a healthy dose of skepticism based on extensive previous experience. I don't think it's as crazy as he makes it out to be, but he's rightfully pointed out a lot of issues that we will run into. I am definitely much better prepared for having nothing come out of this, though. Artificially-lowered expectations always make for a better experience when it does work
Right, I forgot about that and totally agree. IMO, public domain is a bit too out there for something that could be useful. Is something like MIT OK? I would also be willing to go the copyright transfer route as well if that is clearer for future use.
MIT license is fine. I don't mind giving attribution for others' work that I'm using, but I just don't want my project to end up tethered to a bunch of other strangers on the internet that had tiny contributions compared to the entire project (no offense to all those strangers
).
I should probably set a reasonable goal for the bounty so there is some checkout criteria, though I will be flexible if someone is close.
(1) It should work with "standard" audio cables (or attenuated). I don't want users to have to buy expensive stuff... but buying
something is okay. I'm guessing that $20 or less would be ideal, but if it's in the $50 range it might have to do (and it looked like USB-to-Serial adapters were going to cost in the $30 range, maybe casascius can chime in about how to do it cheaper).
(2) The solution should achieve at least 1/3 the rate of RS232 on one audio channel (I'm assuming that a reasonable baud rate for RS232 is 115.2k, so this solution should get about 36k). If it can optionally expand to two channels, that would be great but I expect most platforms to support one.
(3) Final baud rate should be what you get after all the error correction.
(4) The solution would preferably auto-calibrate itself: most importantly it would probably have some mechanism for determining an appropriate output level (which is an interesting problem when neither side knows if the other side can hear them yet...)
We can negotiate the remaining terms of the bounty a bit later... it's late!
@Casascius
One other thing I meant to ask you that I hadn't resolved yet about RS232: even if I succeed as detecting and forcing the user to disable TTY logins, is there a way to determine if any other processes are listening on the channel? Beyond simply turning off OS auto-operations, it wouldn't surprise me if there were older applications that try to "help out" by listening and auto-processing serial information...