v1.0.5 Optimize Header Synchronization - #4
Merged
Conversation
…RTERS The original AVX512 implementation used incorrect 4-argument macros that only shuffled within single registers. For proper row/column processing, AVX512 requires inter-register shuffles using: - SWAP_HALVES for row processing (BLAKE2_ROUND_1_AVX512) - SWAP_QUARTERS/UNSWAP_QUARTERS for column processing (BLAKE2_ROUND_2_AVX512) This matches the PHC reference implementation's approach and ensures correct hash output with -O3 -march=native optimizations. Part of the fix for commit c0e59cf 'Rinhash: add native CPU optimizations' which introduced buggy SIMD code for AVX2, SSSE3, and AVX512.
The old xcb_proto 1.10 uses Python's deprecated 'imp' module which was removed in Python 3.12, causing build failures on Ubuntu 24.04. Upgrading both xcb_proto and libxcb to version 1.17.0 fixes this issue. This matches the approach from Bitcoin Core upstream. Changes: - xcb_proto: 1.10 -> 1.17.0 - libxcb: 1.10 -> 1.17.0 - Update file extensions from .tar.bz2 to .tar.gz - Keep original build configuration (shared libraries) for Qt compatibility - Use sed to remove pthread-stubs dependency inline
Qt 5.9.8 tries to define TOUCHINPUT structures that are already defined in newer MinGW-w64 headers (Ubuntu 24.04), causing redefinition errors. Add patch to check if TOUCHEVENTF_MOVE is already defined before redefining TOUCHINPUT structures in qwindowsmousehandler.cpp. This allows Windows builds to work with the MinGW-w64 version shipped in Ubuntu 24.04.
Fix compilation error in fs.cpp where std::numeric_limits was used without including <limits> header. This caused Windows builds to fail with 'numeric_limits is not a member of std' error.
Implement shift+click functionality in the coin control tree widget that allows users to check/uncheck a range of items: - If the previously clicked item was checked, shift+click unchecks all items in the range - If the previously clicked item was unchecked, shift+click checks all items in the range - Visual cursor (blue line) moves to the shift+clicked item - Coin control selection and labels (quantity, bytes, amount) update correctly - Each shift+click updates the reference point for subsequent shift+clicks This provides a more efficient way to select multiple UTXOs in both tree and list modes.
On Windows, std::ifstream/ofstream/fstream interpret narrow char paths using the system ANSI code page, not UTF-8. This causes MWEB leaf file creation to fail when the datadir path contains non-ASCII characters (e.g. accented letters in Windows usernames like TomášKuba). Add platform-aware stream wrappers (mw_ifstream, mw_ofstream, mw_fstream) that use _wfopen + __gnu_cxx::stdio_filebuf on MinGW, wstring() on MSVC, and standard streams on POSIX. Also fix Truncate() to use CreateFileW with wide-string path instead of CreateFile (CreateFileA) with UTF-8. This mirrors the approach used by fsbridge in src/fs.h for the rest of the codebase.
…eed logging
- Fix all 446 unit test failures by converting Litecoin test data to Rincoin:
* WIF keys: version 176 (LTC) → 188 (RIN) across bloom, key, descriptor,
rpc, psbt_wallet, scriptpubkeyman tests
* Addresses: P2PKH ver48→60, P2SH ver5→50, bech32 ltc/tltc/rltc→rin/trin/rrin
* MWEB addresses: ltcmweb→rinmweb HRP re-encoding
* key_io_valid.json/key_io_invalid.json: fully regenerated for RIN params
* Message signatures: regenerated with 'rincoin Signed Message' magic
* miner_tests: switch to REGTEST (segwit-aware), dynamic PoW nonce mining
* pow_tests: updated expected values for nPowTargetTimespan=118800
* validation_tests: subsidy sum corrected (21M RIN vs 84M LTC)
* amount_tests: LTC/kvB → RIN/kvB
* blockfilter_tests: skip Bitcoin-specific BIP158 test vectors
- Parallel header sync with PrecomputeHeaderHashes and parallel DGW
- Enhanced DNS seed resolution logging
- Version bump to 1.0.5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
make check # all unit tests pass (0 failures)
cd src/test/header_sync_sim && make && ./header_sync_sim