filecoin-project / filecoin-project/devgrants

Open Grant Proposal: Fail-closed Filecoin retrieval matrix

Open
#2,179 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
409
Forks
311
PR merge metrics
No merged PRs in 30d

Description

# Open Grant Proposal: Fail-closed Filecoin retrieval matrix

**Project Name:** Fail-closed Filecoin retrieval matrix

**Proposal Category:** Developer and data tooling

**Individual or Entity Name:** Individual. Agreement and payment, if accepted, must be completed by the same individual.

**Proposer:** tzh476

**Project Repo(s):** New public repo to be created under https://github.com/tzh476 (working title `filecoin-retrieval-matrix`). No existing public Filecoin/FVM repo is claimed.

**(Optional) Filecoin ecosystem affiliations:** None. No current work relationship with Protocol Labs, Filecoin Foundation, or FFDW.

**(Optional) Technical Sponsor:** None.

**Do you agree to open source all work you do on behalf of this RFP under the MIT/Apache-2 dual-license?:** Yes

# Project Summary

Filecoin retrieval checks often print success when the local node, deal, or HTTP gateway is missing. That is the same defect class as a CI matrix that prints PASS when the runtime is absent. Developers then ship integrations against a green log that never retrieved a byte.

This project is a small, measured, fail-closed retrieval matrix: a CLI and GitHub Action that pin a CID, a retrieval path, and a first-party check. If lotus, the Calibration endpoint, or the deal is missing, the cell is FAIL with the exact missing dependency. It does not invent a PASS. It does not report a vulnerability in a live service.

I have eight years of professional software engineering experience and professional Filecoin experience from employment. I am not citing a public FVM contract or Filecoin repo, because this account does not have one. Adjacent public work: a fail-closed R compatibility matrix (https://github.com/tzh476/r-compat-matrix) and an evidence-first BNB discovery UI (https://github.com/tzh476/fourproof-bnb).

## Impact

Pain point: tooling and tutorials treat “I called an API” as “the CID is retrievable.” That hides broken deals and missing nodes.

Benefit: a reusable Action that other Filecoin tools can add to CI so a missing lotus binary cannot look like a green retrieval.

Risk of not doing it: new builders copy fake-green examples and waste review time.

Success: the Action is used in at least one external Filecoin repo CI, and the self-test proves FAIL when the node is absent and PASS on one pinned Calibration CID.

## Outcomes

- Public MIT/Apache-2 repo with a CLI (`fil-retrieval-matrix`) and a GitHub Action.
- Manifest format: CID, network (Calibration/mainnet), retrieval method, expected size bound, source pin.
- Self-test: missing-node FAIL; pinned Calibration CID PASS; oversized/unknown CID FAIL.
- README that names the machine, the endpoint, and the limits. No “all tests passed” claim without the log.

Metrics: Action runs on this repo’s CI; one external adoption issue or PR; self-test coverage of the three cells above.

## Data Onboarding

Not applicable. This project does not onboard storage data.

## Adoption, Reach, and Growth Strategies

Target: Filecoin library and tutorial maintainers who already run GitHub Actions.

First 10 users: publish the Action, open one PR or issue against a public Filecoin tooling repo offering the workflow file, and document the copy-paste snippet.

First 100: unlikely in the grant window; the grant is scoped to a working Action and one external adoption attempt, not a growth campaign.

## Development Roadmap

Milestone 1 — Fail-closed CLI (one person, Stephen Smith): spec the manifest; implement `fil-retrieval-matrix` so a missing lotus/API prints FAIL; unit tests for missing-runtime and bound checks. 3 weeks. $4,000.

Milestone 2 — Calibration retrieval cell (one person): one pinned public CID on Calibration; record endpoint, time, and size; GitHub Action wrapping the CLI. 3 weeks. $4,000.

Milestone 3 — Docs and one external offer (one person): README with reproduce steps; open one adoption PR/issue on a public Filecoin tooling repo; do not claim merge. 2 weeks. $4,000.

No work starts until a grant agreement is signed by both parties. Dates below are offsets from that signature.

## Total Budget Requested

| Milestone # | Description | Deliverables | Completion Date | Funding |
|---|---|---|---|---|
| 1 | Fail-closed CLI | CLI + missing-runtime FAIL tests | Signature + 3 weeks | $4,000 |
| 2 | Calibration cell + Action | Pinned CID check + GitHub Action | Signature + 6 weeks | $4,000 |
| 3 | Docs + one external offer | README + one public adoption offer | Signature + 8 weeks | $4,000 |

Total: $12,000 USD.

## Maintenance and Upgrade Plans

After the grant, the repo stays public under MIT/Apache-2. I will merge failing-test regressions and pin-updates. No promise of a company or full-time maintainer after the window.

# Team

## Team Members

- Stephen Smith (GitHub tzh476) — sole implementer

## Team Member LinkedIn Profiles

None provided.

## Team Website

https://github.com/tzh476

## Relevant Experience

Eight years of professional software engineering, including professional Filecoin work that is not a public repository. Public adjacent work shows the same fail-closed habit this grant needs: https://github.com/tzh476/r-compat-matrix and https://github.com/tzh476/fourproof-bnb. I am not claiming a shipped public FVM contract.

## Team code repositories

- https://github.com/tzh476/r-compat-matrix
- https://github.com/tzh476/fourproof-bnb
- https://github.com/tzh476/prov-lock

# Additional Information

Learned about the program from fil.org/grants.

Best email for agreement and next steps: tzh476@gmail.com

This is an Open Grant for new tooling. It is not a FIL Builder Next Step application and does not claim an existing on-chain FVM project.

Contributor guide

No contributing guide indexed for this repository

Research direction

No existing repository, files, or tests are identified; the proposal says the new repo should contain the fil-retrieval-matrix CLI, a manifest, self-tests, and a GitHub Action. Start by defining the manifest and missing-runtime and bound-check cases described in Milestone 1. Done means the three stated self-test cells produce the required FAIL or PASS results and the README records reproduction details.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions
Domain
ci-cd, cli, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.