Skip to content

1.6.0

Choose a tag to compare

@craigraw craigraw released this 02 Oct 08:27
· 4 commits to master since this release
Immutable release. Only release title and notes can be modified.
  • Add a [limits] config section to protect public servers, with defaults following Fulcrum and ElectrumX where they have equivalents
  • Enforce global and per-IP connection caps (maxConnections, maxConnectionsPerIp) and close idle sessions after sessionTimeoutSeconds
  • Bound request line lengths (maxRequestBytes) and JSON-RPC batch sizes (maxBatchSize), rejecting oversized requests and control characters with JSON-RPC errors
  • Enforce per-IP and global scripthash subscription limits (maxSubscriptionsPerIp, maxSubscriptions) with a distinct -32005 error
  • Pace blockchain.silentpayments.subscribe requests per session with a burst and interval, delaying rather than rejecting subscribes beyond the burst
  • Add excludedSubnets to exempt clients (loopback by default) from per-IP limits, the batch cap and pacing
  • Add a per-session backend supervisor that reconnects with backoff, restores the protocol version and subscriptions with catch-up, and keeps idle connections alive
  • Rework the backend transport with queued responses, request timeouts, per-connection readers and read sequencing of scripthash statuses
  • Route scripthash, headers and silent payments notifications directly to the owning or subscribed session instead of broadcasting via the event bus
  • Deliver client notifications through a per-session async notifier that coalesces scripthash statuses and disconnects slow consumers (notificationQueueSize)
  • Authenticate ssl:// backends by certificate pinning (backendSslCertFile) or CA and hostname verification (backendSslVerify), warning when neither is configured
  • Reload the TLS certificate and key without a restart when they change, keeping the current certificate if the new files are incomplete or mismatched
  • Shut down gracefully, closing idle sessions at once and letting in-flight requests finish within shutdownDrainSeconds before the indexes are closed
  • Add a loopback-only admin endpoint (adminPort) offering getinfo with server health, effective limits and privacy-preserving usage figures
  • Log a count-free server health line every five minutes and privacy-preserving hourly usage aggregates of sessions, subscriptions, notifications and paced requests
  • Serve server.donation_address and server.banner from config (donationAddress, bannerFile), and answer server.ping locally instead of querying bitcoind
  • Send client notifications with positional params, and give broadcast failures their own error code
  • Cap the protocol version requested from the backend at the version Frigate supports, so client and backend always agree
  • Start only one scan when a batch subscribes to the same silent payments address repeatedly
  • Number scan threads distinctly and warn when a scan of new blocks is slow
  • Reject unknown command line arguments and values given to flags with an error and exit code, and accept the --option=value form
  • Upgrade DuckDB ufsecp extension to DuckDB v1.5.5 and ufsecp v4.6.2, and add OpenCL binary caching
  • Give the macOS launchers Frigate-specific Mach-O UUIDs instead of the one shared by every app packaged with the same JDK
  • Bug fix: Skip mempool transactions whose spent transaction has left the mempool instead of failing the whole mempool update
  • Bug fix: Ensure JSON-RPC errors with data reach clients instead of becoming internal errors
  • Bug fix: Fix CPU historical scan from Taproot activation when the first block is received after a restart