Each symbol below has no references anywhere in the tree (src/, contrib/,
tests/), and none on the in-flight FCMP++ (fcmp++-stage-new) or CARROT
(carrot_impl) integration branches; the full build still links cleanly.
Per-symbol history is given so the "why is this unused" is auditable (hashes
are ancestors of HEAD).
command_line:
- parse_command_line template: boost wrapper used by the connectivity tool and
wallet from the 2014 import; the last caller was removed in b8a08f199 (2017,
"wallet: fix --log-file not working"). Not boost's own
boost::program_options::parse_command_line, a different function still in use.
download:
- download_finished / download_error: dead on arrival - added 63f0e074e (2017,
"download: async API") but never wired to any caller.
perf_timer:
- set_performance_timer_log_level: dead on arrival - added 74dfdb0b3 (2016),
never called. It was the only writer of performance_timer_log_level, which is
therefore never reassigned and stays at its default (el::Level::Info).
Note: the unused PERF_TIMER_L / PERF_TIMER_UNIT_L macros are deliberately left
in place - the FCMP++ wallet-scanning work (fcmp++-stage-new, wallet2.cpp) uses
PERF_TIMER_L, so removing them would break that branch on rebase.
The MDB_val_copy<cryptonote::blobdata> and MDB_val_copy<const char*>
specializations have no references anywhere in the tree (src/, contrib/,
tests/); the full build still links cleanly.
They were real helpers that copied block/tx blobs and the "version" key into
LMDB from 2015 (3fcb8daf6 / f7e99047e). All instantiations were removed in
99fbe1008 (2018, "db_lmdb: save some string copies for readonly db keys/
values"), which writes blobs directly and points readonly MDB_vals at string
literals (zero-copy). Every remaining MDB_val_copy<> call site uses the
uint64_t/uint32_t/uint8_t primary template; these two specializations have sat
unused since.
Each symbol below has no references anywhere in the tree (src/, contrib/,
tests/); the full build still links cleanly. Per-symbol history is given so the
"why is this unused" is auditable (hashes are ancestors of HEAD).
net/connection_basic (all four lost their last caller in the 2022 connection
rewrite, 3be1dbd09 "connection: fix implementation"):
- to_string(t_connection_type): unused free function. Added 9bfa593ee (2015)
to print a connection's type in a debug log; 3be1dbd09 (2022) switched that
log line to std::to_string on the enum, orphaning this overload.
- do_send_handler_write / do_send_handler_write_from_queue: trace-only stubs
added eabb51960 (2015) on the TCP send path; their calls in do_send_chunk /
the write-completion handler were deleted by 3be1dbd09 (2022). The real send
path is connection<T>::start_write().
- sleep_before_packet: outbound rate-limit sleep added eabb51960 (2015);
callers were thinned over time (cf5f62361, 2017) and the last removed by
3be1dbd09 (2022). Rate-limiting now lives in connection<T>::start_write()
via the global out-throttle.
net/levin_base:
- struct bucket_head: legacy levin packet header from the 2014 epee import,
superseded by bucket_head2 (the wire header, `using header = bucket_head2`).
Its last use went away with the old levin_protocol_handler in 0c545f614
(2024, "epee/test: remove levin_protocol_handler and core_proxy tests").
- LEVIN_PROTOCOL_VER_0: dead on arrival - present since the 2014 import, never
referenced (the code uses LEVIN_PROTOCOL_VER_1).
net/net_utils_base (connection-context logging macros):
- LOG_PRINT_CC_L4: levin trace macro (2014 import); all call sites removed in
5833d66f6 (2017, "Change logging to easylogging++").
- LOG_PRINT_CCONTEXT_L3: had a single "REMOTE PEERLIST" call site, removed in
the same 5833d66f6 (2017).
- LOG_PRINT_CC_L3: only ever referenced inside LOG_PRINT_CCONTEXT_L3's body,
never invoked directly - transitively dead once the above was removed.
- LOG_CC: dead on arrival - added in 5833d66f6 (2017) but never invoked.
(The plain LOG_PRINT_L3 macro that LOG_PRINT_CC_L3/CCONTEXT_L3 wrap is still
used elsewhere and is left untouched; only these unused CC wrappers go.)
net/network_throttle:
- typedef network_MB: added eabb51960 (2015); its only consumers
(set_target_kill / m_target_MB) were stripped the same day in 5ce4256e3
(2015), leaving an unused typedef.
profile_tools:
- START_WAY_POINTS / WAY_POINT / WAY_POINT2: dead on arrival - upstream-epee
profiling macros present since the 2014 import, never once invoked (they only
ever appear as definitions in profile_tools.h across all history).
- TIME_MEASURE_PAUSE / TIME_MEASURE_RESTART and their _NS_ variants: dead on
arrival - added bda8c5983 (2017, "epee: add nanosecond timer and pause/restart
profiling macros") but never wired to any call site. Of this family only
TIME_MEASURE_START / TIME_MEASURE_FINISH are actually used.
storages:
- typedef binarybuffer (portable_storage_base): used by the binary store/load
API since the 2014 import; its last consumer (store_to_binary) was removed in
7414e2bac (2020, "Change epee binary output from std::stringstream to
byte_stream").
- the templated min_bytes() member declaration (portable_storage_from_bin):
declared but never defined or called. Added 7f407c027 (2020-12-26,
"portable_storage: add some sanity checks on data size") alongside the
ps_min_bytes<> trait struct, but the size checks were implemented via that
trait (ps_min_bytes<>::strict), so this member was never defined or wired up
- dead on arrival. The ps_min_bytes<> trait remains in use and is left intact.
330062a Optimized handle_notify_new_transactions's duplicate tx check - Check sha256 digests instead of full blobs (much less memory used) - Replace `find->insert` sequence with a single `insert` - 2x fewer hashset accesses - Preallocate the required size for the hashset (no full-table rehashes) (SChernykh)
ACKs: selsta, j-berman
- Check sha256 digests instead of full blobs (much less memory used)
- Replace `find->insert` sequence with a single `insert` - 2x fewer hashset accesses
- Preallocate the required size for the hashset (no full-table rehashes)