|
| 1 | +# DigiByte Core v8.26.2 Release Notes |
| 2 | + |
| 3 | +**Release Date:** January 2026 |
| 4 | +**Full Changelog:** https://github.com/DigiByte-Core/digibyte/compare/v8.26.1...v8.26.2 |
| 5 | + |
| 6 | +## Summary |
| 7 | + |
| 8 | +DigiByte Core v8.26.2 is a maintenance release containing critical bug fixes for RPC performance and correctness issues. **All users are strongly encouraged to upgrade.** |
| 9 | + |
| 10 | +This release addresses two bugs that were introduced during the Bitcoin Core v26.2 merge: |
| 11 | + |
| 12 | +1. **Performance regression** in `getblockchaininfo` RPC (6-10x slowdown) |
| 13 | +2. **Incorrect difficulty reporting** in `getmininginfo` RPC |
| 14 | + |
| 15 | +## Notable Changes |
| 16 | + |
| 17 | +### Fix: `getblockchaininfo` RPC Performance Regression (#345) |
| 18 | + |
| 19 | +**Issue:** The `getblockchaininfo` RPC call was taking approximately 3 seconds to complete on nodes with fully synced chains, compared to sub-second responses in previous versions. |
| 20 | + |
| 21 | +**Root Cause:** The Bitcoin Core v26.2 merge inadvertently changed the difficulty calculation to use `GetLastBlockIndexForAlgo()`, which performs an O(n) linear search through the blockchain to find the last block for each mining algorithm. With DigiByte's ~23 million blocks and 5-6 difficulty lookups per RPC call, this caused significant latency. |
| 22 | + |
| 23 | +**Fix:** Changed to use `GetLastBlockIndexForAlgoFast()`, which uses DigiByte's pre-existing O(1) cached algorithm lookup infrastructure. This function is already proven in PoW validation code paths. |
| 24 | + |
| 25 | +**Impact:** |
| 26 | +- Before: ~3 seconds per RPC call |
| 27 | +- After: ~0.3-0.5 seconds per RPC call |
| 28 | +- **6-10x performance improvement** |
| 29 | + |
| 30 | +### Fix: `getmininginfo` Difficulty Returns Wrong Algorithm (#346) |
| 31 | + |
| 32 | +**Issue:** The `difficulty` field in `getmininginfo` RPC was returning a fixed value that didn't change regardless of the current mining algorithm. Investigation revealed it was always returning Groestl's difficulty (algo=2). |
| 33 | + |
| 34 | +**Root Cause:** During the Bitcoin Core v26.2 merge, the `miningAlgo` parameter was accidentally omitted from the `GetDifficulty()` call, causing it to default to algorithm 2 (Groestl) instead of using the node's configured mining algorithm. |
| 35 | + |
| 36 | +**Fix:** Restored the `miningAlgo` parameter to the `GetDifficulty()` call so that the reported difficulty correctly reflects the current mining algorithm. |
| 37 | + |
| 38 | +**Impact:** Mining pools and monitoring tools now receive correct difficulty values for their configured algorithm. |
| 39 | + |
| 40 | +## Files Changed |
| 41 | + |
| 42 | +| File | Change | |
| 43 | +|------|--------| |
| 44 | +| `src/rpc/blockchain.cpp` | Use fast O(1) algorithm lookup for difficulty calculation | |
| 45 | +| `src/rpc/mining.cpp` | Restore miningAlgo parameter to GetDifficulty() call | |
| 46 | + |
| 47 | +## Upgrade Instructions |
| 48 | + |
| 49 | +### For Node Operators |
| 50 | + |
| 51 | +1. Stop your DigiByte node: `digibyte-cli stop` |
| 52 | +2. Replace binaries with v8.26.2 release |
| 53 | +3. Start node: `digibyted` |
| 54 | + |
| 55 | +No configuration changes or reindex required. |
| 56 | + |
| 57 | +### For Miners and Mining Pools |
| 58 | + |
| 59 | +This release is **critical** for mining operations. The `getmininginfo` bug caused incorrect difficulty reporting which could affect stratum difficulty calculations. |
| 60 | + |
| 61 | +1. Update to v8.26.2 immediately |
| 62 | +2. Verify correct difficulty reporting: `digibyte-cli getmininginfo` |
| 63 | +3. Confirm the `difficulty` field matches your configured mining algorithm |
| 64 | + |
| 65 | +### For Exchanges and Services |
| 66 | + |
| 67 | +The performance improvement in `getblockchaininfo` may significantly reduce RPC latency for monitoring and status checks. No action required beyond the standard upgrade process. |
| 68 | + |
| 69 | +## Testing |
| 70 | + |
| 71 | +Both fixes include regression tests to prevent future occurrences: |
| 72 | +- Performance benchmarks for `getblockchaininfo` RPC |
| 73 | +- Algorithm-specific difficulty verification in `feature_digibyte_multialgo_mining.py` |
| 74 | + |
| 75 | +## Credits |
| 76 | + |
| 77 | +Thanks to the community members who reported these issues and contributed to the investigation: |
| 78 | + |
| 79 | +- Issue #345 reported by community members experiencing RPC slowdowns |
| 80 | +- Issue #346 reported by mining pool operators noticing incorrect difficulty values |
| 81 | + |
| 82 | +## SHA256 Checksums |
| 83 | + |
| 84 | +SHA256 checksums for all release binaries are published on the [GitHub Releases page](https://github.com/DigiByte-Core/digibyte/releases/tag/v8.26.2). |
| 85 | + |
| 86 | +## Previous Release |
| 87 | + |
| 88 | +For changes in v8.26.1, see: https://github.com/DigiByte-Core/digibyte/releases/tag/v8.26.1 |
0 commit comments