import hashlib


def make_part_address(namespace_prefix, part_id):
    """
    Creates a part address which will be used to recover the associated UUID
    if the part already exists in the state storage; or, used as a key to store
    the new data into the state storage.
    
    Args:
        namespace_prefix (str):
            The prefix associating with the transaction family
        part_id (str): The uuid of the part
        
    Returns:
        type: str
        The address-to-be, which associates the uuid and the namespace prefix.
    
    """
    return namespace_prefix + \
        hashlib.sha512(part_id.encode("utf-8")).hexdigest()[:64]