docs: enhance Ollama GPU test workflow, reorganize project structure, and fix pytest warnings
- Upgrade ollama-gpu-provider skill to v2.0 with complete test workflow documentation - Add comprehensive troubleshooting, monitoring commands, and CI/CD integration examples - Update client.py default coordinator port from 8000 to 18000 - Clear currentissue.md and add usage guidelines for issue tracking - Create dev-utils/ directory and move aitbc-pythonpath.pth from root - Create docs/guides/ and docs
This commit is contained in:
@@ -1,100 +1,18 @@
|
||||
# Current Issues
|
||||
|
||||
## Cross-Site Synchronization - PARTIALLY IMPLEMENTED
|
||||
*No current issues to report.*
|
||||
|
||||
### Date
|
||||
2026-01-29
|
||||
---
|
||||
|
||||
### Status
|
||||
**PARTIALLY IMPLEMENTED** - Cross-site sync is running on all nodes. Transaction propagation works. Block import endpoint exists but has a database constraint issue with transaction import.
|
||||
## Usage Guidelines
|
||||
|
||||
### Description
|
||||
Cross-site synchronization has been integrated into all blockchain nodes. The sync module detects height differences between nodes and can propagate transactions via RPC.
|
||||
When tracking a new issue:
|
||||
1. Add a new section with a descriptive title
|
||||
2. Include the date and current status
|
||||
3. Describe the issue, affected components, and any fixes attempted
|
||||
4. Update status as progress is made
|
||||
5. Once resolved, move this file to `docs/issues/` with a machine-readable name
|
||||
|
||||
### Components Affected
|
||||
- `/src/aitbc_chain/main.py` - Main blockchain node process
|
||||
- `/src/aitbc_chain/cross_site.py` - Cross-site sync module (implemented but not integrated)
|
||||
- All three blockchain nodes (localhost Node 1 & 2, remote Node 3)
|
||||
## Recent Resolved Issues
|
||||
|
||||
### What Was Fixed
|
||||
1. **main.py integration**: Removed problematic `AbstractAsyncContextManager` type annotation and simplified the code structure
|
||||
2. **Cross-site sync module**: Integrated into all three nodes and now starts automatically
|
||||
3. **Config settings**: Added `cross_site_sync_enabled`, `cross_site_remote_endpoints`, `cross_site_poll_interval` inside the `ChainSettings` class
|
||||
4. **URL paths**: Fixed RPC endpoint paths (e.g., `/head` instead of `/rpc/head` for remote endpoints that already include `/rpc`)
|
||||
|
||||
### Current Status
|
||||
- **All nodes**: Running with cross-site sync enabled
|
||||
- **Transaction sync**: Working - mempool transactions can propagate between sites
|
||||
- **Block sync**: ✅ FULLY IMPLEMENTED - `/blocks/import` endpoint works with transactions
|
||||
- **Height difference**: Nodes maintain independent chains (local: 771153, remote: 40324)
|
||||
- **Status**: Block import with transactions now working after nginx routing fix
|
||||
|
||||
### Resolved Issues
|
||||
Block synchronization transaction import issue has been **FIXED**:
|
||||
- `/blocks/import` POST endpoint is functional and deployed on all nodes
|
||||
- Endpoint validates block hashes, parent blocks, and prevents conflicts
|
||||
- ✅ Can import blocks with and without transactions
|
||||
- ✅ Transaction data properly saved to database
|
||||
- Root cause: nginx was routing to wrong port (8082 instead of 8081)
|
||||
- Fix: Updated nginx config to route to correct blockchain-rpc-2 service
|
||||
|
||||
### Block Sync Implementation Progress
|
||||
|
||||
1. **✅ Block Import Endpoint Created** - `/src/aitbc_chain/rpc/router.py`:
|
||||
- Added `@router.post("/blocks/import")` endpoint
|
||||
- Implemented block validation (hash, parent, existence checks)
|
||||
- Added transaction and receipt import logic
|
||||
- Returns status: "imported", "exists", or error details
|
||||
|
||||
2. **✅ Cross-Site Sync Updated** - `/src/aitbc_chain/sync/cross_site.py`:
|
||||
- Modified `import_block()` to call `/rpc/blocks/import`
|
||||
- Formats block data correctly for import
|
||||
- Handles import success/failure responses
|
||||
|
||||
3. **✅ Runtime Error Fixed**:
|
||||
- Moved inline imports (hashlib, datetime, config) to top of file
|
||||
- Added proper error logging and exception handling
|
||||
- Fixed indentation issues in the function
|
||||
- Endpoint now returns proper validation responses
|
||||
|
||||
4. **✅ Transaction Import Fixed**:
|
||||
- Root cause was nginx routing to wrong port (8082 instead of 8081)
|
||||
- Updated transaction creation to use constructor with all fields
|
||||
- Server rebooted to clear all caches
|
||||
- Nginx config fixed to route to blockchain-rpc-2 on port 8081
|
||||
- Verified transaction is saved correctly with all fields
|
||||
|
||||
5. **⏳ Future Enhancements**:
|
||||
- Add proposer signature validation
|
||||
- Implement fork resolution for conflicting chains
|
||||
- Add authorized node list configuration
|
||||
|
||||
### What Works Now
|
||||
- Cross-site sync loop runs every 10 seconds
|
||||
- Remote endpoint polling detects height differences
|
||||
- Transaction propagation between sites via mempool sync
|
||||
- ✅ Block import endpoint functional with validation
|
||||
- ✅ Blocks with and without transactions can be imported between sites via RPC
|
||||
- ✅ Transaction data properly saved to database
|
||||
- Logging shows sync activity in journalctl
|
||||
|
||||
### Files Modified
|
||||
- `/src/aitbc_chain/main.py` - Added cross-site sync integration
|
||||
- `/src/aitbc_chain/cross_site.py` - Fixed URL paths, updated to use /blocks/import endpoint
|
||||
- `/src/aitbc_chain/config.py` - Added sync settings inside ChainSettings class (all nodes)
|
||||
- `/src/aitbc_chain/rpc/router.py` - Added /blocks/import POST endpoint with validation
|
||||
|
||||
### Next Steps
|
||||
1. **Monitor Block Synchronization**:
|
||||
- Watch logs for successful block imports with transactions
|
||||
- Verify cross-site sync is actively syncing block heights
|
||||
- Monitor for any validation errors or conflicts
|
||||
|
||||
2. **Future Enhancements**:
|
||||
- Add proposer signature validation for security
|
||||
- Implement fork resolution for conflicting chains
|
||||
- Add sync metrics and monitoring dashboard
|
||||
|
||||
**Status**: ✅ COMPLETE - Block import with transactions working
|
||||
**Impact**: Full cross-site block synchronization now available
|
||||
**Resolution**: Server rebooted, nginx routing fixed to port 8081
|
||||
See `docs/issues/` for resolved issues and their solutions.
|
||||
|
||||
Reference in New Issue
Block a user