# Reference Objects

Reference objects represent the files in the DB of the blobber, for ease of access for validation and other operations.

### Some Important Properties

Check the definition of the `Ref` struct [here](https://github.com/0chain/blobber/blob/doc/update/code/go/0chain.net/blobbercore/reference/README.md#type-ref)

<table><thead><tr><th width="230">Properties</th><th>Definition</th></tr></thead><tbody><tr><td>FileID</td><td>ID of the file in the system.</td></tr><tr><td>Type</td><td>Either file or directory.</td></tr><tr><td>AllocationID</td><td>ID of the allocation the file belongs to.</td></tr><tr><td>LookupHash</td><td>Hash of the file path and the allocation ID, used to lookup for the file.</td></tr><tr><td>Name</td><td>Name of the file.</td></tr><tr><td>Path</td><td>Full absolute path of the file on the allocation.</td></tr><tr><td>FileMetaHash</td><td>Hash of file metadata. Used for verification.</td></tr><tr><td>Hash</td><td>Hash of the file content. Used for verification.</td></tr><tr><td>NumBlocks</td><td>Number of blocks that belong to the file.</td></tr><tr><td>PathHash</td><td>Hashed value of the file path. Used for verification.</td></tr><tr><td>Size</td><td>Size of the file.</td></tr><tr><td>FixedMerkleRoot</td><td>Calculated hash based on the contents of the file. Used for challenges. Changes only when the file contents changes. Calculated only for files.</td></tr><tr><td>MimeType</td><td>Mime type of the file.</td></tr><tr><td>AllocationRoot</td><td>Root hash of the allocation the file belongs to.</td></tr><tr><td>ThumbnailHash</td><td>Hash of the thumbnail contents.</td></tr><tr><td>ThumbnailSize</td><td>Size of the thumbnail.</td></tr><tr><td>ChunkSize</td><td>Size of the chunk of the file stored in this blobber.</td></tr><tr><td>NumUpdates</td><td>How many times the file was updated (contents changed by owner).</td></tr><tr><td>NumBlockDownloads</td><td>How many times the file was downloaded.</td></tr></tbody></table>
