Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
107 changes: 107 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,110 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

## 0.41.0 - 2025-12-30

### Added

- Use feature for console UI (#158) @QuantumExplorer
- Code analysis documentation (#159) @QuantumExplorer
- InstantLock BLS signature verification and peer reputation (#163) @PastaPastaPasta
- Buffered stateful framing for TCP connections (#167) @PastaPastaPasta
- Enhanced storage clear and balance display (#174) @PastaPastaPasta
- Comprehensive wallet FFI transaction builder (#175) @PastaPastaPasta
- DashPay support (#177) @QuantumExplorer
- Async check transaction (#178) @QuantumExplorer
- Broadcast transaction support (#180) @pauldelucia
- Update FFI headers (#183) @xdustinface
- Flush header index on shutdown and after header sync (#197) @pauldelucia
- Add `pre-commit` infrastructure (#201) @xdustinface
- Introduce `DashSpvClientInterface` (#214) @xdustinface
- DIP-17 Platform Payment account support in key-wallet (#229) @pauldelucia
- Add data directory lockfile protection (#241) @xdustinface
- Validate headers during sync (#242) @xdustinface
- Parallelize header validation with `rayon` (#243) @xdustinface
- Add `atomic_write` for atomic file writing (#245) @xdustinface
- Add logging module with file rotation support (#252) @xdustinface
- Add workflow to label PRs with merge conflicts (#265) @xdustinface
- Filter storage using segmentscache (#267) @ZocoLini
- Height based storage (#272) @ZocoLini
- Add benchmarks with criterion (#277) @ZocoLini
- Add `--mnemonic-file` CLI argument (#285) @xdustinface
- Add `network` to `FFIWalletManager` struct (#325) @xdustinface

### Changed

- Split big files in dash-spv (#160) @QuantumExplorer
- Update GitHub Actions to use ubuntu-22.04-arm (#169) @PastaPastaPasta
- Drop unused code in `dash-spv::network` (#179) @xdustinface
- Rename `MultiPeerNetworkManager` to `PeerNetworkManager` (#184) @xdustinface
- Improve SPV shutdown handling with `CancellationToken` (#187) @xdustinface
- Rename `TcpConnection` to `Peer` and `ConnectionPool` to `PeerPool` (#190) @xdustinface
- Drop unused code in `dash-spv::network` (#192) @xdustinface
- Clippy auto fixes (#198) @pauldelucia
- Make flow control syncing default (#211) @xdustinface
- Rename `HeaderSyncManagerWithReorg` to `HeaderSyncManager` (#221) @xdustinface
- Don't add a dummy in `mark_filter_received` (#222) @xdustinface
- Cleanup and simplify `MemoryStorageManager` (#224) @xdustinface
- Make `synced_from_checkpoint` based on `sync_base_height` (#226) @xdustinface
- More address matching in typo checker (#230) @xdustinface
- Use `genesis_block` for all nets in `initialize_genesis_block` (#231) @xdustinface
- Rename `SequentialSyncManager` to `SyncManager` (#235) @xdustinface
- Some restructuring in `dash-spv::sync` (#236) @xdustinface
- Cleanup SPV validation (#237) @xdustinface
- Move header validation into `sync::headers::validation` (#238) @xdustinface
- Replace SyncPhase matches wildcard usage with exhaustive match (#239) @ZocoLini
- Storage segments cleanup (#244) @ZocoLini
- Pin rust version in `rust-toolchain.toml` (#266) @xdustinface
- Less cloning in SPV message handling (#268) @xdustinface
- Make filter loading range based (#269) @xdustinface
- Single network `Wallet` and `ManagedWalletInfo` (#271) @xdustinface
- Remove all use of `dyn` (#274) @ZocoLini
- Some `ChainState` cleanups (#289) @ZocoLini
- Drop `FFINetworks` and use `FFINetwork` only (#294) @xdustinface
- Single network `WalletManager` (#299) @xdustinface
- Make wallet birth height non-optional (#300) @xdustinface

### Removed

- Drop unused sync code (#208) @xdustinface
- Drop `ChainHash` and related tests from `dash` (#228) @xdustinface
- Drop unused code in `dash-spv::sync` (#232) @xdustinface
- Drop unused code in `dash-spv::checkpoint` (#233) @xdustinface
- Remove unused struct `StorageConfig` (#273) @ZocoLini
- Remove `MemoryStorageManager` (#275) @ZocoLini
- Drop persistent sync state (#279) @ZocoLini
- Remove unused `ChainLockStats` (#281) @ZocoLini
- Remove unused orphan pool module (#282) @ZocoLini
- Remove `StorageStats` (#283) @ZocoLini
- Remove duplicate quorum validation logic (#284) @ZocoLini
- Drop unused `lookahead` (#288) @xdustinface
- Remove unused filters field from `ChainState` (#293) @xdustinface
- Move logo and protx test data files to contrib (#295) @xdustinface
- Remove unused `swift-dash-core-sdk` (#301) @xdustinface

### Fixed

- CFHeaders overlap verification and underflow prevention (#163) @PastaPastaPasta
- FFI event flooding and memory leak in progress callbacks (#173) @PastaPastaPasta
- `PeerNetworkManager` cast in `broadcast_transaction` (#185) @xdustinface
- Use non-blocking `TcpStream` in TCP connection (#188) @xdustinface
- Locking issue after #190 (#191) @xdustinface
- Follow-up fixes to #190 (#193) @xdustinface
- Let the examples start the network monitoring (#194) @xdustinface
- Wait for MnListDiff responses before transitioning to next phase (#199) @pauldelucia
- SPV Regtest/Devnet support (#227) @xdustinface
- Drop duplicated received filter update (#248) @xdustinface
- Compressed headers protocol compatibility with Dash Core (#256) @PastaPastaPasta
- Stop loading headers twice into `ChainState::headers` (#258) @xdustinface
- FILTER_REQUEST_BATCH_SIZE should be 1000, not 100 (#260) @PastaPastaPasta
- Return the correct block hash in `prepare_sync` (#262) @xdustinface
- FFI CLI percentage display (#263) @ZocoLini
- `maintain_gap_limit` target calculation off by one (#286) @xdustinface
- Docs build issues (#297) @xdustinface

# 0.28 - 2022-04-20 "The Taproot Release"

At nearly nine months, this is our longest release cycle ever, and thanks
Expand Down
7 changes: 2 additions & 5 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -165,17 +165,14 @@ cargo doc --open
- Use proptest for property-based testing where appropriate

### Git Workflow
- Current development branch: `v0.40-dev`
- Current development branch: `v0.42-dev`
- Main branch: `master`
- Recent work:
- Removed interleaved sync logic from dash-spv (now uses sequential sync only)
- Swift SDK and FFI improvements

## Current Status

The project is actively developing:
- FFI bindings improvements
- Support for Dash Core versions 0.18.0 - 0.21.0
- Support for Dash Core versions 0.18.0 - 0.23.x

## Security Considerations

Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ members = ["dash", "dash-network", "dash-network-ffi", "hashes", "internals", "f
resolver = "2"

[workspace.package]
version = "0.40.0"
version = "0.41.0"

[patch.crates-io]
dashcore_hashes = { path = "hashes" }
Expand Down
15 changes: 7 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,14 +92,13 @@ This library provides comprehensive wallet functionality through multiple compon
For most applications, start with [key-wallet-manager](key-wallet-manager/README.md) which provides a complete, easy-to-use interface for wallet operations.

# Supported Dash Core Versions
The following versions are officially supported and automatically tested:
* 0.18.0
* 0.18.1
* 0.19.0.1
* 0.19.1
* 0.20.0
* 0.20.1
* 0.21.0
The following versions are officially supported:
* 0.18.x
* 0.19.x
* 0.20.x
* 0.21.x
* 0.22.x
* 0.23.x

# Minimum Supported Rust Version (MSRV)
This workspace compiles on Rust 1.89 or newer. Crates use mixed editions (2021 and 2024). See CLAUDE.md/AGENTS.md for common commands and CI expectations.
Expand Down
2 changes: 1 addition & 1 deletion dash-network/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Add this to your `Cargo.toml`:

```toml
[dependencies]
dash-network = "0.40.0"
dash-network = "0.41.0"
```

### Basic Example
Expand Down
6 changes: 1 addition & 5 deletions dash-spv/ARCHITECTURE.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
# Dash SPV Client - Comprehensive Code Guide

**Version:** 0.40.0
**Last Updated:** 2025-01-21
**Total Lines of Code:** ~40,000
**Total Files:** 110+
**Overall Grade:** A+ (96/100)
**Version:** 0.41.0

## Table of Contents

Expand Down
2 changes: 1 addition & 1 deletion dash-spv/CODE_ANALYSIS_SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

**Date:** 2025-01-21
**Analyzer:** Claude (Anthropic AI)
**Codebase Version:** 0.40.0
**Codebase Version:** 0.41.0
**Total Files Analyzed:** 110+ files
**Total Lines of Code:** ~40,000

Expand Down