# PeerSim: A Peer-to-Peer Simulator

 Introduction top

Peer-to-peer systems can be of a very large scale such as millions of nodes, which typically join and leave continously. These properties are very challenging to deal with. Evaluating a new protocol in a real environment, especially in its early stages of development, is not feasible.

PeerSim has been developed with extreme scalability and support for dynamicity in mind. We use it in our everyday research and chose to release it to the public under the GPL open source license. It is written in Java and it is composed of two simulation engines, a simplified (cycle-based) one and and event driven one. The engines are supported by many simple, extendable, and pluggable components, with a flexible configuration mechanism.

The cycle-based engine, to allow for scalability, uses some simplifying assumptions, such as ignoring the details of the transport layer in the communication protocol stack. The event-based engine is less efficient but more realistic. Among other things, it supports transport layer simulation as well. In addition, cycle-based protocols can be run by the event-based engine too.

PeerSim started under EU projects BISON and DELIS DELIS. The PeerSim development in Trento (Alberto Montresor, Gian Paolo Jesi) is now partially supported by the Napa-Wine project.

 People top

The main developers of PeerSim are:

Other contributors and testers (in alphabetical order):

The project is hosted at SourceForge.net. The source, the compiled version and other material can be downloaded from the PeerSim project page.

If you want to be kept informed about new release of PeerSim, join the peersim-announce@lists.sourceforge.net mailing list. The list is moderated and extremely low-traffic.

 Documentation top

Available documentation:

• class documentation compiled with javadoc
• a lightweight introduction to the usage and programming of the cycle-based engine of PeerSim through an example (PDF, HTML)
• an example of building a static overlay topology (PDF, HTML)
• introducing the event based engine through a simple example (PDF, HTML)
 Publications top

Several publications have been written with the help of Peersim. At this point, the large majority of them have not been written by us. You can find an uncomplete list here. If you want to add your paper to this list, or suggest a correction, please send a mail to Alberto Montresor.

If you write a paper using peersim, please use the following citation:

--- bibtex ---

@inproceedings{p2p09-peersim,
Author = {Alberto Montresor and M\'{a}rk Jelasity},
Title = {{PeerSim}: A Scalable {P2P} Simulator},
Booktitle = {Proc. of the 9th Int. Conference on Peer-to-Peer (P2P'09)},
Year = {2009},
Month = sep,
Pages = {99-100},
}

--- plain latex ---

\bibitem{p2p09-peersim}
Alberto Montresor and M\'{a}rk Jelasity.
\newblock PeerSim: A scalable P2P simulator.
\newblock In {\em Proc. of the 9th Int. Conference on Peer-to-Peer (P2P'09)},
pages 99--100. Seattle, WA, September 2009.

--- resulting text ----

Alberto Montresor and Mark Jelasity. PeerSim: A scalable P2P simulator. In Proc. of the 9th Int. Conference on Peer-to-Peer (P2P’09), pages 99–100. Seattle, WA, September 2009.


 Peersim Extras top

Peersim cannot grow forever. Still, each of us has developed a lot of additional code that could be useful to somebody else. To avoid to "bloat" Peersim, we have decided to create the Peersim Extras repository for code that (i) has not reached the maturity required to be included in Peersim, or (ii) is too specific for the mainstream Peersim.

Peersim Extras' CVS repository can be checked out through anonymous (pserver) CVS with the following instruction set. The module is extras. When prompted for a password for anonymous, simply press the Enter key.

cvs -d:pserver:anonymous@peersim.cvs.sourceforge.net:/cvsroot/peersim login cvs -z3 -d:pserver:anonymous@peersim.cvs.sourceforge.net:/cvsroot/peersim co -P extras
 User code top

The following table page contains additional packages developed by Peersim users for their research. We provide them "as it is": please refer to the maintainers names and addresses listed below for further information and support.