Skip to content

Releases: AntelopeIO/spring

Spring v1.1.0-rc2

12 Feb 20:06
b3bf62e
Compare
Choose a tag to compare
Spring v1.1.0-rc2 Pre-release
Pre-release

The second release candidate for Spring v1.1.0 fixes an issue discovered during replay testing.

Note

Any node that had previously upgraded to v1.1.0-rc1 should restart from a v1.0.x snapshot after upgrading to v1.1.0-rc2.

Complete Change Log

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

Spring v1.1.0-rc1

05 Feb 13:48
dcb9cc9
Compare
Choose a tag to compare
Spring v1.1.0-rc1 Pre-release
Pre-release

Warning

v1.1.0-rc1 has a known issue that impacts the integrity of state. Do not upgrade to rc1 (wait for next release).

Spring v1.1.0-rc1 reduces bandwidth usage, streamlines block handling, and adds support for designated smart contracts to leverage EOS VM OC for higher performance.

Notable Changes

  • Optimized P2P Block Propagation: Introduced a Block Nack feature to reduce bandwidth usage and enhance sync efficiency during block propagation.
  • Enhanced Block Processing Efficiency: several improvements, including deduplication of redundant posts and notifications for new blocks.
  • Pause at Block: Introduced the ability to pause execution at a specified block height. This allows operators to halt processing at a predefined block for debugging, upgrades, or controlled synchronization.
  • Optimized EOS VM OC for Designated Smart Contracts: Added an option to whitelist specific account suffixes for EOS VM OC execution during block production.

Upgrade Procedure

Upgrading from Spring 1.0.1+ requires no manual upgrade procedure. Simply stop nodeos, install 1.1.0, and relaunch nodeos.

New Config Options

Manage OC Whitelist

eos-vm-oc-whitelist

  • Description: Specifies account suffixes to whitelist for eos-vm-oc, allowing designated smart contracts to bypass subjective limits and improve execution performance.
  • Usage:
    The default value of eos-vm-oc-whitelist is xsat. If xsat is not desired, then an alternative must be specified. If there is a desire to not whitelist any accounts, then use eosio.null or any other account without a contract. Restart your node for changes to take effect.
  • Example:
    To whitelist accounts ending in .suffix1 and .suffix2, and remove the default value of ".xsat" accounts:
    eos-vm-oc-whitelist suffix1 suffix2


Disable Optimized Block Propagation

p2p-disable-block-nack

  • Description: The Block Nack feature optimizes P2P communication by reducing bandwidth usage and improving block synchronization efficiency.
  • Usage:
    The Block Nack feature is enabled by default. It can be disabled by adding the p2p-disable-block-nack = true option to your configuration file (config.ini) and restart your node for changes to take effect.
  • Example:
    To disable efficient block propagation:
    p2p-disable-block-nack = true


Specify a Transactions-Only Endpoint

p2p-listen-endpoint

  • Description: Configures a P2P endpoint to accept only transaction traffic.
  • Configuration:
    Add the following to your config.ini or command line:
    p2p-listen-endpoint = <host>:<port>:trx
    
  • Example:
    To create a transactions-only endpoint on port 9876:
    p2p-listen-endpoint = 0.0.0.0:9876:trx
    


Complete Change Log

Optimized Block Propagation


Optimized Block Processing


OC for Designated Smart Contracts


Logging


Tests

Read more

Spring v1.0.4

22 Jan 20:16
38ce41f
Compare
Choose a tag to compare

Spring v1.0.4 is a patch release focused on system stability, performance enhancements, and accurate logging to facilitate better monitoring and maintenance.

Note

This release patches a security vulnerability affecting API nodes. All public API nodes should upgrade to mitigate a possible denial of service vector.

Notable Changes

  • Fast Shutdown in Irreversible Mode: Implemented a mechanism for swift and safe system termination when operating in irreversible mode.
  • Memory Usage During Sync: Advance fork database root correctly when the LIB exceeds HEAD during sync, keeping memory within expected limits.
  • Smoother Syncing with Tight Fetch Span: Resolved issues causing nodes to become stuck during synchronization with tight sync-fetch-span settings.
  • Accurate Peer Connection Logging: Corrected the peer connections count in logs to reflect only active connections.
  • Security Patch: public API nodes should upgrade to avoid a possible denial of service vector.

Complete Change Log

Performance


P2P


Tests


Other


PR List

Contributors

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

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