github AntelopeIO/leap v4.0.0-rc2
Leap v4.0.0-rc2

latest releases: v5.0.3, v5.0.2, v4.0.6...
pre-release2 years ago

Antelope Leap v4.0.0 release focuses on optimizing node performance, improving block propagation, scheduling future snapshots, adding read-only transactions, and improving performance of EVM related functions.

📝 v4.0.0-rc2 is the first release candidate of 4.0.0 due to an issue discovered in a tagged but not released 4.0.0-rc1.

Leap v4.0.0-rc2 Release Notes

New features

Read-Only Transactions

PRs

  • (558) Introduce new read-only transaction RPC endpoint


We have introduced a RPC endpoint for sending read-only transactions. A read-only transaction does not change the state and is not added into the blockchain (chainbase). It is useful for users to retrieve more complex chain information.

The format is the same as regular transaction, except it does not contain authorization section. Mechanisms are in place to ensure actions (including inline actions) in a read-only transaction do not modify the state and deepmind logging is not performed.

The RPC URL is v1/chain/send_readonly_transaction

Cleos is updated to send read-only transactions:

  • cleos push transaction --read <transaction>
  • cleos push action --read <action>

New producer_plugin logging categories are added for transient transactions (dry-run (by compute_transaction) and read-only transactions). They are transient_trx_success_tracing and transient_trx_failure_tracing . Existing transaction_success_tracing and transaction_failure_tracing do not include the logging for transient transactions.

max_action_return_value_size is not enforced for read-only transactions.

Auto-peering with schedule proximal BP nodes

PRs

  • (744) Add auto bp peering functionality


We've added a config option to automatically manage connections based on the BP schedule. Node order and peering can impact a node's latency to receive last block of the preceding BP, and to send their last block to the next BP. Ideally Block Producers:

  • receive the last block of the previous round as soon as possible
  • send their last block to the next Block Producer as soon as possible
  • avoid getting a late start on their block production

To achieve these goals, the following changes were made in v4.0.0:

Correlate BP account names and connection details

--p2p-auto-bp-peer has been added to nodeos to allow a node to correlate BP account names to p2p connection details. When a block producer node with this setting detects a pending schedule change, it will attempt to auto-peer with BPs that have come into schedule proximity, and disconnect from any auto-peered BPs that are no longer in schedule proximity. These auto-peered connections are not subjected to the limit specified by the --max-clients option.

BP Peer flag in net api

is_bp_peer has been added to every connection object in the v1/net/connections api endpoint response.

Snapshot Scheduling API

PRs

  • (131) Proposal for a snapshot scheduling API
  • (759) Programmable snapshots API


The Snapshot Scheduling API added in Leap v4.0.0 allows users to schedule and manage snapshot requests in advance, increasing reliability and reducing the potential for errors in the snapshot creation process. It also allows for greater flexibility in creating and managing snapshots, as users can specify parameters such as start and end blocks and block spacing.

The API provides endpoints for several features:

  • /producer/schedule_snapshot: Add a task to perform snapshots
    • Parameters: start_block, end_block, block_spacing, snapshot_description
  • /producer/get_snapshot_requests: Return all scheduled snapshot requests
  • /producer/unschedule_snapshot: Remove a previously scheduled snapshot task
    • Parameters: snapshot_request_id

For more details, check out the Snapshot Scheduling API Design Specs.

Prometheus Exporter Plugin

PRs

  • (537) Instrument producer_plugin for Prometheus


Instrumentation of nodeos plugins to expose data with Prometheus. An initial phase of instrumentation will allow for the evaluation of the usability of the instrumentation when viewed from Prometheus. The initial instrumentation will not include any per account or per contract metrics. Additionally, the ability to expire metrics will not be included in the initial phase. To support dynamic metrics, the metric object for each plugin will include an indicator of when the set of metrics has last changed. The following metrics will be collected for the initial phase of instrumentation:

Net Plugin
gauge - number of clients
gauge - number of peers
gauge - number of dropped blocks

Producer Plugin (Producer plugin metrics will be gathered at the start of each block)
gauge - unapplied transaction queue sizes (number of transactions)
counter - blacklisted transactions count (total)
counter - blocks produced
counter - transactions produced
gauge - last irreversible
gauge - current block num
gauge - subjective billing number of accounts
gauge - subjective billing number of blocks
gauge - scheduled transactions

See the Prometheus Plugin Architecture for more details.

Log Splitting

PRs

  • (532) block log partition functionality
  • (628) SHiP stability fixes, log splitting, and memory usage improvements


Leap v4.0.0 includes two similar features aimed at giving node operators greater control over how important logs for blocks and state are managed: blocks log splitting and state history log splitting. The key benefit of these features is that it allows users to specify how many split log files to retain, and automates aging out older logs by deleting them or moving them another directory.

Blocks Log Splitting

To make it easy to use block log splitting, we've added some new options for the chain plugin:

  • blocks-log-stride allows you to split the block log file when the head block number is the multiple of the stride. When the stride is reached, the current block log and index will be renamed 'blocks--.log/index', and a new current block log and index will be created with the most recent block. All files following this format will be used to construct an extended block log.
  • max-retained-block-files alows you to specifiy the maximum number of block files to retain so that the blocks in those files can be queried. When the number is reached, the oldest block file would be moved to an archive directory or deleted if the archive directory is empty. It's important to note that the retained block log files should not be manipulated by users.
  • Two new options allow you to configure the locations of blocks log directories, we've added two new options:
    • blocks-archive-dir allows you to specify the location of the blocks archive directory (absolute or relative path). If the value is empty, blocks files beyond the retained limit will be deleted. Files in the archive directory won't be accessed by nodeos anymore.
    • blocks-retained-dir allows you to specify the location of the blocks retained directory (absolute or relative path). If the value is empty, it is set to the value of the blocks dir.

Please note that all of the newly added options cannot be specified together with the --block-log-retain-blocks option. Overall, we believe that the Blocklog splitting feature and its associated options will help you better manage your block logs and improve the efficiency of your nodeos instance.

SHiP Log Splitting

To make it easy to use SHiP Log Splitting, we've added some new options for the state history plugin:

  • state-history-stride allows you to split the state history log file when the block number is the multiple of the stride. When the stride is reached, the current history log and index will be renamed '*-history--.log/index', and a new current history log and index will be created with the most recent blocks. All files following this format will be used to construct an extended history log.
  • max-retained-history-files allows you to specify the maximum number of state history log file groups to retain so that the blocks in those files can be queried. When the number is reached, the oldest log files would be moved to an archive directory or deleted if the archive directory is empty. The retained log files should not be manipulated by users.
  • state-history-retained-dir allows you to specify the location of the state history retained directory (absolute path or relative to state-history dir). If the value is empty, it is set to the value of the state history dir.
  • state-history-archive-dir allows you to specify the location of the state history archive directory (absolute path or relative to state-history dir). If the value is empty string, log files beyond the retained limit will be deleted. All files in the archive directory are completely under user's control, i.e. they won't be accessed by nodeos anymore.

Please note that all of the newly added options cannot be specified together with the --state-history-retain-num option. Overall, we believe that the SHiP Log Splitting feature will help you better manage your state history log files and improve the efficiency of your nodeos instance. We look forward to seeing how this feature will benefit the Leap community.

Performance improvements

Parallelize Read-Only Transaction Execution

PRs

  • (776) Parallelize Read-only Transaction Execution


Regular read-only transactions are executed sequentially on the main thread. To take advantage of multi-core architecture, offloading them from the main thread and executing them multi-threaded will make more time for the main thread and improve throughput of read-only transactions.

We have implemented a feature to parallelize read-only transaction execution. The design is documented in https://github.com/eosnetworkfoundation/product/blob/main/transactions/read-only/parallel.md.

When this feature is enabled, the node toggles between write and read windows. In the write window, the node operates normally, except read-only transactions are queued for later parallel execution in the read window. In the read window, the queued read-only transactions are executed in a dedicated thread pool, while operations safe to read-only transaction execution are executed on the main thread.

New configuration options are

  --read-only-threads arg (=0)          Number of worker threads in read-only
                                        transaction execution thread pool
  --read-only-write-window-time-us arg (=200000)
                                        time in microseconds the write window
                                        lasts
  --read-only-read-window-time-us arg (=60000)
                                        time in microseconds the read window
                                        lasts

If --read-only-threads is not configured or configured to 0, this feature is not enabled; read-only transactions are executed on the main thread.

--read-only-threads is not allowed on a producer node.

--read-only-read-window-time-us must be greater than --max-transaction-time.

Lighter Validation for Relays

PRs

  • (543) [3.1] Interrupt speculative start_block when a block is received
  • (590) Propagate block after header validation
  • (648) [3.1 -> 3.2] Interrupt speculative start_block when a block is received
  • (649) backport #648


This feature aims to reduce the latency of block propagation by enabling nodes to relay blocks before fully validating or computing state, as long as certain conditions are met. With this new feature, nodes can immediately process received blocks after validating their headers, even when there is a backlog of pending transactions. Additionally, the new implementation includes optimizations for broadcast blocks behavior and peer_block_state_index, further improving block propagation times. The goal of lighter validation on relays is to reduce the latency of block propagation.

Other Multithread Support

PRs

  • (727) SHiP move client handling off the main thread
  • (696) Move get_block abi serialization off the main thread


We have moved more tasks out from the main thread and process them in separate threads:

  • block_log has been made thread safe.
  • net_plugin updated to use thread safe block_log from net threads instead of having to post onto the main thread for processing.
  • SHiP writes to the state history logs on the main thread, but reads from them on the SHiP thread. The state history logs have been made thread safe.
  • /v1/chain/get_block performance has been significantly improved by moving abi serialization off the main thread.

Other changes

Faster bilinear group cryptography library for EVM support

PRs

  • (461) Replace implementation of alt_bn128 host functions with faster bn256 library


The Ethereum Virtual Machine on EOS requires bilinear group cryptography. The libff and bn256 libraries were benchmarked against each other. Each test run used the same 10 pairs of points as input and run through the same initialization and pairing. The bn256 library was selected as most performant, and ported into Antelope Leap v4.0.0.

Building, compatibility, and upgrading

Upgrading from prior releases

To upgrade from Leap 3.X.X to Leap 4.0.0:

  • Install Leap v4.0.0
  • Edit config.ini and remove any set configuration items that no longer exist in v4.0.0 :
    • nodeos read-mode=speculative, read-mode=read-only, disable-api-persisted-trx, private-key, https-client-root-cert, https-client-validate-peers, https-server-address, https-certificate-chain-file, https-private-key-file, https-ecdh-curve, plugin=eosio::trx_test_gen_plugin, txn-reference-block-lag, txn-test-gen-threads, txn-test-gen-account-prefix, txn-test-gen-expiration-seconds, txn-test-gen-stop-on-push-failed, plugin=eosio::login_plugin, max-login-requests, max-login-timeout.
    • keosd yubism-url, yubism-authkey, https-server-address, https-certificate-chain-file, https-private-key-file, https-ecdh-curve.
  • Restart the binaries while pointing to the same data directories and the updated config
    • Persisted data files used by Leap v3.1.X and v3.2.X are compatible with Leap v4.0.0.

Feature Lifecycle Updates

Removed features in v4.0.0

Speculative mode

WARNING Previously with read-mode=speculative a transaction submitted to an API node would maintain any state changes for subsequent transactions submitted to the same API node. For example, create a new account in one transaction and then transfer to that account in a subsequent transaction. This typically worked with read-mode=speculative but no longer will work under read-mode=head. Now the transfer transaction will need to wait for the block with account creation to be created by a block producer and then applied locally before the transfer would be allowed.

PRs

  • (414) [4.0] Remove read-mode speculative & disable-api-persisted-trx


The use of read-mode=speculative caused confusion for users by showing a false state of executed transactions, which is different from any other node. In v4.0.0 of Leap, the speculative read mode was removed and only head or irreversible modes are now available. The disable-api-persisted-trx option was also removed as persisted transactions are no longer supported. The deprecated read-mode=read-only was replaced with a combination of options for better control:

  • read-mode=head
  • p2p-accept-transactions=false
  • api-accept-transactions=false

These changes better reflect the actual state of execution, reduce user confusion, and improve control over transaction behavior by introducing more clearly defined options.

HTTPS in nodeos and keosd

PRs

  • (745) Remove HTTPS support from nodeos & keosd


  • removed HTTPS support (and code) from http_plugin
  • removed HTTPS support (and code) from http_client_plugin (mostly in libfc)
  • removed OpenSSL::SSL from libraries/libfc/CMakeLists.txt

Direct YubiHSM support

PRs

  • (306) [4.0] remove YubiHSM support from keosd


The original implementation of YubiHSM support required additional dependencies, complicated the build process, lacked sufficient automated testing, and prevented natively building Leap for ARM on macOS. Leap v4.0.0 removes support for YubiHSM.

Transaction Generator

PRs

  • (634) Remove trx_test_gen_plugin


The old txn_test_gen_plugin was deprecated in favor of the new trx_generator. Tests previously using txn_test_gen_plugin were updated to use trx_generator. Additionally, performance tests and configuration options were added to trx_generator.

Login Plugin

PRs

  • (278) [4.0] remove login_plugin


The Login Plugin (login_plugin) appears to be an abandoned demo/prototype/PoC from early EOSIO implementations. It was removed in Leap v4.0.0.

Blocklog Utility

PRs

  • (802) [4.0] remove eosio-blocklog


The deprecated eosio-blocklog program blocklog-util has been removed in v4.0.0, please use leap-util block-log instead. Output file names have changed when using leap-util block-log extract-blocklog. The file names now include the start and end block numbers as a suffix. For example, blocks-100-200.log and blocks-100-200.index.

Example 1

eosio-blocklog --as-json-array --blocks-dir .

...is now...

leap-util block-log print-log --as-json-array --blocks-dir .

Example 2

eosio-blocklog --trim-blocklog -f 1 -l 100 --blocks-dir .

...is now...

leap-util block-log trim-blocklog -f 1 -l 100 --blocks-dir .

Example 3

eosio-blocklog --extract-blocks -f 1 -l 100 --blocks-dir . --output-dir newdir

...is now...

leap-util block-log extract-blocklog -f 1 -l 100 --blocks-dir . --output-dir newdir

Private-key nodeos config

PRs

  • (798) [4.0] Remove deprecated --private-key option from nodeos


The private-key nodeos config was deprecated since EOSIO v1.0.0 and is now removed in favor of signature-provider nodeos config.

For example:

--private-key [\"EOS6hMjoWRF2L8x9YpeqtUEcsDKAyxSuM1APicxgRU1E3oyV5sDEg\",\"5JgbL2ZnoEAhTudReWH1RnMuQS6DBeLZt4ucV6t8aymVEuYg7sr\"]

Becomes:

--signature-provider EOS6hMjoWRF2L8x9YpeqtUEcsDKAyxSuM1APicxgRU1E3oyV5sDEg=KEY:5JgbL2ZnoEAhTudReWH1RnMuQS6DBeLZt4ucV6t8aymVEuYg7sr

Cleos send transaction --read-only

PRs

  • (776) [4.0] Parallelize Read-only Transaction Execution


--read-only option is removed in cleos send transaction command. Use --dry-run instead for compute_transaction

eosio-launcher

PRs

  • (192) [4.0] Port eosio-launcher to Python


eosio-launcher is removed and replaced by launcher.py.

Remove deprecated abi serialization/deserialization endpoints

Remove the deprecated endpoints:

  • /v1/chain/abi_bin_to_json
  • /v1/chain/abi_json_to_bin
PRs

  • (797) Remove deprecated /v1/chain/abi_bin_to_json and /v1/chain/abi_json_to_bin


All deprecated features, not yet removed

fc and wasm-spec-tests repos

Due to limited cases for fc and wasm-spec-tests have been integrated directly into leap repository. Further development on related code will occur directly in the leap repository and the only development that will occur within the fc and wasm-spec-tests repositories are critical bug fixes that are necessary to support Leap 3.1 patches. The fc and wasm-spec-tests repositories will be archived in an upcoming version of Leap.

Ubuntu 18.04 Support

Support for Ubuntu 18.04 will be removed in an upcoming version of Leap. Please use Ubuntu 20.04 or 22.04.

More Information

The latest state of deprecations for Leap can be found by visiting our deprecations and proposed deprecations page.

Further details on changes since last release

Contributors

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

Full list of changes since last release

PRs

v4.0.0-rc1:

  • (27) [PH] Added initial version of the TPS tester
  • (45) [PH] Added unit tests for the tps_tester
  • (40) [PH] Capture data and create usable data structures storing data in performance_test_basic.py
  • (50) [PH] Performance harness cluster configurable logging
  • (81) [PH] Refactored the trx_generator main code
  • (110) [PH] Added tps_performance_monitor
  • (92) [PH] Update to test harness python package
  • (100) [PH] Refactor and Separate Python Script for Performance Harness
  • (129) [PH] Nodeos log scraping test
  • (140) [PH] Integrate tps_performance_monitor into trx_generator program
  • (147) [PH] Add TPS scoring
  • (161) [PH] Add numpy dependency installation to Dockerfile for ubuntu20
  • (159) [PH] Updated logging for trx_generator
  • (160) [PH] Update Python Perf Harness to run CI/CD configuration.
  • (177) [PH] Added early termination status
  • (181) [PH] Add testing around TPS scoring implementation.
  • (164) [PH] Export Performance Harness Results as JSON
  • (193) [PH] Break out chain data section knowledge into chainGuide.
  • (233) [PH] Migrate numpy to ubuntu pkg
  • (237) [PH] Performance harness graceful shutdown
  • (232) [PH] Add calculating and reporting on block size over time during test.
  • (213) [PH] Performance harness multiple generators
  • (261) [PH] Cluster: Node Specific Logging Levels
  • (267) [PH] Calculate & Report Transaction Latency Stats
  • (285) [PH] Add support for calculating and reporting individual transaction CPU and net time
  • (304) [PH] Add some additional parameters to performance harness output
  • (314) [PH] Add method to wait and check blocks for transactions
  • (302) [PH] TPS Scenario Runner
  • (352) [PH] Performance Harness MVP Documentation
  • (360) [PH] Report start end times for tests
  • (361) [PH] Add option to quiet reporting from performance tests.
  • (385) [PH] Add ability to configure whether producer nodes enable trace api plugin
  • (387) [PH] Perf Harness test updates
  • (391) [PH] Performance Test - Long running Tests to use linear search
  • (398) [PH] Perf harness wait for transactions in block
  • (393) [PH] Default perf harness to saving logs
  • (402) [PH] Launch Trx Generators updates
  • (445) [PH] merge main
  • (446) [PH] Update producer node configurations for performance
  • (447) [PH] Consolidate some of the arguments to log_reader.py's calcAndReport
  • (454) [PH] Fix links to test report sections.
  • (455) [PH] Fix links to Build and Install From Source directions.
  • (456) [PH] README updates.
  • (457) [PH] README updates
  • (460) [PH] merge main
  • (474) [PH] Add argument to configure --chain-state-db-size-mb and default to 10GB
  • (476) [PH] Update performance harness to main
  • (522) [PH] Update response order and truncate when printing.
  • (489) [PH] fix trx gen err detection
  • (496) [PH] Remove argument to disable resmon shutdown.
  • (514) [PH] Performance harness remove unnecessary throw chains
  • (519) [PH] main merge
  • (527) [PH] test tweaking
  • (528) [PH] Test tweaking - Decrease perf expectations for lower performing vms in CI/CD
  • (350) [PH -> main] Performance Harness MVP [PH]
  • (570) [4.0] [PH] enable compatibility for 2.0 and 2.1 nodeos on performance tests.
  • (303) [3.2 -> main] Merge version bump of 3.2.0-rc1
  • (306) [4.0] remove YubiHSM support from keosd
  • (278) [4.0] remove login_plugin
  • (309) [3.2 -> main] Test fix: trx_finality_status_forked_test.py
  • (321) [3.2 -> main] Update produced block log output.
  • (336) [3.2 -> main] Test fix: nodeos_forked_chain_lr_test
  • (337) [3.2 -> main] Return application/json for all http responses including errors
  • (339) [3.2 -> main] Test fix: api_tests checktime_pause_block_deadline_not_extended_test
  • (349) [3.2 -> main] SHiP Fix log output
  • (334) [4.0] SHiP: Store initial chain state on startup if state_history_plugin chain state log is empty
  • (362) [3.2 -> main] Leap util blocklog updates
  • (369) [3.2 -> main] Remove replay optimization that skips recording transactions in dedup list
  • (376) [ main ] update libfc path in EosioTesterBuild.cmake.in for building integration tests in CDT and System Contracts
  • (375) Complete Build Instructions + Other README Updates
  • (381) [3.2 -> main] Curate eos.io refs and remove unused doc metadata [docs]
  • (388) [3.2 -> main] Warning message for trx being dropped due to high traffic
  • (390) [3.2 -> main] Clear expired transactions before snapshot and integrity hash
  • (407) [3.2 -> main] Changed default error handler to print help in cli apps by default
  • (408) [3.2 -> main] Use error log instead of warning log when resource_monitor exceeds threshold
  • (401) don't triage new issues if they're already assigned to a project
  • (412) [4.0] Update eos-vm
  • (415) [3.2 -> main] fix threading on state_history shutdown leading to hung nodeos shutdown
  • (417) [3.2 -> main] Enable new CLI11 LeapFormatter for both cleos and leap-util
  • (423) [3.2->main] merge original release/3.1.3 version bump PR
  • (379) CPack: fix separator in depends field of debian dev pacakge.
  • (425) [(whoops)] CPack: fix separator in depends field of debian dev pacakge
  • (426) [3.2->main] Merge release/3.2 rc2 version bump to Main
  • (427) [3.2 -> main] (noop) update libfc path in EosioTesterBuild.cmake.in for building integration tests in CDT and System Contracts
  • (431) [3.2 -> main] (noop) Cpack fix debian dev package dependancies main
  • (437) work around abieos test failure on ARM float min/max roundtrip to and from string in JSON parsing
  • (439) [3.2 -> main] change the HTTP Server header to be nodeos/keosd version
  • (448) [3.2 -> main] Fix test failure due to trx hitting near end of block production time
  • (450) [4.0] Added snapshot to-json subcommand to leap-util
  • (449) Wall fix
  • (414) [4.0] Remove read-mode speculative & disable-api-persisted-trx
  • (453) [PH] Remove --dump-error-detail test arg
  • (444) [4.0] Use libcurl for cleos
  • (463) [4.0] remove platform root CA population for TLS connections
  • (442) [4.0] replace usage of curl in python with urllib
  • (462) Remove --dump-error-details from all tests in tests/CMakeLists.txt
  • (465) [4.0] refactor boost::beast::string_view to std::string conversion for changes in boost 1.81
  • (464) [4.0] resolve path ambiguous overload in boost 1.81
  • (487) [3.2->main] compute_transaction: add --dry-run, deprecate --read-only, and sign a transaction only when explicitly requested
  • (491) [3.2 -> main] Use net_plugin_impl logger instead of default logger
  • (502) [3.2->main] Merge release/3.2 version bump to Main
  • (499) libfc cleanup
  • (505) [3.2 -> main] Added validation of plugin configuration for deep-mind
  • (492) clean up compute_transaction: replace read_only flag with dry_run, refactor trx_type in transaction_metadata and transaction_context
  • (507) [4.0] add libcurl to README build instructions
  • (512) Fixed broken cleos due to reuse of curl handle
  • (268) [4.0] Regression test for: fix replay to correctly add trxs into the de-dup list
  • (524) [4.0] nodeos_snapshot_diff_test fix
  • (531) Fixed test harness crash when actiob_traces is empty
  • (536) [3.2 -> main] Test nodeos_forked_chain_test: Fix race on kill of bridge node
  • (540) Handle shutdown of http_plugin lifetime
  • (556) Set keosd max http response time to unlimited
  • (560) [3.1 -> main] Do not run maintenance task on shutdown
  • (567) [3.2 -> main] Fix Test: Specify a large time limit for cleos get table
  • (539) Update management of in_flight bytes in http_plugin
  • (578) Fix trx_generator warnings
  • (580) revert to previous appbase version
  • (562) Include subjective cpu limit in trx deadline
  • (563) Adds support for a 'state-dir' command line option in chain_plugin.
  • (466) [4.0] Use leap's cli11 as submodule for leap-util and cleos
  • (461) Replace implementation of alt_bn128 host functions with faster bn256 library
  • (575) Small Misc python test improvements
  • (594) Fix for mulit-producer run of performance test
  • (581) Include additional info in tx_cpu_usage_exceeded exceptions
  • (589) Fixes Producer Plugin Schema Fixes and Better Alignment with OpenAPI spec
  • (495) Fix undefined behavior - uninitialized variables revealed by valgrind
  • (597) [3.2 -> main] Update nodeos options help usage [docs]
  • (609) Fix nodeos v2 performance harness support
  • (614) fix spelling of "parameters" in cleos' set action permission
  • (616) [3.2 -> main] Attempt connection retry for duplicate connections
  • (557) CLI11: Use inherited option vs duplicating it in leap-util (blocklog)
  • (607) Tests: Add is_code_cached and use in tests to verify
  • (584) Subjectively bill for failed transactions during block production
  • (630) Update abieos to head of main
  • (603) Add timer on http listener to avoid fast looping on accept
  • (634) Remove trx_test_gen_plugin
  • (638) [3.2 -> main] Backport SHiP fixes from eosio/eos release/2.2.x
  • (649) [3.2 -> main] Interrupt speculative start_block when a block is received
  • (639) Working to fix nodeos_snapshot_diff_test by sync on trx gen startup
  • (655) [3.2->main] Merge 3.1.4 version bump to main
  • (658) [3.2 -> main] Merge 3.2.1 version bump to main
  • (664) add missing include statements for gcc13 (libstdc++13)
  • (632) Add handling of exceptions to named_thread_pool
  • (612) Add test contract code for existing abi/wasm and clean up libraries/testing & unittests dependencies
  • (665) net_plugin: add delay when accept() fails with too_many_files_open
  • (667) [3.1] Test fix: nodeos_forked_chain_lr_test
  • (670) [3.1 -> 3.2] Test fix: nodeos_forked_chain_lr_test
  • (671) [3.2 -> main] Test fix: nodeos_forked_chain_lr_test
  • (590) Propagate block after header validation
  • (676) [3.1] net_plugin improve block latency calculation
  • (681) [3.1 -> 3.2] net_plugin improve block latency calculation
  • (682) [3.2 -> main] net_plugin improve block latency calculation
  • (663) SHiP: add delay when accept() fails with too_many_files_open
  • (686) clear executable flag on a couple source files
  • (684) [3.1] Fix --terminate-at-block to stop at correct block
  • (691) [3.1 -> 3.2] Fix --terminate-at-block to stop at correct block
  • (694) Log exception details for failed transactions
  • (693) [3.2 -> main] Fix --terminate-at-block to stop at correct block
  • (687) named_thread_pool template description for debugger
  • (697) Producer Plugin: Add block number to account_failures::report()
  • (636) Update appbase/plugins to support multiple instances/exe
  • (705) bump appbase to the latest for clang compile errors
  • (700) [3.1] Fix reporting of dirty db
  • (708) [3.1 -> 3.2] Fix reporting of dirty db
  • (710) [3.2 -> main] Fix reporting of dirty db
  • (714) [3.2] Fix SHiP stability
  • (712) GH-711 Update dependencies to include numpy.
  • (704) Add absolute value threshold to resource monitor
  • (717) bump appbase to the latest version for fixing test failures
  • (696) Move get_block abi serialization off the main thread
  • (715) [3.2 -> main] Fix SHiP stability
  • (718) Change INCBIN to INCTXT for abi in tests to fix invalid read
  • (724) merge bn256 submodule change
  • (732) Update leap to use new appbase version.
  • (729) Test: Provide a bit more time for the contract to be cached.
  • (728) Optimize json parsing
  • (739) remove unused boost/bind.hpp include that generates a warning
  • (742) Revert interface change of abi_serializer for tester
  • (747) [3.1] Backport to 3.1 of bootstrap new protocol features activation
  • (748) [3.1 -> 3.2] Backport to 3.2 of bootstrap new protocol features activation
  • (750) [3.2] Avoid logging errors when client disconnects after request (GH #530)
  • (751) [3.2 -> main] New protocol features activation was added to the bootstrap process
  • (752) Move initialization of logging before plugin_initialize
  • (755) [3.2 -> main] Avoid logging errors when client disconnects after request (GH #530)
  • (558) Introduce new read-only transaction RPC end point
  • (766) [PH] Handle exceptions occurring during runTest.
  • (758) move gelf logging to another thread
  • (628) Merge SHiP stability fixes & log splitting & memory usage improvements
  • (769) [PH] Reduce Performance Test Database Size Allocation
  • (727) SHiP move client handling off the main thread
  • (764) [3.2 -> main] SHiP do not truncate logs when starting from genesis
  • (771) [PH] Repair Nodeos 2.0 Compatibility with Performance Tests
  • (538) Launch nodeos instances per configuration, unsharing the network first.
  • (745) Remove HTTPS support from nodeos & keosd
  • (770) Test: Add a test that verifies restart from genesis not allowed
  • (774) Fix issue with reported fork head vs retrieval of block from fork db
  • (780) Bump appbase version and fix logging.json not working problem
  • (744) Add auto bp peering functionality
  • (778) [PH] Update Log Reader Tests For scrapeBlockTrxDataLog
  • (738) http_plugin: add support for `Expect: 100-Continue' header.
  • (781) [3.2 -> main] Move subjective bill log to all level of producer_plugin logger.
  • (784) Minor cleanup and fix for clang warning
  • (787) Cleanup some missed https support from test that was missed.
  • (786) Use appbase with external order for priority queue.
  • (794) fix create_metrics_listener
  • (793) [3.2 -> main] subjective-account-max-failures-window-size
  • (795) prometheus plugin integeration test
  • (796) Huangminghuang/fix_prometheus_test
  • (797) Remove deprecated /v1/chain/abi_bin_to_json and /v1/chain/abi_json_to_bin
  • (473) [PH] Feature performance harness stage 2 development
  • (799) Search for LLVM versions 7-11, prefering latest version.
  • (804) [TH] Merge Main Containing PH Phase 2
  • (803) [PH] Remove unnecessary dependency on contracts.
  • (805) Improve logging during syncing when producer_plugin debug level is enabled
  • (807) fix mixed up boost test linkage in ship session_test
  • (623) Add Prometheus Plugin
  • (809) Test fix: Increase abi-serializer-max-time-ms & http-max-response-time-ms for test
  • (819) [PH] Add performance test to CI/CD
  • (827) [PH] [4.0] Remove read_log_data.py
  • (776) Parallelize Read-only Transaction Execution
  • (823) [3.2 -> Main] Merge 3.2.2 version bump to main
  • (802) remove eosio-blocklog
  • (829) [PH] fix bug and arg passing
  • (820) get_raw_block api endpoint
  • (759) Programmable snapshots API
  • (831) fix signed vs unsigned comparison warning in autobp peering by @spoonincode
  • (836) Snapshot: fix issue with erasing element while iterating by @heifner
  • (192) Port eosio-launcher to Python by @jgiszczak
  • (798) Remove deprecated --private-key option from nodeos by @heifner
  • (818) Add TestHarness python integration scripts to dev package by @oschwaldp-oci
  • (791) [PH] Distribute Transaction Generators Across Producer Nodes. by @ClaytonCalabrese
  • (842) snapshot-diff-test fix by @766C6164
  • (845) Fix test coverage regression by a bad merge conflict in PR #192 by @linh2931
  • (833) Fix Pinned Build on Ubuntu 22.04 by @kj4ezj
  • (812) Pinned Build Script Linter Changes by @kj4ezj
  • (835) Change ASCII Art Banner in Build Script by @kj4ezj
  • (847) Restore libcurl4-openssl-dev by @kj4ezj
  • (848) Bump Leap Main branch version to 4.1.0-dev by @linh2931
  • (851) Create v4.0.0-rc1 on release/4.0 branch by @linh2931

v4.0.0-rc2:

  • (852)[4.0] Test Fix: Pass a large time limit to get table call
  • (856)[4.0] Increase robustness of snapshot diff python test
  • (876)[4.0] SHiP: Send until queue is empty
  • (869)[4.0] unshare import fix
  • (864)[4.0] Test Fix: Use max-transaction-time -1
  • (875)[4.0] Return Lost Changes to Node.py Functions
  • (872)[4.0] Test fix: Add max-transaction-time -1
  • (881)Bump release/4.0.0 to rc2


Full Changelog:
v4.0.0-rc1: v3.2.1...v4.0.0-rc1
v4.0.0-rc2: v4.0.0-rc1...v4.0.0-rc2

Don't miss a new leap release

NewReleases is sending notifications on new releases.