La lettura di Walrus resa semplice: raccogli 2f+1 frammenti & verifica
Leggere un blob da Walrus è una semplicità algoritmica. Un client ha bisogno solo di due azioni: raccogliere un numero sufficiente di frammenti e verificare che si ricompongano correttamente. Il protocollo rende entrambe le operazioni trasparenti ed efficienti.
La lettura inizia con un obiettivo. Il client conosce l'ID del blob e il PoA on-chain che lo ha impegnato. Da queste informazioni, deriva quali validatori detengono quali frammenti utilizzando lo stesso calcolo a griglia usato durante la scrittura. Il client contatta i validatori e richiede frammenti.
Il client raccoglie risposte dai validatori. Alcuni frammenti arrivano rapidamente (frammenti primari da validatori reattivi). Altri arrivano lentamente o per niente (secondari o nodi non reattivi). Il protocollo richiede una soglia: 2f+1 frammenti onesti sono necessari per garantire la correttezza anche se f frammenti sono corrotti o bizantini.
Una volta che il client ha un numero sufficiente di frammenti, la ricostruzione è semplice. Utilizzando la struttura a griglia 2D, combina i frammenti e verifica il risultato contro l'hash di impegno on-chain. Se il blob ricostruito corrisponde all'hash impegnato, la verifica ha successo. In caso contrario, il client sa che la ricostruzione è fallita e può riprovare o segnalare un errore.
La bellezza è la semplicità. Nessuna complessa elezione di quorum. Nessuna elezione di leader. Nessun protocollo di consenso. Solo: raccogliere frammenti, verificare contro l'impegno, fatto. Se la verifica fallisce, raccogliere più frammenti e riprovare. Il sistema è naturalmente resiliente ai validatori lenti o bugiardi.
Questa semplicità rende la lettura robusta. I client possono implementarla localmente senza coordinarsi con altri lettori. I validatori bizantini non possono causare incoerenza perché ogni lettore verifica indipendentemente contro l'impegno on-chain.


