build(release): bump 6.1.8 -> 6.1.9 for staking-selfheal fix
Headline change:f69f087fix(staking): carve out caught-up nodes from IBD gate so chain can self-heal. Closes the v6.1.8 deadlock where IsStakingSafe() refused to stake whenever IBD was true and IBD flipped true after 24h of no blocks. Also includes the secondary commits since v6.1.7: -41e3898+64556dc: CLI flag handling -7a71904(already in v6.1.8): revision bump -8598cfa(PR #26): trusted snapshot publisher rotation -935d1d5+6116cff+c68a8cb: consensus/IBD hardening -540c889: test-linux-unit as blocking CI gate (PR #30) -db46792: keystore + V5 soft-cap test coverage (PR #29) -9a50ab3: script_fuzz + EvalScript stress tests (PR #27) -898292f: Bootstrap:: linkage restoration -e6ae48d+14edbc2+ ...: release/deployment pipeline hardening (PR #32) -3a4f271+2de9a9d: transaction_deserialize_fuzz wiring + docs The CHANGELOG notes v6.1.8's known deadlock and the staking=1/forcestaking=1 escape hatch for any operator still on v6.1.8. Codex verdict: see the underlying B-grade commitsf69f087and3a4f271.
This commit is contained in:
@@ -5,6 +5,51 @@ All notable changes to Triangles (TRI) are documented in this file.
|
|||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [6.1.9] - 2026-07-31
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- **Staking deadlock on idle networks.** `IsStakingSafe()` refused to
|
||||||
|
stake whenever `IsInitialBlockDownload()` was true, and `IBD` flipped
|
||||||
|
true whenever the chain tip was older than 24h. After 24h of no blocks,
|
||||||
|
every node simultaneously refused to stake and the chain deadlocked.
|
||||||
|
The `staking: true` flag in `getstakinginfo` was misleading — it only
|
||||||
|
reflected a single search in the brief window after a restart. Narrowed
|
||||||
|
the gate to "refuse only when IBD is true AND local height is behind
|
||||||
|
the peer/checkpoint estimate" (`f69f087`). A node at the peer median
|
||||||
|
now clears the gate and keeps staking through idle periods, so the
|
||||||
|
chain self-heals. Genuinely-behind nodes still hold off. Block
|
||||||
|
validation, reorg rules, and checkpoint rules are unchanged. The
|
||||||
|
`-forcestaking` bootstrap escape hatch still works on nodes caught
|
||||||
|
up to the checkpoint.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- CLI: `-conf=` (empty value) now falls back to the default config
|
||||||
|
path instead of erroring out (`41e3898`).
|
||||||
|
- CLI: `-conf` / `-datadir` / `-rpcuser` / `-rpcpassword` are honored
|
||||||
|
in the documented order, with clearer error messages on bad input
|
||||||
|
(`64556dc`).
|
||||||
|
- Build: reproducible build + signed release pipeline (PR #26 chain).
|
||||||
|
|
||||||
|
## [6.1.8] - 2026-07-17
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Bootstrap: RPC-driven trusted snapshot publisher rotation (PR #26).
|
||||||
|
Operators can rotate the snapshot publisher via RPC instead of
|
||||||
|
hard-coding it in the binary.
|
||||||
|
- Consensus: removed local-finality, fixed `getheaders` fork recovery
|
||||||
|
(`935d1d5`).
|
||||||
|
- Consensus: fail-closed reorg guard when the startup checkpoint
|
||||||
|
pointer is null (`6116cff`).
|
||||||
|
- IBD: allow `getblocks`/`getheaders` on OneShot peers during IBD
|
||||||
|
(`c68a8cb`).
|
||||||
|
- Build: bump revision 7 → 8.
|
||||||
|
|
||||||
|
### ⚠️ Known issue
|
||||||
|
- v6.1.8 introduced a staking deadlock on idle networks via the
|
||||||
|
`IsStakingSafe()` gate. Operators on v6.1.8 should set
|
||||||
|
`staking=1` and `forcestaking=1` in `triangles.conf` and restart
|
||||||
|
to unstick the chain. v6.1.9 fixes the root cause.
|
||||||
|
|
||||||
## [6.1.7] - 2026-07-08
|
## [6.1.7] - 2026-07-08
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|||||||
+1
-1
@@ -8,7 +8,7 @@
|
|||||||
// These need to be macros, as version.cpp's and triangles-qt.rc's voodoo requires it
|
// These need to be macros, as version.cpp's and triangles-qt.rc's voodoo requires it
|
||||||
#define CLIENT_VERSION_MAJOR 6
|
#define CLIENT_VERSION_MAJOR 6
|
||||||
#define CLIENT_VERSION_MINOR 1
|
#define CLIENT_VERSION_MINOR 1
|
||||||
#define CLIENT_VERSION_REVISION 8
|
#define CLIENT_VERSION_REVISION 9
|
||||||
#define CLIENT_VERSION_BUILD 0
|
#define CLIENT_VERSION_BUILD 0
|
||||||
|
|
||||||
// Converts the parameter X to a string after macro replacement on X has been performed.
|
// Converts the parameter X to a string after macro replacement on X has been performed.
|
||||||
|
|||||||
Reference in New Issue
Block a user