mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-20 11:05:54 +00:00
* XRPLF/develop: fix: Modify jobs to use '>>' instead of 'tee' for GITHUB_OUTPUT (#5699) refactor: Revamp CI workflows (#5661) refactor: Decouple net from xrpld and move rpc-related classes to the rpc folder (#5477) Set version to 2.6.0-rc2 docs: Updates list of maintainers and reviewers (#5687) fix: Change log to debug level for AMM offer retrieval and IOU payment check (#5686) fix: Add -Wno-deprecated-declarations for Clang only (#5680) Update .git-blame-ignore-revs for #5657 (#5675) Fix BUILD.md instruction (#5676) Set version to 2.6.0-rc1 fix: Improve logging of the reason to refuse a peer connection (#5664) fix: Make test suite names match the directory name (#5597) chore: Run prettier on all files (#5657) chore: Set CONAN_REMOTE_URL also for forks (#5662) chore: Cleanup bin/ directory (#5660) perf: Optimize hash performance by avoiding allocating hash state object (#5469)
Basics
Utility functions and classes.
ripple/basic should contain no dependencies on other modules.
Choosing a rippled 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.
-
ripple::hash_set- Where inserts and contains need to be O(1).
- For "small" sets,
std::setmight be faster and smaller.
-
ripple::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
ripple::hash_setinstead, which uses a better hashing algorithm. - Or use
ripple::hardened_hash_setto prevent algorithmic complexity attacks.