Trip the IPFS circuit breaker only when the Kubo node is unreachable in the client

Aperta
#3,680 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 2 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
cli, rust

Direzione di ricerca

Start by locating the client IPFS file downloader and its files/stat timeout handling, then trace how the client and CLI learn that IPFS has been disabled. Check the existing parallel download and CLI documentation paths before changing behavior. Done means connection errors trip the breaker immediately, consecutive timeouts account for parallel downloads and reset after a successful download, and the CLI warns users and documents the behavior.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

feature :rocket:

Why

The client handles a files/stat timeout of the IPFS file downloader like an unreachable Kubo node, so a single slow answer under parallel downloads disables IPFS for all the remaining files of a Cardano database download, and the fallback to cloud storage is only reported in the logs.

What

The client stops using IPFS at once when the Kubo node cannot be connected, and only after a number of consecutive files/stat timeouts without any successful IPFS download in between, and the CLI warns the user when IPFS is disabled during a download.

How

  • Extend the timeout to 10s instead of 5s?
  • Distinguish a Kubo connection error from a files/stat timeout in the IPFS file downloader
  • Trip the IPFS circuit breaker at once on a Kubo connection error
  • Trip the IPFS circuit breaker after N consecutive files/stat timeouts, with a reset of the count on each successful IPFS download (take into consideration the number of parallel downloads)
  • Reset the circuit breaker after a delay? (Is it worth it if the download lasts 15 minutes?)
  • Expose the circuit breaker trip to the client users (e.g. through a feedback event)
  • Display a warning in the client CLI when the IPFS circuit breaker trips
  • Update the client CLI documentation of the IPFS download
Lingua principale
Rust
Stelle
155
Fork
52
Merge medio
2g 15h
PR unite (30g)
39

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di IntersectMBO/mithril

Tutte le issue di IntersectMBO/mithril

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.