forked from XRPLF/rippled
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'develop' into feature-batch
- Loading branch information
Showing
338 changed files
with
6,676 additions
and
2,478 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
name: instrumentation | ||
on: | ||
pull_request: | ||
push: | ||
# If the branches list is ever changed, be sure to change it on all | ||
# build/test jobs (nix, macos, windows, instrumentation) | ||
branches: | ||
# Always build the package branches | ||
- develop | ||
- release | ||
- master | ||
# Branches that opt-in to running | ||
- 'ci/**' | ||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
|
||
# NOTE we are not using dependencies built inside nix because nix is lagging | ||
# with compiler versions. Instrumentation requires clang version 16 or later | ||
|
||
instrumentation-build: | ||
env: | ||
CLANG_RELEASE: 16 | ||
strategy: | ||
fail-fast: false | ||
runs-on: [self-hosted, heavy] | ||
container: debian:bookworm | ||
steps: | ||
- name: install prerequisites | ||
env: | ||
DEBIAN_FRONTEND: noninteractive | ||
run: | | ||
apt-get update | ||
apt-get install --yes --no-install-recommends \ | ||
clang-${CLANG_RELEASE} clang++-${CLANG_RELEASE} \ | ||
python3-pip python-is-python3 make cmake git wget | ||
apt-get clean | ||
update-alternatives --install \ | ||
/usr/bin/clang clang /usr/bin/clang-${CLANG_RELEASE} 100 \ | ||
--slave /usr/bin/clang++ clang++ /usr/bin/clang++-${CLANG_RELEASE} | ||
update-alternatives --auto clang | ||
pip install --no-cache --break-system-packages "conan<2" | ||
- name: checkout | ||
uses: actions/checkout@v4 | ||
|
||
- name: prepare environment | ||
run: | | ||
mkdir ${GITHUB_WORKSPACE}/.build | ||
echo "SOURCE_DIR=$GITHUB_WORKSPACE" >> $GITHUB_ENV | ||
echo "BUILD_DIR=$GITHUB_WORKSPACE/.build" >> $GITHUB_ENV | ||
echo "CC=/usr/bin/clang" >> $GITHUB_ENV | ||
echo "CXX=/usr/bin/clang++" >> $GITHUB_ENV | ||
- name: configure Conan | ||
run: | | ||
conan profile new --detect default | ||
conan profile update settings.compiler=clang default | ||
conan profile update settings.compiler.version=${CLANG_RELEASE} default | ||
conan profile update settings.compiler.libcxx=libstdc++11 default | ||
conan profile update settings.compiler.cppstd=20 default | ||
conan profile update options.rocksdb=False default | ||
conan profile update \ | ||
'conf.tools.build:compiler_executables={"c": "/usr/bin/clang", "cpp": "/usr/bin/clang++"}' default | ||
conan profile update 'env.CXXFLAGS="-DBOOST_ASIO_DISABLE_CONCEPTS"' default | ||
conan profile update 'conf.tools.build:cxxflags+=["-DBOOST_ASIO_DISABLE_CONCEPTS"]' default | ||
conan export external/snappy snappy/1.1.10@ | ||
conan export external/soci soci/4.0.3@ | ||
- name: build dependencies | ||
run: | | ||
cd ${BUILD_DIR} | ||
conan install ${SOURCE_DIR} \ | ||
--output-folder ${BUILD_DIR} \ | ||
--install-folder ${BUILD_DIR} \ | ||
--build missing \ | ||
--settings build_type=Debug | ||
- name: build with instrumentation | ||
run: | | ||
cd ${BUILD_DIR} | ||
cmake -S ${SOURCE_DIR} -B ${BUILD_DIR} \ | ||
-Dvoidstar=ON \ | ||
-Dtests=ON \ | ||
-Dxrpld=ON \ | ||
-DCMAKE_BUILD_TYPE=Debug \ | ||
-DSECP256K1_BUILD_BENCHMARK=OFF \ | ||
-DSECP256K1_BUILD_TESTS=OFF \ | ||
-DSECP256K1_BUILD_EXHAUSTIVE_TESTS=OFF \ | ||
-DCMAKE_TOOLCHAIN_FILE=${BUILD_DIR}/build/generators/conan_toolchain.cmake | ||
cmake --build . --parallel $(nproc) | ||
- name: verify instrumentation enabled | ||
run: | | ||
cd ${BUILD_DIR} | ||
./rippled --version | grep libvoidstar | ||
- name: run unit tests | ||
run: | | ||
cd ${BUILD_DIR} | ||
./rippled -u --unittest-jobs $(( $(nproc)/4 )) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,6 +6,79 @@ This document contains the release notes for `rippled`, the reference server imp | |
|
||
Have new ideas? Need help with setting up your node? [Please open an issue here](https://github.com/xrplf/rippled/issues/new/choose). | ||
|
||
# Version 2.3.0 | ||
|
||
Version 2.3.0 of `rippled`, the reference server implementation of the XRP Ledger protocol, is now available. This release includes 8 new amendments, including Multi-Purpose Tokens, Credentials, Clawback support for AMMs, and the ability to make offers as part of minting NFTs. Additionally, this release includes important fixes for stability, so server operators are encouraged to upgrade as soon as possible. | ||
|
||
|
||
## Action Required | ||
|
||
If you run an XRP Ledger server, upgrade to version 2.3.0 as soon as possible to ensure service continuity. | ||
|
||
Additionally, new amendments are now open for voting according to the XRP Ledger's [amendment process](https://xrpl.org/amendments.html), which enables protocol changes following two weeks of >80% support from trusted validators. The exact time that protocol changes take effect depends on the voting decisions of the decentralized network. | ||
|
||
## Full Changelog | ||
|
||
### Amendments | ||
|
||
The following amendments are open for voting with this release: | ||
|
||
- **XLS-70 Credentials** - Users can issue Credentials on the ledger and use Credentials to pre-approve incoming payments when using Deposit Authorization instead of individually approving payers. ([#5103](https://github.com/XRPLF/rippled/pull/5103)) | ||
- related fix: #5189 (https://github.com/XRPLF/rippled/pull/5189) | ||
- **XLS-33 Multi-Purpose Tokens** - A new type of fungible token optimized for institutional DeFi including stablecoins. ([#5143](https://github.com/XRPLF/rippled/pull/5143)) | ||
- **XLS-37 AMM Clawback** - Allows clawback-enabled tokens to be used in AMMs, with appropriate guardrails. ([#5142](https://github.com/XRPLF/rippled/pull/5142)) | ||
- **XLS-52 NFTokenMintOffer** - Allows creating an NFT sell offer as part of minting a new NFT. ([#4845](https://github.com/XRPLF/rippled/pull/4845)) | ||
- **fixAMMv1_2** - Fixes two bugs in Automated Market Maker (AMM) transaction processing. ([#5176](https://github.com/XRPLF/rippled/pull/5176)) | ||
- **fixNFTokenPageLinks** - Fixes a bug that can cause NFT directories to have missing links, and introduces a transaction to repair corrupted ledger state. ([#4945](https://github.com/XRPLF/rippled/pull/4945)) | ||
- **fixEnforceNFTokenTrustline** - Fixes two bugs in the interaction between NFT offers and trust lines. ([#4946](https://github.com/XRPLF/rippled/pull/4946)) | ||
- **fixInnerObjTemplate2** - Standardizes the way inner objects are enforced across all transaction and ledger data. ([#5047](https://github.com/XRPLF/rippled/pull/5047)) | ||
|
||
The following amendment is partially implemented but not open for voting: | ||
|
||
- **InvariantsV1_1** - Adds new invariants to ensure transactions process as intended, starting with an invariant to ensure that ledger entries owned by an account are deleted when the account is deleted. ([#4663](https://github.com/XRPLF/rippled/pull/4663)) | ||
|
||
### New Features | ||
|
||
- Allow configuration of SQLite database page size. ([#5135](https://github.com/XRPLF/rippled/pull/5135), [#5140](https://github.com/XRPLF/rippled/pull/5140)) | ||
- In the `libxrpl` C++ library, provide a list of known amendments. ([#5026](https://github.com/XRPLF/rippled/pull/5026)) | ||
|
||
### Deprecations | ||
|
||
- History Shards are removed. ([#5066](https://github.com/XRPLF/rippled/pull/5066)) | ||
- Reporting mode is removed. ([#5092](https://github.com/XRPLF/rippled/pull/5092)) | ||
|
||
For users wanting to store more ledger history, it is recommended to run a Clio server instead. | ||
|
||
### Bug fixes | ||
|
||
- Fix a crash in debug builds when amm_info request contains an invalid AMM account ID. ([#5188](https://github.com/XRPLF/rippled/pull/5188)) | ||
- Fix a crash caused by a race condition in peer-to-peer code. ([#5071](https://github.com/XRPLF/rippled/pull/5071)) | ||
- Fix a crash in certain situations | ||
- Fix several bugs in the book_changes API method. ([#5096](https://github.com/XRPLF/rippled/pull/5096)) | ||
- Fix bug triggered by providing an invalid marker to the account_nfts API method. ([#5045](https://github.com/XRPLF/rippled/pull/5045)) | ||
- Accept lower-case hexadecimal in compact transaction identifier (CTID) parameters in API methods. ([#5049](https://github.com/XRPLF/rippled/pull/5049)) | ||
- Disallow filtering by types that an account can't own in the account_objects API method. ([#5056](https://github.com/XRPLF/rippled/pull/5056)) | ||
- Fix error code returned by the feature API method when providing an invalid parameter. ([#5063](https://github.com/XRPLF/rippled/pull/5063)) | ||
- (API v3) Fix error code returned by amm_info when providing invalid parameters. ([#4924](https://github.com/XRPLF/rippled/pull/4924)) | ||
|
||
### Other Improvements | ||
|
||
- Adds a new default hub, hubs.xrpkuwait.com, to the config file and bootstrapping code. ([#5169](https://github.com/XRPLF/rippled/pull/5169)) | ||
- Improve error message when commandline interface fails with `rpcInternal` because there was no response from the server. ([#4959](https://github.com/XRPLF/rippled/pull/4959)) | ||
- Add tools for debugging specific transactions via replay. ([#5027](https://github.com/XRPLF/rippled/pull/5027), [#5087](https://github.com/XRPLF/rippled/pull/5087)) | ||
- Major reorganization of source code files. ([#4997](https://github.com/XRPLF/rippled/pull/4997)) | ||
- Add new unit tests. ([#4886](https://github.com/XRPLF/rippled/pull/4886)) | ||
- Various improvements to build tools and contributor documentation. ([#5001](https://github.com/XRPLF/rippled/pull/5001), [#5028](https://github.com/XRPLF/rippled/pull/5028), [#5052](https://github.com/XRPLF/rippled/pull/5052), [#5091](https://github.com/XRPLF/rippled/pull/5091), [#5084](https://github.com/XRPLF/rippled/pull/5084), [#5120](https://github.com/XRPLF/rippled/pull/5120), [#5010](https://github.com/XRPLF/rippled/pull/5010). [#5055](https://github.com/XRPLF/rippled/pull/5055), [#5067](https://github.com/XRPLF/rippled/pull/5067), [#5061](https://github.com/XRPLF/rippled/pull/5061), [#5072](https://github.com/XRPLF/rippled/pull/5072), [#5044](https://github.com/XRPLF/rippled/pull/5044) ) | ||
- Various code cleanup and refactoring. ([#4509](https://github.com/XRPLF/rippled/pull/4509), [#4521](https://github.com/XRPLF/rippled/pull/4521), [#4856](https://github.com/XRPLF/rippled/pull/4856), [#5190](https://github.com/XRPLF/rippled/pull/5190), [#5081](https://github.com/XRPLF/rippled/pull/5081), [#5053](https://github.com/XRPLF/rippled/pull/5053), [#5058](https://github.com/XRPLF/rippled/pull/5058), [#5122](https://github.com/XRPLF/rippled/pull/5122), [#5059](https://github.com/XRPLF/rippled/pull/5059), [#5041](https://github.com/XRPLF/rippled/pull/5041)) | ||
|
||
|
||
Bug Bounties and Responsible Disclosures: | ||
|
||
We welcome reviews of the `rippled` code and urge researchers to responsibly disclose any issues they may find. | ||
|
||
To report a bug, please send a detailed report to: <[email protected]> | ||
|
||
|
||
# Version 2.2.3 | ||
|
||
Version 2.2.3 of `rippled`, the reference server implementation of the XRP Ledger protocol, is now available. This release fixes a problem that can cause full-history servers to run out of space in their SQLite databases, depending on configuration. There are no new amendments in this release. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.