You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## [Unreleased]
9
9
10
+
### Added
11
+
12
+
-**Two-phase startup for faster initial sync with Tor setups**: Added `--clearnet-initial-sync` / `CLEARNET_INITIAL_SYNC` (default: `true`). When Tor is configured, the node now syncs block headers and filter headers over clearnet first, then restarts the chain service in Tor mode for privacy-sensitive operations.
13
+
14
+
### Changed
15
+
16
+
-**Compact filter prefetch is now opt-in**: `--prefetchfilters` / `PREFETCH_FILTERS` now defaults to `false` to avoid downloading and storing the full historical filter set on first startup.
17
+
-**New prefetch lookback control**: Added `--prefetchlookback` / `PREFETCH_LOOKBACK` (default: `105120`, about 2 years). When prefetch is enabled and `prefetchstart=0`, the prefetch start height is auto-computed as `tip - lookback`.
18
+
10
19
### Fixed
11
20
12
21
-**Spent UTXO detection in bulk endpoint**: `POST /v1/utxos` could return already-spent UTXOs because the batch `MatchAny` filter scan missed spending blocks in certain cases. Added a per-UTXO spend verification pass after the main scan that uses single-script `filter.Match` (the same approach used by the reliable `GET /v1/utxo/{txid}/{vout}` endpoint) to catch any spends missed by the batch scan.
prefetchFilters:=flag.Bool("prefetchfilters", getEnvBool("PREFETCH_FILTERS", false), "Enable background compact filter prefetch (default: disabled to save storage)")
39
39
prefetchWorkers:=flag.Int("prefetchworkers", getEnvInt("PREFETCH_WORKERS", 0), "Number of workers for background filter prefetch (0=auto)")
40
40
prefetchStart:=flag.Int("prefetchstart", getEnvInt("PREFETCH_START", 0), "Start height for background filter prefetch")
41
+
prefetchLookback:=flag.Int("prefetchlookback", getEnvInt("PREFETCH_LOOKBACK", 105120), "When >0 and prefetchstart=0, auto-compute prefetch start as tip minus this many blocks (~2 years default)")
42
+
clearnetInitialSync:=flag.Bool("clearnet-initial-sync", getEnvBool("CLEARNET_INITIAL_SYNC", true), "Sync block headers over clearnet before switching to Tor (safe: headers are public data)")
41
43
showVersion:=flag.Bool("version", false, "Show version and exit")
42
44
flag.Parse()
43
45
@@ -58,6 +60,9 @@ func main() {
58
60
logger.Infof("Data directory: %s", *dataDir)
59
61
if*torProxy!="" {
60
62
logger.Infof("Tor proxy: %s", *torProxy)
63
+
if*clearnetInitialSync {
64
+
logger.Infof("Clearnet initial sync: enabled (headers are public data, safe over clearnet)")
0 commit comments