IncomingBlock struct has a field called
indexed_body, containing a
Vec<Vec<u8>>. As far as I can tell this is sometimes sent with a block, although only when specifically requested. If received in such a situation, the data is (afaict) put directly in the database, without any verification – common and aura import queues pass it on without checking, so does
Client and later
BlockImportOperation, so either the DB has some constraints or I missed something. There are methods to get it out of the DB, but they are mostly used to answer these requests.
My questions are:
- What is this used for? Is it possible that we don't use this in our chain?
- If we don't use it, is it safe to always ignore this field, i.e. never send it and discard if received?
- Does this really never get validated during import? If so, isn't there a possibility of filling someone's DB with junk through this mechanism?