github AntelopeIO/spring v1.2.0-rc1
Spring v1.2.0-rc1

latest releases: v2.0.0-dev1.3, v1.2.2, v2.0.0-dev1.2...
pre-release4 months ago

Warning

The variant of the bp peering gossip protocol in v1.2.0-rc1 is unsupported and will be superceded by 1.2.0-rc2.

v1.2.0-rc1 introduces a major advancement in peer-to-peer networking with the rollout of a gossip-based block producer auto-peering system. This feature enables block producers to dynamically discover and connect with each other, forming a resilient consensus mesh that adapts to changes such as new node deployments, protocol hard fork upgrades, or ranking shifts — eliminating the need for manual connection configuration.

Notable Changes

Gossip-Based Auto-Peering for Block Producers
Introduces automated discovery and connection among block producers using a gossip protocol, enhancing network resilience and reducing manual configuration.

Elimination of Duplicate P2P Connections
Enhances network efficiency by preventing redundant peer connections, ensuring optimal resource utilization.

Expanded P2P Buffer Sizes
Increases send and receive buffers to 1MB, improving throughput and reducing latency in peer communications.

Enhanced Peer Logging Options
Configurable peer log formats, Provide more flexibility and clarity in monitoring peer interactions.

Snapshot Information Utility
Added a spring-util command to print snapshot information.

Complete Change Log

Here is the categorized list of the provided pull requests:


Enhancements

  • PR #1208: Add new peer log format options.
  • PR #1244: Update P2P auto block producer peer for Savanna.
  • PR #1237: Add spring-util command to print snapshot info.
  • PR #1228: Retrieve peers' public keys from chainbase database.
  • PR #1250: Add --dry-run option for push action.
  • PR #1284: Hide max_action_return_value_size in get_consensus_parameters when feature not activated.
  • PR #1308: Eliminate duplicate P2P connections.
  • PR #1328: Allow interruption of read-only transactions via ctrl-c.
  • PR #1316: Update peer_keys_db_t to match changes in eos-system-contracts PR 185.
  • PR #1330: Interrupt speculative transaction when block is received.
  • PR #1385: Log if not producing because of stale production
  • PR #1399: Do not interrupt apply_block on a received block if applying to head


Optimizations

  • PR #1148: Store packed block in signed_block to improve performance.
  • PR #1164: Validate finality mroot of Savanna blocks as part of header validation.
  • PR #1206: Improve hash function for chain::name.
  • PR #1207: Increase P2P send/receive buffer to 1MB.
  • PR #1223: Avoid thread hop on incoming blocks.
  • PR #1367: Add missing std::move() calls and use variants type consistently.
  • PR #1403: Optimize fork database open/read
  • PR #1412: use a global merkle thread pool to avoid creation and destruction of threads every block
  • PR #1415: Avoid copying action when computing action digest


Bug Fixes

  • PR #1159: Bump bls12-381 submodule to fix its assembly usage.
  • PR #1271: Change log message when computing integrity hash.


Tests

  • PR #1168: Add common method for registering different test types.
  • PR #1178: Switch to using eos-system-contracts in libtester tests.
  • PR #1249: Bump sanitizers to clang20.
  • PR #1270: Fix incorrect names (preActivate instead of activate) and add debugging info.
  • PR #1275: Reduce performance test number of read-only transactions to reduce CI/CD strain.
  • PR #1272: Do not exit on error when evaluating fork.
  • PR #1274: Ensure finalizercNode is synced up before killing node0.


Other

  • PR #1230: Remove unneeded static variable reference.
  • PR #1246: Avoid memset and memcpy on non-trivially copyable fc::variant to eliminate warnings.
  • PR #1264: Bump bn256 submodule with minor changes related to C++20, CI, and BMI2 usage.
  • PR #1294: Replace leftover instance of "EOSIO" with "Spring" in cleos help text.
  • PR #1295: Remove empty file.
  • PR #1357: Use std::future directly with asio, removing the need for std::packaged_task.
  • PR #1374: Add vaulta_genesis file
  • PR #1395: Allow any executor for post_async_task()
  • PR #1396: Remove C++20 ifdefs in merkle.hpp
  • PR #1402: Update logging.json GELF example


Full Changelog: v1.1.3...v1.2.0

Don't miss a new spring release

NewReleases is sending notifications on new releases.