ADAMANT Node v0.10.2: safer recovery, richer APIs, and faster queries #66
al-onyxprotocol
started this conversation in
ADM Nodes, Delegates & Pools
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
ADAMANT Node v0.10.2 is now available:
Release: https://github.com/Adamant-im/adamant/releases/tag/v0.10.2
This release focuses on node liveness, faster recovery, safer database failure handling, richer observation APIs, and more efficient client subscriptions. It is intended for node operators, delegates, explorers, messengers, monitoring systems, and other services that integrate directly with ADAMANT nodes.
1. Synchronization can recover instead of remaining wedged
A callback or database failure in the synchronization pipeline could previously leave a node permanently reporting that it was syncing while making no progress. In that state it rejected live blocks, never started another sync, and required a manual restart.
v0.10.2 addresses both the recovery path and a probable root cause:
These are liveness and error-propagation changes. They do not alter which blocks are valid.
References: sync watchdog PR #249, DB rejection handling PR #251.
2. Persisted checkpoints reduce recovery work after interrupted shutdowns
ADAMANT keeps consensus-derived state in
mem_*tables. If a process is interrupted while those mirrors are being updated, the node must rebuild them from canonical blocks.v0.10.2 adds three rotating checkpoint slots for derived memory state:
Canonical blocks and deterministic replay remain the source of truth. A checkpoint is only a local recovery cache and cannot redefine chain state.
Reference: checkpoint recovery PR #261.
3. REST APIs expose more useful state with fewer workarounds
Top accounts
GET /api/accounts/topis now available consistently on every node. It provides deterministicbalance DESC, address ASCordering, pagination, anisDelegatefilter, count metadata, andlimit=0count-only requests.Delegate correctness
The release fixes three important observation/API problems:
GET /api/delegates/getagain reports the delegate's real rank/rate and correct outsider productivity.GET /api/delegates/voterscan no longer lose its address filter and return all accounts.GET /api/delegates/getNextForgersuses the next block height at round boundaries and reports a stable loading error before a chain tip exists.References: delegate rank PR #253, delegate voters PR #255, status/delegate PR #266.
Consensus and reward visibility
Status and delegate APIs now expose:
consensusCodeName;forgedamount as a base-10 integer string.This makes explorer, monitoring, and client behavior less dependent on duplicated hard-coded schedules. It exposes the node's effective configuration without changing consensus behavior.
Blocks query performance and correctness
GET /api/blocksnow honorsnumberOfTransactions=0. A new composite B-tree index on(text_generatorPublicKey, height DESC)also prevents the expensive full-table filtering path for an unknown generator combined with the default ordering.The response contract is unchanged. On a large database, operators should allow time and disk space for the index migration during the first startup.
4. Client Socket.IO adds opt-in block and balance events
Services can now subscribe to:
newBlockevents;balances/changeforbalance,unconfirmedBalance, or both.The node maintains dedicated subscription indexes so unrelated sockets are not scanned. Balance reads are batched around block apply/rollback, and event-publication failures are isolated from state mutation.
These events are best-effort and non-durable. Clients should restore subscriptions after reconnecting and use REST reconciliation for critical state.
5. Dependency and audit maintenance
Runtime and development dependencies were updated within their current major versions. The unused direct
npmruntime dependency and its bundled subtree were removed, and a narrow compatible Grunt/js-yaml override was added.The verified audit baseline changed from 4 moderate and 1 high finding to 0 moderate, high, or critical findings. No cryptographic protocol, signature, mnemonic, peer-handshake, or transaction-validation behavior changed.
Reference: dependency maintenance PR #262.
Operator notes
Cleaned up successfully./api/node/status, synchronization progress, live block processing, and the REST/Socket.IO capabilities used by your services.Release references
Questions and operator feedback are welcome below, especially around checkpoint storage, first-start migration time on large databases, sync recovery, and client event integration.
Beta Was this translation helpful? Give feedback.
All reactions