PeerSim: A Peer-to-Peer Simulator

[Introduction] [People] [Download] [Documentation] [Peersim Extras] [Additional Code]

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 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 project BISON and continues to be used under EU project DELIS. PeerSim is written entirely in Java.

People top

The main developers of PeerSim are:

Márk Jelasity, Alberto Montresor,

Gian Paolo Jesi, Spyros Voulgaris

Other contributors and testers (in alphabetical order):

Download top

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:

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.

If you are interested in advertise your Peersim code, please write to Gian Paolo Jesi (jesi@cs.unibo.it) providing a short description, a link to your code and your name and address. If your code has been used to write a scientific publication, please provide also a link to it and make sure that the result of your publications can be reproduced with the configuration files contained in your code.

Description Code Maintainer
Pastry
An implementation of the Pastry protocol for Peersim. Lab assignment for the Distributed Systems course at the University of Trento.
pastry.tar.gz Manuel Cortella (manuel.cortella@studenti.unitn.it)
Elisa Bisoffi (elisa.bisoffi@studenti.unitn.it)
Chord
An implementation of the Chord protocol for Peersim. Lab assignment for the Distributed Systems course at the University of Trento.
chord.tar.gz Andrea Presa (andrea.presa@studenti.unitn.it)
Skipnet
An implementation of the Skipnet protocol for Peersim. Lab assignment for the Distributed Systems course at the University of Trento.
skipnet.tar.gz Rodolfo Cartas Ayala (rodolfocartas@gmail.com)
Aggregation
Aggregation is a collective term for a set of functions aimed at providing statistical information over distributed systems, such as the average load of the nodes or the size of the network. We have developed extremely scalable, robust and decentralized aggregation protocols, described in:

Márk Jelasity, Alberto Montresor, and Ozalp Babaoglu. Gossip-based aggregation in large dynamic networks. ACM Trans. Comput. Syst., 23(1):219-252, August 2005. [PDF], [Bibtex].

aggregation.tgz Alberto Montresor (alberto.montresor@unitn.it)
SG-1
A protocol for self-organizing and maintaining a superpeer-based topology.

Alberto Montresor. A Robust Protocol for Building Superpeer Overlay Topologies. In Proceedings of the 4th International Conference on Peer-to-Peer Computing, Zurich, Switzerland, August 2004. IEEE. [PDF], [Bibtex].

superpeer.tgz. Alberto Montresor (alberto.montresor@unitn.it)
Peer sampling service
We introduced the peer sampling service, that can be used as a source of random peers by participating peers. We performed extensive experiments on several gossip based implementations of the service.

Márk Jelasity, Rachid Guerraoui, Anne-Marie Kermarrec, and Maarten van Steen. The peer sampling service: Experimental evaluation of unstructured gossip-based implementations. In Hans-Arno Jacobsen, editor, Middleware 2004, volume 3231 of Lecture Notes in Computer Science, pages 79-98. Springer-Verlag, 2004. [PDF]

middleware04-exp.tar.gz Márk Jelasity (jelasity@inf.u-szeged.hu)
T-Man
The T-Man protocol can be used to build a wide range of different topologies using only a ranking function that defines the preference of each node for neighbors. The original technical report is:

Márk Jelasity and Ozalp Babaoglu. T-Man: Fast gossip-based construction of large-scale overlay topologies. Technical Report UBLCS-2004-7, University of Bologna, Department of Computer Science, Bologna, Italy, May 2004. [PDF].

UBLCS-2004-7.tar.gz Márk Jelasity (jelasity@inf.u-szeged.hu)
PdProtocol
The PdProtocol plays the Prisoner Dilemma between nodes in a network to achieve cooperation. It is based on a socially inspired mechanism (based on "tags") applied to P2P networks.

Andrea Marcozzi, David Hales, Gian Paolo Jesi, Stefano Arteconi, Ozalp Babaoglu. Tag-Based Cooperation in Peer-to-Peer Networks with Newscast. Technical Report UBLCS-2005-15, University of Bologna, Department of Computer Science, Bologna, Italy, June 2005. [PDF]

pdprotocol.tgz. Stefano Arteconi (arteconi@cs.unibo.it)
Slacer
This protocol generates a cooperative artificial social network (ASN) in a P2P overlay. Its related papers are the following:
  • David Hales and Stefano Arteconi. SLACER: A Self-Organizing Protocol for Coordination in Peer-to-Peer Networks. To appear in IEEE Intelligent System journal.
  • Friends for Free: Self-Organizing Artificial Social Networks for Trust and Cooperation. Technical Report UBLCS-2005-20 available here.
slacer.tgz. Stefano Arteconi (arteconi@cs.unibo.it)
Additional algorithms regarding ASN inspired algorithms (PD + Greedy Cheating Liars, Weakest link, and Broadcast) are analyzed and discussed respectively in the following technical reports: GCL-weakestLink-bcast.tgz Stefano Arteconi (arteconi@cs.unibo.it)
ResourceWorld, SkillWorld
Protocols claiming to produce emergent social rationality in peer-to-peer networks. The original technical report is the following:

Andrea Marcozzi and David Hales Emergent Social Rationality in a Peer-to-Peer System. Technical Report UBLCS-2006-23, University of Bologna, Department of Computer Science, Bologna, Italy, October 2006.

RwSw.tgz Andrea Marcozzi (marcozzi@cs.unibo.it)
FirmNet
The FirmNet protocol promotes the allocation of tasks in a knowledge-based economy. The original technical report is the following:

Edoardo Mollona and Andrea Marcozzi. FirmNet: The Scope of Firms and the Allocation of Task in a Knowledge-Based Economy. Technical Report UBLCS-2006-22, University of Bologna, Department of Computer Science, Bologna, Italy, November 2006.

Fn.tgz Andrea Marcozzi (marcozzi@cs.unibo.it)



Valid XHTML 1.0 Strict Valid CSS! SourceForge.net Logo Page maintenance: Gian Paolo Jesi (jesi@cs.unibo.it)
Last update: Wed Nov 29 23:03:47 CET 2006