Toms Blog

Where I talk about Bitcoin Cash and more

Flowee the Hub

2018-01-24 Bitcoin Cash flowee

My motivation for working on Bitcoin is actually several decades old. In one of my first jobs we had some consultants visit us explaining all the ins and outs of a retirement plan. As most people young and naive do, I signed up for monthly payments. When less than a year later the company went under I tried to recover the funds paid and to my surprise there was only maybe 10% left of it. It was supposed to appreciate in value, so I didn’t understand.

This was the beginning of a gruelling journey through systems intentionally made complex and people that give greed a bad name. I wrote much more about this in a longer post here.

The end result is that we live in a world where the top 1% received 82% of the wealth generated in 2017 (source). A world where the majority work to make the elite rich isn’t a world that is healthy. We, as a human species, can create such beauty and such amazing progress. Yet, here we are still working around 40 hours a week in a menial job and little prospects of improvement. Robots “taking over our jobs” are a lot less frightening prospect when we stop having to give 82% of our income away.

Something has to change, and I believe we can make that change with Bitcoin Cash.

My dream

I love Bitcoin as an idea and as something that might be able to give each of us more control over our own finances. It allows us to benefit from the wealth we create, instead of having to give it away. But unfortunately this is hard to apply to today’s society. I can talk to a store owner to pay in Bitcoin Cash, but I can’t offer a point-of-sale software. I may suggest people use a bitcoin-ATM, but there are only a small amount of companies that create those. The list goes on, the problem is real.

Something odd is going on if our goal is decentralisation, but practically all real solutions we advertise to the world require companies which ship closed-source software.

Flowee the Hub (.com)

To combat that I started a new open source software project, using the most successful open source license (GPL) which ensures that the software is and will always be free. For instance Linux uses this license, now used on billions of devices by users, companies and governments.

Software solutions that want to be Bitcoin (BCH) activated need to somehow communicate with the Bitcoin network. Flowee the Hub is the tool they can use to allow them to access all relevant data on Bitcoin transactions, payment history and more.

I started out with the validation and network engine that everyone on the network uses today, forking the codebase that stems from the original Satoshi created source-code.

Carefully I worked to keep all the rules of validation as-is, but move them to new source files in order to allow much easier understanding and just as important I worked to make the entire validation use multi-threading. This is one of the main pain-points I addressed in an earlier post I wrote on how to create real scaling in Bitcoin Cash.

This way the original Satoshi-based code becomes fully capable of scaling to multiple cores which are present in practically all new computers. As one of the requirements to make this work I made the transaction and block data use memory-mapped-files. A technique that essentially allows much faster access to the data and when fully supported everywhere it avoids problems when blocks get bigger this starts eating all your RAM. Parsing a single gigabyte-block today consumes around 3 GB in full nodes.

Access to the block-data

The hub is only a hub when others can connect to it, and for this I introduced the Admin-API. An extendable and super fast protocol which allows others to connect to the hub and request any Bitcoin blockchain data.

The simple way of looking at this is that we turn the hub into raw blockchain data-store.

Some examples of how this is useful;

Practically all block-explorers implemented today use a bitcoin full node to just get a notification of new data. The moment that data arrives, they insert the data into a SQL database.

Building an explorer on top of the hub will instead allow them to only record meta-data, (block/tx-index-pair) instead of the entire transaction because actually fetching the transaction can be done by asking the hub.

This allows such a block explorer to become much faster, the most exciting being that you can have multiple Flowee hubs that (by their nature) duplicate the data which allows sites to load-balance their server-farm.

Another example is a statistics module which can be built quite easy. We currently have dozens of websites that show fun information about blockchain based data, most of them are inaccessible other than via the pre-defined website interface.

To allow more research and allow more “heavy” queries, we need a statistics application running locally which can answer questions and plot graphics about block-times, difficulty, number of transactions and size of the UTXO set. And much more.
Building a statistics tool which gets its data from Flowee the Hub would be rather simple with the right API calls.

Companies working on their own special Bitcoin projects will most likely benefit from running one or more hubs, allowing it to be their direct connection to the network.

More serious (but bigger projects) are what we really need to have in Bitcoin, as open source projects. A mature Point-of-Sale project that uses the hub to get notified when certain addresses are being paid to. While there are companies that created some point-of-sale products, what we really need is an open source solution that anyone can just download, adjust and run. Nobody should have to ask permission to be a salesman accepting Bitcoin Cash.

I could give a hundred more examples, but I’m hoping this little section will have given you the direction I’m thinking and maybe you have some great ideas of your own.

Help wanted

This is my dream, to create open access to Bitcoin technology in order to allow anyone to determine their financial future.

I hope others feel this is a worthy goal and are willing to help me out, more people are needed to bring these dreams to reality. So far its been just me and my significant other, she has been amazing and brainstorming with her is a treat.

People willing to help out with the code, the website, public relations or anything else you might be good at are welcome, or just a small donation to show this is actually appreciated by others than just me.

Please join on reddit or twitter or keybase (channel floweethehub) or subscribe and say hi on on the mailinglist (send email to flowee+subscribe@googlegroups.com).