input: 
  def Blockchain_System():
      """Compose a basic blockchain system in Python. The system includes a Blockchain class and a Block class. The Blockchain class has methods to add blocks and return the entire blockchain in JSON format.
      >>> blockchain = Blockchain()
      >>> blockchain.add_block({'timestamp': '2023-10-01 12:00:00', 'data': 'First block'})
      >>> blockchain.add_block({'timestamp': '2023-10-02 12:00:00', 'data': 'Second block'})
      >>> blockchain.get_chain()
      '[\\n  {\\n    "index": 0,\\n    "timestamp": "2023-10-01 12:00:00",\\n    "data": "First block",\\n    "previous_hash": null,\\n    "hash": "e3b0c44..."\\n  },\\n  {\\n    "index": 1,\\n    "timestamp": "2023-10-02 12:00:00",\\n    "data": "Second block",\\n    "previous_hash": "e3b0c44...",\\n    "hash": "d4e5f6g..."\\n  }\\n]'
      """
      pass
  
output:     
      import hashlib
      import json
      from time 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 = json.dumps(self.__dict__, sort_keys=True).encode()
              return hashlib.sha256(block_string).hexdigest()
  
      class Blockchain:
          def __init__(self):
              self.chain = [self.create_genesis_block()]
  
          def create_genesis_block(self):
              return Block(0, "2023-10-01 12:00:00", "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, time(), data, latest_block.hash)
              self.chain.append(new_block)
  
          def get_chain(self):
              return json.dumps(self.chain, default=lambda x: x.__dict__, indent=2)
  