Skip to content
This repository has been archived by the owner on Sep 3, 2021. It is now read-only.


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
The EbitSim is an enhanced BitTorrent simulation with the
following features:

- Multiple concurrent swarm
- Multiple trackers
- Timeslice processing model
- A thousand nodes simulated
- Use of the INET Framework
- Modular model to allow easy configuration

For now, this model does not come with documentation other
than the comments on the code. Check the article with the
same name, presented at MASCOTS 2011, for further information.


This code was built with omnetpp-4.2.2 and it needs an
installation of inet-20111118.

They both can be found at the links:

Extract omnetpp and inet in a folder of your choice, where the
omnetpp workspace will be created ("~/Workspace", for example).

In a fresh Ubuntu install, it is necessary to install the
following packages to compile omnetpp:
- default-jre
- build-essential
- zlib1g-dev
- tcl8.4-dev
- tk8.4-dev
- tclreadline
- blt-dev
- libxml2-dev
- libpcap-dev

Run the following command to install these packages
$ sudo apt-get install default-jre build-essential zlib1g-dev tcl8.4-dev\
 tk8.4-dev tclreadline blt-dev libxml2-dev libpcap-dev

In order to compile Ebitsim, it is necessary to download the smc (State Machine
Compiler) and the boost library:

Extract them somewhere in your home folder, such as "~/libs".


1. Compile omnetpp-4.2.2 by running the following commands:
$ ./configure
$ make

If you face any problems, please refer to the omnetpp installation guide.

2. Create the file "~/bin/smc" with the following content:
if [[ $# > 0 ]]
    java -jar PATH-TO-SMC-INSTALL/bin/Smc.jar $*
    echo "Usage: smc -{targetlanguage} {options} {smfilename}.sm"

Substitute PATH-TO-SMC-INSTALL with the path where you extracted the smc
("~/libs/smc_VERSION" if you followed the suggestion above).

Make the file executable with the command
$ chmod u+x ~/bin/smc

3. Open the OMNeT++ IDE and add the INET framework source to the workspace. Then
compile both in release and debug modes.

4. Copy or move the EbitSim source code to the IDE workspace and create
an OMNeT++ project with the same name.
Use the template "Empty project with 'src' and 'simulations' folders". You MUST
NOT overwrite the 'package.ned' and the omnetpp.ini files.

5. Add the smc and boost folders to the paths.
Enter the project properties, select "C/C++ General -> Paths and Symbols", and
add the paths to the "boost" folder (it is the root) and to the "smc/lib/C++"
folder under the GNU C++ Language.

6. Use the inet project as a reference for the EbitSim.

7. Run 'make' inside the folder src/client/smc and compile the EbitSim project
both in release and debug modes.

Now you should be ready to play around!


Enhanced BitTorrent Simulation using OMNeT++






No packages published