input: def create_blockchain():
      """Creates a simple blockchain system in Python. The blockchain is a list of Block instances, 
      where each Block contains an index, a timestamp, data, a previous hash, and a hash created 
      using the SHA-256 algorithm. The function initializes the blockchain with a genesis block 
      and adds subsequent blocks based on provided transactions. The function returns the initialized 
      blockchain.
      
      Example:
      blockchain_transactions = [
          { "from": "Alice", "to": "Bob", "amount": 10 },
          { "from": "Bob", "to": "Charlie", "amount": 5 },
          { "from": "Charlie", "to": "Alice", "amount": 3 }
      ]
      
      create_blockchain()
      
      Expected Output:
      [
          <Block instance: index=0, timestamp=<genesis timestamp>, data="Genesis Block", previous_hash="0", hash=<genesis hash>>,
          <Block instance: index=1, timestamp=<timestamp>, data={"from": "Alice", "to": "Bob", "amount": 10}, previous_hash=<genesis hash>, hash=<hash>>,
          <Block instance: index=2, timestamp=<timestamp>, data={"from": "Bob", "to": "Charlie", "amount": 5}, previous_hash=<previous hash>, hash=<hash>>,
          <Block instance: index=3, timestamp=<timestamp>, data={"from": "Charlie", "to": "Alice", "amount": 3}, previous_hash=<previous hash>, hash=<hash>>
      ]
      """
output:     
      import hashlib
      import time
  
      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.calculate_hash()
  
          def calculate_hash(self):
              block_string = f"{self.index}{self.timestamp}{self.data}{self.previous_hash}"
              return hashlib.sha256(block_string.encode()).hexdigest()
  
      blockchain = []
  
      # Create the genesis block
      genesis_block = Block(0, time.time(), "Genesis Block", "0")
      blockchain.append(genesis_block)
  
      # Add subsequent blocks based on transactions
      blockchain_transactions = [
          { "from": "Alice", "to": "Bob", "amount": 10 },
          { "from": "Bob", "to": "Charlie", "amount": 5 },
          { "from": "Charlie", "to": "Alice", "amount": 3 }
      ]
  
      for index, transaction in enumerate(blockchain_transactions, start=1):
          previous_block = blockchain[-1]
          new_block = Block(index, time.time(), transaction, previous_block.hash)
          blockchain.append(new_block)
  
      return blockchain
  