``` $ ipfs block get QmPZ9gcCEpqKTo6aq61g2nXGUhM4iCL3ewB6LDXZCtioEB | xxd 00000000: 0acb 0808 0212 c308 4865 6c6c 6f20 616e ........Hello an ... 00000440: 7269 7479 2d6e 6f74 6573 0a18 c308 rity-notes.... $ ipfs object data QmPZ9gcCEpqKTo6aq61g2nXGUhM4iCL3ewB6LDXZCtioEB | xxd 00000000: 0802 12c3 0848 656c 6c6f 2061 6e64 2057 .....Hello and W ... 00000440: 792d 6e6f 7465 730a 18c3 08 y-notes.... ``` We know from the CID that this is protobuf. The block data decodes like this: - `0acb08` - `0a` is `1010`, which tells us this is field number `1`, type `010`, which is probably an embedded message or bunch of bytes. `cb08` is the length as `varint`, so that's `1100 1011 0000 1000` -> `100 1011 000 1000` -> reverse to `000 1000 100 1011` -> `1099` in decimal. The object data decodes like this: - `0802` -> `08` is `1000`, which tells us this is field number `1`, type `000`, which is a `varint` in this case. `02` is the value in `varint` encoding, which just `2` here. This is the `Type` field in the [unixfs protobuf spec](https://github.com/ipfs/go-unixfs/blob/master/pb/unixfs.proto). The type is `file`. - `12c308` -> `12` is `1 0010`, which tells us this is field number `2`, type `010`, which is a `bytes` in this case. `c308` is the length, as `varint`: `1100 0011 0000 1000` -> `100 0011 000 1000` -> reverse to `000 1000 100 0011` -> `1091` in decimal. - some data - `18c3 08` -> `18` is `1 1000`, which tells us this is field number `3`, type `000`, which is a `varint` in this case. `c308` is, again `1091` in decimal, which is good, because this is a file and that's what I'd expect. This is the `filesize` field.