Skip to content

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

@ehsan6sha

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions