Commit Graph

13410 Commits

Author SHA1 Message Date
Vito
09065d90bf forces a copy of reference parameter in OverlayImpl::updateUntrustedValidatorSlot 2025-08-05 12:51:28 +02:00
Vito
45078538e9 Merge branch 'develop' into tapanito/feature/enhanced-squelching 2025-08-05 12:28:59 +02:00
Denis Angell
6419f9a253 docs: Set up developer environment with specific XCode version (#5645) 2025-08-04 10:54:54 -04:00
Ayaz Salikhov
31c99caa65 Revert "ci: Build all conan dependencies from source for now (#5623)" (#5639)
This reverts commit 9b45b6888b.
2025-07-31 14:01:43 -04:00
Bronek Kozicki
d835e97490 Fix crash in Slot::deletePeer (#5635)
Fix crash due to recurrent call to `Slot::deletePeer` (via `OverlayImpl::unsquelch`) when a peer is disconnected at just the wrong moment.
2025-07-31 13:08:34 -04:00
Vito
6a1be03732 ammends documentation changig callback to report 2025-07-31 15:05:45 +02:00
Vito
5b8dd45261 clean up imports, and typos 2025-07-31 12:48:13 +02:00
Vito Tumas
395c64bb52 Merge branch 'develop' into tapanito/feature/enhanced-squelching 2025-07-30 18:23:43 +02:00
Vito
3ca6dda72d improves expired squelch deletion 2025-07-30 18:22:10 +02:00
Vito
762fd3b6a5 improves code readability 2025-07-30 18:22:09 +02:00
Vito
f2b13797d1 adds documentation and improves squelching comments 2025-07-30 18:22:09 +02:00
Vito
4be9e6b284 removes redundant checks before erasing elements 2025-07-30 18:22:08 +02:00
Vito
4ab1e1e163 extends enhanced squelching to squelch a validator squelched by majority of peers 2025-07-30 18:22:08 +02:00
Vito
2ec5add603 adds squelchStore 2025-07-30 18:22:06 +02:00
Vito
8087785204 changes selection parameters and number of untrusted slots
Simulation results revealed that by requiring a minimum number of peers to send a message, valdiations will stop propagating, as the servers that are directly connected to peers will receive a unique message from only a single peer, the validator. Therefore, they will fail to select a slot.
Furthermore, by increasing untrusted slots to 30 we guarantee that some validators will propagate through most of the network.
2025-07-30 18:21:23 +02:00
Vito
a9a9b9976a improves code readability 2025-07-30 18:21:22 +02:00
Vito
eb805654e0 adds logic to reset validator progress and better deletion safeguards
If the validator was idle for a short period, reset it's progress. However, if the validator was idle for a long time, delete and squelch it.
Similarly, if the validator sent a lot of unique messages, but failed to reach peering constraints, squelch it.
2025-07-30 18:21:21 +02:00
Vito
8156a70f0e removes redundant scope 2025-07-30 18:21:20 +02:00
Vito
5cba8d653e adds callback to squelchAll instead of calling slots directly 2025-07-30 18:21:19 +02:00
Vito
99b2aa3702 further improves member function and attribute names 2025-07-30 18:21:18 +02:00
Vito
dcb832ecf9 improves code readability 2025-07-30 18:21:18 +02:00
Vito
5e6189d656 fixes windows tests 2025-07-30 18:21:17 +02:00
Vito
2c47fbf6c8 fixes code formatting 2025-07-30 18:21:16 +02:00
Vito
0ef0826466 decouples tests from squelching implementation 2025-07-30 18:21:16 +02:00
Vito
4960ba0f8c improves code readability 2025-07-30 18:21:15 +02:00
Vito
d22a2b82a7 removes unused test parameters 2025-07-30 18:21:14 +02:00
Vito
ea8763060c removes unused imports 2025-07-30 18:21:13 +02:00
Vito
4e9e245a03 removes unused clock 2025-07-30 18:21:13 +02:00
Vito
450129cc16 improves code readabiliy 2025-07-30 18:21:12 +02:00
Vito
8ee5d129b2 refactors squelching to use instanced clock instead of a static clock 2025-07-30 18:21:11 +02:00
Vito
529687ea73 removes duplicate untrusted slot check 2025-07-30 18:21:11 +02:00
Vito Tumas
a57fa169a8 Update src/xrpld/overlay/detail/OverlayImpl.h
Co-authored-by: Valentin Balaschenko <13349202+vlntb@users.noreply.github.com>
2025-07-30 18:21:10 +02:00
Vito
adfbb48ac6 fixes unittests for windows 2025-07-30 18:21:09 +02:00
Vito
ae38c2a2ce removes member functions from Slots used only for testing, and moves them to tests 2025-07-30 18:21:09 +02:00
Vito
15b43bda0d adds enhanced squelching tests 2025-07-30 18:21:08 +02:00
Vito
0f2fec66dc adds methods to print slot details from command 2025-07-30 18:21:07 +02:00
Vito
cf4f95a9c9 feature: extend squelching to suppress untrusted validator traffic
This feature improves network efficiency by limiting message propagation from untrusted validators.

Squelching currently reduces the volume of duplicate messages from validators but does not address the volume of unique messages from untrusted validators, who may not contribute meaningfully to network progress.

This change introduces a bounded number of slots for untrusted validators, selected based on message frequency. Once selected, their duplicate messages are subject to standard squelching logic, thereby reducing overall message overhead without impacting trusted validator performance.
2025-07-30 18:21:07 +02:00
Vito
2599defe98 adds data strcutures and methods to track red validators 2025-07-30 18:21:06 +02:00
Vito
54678dc2a4 adds method to SquelchHandler to squelch all peers 2025-07-30 18:21:06 +02:00
Vito
6bbd836adc adds methods to track which peers and validators were squelched 2025-07-30 18:21:05 +02:00
Vito
48471d5a2b adds isTrusted parameter to updateSlotAndSquelch method to differentiate messages from trusted validators 2025-07-30 18:21:05 +02:00
Vito
d37e422683 adds config option for enhanced squelching 2025-07-30 18:21:04 +02:00
Shawn Xie
baf4b8381f fix DeliveredAmount and delivered_amount in transaction metadata for direct MPT transfer (#5569)
The Payment transaction metadata is missing the `DeliveredAmount` field that displays the actual amount delivered to the destination excluding transfer fees. This amendment fixes this problem.
2025-07-29 17:02:33 +00:00
Ayaz Salikhov
9b45b6888b ci: Build all conan dependencies from source for now (#5623) 2025-07-29 15:29:38 +00:00
Bronek Kozicki
7179ce9c58 Build options cleanup (#5581)
As we no longer support old compiler versions, we are bringing back some warnings by removing no longer relevant `-Wno-...` options.
2025-07-25 15:48:22 -04:00
Bart
921aef9934 Updates Conan dependencies: Boost 1.86 (#5264) 2025-07-25 11:54:02 -04:00
Bronek Kozicki
e7a7bb83c1 VaultWithdraw destination account bugfix (#5572)
#5224 added (among other things) a `VaultWithdraw` transaction that allows setting the recipient of the withdrawn funds in the `Destination` transaction field. This technically turns this transaction into a payment, and in some respect the implementation does follow payment rules, e.g. enforcement of `lsfRequireDestTag` or `lsfDepositAuth`, or that MPT transfer has destination `MPToken`. However for IOUs, it missed verification that the destination account has a trust line to the asset issuer. Since the default behavior of `accountSendIOU` is to create this trust line (if missing), this is what `VaultWithdraw` currently does. This is incorrect, since the `Destination` might not be interested in holding the asset in question; this basically enables spammy transfers. This change, therefore, removes automatic creation of a trust line to the `Destination` account in `VaultWithdraw`.
2025-07-25 13:53:25 +00:00
Bart
5c2a3a2779 refactor: Update rocksdb (#5568)
This change updates RocksDB to its latest version. RocksDB is backward-compatible, so even though this is a major version bump, databases created with previous versions will continue to function.

The external RocksDB folder is removed, as the latest version available via Conan Center no longer needs custom patches.
2025-07-24 14:53:14 -04:00
Bronek Kozicki
b2960b9e7f Switch instrumentation workflow to use dependencies (#5607)
Before `XRPLF/ci` images, we did not have a `dependencies:` job for clang-16, so `instrumentation:` had to build its own dependencies. Now we have clang-16 Conan dependencies built in a separate job that can be used.
2025-07-24 09:20:50 -04:00
Bronek Kozicki
5713f9782a chore: Rename conan profile to default (#5599)
This change renames the `libxrpl` profile to `default` to make it more usable.
2025-07-24 10:35:47 +00:00