class_docstr: Record validators are a generic mechanism for checking the DHT records including:
    - Enforcing a data schema (e.g. checking content types)
    - Enforcing security requirements (e.g. allowing only the owner to update the record)
class_docstr_tok: ["Record","validators","are","a","generic","mechanism","for","checking","the","DHT","records","including",":","-","Enforcing","a","data","schema","(","e.g",".","checking","content","types",")","-","Enforcing","security","requirements","(","e.g",".","allowing","only","the","owner","to","update","the","record",")"]
docstr: Should return `record.value` extended with the record's signature.
  
  Note: there's no need to overwrite this method if a validator doesn't use a signature.
  
  sign_value() is called after the application asks the DHT to store the record.
docstr_tok: ["Should","return","`","record.value","`","extended","with","the","record","'s","signature",".","Note",":","there","'s","no","need","to","overwrite","this","method","if","a","validator","does","n't","use","a","signature",".","sign_value","(",")","is","called","after","the","application","asks","the","DHT","to","store","the","record","."]
code: def sign_value(self, record: DHTRecord) -> bytes:
      """
      Should return `record.value` extended with the record's signature.
  
      Note: there's no need to overwrite this method if a validator doesn't use a signature.
  
      sign_value() is called after the application asks the DHT to store the record.
      """
  
      return record.value
  
file_path: hivemind/hivemind/dht/validation.py
imports: import dataclasses
  from abc import ABC, abstractmethod
  from typing import Iterable
label_desc: Use image node_id 2 for calling the RecordValidatorBase obj's underlying member method code with example usage: obj.sign_value(record) and returns: record