<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def do_genesis_block_audit(genesis_block_path=None, key_id=None):
 """ Loads and audits the genesis block, optionally using an alternative key """

    signing_keys = GENESIS_BLOCK_SIGNING_KEYS
    if genesis_block_path is not None:
        # alternative genesis block
        genesis_block_load(genesis_block_path)
    
    if key_id is not None:
        # alternative signing key
        gpg2_path = find_gpg2()
        assert gpg2_path, 'You need to install gpg2'
        p = subprocess.Popen([gpg2_path, '-a', '--export', key_id], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        out, err = p.communicate()
        if p.returncode != 0:
            log.error('Failed to load key {}\n{}'.format(key_id, err))
            return False

        signing_keys = { key_id: out.strip() }
        
    res = genesis_block_audit(get_genesis_block_stages(), key_bundle=signing_keys)
    if not res:
        log.error('Genesis block is NOT signed by {}'.format(', '.join(signing_keys.keys())))
        return False

    return True