Skip to content

Add NowNodes blockbook server to eCash for sync/send recovery#453

Open
j0ntz wants to merge 1 commit into
masterfrom
jon/ecash-xec-nodes
Open

Add NowNodes blockbook server to eCash for sync/send recovery#453
j0ntz wants to merge 1 commit into
masterfrom
jon/ecash-xec-nodes

Conversation

@j0ntz

@j0ntz j0ntz commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

CHANGELOG

Does this branch warrant an entry to the CHANGELOG?

  • Yes
  • No

Dependencies

none

Description

eCash (XEC) wallets could not resync or send: the plugin's only blockbook sync server, wss://blockbook.fabien.cash/websocket, is down, so resync hangs and sends fail. This is an active support issue and a regression.

The NowNodes XEC blockbook host was already referenced in engineInfo.serverConfigs, but only as an HTTP broadcast fallback — it was never in defaultSettings.blockbookServers, so it was never used for the websocket sync. This adds it, with the %{nowNodesApiKey} template that Socket.ts substitutes from the plugin's init options, matching the pattern Bitcoin Cash, Bitcoin and Dogecoin already use.

   blockbookServers: [
-    'wss://blockbook.fabien.cash/websocket'
+    'wss://blockbook.fabien.cash/websocket',
+    'wss://xec-blockbook.nownodes.io/wss/%{nowNodesApiKey}'
   ],

The consuming app already wires ECASH_INIT.nowNodesApiKey through to the ecash plugin (edge-react-gui corePlugins.ts), using the same NowNodes key as the other UTXO coins; production env just needs that key populated for eCash (a deploy-config change, like every other NowNodes-backed coin).

Verification

  • Server check: blockbook.fabien.cash no longer serves the blockbook API; xec-blockbook.nownodes.io returns 401 without an API key and 200 with the key, reporting a live, in-sync eCash node ("coin":"ECash","network":"XEC","inSync":true).
  • In-app (iOS sim, edge-react-gui with this plugin linked in and ECASH_INIT.nowNodesApiKey set): resynced a funded XEC wallet ("My eCash", 126,536.16 XEC). Resync completed and the wallet stayed synced with a live balance — data that can only come from the NowNodes server, since the old server is down. Screenshots attached.

Asana: https://app.asana.com/0/1215088146871429/1213046875952149


Note

Low Risk
Config-only addition of a fallback sync server using an established NowNodes URL pattern; no changes to spending, key handling, or sync logic beyond server list selection.

Overview
Adds a second default blockbook websocket for eCash so wallets can fall back when wss://blockbook.fabien.cash/websocket is down.

defaultSettings.blockbookServers in ecash.ts now includes wss://xec-blockbook.nownodes.io/wss/%{nowNodesApiKey} alongside the existing Fabien server. That mirrors Bitcoin, Bitcoin Cash, and Dogecoin and wires the same NowNodes host that was already listed in engineInfo.serverConfigs for HTTP broadcast into websocket sync. The %{nowNodesApiKey} placeholder is filled from plugin init options at connection time.

CHANGELOG records the fix under Unreleased.

Reviewed by Cursor Bugbot for commit 3da1d2f. Bugbot is set up for automated code reviews on this repo. Configure here.

eCash's only blockbook sync server (blockbook.fabien.cash) is down,
so wallets cannot resync or send. Add the NowNodes blockbook websocket
server with the nowNodesApiKey template to defaultSettings.blockbookServers,
matching the pattern already used by Bitcoin Cash, Bitcoin and Dogecoin.
The GUI already passes ECASH_INIT.nowNodesApiKey to the ecash plugin.

Claude-Session: https://claude.ai/code/session_01NWSBgjqm8PkwCp8ziCrgX1
@j0ntz

j0ntz commented Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

📸 Test evidence — XEC resync via new NowNodes server

agent proof 1213046875952149 01 xec wallets funded

agent proof 1213046875952149 01 xec wallets funded

agent proof 1213046875952149 02 xec wallet balance

agent proof 1213046875952149 02 xec wallet balance

agent proof 1213046875952149 03 resync confirm

agent proof 1213046875952149 03 resync confirm

agent proof 1213046875952149 04 resync complete synced

agent proof 1213046875952149 04 resync complete synced

Captured by the agent's in-app test run (build-and-test).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant