Leap v3.2.4 is a critical patch which eliminates a security vulnerability, and also includes bug fixes aimed at enhancing the stability and performance of Leap.
All Antelope nodes should upgrade to a version of leap containing the security patch (v3.1.5, v3.2.4, v4.0.4).
Leap v3.2.4 contains a security patch eliminating a denial of service vulnerability present in all prior versions of Leap.
Signature checks for dry-run transactions were failing.
The previous code failed to handle signature checks correctly for dry-run transactions, leading to unnecessary authorization checks. This issue could potentially result in erroneous behavior and wasted computational resources.
The following actions have been taken to resolve the issue:
These improvements ensure that signature checks for dry-run transactions are correctly handled.
There was an issue related to the The previous code had a bug where the The following actions have been taken to resolve the issue:
Improved handling of exhausted transactions in non-producing mode.
In previous versions, when running in non-default --read-mode speculative, exhausted transactions were not retried until a new block was received. This resulted in delays and potential inefficiencies in transaction processing.
To address this issue, the following changes were implemented:
These enhancements ensure that exhausted transactions in non-producing mode are promptly retried, improving the responsiveness and efficiency of transaction processing in Leap v3.2.
Leap v3.2 requires the Previously, the To address this issue, the following actions have been taken:
These improvements ensure that the The behavior of the HTTP server in Leap has been improved to provide more informative error responses when the Host header value is not allowed.
In Leap version 3.1, when the Host header value was not allowed by the http_plugin, an empty 400 response was returned to the client. However, in version 3.2 and onwards, the connection was simply closed without sending any headers to the client. This behavior change caused confusion and lacked proper error reporting.
The resolution for the issue involved modifications to the These improvements ensure that when the Host header value is not allowed, an error response is sent to the client, providing valuable information about the error. The changes enhance the usability and clarity of the HTTP server behavior in Leap.
Fixed incorrect serialization of std::optional fields in the AntelopeIO/leap repository. The issue occurred when a value was not provided for a std::optional field during serialization, resulting in missing flags. This PR addresses the problem by adding the necessary flags to properly serialize missing values.
Incorrect serialization of std::optional fields when a value is not provided.
The missing flags during serialization of std::optional fields led to incorrect representation of missing values.
Missing values in std::optional fields are correctly serialized, addressing the issue and preventing incorrect representation.
This pull request introduces the feature of logging all HTTP request and response information at the debug log level. The log output is limited to 1024 characters to prevent excessive logging.
Previously, there was no comprehensive logging of HTTP request and response data, making it difficult to debug and analyze issues related to HTTP communication. The lack of detailed logging hindered troubleshooting efforts and affected the overall visibility of the system.
The following changes have been made to improve logging of HTTP request and response data:
These improvements provide detailed logging of HTTP request and response data, enhancing the system's visibility and aiding in troubleshooting efforts.
This pull request addresses the issue of excessive debug level log messages generated by the producer_plugin. The modification reduces the log spam and improves the log output efficiency.
Previously, the producer_plugin was generating an excessive amount of debug level log messages, leading to log spam. This log spam could negatively impact the system's performance and make it difficult to analyze important log information.
Modified the logging condition in the In this release of leap (v3.2), we have introduced a new manual dispatch workflow for Pinned Builds in CI. This workflow allows for more control and flexibility in running Pinned Builds using GitHub Actions.
To enable the manual dispatch workflow for Pinned Builds, the following actions were taken in leap v3.2:
The introduction of the manual dispatch workflow for Pinned Builds brings the following benefits:
Special thanks to the contributors that submitted patches for this release:
Full Changelog: v3.2.3...v3.2.4
Leap v3.2.4 Release Notes
Security Patch
Eliminate denial of service vulnerability
Bug Fixes
Don't check signatures on dry run transactions
Summary:
Impact:
Resolution:
Fix i256 key type conversion by initialize buffer before usage
Summary:
i256 key type conversion.
Impact:
export_bits function did not fill every byte in the buffer. This issue could potentially cause unpredictable behavior and incorrect results in code that used the i256 key type conversion.
Resolution:
export_bits operation.
Report transaction failed if trx was exhausted in non-producing mode
Summary:
Impact:
Resolution:
leap-util: Require output-dir for extract-blocks subcommandSummary:
output-dir parameter for the extract-blocks subcommand of leap-util block-log.
Impact:
output-dir parameter was not enforced for the extract-blocks subcommand, leading to potential filesystem errors and cryptic error messages. Users were not prompted to provide the output directory for the block log extracted from the specified blocks directory.
Resolution:
blocklog_actions::setup function in the programs/leap-util/actions/blocklog.cpp file to make the --output-dir option required for the extract-blocks subcommand.
output-dir parameter, ensuring that users must provide the output directory.
release/3.2 branch of the AntelopeIO/leap repository.
output-dir parameter is mandatory for the extract-blocks subcommand of leap-util block-log, preventing filesystem errors and providing a clear requirement for users.
Respond to requests with disallowed HTTP HOST header
Summary:
Impact:
Resolution:
http_plugin:
bad request error response is sent to the client.
Fixed incorrect serialization scenario
Summary:
Problem:
Impact:
Changes:
libraries/libfc/include/fc/time.hpp and unittests/abi_tests.cpp files.
Resolution:
Other Changes
Changes to Logging
PRs
Log all HTTP request/response at debug log level
Summary
Impact
Resolution
Reduce producer_plugin debug level log spam
Summary
Impact:
Resolution:
producer_plugin_impl class to log blocks only every 1000 during synchronization or when the time difference between the current time and the block's timestamp is less than 5 minutes. These improvements effectively reduce the log spam generated by the producer_plugin, making the log output more manageable and improving overall system performance.
Changes to Pinned Builds
Summary:
Changes:
Benefits:
Further details on changes since last release
Contributors
Full list of changes since last release
PRs
i256 key type conversion by initialize buffer before usage