github.com/celestiaorg/celestia-node@v0.15.0-beta.1/das/doc.go (about)

     1  /*
     2  Package das contains the most important functionality provided by celestia-node.
     3  It contains logic for running data availability sampling (DAS) routines on block
     4  headers in the network. DAS is the process of verifying the availability of
     5  block data by sampling chunks or shares of those blocks.
     6  
     7  Package das can confirm the availability of block data in the network via the
     8  Availability interface which is implemented both in `full` and `light` mode.
     9  `Full` availability ensures the full reparation of a block's data square (meaning
    10  the instance will sample for enough shares to be able to fully repair the block's
    11  data square) while `light` availability samples for shares randomly until it is
    12  sufficiently likely that all block data is available as it is assumed that there
    13  are enough `light` availability instances active on the network doing sampling over
    14  the same block to collectively verify its availability.
    15  
    16  The central component of this package is the `samplingCoordinator`. It launches parallel
    17  workers that perform DAS on new ExtendedHeaders in the network. The DASer kicks off this
    18  loop by loading its last DASed headers snapshot (`checkpoint`) and kicking off worker pool
    19  to DAS all headers between the checkpoint and the current network head. It subscribes
    20  to notifications about to new ExtendedHeaders, received via gossipsub. Newly found headers
    21  are being put into workers directly, without applying concurrency limiting restrictions.
    22  */
    23  package das