Release version 0.22.0 of the Hedera JSON RPC Relay includes several performance optimizations that avoid calling more than necessary the mirror node, in methods such as: eth_getBalance, eth_blockNumber, eth_feeHistory that caches results for a configurable amount of time.
Also HttpClient (Axios) configurations improvements when calling mirror node to avoid stale connections as well as some improvements on the liveness and health checks of infrastructure to avoid unneeded restarts when the load is high.
This release includes some further advancements on eth_subscribe feature, adding configurable support for multiple contracts, IP rate limiting and expanding the overall test coverage for more scenarios.
It also includes some tests fixes that improves the overall CI pipeline process and code review process by including code owners.
Enhancements
- GA Version 0.22.0 #1126
- Cherry-pick: Expand eth_call mirror node consensus retry scenarios (#1122) #1125
- Cherry pick PR 1012 into 0.22 release #1109
- Cherrypick PR-1105 into 0.22 release #1108
- Add Contract Call Query Retry Logic #1105
- bump version 0.22.0-rc1 #1100
- Add retry logic to sdkClient submitContractCallQuery #1097
- Refactor eth_feeHistory to use a Fixed Fee #1095
- Add default seconds to liveness and readiness probes #1093
- Add failureThreshold and timeoutSeconds to liveness and readiness probe configs in values yaml #1092
- Optimize eth_feeHistory #1087
- Add support for node httpAgent configurations #1081
- Adding a configurable TTL cache for get_ethBalance to eth.ts #1064
- configurable TTL Cache for current blockNumber #1063
- Add cache support to eth_blockNumber #1057
- Sanity check of ethSubscribe Logs Params #1053
- RPC API Batch 1 - Acceptance Test - Improvement #1050
- RPC API Batch 1 Test is intermittently failing on CI/CD #1049
- Limit subscriptions for a single connection #1047
- Extract and Log Contract Revert Reason #1043
- add initial CODEOWNERS #1041
- Add a CODEOWNERS file #1039
- Connection limits per IP for WebSocket server #1037
- Bump Acceptance Tests network images #1035
- Test Cases for eth_subscribe unsupported methods. #1030
- Feature Flag for eth_subscribe multiple contracts support and acceptance tests #1029
- Precompile acceptance tests for eth_call with Mirror node #1012
- Add IP based limits to the WS server #995
- Expand eth_subscribe logic to work with multiple contracts #926
Bug Fixes
- Restrore dropped SDKClient error message #1091
- SDKClient error handle drops the error message in UNKNOWN cases #1090
- Added the abort controller to cancel requests. #1067
- Terminate the axios calls when a timeout is triggered calling the mirrornode #1065
Documentation
- Add
eth_getStorageAt
in openrpc doc #1027
Dependency Upgrades
- Bump
@openzeppelin
/contracts from 4.8.2 to 4.8.3 in /tools/subgraph-example #1089 - Bump undici from 5.14.0 to 5.20.0 in /tools/subgraph-example #947
- Bump json5 and
@hashgraph
/cryptography in /tools/web3js-example #912
Contributors
Thank you to all the contributors who worked on this release:
@AlfredoG87, @Ivo-Yankov, @Nana-EC, @dependabot[bot], @ebadiere, @georgi-l95, @isavov, and @natanasow
Full Changelog: Full Changelog: v0.21.0...v0.22.0