federazione
torn bu sayfayı düzenledi 6 yıl önce

Federazione

Per federare due server occorre aggiungere al file di configurazione una sezione come la seguente:

federation:
  name: pantelegrafo
  peers:
    - name: pantelegrafo-staging
      url: https://cable-service-staging.pantelegrafo.cable.im/
      authenticationToken: cJMWxNxh0tD0m7MeXttvjIzrSYYY1aFF
      certificate: |
        -----BEGIN CERTIFICATE-----
        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
        -----END CERTIFICATE-----

che dice che il server nella federazione si chiama pantelegrafo e ha un peer chiamato pantelegrafo-staging con una certa URL, una password (l'authenticationToken) e quel certificato. Su pantelegrafo-staging la configurazione sarà quindi speculare, tipo:

federation:
  name: pantelegrafo-staging
  peers:
    - name: pantelegrafo
      url: https://cable-service.pantelegrafo.cable.im/
      authenticationToken: cJMWxNxh0tD0m7MeXttvjIzrSYYY1aFF
      certificate: |
        -----BEGIN CERTIFICATE-----
        [certificato di pantelegrafo]
        -----END CERTIFICATE-----

Il certificato è lo stesso usato per configurare l'endpoint https del servizio.

A questo punto vanno sincronizzate le directory di utenti dei due server. Su entrambi va fatto:

java -jar /path/to/TextSecureServer-XXX.jar directory /path/to/config.yml

Fatto questo gli utenti dei due server dovrebbero riuscire a parlarsi.

Attenzione: quando un utente si registra su un server, la registrazione non viene automaticamente propagata sui server federati! La sincronizzazione avviene solo rilanciando java -jar TextSecureServer-XXX.jar directory ..., che quindi va messo in cron o qualcosa di simile. Questo aspetto andrebbe migliorato e non ci possiamo aspettare che sia OWS a farlo.

Altra cosa: se un utente si registra sul server X, cancella Cable, lo reinstalla e si registra sul server federato Y prima che questo si sia sincronizzato col server X, le cose vanno male. Non si rompe niente ma l'utente non riceverà i messaggi degli utenti del server X, il quale crederà che l'utente sia "suo". L'utente avrà inoltre difficoltà a capire cosa non va e come risolvere il problema [cioè: cancellarsi da Y, riregistrarsi in X, cancellarsi da X, riregistrarsi su Y]. Questo succedeva anche ai tempi della federazione TextSecure-WhisperPush, è un problema noto.