input: 
  import hashlib
  import json
  
  # Define the Block class
  class Block:
      def __init__(self, index, timestamp, data, previous_hash):
          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):
          sha = hashlib.sha256()
          sha.update((str(self.index) + 
                      str(self.timestamp) + 
                      str(self.data) + 
                      str(self.previous_hash)).encode('utf-8'))
          return sha.hexdigest()
  
  # Create the blockchain
  def create_blockchain():
      blockchain = [create_genesis_block()]
      previous_block = blockchain[0]
  
      # Add blocks for each item in the list of transactions
      for i in range(1, len(blockchain_transactions)):
          block_to_add = next_block(previous_block, blockchain_transactions[i])
          blockchain.append(block_to_add)
          previous_block = block_to_add
  
  # Print the blockchain
  def print_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("Block #" + block_index)
          print("Timestamp: " + block_timestamp)
          print("Data: " + block_data)
          print("Hash: " + block_hash)
          print("----------------------------")
  
  # Example usage
  blockchain_transactions = [{"sender": "Alice", "receiver": "Bob", "amount": 10},
                            {"sender": "Bob", "receiver": "Charlie", "amount": 5},
                            {"sender": "Charlie", "receiver": "Alice", "amount": 2}]
  
  create_blockchain()
  print_blockchain()
  
  # Output:
  # Block #0
  # Timestamp: 2023-10-01 12:00:00
  # Data: Genesis Block
  # Hash: abcdef123456...
  # ----------------------------
  # Block #1
  # Timestamp: 2023-10-01 12:05:00
  # Data: {'sender': 'Alice', 'receiver': 'Bob', 'amount': 10}
  # Hash: 123456abcdef...
  # ----------------------------
  # Block #2
  # Timestamp: 2023-10-01 12:10:00
  # Data: {'sender': 'Bob', 'receiver': 'Charlie', 'amount': 5}
  # Hash: 456abcdef123...
  # ----------------------------
  # Block #3
  # Timestamp: 2023-10-01 12:15:00
  # Data: {'sender': 'Charlie', 'receiver': 'Alice', 'amount': 2}
  # Hash: 789abcdef456...
  # ----------------------------
  
output:     
      # Create the genesis block
      def create_genesis_block():
          return Block(0, "2023-10-01 12:00:00", "Genesis Block", "0")
  
      # Create the next block
      def next_block(last_block, data):
          this_index = last_block.index + 1
          this_timestamp = "2023-10-01 12:05:00"
          this_data = data
          this_hash = last_block.hash
          return Block(this_index, this_timestamp, this_data, this_hash)
  
      # Initialize the blockchain with the genesis block
      blockchain = [create_genesis_block()]
      previous_block = blockchain[0]
  
      # Add blocks for each item in the list of transactions
      for i in range(1, len(blockchain_transactions)):
          block_to_add = next_block(previous_block, blockchain_transactions[i])
          blockchain.append(block_to_add)
          previous_block = block_to_add
  
      # Print 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("Block #" + block_index)
          print("Timestamp: " + block_timestamp)
          print("Data: " + block_data)
          print("Hash: " + block_hash)
          print("----------------------------")
  