mirror of
https://github.com/Xahau/xahaud.git
synced 2026-09-27 15:38:01 +00:00
Resolves the 28 conflicts from cherry-picking XRPLF/rippled 1506e65558 (#5570) onto origin/dev: - io_service -> io_context everywhere upstream renamed it, keeping the xahaud-only code around those lines (UDP door in ServerImpl, sticky endpoint selection in WorkBase with bind_executor instead of strand.wrap, useSqLiteStore in PeerfinderManager, RPCSub after #677). - src/xrpld/rpc/detail/RPCSub.cpp (upstream path) dropped; xahaud's copy lives at src/xrpld/net/detail/RPCSub.cpp and its local io_service is renamed there. - conanfile.py: boost/1.88.0 in xahaud's override form, without_cobalt on gcc/clang; boost::boost kept. - Boost 1.88 removes the io_service typedef and address::from_string and makes Boost.Process v2 the default: the #677 tests move to io_context, executor_work_guard and make_address; Main.cpp includes the v1 process headers it already uses instead of the umbrella. Not yet compiled.
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.