def METHOD_NAME(
        parent_hash=default_config["GENESIS_PREVHASH"],
        height=0,
        timestamp=None,
        difficulty=TEST_DIFFICULTY,
        transactions=[],
        gas_limit=default_config["GENESIS_GAS_LIMIT"],
        referee_hashes=[],
        author=default_config["GENESIS_COINBASE"],
        deferred_state_root=default_config["GENESIS_STATE_ROOT"],
        deferred_receipts_root=trie.EMPTY_EPOCH_RECEIPT_ROOT_BY_NUMBER_OF_BLOCKS[0],
        deferred_logs_bloom_hash=default_config["GENESIS_LOGS_BLOOM_HASH"],
        adaptive=0,
        nonce=0):
    if timestamp is None:
        timestamp = int(time.time())
    tx_root = utils.sha3(rlp.encode(Transactions(transactions)))
    header = BlockHeader(
        parent_hash=parent_hash,
        height=height,
        difficulty=difficulty,
        timestamp=timestamp,
        author=author,
        transactions_root=tx_root,
        gas_limit=gas_limit,
        referee_hashes=referee_hashes,
        nonce=nonce,
        deferred_state_root=deferred_state_root,
        deferred_receipts_root=deferred_receipts_root,
        deferred_logs_bloom_hash=deferred_logs_bloom_hash,
        adaptive=adaptive)
    block = Block(block_header=header, transactions=transactions)
    return block