About 10 people met today at Ethereum’s Berlin offices to listen to Fabian Barkhau, a core developer of storj.io. Storj is a decentralized market place for disc storage that might soon allow us to lend out idle disc space in exchange for cryptocurrency. Fabian’s task at the company is to develop a publish/subscribe system which will be used to communicate offers and bids for disc space between users.
PubSub systems are typically centralized systems, where users will post their bids and offers to an intermediary broker. The challenge is to achieve the same functionality without making use of a centralized hub. Fabian reported that there is currently no good libary for a peer-to-peer pubsub system, even though lots of projects in the decentralized systems space have need for one. Even worse, there are very few research papers about this topic. The best paper Barkhau discovered and decided to base his work on is Quasar: A Probabilistic Publish-Subscribe System for Social Networks.
Barkhau has implemented the Quasar pubsub system in a concise python program. The only point in which Barkhau’s implementation deviates from the system described by the paper is that it adds a proof-of-work component. This is an effort to prevent possible network spamming attacks.
After the speaker gave the introduction to pubsub systems and Quasar, he opened the event up for questions. The audiences’ questions moved the focus away from the pubsub to storj in general.
One attendee asked about how payments are handled in storj. Barkhau explained that the payment aspect is currently still in development. The plan is to issue Storjcoin on the counterparty network (which is implemented on top of the bitcoin blockchain). Payments for disc storage will be made in Storjcoin which can be purchased on the usual exchanges for digital currencies.
The payments will move through payment channels (similar to the ones used in the lightning network). The use of payment channels means that most micropayments for disc usage can be made without having to write to the blockchain, thus saving blockspace and transaction fees.
Another question that came up is, how can it be ensured that the providers of disc space are indeed saving the files they are supposed to save. Barkhau answered that storj implements auditing of storage-providers. During audits the auditor passes a seed to the storage provider, which the provider uses to generate a cryptographic proof that he still has all the data.
In the end the discussion came back to the decentralized pubsub system. Barkhau stressed that he would welcome it, if there was one common, “standard” decentralized pubsub that would be used not only by storj but by other projects as well.
If you are interested in decentralized systems and live in Berlin make sure to subscribe to the meetup group Decentralized Hack & Learn to be notified about the next event. Thanks to Cristian for organizing this.