input: 
  import hashlib
  import json
  from typing import List
  
  class Block:
      def __init__(self, index: int, timestamp: str, data: str, previous_hash: str):
          self.index = index
          self.timestamp = timestamp
          self.data = data
          self.previous_hash = previous_hash
          self.hash = self.hash_block()
  
      # Create the hash of the block contents
      def hash_block(self) -> str:
          sha = hashlib.sha256()
          sha.update((str(self.index) + 
                      str(self.timestamp) + 
                      str(self.data) + 
                      str(self.previous_hash)).encode('utf-8'))
          return sha.hexdigest()
  
  def create_genesis_block() -> Block:
      """Generate the first block in the blockchain."""
      return Block(0, "01/01/2023", "Genesis Block", "0")
  
  def next_block(previous_block: Block, data: str) -> Block:
      """Generate the next block in the blockchain."""
      return Block(previous_block.index + 1, "02/01/2023", data, previous_block.hash)
  
  def create_blockchain(transactions: List[str]) -> List[Block]:
      """Create a blockchain with a genesis block and additional blocks based on provided transactions."""
      blockchain = [create_genesis_block()]
      previous_block = blockchain[0]
  
      # Add blocks for each transaction in the list
      for transaction in transactions[1:]:
          block_to_add = next_block(previous_block, transaction)
          blockchain.append(block_to_add)
          previous_block = block_to_add
      return blockchain
  
  def print_blockchain(blockchain: List[Block]):
      """Print the details of each block in the blockchain."""
      for block in blockchain:
          block_index = str(block.index)
          block_timestamp = str(block.timestamp)
          block_data = str(block.data)
          block_hash = block.hash
          print(f"Block Index: {block_index}, Timestamp: {block_timestamp}, Data: {block_data}, Hash: {block_hash}")
  
  # Example usage:
  blockchain_transactions = ["Transaction1", "Transaction2", "Transaction3"]
  blockchain = create_blockchain(blockchain_transactions)
  print_blockchain(blockchain)
  
output:     for block in blockchain:
          block_index = str(block.index)
          block_timestamp = str(block.timestamp)
          block_data = str(block.data)
          block_hash = block.hash
          print(f"Block Index: {block_index}, Timestamp: {block_timestamp}, Data: {block_data}, Hash: {block_hash}")