mirror of
https://github.com/XRPLF/rippled.git
synced 2026-08-21 14:20:56 +00:00
* upstream/release/3.3.x: (41 commits) chore: Bump version to 3.3.0 chore: Bump version to 3.3.0-rc7 fix: Increase manifest protocol message size cap and fix manifests relay fix: Cap untrusted manifests per message and drop oversized ones chore: Bump version to 3.2.1 chore: Bump version to 3.2.1-rc1 fix: Cap untrusted manifests per message and drop oversized ones fix: Reject oversized validator manifest before decoding fix: Reduce untrusted manifest cache cap to 100 fix: Bound untrusted manifest cache chore: Bump version to 3.3.0-rc6 feat: Package validator-keys inside rippled chore: Bump version to 3.3.0-rc5 fix: Switch SponsorshipSet to use a delta for sfFeeAmount fix: Re-revert "fix: Set request size limits and differential pricing for get-object-by-hash calls" chore: Bump version to 3.3.0-rc4 fix: Revert "fix: Set request size limits and differential pricing for get-object-by-hash calls" chore: Bump version to 3.3.0-rc3 fix: Reduce untrusted manifest cache cap to 100 fix: Revert "fix: Reject oversized SHAMap nodes in gotStaleData and fetch-pack path" ...
Basics
Utility functions and classes.
The module xrpl/basics should contain no dependencies on other modules.
Choosing an xrpld container.
-
std::vector- For ordered containers with most insertions or erases at the end.
-
std::deque- For ordered containers with most insertions or erases at the start or end.
-
std::list- For ordered containers with inserts and erases to the middle.
- For containers with iterators stable over insert and erase.
- Generally slower and bigger than
std::vectororstd::dequeexcept for those cases.
-
std::set- For sorted containers.
-
xrpl::hash_set- Where inserts and contains need to be O(1).
- For "small" sets,
std::setmight be faster and smaller.
-
xrpl::hardened_hash_set- For data sets where the key could be manipulated by an attacker in an attempt to mount an algorithmic complexity attack: see http://en.wikipedia.org/wiki/Algorithmic_complexity_attack
The following container is deprecated
std::unordered_set- Use
xrpl::hash_setinstead, which uses a better hashing algorithm. - Or use
xrpl::hardened_hash_setto prevent algorithmic complexity attacks.