feat(backend): Python gateway client that fetches by CID and verifies content
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 57/100
- Type d'issue
- Fonctionnalité
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- python
- Domaine
- backend, distributed-systems
Piste de recherche
Start by reading dependency issue #59 and locating the Python content layer and its pytest setup; the payload does not name specific files. Implement a gateway read client that fetches /ipfs/<cid> with timeouts and size limits, recomputes raw or JSON CIDs, and raises distinct unavailable and mismatch errors. Add mocked response tests for matching and tampered content, plus an outage test; done means valid bytes are returned and each failure has the specified error.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Summary
A read-side client so the coordinator and workers can fetch content (for example a circuit by CID) over HTTP and check the hash.
Estimated size: S
Motivation
The cheapest bridge between the Python compute plane and IPFS, with no libp2p interop needed.
Proposal
- Fetch
/ipfs/<cid>from the configured gateway with timeouts and size limits. - Recompute the CID of the received bytes (raw and JSON codecs first) and reject mismatches.
- Typed errors: unavailable vs mismatch.
Acceptance criteria
- A matching fetch returns bytes; a tampered response raises a mismatch error.
- Gateway outage raises unavailable, not mismatch.
Out of scope
- Writing content (see the Kubo RPC client).
Dependencies
- #59
Testing plan
- pytest with mocked gateway responses including tampered bytes.
Part of #43. Ground rules for the content layer: no secrets in the repo, content-layer failures must never block or discard quantum execution, and tests and docs ship with every PR.
- Langage dominant
- Python
- Étoiles
- 2
- Forks
- 4
- Merge moyen
- 6 h 14 min
- PR mergées (30 j)
- 18
Préparer son environnement
- Fournit un Dockerfile ou un fichier Docker Compose
- Aucun modèle de pull request
- Aucun guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de QMeshPy/distributed-quantum
-
enhancement good first issue helia storage tier-1
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
QMeshPy/distributed-quantum#53 ·
Les mainteneurs répondent en général sous 1 jour
-
chain-integration enhancement payments research-spike tier-2
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
QMeshPy/distributed-quantum#78 ·
Les mainteneurs répondent en général sous 1 jour
-
chain-integration enhancement payments research-spike tier-2
Difficulté 3/5 1-2 jours Accessibilité débutants 66/100
QMeshPy/distributed-quantum#77 ·
Les mainteneurs répondent en général sous 1 jour
-
documentation good first issue kubo storage tier-1
Difficulté 2/5 1-3 heures Accessibilité débutants 42/100
QMeshPy/distributed-quantum#75 ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement kubo storage tier-2
Difficulté 4/5 3-5 jours Accessibilité débutants 56/100
QMeshPy/distributed-quantum#74 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de QMeshPy/distributed-quantum
Issues similaires
-
good first issue infrastructure
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
kuznia-rdzeni/coreblocks#1135 ·
-
good first issue server
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
Les mainteneurs répondent en général sous 1 jour
-
documentation priority: high
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
a-lex-s/mealie-telegram-bot#54 ·
Les mainteneurs répondent en général sous 1 jour
-
type/test
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
SaltedTan/virgil-language-server#218 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
btclib-org/btclib-wallet#541 ·
Les mainteneurs répondent en général sous 1 jour