As we moved most of the creation of a BufferPool to be via the
Streaming::pool() method, which uses a thread-local, it makes sense
to start cleaning up the design and make it more modern C++.
The above mentioned method would return a reference and you'd see
loads of places use `auto &pool =` which is less than ideal.
As the number of places where we actually instantiate a BufferPool
goes down, the usage of some sort of smart pointer makes more sense.
This now makes all APIs use BufferPool be wrapped in a shared_ptr.
I got some UTXOs to test and now got some blocks filled
there, which proves the concept.
Its a bit slow to start (1 -> 20 tx are hardcoded) which was not an
issue if you can call generate() to mine, may be useful to adjust
for scalenet.
Yet, the basis works.
The txVulcano wallet is currently really not fast,
so this code made the first mistake of network programming;
a big task was handled blocking the network handling.
The workerthread eventqueue is now used for this.
As we don't intent to have a perfect wallet on this side, the
transactions failing to validate on the Node is a direct effect and
expected and Ok. As such the client is now more tolerant.
This is a partial app which has as goal to generate transactions
and fill up blocks. A needed tool to test bigger blocks.
Secondairy goal is to test the Hub APIs in actual production
setting.