This is a major release of Fulcrum which adds much-needed reliability and performance improvements.
The database format has been completely redone and now Fulcrum provides reliability guarantees such that Fulcrum's db can no longer get corrupted. In other words, you should never see the dreaded "your database is corrupt, please resynch"-style messages, even if Fulcrum is killed at an inopportune time.
Since the database format has been completely redone, the database is no longer backward compatible with older Fulcrum versions, but you can upgrade your existing database to the new format by passing the one-time flag --db-upgrade the first time you run Fulcrum 2.0 when upgrading from a 1.x install.
brief summary of what Fulcrum 2.0 offers vs the 1.x series:
-
Database Reliability - one of the main weaknesses of Fulcrum 1.x was that should the process be killed at an inopportune time, or should abrupt powerloss or kernel-level crash occur at an inopportune time, there was always a risk that the datadir would get corrupted and the admin would be forced to do a full database resynch. This is no longer the case!
- Fulcrum 2.x series will no longer suffer from this problem and the process can be killed at any time (including abrupt powerloss), without any database corruption. At worst the last few blocks worth of data is rolled-back and Fulcrum will re-synch from the rollback point.
- It is still recommended that admins gracefully shut-down Fulcrum, however, via SIGINT/ SIGTERM/ SIGQUIT (either from their init/systemd scripts or via kill -TERM <pid>, etc), and wait for it to terminate. This maximizes performance and minimizes startup times for Fulcrum the next time it is restarted.
-
Platform Neutrality - database format is now 100% platform-neutral. This means it should be possible to always copy datadirs around regardless if transferring them from Windows, Linux, BSD, macOS, and regardless of platform architecture (including big endian platforms).
-
Improved database performance.