Releases: hashgraph/hedera-json-rpc-relay
v0.54.0
Overview
The latest release of the Hedera JSON-RPC Relay, v0.54.0, introduces several key enhancements and fixes that improve the overall functionality and reliability of the project.
Highlights of this release include the addition of an option to retrieve transaction records from either the Mirror Node or the Consensus Node, enhancing flexibility in data access. Furthermore, improvements in logging and the reuse of executetransaction
for methods in sdkclient
streamline the codebase for better performance.
Bug fixes, such as ensuring synthetic transactions are correctly populated on getBlock...
routes, contribute to a more robust and error-resistant system.
This release also incorporates updates to dependencies and documentation, ensuring the project remains up-to-date and well-supported.
What's Changed
Enhancements
- feat: reused executetransaction for methods in sdkclient and improved logging by @quiet-node in #2749
- fix: reduce hbar limit only by operator fees by @Ivo-Yankov in #2755
- fix: Code coverage report is not being uploaded by @victor-yanev in #2764
- chore: update local-node and sdk by @georgi-l95 in #2793
- feat: calculate
logsBloom
for synthetic transactions by @natanasow in #2785 - feat: added an option for retrieving transaction records from either the Mirror Node or the Consensus Node. by @quiet-node in #2782
- feat: Added request panels to the websocket dashboard. by @ebadiere in #2767
- feat: add Golang tests to workflow by @marcin-piela-ariane in #2679
Bug Fixes
- fix: populate synthetic transactions on
getBlock...
routes by @natanasow in #2784 - fix: Adds null check for param in validation by @konstantinabl in #2682
- fix: Makes ICacheClient return type promise and changes LRUCache accordingly by @konstantinabl in #2410
Documentation
- docs: Add documentation for debugging transactions by @victor-yanev in #2774
Dependency Upgrades
- build(deps): bump ws from 8.16.0 to 8.18.0 in /tools/web3js-example by @dependabot in #2713
New Contributors
- @marcin-piela-ariane made their first contribution in #2679
Full Changelog: v0.53.0...v0.54.0
v0.53.0
Release v0.53.0
adds more metrics around the JSON RPC Relay operator's transaction costs, as well as some refactoring of the SDK client that runs the transactions. The HBar Rate Limiter was tuned to focus more on the Relay's operator fees. More tests around the SDK Client as well as the HBar Rate Limiter are also included.
The implementation of the eth_getTransactionByHash
JSON RPC method was also refactored to search contract logs by transaction hash. This facilitates the fetching of synthetic transactions in that method call.
Enhancements
- feat: deprecate
ETH_POPULATE_SYNTHETIC_CONTRACT_RESULTS
env #2768 - Deprecate
ETH_POPULATE_SYNTHETIC_CONTRACT_RESULTS
#2763 - feat: search contract logs only by transaction hash #2762
- feat: added logging to the HBAR rate limit class for more descriptive information. #2761
- fix: captured and added FileInfo query costs to metrics and hbar rate limit class #2760
- test: expand integration tests for SDK client #2756
- fix: reduce hbar limit only by operator fees #2755
- feat: reused executetransaction for methods in sdkclient and improved logging #2749
- Expand integration tests for SDK client #2747
- Reuse executeTransaction() for methods in SDKClient and improve logging #2746
- Search contract logs only by transaction hash #2744
- feat: replaced getRecord network calls with calls to mirror node to avoid SDK costs #2737
- TransactionFee captured for executeTransaction has the total charged transaction fee in it, not just fees charged by Relay operator. #2729
- feat: add real
logsBloom
where available #2720 - feat: replaced getRecord network calls with calls to mirror node to avoid SDK costs #2712
- test: add additional hbar limiter tests #2697
- Enhance Hbar Limiter Acceptance tests #2696
- chore: Implement memory leak detection in tests #2695
- Add acceptance tests to verify transaction costs and metrics. #2691
- feat: add logsBloom class #2684
- Add logsBloom class #2683
- Add real logsBloom where available #2666
- Refactor the createFile code in a way the facilitates testability #2655
- Implement a Memory Leak detection Test #2260
Bug Fixes
- fix: populate synthetic transactions on
getBlock...
routes (#2784) #2786 - fix: populate synthetic transactions on
getBlock...
routes #2784 - Revert "feat: deprecate
ETH_POPULATE_SYNTHETIC_CONTRACT_RESULTS
env… #2783 - 2755 operator vs txn fees #2781
- 2755 hbar operator fees #2779
- feat: reused executetransaction for methods in sdkclient and improved… #2776
- fix: reorganized executeTransaction and executeTransactionRecord to avoid capturing metrics twice #2742
- WRONG_NONCE error capture metrics twice #2741
- feat: track hbar expenses for submit tx #2705
- Expand Hbar Limiter coverage #2703
- fix: Updated the account from the 0.0.2 account to an account from th… #2690
- fix: Adds null check for param in validation #2682
- "Error raised during getCode for address null" is not returned in the response to the client and can cause confusion. #2376
Contributors
Thank you to all the contributors who worked on this release:
@Ivo-Yankov, @ebadiere, @georgi-l95, @konstantinabl, @natanasow, @quiet-node, and @victor-yanev
v0.52.1
Overview
The latest update to the Hedera JSON RPC Relay, version 0.52.1, introduces a solution to preemptively limit HBAR expenses based on the callDataSize
of an eth_sendRawTransaction
. This solution estimates the total transaction fee required to complete the eth_sendRawTransaction
request based on the callDataSize
. It then ensures that the transaction fee does not exceed the remaining budget of the relay operator's account beforehand. If the estimated fee surpasses the available budget, an HBAR_RATE_LIMIT_PREEMPTIVE_EXCEEDED
error is triggered. This update represents another step in securing, patching, and improving issues related to HBAR leakage.
What's Changed
Enhancements
feat: added preemtiveCheck for HBAR ratelimit #2751
Contributors
Thank you to all the contributors who worked on this release:
Full Changelog: v0.52.0...v0.52.1
v0.52.0
Overview
The latest update to the Hedera JSON RPC Relay, v0.52.0, introduces a series of enhancements, critical bug fixes, and important dependency upgrades aimed at improving the overall functionality and performance of the system. This release demonstrates continued efforts to address HBAR rate limiter issues by enhancing tracking and visualization capabilities for HBAR transactions. Additional improvements and fixes are detailed below.
What's Changed
Enhancements
- fix: net_version now reads chainId from config and return decimal value by @quiet-node in #2633
- fix: Added metrics around the HBar rate limiter to better track the by @ebadiere in #2657
- test: waffle tool example by @arianejasuwienas in #2640
- feat: allowed eth_call to accept null/empty tx.to to simulate deploying smart contracts by @quiet-node in #2647
- feat: add a tx gasPrice Buffer to reduce INSUFFICIENT_TX_FEE cases by @natanasow in #2692
- feat: Checking in the updated grafana dashboard. It now includes additional HBar spend visuals. by @ebadiere in #2658
Bug Fixes
- fix: Adds usage of internal cache for getFilterChanges by @konstantinabl in #2668
- fix: eth_getBlockTransactionCountByNumber is not supported in wss by @arianejasuwienas in #2650
- fix: estimate_gas doesn't reflect changes in mirror-node by @victor-yanev in #2409
- fix: gasprice of transactions denoted in tinybars by @natanasow in #2688
Dependency Upgrades
- build(deps): [Snyk] Security upgrade ethers from 5.7.2 to 6.0.0 by @swirlds-automation in #2607
- [Snyk] Upgrade web3 from 4.8.0 to 4.9.0 by @swirlds-automation in #2637
- [Snyk] Upgrade @hashgraph/sdk from 2.44.0 to 2.46.0 by @swirlds-automation in #2659
- build(deps): [Snyk] Security upgrade mocha from 9.2.2 to 10.6.0 by @swirlds-automation in #2660
- build(deps): [Snyk] Upgrade co-body from 6.1.0 to 6.2.0 by @swirlds-automation in #2661
Full Changelog: v0.51.0...v0.52.0
v0.52.0-rc2
v0.52.0-rc2
v0.51.3
Overview
This new release, v0.51.3, introduces a hotfix to address the HBAR leakage issue by adding steps to capture transactionFee
in metrics and the HBAR limiter class for the executeTransaction()
and deleteFile()
methods.
The fix utilizes the getRecord()
method to retrieve the transactionFee
in executeTransaction()
. This method also exposes and throws errors caused by invalid transactions on the network, which were previously ignored. These errors were typically discovered only after repeated lookups on the mirror node, resulting in a total transaction time of more than 20 seconds in the worst cases. This error exposure helps reduce total transaction time by 98% for worst cases and ensures more accurate and secure handling of transactions.
Bug Fixes
fix: captured transactionFee in metrics and HBAR limiter class in executeTransaction and deleteFile (#2714)
Contributors
Thank you to all the contributors who worked on this release:
Full Changelog: v0.51.2...v0.51.3
v0.51.2
Overview
This new release, v0.51.2, introduces a hotfix to improve the HBAR leakage issue in FILE_APPEND
transactions. The fix replaces the current .execute()
method with .executeAll()
for fileAppendTransaction
, ensuring that all transactions are captured in the result. This update allows for secure and accurate monitoring of the total HBAR spent in FILE_APPEND
transactions within the metrics and HBAR rate limiter class. Consequently, it improves the tracking of the HBAR burned rate in metrics, ensuring that the Relay operator account's balance is managed effectively.
Bug Fixes
fix: Hbar usage tracking when transaction is larger than FILE_APPEND_CHUNK_SIZE #2698
Contributors
Thank you to all the contributors who worked on this release:
Full Changelog: v0.51.1...v0.51.2
v0.52.0-rc1
v0.52.0-rc1
v0.51.1
Release v0.51.1
includes enhancements to the HBar rate limiting around creating and appending to files, as well as exposing the HBar rate limiting through metrics. The net_version
now returns the decimal value instead of the hexadecimal, and the debug endpoint debug_traceTransaction
now works with the opcode logger. Bug fixes around the getFilterChanges
using the internal cache, and preceding zeros from signature key values are also part of v0.51.1
.
Enhancements
- fix: Added metrics around the HBar rate limiter to better track the (… #2672
- fix: net_version now reads chainId from config and return decimal value #2633
- fix: debug_traceTransaction not working when we don't pass tracerConfig #2628
- fix: reduced the SDK usage in batch 3 to stablize the batch #2625
- feat: Rework how tooling tests and dapp are starting local-node #2617
- build(deps): Bump versions for v0.51.0-SNAPSHOT #2608
- feat: Golang JSON RPC methods usage example. #2586
- feat: enhance debug_traceTransaction to work with Opcode Logger #2480
- Enhance
debug_traceTransaction
to work with opcode Logger #2431
Bug Fixes
- fix: Adds usage of internal cache for getFilterChanges (#2668) #2670
- fix: issue when trying to perform transaction (#2663) #2669
- fix: Adds usage of internal cache for getFilterChanges #2668
- eth_newFilter / eth_getFilterChanges not working #2646
- fix: Added HBar rate limiter to createFile #2634
- Add rateLimiter to the create file in the sdkClient #2631
- API method
net_version
returns hexadecimal result instead of decimal #2629 debug_traceTransaction
not working when we don't passtracerConfig
#2627- fix: String preceding zeros from signature key values. #2623
- fix: fixed unexpected returns for eth_getLog requests with zero address #2616
- Requesting logs with ZERO address returns anonymous Events #2614
- fix: reworked gas comparison logic #2611
- baseFeePerGas is compared to a hard-coded value in batch 1 acceptance test #2610
- 2500 failed to fetch transaction #2595
- API Batch 3 is a flaky test. #2568
- eth_getBlockByNumber failing with Error invoking RPC: Null entity ID #2557
Dependency Upgrades
- build(deps): [Snyk] Security upgrade ethers from 6.13.0 to 6.13.1 #2624
- build(deps): [Snyk] Upgrade ethers from 6.0.0 to 6.13.0 #2622
- fix: Upgrade to node 20. #2621
- build(deps): bump ws from 8.5.0 to 8.17.1 in /k6 #2620
- build(deps): [Snyk] Security upgrade ethers from 6.0.0 to 6.13.1 #2612
- build(deps): [Snyk] Security upgrade ethers from 5.7.2 to 6.0.0 #2609
- build(deps): [Snyk] Upgrade
@hashgraph
/hedera-local from 2.23.0 to 2.26.2 #2558
Contributors
Thank you to all the contributors who worked on this release:
@arianejasuwienas, @dependabot[bot], @ebadiere, @georgi-l95, @konstantinabl, @natanasow, @quiet-node, @swirlds-automation, and @victor-yanev
v0.50.2
Overview
Hedera JSON RPC Relay release v0.50.2 includes a significant enhancement and crucial bug fixes. The integration of the Opcode Logger provides detailed logging of opcode execution, enhancing the debugging process for developers by offering more granular insights into transaction traces.
Additionally, a crucial bug fix implements an HBar rate limiter for the createFile
function for transactions with large calldata. This addition is essential for preventing excessive usage and potential abuse of the file creation process, including the fileAppend
process, thereby enhancing the overall stability and performance of the system.
Enhancements
- feat: enhance debug_traceTransaction to work with Opcode Logger #2480
- fix: debug_traceTransaction not working when we don't pass tracerConfig #2628
- fix: Added HBar rate limiter to createFile #2634
Contributors
Thank you to all the contributors who worked on this release:
@ebadiere @victor-yanev
Full Changelog: v0.50.1...v0.50.2