Background
The original ic-py development team has ceased maintenance of the project. Having maintained a close relationship with the former team—we were jointly supported by the same incubator, now disbanded—I have secured consent from the core developers and the repository owner to continue development. Special thanks to @marc0olo and @eduard-galindo for their ongoing support.
Future maintenance of ic-py will primarily be conducted in my repository. Updates will be submitted to the main repository via pull requests and subsequently released on PyPI.
Current Issues and Approach
Based on feedback gathered from GitHub issues and forum discussions, I have identified and structured existing issues into clear milestones prioritized by urgency and complexity. My immediate focus is addressing known security vulnerabilities and simpler tasks with fewer dependencies or blockers.
Related Discussions:
Roadmap & Milestones
Guiding Principles
- Resolve all known security vulnerabilities.
- Modernize and fully support the Candid type system.
- Maintain alignment with agent-rs’s feature set and release schedule.
Milestone 1
Endpoint Upgrade
-
Issue: Migration from legacy endpoints to BN v3 endpoints.
-
References:
-
Solution: Upgrade default endpoints and maintain alignment with boundary node updates.
Timeouts & Error Classification
-
Issues: Missing timeout mechanisms; inadequate error classifications.
-
Solution:
- Implement configurable timeout handling.
- Structured error management for common canister errors.
Milestone 2
IC Certificate Verification
-
Issue: Lack of verification in methods (
request_status_raw
,request_status_raw_async
) posing security risks. -
References:
- Forum Discussion
- GitHub: #109, PR #56, #76
-
Solution:
- Implement verification based on agent-rs logic.
- Resolve Python-BLS compatibility (via Rust-BLS/FFI bridge).
Milestone 3
Candid Type System Enhancements
-
Issue: Missing support for recent Candid features.
-
References: #111, PR #112, #63, Candid Spec
-
Solution:
- Upgrade Candid parser and generator to latest spec.
- Comprehensive testing against the canonical specification.
Milestone 4
Dynamic HTTP Provider & Routing
- Implement adaptive, latency-based routing.
- Flexible runtime endpoint selection.
Expanded API Surface
- High-level wrappers for ICRC-compliant ledgers (e.g., ckBTC, ckETH, ckUSDc).
- Helpers for interactions with Bitcoin, Ethereum, and other canisters.
Ongoing Alignment & Optimization
- Regular synchronization with agent-rs roadmap.
- Continuous performance and type-check optimizations.
- Define further milestones post-completion of Milestones 1-3.
Further Information
- GitHub Roadmap: https://github.com/eliezhao/ic-py/blob/fix/issues/ROADMAP.md
Feel free to suggest improvements or features here. Your feedback will help refine the roadmap and guide ongoing development.
Let’s collaborate to enhance ic-py and empower more developers to build reliable ICP applications!