# Howto Seed Swarm Service

Seed Swarm Service is a option and not a have to!
It is not neccessary to setup the swam-service options to run a xl-client!
All installation of xl clients following the same rules like usualy. Every client needs still it own seperate configuration file and it own seperate unique folder for the datastore. After the installation you can choose if clients should use a extra folder which they use together for sharing completed torrents. It spares to physical copy every file to each datastore of each client when you want to share the same file with multiple clients.
Symlinks are not supported and to use them is your own experimental choice.

- Example: How to create a seeder swarm with 5 xl-clients
    Step 1
  Stopp I2P
    copy the [rename me].war 5 times to i2p/webapps and rename the copies to
    xl-Leader.war ; xl-unit1.war ; xl-unit2.war ; xl-unit3.war ; xl-unit4.war ;
  Start I2P
    create somewhere a new folder and name it for example as xl-swarmstore1

-   Step 2
    copy the folder path into the textfield Swarm directory: of each client
    and press Save configuration

    Step 3
    for client xl-Leader select the checkbox-field Leader:
    and press Save configuration

    Step 4
    after of refreshing the browser for each client you can see that the leader of the swarm appears below the Swarm Service settings

    Step 5
    - copy your data-files to share in the folder xl-swarmstore1 you created in Step 1.
    - copy the torrent-files for the data-files in the folder xl-swarmstore1 you created in Step 1.
    - wait that the leader of the swarm finish the file checking.
    - wait that the swarmunits found the checked files.

    Step 6
    As example when you share a file with the leader and unit4 of the swarm then it looks like in the picture below
    you can see that all clients using only the leader proxy for communication with the tracker when you had selected the checkbox Use ProxyPort of Leader: like in the example above.
    That save some extra tunnels during a swarm sharing but you have to watchout that the leader is allways running or the clients get Tracker errors

    Appendix
    - the datastore for the swarm had to exists before you add it in the textfield.
    - every client need still it own unique datastore like usualy.
    - do not use a existing datastore of some clients as datastore for the swarm.
    - only the swarm leader could removing files from the datastore for the swarm.
    - deleting the torrent file in the datastore for the swarm does removing the torrent from all swarm members.
    - a removed torrent needs to check again when you add it again.
    - a swarm can only have one leader.
    - every client has still it own datastore. see above
    - remove a client from the swarm by leaving the textfield of Swarm directory: emtpy and press again Save configuration .
    - after adding or removing a client to/from a swarm it needs some minutes before the torrents for the swarm are added or removed to/from the clients torrentlist.
    - never use a torrent that is in one off the clients private datastore listed too.

- Warnings: A swarm seed with 5 clients make only sense when you can share more than 100 kb/s
    and allocate the java enviroment of I2P with minimum 256mb at least.
    that you can do in the wrapper.config search for wrapper.java.maxmemory and change the value.

  When make it sense to use a swarm seed?
    - You can share at least more than 100 kb/s to I2P.
    - Your seed have less leechers. ( < 5 )
    - You are in superseed modus and want as fast as it is possible to share 100% of the parts.
    - Your seed is big sized.
    - Every client and it tunnels increasing the overhead. Sometimes it has more prosperity to using less clients to share effective more real datas.

  Some values for the size of a seed-swarm
    0 - 5 Leechers -> seed-swarm-size 2 - 4
    5 - 15 Leechers -> seed-swarm-size 1 - 3
    15+ Leechers -> seed-swarm-size 1 - 2

  Some values for tunnel settings
  the count of torrents doesn't matter (but do not seed more than 5 torrents at same time!)
    seed-swarm-size 2 (and more)
    0 - 15 connected Peers -> tunnel count 1 in - 1 out (backup 0) each client
    15+ connected Peers -> tunnel count 2 in - 2 out (backup 0) each client
    --------------- --------------- --------------- --------------- ---------------
    seeds with one client alone
    0 - 10 connected Peers -> tunnel count 1 in - 1 out (backup 0)
    10 - 15 connected Peers -> tunnel count 2 in - 2 out (backup 0)
    15 - 25 connected Peers -> tunnel count 3 in - 3 out (backup 0)
    25+ connected Peers -> tunnel count 4 in - 4 out (backup 0)
    At least as Powerseeder use allways a setting for 'hop' of minimum 2 for each tunnel.

  Others: Superseed
    - switch on superseed and press "Reset" to fill the partlist with all pieces of the torrent.
    - run in superseed modus up 98% - 99% (superseed does that automatic and stopps when the piecelist count is 0).
    - switch off superseed and continuing as a normal seeder.
    that way you commit the torrent in 1/4 of time (only without Auto Limiter "AL") but at least it takes the usually same time before the first leecher completing the torrent. but with a higher chance even when the Firstseeder is offline for a longer term or meanwhile is sharing other torrents.

- (For German Users)
  Kurze Zusammenfassung für den swarm-service:
  ---
  general:
  (hat nichts mit dem swarm-service zu tun und gilt nach wie vor im allgemeinen für alle xl clienten! ich führ es nur nochmal zur Sicherheit auf.)
  - jeder xl client benötigt nach wie vor seinen eigenen unique Datastore!
  (beim kopieren einer anderen config aufpassen und vor start von i2p den pfad für den unique datastore der clients neu setzen sonst teilen sich 2 clienten einen datastore -> führt zu fehlern) hier bleibt also alles beim alten wie vor dem swarm-service!
  ---
  swarm-service:
  - das swarmdirectory muss schon existieren bevor man den Pfad einträgt!
  - das swarmdirectory darf kein datastore irgendeines xl clienten oder eines anderen BT-Clienten sein!
  - nach eingeben des pfades für das swarmdirectory wird von xl eine "swarm.config" im swarmdirectory erzeugt.
  ohne die geht nix, wenn die fehlt dann -> bug oder fehlerhafte Eingabe.
  - bei Benutzung des swarm-services kann nur ein definierter "leader" Aktionen wie löschen, entfernen, filecheck im swarmdirectory ausführen!
  der eigene unique datastore der einzelnen xl clienten bleibt hiervon unberührt! hier hat nach wie vor jeder xl client unabhängig vom swarm-service das Hausrecht!
  - bei hinzufügen oder entfernen eines xl clienten vom swarm, kann es einige Minuten dauern bis die Torrents gefunden oder aus der Liste entfernt werden.

Never run a swarm with autostart torrents!
Allways use copies of your files!
Swarm Service is a BETA-Release!

forum

copyright 2010 fwd Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported