Skip to content

He4t#23

Closed
aejontargaryen wants to merge 419 commits intoelderfier-stakefrom
HE4T
Closed

He4t#23
aejontargaryen wants to merge 419 commits intoelderfier-stakefrom
HE4T

Conversation

@aejontargaryen
Copy link

@aejontargaryen aejontargaryen commented Feb 3, 2026

PR Type

Enhancement, Bug fix, Tests


Description

  • Implements comprehensive Eldernode Index Manager system with deposit monitoring, Elder Council voting, and consensus mechanisms

  • Adds FuegoTor manager for Tor integration with SOCKS5 proxy support and cross-platform compatibility

  • Introduces complete testnet wallet implementation with mnemonic seed support, transfer commands, and mining control

  • Enhances wallet service with staged unlock storage, burn deposit support, and money supply statistics

  • Implements new transaction extra field types for Elderfier deposits, messages, and HEAT wallet commitments with encryption utilities

  • Adds block versioning, Dynamic Multi-Window Difficulty Adjustment (DMWDA) algorithm, and burn deposit infrastructure to Currency

  • Fixes integer overflow vulnerabilities in BinaryInputStreamSerializer by adding LL suffix to size validation literals

  • Adds comprehensive test suite for Eldernode Index Manager covering registration, consensus, slashing, and cross-chain proofs

  • Refactors platform-specific system components (Dispatcher, TcpConnection, TcpListener, TcpConnector, Timer) to unified implementation

  • Removes legacy CI/CD workflows and documentation files, consolidating build infrastructure


Diagram Walkthrough

flowchart LR
  A["Eldernode Index Manager"] -->|"Manages deposits & voting"| B["Elder Council System"]
  C["Transaction Extra Fields"] -->|"Supports new types"| D["HEAT Wallet Commitments"]
  E["Currency Module"] -->|"Implements versioning"| F["DMWDA Difficulty Algorithm"]
  G["Wallet Service"] -->|"Handles deposits"| H["Burn Deposit Validation"]
  I["FuegoTor Manager"] -->|"Provides Tor integration"| J["SOCKS5 Proxy"]
  K["Testnet Wallet"] -->|"Manages transactions"| L["Mining & Deposits"]
  M["Bug Fixes"] -->|"Prevents overflow"| N["Integer Validation"]
Loading

File Walkthrough

Relevant files
Enhancement
6 files
EldernodeIndexManager.cpp
Complete Eldernode Index Manager Implementation                   

src/EldernodeIndexManager/EldernodeIndexManager.cpp

  • Implements comprehensive Eldernode index management system with 2700+
    lines of functionality
  • Adds Elderfier deposit monitoring, security windows, and unlock
    mechanisms
  • Implements Elder Council voting system with message inbox for
    Elderfiers
  • Includes mempool buffer security windows and transaction release logic
  • Provides consensus mechanisms, slashing functionality, and stake
    management
+2702/-0
Fuegotor.cpp
FuegoTor Manager Implementation with SOCKS5 Support           

src/FuegoTor/src/Fuegotor.cpp

  • Implements FuegoTor manager for Tor integration with SOCKS5 proxy
    support
  • Provides cross-platform compatibility (Windows and Unix-like systems)
  • Includes connection management, configuration handling, and status
    tracking
  • Adds utility functions for Tor detection and version checking
+411/-0 
TestnetWallet.cpp
Complete testnet wallet implementation with advanced features

src/TestnetWallet/TestnetWallet.cpp

  • New comprehensive testnet wallet implementation with 2244 lines of
    code
  • Includes wallet creation, import, and management functionality with
    mnemonic seed support
  • Implements transfer commands with integrated address support and
    payment ID handling
  • Provides mining control, deposit management, and transaction proof
    generation features
+2244/-0
WalletService.cpp
Enhanced wallet service with deposits, supply stats, and BPDF support

src/PaymentGate/WalletService.cpp

  • Added staged unlock storage initialization and persistence for
    deposits
  • Implemented getDepositWithStagedInfo() method to retrieve deposit
    information with staged unlock preferences
  • Enhanced deposit creation with support for burn deposits (FOREVER
    term) and dynamic minimum amounts
  • Added comprehensive money supply statistics methods including
    circulating supply, eternal flame tracking, and dynamic supply
    overview
  • Implemented burn proof data file (BPDF) generation and storage methods
  • Updated getStatus() to include network ID in response
  • Modified mixin parameters to use dynamic ring sizing
    (MIN_TX_MIXIN_SIZE_V10)
  • Added daemon synchronization checks before creating delayed
    transactions
+550/-55
TransactionExtra.cpp
Comprehensive transaction extra field types and HEAT wallet support

src/CryptoNoteCore/TransactionExtra.cpp

  • Updated copyright year from 2022 to 2026 and reorganized includes
  • Added support for new transaction extra field types:
    TX_EXTRA_ELDERFIER_DEPOSIT, TX_EXTRA_ELDERFIER_MESSAGE,
    TX_EXTRA_HEAT_COMMITMENT, TX_EXTRA_YIELD_COMMITMENT,
    TX_EXTRA_COLD_COMMITMENT, TX_EXTRA_BURN_RECEIPT, and
    TX_EXTRA_COLD_RECEIPT
  • Implemented serialization/deserialization methods for Elderfier
    deposits and messages with consensus support (QUORUM, PROOF, WITNESS
    types)
  • Added HEAT wallet helper functions including
    computeHeatRecipientHash(), computeHeatCommitment(), and
    buildHeatExtra() for cross-chain commitment handling
  • Implemented CD Deposit Secret, Burn Receipt, and Deposit Receipt
    helper functions with full serialization support
  • Added secret encryption/decryption utilities using ChaCha20 and
    Keccak256 hashing
+1248/-38
Currency.cpp
Block versioning, difficulty adjustment V6, and burn deposit
infrastructure

src/CryptoNoteCore/Currency.cpp

  • Added blockMajorVersionAtHeight() method to determine block version at
    a given height
  • Implemented versioned minimum fee structure with minimumFee() method
    supporting different fees for BMV10+ (0.0008 XFG), BMV8+ (0.008 XFG),
    and BMV7 and below (0.08 XFG)
  • Added eternal flame (burn) tracking methods: addEternalFlame(),
    removeEternalFlame(), getEternalFlame(), and getBurnPercentage()
  • Implemented nextDifficultyV6() using Dynamic Multi-Window Difficulty
    Adjustment (DMWDA) algorithm for BMV10+
  • Added burn deposit validation methods: isValidBurnDepositAmount(),
    isValidBurnDepositTerm(), isBurnDeposit()
  • Implemented XFG/HEAT conversion functions: convertXfgToHeat() and
    convertHeatToXfg()
  • Added network ID validation and burn-related cryptographic functions
    using Keccak256
  • Enhanced block reward calculation to account for burned coins in
    emission calculations
+372/-208
Debugging
1 files
NodeRpcProxy.cpp
Debug Logging for NodeRpcProxy Initialization                       

src/NodeRpcProxy/NodeRpcProxy.cpp

  • Adds debug logging statements to track initialization callback
    execution
  • Logs messages before, during, and after initialized_callback
    invocation
  • Helps diagnose callback execution flow in worker thread
+3/-0     
Bug fix
1 files
BinaryInputStreamSerializer.cpp
Copyright update and integer overflow fixes                           

src/Serialization/BinaryInputStreamSerializer.cpp

  • Updated copyright year from 2022 to 2025
  • Fixed integer overflow in array size validation by adding LL suffix to
    make it a long long literal
  • Fixed integer overflow in string size validation with same LL suffix
    fix
+3/-3     
Tests
1 files
EldernodeIndexTest.cpp
Eldernode Index Manager comprehensive test suite                 

tests/ENindexTest/EldernodeIndexTest.cpp

  • New comprehensive test suite for Eldernode Index Manager functionality
  • Tests cover Basic Eldernode registration (no stake required) and
    Elderfier Service Node registration with custom names, hashed
    addresses, and standard addresses
  • Validates Service ID creation with proper constraints (8-letter custom
    names, all caps, reserved name checking)
  • Tests tier prioritization in consensus mechanisms with Elderfier nodes
    prioritized over Basic nodes
  • Implements slashing functionality tests for Elderfier nodes with stake
    reduction verification
  • Tests Constant Stake Proof functionality for Elderado C0DL3 Validator
    cross-chain proofs with creation, renewal, and revocation
+467/-0 
Formatting
1 files
main.cpp
Formatting cleanup in payment gate service                             

src/PaymentGateService/main.cpp

  • Minor whitespace cleanup: removed trailing space after
    PaymentGateService pg;
+1/-1     
Additional files
101 files
.appveyor.yml +0/-11   
.env +19/-0   
appimage.yml +192/-24
build.yml +342/-0 
check.yml +162/-50
docker.yml +49/-32 
macOS.yml +0/-86   
raspberry-pi.yml +63/-7   
release.yml +507/-0 
termux.yml +11/-9   
ubuntu22.yml +0/-56   
ubuntu24.yml +0/-56   
windows.yml +0/-63   
.travis.yml +0/-17   
settings.json [link]   
CMakeLists.txt +293/-137
DYNAMIGO_RELEASE_V10_SUMMARY.md +206/-0 
FORK_CLASSIFICATION.md +3821/-0
LICENSE +3/-3     
Makefile +32/-4   
README.md +46/-3   
_config.yml +0/-1     
Dockerfile +4/-4     
Dockerfile.fuego-docker +108/-0 
README-TESTNET.md +219/-0 
README-fuego-docker.md +384/-0 
README.md +6/-6     
TEST-RESULTS.md +207/-0 
docker-compose.fuego-docker.yml +196/-0 
docker-compose.testnet.yml +99/-0   
docker-compose.yml [link]   
fuego-backup.sh +379/-0 
fuego-cli.sh +372/-0 
fuego-docker-setup.sh +406/-0 
prometheus.yml +8/-0     
prometheus.yml +24/-0   
index.html +40/-0   
nginx.conf +39/-0   
setup-testnet.sh +193/-0 
ADAPTIVE_DIFFICULTY_ALGORITHM.md +153/-0 
BURN2MINT_BANKING_FEATURES.md +434/-0 
CONTRIBUTING.md +1/-1     
COPYING.md [link]   
COPYRIGHT [link]   
DYNAMIC_RING_SIZE.md +209/-0 
DYNAMIC_SUPPLY_README.md +523/-0 
ELDERFIERS_EXPLAINED.md +417/-0 
ELDERFIER_BURN_TRIGGER_SLASHING_GUIDE.md +725/-0 
ELDERFIER_DEPOSIT_INDEX_INTEGRATION.md +343/-0 
ELDERFIER_DEPOSIT_MONITORING_SYSTEM.md +528/-0 
ELDERFIER_DEPOSIT_SYSTEM_GUIDE.md +758/-0 
ELDERFIER_MEMPOOL_SECURITY_WINDOW_SYSTEM.md +461/-0 
ELDERFIER_SECURITY_ANALYSIS.md +433/-0 
ELDERFIER_SECURITY_WINDOW_SYSTEM.md +147/-0 
ELDERFIER_SERVICE_NODES.md +321/-0 
ELDERFIER_STAKING_MULTIPLIER_DEV_GUIDE.md +653/-0 
ELDERFIER_VOTE_CONFIRMATION_SYSTEM.md +426/-0 
ELDERFIER_VOTING_INTERFACE_SYSTEM.md +476/-0 
ELDERNODE_IMPLEMENTATION_SUMMARY.md +199/-0 
ELDERNODE_PROOF_REQUIREMENTS.md +1353/-0
FORK_CLASSIFICATION.md +3821/-0
FREE-HOSTING.md +0/-286 
MEMORY_OPTIMIZATION_STRATEGY.md +138/-0 
RASPBERRY_PI_SETUP_GUIDE.md +514/-0 
README.md +0/-20   
SECURITY.md [link]   
STAGED_DEPOSIT_UNLOCKING.md +492/-0 
TUI_Integration.md +227/-0 
sparsetable +7/-0     
httplib.h +14092/-0
CMakeLists.txt +116/-94
Changelog.txt +128/-2 
LICENSE +1/-1     
MANIFEST.in +6/-2     
Makefile +404/-0 
Makefile.mingw +49/-19 
README +6/-9     
VERSION +1/-1     
apiversions.txt +52/-1   
bsdqueue.h +0/-531 
codelength.h +27/-4   
connecthostport.c +27/-24 
connecthostport.h +7/-5     
declspec.h +0/-21   
external-ip.sh +1/-1     
igd_desc_parse.c +17/-19 
igd_desc_parse.h +5/-4     
JavaBridgeTest.java +1/-1     
testjava.bat [link]   
testjava.sh [link]   
listdevices.c +197/-0 
miniupnpc.3 +8/-5     
mingw32make.bat [link]   
minihttptestserver.c +243/-54
minisoap.c +13/-10 
minisoap.h +5/-3     
minissdpc.c +801/-46
minissdpc.h +47/-4   
miniupnpc.c +297/-616
miniupnpc.def +2/-0     
Additional files not shown

- Add apt package caching for Ubuntu builds
- Add Homebrew package caching for macOS builds
- Add vcpkg package caching for Windows builds
- Add Chocolatey package caching for Windows builds
- Add CMake build cache for faster incremental builds
- Cache keys based on CMakeLists.txt changes for proper invalidation
- Separate cache keys for CI vs Release workflows
- Significantly reduce build times by avoiding dependency reinstallation
- Correct executable names in artifact upload paths
- Change fuego-wallet to fuego-wallet-cli (actual output name)
- Change simplewallet to walletd (PaymentGateService output name)
- Change payment_gate_service to optimizer (Optimizer output name)
- Fixes 'No files were found' error in artifact uploads
- Ensures all built executables are properly uploaded as artifacts
- Replace Logging::ERROR with Logging::Level::ERROR in header files
- Fixes Windows compilation error where ERROR macro conflicts with Logging::ERROR
- Affects UpgradeDetector.h, Blockchain.h, and SimpleWallet.h
- Ensures Windows builds can compile successfully
- Use static_cast<Logging::Level>(1) instead of Logging::Level::ERROR
- Avoids Windows ERROR macro redefinition conflicts
- ERROR macro from Windows headers conflicts with enum value
- Ensures Windows builds compile successfully
- Added BrightOrange color to ConsoleTools color enum
- Updated color arrays for both Windows and Unix systems
- Changed ASCII art color from default to bright orange in fuegod
- Added comprehensive memory optimization strategy documentation
- Fixed workflow issues and resolved Boost linking errors
- Add Windows-specific Boost library configuration in CMakeLists.txt
- Set proper Boost environment variables in Windows workflow
- Pass Boost paths to CMake configuration for Windows builds
- Remove unnecessary Boost packages to reduce installation time
- This should resolve the undefined reference errors for Boost libraries
- Update artifact paths from build/ to build/src/ for all executables
- Fixes macOS artifact upload issue where no files were found
- Ensures Windows and Ubuntu artifacts are also uploaded correctly
- Executables are built in build/src/ directory, not build/ root
- Add boost-multi-index to CMakeLists.txt Boost components list
- Add boost-multi-index to Windows vcpkg installation
- Fixes fatal error: boost/multi_index_container.hpp: No such file or directory
- Required for BlockIndex.cpp and Blockchain.cpp compilation
- Cache vcpkg buildtrees and downloads directories in addition to installed
- Add cache hit/miss detection to skip Boost installation when cached
- Add post-cache steps to ensure packages are saved after successful builds
- Use more specific cache key for Boost packages
- This should reduce Windows build time from 30-45 minutes to 5-10 minutes on cache hits
- Add libboost-multi-index-dev package to Ubuntu dependencies
- Ubuntu's libboost-all-dev doesn't include multi-index component
- Add comment clarifying macOS includes multi-index by default
- Fixes CMake error: Could not find boost_multi_indexConfig.cmake
- Add brew install boost-multi-index to macOS dependencies
- macOS Homebrew boost doesn't include multi-index component
- Add CMake policies CMP0144 and CMP0167 to suppress warnings
- Fixes CMake error: Could not find boost_multi_indexConfig.cmake on macOS
- Remove non-existent libboost-multi-index-dev package
- Add diagnostic commands to check Boost installation
- Check for multi_index headers and libraries in Ubuntu
- This will help identify if Ubuntu Boost 1.74 includes multi_index
- Remove non-existent boost-multi-index Homebrew formula
- Add diagnostic commands to check macOS Boost installation
- Check for multi_index headers and libraries in Homebrew Boost
- This will help identify if macOS Boost includes multi_index
- Revert to 40c2651 which uses Homebrew Boost with header check
- Remove problematic Boost from source installation
- Use standard Homebrew Boost package
- Extend Boost::targets approach from macOS to all Unix systems (APPLE OR UNIX)
- This should resolve the undefined symbols errors for boost::filesystem and boost::program_options on Ubuntu
- The Boost::targets approach provides proper CMake target linking instead of raw library paths
- Include MSVC (Windows) in the Boost::targets approach alongside macOS and Linux
- This should resolve Windows build failures with vcpkg Boost libraries
- All platforms now use the modern Boost::targets CMake approach for consistent linking
- Keep Boost::targets for macOS and Linux (which are working)
- Use traditional Boost_LIBRARIES approach for Windows with vcpkg
- This should resolve Windows build issues while maintaining success on other platforms
- Remove unnecessary #include <boost/foreach.hpp> from files that don't use BOOST_FOREACH
- Replace BOOST_FOREACH with modern C++11 range-based for loop in NetNode.cpp
- This fixes the Windows build failure caused by missing boost/foreach.hpp in newer Boost versions
- boost/foreach.hpp was deprecated and removed in Boost 1.74+
- Replace BOOST_REVERSE_FOREACH with modern C++11 reverse iterators in Blockchain.cpp and PeerListManager.cpp
- This completes the removal of all deprecated boost/foreach.hpp dependencies
- Should fix Ubuntu build failure caused by missing BOOST_REVERSE_FOREACH macro
- Replace BOOST_SCOPE_EXIT_ALL with manual cleanup code in CryptoNoteProtocolHandler.cpp and HttpServer.cpp
- Remove #include <boost/scope_exit.hpp> from both files
- This completes the removal of all deprecated Boost headers
- Should fix Ubuntu build failure caused by missing BOOST_SCOPE_EXIT_ALL macro
- Fix (*it).second to it->second in Blockchain.cpp reverse iterator loop
- Fix connection variable scope issue in HttpServer.cpp by using pointer approach
- This should resolve the remaining compilation errors
- Change (*it).second to it->second for proper iterator dereference
- This should resolve the macOS compilation error
- Change it->second to (*it)->second since alt_chain is a list of map iterators
- Each element in alt_chain is an iterator to a map entry, so we need to dereference it first
- This should resolve the macOS compilation error
- Add boost-uuid package to the Windows vcpkg installation command
- This should resolve the missing boost/uuid/uuid.hpp header error on Windows
- Completes the Windows Boost dependency setup
ColinRitman and others added 29 commits February 9, 2026 04:20
alias 0xEA commit, xfg-stark-cli rpc commands
move alias to protected, EF sig use levin buf, some name changes
command in test_wallet, incl libjsoncpp in check

Signed-off-by: aejontargaryen <aejontargaryen@protonmail.com>
libc++

Signed-off-by: aejontargaryen <aejontargaryen@protonmail.com>
Signed-off-by: aejontargaryen <aejontargaryen@protonmail.com>
Signed-off-by: aejontargaryen <aejontargaryen@protonmail.com>
new wallet functions

Signed-off-by: aejontargaryen <aejontargaryen@protonmail.com>
Signed-off-by: aejontargaryen <aejontargaryen@protonmail.com>
Signed-off-by: aejontargaryen <aejontargaryen@protonmail.com>
Signed-off-by: aejontargaryen <aejontargaryen@protonmail.com>
Signed-off-by: aejontargaryen <aejontargaryen@protonmail.com>
Signed-off-by: aejontargaryen <aejontargaryen@protonmail.com>
Signed-off-by: aejontargaryen <aejontargaryen@protonmail.com>
Signed-off-by: aejontargaryen <aejontargaryen@protonmail.com>
still need fire_wallet

Signed-off-by: aejontargaryen <aejontargaryen@protonmail.com>
Signed-off-by: aejontargaryen <aejontargaryen@protonmail.com>
zone for sync, remove old burn amounts in favor of amount_tiers

Signed-off-by: aejontargaryen <aejontargaryen@protonmail.com>
min/max terms for walletservice, fire/test_wallet wording, rm old consts

Signed-off-by: aejontargaryen <aejontargaryen@protonmail.com>
Signed-off-by: aejontargaryen <aejontargaryen@protonmail.com>
getHeatcommitment impl

Signed-off-by: aejontargaryen <aejontargaryen@protonmail.com>
Signed-off-by: aejontargaryen <aejontargaryen@protonmail.com>
method for burns, skip Chkpnts in testnet mode, more TUI work using
current/updated methods

Signed-off-by: aejontargaryen <aejontargaryen@protonmail.com>
Signed-off-by: aejontargaryen <aejontargaryen@protonmail.com>
calculation, total ethereal (burns)status now auto-tracks from chain not
loading, add eternal flame call to rpc

Signed-off-by: aejontargaryen <aejontargaryen@protonmail.com>
- AliasIndex: standalone alias registry (moved from CommitmentIndex)
  - Dev team aliases reserved at construction (FUEGOXFG, fuegoxfg, FUEGODEV, fuegodev)
  - Elderfier aliases [A-Z0-9&], regular aliases [a-z0-9&], exactly 8 chars
  - voidAlias() removes alias when EFiD goes VOID
- elderking_ceremony now requires <ALIAS> argument
  - Validates 8-char [A-Z0-9&] format + RPC availability check
  - Embeds alias in 0xEF deposit metadata (0xEA tag + 8 bytes)
  - Auto-registered in AliasIndex when 5th deposit confirms via tryRegisterElderfier()
- completeElderfierUnstaking() now voids alias via m_aliasIndex
- Blockchain proxies route alias queries to m_aliasIndex (not CommitmentIndex)
- register_alias blocks uppercase (reserved for EFier ceremony flow)
- CommitmentIndex::clear() cleaned of stale m_aliases references
- xfg-stark submodule updated to cold-starks relay architecture

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants