Skip to content

Phase 2: ingest_endpoints routing with gateway fallback + upload fidelity suite #31

Description

@ehsan6sha

Phase 2 of the decentralization roadmap (uploads axis; cross-repo with functionland/fula-ota fula-ingest).

Client-side CID (walkable-v8) already ships per-chunk blake3 pre-compute + ETag self-verify + chunk_cids manifest (default ON) - this issue adds the ROUTING so the byte path survives the gateway being down:

Ships:

  • Config.ingest_endpoints: Vec<String> (default empty = today's behavior, flag-off-identical). When set, chunk ciphertext bytes go to a fula-ingest node (PUT /v0/block?cid=<precomputed>) instead of the gateway PUT; on ingest failure -> transparent fallback to the existing gateway path. Metadata/index/forest writes unchanged (any federated master).
  • Tamper-evidence hardening: ingest declares-and-verifies (server 422s mismatches); client keeps its existing soft self-verify.
  • Tests: wiremock matrix (ingest ok / ingest down -> fallback / tampered 422 -> fallback or surface), plus the FULL fidelity suite against the live test master: fxfiles_walkable_v8 upload/walk + dir_index_v8 (60+ files, 35 dirs, nested) + >=1 GB chunked file + walkable_v8_writer on AND off.

Verify: gateway container stopped -> chunk bytes still land via ingest (and are retrievable once metadata commits via a master); client CID == kubo CID; tampered byte rejected.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions