166 lines
4.3 KiB
Markdown
166 lines
4.3 KiB
Markdown
# SmartPool Changelog
|
|
|
|
All notable changes to the SmartPool project.
|
|
|
|
## [1.1.0] - 2026-01-22
|
|
|
|
### Changed - Cluster-Based Mapping
|
|
|
|
#### Database Schema
|
|
- ✅ Changed `proxy_access_mapping` table from proxy_id to cluster-based mapping
|
|
```sql
|
|
-- Before
|
|
proxy_access_mapping (access_token, proxy_id, priority)
|
|
|
|
-- After
|
|
proxy_access_mapping (access_token, cluster, priority)
|
|
```
|
|
|
|
#### Benefits
|
|
- **Scalability**: Add/remove proxies without updating mappings
|
|
- **Flexibility**: Group proxies logically by cluster
|
|
- **Maintainability**: Fewer mapping records to manage
|
|
- **Performance**: Simpler queries, better index utilization
|
|
|
|
#### Breaking Changes
|
|
- `IProxyMetadataRepository.AddAccessMappingAsync()` signature changed:
|
|
```csharp
|
|
// Before
|
|
Task<bool> AddAccessMappingAsync(string accessToken, int proxyId, ...);
|
|
|
|
// After
|
|
Task<bool> AddAccessMappingAsync(string accessToken, string cluster, ...);
|
|
```
|
|
|
|
- HTTP API endpoint parameter changed:
|
|
```bash
|
|
# Before
|
|
POST /api/smart-pool/v1/SmartProxy/access-mapping/add?accessToken=token&proxyId=123
|
|
|
|
# After
|
|
POST /api/smart-pool/v1/SmartProxy/access-mapping/add?accessToken=token&cluster=cluster_vn_http
|
|
```
|
|
|
|
#### Migration Guide
|
|
|
|
1. **Export existing mappings** (if any):
|
|
```sql
|
|
SELECT access_token, proxy_id, priority
|
|
FROM old_proxy_access_mapping;
|
|
```
|
|
|
|
2. **Identify proxy clusters**:
|
|
```sql
|
|
SELECT DISTINCT cluster, country, protocol
|
|
FROM smart_pool_meta.proxy_metadata FINAL;
|
|
```
|
|
|
|
3. **Create cluster mappings**:
|
|
```sql
|
|
INSERT INTO smart_pool_meta.proxy_access_mapping
|
|
SELECT DISTINCT
|
|
old.access_token,
|
|
p.cluster,
|
|
old.priority
|
|
FROM old_mappings old
|
|
INNER JOIN smart_pool_meta.proxy_metadata FINAL p
|
|
ON old.proxy_id = p.id;
|
|
```
|
|
|
|
4. **Update application code**:
|
|
- Change API calls from `proxyId` to `cluster`
|
|
- Update any direct database queries
|
|
|
|
#### Files Modified
|
|
- `src/Icomm.API.SmartPool/clickhouse_init.sql`
|
|
- `src/Icomm.API.SmartPool/Repositories/IProxyMetadataRepository.cs`
|
|
- `src/Icomm.API.SmartPool/Repositories/Impl/ProxyMetadataRepository.cs`
|
|
- `src/Icomm.API.SmartPool/Controllers/v1/SmartProxyController.cs`
|
|
|
|
#### Documentation Added
|
|
- `SMARTPOOL_CLUSTER_MAPPING.md` - Comprehensive cluster mapping guide
|
|
|
|
---
|
|
|
|
## [1.0.0] - 2026-01-22
|
|
|
|
### Added - Initial Release
|
|
|
|
#### Projects Created
|
|
- `Icomm.SmartPool.Abstractions` - Shared interfaces and models
|
|
- `Icomm.API.SmartPool` - API Backend (gRPC + HTTP)
|
|
- `Icomm.SmartPool.Proxy` - Client SDK
|
|
- `Icomm.SmartPool.Tests` - Unit tests
|
|
|
|
#### Features
|
|
- **5 Proxy Selection Strategies**:
|
|
- Random: Random selection
|
|
- Round Robin: Load balancing
|
|
- Least Delay: Fastest proxy
|
|
- Adaptive Ranking: Highest success rate
|
|
- Alternative: Similar proxy replacement
|
|
|
|
- **Dual Protocol Support**:
|
|
- gRPC (MagicOnion) - High performance
|
|
- HTTP REST API - Standard web API
|
|
|
|
- **ClickHouse Integration**:
|
|
- Separated databases: `smart_pool_meta` and `smart_pool_logs`
|
|
- High-performance logging
|
|
- Automatic aggregation with Materialized Views
|
|
- 90-day TTL on logs
|
|
|
|
- **Client SDK**:
|
|
- Easy integration via DI
|
|
- Support both gRPC and HTTP
|
|
- IWebProxy support for HttpClient
|
|
|
|
#### Dependencies
|
|
- .NET 8.0
|
|
- MagicOnion 6.1.7
|
|
- ClickHouse.Client 7.14.0
|
|
- EasyCaching.Redis 1.9.2
|
|
- Dapper 2.1.35
|
|
- Serilog 8.0.1
|
|
|
|
#### Documentation
|
|
- `SMARTPOOL_README.md` - Main overview
|
|
- `SMARTPOOL_IMPLEMENTATION_SUMMARY.md` - Implementation details
|
|
- `SMARTPOOL_USAGE_EXAMPLES.md` - Usage examples
|
|
- `SMARTPOOL_QUICK_REFERENCE.md` - Quick reference
|
|
- `SMARTPOOL_DATABASE_SEPARATION.md` - Database architecture
|
|
- `SMARTPOOL_UPGRADE_NOTES.md` - HttpToSocks5Proxy upgrade notes
|
|
|
|
---
|
|
|
|
## [0.9.0] - 2026-01-22 (Pre-release)
|
|
|
|
### Added
|
|
- HttpToSocks5Proxy upgraded to .NET 8.0 (v2.0.0)
|
|
- Project structure and dependencies setup
|
|
- ClickHouse schema design
|
|
- Strategy pattern implementation
|
|
|
|
---
|
|
|
|
## Versioning
|
|
|
|
This project follows [Semantic Versioning](https://semver.org/):
|
|
- **MAJOR**: Incompatible API changes
|
|
- **MINOR**: New functionality (backwards compatible)
|
|
- **PATCH**: Bug fixes (backwards compatible)
|
|
|
|
## Release Notes Format
|
|
|
|
Each release includes:
|
|
- **Added**: New features
|
|
- **Changed**: Changes in existing functionality
|
|
- **Deprecated**: Soon-to-be removed features
|
|
- **Removed**: Removed features
|
|
- **Fixed**: Bug fixes
|
|
- **Security**: Security improvements
|
|
|
|
---
|
|
|
|
**Last Updated**: 2026-01-22
|