Releases: bosagora/agora
Releases · bosagora/agora
v0.37.1: Node startup improvements, fix potential SCP crash and improve log output
What's Changed
- Trivial: Improve node startup sequence by @mkykadir in #3219
- Fix #3223: Agora log output has corrupted month by @Geod24 in #3225
- AgoraLayout: Change colors to be more gradual by @Geod24 in #3227
- Issue3224:
scp fatal
incombineCandidates
by @hewison-chris in #3226
Full Changelog: v0.37.0...v0.37.1
v0.37.0: Enable blocks with many transactions and faster consensus resolution
What's Changed
checkExternalize
: return early if already externalized by @hewison-chris in #3108- Signature debug logging improvements by @hewison-chris in #3110
- Nominator: Gossip valid envelopes by @omerfirmak in #3111
- DNS: Compare ResourceRecords with their data by @mkykadir in #3115
- Trivial: Fix number of unknown TXs logged as accepted to the pool by @mkykadir in #3147
- Ledger: Dont validate UTXO still exists for nodes to be slashed by @omerfirmak in #3148
- Fixing expectations of
ValidatorCleanRestart
test by @hewison-chris in #3093 - Prevent possible crashes about handlers on shutting down by @linked0 in #3109
- Skip validation for enrollments in the pool by @omerfirmak in #3120
- PeerRange: Fix calling popFront on empty range by @omerfirmak in #3156
- Trivial updates to log messages by @hewison-chris in #3152
- Doc: Update TestNet documentation about consensus parameters by @mkykadir in #3107
- Delay missing tx envelopes by @omerfirmak in #3146
- Update serializer to HEAD by @omerfirmak in #3173
- Fixes Issue 3519: Log at trace level
No signatures in memory at height X
by @hewison-chris in #3176 - FullNode: Update ledger after accepting header by @mkykadir in #3166
- Revealing preimages 2 by @hewison-chris in #3174
- Trivial logging updates by @hewison-chris in #3179
- Increase txs sent from Faucet in ci test by @hewison-chris in #3181
- Add check if shutting down before timer rearm by @hewison-chris in #3178
- TransactionPool: Remove TXs in batch queries by @omerfirmak in #3183
- Re arm block catch up task timer by @hewison-chris in #3180
- Manager: Validate stakes peers present to us by @omerfirmak in #3106
- Trivial: Fix typo in log message by @Geod24 in #3185
- Trivial: Remove dependency to ocean.transition by @Geod24 in #3186
- Manager: Remove disconnected peers by @omerfirmak in #3114
- Make TimePoint a struct instead of an alias by @Geod24 in #3184
- GC: Update our fork of the GC to upstream by @Geod24 in #3163
- Registry: Allow configuration of multiple NS records by @mkykadir in #3118
- Manager: Remove AA usage while signature updating by @mkykadir in #3194
- Skip last section of QuorumPreimage test by @hewison-chris in #3195
- UnlockAge test: use 2 test validators by @hewison-chris in #3196
- Test: Fix DNS AXFR test condition to include NS record by @mkykadir in #3198
- Potential signature count without side effects by @hewison-chris in #3188
- Add signature to block in edge case by @hewison-chris in #3190
- Increase SCP slot timeout by @omerfirmak in #3191
- Quorum: Ensure we maintain majority in threshold calculations by @omerfirmak in #3192
- ValidatorSet: Cache result of getValidators() by @omerfirmak in #3025
- Delay forcing catchup till end of block time by @hewison-chris in #3200
InvalidBlockSigByzantine
test: addassertSameSignatures
by @hewison-chris in #3202- Coinbase: reset cache if signature is added by @hewison-chris in #3189
- ValidatorSet: Bypass far preimage check on adding new enrollment by @omerfirmak in #3201
- Fix Integration test for mac os by @hewison-chris in #3203
- Internalize Prometheus dependencies by @Geod24 in #3207
- Collect statistics in Nominator by @omerfirmak in #3204
- Manager: Query peer heights lazily while catching up by @omerfirmak in #3208
- Reset pending block if ledger is at that height by @hewison-chris in #3213
- Ledger: Move functions that work on ConsensusData to ValidatingLedger by @omerfirmak in #3214
- System Integration tests:
GenesisTimestamp
replacement for MacOS too by @hewison-chris in #3217 - Use URI records in Manager by @mkykadir in #3047
- Sign fetched block by @hewison-chris in #3212
- Add new validator to whitelist by @linked0 in #3218
- Remove Ocean dependency, use dtext instead by @Geod24 in #3220
- Remove leftover mentions of ocean (use Dtext), fix integration by @Geod24 in #3221
- Nominator: Nominate TX set hashes by @omerfirmak in #3216
- Ledger: eliminate DB ops in getTxFeeRate() by @omerfirmak in #3222
Full Changelog: v0.36.1...v0.37.0
v0.36.0: Better scaling and network connectivity
Major changes since v0.35.2:
- Block externalization for validators has been reworked to take time when enough signatures have been collected;
- Validator will now use the expected height information to reveal pre-images;
- The jitter used in the backoff algorithm has been improved;
- SCP: Timeout creation now takes number of validators into account;
- SCP quorum sizes are now calculated dynamically instead of having a hard limit;
- Non enrolled validators are now removed from peer list on block externalization;
v0.35.2: Disable Tracy by default, network Optimization & better UX
Major improvements since v0.35.1:
- Tracy is now disabled by default to avoid assertion failure on hosts that don't support TSC;
- Block catchup will no longer csll
GET /block_height
twice for all peers; - Messages triggering on a timer have been improved to be more informative and less repetitive;
v0.35.1: More testnet fixes & optimizations
Major changes since v0.35.0:
- RPC client has been greatly optimized to avoid the amount of syscall;
- Some noisy log messages have been silenced by default;
- Improved shutdown code to avoid a rare race condition that led to a crash;
- Nodes will now always use the UTC time for communication, regardless of their timezone;
- Improved performances for SCP envelopes received while not a validator;
v0.35.0: URI record support, dynamic TestNet configuration
Major changes since v0.34.2:
- The registry now generates URI records from registrations;
- Validators now expose a debug SCP endpoints;
- Config field
registry.enabled
has been renamed toregistry.public
; - Fixed a bug where TestNet nodes would fail to contact the registry;
- TestNet node now read their configuration dynamically from the registry;
v0.34.2: Lookup local registry before remote & update TestNet timestamp
This release makes node look up their local registry before querying
the upstream one, and update the consensus parameters for --testnet
.
v0.34.1: Improved TestNet UX
This patch release simplifies and correct the instructions
to access TestNet via a full node.
v0.34.0: TestNet usability
This release focuses mostly on making the upcoming TestNet
release smoother.
Below are the major changes since v0.33.0:
- Registry's HTTP
GET /validator
andGET /flash_node
endpoints have been simplified
to only return the payload data, removing the empty signature that was an historical artifact; - Registry: Fixed a bug where multiple
A
were concatenated in a single one; - Remove detection for configuration change in registry type: Users now need to handle it manually;
- Various optimizations in the way data is propagated to be more in line with consensus protocol;
getValidators
endpoint now returns validators for the next block to be externalized,
not the one that was just externalized;- More places will now trigger early catchup if the node detects it fell behind;
- Signature catchup for payout block has been improved, fixing an issue where the network would get stuck;
POST
endpoints for the registry now take the signature as a separate parameter instead of a field of an object;GET /node_info
now return peer identities along with addresses;- Added documentation on how to join testnet, and changed various default to simplify configuration;
v0.33.0: Optimized nomination, many registry features, fixed some RPC crashes
Major improvements since v0.32.0:
- Stats listening port and address configuration have changed (#2887)
- Configuration now recognizes
agora://
instead of TCP, default to port 2826 (#2883) - Fixed a crash that could happen when a stake for a key a node controlled was externalized by another node (#2895)
- The number of registry queries have been greatly optimized (#2899)
- RPC now keeps unmerged connection alive (#2904)
- Some RPC optimizations should result in less memory allocation (#2905)
- RPC now support HAProxy's proxy protocol V1 (#2863)
- RPC: Fixed a crash on wrong mutex lock (#2908)
- Nodes will now longer perform network-crawling discovery (#2911)
- Validators will now accept block with less-than-majority signature if their participation leads to majority (#2910)
- Nodes will now issue a configuration error instead of crashing on a wrong
network
configuration (#2912) - Flash:
ChannelConfig
struct has had a redundant field removed (#2917) - RPC: Fixed a race condition leading to a crash occuring on connection close (#2922)
- DNS resolver will now open the port with
SO_REUSEPORT
or equivalent, making node restart more seamless (#2703) - Name registry no longer assume it is primary, and can be caching or secondary (#2703)
- Validators will now always pick up when a stake they control was externalized by a third party (#2834)
- SCP: Nomination time has been greatly optimized (#2941)
- Length check on binary deserialization has been disabled to allow for larger blocks (#2956)
- Registry: TCP answers now use a larger buffer to allow for AXFR (#2946)
- Registry: Zone serial will now correctly increase when multiple updates per second happen (#2954)
- Redundant double spend validation has been removed to optimize validation time (#2950)
- Removed a spurious log message that would always been printed to the console (#2967)
- Configuration field
validator.registry_address
has been moved to thenode
section (#2968) - DNS: Fix a bug where the
OPT
record was 512 bytes at max, instead of at min (#2975) - DNS: Internal buffer size has been update to be in sync with the
OPT
record (2048 -> 4096) (#2977) - DNS resolver will now accept resolvers by host name, not only IP addresses (#2934)
- Improved nomination timer behavior to reduce the chance of nominator getting suck (#2978)
- DNS: AXFR queries are now done over TCP, as per specifications, instead of UDP (#2980)
- DNS client will now retry queries over TCP when the UDP query is truncated (#2980)