Pages:
Author

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

newbie
Activity: 13
Merit: 0
February 05, 2025, 06:23:43 AM
#73
Finished syncing everything, including Fulcrum and now it's working; however, I am a bit disappointed of the speed. For example I am using:

Code:
FulcrumAdmin -p 8000 query

I am getting about an average of 1 response every 2-3 seconds. I expected this to be faster, is there a way to benefit of more performance? My setup should be doing better than this since I am running on my main desktop. Also is there a better explorer than BTC RPC Explorer? Especially for its API.
newbie
Activity: 13
Merit: 0
January 28, 2025, 05:20:18 AM
#72
So I synced Fulcrum from scratch and now it's stuck like this (for three hours now):

Code:
[2025-01-27 00:42:51.127] Processed height: 606000, 68.8%, 18.0 blocks/sec, 38790.7 txs/sec, 136442.5 addrs/sec
[2025-01-27 00:42:51.637] Processed 606011 new blocks with 479411650 txs (1178064770 inputs, 1278776241 outputs, 1810346733 addresses), verified ok.
[2025-01-27 00:42:51.637] Initial sync ended, flushing and deleting UTXO Cache ...
[2025-01-27 00:42:51.637] Storage UTXO Cache: Flushing to DB ...

Looking at the task manager it's not using disk space apparently, and just some memory (RAM) so I think it's safe to stay it's not doing anything? Also the Processed height: 606000, 68.8% makes me think that Fulcrum is aware that my Bitcoin node was stopped at a specific block height that's missing a lot of recent blocks. Not sure what to do with this thing now really, I'd be happy to have it work correctly with up toblock height 606,010 (which is where I have turned connect=0 for my node), but I don't know if that's doable.

You need to wait for flushing to finish. Painful and long, but it will pass. [1]

[1] https://bitcoin.stackexchange.com/questions/116776/why-is-there-a-need-to-flush-the-utxo-set-when-you-prune-blk-dat-and-rev-dat-f

I have restarted the process again but with utxo_cache = 0. I also left my node (while Fulcrum was closed) to sync up to block height 650,543 and then I stopped it again with connect=0. After around 9-11 hours, it's stuck here:

Code:
[2025-01-28 05:03:18.834] Processed height: 641000, 72.8%, 5.92 blocks/sec, 13515.6 txs/sec, 58349.8 addrs/sec
[2025-01-28 05:06:15.310] Processed height: 642000, 72.9%, 5.67 blocks/sec, 12933.7 txs/sec, 56693.3 addrs/sec
[2025-01-28 05:09:17.796] Processed height: 643000, 73.0%, 5.48 blocks/sec, 11590.1 txs/sec, 53866.4 addrs/sec
[2025-01-28 05:11:55.158] Processed height: 644000, 73.1%, 6.35 blocks/sec, 13634.1 txs/sec, 60727.5 addrs/sec
[2025-01-28 05:14:34.317] Processed height: 645000, 73.2%, 6.28 blocks/sec, 14011.8 txs/sec, 61212.1 addrs/sec
[2025-01-28 05:17:14.472] Processed height: 646000, 73.3%, 6.24 blocks/sec, 13882.7 txs/sec, 60763.5 addrs/sec
[2025-01-28 05:20:07.502] Processed height: 647000, 73.4%, 5.78 blocks/sec, 12677.3 txs/sec, 56857.9 addrs/sec
[2025-01-28 05:22:45.779] Processed height: 648000, 73.5%, 6.32 blocks/sec, 12950.7 txs/sec, 59231.9 addrs/sec
[2025-01-28 05:25:16.626] Processed height: 649000, 73.7%, 6.63 blocks/sec, 13106.6 txs/sec, 59100.7 addrs/sec
[2025-01-28 05:27:57.033] Processed height: 650000, 73.8%, 6.23 blocks/sec, 13441.1 txs/sec, 59500.2 addrs/sec
[2025-01-28 05:29:20.571] Processed 650544 new blocks with 572976592 txs (1411013606 inputs, 1523970373 outputs, 2185459747 addresses), verified ok.

So even if I avoid having it flushing it, it does stop at the block height of my node, but then it does nothing.
legendary
Activity: 2870
Merit: 7490
Crypto Swap Exchange
January 28, 2025, 04:00:27 AM
#71
So I synced Fulcrum from scratch and now it's stuck like this (for three hours now):

Code:
[2025-01-27 00:42:51.127] Processed height: 606000, 68.8%, 18.0 blocks/sec, 38790.7 txs/sec, 136442.5 addrs/sec
[2025-01-27 00:42:51.637] Processed 606011 new blocks with 479411650 txs (1178064770 inputs, 1278776241 outputs, 1810346733 addresses), verified ok.
[2025-01-27 00:42:51.637] Initial sync ended, flushing and deleting UTXO Cache ...
[2025-01-27 00:42:51.637] Storage UTXO Cache: Flushing to DB ...

Looking at the task manager it's not using disk space apparently, and just some memory (RAM) so I think it's safe to stay it's not doing anything? Also the Processed height: 606000, 68.8% makes me think that Fulcrum is aware that my Bitcoin node was stopped at a specific block height that's missing a lot of recent blocks. Not sure what to do with this thing now really, I'd be happy to have it work correctly with up toblock height 606,010 (which is where I have turned connect=0 for my node), but I don't know if that's doable.

You need to wait for flushing to finish. Painful and long, but it will pass. [1]

[1] https://bitcoin.stackexchange.com/questions/116776/why-is-there-a-need-to-flush-the-utxo-set-when-you-prune-blk-dat-and-rev-dat-f

CMIIW, but it seems Fulcrum is performing flushing on it's own DB rather than passing message from Bitcoin Core.

--snip--
I’ve been considering setting up Fulcrum, but it looks like the initial sync and hardware requirements are something to plan for. Might stick with Electrs for now since it works fine for my needs

If you already use Electrs, there's no strong reason switch to Fulcrum. But while time for initial sync is definitely longer, you could configure it to use less hardware resource.
?
Activity: -
Merit: -
January 28, 2025, 03:40:14 AM
#70
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


I’ve been considering setting up Fulcrum, but it looks like the initial sync and hardware requirements are something to plan for. Might stick with Electrs for now since it works fine for my needs
hero member
Activity: 686
Merit: 1360
✔️ CoinJoin Wallet
January 27, 2025, 01:32:05 PM
#69
So I synced Fulcrum from scratch and now it's stuck like this (for three hours now):

Code:
[2025-01-27 00:42:51.127] Processed height: 606000, 68.8%, 18.0 blocks/sec, 38790.7 txs/sec, 136442.5 addrs/sec
[2025-01-27 00:42:51.637] Processed 606011 new blocks with 479411650 txs (1178064770 inputs, 1278776241 outputs, 1810346733 addresses), verified ok.
[2025-01-27 00:42:51.637] Initial sync ended, flushing and deleting UTXO Cache ...
[2025-01-27 00:42:51.637] Storage UTXO Cache: Flushing to DB ...

Looking at the task manager it's not using disk space apparently, and just some memory (RAM) so I think it's safe to stay it's not doing anything? Also the Processed height: 606000, 68.8% makes me think that Fulcrum is aware that my Bitcoin node was stopped at a specific block height that's missing a lot of recent blocks. Not sure what to do with this thing now really, I'd be happy to have it work correctly with up toblock height 606,010 (which is where I have turned connect=0 for my node), but I don't know if that's doable.

You need to wait for flushing to finish. Painful and long, but it will pass. [1]

[1] https://bitcoin.stackexchange.com/questions/116776/why-is-there-a-need-to-flush-the-utxo-set-when-you-prune-blk-dat-and-rev-dat-f
newbie
Activity: 13
Merit: 0
January 26, 2025, 09:00:39 PM
#68
So I synced Fulcrum from scratch and now it's stuck like this (for three hours now):

Code:
[2025-01-27 00:42:51.127] Processed height: 606000, 68.8%, 18.0 blocks/sec, 38790.7 txs/sec, 136442.5 addrs/sec
[2025-01-27 00:42:51.637] Processed 606011 new blocks with 479411650 txs (1178064770 inputs, 1278776241 outputs, 1810346733 addresses), verified ok.
[2025-01-27 00:42:51.637] Initial sync ended, flushing and deleting UTXO Cache ...
[2025-01-27 00:42:51.637] Storage UTXO Cache: Flushing to DB ...

Looking at the task manager it's not using disk space apparently, and just some memory (RAM) so I think it's safe to stay it's not doing anything? Also the Processed height: 606000, 68.8% makes me think that Fulcrum is aware that my Bitcoin node was stopped at a specific block height that's missing a lot of recent blocks. Not sure what to do with this thing now really, I'd be happy to have it work correctly with up toblock height 606,010 (which is where I have turned connect=0 for my node), but I don't know if that's doable.
newbie
Activity: 13
Merit: 0
January 26, 2025, 02:47:34 PM
#67
I could not say 100% what is the problem, but one thing I can see is that the console doesn't say anything about the tcp server on port 50001 being started.
So it's not matching with what I've written back then:

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

Yeah I can confirm that it only tells me about listening for the HTTP thing, and not opening 50001. I think because Fulcrum still thinks there's more blocks that should be there. I've added maxblockheight=606010 to Fulcrum confguration file, and deleted Fulcrum data directory, I am syncing Fulcrum from scratch again and will see how this goes.

EDIT: Apparently that thing doesn't exist, so I am not sure it will help :S
legendary
Activity: 3668
Merit: 6382
Looking for campaign manager? Contact icopress!
January 26, 2025, 02:40:47 PM
#66
I could not say 100% what is the problem, but one thing I can see is that the console doesn't say anything about the tcp server on port 50001 being started.
So it's not matching with what I've written back then:

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
newbie
Activity: 13
Merit: 0
January 26, 2025, 02:30:10 PM
#65
Thanks for looking, I am proceeding with that; hopefully it won't take long, it took me a whole week to sync it :s

Unfortunately, it will take some time, so be prepared with patience.
After doing that, you should be ok, but feel free to post here again, after finishing the re-indexing process.

I have just let my bitcoin code sync up to 606010 and added this line to the Bitcoin config file:

Code:
connect=0

As I don't need to reach current block height. Fulcrum seems to be fully synced, as I am getting this:

Code:
[2025-01-26 18:20:49.006] Loading database ...
[2025-01-26 18:20:49.202] DB memory: 512.00 MiB
[2025-01-26 18:20:49.206] Coin: BTC
[2025-01-26 18:20:49.207] Chain: main
[2025-01-26 18:20:49.207] Verifying headers ...
[2025-01-26 18:20:49.727] Initializing header merkle cache ...
[2025-01-26 18:20:49.963] Checking tx counts ...
[2025-01-26 18:20:51.178] 479411650 total transactions
[2025-01-26 18:20:51.179] UTXO set: 63772347 utxos, 5356.877 MB
[2025-01-26 18:20:51.194] DB version: v3
[2025-01-26 18:20:51.204] BitcoinDMgr: starting 3 bitcoin RPC clients ...
[2025-01-26 18:20:51.204] BitcoinDMgr: started ok
[2025-01-26 18:20:51.205] Stats HTTP: starting 1 server ...
[2025-01-26 18:20:51.205] Starting listener service for HttpSrv 127.0.0.1:8080 ...
[2025-01-26 18:20:51.209] Service started, listening for connections on 127.0.0.1:8080

However, I am not sure how to use it to query balances for examples? I tried using it with BTC RPC Explorer but I get this error:

Code:
[2025-01-26 18:52:41.213] Client: 127.0.0.1:49646; Invalid request: {"id": 1, "method": "blockchain.address.get_balance", "params": ["1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"]}

I also tried to use it as an Electrum server, but then the console prints:

Code:
[2025-01-26 20:24:18.297] Client: 127.0.0.1:62656; Invalid request:

What am I doing wrong?
hero member
Activity: 714
Merit: 1010
Crypto Swap Exchange
January 24, 2025, 04:37:00 PM
#64
Code:
datadir = G:\FulcrumData_MainNet
bitcoind = 127.0.0.1:8332
rpcuser = randomuser
rpcpassword = randompass
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

I have the following settings for my Fulcrum running on a Raspi 4B with 8GB RAM (conf isn't complete, only relevant parts listed):
Code:
bitcoind = 127.0.0.1:8332
rpcuser =
rpcpassword  =

# RPi optimizations
# avoid 'bitcoind request timed out'
bitcoind_timeout = 600
db_mem=2048

# for 8GB RAM
#db_max_open_files=500
db_max_open_files=300
#fast-sync = 2048
fast-sync = 1024
txhash_cache = 512

Not sure and confident if my settings are any better, but they worked to sync without errors.
hero member
Activity: 686
Merit: 1360
✔️ CoinJoin Wallet
January 22, 2025, 12:33:41 PM
#63
Thanks for looking, I am proceeding with that; hopefully it won't take long, it took me a whole week to sync it :s

Unfortunately, it will take some time, so be prepared with patience.
After doing that, you should be ok, but feel free to post here again, after finishing the re-indexing process.
newbie
Activity: 13
Merit: 0
January 22, 2025, 12:14:53 PM
#62
I had deleted the data dir for Fulcrum and still the same issue. Here's my Fulcrum.conf:

Code:
datadir = G:\FulcrumData_MainNet
bitcoind = 127.0.0.1:8332
rpcuser = randomuser
rpcpassword = randompass
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

I think you 'll need to re-index Bitcoin Core.
Make sure to stop fulcrum before doing it.
I don't run fulcrum, unfortunately, but the error seems straightforward. Especially since it reads some blocks but it fails on the rest.



Thanks for looking, I am proceeding with that; hopefully it won't take long, it took me a whole week to sync it :s
hero member
Activity: 686
Merit: 1360
✔️ CoinJoin Wallet
January 22, 2025, 12:13:23 PM
#61
I had deleted the data dir for Fulcrum and still the same issue. Here's my Fulcrum.conf:

Code:
datadir = G:\FulcrumData_MainNet
bitcoind = 127.0.0.1:8332
rpcuser = randomuser
rpcpassword = randompass
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

I think you 'll need to re-index Bitcoin Core.
Make sure to stop fulcrum before doing it.
I don't run fulcrum, unfortunately, but the error seems straightforward. Especially since it reads some blocks but it fails on the rest.

newbie
Activity: 13
Merit: 0
January 22, 2025, 12:07:58 PM
#60
Block not found on disk

I didn't encounter this error, but I've looked up on the internet.
The answer from here ( https://bitcoin.stackexchange.com/a/79749 ) tells that you probably need a reindex in your bitcoind.

Thanks, I found it too but I found it was weird and maybe not specific for my case? Cause it only does it for the latest block each time (so for example just right now 880,375, it is doing it for it). But I'll reindex and report back here.

My Bitcoin node is now fully synced; however, I keep getting errors on Fulcrum, related to the latest block (while it was syncing at just 5%):

<...>

Can someone please advise? I have txindex enabled, and pruning is disabled, and I do have enough diskspace where Bitcoin data and Fulcrum data is stored. I am not sure what's wrong.

Probably your databasei is broken and you need a rescan.

Before you do it, can you post your fulcrum.conf please? Omit anything you don't wanna share.

I had deleted the data dir for Fulcrum and still the same issue. Here's my Fulcrum.conf:

Code:
datadir = G:\FulcrumData_MainNet
bitcoind = 127.0.0.1:8332
rpcuser = randomuser
rpcpassword = randompass
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
hero member
Activity: 686
Merit: 1360
✔️ CoinJoin Wallet
January 22, 2025, 12:06:14 PM
#59
My Bitcoin node is now fully synced; however, I keep getting errors on Fulcrum, related to the latest block (while it was syncing at just 5%):

<...>

Can someone please advise? I have txindex enabled, and pruning is disabled, and I do have enough diskspace where Bitcoin data and Fulcrum data is stored. I am not sure what's wrong.

Probably your databasei is broken and you need a rescan.

Before you do it, can you post your fulcrum.conf please? Omit anything you don't wanna share.
legendary
Activity: 3668
Merit: 6382
Looking for campaign manager? Contact icopress!
January 22, 2025, 12:04:29 PM
#58
Block not found on disk

I didn't encounter this error, but I've looked up on the internet.
The answer from here ( https://bitcoin.stackexchange.com/a/79749 ) tells that you probably need a reindex in your bitcoind.
newbie
Activity: 13
Merit: 0
January 22, 2025, 11:44:30 AM
#57
My Bitcoin node is now fully synced; however, I keep getting errors on Fulcrum, related to the latest block (while it was syncing at just 5%):

Code:
[2025-01-22 17:43:31.155] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4318,"result":null}
[2025-01-22 17:43:31.156] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4317,"result":null}
[2025-01-22 17:43:31.157] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4316,"result":null}
[2025-01-22 17:43:31.158] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4319,"result":null}
[2025-01-22 17:43:33.139] Block height 880371, downloading new blocks ...
[2025-01-22 17:43:33.139] utxo-cache: Enabled; UTXO cache size set to 8000000000 bytes (available physical RAM: 34017689600 bytes)
[2025-01-22 17:43:33.199] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4345,"result":null}
[2025-01-22 17:43:33.199] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4347,"result":null}
[2025-01-22 17:43:33.199] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4346,"result":null}
[2025-01-22 17:43:33.200] Task errored: Task.DL 59570 -> 880371, error: Block not found on disk
[2025-01-22 17:43:33.200] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4349,"result":null}
[2025-01-22 17:43:33.204] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4352,"result":null}
[2025-01-22 17:43:33.204] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4354,"result":null}
[2025-01-22 17:43:33.204] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4353,"result":null}
[2025-01-22 17:43:33.204] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4355,"result":null}
[2025-01-22 17:43:33.205] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4356,"result":null}
[2025-01-22 17:43:33.205] Failed to synch blocks and/or mempool
[2025-01-22 17:43:33.205] Initial sync ended, flushing and deleting UTXO Cache ...
[2025-01-22 17:43:33.205] Storage UTXO Cache: Flushing to DB ...
[2025-01-22 17:43:33.206] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4358,"result":null}
[2025-01-22 17:43:33.206] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4357,"result":null}
[2025-01-22 17:43:33.206] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4359,"result":null}
[2025-01-22 17:43:33.206] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4361,"result":null}
[2025-01-22 17:43:33.207] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4362,"result":null}
[2025-01-22 17:43:33.207] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4360,"result":null}
[2025-01-22 17:43:33.208] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4363,"result":null}
[2025-01-22 17:43:33.208] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4364,"result":null}
[2025-01-22 17:43:33.209] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4365,"result":null}
[2025-01-22 17:43:33.209] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4368,"result":null}
[2025-01-22 17:43:33.209] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4367,"result":null}
[2025-01-22 17:43:33.209] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4366,"result":null}
[2025-01-22 17:43:33.213] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4383,"result":null}
[2025-01-22 17:43:33.213] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4382,"result":null}
[2025-01-22 17:43:33.214] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4381,"result":null}
[2025-01-22 17:43:33.214] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4385,"result":null}
[2025-01-22 17:43:33.214] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4389,"result":null}
[2025-01-22 17:43:33.215] 880371> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":4386,"result":null}

It starts happening after reaching this height:

Code:
c
[2025-01-22 17:50:16.130] Processed height: 55000, 6.2%, 3268.0 blocks/sec, 3895.4 txs/sec, 6722.2 addrs/sec
[2025-01-22 17:50:16.387] Processed height: 56000, 6.4%, 3861.0 blocks/sec, 4803.1 txs/sec, 8351.4 addrs/sec
[2025-01-22 17:50:16.643] Processed height: 57000, 6.5%, 4065.0 blocks/sec, 5048.8 txs/sec, 7605.7 addrs/sec
[2025-01-22 17:50:16.883] Processed height: 58000, 6.6%, 4166.7 blocks/sec, 5495.8 txs/sec, 8587.5 addrs/sec
[2025-01-22 17:50:17.070] 880372> getblock: error response: {"error":{"code":-1,"message":"Block not found on disk"},"id":118503,"result":null}

Can someone please advise? I have txindex enabled, and pruning is disabled, and I do have enough diskspace where Bitcoin data and Fulcrum data is stored. I am not sure what's wrong.
hero member
Activity: 714
Merit: 1010
Crypto Swap Exchange
January 16, 2025, 04:31:17 PM
#56
If you can read Bash shell code, then it's pretty straight-forward what goes in to the .env for BTC RPC Explorer with the setup script that RaspiBlitz uses. At least I can understand it pretty well.

https://github.com/raspiblitz/raspiblitz/blob/v1.11/home.admin/config.scripts/bonus.btc-rpc-explorer.sh

I can't help with an install on a Windows machine. You will need nodeJS, npm, nginx or any other capable web server, ... (not entirely sure if I didn't miss something).
newbie
Activity: 13
Merit: 0
January 15, 2025, 06:01:16 PM
#55
Please do let me know if BTC RPC Explorer and Fulcrum work together!

I didn't use Fulcrum with a block explorer so I can't confirm that. But it should work.
After giving up WSL (including electrs and BTC RPC Explorer) I no longer reinstalled a block explorer. I am no longer that much active and I also had much less transactions (hence less to check). So what I'll tell are just theories:

* there's a good chance may not be able to connect as long as Bitcoin Core and Fulcrum are not fully synced; I'd expect you get data only after you see the lines I wrote about in the topic start post

* tcp://localhost:50001 looks good to me, I also use 127.0.0.1:50001:t for my electrum when I connect to Fulcrum


* I did use BTC RPC Explorer with Electrs (see this) for quite a lot of time, but sadly last time I've tried something from my steps no longer worked and I gave up. But I think that since then the Electrs doc is more complete and I've avoided Docker for personal reasons and that may be the easy way.

* I recommend Bitcoin core's blocks\index, chainstate, indexes\txindex and Fulcrum's data folder to be on SSD, else it'll be slow

Thanks for sharing! Yes, both are on SSD, it's just that my connection sucks big time (average 800ko/s) on Firefox, so I suppose with P2P it may be less than that.
I've used Fulcrum but can't remember why I it didn't work so I gave up. It could've been down to my SSD or OS config so you'll have to troubleshoot until it's working. Did you locate alternatives ?

Any ideas? Haven't been able to figure it out yet.


Haven't been able to figure out an alternative yet. WSL doesn't work for me on Windows 11, and I tried many fixes including reading online and using AI, but it never seemed to be fixed. I don't want to use Virtualbox or anything else, so I chose Fulcrum to stay within Windows and apparently I have to wait until both Bitcoin Core and Fulcrum are fully synced, which with my connection will take days.

TL;DR
Local instances of BTC RPC Explorer and mempool.space work nicely with Fulcrum.

I'll have to dig out how it's configured as I've used it with RaspiBlitz where you simply install it (ok, switching from electrs to Fulcrum needs a tweak or two in earlier versions of RaspiBlitz).

I've used Fulcrum in my RaspiBlitz node setup instead of electrs and had local instances of blockchain explorers like BTC RPC Explorer aka bitcoinexplorer.org and mempool.space. It has worked like a charm until I ran out of space on the 1TB storage media (Fulcrum takes considerably more space than electrs).

From my own experience electrs is significantly slower for large address histories than Fulcrum and this was for me the main driver to switch from electrs to Fulcrum.

Why am I talking of past stuff? Well, I've been a bit lazy to upgrade my RaspiBlitz node and setup a more recent version of it. I also wanted to see how RaspiBlitz evolves (I started with v1.7.0 upgraded a few versions from there and tweaked it here and there to my liking... until it broke). As I've another node with electrs as Electrum server and BTC RPC Explorer and local instance of mempool.space there wasn't much pressure to fix my RaspiBlitz as soon as possible, so I procrastinated...

As far as I can tell from syncing my Fulcrum: it took a while and syncing it is more time consuming than with electrs. But my Bitcoin Core was in sync back then. Fulcrum definitely won't respond to queries as long as it isn't fully synced and as long as the Bitcoin Core it talks to isn't synced either.


Yes, I have Bitcoin Core running with txindex=1, so no pruning; however, my connection is so slow so I am still only at blockheight 462,528.

The issue might not be your internet connection but additionally maybe too small value for dbcache due to not enough free RAM available. On what kind of storage media is your blocks and chainstate directories located, hopefully a SSD?

Thanks for sharing! This definitely gives me hope! Yes, I am storing all that on SSD, my setup doesn't have any HDD, just some Sata SSD's and some M2 SSD's. My setup ram is 64 GO so all good in that, it's just that the connection is awful. Looking forward to be fully synced within a few days, does Fulcrum + BTC RPC Explorer work both from the box or need some tweaking? I indeed need fast transaction history.
hero member
Activity: 714
Merit: 1010
Crypto Swap Exchange
January 15, 2025, 05:51:22 PM
#54
TL;DR
Local instances of BTC RPC Explorer and mempool.space work nicely with Fulcrum. I run my stuff on Linux, not on Windows.


I'll have to dig out how it's configured as I've used it with RaspiBlitz where you simply install it (ok, switching from electrs to Fulcrum needs a tweak or two in earlier versions of RaspiBlitz).

I've used Fulcrum in my RaspiBlitz node setup instead of electrs and had local instances of blockchain explorers like BTC RPC Explorer aka bitcoinexplorer.org and mempool.space. It has worked like a charm until I ran out of space on the 1TB storage media (Fulcrum takes considerably more space than electrs).

From my own experience electrs is significantly slower for large address histories than Fulcrum and this was for me the main driver to switch from electrs to Fulcrum.

Why am I talking of past stuff? Well, I've been a bit lazy to upgrade my RaspiBlitz node and setup a more recent version of it. I also wanted to see how RaspiBlitz evolves (I started with v1.7.0 upgraded a few versions from there and tweaked it here and there to my liking... until it broke). As I've another node with electrs as Electrum server and BTC RPC Explorer and local instance of mempool.space there wasn't much pressure to fix my RaspiBlitz as soon as possible, so I procrastinated...

As far as I can tell from syncing my Fulcrum: it took a while and syncing it is more time consuming than with electrs. But my Bitcoin Core was in sync back then. Fulcrum definitely won't respond to queries as long as it isn't fully synced and as long as the Bitcoin Core it talks to isn't synced either.


Yes, I have Bitcoin Core running with txindex=1, so no pruning; however, my connection is so slow so I am still only at blockheight 462,528.

The issue might not be your internet connection but additionally maybe too small value for dbcache due to not enough free RAM available. On what kind of storage media is your blocks and chainstate directories located, hopefully a SSD?
Pages:
Jump to: