The software part of this project consists of two separate applications: serializer and deserializer. The former connects to the the bitcoin network, receives transactions and blocks, then puts them into a queue, which is then processed according to given priorities and finally serialized to a stream of bytes. The result is passed to transmitter. On the other end, a tuner is connected to the deserializer, which parses the incoming stream and emulates a bitcoin node serving transactions and blocks to all connected bitcoin nodes.
Unlike many other radio technologies, DVB-T is very flexible platform. We can start with very scarce bandwidth and scale up later. When the block sizes grow in the future, we can broadcast it without any interruptions. Handling of 10 megabyte blocks in the future is not an issue. We can also embed many kinds of other data to the stream. What do you think about receiving your favourite IRC channel via Digital TV?
Kryptoradio encoder and decoder are programmed in Haskell. Bitcoin data source is programmed in C (gnu99) and depends on Glib, LibSSL and Linux. Some data sources are written in POSIX shell. All source code is licensed under GNU AGPLv3+. The sources are available at GitHub.
- Kryptoradio encoder supports multiple data sources
- Bitcoin bandwidth optimization. We are optimizing the blocks by referencing to already sent transactions by their tx id, and does not retransmit them in a new block. The receiver assembles the block, keeping it compatible with all bitcoin clients. (This is probably the first implementation which solves a known scalability problem of bitcoin.)
- Broadcasting of Bitstamp full order book and trade data
- Broadcasting BitPay Bitcoin Best Bid in multiple currencies
- Zlib compression of transaction and block data. Compression ratio on real data is about 1.25.
Not yet finished:
- Bitcoin data source should be compatible with the current encoder
- Proper bitcoin transaction prioritization based on the predicted queue position.
- Serial traffic signing. The receiver needs to be sure that the data has not been forged.
- Better error handling in receiver
Distribution contracts and legal questions
We have successfully finished negotiations for pilot stage (test transmissions) in Finland using Digita's nationwide DVB-T network. The pilot stage is executed during two months when the signal is broadcasted 24 hours a day over densely populated areas of Finland. Channel group E is selected for pilot stage. Click the map on the right for more information. (Map source: Wikipedia) For detailled coverage, see Digita's coverage map.
After a successful pilot stage our plan is to raise funds for continuous (24/7) distribution in the whole country and possibly in other parts of the world, too.