ref: https://github.com/availproject/data-availability/tree/master/reference document
The system can have two types of full nodes:
For classical ones, it takes the entire matrix $𝐷$, extends each column to $2𝑛$ points and getting an extended matrix $𝐷'$. It then verifies for each row of $D'$ whether the commitment to $i^{th}$ row is $𝐶_𝑖$ for $1 ≤ 𝑖 ≤ 2𝑛$.
For the column full nodes, they can fetch and keep only a column of the matrix 𝐷. They would extend each column to check whether they belong to the extended set of commitments. This is possible because of the homomorphic nature of the commitments and witnesses.
The light clients querying a data block will sample some chunk $𝐷[𝑖] [ 𝑗 ]$. Along with the data, the light client gets a witness $𝑤[𝑖] [ 𝑗 ]$ and it can immediately verify the validity using the Kate Commitment scheme. If it queries multiple chunks of the same row, the batch commitment scheme helps have a single witness for all the sampled points.