Files
triangles_v5/CLEANUP_STRATEGY.md
T

2.6 KiB

Triangles Cleanup Strategy - Safe Improvements

Branch: cleanup/safe-improvements
Goal: Improve code quality without touching consensus-critical code

SAFE TO FIX

1. Compiler Warnings (Non-Consensus)

  • C++11 literal-suffix warnings - Add spaces between literals and suffixes
  • Unused variables/functions - Remove dead code (verify not consensus-critical first)
  • Deprecated-copy warnings - Fix CScript assignment operator if safe

2. Code Style Improvements

  • Remove using namespace std from headers (keep in .cpp files)
  • Standardize logging patterns
  • Improve code comments (remove unclear/misleading ones)
  • Add context to TODOs/FIXMEs

3. Documentation

  • Add inline comments for thread safety concerns
  • Document collision vulnerabilities
  • Improve function/class documentation

DO NOT TOUCH

Consensus-Critical Code

  • OpenSSL SHA256/RIPEMD160 usage - Deprecated warnings OK, do not change
  • BN_is_prime_ex - Crypto library deprecation, leave as-is
  • Hash algorithms - Third-party libraries with warnings, consensus-critical
  • Block validation logic - Any code affecting block/transaction validation
  • Merkle tree construction - Core consensus
  • Proof-of-Work/Proof-of-Stake - Staking/mining algorithms

How to Identify Consensus Code

  • Files in src/ related to: main.cpp, main.h, block validation, transaction validation
  • Anything in hash algorithm libraries
  • Cryptographic primitives
  • Network protocol message formats (version, serialization)

Incremental Testing Strategy

  1. One warning category at a time
  2. Compile after each change
  3. Test basic functionality:
    • trianglesd getinfo
    • trianglesd getblockchaininfo
    • Verify block sync works
  4. Commit incrementally with clear messages

Warning Categories (From Build Output)

1. C++11 literal-suffix: ~20 instances (util.h, net.h, alert.cpp)
2. OpenSSL deprecation: SHA256, RIPEMD160 (DO NOT FIX)
3. BN_is_prime_ex: crypto library (DO NOT FIX)
4. Deprecated-copy: CScript assignment (REVIEW CAREFULLY)
5. Unused variables/functions: Various (SAFE IF NOT CONSENSUS)

Branch History

  • Previous work: cleanup/desloppify (documentation improvements, merged to master)
  • This branch: Focus on safe compiler warnings and code quality

Verification Checklist

Before pushing each commit:

  • Code compiles successfully
  • No new warnings introduced
  • trianglesd runs without errors
  • getinfo/getblockchaininfo work
  • No consensus-critical code touched

Principle: When in doubt, don't touch it. A clean codebase is worthless if the blockchain forks.