code: def register_service_agreement_publisher(storage_path, consumer_address, agreement_id, did,
                                           service_agreement, service_definition_id, price,
                                           publisher_account, condition_ids, 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, '', start_time)
  
      process_agreement_events_publisher(
          publisher_account, agreement_id, did, service_agreement,
          price, consumer_address, condition_ids
      )
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 consumer_address: ethereum account address of consumer, 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 publisher_account: Account instance of the publisher
      :param condition_ids: is a list of bytes32 content-addressed Condition IDs, bytes32
      :param start_time:
      :return: