code: def register_service_agreement_consumer(storage_path, publisher_address, agreement_id, did,
                                          service_agreement, service_definition_id, price,
                                          encrypted_files, consumer_account, condition_ids,
                                          consume_callback=None, start_time=None):
      
      if start_time is None:
          start_time = int(datetime.now().timestamp())
  
      record_service_agreement(
          storage_path, agreement_id, did, service_definition_id, price, encrypted_files, start_time)
  
      process_agreement_events_consumer(
          publisher_address, agreement_id, did, service_agreement,
          price, consumer_account, condition_ids,
          consume_callback
      )
docs: Registers the given service agreement in the local storage.
      Subscribes to the service agreement events.
  
      :param storage_path: storage path for the internal db, str
      :param publisher_address: ethereum account address of publisher, hex str
      :param agreement_id: id of the agreement, hex str
      :param did: DID, str
      :param service_agreement: ServiceAgreement instance
      :param service_definition_id: identifier of the service inside the asset DDO, str
      :param price: Asset price, int
      :param encrypted_files: resutl of the files encrypted by the secret store, hex str
      :param consumer_account: Account instance of the consumer
      :param condition_ids: is a list of bytes32 content-addressed Condition IDs, bytes32
      :param consume_callback:
      :param start_time: start time, int