Author

Topic: Electrum server on Windows: Fulcrum (Read 906 times)

legendary
Activity: 3668
Merit: 6382
Looking for campaign manager? Contact icopress!
May 11, 2024, 01:01:15 PM
#41
This needs imho a bump, hence I'll add an update of my situation.


Something bad has happened to my computer. Somehow a Windows update managed to make my Windows no longer start, no matter what I've tried. This means I had to reinstall and this means that I've lost my WSL / Linux under Windows along with what was installed there (an Electrs server).
After reinstalling Windows I've given Fulcrum another chance - it has a proper Windows exe after all - and right now I'm using only Fulcrum.

Some more details: during the past months I've also played with cables and I guess that one was not too good, the data from my external HDD got corrupted. That was the blockchain and the Electrs data. For quick block download I've set up all I've could to SSD and this was also an eye opener.

In my old setup Fulcrum was too slow simply because I've been using it from the external HDD (hats off, Electrs managed to behave well even in that setup). On SSD Fulcrum runs just fine.

My current setup has for Bitcoin data 3 folders symlink-ed to SSD (blocks\index, chainstate, indexes) and also Fulcrum.conf contains for datadir a folder on SSD. The total now taken on SSD is 204 GB, which I can manage. And with this setup it all runs just fine. Keep in mind that while bitcoind I run almost every time I open my computer, Fulcrum I open only when I need to open my Electrum, which is not that often. Still, it's okay.

So if you are under Windows and have some space on SSD, Fulcrum is definitely an option to consider for electrum server.
full member
Activity: 896
Merit: 193
web developer for hire
August 21, 2023, 03:27:55 AM
#40
After start.bat I'm getting the same errors. I've modified settings but I can't make progress. What's happened after getblock errors appeared is Bitcoin Core doesn't shut down. The shut down message box's there but it doesn't shut down so I've used task manager to close it.

I've tested EPS it's working fast. Bitcoin Core's shut down works normal. What I've decided is I'll stop testing until I get a new SSD. If Fulcrum's running Bitcoin Core operation’s affected so I'm placing my SSD responsible. I've download 935MB before getblock errors so it's the SSD. I'll update Fun & learning Bitcoin blockchain downloaded on 1TB Silicon Power 2.5 SSD.
legendary
Activity: 3668
Merit: 6382
Looking for campaign manager? Contact icopress!
August 21, 2023, 02:39:29 AM
#39
Did you find Fulcrum stop/restart issues with SSD or it's only for HDD?

It's not issues, it's just slowness at start/sync on HDD.
And no, I can't tell about SSD because a new SSD was not in the plan yet. (I'd say you know how that goes).
full member
Activity: 896
Merit: 193
web developer for hire
August 20, 2023, 03:27:45 PM
#38
I would try to mitigate your sync issue with an increased value for timeout from Core with a higher value than default bitcoind_timeout=30. See also that your Bitcoin Core can handle enough RPC requests from Fulcrum.
Maybe a bit too much on my Raspi but mine has rpcworkqueue=512 and rpcthreads=128 in bitcoin.conf.

You could also run Fulcrum with debug option -d to get more details in its log-file which may give you more clues what's going wrong.

Did you do anything special at the time when the getblock errors started to show up (2023-08-19 16:50:xx)?
I didn't do any thing special so don't know why errors for missing blocks started to show. It managed 935MB download before getblock errors. I'll modify timeout settings. I'm still trying I don't want to give up unless there isn't another option

I have even Bitcoin Core on HDD. Yes, I've done the IBD with chainstate and indexes temporarily on a SSD.
Clearly, Fulcrum DB creation will be awfully slow on HDD, but it works. I've done that too.
Imho after the initial DB creation the difference in performance may not be great (if you don't stop Fulcrum).

For me the sync after stop/restart (on HDD) was the thing that made me give up Fulcrum and keep Electrs.
Did you find Fulcrum stop/restart issues with SSD or it's only for HDD?
legendary
Activity: 3668
Merit: 6382
Looking for campaign manager? Contact icopress!
August 20, 2023, 06:54:10 AM
#37
I can't afford buying another SSD for some months

I have even Bitcoin Core on HDD. Yes, I've done the IBD with chainstate and indexes temporarily on a SSD.
Clearly, Fulcrum DB creation will be awfully slow on HDD, but it works. I've done that too.
Imho after the initial DB creation the difference in performance may not be great (if you don't stop Fulcrum).

For me the sync after stop/restart (on HDD) was the thing that made me give up Fulcrum and keep Electrs.
hero member
Activity: 714
Merit: 1010
Crypto Swap Exchange
August 20, 2023, 05:56:34 AM
#36
...
update it's downloading

Not quite, it's building its own database by requesting details of past transactions presumably from your local running Bitcoin Core RPC server (your Core should run at least with server=1 and txindex=1 in bitcoin.conf file).

There are some speedup tweeks for this initial database build, but it depends on how much RAM your machine has. Main tweeks in fulcrum.conf are settings for db_mem, db_max_open_files and fast-sync, see their documentation in https://github.com/cculianu/Fulcrum/blob/master/doc/fulcrum-example-config.conf.
I searched a little bit in the issues section on the Github and it seems the Fulcrum author recommends to leave those settings at default, particularly fast-sync is flagged more like experimental for newer versions of Fulcrum (I don't run the most recent one).

But it's not really necessary to fiddle around with the parameters, the defaults should be ok-ish, but slower than possible.

My Fulcrum runs on a Raspi with 8GB RAM (with Bitcoin Core and together with LND) and I had db_mem=1024, db_max_open_files=500 and fast-sync=2048 during the database build. Probably better don't use my settings, see above.

How much RAM does your Windows box has?


It started well but it's stopped the sync after 935MB downloaded. I've deleted the folder to restart but it's the same error. I don't know why it's failed it won't sync. I'll make changes trying to discover what's wrong.



In your previous screenshot the sync looked fine. It's strange that Fulcrum complains that blocks are not found on disk. This could be an issue with Bitcoin Core failing to answer all requests from Fulcrum (more a wild guess of mine).

I suggest to report your issue in Fulcrum's Github, the maintainer of Fulcrum is usually quite helpful and knows to interpret the error log messages much better.

The Fulcrum log says something of 8GB for the UTXO cache and available memory seems to say your machine might have 32GiB of RAM (not sure if this also accounts for configured virtual memory or real physical memory only; it says "physical").

I would try to mitigate your sync issue with an increased value for timeout from Core with a higher value than default bitcoind_timeout=30. See also that your Bitcoin Core can handle enough RPC requests from Fulcrum.
Maybe a bit too much on my Raspi but mine has rpcworkqueue=512 and rpcthreads=128 in bitcoin.conf.

You could also run Fulcrum with debug option -d to get more details in its log-file which may give you more clues what's going wrong.

Did you do anything special at the time when the getblock errors started to show up (2023-08-19 16:50:xx)?
full member
Activity: 896
Merit: 193
web developer for hire
August 19, 2023, 11:33:56 AM
#35
Let us know how it goes.
It started well but it's stopped the sync after 935MB downloaded. I've deleted the folder to restart but it's the same error. I don't know why it's failed it won't sync. I'll make changes trying to discover what's wrong.



What are the prices over there for m.2 drives?
I'll post prices after I've checked newest discounts or deals. $35 prices from Amazon are superb but they're for Silicon Power I won't buy theirs again. I've reviewed my experience with their 1TB 2.5 SSD Fun & learning Bitcoin blockchain downloaded on 1TB Silicon Power 2.5 SSD
legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
August 19, 2023, 10:00:04 AM
#34
Let us know how it goes.
Keep in mind the sync will slow down as you progress, since all the blocks are full and it's a lot more data to crunch, but once it's done it's fine.
I did not do a lot of testing on performance of CPU / RAM will effect it and such since it's an old machine just dedicated to that.

What are the prices over there for m.2 drives?
I tried to find this one: https://www.amazon.com/gp/product/B07PHJCCY3
or this one: https://www.amazon.com/gp/product/B07ZGJVTZK
on other Amazon sites but it keeps redirecting me back to the US site.

Both are $34.97 + tax here.

-Dave
full member
Activity: 896
Merit: 193
web developer for hire
August 19, 2023, 08:15:35 AM
#33
I can't afford buying another SSD for some months but I've seen SSD prices fall at Amazon US EU sites. I'm using Silicon Power 1TB 2.5 SSD it's running Bitcoin Core. It's slow in some ways but it's functioning fine. I'd like to buy m.2 next.

I'll test Fulcrum because I'm curious how it's going to perform against EPS on Windows. I'm downloading Fulcrum from the link in the OP. I've got latest Fulcrum-1.9.1-win64.zip version so I'll start installing now.

update it's downloading

legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
August 19, 2023, 06:34:59 AM
#32
The biggest thing I like about it, is that since it is a full electrum server it allows you to just point your client at it and go.
Want to import a private key into your wallet, nothing else to do.
You can have your desktop and your phone and just about anything else you want pointing at it.
Since I have it mapped back from the public IP space to it's private IP I can use it anywhere.

I am not super concerned about privacy, as I have explained elsewhere, but it's still nice to know that it does make it more difficult to track what I am doing. On, the off chance anyone wanted to.

As for the storage, to run core you are already over a 512GB drive. So you need the 1TB anyway. The cost really is so minimal as not to matter.
Amazon has name brand 1TB m.2 for under $40 delivered.

-Dave
full member
Activity: 896
Merit: 193
web developer for hire
August 19, 2023, 04:27:03 AM
#31
I'm not sure what you have misunderstood, but Ethereum is not part of this discussion.
And afaik Fulcrum doesn't download those GB, it creates its database from what it reads from bitcoin core.
It should've been extra not Ethereum so sorry for the mistake.

About taste, I prefer Electrs, but Fulcrum has its use if one has a server running 24/7 and wants various data, from multiple wallets in Electrum to a local block explorer.
I don't need it running like a server so it's central difference's Fulcrum runs 24/7 serving a local blockchain explorer. I'm using my Win 11 EPS when there's a need so don't need a server. If it's a solution ppl can use for themselves it's an option so it's good seeing so many different solutions.

I've edited my post. Thanks ETFbitcoin NeuroticFish for explaining

And as @NeuroticFish said, those 102GB are new database which generated by Fulcrum based on Bitcoin blockchain which provided by Bitcoin Core. Those database allow you to perform search (such as history transaction of Bitcoin address) very quickly. Although if you also rarely add new master public key/address, there's not benefit of running Fulcrum for your use case.

Does Fulcrum only run in CLI or conjunction with Electrum wallet after it's downloaded on Windows?
I actually never use Fulcrum. But it's definitely CLI software, where you need to run/execute it separately.
legendary
Activity: 3668
Merit: 6382
Looking for campaign manager? Contact icopress!
August 19, 2023, 12:59:37 AM
#30
Electrum wallet with EPS doesn't require Ethereum blockchain download but the link's saying Fulcrum needs 102GB download. I'd prefer waiting a few minutes for rescan after manually adding master public key/address to my config.ini instead of adding 102GB extra blockchain to my SSD.

I'm not sure what you have misunderstood, but Ethereum is not part of this discussion.
And afaik Fulcrum doesn't download those GB, it creates its database from what it reads from bitcoin core.

About taste, I prefer Electrs, but Fulcrum has its use if one has a server running 24/7 and wants various data, from multiple wallets in Electrum to a local block explorer.

My Windows EPS gives instant TXIDs messages when I'm sending or receiving so it's good performance after it's rescanned. If that's the only difference I wouldn't test Fulcrum because EPS provides something similar for less blockchain download.

Does Fulcrum only run in CLI or conjunction with Electrum wallet after it's downloaded on Windows?

As I said, it's a matter of taste and use. Can "your" EPS serve a local block explorer? (rhetorical, I know it cannot).
Fulcrum is a server on top of Bitcoin Core(*) that implements the protocol Electrum is using. Many others use that protocol (Sparrow can use it, block explorers use it), but that doesn't mean that Electrum is needed to be installed in order to have Fulcrum working.

(*) afaik it also works with BCH or BSV, I don't know nor care which one of them and what server that one has; that's off topic anyway.
full member
Activity: 896
Merit: 193
web developer for hire
August 18, 2023, 06:13:33 PM
#29


Bitcoin Core's taking 540GB on my SSD. Electrum wallet with EPS doesn't require Ethereum extra blockchain download but the link's saying Fulcrum needs 102GB download. I'd prefer waiting a few minutes for rescan after manually adding master public key/address to my config.ini instead of adding 102GB extra blockchain to my SSD.

My Windows EPS gives instant TXIDs messages when I'm sending or receiving so it's good performance after it's rescanned. If that's the only difference I wouldn't test Fulcrum because EPS provides something similar for less blockchain download.

Does Fulcrum only run in CLI or conjunction with Electrum wallet after it's downloaded on Windows?

Both Fulctrum and EPS are implementation of Electrum server. Unlike EPS which require you to add master public key/address manually to config file, Fulctrum have benefit of addressing all address at good performance[1]. That means you could just create new wallet/watch-only wallet without re-editing EPS config file and wait for rescan.

[1] https://www.sparrowwallet.com/docs/server-performance.html
legendary
Activity: 2870
Merit: 7490
Crypto Swap Exchange
August 18, 2023, 05:44:04 AM
#28
I've correctly installed Electrum Personal Server to use over Tor but didn't try Fulcrum. I've made my thread about my experience Fun & learning with Electrum EPS, Electrum wallet & Bitcoin Core QT in Win 11

What's the benefit of using Fulcrum if I'm using EPS?



Both Fulctrum and EPS are implementation of Electrum server. Unlike EPS which require you to add master public key/address manually to config file, Fulctrum have benefit of addressing all address at good performance[1]. That means you could just create new wallet/watch-only wallet without re-editing EPS config file and wait for rescan.

[1] https://www.sparrowwallet.com/docs/server-performance.html
full member
Activity: 896
Merit: 193
web developer for hire
August 17, 2023, 11:51:35 AM
#27
I've correctly installed Electrum Personal Server to use over Tor but didn't try Fulcrum. I've made my thread about my experience Fun & learning with Electrum EPS, Electrum wallet & Bitcoin Core QT in Win 11

What's the benefit of using Fulcrum if I'm using EPS?

legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
August 17, 2023, 11:37:04 AM
#26
So with ordering the m.2, waiting a day (thanks Amazon), installing it, installing windows and updating, and installing core and downloading the blockchain and then installing Fulcrum and letting it do it's thing it's back up and running.

Probably, not worth really having my own Electrum server up and running, but it's nice to know it's there.

Eliminating the entire windows good / windows bad things. The setup it brain dead simple. And now that I have it configured to never reboot (hopefully) unless I do it, the rebuild should not be an issue.
And if something does happen, using even what is the cheapest 1TB ssd I could find, really does make the entire process of blank machine to finished and running very quick.

-Dave
legendary
Activity: 3542
Merit: 1965
Leading Crypto Sports Betting & Casino Platform
August 10, 2023, 07:42:52 AM
#25
I think this is a better solution to run your own Electrum Server, because we saw the exploit that happened a while ago, where people re-directed users to phishing servers and they lost some coins. (Yea, I know they fixed this... but that was after it happened)

The thing is.... how many people are willing to sacrifice the resources for doing a couple of transactions a year? There are also a steep learning curve to maintain and secure it. (Besides the ordinary Joe public, I love this sort of thing.... so thank you for posting it)  Wink
legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
August 09, 2023, 06:26:56 PM
#24
Well fuckballs.....

MSFT had their monthly patches yesterday and the PC running Fulcrum decided to install them and reboot and did not cleanly exit fulcrum before doing that.
And now it's saying that the database is corrupt and it's trying to redo it. I'm too busy to do a deep look, is there a way to check / repair the fulcrum DB instead of having it redo everything.

And, yes I know to ask in github but I figure this might be quicker.

-Dave


Unfortunately I can't help you but I wonder how it rebooted without asking you.

I *thought* I had it set to install but not reboot, after it happened in May, I either did not apply it or something else changed.
Actually not going to deal with the re-sync on the spinning drive at this point a 1TB SSD m.2 is under $40 with tax, going to put that in.

While it was working I had no issues. Due to the fact that both my umberl and mynodebtc are offline at the moment I was using this as my go-to electrum server.

-Dave
hero member
Activity: 560
Merit: 1060
August 09, 2023, 01:58:57 PM
#23
Well fuckballs.....

MSFT had their monthly patches yesterday and the PC running Fulcrum decided to install them and reboot and did not cleanly exit fulcrum before doing that.
And now it's saying that the database is corrupt and it's trying to redo it. I'm too busy to do a deep look, is there a way to check / repair the fulcrum DB instead of having it redo everything.

And, yes I know to ask in github but I figure this might be quicker.

-Dave


Unfortunately I can't help you but I wonder how it rebooted without asking you.
legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
August 09, 2023, 01:47:47 PM
#22
Well fuckballs.....

MSFT had their monthly patches yesterday and the PC running Fulcrum decided to install them and reboot and did not cleanly exit fulcrum before doing that.
And now it's saying that the database is corrupt and it's trying to redo it. I'm too busy to do a deep look, is there a way to check / repair the fulcrum DB instead of having it redo everything.

And, yes I know to ask in github but I figure this might be quicker.

-Dave
legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
May 17, 2023, 10:34:50 AM
#21
It depends on how you plan to use it.
If you start it up and forget about it, Fulcrum would be better since it can deliver better performance after it's synced.
If you plan to start it up every now and then when you need it and don't mind if a wallet with many transactions is not lightning fast to receive, Electrs is better choice.

The other question is if I really need it - I have electrs running and I really do not feel I must change it to something else. But you know - numbers in performance comparison are tempting.
Maybe one day if I have nothing better to do...


If it ain't broke don't fix it.....

Anyway, got fulcrum running and synced. No real issues there. Will say that outside of the BTC syncing issues that I mentioned earlier that it's a much simpler run then electrs.
A few lines in a config file, run an exe, wait, done.

And this I think is a good thing. People who want to do it themselves but don't have a good knowledge of OSs and other things can with very little work have their own private electrum server running on an old Windows box.  Yes there are 100s of other things to consider and so on. But for a close to run and done pre-compiled solution it does work.

-Dave
legendary
Activity: 952
Merit: 1386
May 17, 2023, 09:52:33 AM
#20
It depends on how you plan to use it.
If you start it up and forget about it, Fulcrum would be better since it can deliver better performance after it's synced.
If you plan to start it up every now and then when you need it and don't mind if a wallet with many transactions is not lightning fast to receive, Electrs is better choice.

The other question is if I really need it - I have electrs running and I really do not feel I must change it to something else. But you know - numbers in performance comparison are tempting.
Maybe one day if I have nothing better to do...
legendary
Activity: 3668
Merit: 6382
Looking for campaign manager? Contact icopress!
May 17, 2023, 09:49:50 AM
#19
Do you have any experience with Electrs and may you compare the performance? Because that article (https://www.sparrowwallet.com/docs/server-performance.html) made my think if no to try Fulcrum... But would I really feel it as a simple user?

It depends on how you plan to use it.
If you start it up and forget about it, Fulcrum would be better since it can deliver better performance after it's synced.
If you plan to start it up every now and then when you need it and don't mind if a wallet with many transactions is not lightning fast to receive, Electrs is better choice.

In both cases Bitcoin core sync is not taken into account.
legendary
Activity: 952
Merit: 1386
May 17, 2023, 09:40:41 AM
#18
I've done my IBD on my main computer, with SSD and the data disk as external. Then I've moved everything to the final position.
PS. Initial sync of Fulcrum is also rather lengthy on HDD iirc.

Do you have any experience with Electrs and may you compare the performance? Because that article (https://www.sparrowwallet.com/docs/server-performance.html) made my think if no to try Fulcrum... But would I really feel it as a simple user?
legendary
Activity: 3668
Merit: 6382
Looking for campaign manager? Contact icopress!
May 16, 2023, 10:02:01 AM
#17
Yes, we all know SSD, faster PC, and so on and this becomes a non issue. But someone just reusing an old PC is going to be miserable.

You're right.
Putting at least chainstate and the indexes onto a small SSD at least until IBD is over helps a lot.
A good dbcache may also help.
Using UTP instead of old generation wireless makes a difference too.
But these are mentioned in Bitcoin Core topics, better than I could write them.

I've done my IBD on my main computer, with SSD and the data disk as external. Then I've moved everything to the final position.
PS. Initial sync of Fulcrum is also rather lengthy on HDD iirc.
hero member
Activity: 560
Merit: 1060
May 16, 2023, 05:54:56 AM
#16
Still working on this.
But, it does show to me at lest that we as a group should probably have better instructions for people then just download core and let it sync the blockchain.

1) Windows update forced a reboot with the patches last week and I did not notice for a few days so that added some time to the IBD. That's on me.
2) Lost power and the PC did not power on. Yes, that's on me again.

But with those 2 points above, someone who DOES know better can still drag what should be a 1 week or less IBD into a 2 week fiasco. Can you picture a normal user dealing with this.

Yes, we all know SSD, faster PC, and so on and this becomes a non issue. But someone just reusing an old PC is going to be miserable.

-Dave

Hmm. I get your point, however I don't understand what you mean by the underlined text.
legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
May 15, 2023, 03:27:55 PM
#15
Still working on this.
But, it does show to me at lest that we as a group should probably have better instructions for people then just download core and let it sync the blockchain.

1) Windows update forced a reboot with the patches last week and I did not notice for a few days so that added some time to the IBD. That's on me.
2) Lost power and the PC did not power on. Yes, that's on me again.

But with those 2 points above, someone who DOES know better can still drag what should be a 1 week or less IBD into a 2 week fiasco. Can you picture a normal user dealing with this.

Yes, we all know SSD, faster PC, and so on and this becomes a non issue. But someone just reusing an old PC is going to be miserable.

-Dave
hero member
Activity: 560
Merit: 1060
May 09, 2023, 08:43:49 AM
#14
So as I ve seen above you are using a spinning drive to store bitcoin and fulcrum data, is that correct? If so, is there any other storage device on the PC? Or is it the only disk you have?

That is the one and only disk.

Trying to make it as 'authentic' as possible, except for the fact that I put the drive in, it's just an old machine that I pulled off a shelf.
The same way someone who wanted to run their own node + electum server might have an old machine sitting around or get one from a friend.
No more memory, no multiple drives, no figuring out (or even noticing) that the CPU keeps throttling back. Just install core and wait, and then install Fulcrum and wait.

Will play with tweaks after that.

-Dave





Alright! Fair enough! I also run Bitcoin Core on an external HDD and after the initial synch, it works flawlessly now.
legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
May 09, 2023, 08:35:34 AM
#13
So as I ve seen above you are using a spinning drive to store bitcoin and fulcrum data, is that correct? If so, is there any other storage device on the PC? Or is it the only disk you have?

That is the one and only disk.

Trying to make it as 'authentic' as possible, except for the fact that I put the drive in, it's just an old machine that I pulled off a shelf.
The same way someone who wanted to run their own node + electum server might have an old machine sitting around or get one from a friend.
No more memory, no multiple drives, no figuring out (or even noticing) that the CPU keeps throttling back. Just install core and wait, and then install Fulcrum and wait.

Will play with tweaks after that.

-Dave



hero member
Activity: 560
Merit: 1060
May 09, 2023, 06:36:05 AM
#12
Core is still syncing slowly:



There is a issue with the hardware for some reason the CPU keeps throttling.

Was going to stop and start on a different box, but decided to see if it would finish syncing and then how Fulcrum would work on something with an old slow drive and funky hardware. Kind of a test to see if someone could do it on an old PC they pulled out of the closet.

Although I don't know exactly when this PC was built, it has to be close to 8 or 9 years at this point.
Just like what someone would have in storage to do something with sooner or later but never did.

-Dave

So as I ve seen above you are using a spinning drive to store bitcoin and fulcrum data, is that correct? If so, is there any other storage device on the PC? Or is it the only disk you have?
legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
May 09, 2023, 06:32:13 AM
#11
Core is still syncing slowly:



There is a issue with the hardware for some reason the CPU keeps throttling.

Was going to stop and start on a different box, but decided to see if it would finish syncing and then how Fulcrum would work on something with an old slow drive and funky hardware. Kind of a test to see if someone could do it on an old PC they pulled out of the closet.

Although I don't know exactly when this PC was built, it has to be close to 8 or 9 years at this point.
Just like what someone would have in storage to do something with sooner or later but never did.

-Dave
hero member
Activity: 560
Merit: 1060
May 09, 2023, 02:58:01 AM
#10
Since I never ran it I'm trying it out now. Put a 1TB spinning drive in a 4th gen i3 with 8GB of ram and am in the process of download the blockchain now.
Somebody remind me in a week to take a look at how it's going. I really hate spinning drives but it's all I have for larger then 512GB in the office. All the real ones are in the DC.

Looks interesting since it's a compiled executable along with core it should allow people who 'don't know computers' to run their own electrum server without too much effort. Which is good for privacy.

-Dave

Any feedback?? I am syncing slowly personally... I had to interrupt for several days and I just started the process yesterday night.
legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
April 28, 2023, 10:36:58 AM
#9
Since I never ran it I'm trying it out now. Put a 1TB spinning drive in a 4th gen i3 with 8GB of ram and am in the process of download the blockchain now.
Somebody remind me in a week to take a look at how it's going. I really hate spinning drives but it's all I have for larger then 512GB in the office. All the real ones are in the DC.

Looks interesting since it's a compiled executable along with core it should allow people who 'don't know computers' to run their own electrum server without too much effort. Which is good for privacy.

-Dave
legendary
Activity: 3668
Merit: 6382
Looking for campaign manager? Contact icopress!
April 28, 2023, 09:03:24 AM
#8
Hello! I just started syncing the data. I am just wondering, what am I syncing actually? What does my electrum server need to download?

Bitcoin Core downloads/synchronizes the blockchain. You'll need half a terra for that nowadays, btw.
The Electrum Server will get Bitcoin Core's data and creates a database on top of that for easy retrieval of various things your wallet or a block explorer (!) would need.
Depending on how it uses the data, I guess that an Electrum server can also survive without txindex (just the sync could be slower), depending on what data it gets from Bitcoin Core and what it stores.

ok, so I guess that's why I need txindex=1 in bitcoin core conf file

Well, Fulcrum specifically asks for txindex to be 1.
hero member
Activity: 560
Merit: 1060
April 26, 2023, 06:23:19 AM
#7
Hello! I just started syncing the data. I am just wondering, what am I syncing actually?

I don't read Fulcrum source code, but syncing (on Electrum server) usually involve obtaining blockchain data and create database which contain various index to speed up many things (such as retrieve TX from specific Bitcoin address).

What does my electrum server need to download?

Whole Bitcoin blockchain and node mempool (to show unconfirmed transaction to Electrum wallet).

ok, so I guess that's why I need txindex=1 in bitcoin core conf file
hero member
Activity: 560
Merit: 1060
April 26, 2023, 02:21:27 AM
#6
Hello! I just started syncing the data. I am just wondering, what am I syncing actually? What does my electrum server need to download?
legendary
Activity: 1232
Merit: 1080
February 28, 2023, 04:35:09 PM
#5
Syncing will always use more disk usage and ram and I think that is good performance for a program on Windows. It would be nice to compare it with Electrum running on the Linux sub system and see if it uses more or less. I think it could be more efficient because it does not have the Linux sub system running in the background too.
legendary
Activity: 3668
Merit: 6382
Looking for campaign manager? Contact icopress!
February 28, 2023, 02:29:18 PM
#4
Thanks for the guide (even though i rarely use Windows). Did you check how much does Fulctrum use? Fulctrum GitHub page said it has minimum 1GB RAM, so i wonder if it actually use 1GB or less.

Thank you for the kind words.
I've fired it up and I have the numbers while syncing (blocks from about half a day) - first image and from when it was quiet - second image.
The data is from both Task Manager and Process Explorer.





As you see while syncing it goes up to 1GB, but when it's cool it's much lower.
Also I'd add that I have in config

Code:
db_max_open_files = 80

which is higher than the default and may have as result some more memory allocated, but honestly I didn't read much into the docs and I may be wrong with the implications.
However, at some point at startup it was showing:

Code:
DB memory: 512.00 MiB
legendary
Activity: 3668
Merit: 6382
Looking for campaign manager? Contact icopress!
February 28, 2023, 05:35:53 AM
#3
I recommend including the asc text in the OP because if github has been compromised and the asc has been changed for the latest release people can verify with this guide whether it has been changed or not. I think it is just a extra step in security and it might be a pain for you to keep updating it with every new release but it will add another layer of trust.

I am not the developer of Fulcrum, I'm just an user. I would get the same asc file as you'd do. And if I'd put the content of the asc file into OP I'd have to update it with each new update of Fulcrum, which is not something I would want to do.
So, as I said in OP, the user will look for the asc with the same name as the zip he's about to download/use. For Fulcrum-1.9.0-win64.zip it would be Fulcrum-1.9.0-win64.zip.asc.
sr. member
Activity: 467
Merit: 578
February 27, 2023, 07:19:23 PM
#2
I recommend including the asc text in the OP because if github has been compromised and the asc has been changed for the latest release people can verify with this guide whether it has been changed or not. I think it is just a extra step in security and it might be a pain for you to keep updating it with every new release but it will add another layer of trust.
legendary
Activity: 3668
Merit: 6382
Looking for campaign manager? Contact icopress!
February 27, 2023, 03:29:36 PM
#1
If one wants to have an Electrum server, one of the options is Fulcrum.

I already have an Electrum server (Electrs), which I use and for which I've made a more complete tutorial in the past, but at some point I've made tests with Fulcrum too and it would be a shame to remove it without providing a tutorial for the others who want it.

So... one major advantage of Fulcrum comes on Windows: the user can just get compiled binaries for Bitcoin Core, Fulcrum and Electrum, configure and run them all, without the need of stepping into Windows Subsystem for Linux (WSL). Another good thing is it's performance: it's processing the requests significantly faster than Electrs. Just in my experience (HDD, infrequent use for rather short tasks) Fulcrum gets in the state I can access it significantly slower than Electrs.

But, tbh, I don't like Fulcrum as much as the other option I have (Electrs)
* Fulcrum is made by somebody with BCH ties and it may be much better optimized for BCH (to say the least)
* As I said, Fulcrum starts/syncs slower than Electrs and that's not OK for my use case

Something more about this tutorial. This is made for a Fulcrum as I use it: me, for myself. No discussions with other servers, not announcing my server, also no SSL. I've kept it simple. If one wants to expand the tutorial with that, be my guest.

Since an Electrum server works on top of a Bitcoin Core node, I'll handle Bitcoin Core first, but shortly.

Bitcoin Core is with pretty much the same as in my other tutorial, but with some tiny bit of change in config:
* already in that topic, later on, I've switched for use with rpc user and password instead of cookie. If you want to keep using cookie, that's fine too, just pay attention to the config files (both of them)
* Bitcoin core's config needs one more line: zmqpubhashblock=tcp://127.0.0.1:8433

So, I will not insist with Bitcoin Core, it's in the other tutorial, I'll just put here my config:
Code: (bitcoin.conf)
txindex=1
server=1
rpcbind=127.0.0.1
rpcallow=127.0.0.1
rpcallowip=127.0.0.1
rpcuser=UsErNaMe
rpcpassword=PaSsWoRd
zmqpubhashblock=tcp://127.0.0.1:8433

Fulcrum (https://github.com/cculianu/Fulcrum)

You download Fulcrum from https://github.com/cculianu/Fulcrum/releases ; you will get something like Fulcrum-1.9.0-win64.zip
It would be nice to verify your download, which is done with the correcponding *.asc file, like for Electrum.

Unpack the zip into a new folder, maybe FulcrumBinaries. We won't touch that folder from now on.
Now we create a file called Fulcrum.conf with the content:
Code: (Fulcrum.conf)
datadir = x:\FulcrumData_MainNet
bitcoind = 127.0.0.1:8332
rpcuser = UsErNaMe
rpcpassword = PaSsWoRd
tcp = 127.0.0.1:50001
peering = false
announce = false
public_tcp_port = 50001
admin = 8000
stats = 8080
db_max_open_files = 80
fast-sync = 8000

Some details:
* The username and password has to match with the one from Bitcoin
* x:\FulcrumData_MainNet is a folder you create, preferably somewhere fast (SSD), since this is where Fulcrum will keep its data; mine has now ~113 GB, but it may be safe to have some more space there, especially at start
* that fast-sync line should be commented (put a # in front of it) after the initial sync finishes
* the server is set to not discuss with other servers, not announce itself for other clients and so on; also no SSL

I've made a batch file for start and one for stop, but this stop works only after the sync is done. Else you better press the good old CRTL-C.
The content of the batch file is not very useful as it is, maybe as example, because it contains the path to the exe and, as parameter, the path to the config.
In my case it's:
Code: (start.bat)
"x:\Fulcrum\FulcrumBinaries\Fulcrum.exe" x:\Fulcrum\Fulcrum.conf

Same goes for the stop.
Code: (stop.bat)
"x:\Fulcrum\FulcrumBinaries\FulcrumAdmin" -p 8000 stop

After starting Fulcrum (start.bat) it might take an awful lot of time until everything is sync-ed. You may want to look for lines like:
Code:
[2023-02-27 21:42:48.964] Starting listener service for TcpSrv 127.0.0.1:50001 ...
[2023-02-27 21:42:48.965] Service started, listening for connections on 127.0.0.1:50001

or

Code:
[2023-02-27 22:03:32.758]  Block height 778553, up-to-date

Then you can start Electrum. As I wrote in the other tutorial I'm lazy and I'm using the portable Electrum. For me the command line is:
Code:
electrum-4.3.4-portable.exe --oneserver --server 127.0.0.1:50001:t
Jump to: