Fulcrum 2.0 #299
Replies: 10 comments 18 replies
-
|
Is the database compatible with v2.0.0-pre2, or does it need to be resynchronized? |
Beta Was this translation helpful? Give feedback.
-
|
Sorry for the late feedback. Compil line`$ qmake-qt5 "CONFIG+=release" "CONFIG-=debug" "CONFIG-=gui" "DEFINES+=DISABLE_UPNP" Fulcrum.pro`During my first attempt tu upgrade db, it killed in the middle, resulting in a corrupted DB. Most likely if wasn't a Fulcrum issue but, rather a ssh issue. Next attempt worked like a charm. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
Oh yes -- maybe you have an unanticipated setup. Yes, delete everything except for the following files/dirs:
Everything other than the above should be nuked! |
Beta Was this translation helpful? Give feedback.
-
|
Not sure if it's just a placebo effect but I noticed that RAM usage went down after upgrading to Fulcrum 2.0. Thanks for your work, Calin. |
Beta Was this translation helpful? Give feedback.
-
|
Fulcrum 2.0 is insanely fast – synchronized in ~3 days, starts in seconds after reboot, decebtly handles addresses with long history, such as WikiLeaks old address. Many thanks! Well done! |
Beta Was this translation helpful? Give feedback.
-
|
Hi, unforturatelly db-upgrade won't work. |
Beta Was this translation helpful? Give feedback.
-
|
kernel panic on Raspberry Pi 4 with 8 GB RAM! Unfortunately the DB migration stopped after 3 hours with out-of-memory kernel panic during " I converted the database on a laptop afterwards successfully. |
Beta Was this translation helpful? Give feedback.
-
|
Been running Fulcrum 2.0 Pre-release 1 from Sep 20 . Tried to run 1.0 prior to that but the constant database corruption while tuning configurations to squeeze out better performance was driving me batty. The prelease version solved my problems. Appreciate I can run this on an old Windows 2012 server which you can't do with some of the other solutions out there like electrs that need a modern build environment. Upgraded to the Fulcrum 2.0 release today simply by updating the binaries - no issues using the prerelease database. Great work! thank you. |
Beta Was this translation helpful? Give feedback.
-
This should probably say 2048 MiB instead of 2048 GiB. |
Beta Was this translation helpful? Give feedback.




Uh oh!
There was an error while loading. Please reload this page.
-
What's New:
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-upgradethe first time you run Fulcrum 2.0 when upgrading from a 1.x install.Brief Summary: What's New in 2.0
A brief summary of what Fulcrum 2.0 offers vs the 1.x series:
SIGINT/SIGTERM/SIGQUIT(either from their init/systemd scripts or viakill -TERM <pid>, etc), and wait for it to terminate. This maximizes performance and minimizes startup times for Fulcrum the next time it is restarted.Upgrading from the Fulcrum 1.x Series
Upgrade Instructions
Fulcrum 2.0 has a different database format than the 1.x series. As such, you have two options for upgrading:
To upgade your existing database, be sure to pass the one-time
--db-upgradeflag to Fulcrum. It will refuse to start up if it detects that your datadir is in the old format and you did not pass this flag. This ensures that admins know what they are getting into.Note: The upgrade process takes seconds to minutes on BCH and BTC testnet(s), maybe ~15 minutes on BCH mainnet, and around an hour or more (depending on hardware) on BTC mainnet.
--utxo-cacheRemovedThe
--utxo-cacheoption has been completely removed. If you want to temporarily leverage memory to help out initial synch, use a temporary--db_mem(CLI) ordb_mem=setting in the conf file to give Fulcrum more memory for initial synch, stop Fulcrum, then set it down again to a smaller value for continued operations.Critical Note On Upgrading the DB from 1.x -> 2.0
Let it run to completion!
While Fulcrum 2.0 is 100% reliable and may be killed at any time during its operation -- there is one exception to this rule: the upgrade process that converts 1.x databases -> 2.0. As such please let the upgrade process run to completion and do not kill, stop, molest, or otherwise abuse the Fulcrum process while it's upgrading the DB!!. If you do, the old 1.x database will be lost and your 2.0 database will also be corrupted.
You have been warned!
Detailed Summary of Changes:
--db-upgradeCLI arg (required to upgrade an existing DB from Fulcrum 1.x to 2.0 format)db_memdb memory (should also help slightly reduce memory consumption)kNoCompressionfor all levels.--utxo-cachemechanism (it's no longer compatible with Fulcrum's newfound data reliability guarantees).db_memnow defauls to 2048 GiB or 25% of total physical memory, whichever is smallerdb_max_open_filesnow defaults to 1000 (was: 40)Pre-compiled Binaries for Linux
I have provided two pre-built binaries for Linux:
Fulcrum-2.0.0-x86_64-linux.tar.gz, which is compiled on anUbuntu 18.04system using Docker.Fulcrum-2.0.0-arm64-linux.tar.gz, which is compiled on anUbuntu 22.04system (for ARM64 bit) using Docker.All of the above binaries contain
jemalloc,libzmq,libminiupnpc,Qt5Core,Qt5Network(from Qt 5.15.6),OpenSSL 1.1.1andlibstdc++statically linked. They still requirelibz2, and the rightlibcversion as dynamic libs on your system (but those are usually present if you are on a recent system).Pre-compiled Binaries for Windows
Fulcrum-2.0.0-win64.zip- Pre-built, statically linked Windows version.Fulcrum.exe, built withjemalloc,libzmq,libminiupnpc,Qt 5.15.13,OpenSSL 3.3.0, andgcc 13.2.0.FulcrumAdmin.exeis included which is the python script, but made into aonefile .exeusing PyInstaller.FulcrumAdmin.exeas containing a virus. This is because many heuristic scanners dislike the use ofPyInstalleronefile .exe's. See: Fullcrumadmin.exe marked as virus #203. Please ignore this -- we contain no viruses! Also please complain to your virus software vendor about this.See the
.ascfile for signatures; I signed the sha256 hashes of all the release binaries. My gpg public key can be obtained here: https://github.com/Electron-Cash/keys-n-hashes/blob/master/pubkeys/calinkey.txtBinary builds for macOS coming soon -- Until then you can always build from source!
This discussion was created from the release Fulcrum 2.0.
Beta Was this translation helpful? Give feedback.
All reactions