4.3 KiB
4.3 KiB
SmartPool Changelog
All notable changes to the SmartPool project.
[1.1.0] - 2026-01-22
Changed - Cluster-Based Mapping
Database Schema
- ✅ Changed
proxy_access_mappingtable from proxy_id to cluster-based mapping-- 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:// Before Task<bool> AddAccessMappingAsync(string accessToken, int proxyId, ...); // After Task<bool> AddAccessMappingAsync(string accessToken, string cluster, ...); -
HTTP API endpoint parameter changed:
# 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
-
Export existing mappings (if any):
SELECT access_token, proxy_id, priority FROM old_proxy_access_mapping; -
Identify proxy clusters:
SELECT DISTINCT cluster, country, protocol FROM smart_pool_meta.proxy_metadata FINAL; -
Create cluster mappings:
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; -
Update application code:
- Change API calls from
proxyIdtocluster - Update any direct database queries
- Change API calls from
Files Modified
src/Icomm.API.SmartPool/clickhouse_init.sqlsrc/Icomm.API.SmartPool/Repositories/IProxyMetadataRepository.cssrc/Icomm.API.SmartPool/Repositories/Impl/ProxyMetadataRepository.cssrc/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 modelsIcomm.API.SmartPool- API Backend (gRPC + HTTP)Icomm.SmartPool.Proxy- Client SDKIcomm.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_metaandsmart_pool_logs - High-performance logging
- Automatic aggregation with Materialized Views
- 90-day TTL on logs
- Separated databases:
-
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 overviewSMARTPOOL_IMPLEMENTATION_SUMMARY.md- Implementation detailsSMARTPOOL_USAGE_EXAMPLES.md- Usage examplesSMARTPOOL_QUICK_REFERENCE.md- Quick referenceSMARTPOOL_DATABASE_SEPARATION.md- Database architectureSMARTPOOL_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:
- 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