Releases: XRPLF/clio
Clio development (nightly) build
Release notes
Note: Please remember that this is a development release and it is not recommended for production use.
Changelog (including previous releases): https://github.com/XRPLF/clio/commits/nightly
2.5.0
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.
Whats's changed
🚀 Features
- ETLng extensions (#1967) by @godexsoft
- Snapshot import feature (#1970) by @cindyyan317
- ETLng integration (#1986) by @godexsoft
- Nodes communication via DB (#1976) by @kuznetsss
- More efficient cache (#1997) by @kuznetsss
- Introduce
release_impl.yml
workflow to automatically create rel… (#2043) by @mathbunnyru - Implement clang build analyzer (#2072) by @mathbunnyru
- Add load balancer prometheus metrics (#2096) by @mathbunnyru
- Cache FetchLedgerBySeq (#2014) by @PeterChen13579
- Dosguard API weights (#2082) by @kuznetsss
- Implement load balancer metrics in etlng (#2119) by @mathbunnyru
- Add hadolint docker pre-commit hook (#2135) by @mathbunnyru
- Account permission support (#2145) by @kuznetsss
- Add get range feat to export tool (#2131) by @PeterChen13579
- ETLng publisher and service refactoring (#2138) by @godexsoft
- ETLng MPT support (#2154) by @godexsoft
- Support Batch (#2162) by @PeterChen13579
- Use new web server by default (#2182) by @kuznetsss
- Create releases in CI (#2168) by @mathbunnyru
- New docker images structure, tools image (#2185) by @mathbunnyru
- Add ubsan build to nightly release (#2190) by @mathbunnyru
- Support Permissioned DEX (#2152) by @mathbunnyru
- Use Conan 2 (#2179) by @mathbunnyru
- Always build with native arch in Conan 2 (#2201) by @mathbunnyru
- Pass sanitizer as part of conan_profile (#2189) by @mathbunnyru
- Add flags to deps for sanitizer builds (#2205) by @godexsoft
- Read-write switching in ETLng (#2199) by @godexsoft
- Build GCC natively and then merge the image (#2212) by @mathbunnyru
- Add conan lockfile (#2220) by @mathbunnyru
- Build all possible conan configurations in CI (#2225) by @mathbunnyru
- Support start and finish sequence in ETLng (#2226) by @godexsoft
- Build macos dependencies with sanitizers (#2240) by @mathbunnyru
- ETLng cleanup and graceful shutdown (#2232) by @godexsoft
- Build sanitizers with clang (#2239) by @mathbunnyru
- Download and upload conan packages in parallel (#2254) by @mathbunnyru
- Add init_conan script (#2242) by @mathbunnyru
- Add Support For Token Escrow (#2252) by @mathbunnyru
- Support single asset vault (#1979) by @PeterChen13579
- Switch to xrpl/2.5.0 release (#2267) by @mathbunnyru
- Update to Clang 19 (#2293) by @mathbunnyru
- Run sanitizers for Debug builds as well (#2296) by @mathbunnyru
- Add script to rebuild conan dependencies (#2311) by @mathbunnyru
- Always use version from tag if available (#2322) by @mathbunnyru
- Update to GCC 14.3 (#2344) by @mathbunnyru
🐛 Bug Fixes
- Ripple_flag logic in account lines (#1969) by @PeterChen13579
- Fix ssl in new webserver (#1981) by @kuznetsss
- Incorrect set HighDeepFreeze flag (#1978) by @PeterChen13579
- CTID issue (#2001) by @PeterChen13579
- Fix incorrect requests logging (#2005) by @kuznetsss
- Pin cmake version in ci Dockerfile (#2036) by @mathbunnyru
- Add CTID to all RPC's that includes transactions (#2011) by @PeterChen13579
- Add missing paths to update_docker_ci.yml (#2044) by @mathbunnyru
- Use ytanikin/pr-conventional-commits action for conventional com… (#2049) by @mathbunnyru
- Remove Mac CMake installation error (#2040) by @mathbunnyru
- Don't use steps.conan.outputs.conan_profile as it doesn't exist … (#2056) by @mathbunnyru
- Quote release title (#2064) by @mathbunnyru
- Flaky test in ETLng (#2077) by @godexsoft
- Pass secrets.CODECOV_TOKEN explicitly (#2079) by @mathbunnyru
- Make ctors/dtors public in tests (#2089) by @mathbunnyru
- Make fix-local-includes.sh work on file-basis (#2099) by @mathbunnyru
- Catch exception in ClusterCommunicationService (#2093) by @kuznetsss
- Make fix-local-includes.sh work with multiple files (#2102) by @mathbunnyru
- Guarantee async behaviour of WsBase::send (#2100) by @godexsoft
- Run clang-format after tidy (#2108) by @mathbunnyru
- Do not rewrite original file if it hasn't changed in fix-local-i… (#2109) by @mathbunnyru
- Fix build with sanitizers (#2118) by @kuznetsss
- Use
git lfs install
and fix verify-commits hook (#2129) by @mathbunnyru - Fix some doxygen docs errors (#2130) by @mathbunnyru
- Add Delegate to Ledger types (#2151) by @kuznetsss
- Use UniformRandomGenerator class to prevent threading issue (#2165) by @mathbunnyru
- Add style to the name of pre-commit autoupdate PR title (#2177) by @mathbunnyru
- Add README to docker/compilers (#2188) by @mathbunnyru
- Analyze build time on clang as well (#2195) by @mathbunnyru
- Only set compile flag for grpc (#2204) by @mathbunnyru
- Make GHCR lowercase (#2218) by @mathbunnyru
- Use conan v2 dirs and commands in docs (#2219) by @mathbunnyru
- Run upload_conan_deps.yml on conan.lock changes (#2227) by @mathbunnyru
- Return domainMalformed when domain is malformed (#2228) by @mathbunnyru
- Add domain to book_changes (#2229) by @mathbunnyru
- Update CI image to provide global.conf for sanitizers to affect … (#2233) by @mathbunnyru
- Use new CI image with global.conf for sanitizers to affect packa… (#2234) by @mathbunnyru
- Force reupload new artifacts (#2236) by @mathbunnyru
- Make update-libxrpl-version work with lockfile (#2249) by @mathbunnyru
- Disable conan uploads on schedule (#2253) by @mathbunnyru
- Don't cancel ci image builds (#2259) by @mathbunnyru
- Pin lxml<6.0.0 (#2269) by @mathbunnyru
- Do not allow command injection in GitHub workflows (#2270) by @mathbunnyru
- Only set package_id:confs for sanitized builds (#2261) by @mathbunnyru
- Use .contains() method where available (#2277) by @mathbunnyru
- Cleanup fmt headers (#2285) by @mathbunnyru
- Import a GPG key when running pre-commit-autoupdate (#2287) by @mathbunnyru
- Make pre-commit autoupdate PRs verified (#2289) by @mathbunnyru
- Temporarily disable dockerhub description update (#2298) by @mathbunnyru
- Usage of compiler flags for RPC module (#2305) by @godexsoft
- ASAN stack-buffer-overflow in NFTHelpersTest_NFTDataFromLedgerObject (#2306) by @godexsoft
- Add sending queue to ng web server (#2273) by @kuznetsss
- ASAN heap-buffer-overflow issue in DBHelpers (#2310) by @godexsoft
- Link with boost libraries explicitly (#2313) by @mathbunnyru
- Mark tags with dash as prerelease (#2319) by @mathbunnyru
- Prepare runner in docs workflow (#2325) by @mathbunnyru
- Fix writing into dead variables in BlockingCache (#2333) by @kuznetsss
- Handle logger exceptions (#2349) by @kuznetsss
🚜 Refactor
- Compare error_code with enum values, not hardcoded ints (#2023) by @mathbunnyru
- Add str() method to BaseTagDecorator (#2020) by @mathbunnyru
- Load balancer forwarding metrics (#2103) by @mathbunnyru
- Remove old config (#2097) by @PeterChen13579
- Use std::expected instead of std::variant for errors (#2160) by @mathbunnyru
- Simplify check_config implementation (#2247) by @mathbunnyru
- Refactor GCC image to make upgrades easier (#2246) by @mathbunnyru
- Simplify CMakeLists.txt for sanitizers (#2297) by @mathbunnyru
📚 Documentation
- Verify/review config descriptions (#1960) by @maria-robobug
- Improve wording (#2095) by @mathbunnyru
- Add information about global.conf (#2238) by @mathbunnyru
🎨 Styling
- Use pre-commit tool and add simple config (#2029) by @mathbunnyru
- Add prettier pre-commit hook (#2031) by @mathbunnyru
- Apply
go fmt
to go code (#2046) by @mathbunnyru - Add markdownlint pre-commit hook (#2038) by @mathbunnyru
- Add typos pre-commit hook (#2041) by @mathbunnyru
- Add C++ pre-commit hooks (#2039) by @mathbunnyru
- Improve actions and workflows style (#2060) by @mathbunnyru
- Use
codespell
instead oftypos
pre-commit hook (#2104) by @mathbunnyru - Mark JSON literal strings with R"JSON (#2169) by @mathbunnyru
- Beautify installation lists in Dockerfile (#2172) by @mathbunnyru
- Put static before type (#2231) by @mathbunnyru
- Fix JSON style in C++ code (#2262) by @mathbunnyru
- Add pre-commit hook to fix JSON style in C++ code (#2266) by @mathbunnyru
- Update pre-commit hooks (#2290) by @github-actions[bot]
🧪 Testing
- Add
build_and_test
reusable workflow (#2048) by @mathbunnyru - Remove SetUp and TearDown methods in tests (#2086) by @mathbunnyru
- Increase cassandra timeouts in tests (#2127) by @mathbunnyru
- Run undefined sanitizer without ignoring errors (#2134) by @mathbunnyru
- Skip slow DB sleep-based test on Mac (#2148) by @mathbunnyru
⚙️ Miscellaneous Tasks
- Add git-cliff config (#1965) by @kuznetsss
- Pin cmake 3.31.6 for macos runners (#1983) by @kuznetsss
- Update maintainers (#1987) by @godexsoft
- Update workflow notification settings (#1990) by @godexsoft
- Fix clang-tidy 'fixes' (#1996) by @godexsoft
- Run dependabot for all local actions (#2018) by @mathbunnyru
- Pin external actions using hashes (#2019) by @mathbunnyru
- Fix time field to be string in dependabot config (#2024) by @mathbunnyru
- [DEPENDABOT] bump docker/build-push-action from 5.4.0 to 6.15.0 in /.github/actions/build_docker_image (#2027) by @dependabot[bot]
- Remove dead code related to centos (#2028) by @mathbunnyru
- [DEPENDABOT] bump docker/build-push-action from 6.15.0 to 6.16.0 in /.github/actions/build_docker_image (#2030) by @dependabot[bot]
- Specify...
2.5.0-rc3
Introducing Clio version 2.5.0-rc3
Version 2.5.0-rc3 of Clio, an XRP Ledger API server optimized for HTTP and WebSocket API calls, is now available.
This is a pre-release and it is not recommended to use this version in production.
SHA256 checksums
698546ee343e4ad9324495f2d157d1770d1e5a1de1c45e4dbb1818e8867d5b46 ./clio_server_Linux_Release_gcc.zip
2afaae09a97830f9f76e58dbfd6b18f23244a2620fde3c0202bb9296d09b655e ./clio_server_macOS_Release_apple-clang.zip
2.5.0-rc2
Introducing Clio version 2.5.0-rc2
This is a release candidate 2.5.0-rc2 of Clio, an XRP Ledger API server optimized for HTTP and WebSocket API calls.
This is a pre-release and it is not recommended to use this version in production.
SHA256 checksums
26b1ce7e3c510a95460f93d863ca7c0473d5e6e7b8577ff4df921dafec39bb18 ./clio_server_Linux_Release_gcc.zip
74620f82fe00cbc7a374aa923fa2e3ed9f6e6ee7e22f9a5d45df1d2e6f6417ed ./clio_server_macOS_Release_apple-clang.zip
2.4.1
Introducing Clio version 2.4.1
Version 2.4.1 of Clio, an XRP Ledger API server optimized for HTTP and WebSocket API calls, is now available. This release adds bug fixes.
What's Changed
🚀 Features
- Experimental dosguard API weights (#2082) by @kuznetsss
- Forwarding metrics (#2128) by @kuznetsss
🐛 Bug Fixes
- Fix ssl in new webserver (#1981) by @kuznetsss
- Incorrect set HighDeepFreeze flag (#1978) by @PeterChen13579
- Fix incorrect requests logging (#2005) by @kuznetsss
- Guarantee async behaviour of WsBase::send (#2100) by @godexsoft
Testing Credits
- Thanks to @mounikakun and others for testing this release.
To report an issue or propose a new idea, please open an issue.
2.4.0
Introducing Clio version 2.4.0
Version 2.4.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.
Notable New Features
- Refactor of Clio config and generation of config descriptions
- Snapshot exporting tool
- Expose ledger cache full and disabled to prometheus
Amendment Support
The following amendments have been introduced since Clio 2.3.1 and have transaction model changes. Clio 2.4.0 is built with libxrpl
2.4.0, which supports these amendments.
If these amendments are enabled and you have not upgraded Clio to 2.4.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.
Whats's changed
🚀 Features
- Add Conan profiles for common Sanitizers to docker ci image (#1856) by @godexsoft
- ETLng task manager (#1843) by @godexsoft
- Support Dynamic NFT (#1525) by @cindyyan317
- Permissioned domains (#1841) by @kuznetsss
- Run tests with sanitizers in CI (#1879) by @godexsoft
- Generate config descriptions (#1842) by @PeterChen13579
- Support Simulate (#1891) by @PeterChen13579
- Snapshot exporting tool (#1877) by @cindyyan317
- ETLng monitor (#1898) by @godexsoft
- LPT freeze (#1840) by @shawnxie999
- Add workflow to check config description (#1894) by @PeterChen13579
- Add support for deep freeze (#1875) by @PeterChen13579
- Implement and use LedgerCacheInterface (#1955) by @godexsoft
- Expose ledger cache full and disabled to prometheus (#1957) by @kuznetsss
🐛 Bug Fixes
- CacheLoader causes crash when no cache is used (#1853) by @kuznetsss
- Re-add account_tx max limit (#1855) by @godexsoft
- Array parsing in new config (#1884) by @kuznetsss
- Array parsing in new config (#1896) by @kuznetsss
- Better errors on logger init failure (#1857) by @kuznetsss
- Fix backtrace usage (#1932) by @kuznetsss
- Data race in new webserver (#1926) by @kuznetsss
- Fix dangling reference in new web server (#1938) by @kuznetsss
- Change math/rand to crypto/rand (#1941) by @PeterChen13579
- Improve error message when starting read only mode with empty DB (#1946) by @kuznetsss
- Fix url check in config (#1953) by @kuznetsss
🚜 Refactor
- Use mutex from utils (#1851) by @kuznetsss
- Remove boost filesystem (#1859) by @PeterChen13579
📚 Documentation
- Move metrics and static analysis docs (#1864) by @maria-robobug
🎨 Styling
- Use error code instead of exception when parsing json (#1942) by @kuznetsss
🧪 Testing
- Add non-admin test for simulate (#1893) by @PeterChen13579
- Add assert mock to avoid death tests (#1947) by @kuznetsss
⚙️ Miscellaneous Tasks
- Fix issue found by clang-tidy (#1849) by @kuznetsss
- Fix error in grafana dashboard example (#1878) by @kuznetsss
- Revert workflow names (#1890) by @godexsoft
- Upload cache only for develop branch (#1897) by @kuznetsss
- Use ubuntu latest for some ci jobs (#1939) by @kuznetsss
- Update libxrpl (#1943) by @PeterChen13579
- Upgrade libxrpl to 2.4.0 (#1961) by @kuznetsss
Full Changelog: 2.3.1...2.4.0
Testing Credits
- Thanks to @mounikakun and others for testing this release.
To report an issue or propose a new idea, please open an issue.
2.3.1
Introducing Clio version 2.3.1
Version 2.3.1 of Clio, an XRP Ledger API server optimized for HTTP and WebSocket API calls, is now available. This release adds bug fixes.
What's Changed
- chore: Update libxrpl to 2.3.1 by @kuznetsss in #1866
- fix: Remove InvalidHotWallet Error from gateway_balances RPC handler … by @nkramer44 in #1830
- fix: gateway_balance discrepancy by @cindyyan317 in #1839
Full Changelog: 2.3.0...2.3.1
2.3.0
Introducing Clio version 2.3.0
Version 2.3.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.
Notable New Features
- AmendmentCenter: central place to query amendment-related data
ledger_index
API: returns latest closed ledger index before the given date- More verbose forwarding errors
- Native
feature
API - Add
force_forward
field in requests - Cache on
server_info
API
Amendment Support
The following amendments have been introduced since Clio 2.2.5 and have transaction model changes. Clio 2.3.0 is built with libxrpl
2.3.0, which supports these amendments.
If these amendments are enabled and you have not upgraded Clio to 2.3.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.
Whats's changed
🚀 Features
- AmendmentCenter (#1418)
- Ledger index (#1503)
- More verbose forwarding errors (#1523)
- Native Feature RPC (#1526)
- Add stop to WorkQueue (#1600)
- Move/copy support in async framework (#1609)
- Delete-before support in data removal tool (#1649)
- Add 'force_forward' field to request (#1647)
- Server info cache (#1671)
- ETLng Registry (#1713)
- Upgrade to
libxrpl 2.3.0-rc1
(#1718) - Implement MPT changes (#1147)
- Add Support Credentials for Clio (#1712)
- Upgrade to
libxrpl 2.3.0-rc2
(#1736)
🐛 Bug Fixes
- Duplicate messages when subscribe both accounts and proposed_accounts (#1415)
- Remove unused file (#1496)
- Fix extra brackets in warnings (#1519)
- Fix the ledger_index timezone issue (#1522)
- Change the field name from "close_time_iso" to "closed (#1531)
- Compatible
feature
response (#1539) - Relax error when
full
oraccounts
set tofalse
(#1540) - Add more account check (#1543)
- Support deleted object in ledger_entry (#1483)
- Fail to deduplicate the same nfts in ttNFTOKEN_CANCEL_OFFER (#1542)
- Static linkage (#1551)
- NftData unique bug (#1550)
- LedgerEntryNotExist unittest failure (#1564)
- Remove cassandra from log (#1557)
- Account_objects returns error when filter does not make sense (#1579)
- Use doxygen 1.12 (#1587)
- Support conan channels in
check_libxrpl
flow (#1583) - AccountNFT with invalid marker (#1589)
- Not forward admin API (#1628)
- Fix logging in SubscriptionSource (#1617) (#1632)
- Subscription source bugs fix (#1626) (#1633)
- Don't forward ledger API if 'full' is a string (#1640)
- Add more restrictions to admin fields (#1643)
- No restriction on type field (#1644)
- Pre-push tag (#1614)
- Upgrade Cassandra driver (#1646)
- Add no lint to ignore clang-tidy (#1660)
- Workaround for gcc12 bug with defaulted destructors (#1666)
- Deletion script will not OOM (#1679)
- Remove log (#1694)
- Example config syntax (#1696)
- Fix timer spurious calls (#1700)
- Fix issues clang-tidy found (#1708)
- Add queue size limit for websocket (#1701)
- Support Delete NFT (#1695)
- Credential error message (#1738)
- Authorized_credential elements in array not objects bug (#1744) (#1747)
- Add upper bound to limit
🚜 Refactor
- Structure global validators better (#1484)
- Separate fixtures (#1495)
- Refactor main (#1555)
- Clio Config (#1544)
- Move interval timer into a separate class (#1588)
- Create interface for DOSGuard (#1602)
- Subscription Manager uses async framework (#1605)
- Remove SubscriptionManagerRunner (#1623)
- Clio Config (#1593)
- Coroutine based webserver (#1699)
📚 Documentation
- Mention conventional commits (#1490)
- Use non-admin WS port (#1592)
- Document how to build with custom libxrpl (#1572)
🧪 Testing
- Add more tests for warnings (#1532)
- Make ForwardingSource tests more stable (#1607)
- Add test for WsConnection for ping response (#1619)
⚙️ Miscellaneous Tasks
- Added conventional commits check (#1487)
- Upgrade to libxrpl 2.3.0-b1 (#1489)
- Add permissions to pr title check workflow (#1491)
- Turn off PR labelling (#1492)
- Clio docker image (#1509)
- Fix nightly (#1514)
- Fix bugs in nightly docker publishing (#1520)
- Setup dependabot for github-actions (#1556)
- Update clang-format and ccache (#1559)
- Bump peter-evans/create-pull-request from 5 to 6 (#1560)
- Bump crazy-max/ghaction-import-gpg from 5 to 6 (#1561)
- Bump actions/configure-pages from 4 to 5 (#1562)
- Bump wandalen/wretry.action from 1.4.10 to 3.5.0 (#1563)
- Fix errors in docker image uploading (#1570)
- Fix nightly release workflow (#1577)
- Bump peter-evans/create-pull-request from 6 to 7 (#1636)
- Revert Cassandra driver upgrade (#1656)
- Update libxrpl to 2.3.0-b4 (#1667)
- Apply commits for
2.3.0-b4
(#1725) - Bump ytanikin/PRConventionalCommits from 1.2.0 to 1.3.0 (#1670)
- Upgrade to llvm 19 tooling (#1681)
- Remove unused static variables (#1683)
- Add counter for total messages waiting to be sent (#1691)
- Fix nightly build (#1709)
- Bump wandalen/wretry.action from 3.5.0 to 3.7.0 (#1714)
- Bump wandalen/wretry.action from 3.7.0 to 3.7.2 (#1723)
- Add relevant changes from develop (#1762)
Full Changelog: 2.2.5...2.3.0
Contributors
- @PeterChen13579
- @cindyyan317
- @godexsoft
- @kuznetsss
- @legleux
- @mDuo13 - first time contribution in #1572
- @shawnxie999
- @yinyiqian1 - first time contribution in #1495
To report an issue or propose a new idea, please open an issue.
2.2.5
Introducing Clio version 2.2.5
Version 2.2.5 of Clio, an XRP Ledger API server optimized for HTTP and WebSocket API calls, is now available. This release adds a bug fix and feature
What's Changed
- Add changes that were included as part of Version 2.2.3 but omitted from Version 2.2.4 in 2.2.4...2.2.3
- Add counter for total messages waiting to be sent by @cindyyan317 in #1691
Database Migration
If you are currently running Clio 1.0.4 or earlier and upgrading, you must perform a database migration to properly support NFT data. See the clio_migrator
branch and its README for instructions.
Full Changelog: 2.2.4...2.2.5
2.2.4
Introducing Clio version 2.2.4
Version 2.2.4 of Clio, an XRP Ledger API server optimized for HTTP and WebSocket API calls, is now available. This release adds a bug fix.
What's Changed
- fix: Static linkage by @godexsoft in #1551
Database Migration
If you are currently running Clio 1.0.4 or earlier and upgrading, you must perform a database migration to properly support NFT data. See the clio_migrator
branch and its README for instructions.
Full Changelog: 2.2.3...2.2.4