|
| 1 | +# Avian Core 4.2.0 Release Notes |
| 2 | + |
| 3 | +## Overview |
| 4 | + |
| 5 | +Avian Core 4.2.0 "Longbottom Leaf" is a maintenance and modernization release focused on improving build infrastructure, dependency freshness, GUI responsiveness, and wallet performance ahead of new feature development. |
| 6 | + |
| 7 | +**This is the final release of the 4.2.0 series, following three release candidates (RC1, RC2, RC3).** |
| 8 | + |
| 9 | +--- |
| 10 | + |
| 11 | +## Significant Changes |
| 12 | + |
| 13 | +### Build Infrastructure & Dependencies |
| 14 | + |
| 15 | +- **Qt Framework Upgrade**: 5.7.0 → 5.12.11 (LTS) |
| 16 | + |
| 17 | + - Improved stability and performance on modern systems |
| 18 | + - Better cross-platform compatibility |
| 19 | + - Enhanced security patches from upstream |
| 20 | + |
| 21 | +- **Updated Dependencies**: All depends system packages updated to current, secure versions |
| 22 | + |
| 23 | + - Ensures long-term stability and security |
| 24 | + |
| 25 | +- **CI/CD Modernization**: GitHub Actions now builds binaries for: |
| 26 | + - Windows (x64) |
| 27 | + - Linux (x64) |
| 28 | + - macOS (x64) |
| 29 | + - aarch64 (ARM 64-bit) |
| 30 | + - arm32v7 (ARM 32-bit) |
| 31 | + |
| 32 | +### Network & Protocol |
| 33 | + |
| 34 | +- **Protocol Version Bump** |
| 35 | + |
| 36 | + - Ensures compatibility with 4.1.x and newer nodes only |
| 37 | + - Pre-4.1 wallets will no longer connect, preventing sync slowdowns and network inconsistencies |
| 38 | + |
| 39 | +- **getblocktemplate Update**: Improved compliance with BIP22 specification |
| 40 | + |
| 41 | +- **Chain Parameters**: PoW hash calculation now uses chain-specific parameters correctly |
| 42 | + |
| 43 | +### GUI Improvements |
| 44 | + |
| 45 | +- **Enhanced Startup Experience** |
| 46 | + |
| 47 | + - Splash screen now remains visible with real-time progress updates |
| 48 | + - Prevents UI blocking during wallet loading |
| 49 | + - Defers network initialization to speed up GUI construction |
| 50 | + - Displays RC version information on splash screen when applicable |
| 51 | + |
| 52 | +- **UTXO Consolidation GUI Refactor** |
| 53 | + - Consolidation now runs on background thread using QtConcurrent::run() |
| 54 | + - Prevents UI freezing during long batch operations |
| 55 | + - Progress dialog fully responsive and cancelable |
| 56 | + - Uses QMetaObject::invokeMethod for thread-safe UI updates |
| 57 | + |
| 58 | +### New RPC Commands |
| 59 | + |
| 60 | +#### `getblockstats` |
| 61 | + |
| 62 | +Returns comprehensive block-level statistics including: |
| 63 | + |
| 64 | +- Transaction counts, sizes, and weights |
| 65 | +- Fee information (min, max, average, percentiles) |
| 66 | +- Input/output counts |
| 67 | +- Segwit transaction statistics |
| 68 | +- Developer fee tracking |
| 69 | +- **New**: `powtype` field indicating the block's PoW algorithm (x16rt, minotaurx, or x16r for genesis) |
| 70 | + |
| 71 | +Usage: |
| 72 | + |
| 73 | +``` |
| 74 | +getblockstats <hash_or_height> [stats] |
| 75 | +``` |
| 76 | + |
| 77 | +#### `listwatchonly` |
| 78 | + |
| 79 | +Lists all imported watch-only addresses with their labels and metadata. |
| 80 | + |
| 81 | +Usage: |
| 82 | + |
| 83 | +``` |
| 84 | +listwatchonly |
| 85 | +``` |
| 86 | + |
| 87 | +#### `removewatchonly` |
| 88 | + |
| 89 | +Removes a watch-only address from wallet storage and address book. |
| 90 | + |
| 91 | +Usage: |
| 92 | + |
| 93 | +``` |
| 94 | +removewatchonly <address> |
| 95 | +``` |
| 96 | + |
| 97 | +#### `getnodeaddresses` |
| 98 | + |
| 99 | +Lists known peer node addresses for network diagnostics. |
| 100 | + |
| 101 | +Usage: |
| 102 | + |
| 103 | +``` |
| 104 | +getnodeaddresses [count] |
| 105 | +``` |
| 106 | + |
| 107 | +#### `getindexinfo` |
| 108 | + |
| 109 | +Displays the status of active blockchain indexes. |
| 110 | + |
| 111 | +Usage: |
| 112 | + |
| 113 | +``` |
| 114 | +getindexinfo |
| 115 | +``` |
| 116 | + |
| 117 | +### Wallet & UTXO Management |
| 118 | + |
| 119 | +#### New UTXO Consolidation System |
| 120 | + |
| 121 | +Consolidates small UTXOs into larger ones to reduce future transaction costs and improve wallet performance. |
| 122 | + |
| 123 | +**RPC Command**: `consolidateutxos` |
| 124 | + |
| 125 | +``` |
| 126 | +consolidateutxos <address> [min_utxos] [max_batches] [min_amount] [max_amount] |
| 127 | +``` |
| 128 | + |
| 129 | +Parameters: |
| 130 | + |
| 131 | +- `address`: Destination address for consolidated outputs |
| 132 | +- `min_utxos`: Minimum UTXOs required before consolidation (default: 2000) |
| 133 | +- `max_batches`: Maximum number of batches to process (default: unlimited) |
| 134 | +- `min_amount`: Minimum UTXO amount to include (default: 0.01 AVN) |
| 135 | +- `max_amount`: Maximum UTXO amount to include (default: 25 AVN) |
| 136 | + |
| 137 | +**GUI Integration**: New "Consolidate UTXO Transactions" dialog with: |
| 138 | + |
| 139 | +- Configurable limits (min/max inputs, batch size, amount ranges) |
| 140 | +- Real-time UTXO display and selection |
| 141 | +- Progress tracking and cancellation support |
| 142 | +- Thread-safe background processing |
| 143 | + |
| 144 | +**Improvements in RC3**: |
| 145 | + |
| 146 | +- Improved batch counting and progress accuracy |
| 147 | +- Pre-calculates totalUTXOFiltered before consolidation loop |
| 148 | +- Applies min/max filters consistently during counting |
| 149 | +- Accurately accounts for maxBatches limit |
| 150 | +- Displays precise progress (e.g., "1 of 1" when maxBatches=1) |
| 151 | + |
| 152 | +#### New Watch-Only Address Management |
| 153 | + |
| 154 | +- `listwatchonly`: Display all imported watch-only addresses with labels |
| 155 | +- `removewatchonly`: Completely remove watch-only addresses from wallet storage and address book |
| 156 | +- Automatic GUI sync via NotifyAddressBookChanged signal |
| 157 | +- No wallet unlock required for watch-only operations |
| 158 | + |
| 159 | +### Developer & Maintenance |
| 160 | + |
| 161 | +- **NetworkUpgrade Struct**: Added for better handling of network upgrade logic |
| 162 | +- **Mainnet Checkpoint Data**: Updated to the latest block |
| 163 | +- **Help System**: Added powhashcache details to help messages |
| 164 | + |
| 165 | +--- |
| 166 | + |
| 167 | +## Bug Fixes & Performance Improvements |
| 168 | + |
| 169 | +- Fixed null pointer dereference in `getblockstats` for genesis block |
| 170 | +- Improved wallet RPC command filtering and accuracy |
| 171 | +- Performance optimizations in GUI startup sequence |
| 172 | +- Better error handling in batch UTXO operations |
| 173 | +- Fixed progress estimation for UTXO consolidation |
| 174 | + |
| 175 | +--- |
| 176 | + |
| 177 | +## Testing Recommendations |
| 178 | + |
| 179 | +### For Windows Users |
| 180 | + |
| 181 | +- Test wallet startup time and responsiveness |
| 182 | +- Verify UTXO consolidation with test wallets containing many small outputs |
| 183 | +- Check splash screen progress updates during initial sync |
| 184 | + |
| 185 | +### For Linux / macOS Users |
| 186 | + |
| 187 | +- Verify cross-platform Qt 5.12.11 compatibility |
| 188 | +- Test RPC commands (especially new ones: getblockstats, listwatchonly, removewatchonly) |
| 189 | +- Confirm network syncing with mixed 4.1.x and 4.2.0 nodes |
| 190 | + |
| 191 | +### For ARM Users (aarch64 / arm32v7) |
| 192 | + |
| 193 | +- Verify binary builds and execution on ARM hardware |
| 194 | +- Test wallet functionality and RPC operations |
| 195 | +- Confirm network connectivity and syncing |
| 196 | + |
| 197 | +### For RPC Users |
| 198 | + |
| 199 | +- Test `getblockstats` with various block heights and filters |
| 200 | +- Verify `listwatchonly` and `removewatchonly` operations |
| 201 | +- Test `getnodeaddresses` and `getindexinfo` |
| 202 | +- Confirm UTXO consolidation batch processing |
| 203 | + |
| 204 | +--- |
| 205 | + |
| 206 | +## Upgrading |
| 207 | + |
| 208 | +### From 4.1.x |
| 209 | + |
| 210 | +- Backup your wallet before upgrading |
| 211 | +- The protocol version bump means pre-4.1 nodes will disconnect from your node |
| 212 | +- You can deploy 4.2.0; it will automatically only connect to 4.1.0+ peers |
| 213 | +- UTXO consolidation is optional and accessed via GUI or RPC |
| 214 | + |
| 215 | +### From Older Versions |
| 216 | + |
| 217 | +- Direct upgrade from any prior version is supported |
| 218 | +- If you are upgrading from a version much older than 4.1.0, ensure you are on the correct chain (mainnet vs testnet) |
| 219 | +- If experiencing sync issues after upgrade, verify your peers and network connectivity |
| 220 | +- Use `-reindex` flag if you encounter blockchain validation errors |
| 221 | + |
| 222 | +--- |
| 223 | + |
| 224 | +## Known Issues |
| 225 | + |
| 226 | +None known at this time. Please report any issues via GitHub Issues. |
| 227 | + |
| 228 | +--- |
| 229 | + |
| 230 | +## Credits |
| 231 | + |
| 232 | +The Avian Core development team thanks all contributors, testers, and the community for their feedback throughout the RC process. |
| 233 | + |
| 234 | +--- |
| 235 | + |
| 236 | +## Version Information |
| 237 | + |
| 238 | +- **Version**: 4.2.0 |
| 239 | +- **Release Date**: [TBD] |
| 240 | +- **Previous Release**: 4.1.0 |
| 241 | +- **Network**: Mainnet |
| 242 | + |
| 243 | +--- |
| 244 | + |
| 245 | +## Changelog Summary |
| 246 | + |
| 247 | +- 1 new major feature (UTXO Consolidation System) |
| 248 | +- 5 new RPC commands (getblockstats, listwatchonly, removewatchonly, getnodeaddresses, getindexinfo) |
| 249 | +- 1 major dependency upgrade (Qt 5.12.11 LTS) |
| 250 | +- 30+ bug fixes and improvements |
| 251 | +- Full CI/CD modernization (5 platform builds) |
0 commit comments