The 2019.09 release adds support for the upcoming Bitcoin Cash protocol upgrade and it makes backwards incompatible changes in the Flowee-APIs. We strongly advice upgrading all components at the same time and special care should be taken with the address indexer.

Flowee is a growing family of products that together provide a platform for Bitcoin Cash innovation. Our goal is to move the world towards a Bitcoin Cash economy.

Flowee the Hub

The hub has been updated to support the Bitcoin Cash November protocol upgrade. Specifically support has been added for multisig transactions to be spent from all Schnorr based addresses.

Additionally we made encode-minimum a consensus rule. This formerly was just an is-standard rule. This tightens the rules and doesn’t allow any miner to include transactions that may be open to malleability. The direct effect is that transactions initially sent will have the same transaction-ID when they are mined.

Indexer (Address-DB)

One of the indexers we ship is an “address” indexer. Allowing you to find all transaction that deposit money in a certain address. In this release I introduced a backwards incompatible change which makes it needed to clear the database and rebuild the address-db index. This requires manual intervention, if you already have an address index, please follow the steps at the end of these notes.

We started with a overly simple representation of what an “Address” was. The limitation was that it essentially only allowed for pay-to-public-key-hash type of addresses. While those are the majority, this design still was elected to be replaced. The new design takes the entire output-script and hashes it to get a constant-width key. This has the advantage of being compatible for all types of payments, including future ones.

The network level APIs reflect this change as well. This means that you will need to update all your Flowee components at the same time.

Changes

Hub

Support the protocol upgrade.

Make address-monitor-service API use script-hash instead of address.

Update the testnet seeds and checkpoints allowing users to sync testnet out-of-the-box again.

Use blockheight instead of historical consensus methods to calculate when a protocol upgrade happened. This will speed up sync slightly.

Various backports from Bitcoin Core. Bugfixes and additional tests.

Add API to GetBlock to support script-hash. Also add unit test for this feature.

Port block-filters to use script-hash instead of p2pkh addresses. Also add unit test for this feature.

Indexer

Add API for address-db to both support the old address and the new script-hash way of identifying an address.

Update loglevel of SQL-db timings to show them in logs at default loglevel. As the SQL part is magnitudes slower than Flowee APIs, this is useful info.

BitCore-Proxy

Add a benchmark function to log the time it took to build a reply.

All applications (shared libraries)

Usage of a static code checker to fix lots of potential issues with regards to variable typing.

Upgrade manual

There are two main points that should be observed in the release 2019.9 compared to 2019.8 and earlier.