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