Leap v4.0.6
Leap v4.0.6 is a patch release which fixes a long standing (but recently discovered) issue in trace api wherein some blocks cannot be deserialized. For nodes that are not running trace api there is no need to upgrade.
Nodes that run trace api should upgrade to avoid errors in some calls to /v1/trace_api/get_block
.
Leap v4.0.5 Release Notes
Significant Changes
Use 503 instead of 429 response code for exceeding request limits
When https request limits are exceeded (http-max-bytes-in-flight-mb
or http-max-in-flight-requests
), an HTTP response code is returned. Prior to this change, 429 was the response code returned in these cases.
HTTP response codes in the 4xx range denote errors caused by client behavior, while the 5xx range denote errors on the server side. As the cause of these errors is that the server exceeds its configured resource quota, a 5xx error is most descriptive.
By using semantically correct HTTP response codes, clients & proxies can better react (failover for example).
Corrected Return Value Conversion via ABI in TraceAPI
In this release, we made changes to ensure the accurate conversion of return values via ABI within the TraceAPI.
Prior to this update, there were instances where the conversion process was not handled correctly, leading to potential crashes, particularly observed in the _binary_to_variant
function under specific conditions. The root cause of the problem stemmed from incomplete handling of action return value conversion by ABI, particularly when an action return value ABI was not readily available. Consequently, attempts to perform such conversions could result in erroneous outcomes, manifesting as crashes or unexpected behavior, especially evident in scenarios where binary to variant conversion was attempted.
Following the implementation of this fix, the TraceAPI module now correctly handles the conversion of return values via ABI. Specifically, action return values are converted using the appropriate ABI, with conversion attempts being made only when a valid action return value ABI is available. This ensures a more stable and reliable behavior, mitigating the risk of crashes or unexpected outcomes previously associated with return value conversion.