Files
pallectrum/CHANGELOG.md
davide3011 9c3d9e0755 Release v1.1.0
Bump version to 1.1.0 across version.py, README, manifest.json and
CHANGELOG. Update user guide with troubleshooting section covering the
SSL certificate reset workflow
2026-02-19 10:32:41 +01:00

582 lines
23 KiB
Markdown

# Changelog
All notable changes to Pallectrum will be documented in this file.
**Pallectrum** is a lightweight wallet client for the Palladium blockchain.
It is based on Electrum Bitcoin Wallet, adapted to support Palladium's network
and consensus rules. Palladium is a Bitcoin fork with custom parameters and features.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
---
## [Unreleased]
### Added
- Placeholder for future changes
---
## [1.1.0] - 2026-02-19
### Overview
This release adds ARM64/aarch64 platform support, native Palladium URI scheme integration, a unified network reset feature for both desktop and Android interfaces, and several bug fixes and documentation improvements.
### Added
- **ARM64/aarch64 support**: AppImage builds now include a dedicated ARM64 variant for Linux on aarch64 hardware.
- **ARM64 QML support**: Android/QML interface now works on ARM64 devices with pinned PyQt6 dependencies (`PyQt6>=6.7.0,<6.8.0`) to ensure compatibility where PyQt6 ≥ 6.9 is unavailable.
- **Palladium URI scheme**: Donation flow and payment handling now use the `palladium:` URI scheme instead of `bitcoin:`.
- **Reset SSL certificates**: New action in both Qt (Server tab) and QML (Server Settings) to delete locally cached TLS certificates and force re-fetch on reconnect. Useful when a server renews its self-signed certificate.
- **Reset known servers**: New action alongside SSL reset to clear the list of recently used servers, available in both Qt and QML interfaces.
- **Troubleshooting section in user guide**: Added documentation explaining SSL certificate caching, why self-signed certificates require manual reset, and step-by-step instructions for both Android and desktop.
### Fixed
- **WIF deserialization bug**: Fixed incorrect private key deserialization for Palladium network parameters.
- **Docker build warning**: Resolved undefined `TARGETARCH` variable warning in multi-platform Docker builds.
- **Whitepaper link**: Updated Help → White Paper URL to the correct repository (`palladium-coin/whitepaper`).
- **Browser opening on Linux**: `webopen()` now uses `xdg-open` instead of Python's `webbrowser` module, preventing text-based browsers (e.g. `w3m`) from being selected instead of the desktop browser.
### Changed
- **README**: Updated "Running from Source" section with clear numbered steps, separate x86_64 and ARM64 dependency instructions, and improved QML optional section.
---
## [1.0.1] - 2026-01-10
### Changed
- **Rebrand icons**: Updated all application icons with new Pallectrum logo.
---
## [1.0.0] - 2025-12-10
### Overview
**First Stable Release!** This milestone release marks Pallectrum as production-ready for the Palladium blockchain. After extensive testing and refinement through beta versions (0.9.x), Pallectrum 1.0.0 provides a stable, user-friendly wallet experience with complete rebranding, improved UI/UX, and high-quality visual assets.
### Highlights
- Complete rebranding from Electrum to Pallectrum across all interfaces
- Improved UI/UX for both desktop and mobile platforms
- High-quality icon set refresh with better visual consistency
- Robust build system for Windows, Linux, and Android
- Production-ready stability and performance
### Fixed
#### UI Improvements
**1. Fix(QML): Resolve text overlap in transaction input display**
- **Issue**: Transaction input information (short_id and value) overlapped on small screens or with long identifiers in Android QML interface
- **Solution**: Split transaction input display into two separate rows
- First row: displays input index (#) and short_id with text eliding (Text.ElideRight)
- Second row: displays value amount and unit with left margin indent
- **Impact**: All transaction input information remains visible and readable without UI elements overlapping, especially important for coinbase inputs and transactions with long identifiers
**2. Fix: Update seed dialog window title from Electrum to Pallectrum**
- Changed window title from "Electrum - Seed" to "Pallectrum - Seed" in Wallet > Seed dialog
- Completes branding consistency across desktop Qt interface
#### Branding & References
**3. Fix(constants): Update bug report references to Pallectrum**
- Changed bug report URLs from `spesmilo/electrum` to `palladium-coin/pallectrum`
- Updated "Electrum" to "Pallectrum" in Help > Report Bug dialog text
- Ensures users report issues to the correct repository
#### Build System
**4. Fix(build): Update shortcuts to reference Pallectrum executable**
- Fixed Windows desktop and start-menu shortcuts to use correct executable path
- Updated Windows registry entries for proper application launching
- Ensures shortcuts work correctly after installation
### Changed
#### Visual Assets Refresh
**5. Complete icon set rebuild with improved quality**
- Rebuilt all icon resolutions from 1024px master source for optimal clarity
- Improved scaling quality using NoAura/LoHalo interpolation algorithms
- Enhanced Windows .ico file quality with better anti-aliasing
- Cleaned duplicate assets and aligned icon files across all platforms
- **Result**: Better visual quality on all screen resolutions (desktop, mobile, high-DPI displays)
### Download
Release binaries available at: https://github.com/palladium-coin/pallectrum/releases/tag/v1.0.0
- **Windows Portable**: `pallectrum-1.0.0-portable.exe` (recommended for USB drives)
- **Windows Installer**: `pallectrum-1.0.0-setup.exe` (standard installation)
- **Linux AppImage**: `pallectrum-1.0.0-x86_64.AppImage` (all distributions)
- **Android APK**: `pallectrum-1.0.0.apk`
### Checksums
SHA256 checksums will be provided in the release notes.
---
## [0.9.1] - 2025-12-09
### Overview
This release fixes critical build system issues for Linux AppImage reproducibility. Linux builds are new to Pallectrum and were not available in previous versions.
### Fixed
#### 1. Fix: Type2-runtime path resolution for reproducible AppImage builds
**Issue resolved**: Building with `ELECBUILD_COMMIT` failed with "Unable to load provided runtime file" errors.
**Root Cause**:
- Reproducible builds create a fresh git clone for deterministic output
- Type2-runtime binary built in original project directory was inaccessible to fresh clone
- Runtime cache location changed between contexts
**Implemented changes**:
a) **Runtime cache persistence** (`contrib/build-linux/appimage/make_type2_runtime.sh`)
- Changed cache to fixed `$PROJECT_ROOT` location (persists across fresh clones)
- Added validation: file exists AND non-zero size
- Automatic cleanup and rebuild if runtime is corrupted
b) **Runtime transfer for fresh clones** (`contrib/build-linux/appimage/build.sh`)
- Copies pre-built runtime from original project to fresh clone when `ELECBUILD_COMMIT` is set
- Creates directory structure and includes error handling
**Modified files**:
- `contrib/build-linux/appimage/build.sh` (+9 lines)
- `contrib/build-linux/appimage/make_type2_runtime.sh` (+35, -5 lines)
**Impact**:
- Reproducible builds now work without runtime errors
- Better resilience to cache corruption
- Faster builds through runtime reuse (~5-10 minutes saved)
#### 2. Fix: AppImage filename version handling for deterministic builds
**Issue resolved**: Filenames were non-deterministic, making it difficult to distinguish official releases from development builds.
**Root Cause**:
- Version determined too early (before Python installation)
- Used `git describe` which varies by repository state
**Implemented changes** (`contrib/build-linux/appimage/make_appimage.sh`):
- Moved version detection to after environment setup
- Changed from `git describe` to `print_electrum_version.py` (reads `electrum/version.py`)
- Conditional filename generation:
- **Reproducible/clean**: `pallectrum-v0.9.1-x86_64.AppImage`
- **Development**: `pallectrum-v0.9.1-<count>-g<hash>-dirty-x86_64.AppImage`
**Modified files**:
- `contrib/build-linux/appimage/make_appimage.sh` (+16, -3 lines)
**Impact**:
- Deterministic filenames for reproducible builds
- Development builds clearly marked as non-official
- Better traceability for debugging
### Technical Details
- Docker-based reproducible builds with fresh clone isolation
- Runtime cached after first build (saves 5-10 minutes on subsequent builds)
- Total changes: 3 files, 63 insertions, 8 deletions
### Testing
- Reproducible build with `ELECBUILD_COMMIT=HEAD` works without errors
- Development builds produce `-dirty` filename
- Runtime caching works across multiple builds
- AppImage executes correctly on Ubuntu 20.04+
### Upgrade Notes
**For end users**: No action required. This is a build system fix only.
**For maintainers**: Reproducible builds with `ELECBUILD_COMMIT` now work reliably.
---
## [0.9.0] - 2025-12-07
### Overview
This release introduces critical bug fixes for the Android QML app and updates to terminology and documentation to reflect Pallectrum instead of Electrum.
### Critical Bug Fixes (Android QML)
#### 1. Fix: Real-time balance updates
**Issue resolved**: The Android app balance was not updating in real-time when transactions received confirmations or when coinbase rewards became mature (120 blocks). Users had to close and restart the app to see the correct balance.
**Root Cause**:
- Missing `balanceChanged` signal emission when a transaction changed height (received blockchain confirmations)
- Missing handler for `blockchain_updated` event that notifies new blocks and coinbase maturation
**Implemented changes**:
a) **Fix for transaction confirmations**
- File: `electrum/gui/qml/qewallet.py:211`
- Added `self.balanceChanged.emit()` in `on_event_adb_tx_height_changed`
b) **Fix for coinbase maturity**
- File: `electrum/gui/qml/qewallet.py:245-250`
- Added new handler `on_event_blockchain_updated()`
- Emits `balanceChanged` when new blocks arrive
c) **Debug logging**
- File: `electrum/gui/qml/components/controls/BalanceSummary.qml:178`
- Added console.log to track balance updates
**Impact**:
- Balance updates automatically when transactions receive confirmations
- Mining rewards (coinbase) appear automatically after 120 confirmations
- No longer necessary to restart the app to see correct balance
- Better user experience for miners
#### 2. Fix: Typo correction in BalanceDetails.qml
**Issue resolved**: "Lightning swap" button was causing QML runtime errors.
**Root Cause**: Typo in QEAmount property - used `.satInt` instead of `.satsInt`
**Modified file**: `electrum/gui/qml/components/BalanceDetails.qml:217`
### Terminology and Documentation Updates
#### 3. Payment request text updates
- Replaced "Bitcoin/Electrum" references with "Palladium/Pallectrum"
- File: ReceiveTab - Request expiration section
- Changes:
- "bitcoin addresses" → "Palladium addresses"
- "electrum wallets" → "Pallectrum wallet"
- "Bitcoin address" → "Palladium address"
#### 4. Preferences → Units update
- Thousands separator checkbox: "bitcoin" → "Palladium"
#### 5. Official website link updates
- Links now point to Pallectrum GitHub repository instead of electrum.org
#### 6. Whitepaper link updates
- "Bitcoin whitepaper" references updated to reflect Palladium
- Links to project documentation on GitHub
#### 7. Windows builds documentation
- Added README.md with description of two Windows versions:
- `pallectrum-x.x.x-portable.exe` - Recommended for USB drives
- `pallectrum-x.x.x-setup.exe` - Standalone installer
#### 8. Help menu cleanup
- Removed "Check for updates" menu item that referenced Electrum update servers
- File: `electrum/gui/qt/main_window.py` (lines 844, 897-898)
- Reason: Update checker pointed to `https://electrum.org/version` which is not appropriate for Pallectrum
### Technical Details
**Balance update architecture**:
- Pattern: Event-driven reactive updates
- Thread-safe via `@qt_event_listener` decorator
- Zero overhead (signal emission is O(1))
- No polling - completely event-driven
**Performance**:
- CPU: O(1) per signal emit
- Memory: No increase
- Battery: No impact (rare events, ~1 every 10 minutes)
- Network: No additional traffic
**Event frequency**:
- `adb_tx_height_changed`: Only when wallet TX receives confirmations
- `blockchain_updated`: ~1 time every 10 minutes (new block)
### Upgrade
**For existing users**:
- No data migration required
- Existing wallets 100% compatible
- No reconfiguration needed
**What will change**:
- Balance updates automatically (no more restarts)
- Terminology updated to Palladium/Pallectrum
### Testing
**Tests performed**:
- New TX received → Balance updated
- TX receives confirmations → Balance from unconfirmed to confirmed
- Coinbase matures (120 confirmations) → Reward appears automatically
- Lightning swap button → Works correctly
- No redundant updates
---
## [0.2.0] - 2025-12-04
### Technical Cleanup and Optimization
#### Removed - Bitcoin Chain and Related References
- **Complete removal of Bitcoin chain infrastructure**
- Removed Bitcoin testnet4, signet, mutinynet, and simnet network definitions
- Deleted `chains/mainnet/` directory (servers, checkpoints, fallback nodes)
- Removed Bitcoin-specific trampoline Lightning nodes configuration
- Removed Bitcoin-specific block explorers (testnet4, signet)
- Cleaned up Ledger hardware wallet plugin (removed signet chain mapping)
- Updated crash reporter whitelist (removed testnet4, signet genesis hashes)
- **Test suite cleanup**
- Updated all test files to use Palladium as default network instead of BitcoinMainnet
- Modified 5 test files (tests/__init__.py, test_blockchain.py, test_bitcoin.py, test_psbt.py, test_network.py)
- Removed BitcoinMainnet references from test loops and teardown methods
- **Code optimization**
- Removed superfluous modules, functions, and files inherited from Electrum
- Minor code fixes and optimizations throughout the codebase
- Light refactoring to simplify and streamline the codebase
#### Changed - UI/UX Improvements
- **Visual assets update**
- Updated wallet images, icons, and graphical resources
- Improved overall visual consistency and branding
- **User interface enhancements**
- Improved layout, text clarity, and UI element positioning
- Better visual hierarchy and component spacing
- Enhanced user experience across all platforms
#### Added - Documentation and Testnet Support
- **User documentation**
- Added comprehensive user guide: `user-guide.md`
- Improved in-app help and documentation
- **Official testnet integration**
- Configured Palladium testnet parameters (ports, magic bytes, genesis hash)
- Added dedicated Electrum testnet server
- Testnet infrastructure ready for development and testing
### Development Notes
- Continued development support by Claude 4.5 Sonnet (Anthropic AI)
- Focus on code quality, maintainability, and user experience
---
## [0.1.0] - 2025-11-24
### Initial Fork Release
This is the initial fork of Electrum for the Palladium blockchain project.
**Fork Information:**
- **Forked from**: Electrum v4.6.2
- **Base commit**: [`d15598bcf034e21718e2cc1152c3ae965c5449df`](https://github.com/spesmilo/electrum/commit/d15598bcf034e21718e2cc1152c3ae965c5449df)
- **Original project**: [Electrum Bitcoin Wallet](https://github.com/spesmilo/electrum)
- **Fork date**: November 24, 2025
- **Fork maintainer**: Davide Grilli
### Added
#### Palladium Blockchain Integration
- **Palladium network parameters**
- Genesis block configuration
- Network magic bytes
- Default network ports (mainnet: 2333, testnet: 12333)
- Block time: 2 minutes (120 seconds)
- BIP44 coin type: 746
- **Palladium address format support**
- Bech32 address format (default)
- Address validation for Palladium network
- P2PKH, P2WPKH, P2SH-P2WPKH address types
- **Palladium Electrum server infrastructure**
- Default server list for Palladium network:
- 173.212.224.67:50002 (SSL) / 50001 (TCP)
- 144.91.120.225:50002 (SSL) / 50001 (TCP)
- 66.94.115.80:50002 (SSL) / 50001 (TCP)
- 89.117.149.130:50002 (SSL) / 50001 (TCP)
- Server discovery protocol adaptation
- SSL/TCP protocol support (version 1.4.2)
- **Consensus algorithm integration**
- LWMA (Lightweight Moving Average) difficulty adjustment from block 29000
- Checkpoint-based validation system (161 checkpoints covering blocks 0-324,575)
- Block reward schedule for Palladium
- Coinbase maturity: 120 blocks
#### BIP Standards Implementation
- **BIP21 URI scheme**: `palladium:` (instead of `bitcoin:`)
- Payment URI parsing and generation
- QR code integration with palladium scheme
- Amount and message parameter support
- **BIP44 derivation path**: m/44'/746'/0' (Palladium coin type)
- **Default address type**: Bech32 (p2wpkh) for WIF imports
#### User Interface & Branding
- **Complete rebranding from Electrum to Pallectrum**
- Application name and window titles
- Tray icon and notifications
- About dialog and version information (0.1.0)
- Documentation and help texts
- Terms of Use dialog
- **Currency unit changes**
- Base units: PLM, mPLM, bits, sat (instead of BTC, mBTC)
- Default unit: mPLM (5 decimal places)
- All GUI labels and input validators updated
- Chart and graph labels (BTC → PLM)
- Amount formatting and display
- **Block explorer integration**
- Default explorer: https://explorer.palladium-coin.com/
- Transaction, address, and block lookups
- **Network name display**
- Shows "Palladium Mainnet" / "Palladium Testnet"
- Updated in all GUI components (Qt, QML, text)
#### Build System
- **Docker-based reproducible builds**
- Windows (Wine): Updated for Pallectrum branding
- Linux AppImage: Updated for Pallectrum branding
- Android APK: Updated for Pallectrum branding
- All build paths changed from `electrum` to `pallectrum`
- Docker image names updated (e.g., `pallectrum-wine-builder-img`)
- **Binary naming**
- Windows: `pallectrum-VERSION-setup.exe`
- Linux: `pallectrum-VERSION-x86_64.AppImage`
- Android: `pallectrum-VERSION.apk`
- **Code signing**
- NSIS installer signed as "Pallectrum"
- Certificate setup for Windows binaries
#### Documentation
- **README.md**: Complete rewrite for Pallectrum
- Getting Started guide
- Installation instructions
- Building from source
- Palladium-specific features documentation
- Credits to original Electrum project
- **README-ELECTRUM.md**: Original Electrum v4.6.2 documentation preserved
- **AUTHORS**: Added Davide Grilli as Pallectrum maintainer
- **CHANGELOG.md**: This file, tracking all fork changes
### Changed
#### Core Functionality
- **Network connection logic** adapted for Palladium blockchain
- **Transaction validation rules** for Palladium consensus
- **Fee estimation** adapted to Palladium network conditions
- **Wallet data directory**:
- Windows: `C:\Users\<username>\AppData\Roaming\Pallectrum`
- Linux/macOS: `~/.pallectrum`
- Android: `<internal storage>/Pallectrum`
#### GUI Updates
- **Android (QML) GUI**
- Fixed all hardcoded "BTC" and "Bitcoin" references
- Updated wallet wizard and preferences
- Fixed QR code scanning (removed hardcoded BTC unit)
- Updated derivation paths (coin type 0 → 746)
- Network connection dialogs show Palladium
- **Qt (Desktop) GUI**
- Application name in all dialogs
- Notification messages
- Export/import dialogs
- Hardware wallet integration screens
- Settings and preferences panels
- **Text GUI**
- Command-line help text
- Daemon mode messages
- Error messages and prompts
#### Build Configuration
- **setup.py**: Package name, description, author updated
- **buildozer_qml.spec**: Android package domain `org.palladium.pallectrum`
- **electrum.desktop**: Linux desktop entry for Pallectrum
- **electrum.nsi**: Windows installer for Pallectrum
- **All contrib build scripts**: Updated paths and names
### Fixed
#### Critical Fixes
- **Android QML GUI crashes**
- Fixed QR code scanning crash (hardcoded "BTC" reference)
- Fixed wallet creation with incorrect derivation paths
- Fixed BIP21 URI parsing for palladium scheme
- **Address generation**
- WIF import now defaults to bech32 (p2wpkh)
- Correct derivation paths for Palladium (BIP44 coin type 746)
- **Checkpoint validation**
- LWMA difficulty algorithm incompatibility resolved
- Checkpoint-based validation ensures chain security
- Skips PoW validation for checkpointed blocks
#### UI/UX Fixes
- **Balance display**: Correct formatting with PLM units
- **Amount input**: Regex validators accept PLM notation
- **QR codes**: Generate correct palladium: URIs
- **Network status**: Shows "Palladium" instead of "Bitcoin"
- **Update check**: Disabled automatic update prompts on startup
- **Terms of Use wizard**: Fixed presplash image layout with proper sizing and edge-to-edge display
- **Watch-only wallet warning**: Replaced "Bitcoin" with "Palladium"
### Security
- Checkpoint-based validation provides security for blocks with LWMA difficulty
- 161 checkpoints covering blocks 0 through 324,575
- Will merge relevant security fixes from Electrum upstream as needed
### Removed
- Bitcoin-specific features incompatible with Palladium
- References to bitcoin.org and electrum.org in user-facing text
- Automatic update checking (to avoid confusion with Electrum updates)
### Development Notes
- Development supported by Claude 4.5 Sonnet (Anthropic AI) for code analysis, debugging, and documentation assistance
---
## Upstream Synchronization
This fork is based on Electrum and may periodically merge upstream changes for:
- **Security fixes**: Critical vulnerabilities will be merged immediately
- **Bug fixes**: Important bug fixes affecting wallet functionality
- **Performance improvements**: Optimizations that benefit Pallectrum users
**Note**: Breaking changes or Bitcoin-specific features from upstream will be evaluated
case-by-case for compatibility with Palladium blockchain.
**Upstream repository**: https://github.com/spesmilo/electrum
**Upstream releases**: https://github.com/spesmilo/electrum/releases
### Upstream Merge History
| Pallectrum Version | Based on Electrum | Upstream Commit | Merge Date | Notes |
|-------------------|-------------------|-----------------|------------|-------|
| 0.1.0 | 4.6.2 | [d15598b](https://github.com/spesmilo/electrum/commit/d15598bcf034e21718e2cc1152c3ae965c5449df) | 2025-11-24 | Initial fork |
---
## Contributing
Contributions to Pallectrum are welcome! For contributing guidelines, please refer
to the main README.
For understanding upstream Electrum changes:
- [Electrum Release Notes](https://github.com/spesmilo/electrum/blob/master/RELEASE-NOTES)
- [Electrum Contributing Guide](https://github.com/spesmilo/electrum/blob/master/CONTRIBUTING.md)
---
## Links
- **Pallectrum Repository**: https://github.com/palladium-coin/pallectrum
- **Palladium Explorer**: https://explorer.palladium-coin.com/
- **Issue Tracker**: https://github.com/palladium-coin/pallectrum/issues
### Upstream Project Links
- **Electrum Website**: https://electrum.org/
- **Electrum GitHub**: https://github.com/spesmilo/electrum
- **Electrum Documentation**: https://electrum.readthedocs.io/
---
## Version Comparison Links
- [Unreleased changes](../../compare/v0.1.0...HEAD)
- [0.1.0 Release](../../releases/tag/v0.1.0)
---
**Last Updated**: 2025-11-24
**Maintained by**: Davide Grilli