Skip to content

Releases: AntelopeIO/spring

Spring v1.0.3

31 Oct 16:29
c954fe8
Compare
Choose a tag to compare

Spring v1.0.3 is a patch release focusing on stability, performance, and compatibility improvements. It brings key fixes to the Trace API, enhancements to P2P networking, optimized block processing during syncing, and expanded platform support.

Notable Changes

Trace API Fix: Corrected the get_transaction_trace endpoint to properly handle forked blocks.

P2P Stability Improvements: Improved reconnection handling, fixed syncing timeout issue, and optimized processing of invalid vote messages for better network stability.

Optimized block processing: Enhanced responsiveness during syncing—allows quicker shutdowns, faster get_info API responses, and restores periodic logging during replay.

Compatibility Improvements: Resolved build issues with LLVM versions 7–9 and fixed some unit tests on non-x86 and non-Linux platforms.

Complete Change Log

Bug Fixes:

  • Fixed P2P stability issue caused by closing file descriptor 1 instead of connection when syncing timed out. (#897)
  • Fixed get_transaction_trace endpoint: Addressed an issue in the Trace API where the endpoint failed to return transaction traces if the initial block forked out, ensuring accurate trace retrieval. (#966)


P2P Networking Enhancements:

  • Improved reconnection handling: Resolved issues with P2P reconnections to enhance network stability and reliability. (#879, #899)
  • Optimized invalid vote message handling: Streamlined processing of invalid vote messages to reduce unnecessary load and improve network efficiency. (#913)


Performance Improvements:

  • Optimized block application: Implemented limits on block application to improve performance during block processing. (#921)


Logging Improvements:

  • Updated Prometheus metrics: Enhanced speculative block metrics for produced blocks, providing more accurate monitoring data. (#957)
  • Enhanced logging accuracy: Corrected block report log times to exclude the duration of maybe_switch_forks, ensuring precise logging information. (#881)
  • Cleaned up logging during restarts: Fixed an issue where restarting with Ctrl-C during fork database replay caused excessive log spamming, ensuring cleaner logs and smoother restarts. (#894)


Testing Improvements:

  • Improved test reliability: Updated flaky HTTP plugin unit tests and fixed the production_pause_max_rev_blks_test, strengthening the test suite's stability. (#959, #960)
  • Resolved flaky tests due to race conditions: Fixed race conditions causing unreliable tests like nodeos_snapshot_diff_test, p2p_sync_throttle_test, and distributed-transactions-if-test, improving test reliability. (#875, #897, #908)
  • Cross-platform test support: Updated eosvmoc_limits_tests to function on non-x86 and non-Linux platforms where OC is not supported, enhancing cross-platform compatibility. (#904)


Other Changes:

  • Enhanced compiler compatibility: Fixed building issues with LLVM versions 7, 8, and 9, expanding support for different compiler environments. (#903)
  • Version tracking update: Merged version bump from 5.0.3 to 1.0.3 for consistent tracking across releases. (#877)
  • Fork handling improvements: Reviewed and implemented alternative methods for handling forks to improve fork management. (#968)


Contributors

Special thanks to the contributors that submitted patches for this release:

Spring v1.0.2

02 Oct 20:57
52215f9
Compare
Choose a tag to compare

This release focuses on enhancing stability and performance, with improved block synchronization, logging, and system compatibility.

Notable Changes

  • Support for Linux Kernel 4.15: Added compatibility for systems running Linux Kernel 4.15 by falling back to random_access_file, ensuring broader platform support. (#780)
  • P2P synchronization enhancements: P2P connections continue during snapshot operations, improved reconnection handling, prevented syncing ahead in irreversible mode, and continue syncing when last irreversible block (LIB) is paused. (#768, #838, #811, #777)
  • State History ABI updates: Added block header extension types to the state history ABI, enhancing developers' ability to work with extended block data. (#783)
  • Improved logging accuracy: Enhanced the reporting of produced and received block times, disambiguated time entries in logs, and updated handshake logs to debug level to reduce verbosity. (#850, #837, #839)
  • Fixed hangs on shutdown and exit: Resolved issues that caused the node to hang during shutdown processes, ensuring smoother and more reliable operations. (#845, #816)

Complete Change Log

SHiP


P2P


Logging


System Compatibility


System Stability


Tests


Contributors

Special thanks to the contributors that submitted patches for this release:

Spring v1.0.1

12 Sep 17:38
5746507
Compare
Choose a tag to compare

This release introduces the V8 Snapshot format, which contains data missing from the V7 Snapshot format that may be needed to ensure continued syncing in some edge cases. Other changes include improvements to block production, replay, peer syncing, and deep-mind logging.

Note

Spring v1.0.1 cannot be loaded from V7 snapshots (created by Spring v1.0.0). It can load snapshot versions V6 and prior, as well as the new V8 snapshots. To upgrade a 1.0.0 node restarting from a compatible snapshot is required.

Notable Changes

  • Introduced V8 Snapshots to fix potential loss of ability to sync in some edge cases due to missing data in V7 Snapshots
  • Fixed bug in which block production could briefly pause after prior block producer missed their round
  • Replay with --force-all-checks now validates quorum certificates (QCs) in the block extension
  • P2P improvements to prevent unnecessary timeouts and redundant block requests
  • Improved deep-mind logging

Complete Change Log

Bug Fixes


P2P Improvements


Deep-mind


Tests


Other


Full Changelog: v1.0.0...v1.0.1

Contributors

Special thanks to the contributors that submitted patches for this release:

Spring v1.0.0

05 Sep 13:44
a8159fe
Compare
Choose a tag to compare

Antelope Spring is the successor to Leap as the C++ implementation of node software for blockchain networks based on the Antelope Protocol.

Spring 1.0.0 introduces Savanna consensus, which reduces time to finality from 3 minutes to 1 second under typical network conditions.

Also featured in Spring 1.0.0 is a significant reworking of the State History Plugin to improve performance, reliability, and support cross block chain consensus leveraging the faster finality of Savanna.

Note

To maintain IBC compatibility with EOS after it transitions to Savanna consensus, other Antelope chains will need to upgrade to a Savanna compatible IBC contract which depends on the activation of the BLS protocol feature that was first introduced in Leap v5.0.0.

Important Links

New License Terms

Antelope Spring is made available under the terms of a Business Source License which is automatically granted for all usages which are Directly in Service of or Materially Dependent on the EOS Blockchain Network. Full details of the license terms may be found in the LICENSE file. Parties seeking a License for other usages may inquire by contacting [email protected].

Release Notes

Notable Changes

A subset of the changes in this release may require node operators and downstream service providers to make configuration changes. At a glance, these include:

  • Introduced Savanna consensus
  • Changes to some HTTP response codes
  • Introduced new Snapshot format
  • Disabled State Log History compression
  • Introduced new State History configuration options
  • Introduced new Finalizer configuration options
  • Introduced new vote-threads option
  • Introduced new max-reversible-blocks option

For actionable details and recommendations concerning the above changes, please see the Spring 1.0.0 upgrade guide. For complete technical details, consult the Complete Change Log and related pull requests below.

Important

The following features have been deprecated in Spring v1.0.0 and will be removed in Spring v2.0.0:

  • The Prometheus plugin
  • count field in get_table_by_scope response

Please see the Deprecation Log for more information.

Complete Change Log

Introduced in Spring v1.0.0

Savanna consensus

Read more

Spring v1.0.0-rc3

29 Aug 14:03
c0c1aa4
Compare
Choose a tag to compare
Spring v1.0.0-rc3 Pre-release
Pre-release

Antelope Spring is the successor to Leap as the C++ implementation of node software for blockchain networks based on the Antelope Protocol.

Spring v1.0.0 introduces Savanna consensus, which reduces time to finality from 3 minutes to 1 second under typical network conditions.

Also featured in Spring 1.0.0 is a significant reworking of the State History Plugin to improve performance, reliability, and support cross block chain consensus leveraging the faster finality of Savanna.

Note

To maintain IBC compatibility with EOS after it transitions to Savanna consensus, other Antelope chains will need to upgrade to a Savanna compatible IBC contract which depends on the activation of the BLS protocol feature that was first introduced in Leap v5.0.0.

Important Links

New License Terms

Antelope Spring is made available under the terms of a Business Source License which is automatically granted for all usages which are Directly in Service of or Materially Dependent on the EOS Blockchain Network. Full details of the license terms may be found in the LICENSE file. Parties seeking a License for other usages may inquire by contacting [email protected].

Release Notes

Notable Changes

Spring v1.0.0-rc3 fixes several defects reported against Spring v1.0.0-rc2. The most notable changes include:

  • Improved liveness properties of consensus by modifying the rules that finalizers use to decide between voting strong vs weak
  • Updated safety.dat format to include checksum to detect possible corruption on startup
  • Modified behavior of max-reversible-blocks option to only pause production rather than shutdown
  • Fixed regression in v1.0.0-rc2 that allowed the node to sync too far ahead
  • Fixed crash when running SHiP during replay
  • Additional improvements to logging and tests

Complete Change Log

Changes in Spring v1.0.0-rc3

Stability

Tests

Maintainance

Logging

Full Changelog: v1.0.0-rc2...v1.0.0-rc3


Contributors

Special thanks to the contributors that submitted patches for this release:

Spring v1.0.0-rc2

20 Aug 20:17
09f89c3
Compare
Choose a tag to compare
Spring v1.0.0-rc2 Pre-release
Pre-release

Antelope Spring is the successor to Leap as the C++ implementation of node software for blockchain networks based on the Antelope Protocol.

Spring v1.0.0 introduces Savanna consensus, which reduces time to finality from 3 minutes to 1 second under typical network conditions.

Also featured in Spring 1.0.0 is a significant reworking of the State History Plugin to improve performance, reliability, and support cross block chain consensus leveraging the faster finality of Savanna.

Note

To maintain IBC compatibility with EOS after it transitions to Savanna consensus, other Antelope chains will need to upgrade to a Savanna compatible IBC contract which depends on the activation of the BLS protocol feature that was first introduced in Leap v5.0.0.

Important Links

New License Terms

Antelope Spring is made available under the terms of a Business Source License which is automatically granted for all usages which are Directly in Service of or Materially Dependent on the EOS Blockchain Network. Full details of the license terms may be found in the LICENSE file. Parties seeking a License for other usages may inquire by contacting [email protected].

Release Notes

Notable Changes

Spring v1.0.0-rc2 fixes several defects reported against Spring v1.0.0-rc1. The most notable changes include:

  • The invalid snapshots generated in rc1 have been fixed in rc2.
  • P2P changes were made fixing issues with frozen syncing observed in rc1

Important

The count field in the response to get_table_by_scope has been deprecated in this release and will be removed in Spring v2.0.0. See the Deprecation Log for more information.

Complete Change Log

Fixed in Spring v1.0.0-rc2

Snapshots

Syncing

Other

Full Changelog: v1.0.0-rc1...v1.0.0-rc2


Contributors

Special thanks to the contributors that submitted patches for this release:

Spring v1.0.0-rc1

15 Aug 16:32
a6327eb
Compare
Choose a tag to compare
Spring v1.0.0-rc1 Pre-release
Pre-release

Caution

This release (Spring v1.0.0-rc1) generates invalid snapshots and should not be used. Please use Spring v1.0.0-rc2.

Antelope Spring is the successor to Leap as the C++ implementation of node software for blockchain networks based on the Antelope Protocol.

Spring 1.0.0 introduces Savanna consensus, which reduces time to finality from 3 minutes to 1 second under typical network conditions.

Also featured in Spring 1.0.0 is a significant reworking of the State History Plugin to improve performance, reliability, and support cross block chain consensus leveraging the faster finality of Savanna.

Note

To maintain IBC compatibility with EOS after it transitions to Savanna consensus, other Antelope chains will need to upgrade to a Savanna compatible IBC contract which depends on the activation of the BLS protocol feature that was first introduced in Leap v5.0.0.

Important Links

New License Terms

Antelope Spring is made available under the terms of a Business Source License which is automatically granted for all usages which are Directly in Service of or Materially Dependent on the EOS Blockchain Network. Full details of the license terms may be found in the LICENSE file. Parties seeking a License for other usages may inquire by contacting [email protected].

Release Notes

Notable Changes

A subset of the changes in this release may require node operators and downstream service providers to make configuration changes. At a glance, these include:

  • Changes to some HTTP response codes
  • Introduced new Snapshot format
  • Disabled State Log History compression
  • Introduced new State History configuration options
  • Introduced new Finalizer configuration options
  • Introduced new vote-threads option

For actionable details and recommendations concerning the above changes, please see the Spring 1.0.0 upgrade guide. For complete technical details, consult the Complete Change Log and related pull requests below.

Deprecation Notices

The count field in the response to get_table_by_scope has been deprecated in this release, and will be removed in the next major version of Spring. See the deprecation schedule for more details.

Complete Change Log

Introduced in Spring v1.0.0

Notice

Disable state history log file compression to improve performance. Users who would like to compress files can use other methods outside of nodeos.


Protocol

Adds new chain_plugin option max-reversible-blocks. Specifies the maximum number of reversible blocks beyond current LIB to allow before the node is gracefully shutdown.
New chain api get_finalizer_info with information on finalizers and last votes.
Endpoint get_block_header_state updated for compatibility, and functionality reduced..


Performance

Improve k1 signing performance ~10%, upgrade libsecp256k.
Instead of placing the entire producer proposed schedule in the instant_finality_extension, only put a diff of the producer proposed schedule in the extension.
Instead of placing the entire finalizer set in the instant_finality_extension, only put a diff of the active finalizer policy in the extension.
Allow a larger number of proposer (producers) in Savanna from 125 to 64K. This matches the maximum number of allowed finalizers.
Improve state history performance by using a buffer for the de/compression pipeline.


Internals

Guard against throwing an error write_deatastream's destructor.
P2P to correctly report id of know pending blocks.
Versioning for Finalizer Safety Information file.
P2P to correctly report id of know pending blocks.
Update libsecp256k1 faster speed and matches what Bitcoin Core is using.
Move block time check in speculative mode above watermark check in production mode.
Improve Syncing to handle condition where blocks were received before being applied. Previously this condition caused the node to not ever request the next range of blocks.
cleos support for get_finalizer_info.
More robust syncing to handle unavailable blocks, when client does not have backing blocklog.
Only vote on recent blocks and simply voting by comparing time.
Switch to timestamp for better detection of most recent policy change.
Use lastest_qc_claim block_num in block header.
Add last_pending_finalizer_policy_generation into the finality digest calculation.
Update logic to use latest timestamp to pick winning fork, previously used block height.
Update finality digest adding level 3 commitments.
Update logic to use latest timestamp to pick winning fork, previously used block height.
Add timestamp and parent_timestamp to finality leaf nodes.
Require a QC (quorum certificate) on both finalizer policy sets (active and pending) before considering a QC to have reached quorum on a block with a pending finalizer policy change.
Switch to 2-chain for finality.
For the convenience of finality violation proofs, make the finality digest to commit to the root digest of a Merkle tree over a sequence of records extracted from the sequence of block_refs in the block_refs. This Merkle root digest is called reversible_blocks_root.
Remove unneeded snapshot_block_state_legacy_v7.
Revert previous changes to liveness rule. After evaluation the previous changes reduced liveness, and engineering identified a better solution.
Write out chain_head after vote_processor threads have stopped.
Reduce Log Spam on shutdown.
When a new finalizer policy or proposer policy is proposed in a block, the deep-mind logs should contain an entry associated with the block that contains the full policy (not just the diff). The keys within these policies should have string encoding.
To support ease of use SHiP, finality_data captures a new pending finality policy, including encoded public keys from pending finality data.
Move tracking of Savanna pending LIB into fork database. The fork database is in charge of tracking and persisting cached current pending Savanna LIB.
Refactor ForkDB to consolidate concept of HEAD and better track the pending irreversible block.
Validate QC by bitsize of votes.
More robust block log replay through refactoring head block state management.
Add hardened mode for reproducible builds.
Upgrade to clang v18 in Docker repeatable build. Improvements to reduce Docker build cache.
Clear out the state history log when Savanna transition is forked out.
Improve accuracy of state history by selectively including finalizer policy.
Add cases where we update peer syncing status to more accurately reflect peer syncing from us status.
Improved block id duplication logic to retain the correct state history with replay/resync.
Update application of finalizer policies to avoid edge cases.
[More efficient P2P eliminating multiple requests for the same ran...

Read more