input: 
  def create_simple_blockchain():
      """ Compose a basic blockchain system in Python.
      The blockchain system should include a class for blocks, 
      and another class for the chain. Users should be able to 
      add blocks to the chain and retrieve the entire blockchain 
      in JSON format.
      >>> block_data1 = {'timestamp': '2023-10-01 12:30:45', 'data': 'Genesis Block'}
      >>> block_data2 = {'timestamp': '2023-10-01 12:31:00', 'data': 'First Transaction'}
      >>> my_blockchain = create_simple_blockchain()
      >>> my_blockchain.add_block(block_data1)
      >>> my_blockchain.add_block(block_data2)
      >>> print(my_blockchain.get_chain())
      """
      return Blockchain
  
output:     
      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()
  
      class Blockchain:
          def __init__(self):
              self.chain = [self.create_genesis_block()]
          
          def create_genesis_block(self):
              return Block(0, "2023-10-01 12:30:45", "Genesis Block", "0")
          
          def get_latest_block(self):
              return self.chain[-1]
          
          def add_block(self, data):
              latest_block = self.get_latest_block()
              new_block = Block(latest_block.index + 1, data['timestamp'], data['data'], latest_block.hash)
              self.chain.append(new_block)
          
          def get_chain(self):
              return json.dumps([block.__dict__ for block in self.chain], indent=4)
  
      return Blockchain()
  