Introducing Clio version 2.5.0
Version 2.5.0 of Clio, an XRP Ledger API server optimized for HTTP and WebSocket API calls, is now available. This release adds new features and bug fixes.
Amendment Support
The following amendments have been introduced since Clio 2.4.1 and have transaction model changes. Clio 2.5.0 is built with libxrpl
2.5.0, which supports these amendments.
If these amendments are enabled and you have not upgraded Clio to 2.5.0 or newer, the ETL will be amendment blocked and new ledgers will not be processed.
To check the current voting status of these amendments on Mainnet, see the XRPL Amendments Dashboard.
Install / Upgrade
For other platforms, please build from source. The most recent commit in the git log should be:
Merge: d83be17d 00333a8d
Author: Sergey Kuznetsov <[email protected]>
Date: Tue Jul 22 11:43:18 2025 +0100
chore: Commits for 2.5.0 (#2352)
What's Changed
See the Full Changelog on GitHub.
Features
- Implements snapshot import feature (#1970)
- Adds ability for nodes to share information or status via the database (#1976)
- Adds experimental support for Dosguard API weights (#2082)
- Adds account permission support (#2145)
- Adds get range functionality to export tool (#2131)
- Adds support for Batch transactions (#2162)
- Adds support for Permissioned DEX (#2152)
- Adds support for Token Escrow (#2252)
- Adds support for Single Asset Vault (#1979)
Bug Fixes
- Updated
ripple_flag
logic in account lines to matchrippled
implementation (#1969) - Fixed issue with SSL in new webserver (#1981)
- Fixed incorrect
HighDeepFreeze
flag setting (#1978) - Fixed CTID issue (#2001)
- Fixed incorrect requests logging (#2005)
- Pinned cmake version in CI Dockerfile to fix nightly release failure (#2036)
- Added CTID to all RPC's that include transactions to fix mismatch with
rippled
(#2011) - Added missing paths to
update_docker_ci.yml
(#2044) - Used ytanikin/pr-conventional-commits action for conventional commits check (#2049)
- Removed Mac CMake installation error (#2040)
- Stopped using
steps.conan.outputs.conan_profile
as it doesn't exist anymore (#2056) - Added missing quotes to release title in Github release workflow (#2064)
- Fixed flaky test in ETLng (#2077)
- Added fix to pass
secrets.CODECOV_TOKEN
explicitly for reusable Github workflows (#2079) - Made ctors/dtors public in tests (#2089)
- Made
fix-local-includes.sh
work on file-basis (#2099) - Caught exception in
ClusterCommunicationService
(#2093) - Made
fix-local-includes.sh
work with multiple files (#2102) - Guaranteed async behavior of
WsBase::send
(#2100) - Updated
clang-tidy
Github workflow to runclang-format
after tidy (#2108) - Fixed
fix-local-includes.sh
to not rewrite original file if it hasn't changed (#2109) - Fixed issue with building with sanitizers (#2118)
- Used
git lfs install
andfix verify-commits
hook (#2129) - Fixed some Doxygen docs errors (#2130)
- Added
Delegate
to Ledger types (#2151) - Used
UniformRandomGenerator
class to prevent threading issue (#2165) - Added style to the name of pre-commit autoupdate PR title (#2177)
- Added README to docker/compilers (#2188)
- Analyzed build time on clang (#2195)
- Set compile flag to grpc only (#2204)
- Made GHCR lowercase (#2218)
- Updated docs to use Conan v2 dirs and commands (#2219)
- Updated
upload_conan_deps.yml
Github workflow to run onconan.lock
changes (#2227) - Ensured that
domainMalformed
is returned when domain is invalid (#2228) - Added domain to
book_changes
(#2229) - Updated CI image to provide
global.conf
for sanitizers to affectpackage_id
(#2233) - Used new CI image with
global.conf
for sanitizers to affectpackage_id
(#2234) - Forced reupload of new artifacts (#2236)
- Made
update-libxrpl-version
work with lockfile (#2249) - Disabled conan uploads on schedule (#2253)
- Ensured that CI image builds are not cancelled (#2259)
- Pinned
lxml
dependency to version <6.0.0 (#2269) - Ensured that command injection is not allowed in GitHub workflows (#2270)
- Ensured that
package_id:confs
can only be set for sanitized builds (#2261) - Used
.contains()
method where available (#2277) - Cleaned up
fmt
headers (#2285) - Updated
pre-commit-autoupdate
Github workflow to import a GPG key (#2287) - Made pre-commit autoupdate PRs verified (#2289)
- Temporarily disabled Docker Hub description update (#2298)
- Updated RPC module to use preferred compiler flags (#2305)
- Fixed ASAN stack-buffer-overflow in
NFTHelpersTest_NFTDataFromLedgerObject
(#2306) - Added sending queue to ng web server (#2273)
- Fixed ASAN heap-buffer-overflow issue in
DBHelpers
(#2310) - Explicitly linked with boost libraries (#2313)
- Marked tags with dash as pre-release (#2319)
- Added step to prepare runner in docs Github workflow (#2325)
- Fixed writing into dead variables in
BlockingCache
(#2333) - Handled logger exceptions (#2349)
Refactor
- Compared
error_code
with enum values, not hardcoded ints (#2023) - Added
str()
method toBaseTagDecorator
(#2020) - Improved load balancer forwarding metrics (#2103)
- Removed old config (#2097)
- Used
std::expected
instead ofstd::variant
for errors (#2160) - Simplified
check_config
implementation (#2247) - Refactored GCC image to make upgrades easier (#2246)
- Simplified CMakeLists.txt for sanitizers (#2297)
- Refactored GCC image to make upgrades easier (#2246)
- Added extensions for ETLng (#1967)
- Added ETLng integration (#1986)
- Added ETLng MPT support (#2154)
- Refactored ETLng publisher and service (#2138)
- Added read-write switching in ETLng (#2199)
- Added start and finish sequence support in ETLng (#2226)
- Added graceful shutdown and cleanup for ETLng (#2232)
- Updated forwarding cache to queue similar requests during entry updates (#1997)
- Implemented
FetchLedgerBySeq
caching to address uneven DB shard access (#2014) - Implemented load balancer metrics in ETLng (#2119)
Documentation
- Verified/reviewed config descriptions (#1960)
- Improved wording in docs (#2095)
- Added information about
global.conf
(#2238)
Styling
- Used pre-commit tool and add simple config (#2029)
- Added prettier pre-commit hook (#2031)
- Applied
go fmt
to Go code (#2046) - Added markdownlint pre-commit hook (#2038)
- Added typos pre-commit hook (#2041)
- Added C++ pre-commit hooks (#2039)
- Improved actions and workflows style (#2060)
- Used
codespell
instead oftypos
pre-commit hook (#2104) - Marked JSON literal strings with R"JSON (#2169)
- Beautified installation lists in Dockerfile (#2172)
- Added static keyword before type (#2231)
- Fixed JSON style in C++ code (#2262)
- Added pre-commit hook to fix JSON style in C++ code (#2266)
- Updated pre-commit hooks (#2290)
Testing
- Added
build_and_test
reusable workflow (#2048) - Removed
SetUp
andTearDown
methods in tests (#2086) - Increased Cassandra timeouts in tests (#2127)
- Ensured that undefined sanitizer does not ignore errors when running (#2134)
- Skipped slow DB sleep-based test on Mac (#2148)
Miscellaneous Tasks
- Added git-cliff config (#1965)
- Pinned cmake 3.31.6 for macOS runners (#1983)
- Updated maintainers (#1987)
- Updated workflow notification settings (#1990)
- Fixed clang-tidy 'fixes' (#1996)
- Ensured that Dependabot runs for all local actions (#2018)
- Pinned external actions using hashes (#2019)
- Fixed FiD time field to be a string in Dependabot config (#2024)
- [DEPENDABOT] bumped docker/build-push-action from 5.4.0 to 6.15.0 in /.github/actions/build_docker_image (#2027)
- Removed dead code related to centos (#2028)
- [DEPENDABOT] bumped docker/build-push-action from 6.15.0 to 6.16.0 in /.github/actions/build_docker_image (#2030)
- Specified Conan profile explicitly and stopped overriding it (#2042)
- Capitalized Dockerfile to add support of tools (#2045)
- Stopped using wandalen/wretry.action and updated to codecov/codecov-action (#2050)
- Disabled
add_label
for conventional commits (#2054) - Attempted to push Docker images to ghcr.io (#2051)
- Used ghcr.io/xrplf/clio-ci Docker image (#2055)
- Ensured that only pre-commit hooks are used in
clang-tidy.yml
(#2057) - Specified concurrency for Github workflows (#2059)
- Refactored how code coverage is run (#2065)
- Stopped using concurrency with
workflow_call
(#2069) - Installed
ClangBuildAnalyzer
in the CI image (#2071) - Moved clang build analyzer to nightly (#2074)
- Updated CI to fail if codecov upload fails (#2078)
- Ensured pre-commit workflow runs on heavy runner to make Doxygen work (#2085)
- Used XRPLF/clio-dev-team in dependabot (#2081)
- Fixed double quotes for all workflows and actions (#2090)
- Ensured that integration tests run on macOS (#2080)
- Attempted to remove whitespace to fix sanitizer build (#2105)
- Froze pre-commit hooks (#2114)
- Used XRPLF/clio-dev-team as team-reviewers, and updated assignees (#2113)
- Stopped using team-reviewers because creating PAT was too difficult (#2117)
- Explicitly specified workflow dependencies (#2110)
- Ensured that sanitizers run on script change (#2122)
- Installed git-cliff to generate changelog (#2136)
- [DEPENDABOT] bumped docker/build-push-action from 6.16.0 to 6.17.0 in /.github/actions/build_docker_image (#2142)
- [DEPENDABOT] bumped codecov/codecov-action from 5.4.2 to 5.4.3 (#2141)
- Fixed nagetive -> negative in RPC handler tests (#2156)
- Added missing workflow dependencies (#2155)
- [DEPENDABOT] bumped docker/build-push-action from 6.17.0 to 6.18.0 in /.github/actions/build_docker_image (#2175)
- Installed zip in Dockerfile (#2176)
- Added cancellable coroutines support (#2180)
- Reverted "feat: Use new web server by default (#2182)" (#2187)
- Updated Dockerfile to use gcc from Docker Hub (#2194)
- Updated libxrpl (#2186)
- Updated CI image to use Conan 2 (#2178)
- Removed flex and bison installation from CI image (#2210)
- Added
-Wunreachable-code
compiler flag (#2216) - Uploaded conan deps for all profiles (#2217)
- [DEPENDABOT] bumped docker/setup-buildx-action from 3.10.0 to 3.11.0 in /.github/actions/build_docker_image (#2235)
- Stopped using save/restore cache for conan, and switched to artifactory (#2230)
- Ensured that full build of conan dependencies happens only on schedule (#2241)
- Silence brew warnings (#2255)
- Cleaned up conanfile (#2243)
- Stopped using self-hosted runner tag (#2248)
- Stopped using dynamic names when not needed (#2251)
- Updated
conan.lock
(#2250) - [DEPENDABOT] bumped docker/setup-buildx-action from 3.11.0 to 3.11.1 in /.github/actions/build_docker_image (#2256)
- Updated
fmt
to version 11.2.0 (#2281) - Updated LLVM tools to v20 (#2278)
- Stopped hardcoding versions in Dockerfiles and workflows (#2291)
- Added mold to tools image (#2301)
- Built tools image separately for different architectures (#2302)
- Bumped tools docker image version (#2303)
- Updated conan revisions (#2308)
- Removed redundant words in comment (#2309)
- Unified how branches are dealt with (#2320)
- Removed usage of BlockingCache due to a bug (#2328)
- Added trufflehog security tool (#2334)
- Stopped hardcoding xrplf repo when building docker images (#2336)
- Stopped hardcoding gcc version in ci/Dockerfile (#2337)
- Stopped hardcoding python filename in gcc Dockerfile (#2340)
- Installed apple-clang 17 locally (#2342)
- Updated build to skip tsan unit tests (#2347)
- Ensured that
upload_conan_deps
workflow runs on necessary changes in.github/scripts/conan/
(#2348) - Updated Clio to use the new web server by default (#2182)
- Added load balancer prometheus metrics (#2096)
- Introduced
release_impl.yml
workflow to automatically create releases (#2043) - Implemented clang build analyzer (#2072)
- Added hadolint Docker pre-commit hook (#2135)
- Added ability to create releases in CI (#2168)
- Added new Docker images structure, tools image (#2185)
- Added ubsan build to nightly release (#2190)
- Ensured Conan 2 always builds with native architecture (#2201)
- Added ability to pass sanitizer as part of
conan_profile
(#2189) - Added flags to deps for sanitizer builds (#2205)
- Implemented native GCC build with subsequent image merge (#2212)
- Added Conan lockfile (#2220)
- Ensured that all possible Conan configurations are built in CI (#2225)
- Added sanitizer support for macOS dependency builds(#2240)
- Ensured that sanitizers are built with Clang (#2239)
- Added
init_conan script
(#2242) - Added parallel download and upload for Conan packages (#2254)
- Switched Clio to use Conan v2 (#2179)
- Switched to xrpl/2.5.0 release (#2267)
- Updated to Clang 19 (#2293)
- Added ability to run sanitizers for Debug builds (#2296)
- Added script to rebuild conan dependencies (#2311)
- Ensured that the Clio version from tag is always used if available (#2322)
- Updated to GCC version 14.3 (#2344)
Testing Credits
- Thanks to @mounikakun and others for testing this release.
Contributors
The following people contributed directly to this release:
Feedback
To report an issue or propose a new idea, please open an issue.