-
Notifications
You must be signed in to change notification settings - Fork 524
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fulcrum: the most performant Electrum Server implementation #2924
Comments
First sync took ~48h on an RPi4: https://twitter.com/openoms/status/1487099572694437892 A quick manual guide to install: https://github.com/openoms/bitcoin-tutorials/blob/master/fulcrum.md |
Test this install script https://github.com/openoms/raspiblitz/blob/fulcrum/home.admin/config.scripts/bonus.fulcrum.sh:
Looking to test:
TODO:
|
More experience: #2966 (comment)
|
Hardware
Software
Run 1
Run 2
Run 3
|
Run 3 above completed Fulcrum sync successfully after 4 days. |
Re: sync while txindex is being built I have tested this on hardware as above, and settings as in "Run 3". No issues found. |
The new, version is looking good on my 4GB blitz. No errors so far and synced halfway. Unfortunately Fulcrum v1.7.0 corrupted it's database on an ungraceful shutdown so needed to reset. This was after 3 days getting to 54%. I feel Fulcrum is still not usable on a 4GB RAM RPi so leaving the script CLI only. |
I flashed to the latest There is an incompatibility with The Bitcoin Machines LCD and the Raspiblitz HDMI display settings, requiring me to comment out the I then ran the Monitoring with The install script may have partially broken Electrs inside
From my SSH shell, I was able to obtain the tor addresses with This then allowed my to successfully connect SparrowWallet to my fulcrum_tor.onion on port 50021 (SSL on 50022 also works) I can't say I've yet noticed any exponential increase in performance compared to Sparrow + Electrs for 1-2 wallets, but certainly Sparrow + Electrs is as slow as watching paint dry when syncing multiple (6-10) open wallets. Thank you for the hard work, no issues at all with the install script or sync with Pi4b 8GB, I would perhaps recommend adding fulcrum to the Thanks |
On RaspiBlitz 1.7.2 I deactivated electrs and installed Fulcrum 1.6 with the provided When I update with fresh microSD card and RaspiBlitz 1.8.0 image, I wouldn't want electrs to start again (I assume it won't) and I hope the database files of my current Fulcrum stay untouched. I'm OK to setup Fulcrum on RaspiBlitz by hand if needed. Will RaspiBlitz 1.8.0 recognize during first start that a previous Fulcrum was active? (I dropped electrs mainly because it's a pain with large address histories and it's considerably slower than Fulcrum, too.) |
Just a report. Summary: The Fulcrum upstream build is insecure and leads to untrustworthy binaries. Build instructions are all around the readme, if you only read the build a static binary, you will miss the dependencies that was on the top of the readme The script to be called is: https://github.com/cculianu/Fulcrum/blob/master/contrib/build/build.sh with the options The problem is the build script. It clones Fulcrum itself without signature verification: Then JeMalloc without signature verification: Then RocksDB without any verification: Then it will build a docker container https://github.com/cculianu/Fulcrum/blob/master/contrib/build/build.sh#L134 from the provided dockerfile https://github.com/cculianu/Fulcrum/blob/master/contrib/build/linux/Dockerfile The dockerfile instead of installing from debian repos Then it downloads the qt-patch without any verification at https://github.com/cculianu/Fulcrum/blob/master/contrib/build/linux/Dockerfile#L32 All of this means, if the build process upstream is not trustworthy, by only checking the fulcrum tag is signed with authenticity verification, this only means that the upstream maintainer did sign a tag or binary, it just means he signed an insecure build, not that the build is secure because it was signed. Fulcrum may be themost performant electrum server implementation, but it is also one of the most insecure build process of all electrum server implementations.
Proposed solution:
|
Fulcrum author here. I can see about checking hashes on some of the stuff the build process downloads. A comment though:
That being said, if the other stuff is an issue for you guys, I can tighten up the build script a fair bit. |
That is exactly what this build process is for cculianu/Fulcrum#136 (comment)
If only the Qt has to be downloaded from external sources (not debian packages that already have signature verification), then it would be much better.
Would be much welcomed. |
Again, it's doing a static build. C++ building is just like that. You need to compile libs specially to make them static. Bitcoin Core does similar in that it downloads tarballs, effectively. The static build for Fulcrum is designed to run on any (modern) Linux distro... Anyway yeah I will tighten it up and check hashes -- although you know when you clone a repo and do a checkout of a specific commit hash, that is secure. You cannot forge commit hashes on git -- doing so is as expensive/impossible as mining a sha256 coin with an insane difficulty. |
I followed the "Automated setup" at https://openoms.github.io/bitcoin-tutorials/fulcrum.html#automated-setup I ended up with a tor url and port at the end of the logs but It doesn't want to connect. Is there something more to be done? From the instructions there no delimitation for "Manual setup" so it's not clear where the Automated Setup section end. |
I got a RPi 4 with 4GB memory and RaspiBlitz on it. Do you think that will work or is it more likely not enough RAM for installing Fulcrum? |
answered on Tg https://t.me/raspiblitz/120553 |
Hi!
Now my node wont start up: blockchain progress: 181 restarts edit: markdown format |
Looks like your txindex on the bitcoind side got corrupted. You may have to remove all files under |
Just documenting the infamous lines I got again trying to sync a slightly overloaded RPi4 4GB:
|
See the udpatedd article from Craig Raw: https://www.sparrowwallet.com/docs/server-performance.html
https://twitter.com/craigraw/status/1488470446211321856?s=19
Fulcrum: https://github.com/cculianu/Fulcrum
arm64 binaries are published for the RPi.
Proceeding to test.
The text was updated successfully, but these errors were encountered: