- Replace form_urlencoded with RFC 3986 compliant URI encoding - Implement aws_uri_encode() matching AWS SigV4 spec exactly - Unreserved chars (A-Z,a-z,0-9,-,_,.,~) not encoded - All other chars percent-encoded with uppercase hex - Preserve slashes in paths, encode in query params - Normalize empty paths to '/' per AWS spec - Fix test expectations (body hash, HMAC values) - Add comprehensive SigV4 signature determinism test This fixes the canonicalization mismatch that caused signature validation failures in T047. Auth can now be enabled for production. Refs: T058.S1
55 lines
1.5 KiB
YAML
55 lines
1.5 KiB
YAML
id: T053
|
|
name: ChainFire Core Finalization
|
|
goal: Clean up legacy OpenRaft code and complete Gossip integration for robust clustering
|
|
status: planned
|
|
priority: P1
|
|
owner: peerB
|
|
created: 2025-12-12
|
|
depends_on: [T041]
|
|
blocks: [T039]
|
|
|
|
context: |
|
|
**Findings from T049 Audit:**
|
|
- openraft dependency still in Cargo.toml.
|
|
- Legacy code in chainfire-raft/src/storage.rs.
|
|
- cluster.rs has // TODO: Implement cluster joining via gossip.
|
|
- core.rs has // TODO: Use actual network layer instead of mock.
|
|
|
|
**User Direction (PROJECT.md Item 1):**
|
|
"Raft+Gossip." - Gossip is a core requirement for the cluster management KVS.
|
|
|
|
acceptance:
|
|
- openraft removed from all Cargo.toml files
|
|
- chainfire-raft crate cleaned of adapter code
|
|
- Cluster joining uses Gossip (foca) for discovery
|
|
- Node addition/removal flows fully implemented
|
|
- Network layer mocks replaced with real implementation where appropriate
|
|
|
|
steps:
|
|
- step: S1
|
|
name: OpenRaft Cleanup
|
|
done: Remove dependency and legacy adapter code
|
|
status: pending
|
|
owner: peerB
|
|
priority: P0
|
|
|
|
- step: S2
|
|
name: Gossip Integration
|
|
done: Implement cluster joining via Gossip
|
|
status: pending
|
|
owner: peerB
|
|
priority: P1
|
|
notes: |
|
|
- Use existing chainfire-gossip crate
|
|
- Implement cluster.rs TODOs
|
|
|
|
- step: S3
|
|
name: Network Layer Hardening
|
|
done: Replace mocks with real network stack in core
|
|
status: pending
|
|
owner: peerB
|
|
priority: P1
|
|
|
|
evidence: []
|
|
notes: |
|
|
Solidifies the foundation for all other services relying on ChainFire (PlasmaVMC, FiberLB, etc.)
|