Marabunta (software)
# Marabunta (software)

Marabunta is a fully distributed software application for anonymous P2P. The main goal is the fight against internet censorship and assuring the freedom of speech. It is a peer-to-peer platform for information exchange among nodes in an anonymous way based on several communication algorithms called "Order and Chaos" which can be found in massive social organizations such as ant colonies.

The project was founded at the University of Zaragoza, Spain, developed and promoted by students of computing engineering although development teams and users from many different places have shown interest, perhaps attracted by the ideological aims of the project. The software is available in Spanish and English, the website is also available in English.

Marabunta uses the Qt graphical widget toolkit, allowing it to be used on both Linux and Microsoft Windows. Released under the GNU General Public License, Marabunta is free software.

## Purpose

Marabunta is an implementation of the ideas explained in the "Free Nets project" and it has been developed with these ideas in mind:

* Avoiding censure: Communication between people avoiding central servers is allowed, so it is free from censure attacks, which are commonly launched by many governments and corporations that want to control the communications.
* Anonymity: A degree of anonymous communication is made possible, such that information can be accessed without knowledge of its original source.
* Motives and development: Marabunta is the first project of this kind developed in Spain (first version released in 2005). Still, the software has potential use by people anywhere in the world, especially in countries with little or no freedom of speech.

## Features

There are many potential services that can be run on top of Marabunta. Text message interchange is the first service. It could be taken as a platform for telegram distribution, where each computer in the net works as a host and as a server.

* As a host: messages are sent, active nodes are sought, etc.
* As a server: text messages and requests to increase the connectivity between nodes are routed to the network using a broadcast forwarding method.

There are four message distribution lists, so receivers only receive messages sent to the list they are interested in: General, Technology, Philosophy, and Politics.

Content filters are allowed, so only messages with certain patterns are displayed. This is specially useful when searching for some specific information because Marabunta just selects potentially interesting messages.

### Connections

All generated traffic uses the UDP/IP protocols. Avoiding setting up connections between nodes lets more traffic flow in the network and the operational redundancy of every node can be used. Moreover, the UDP protocol could be seen as increasing the anonymity in the net because there is no need to validate source hosts to receive a datagram.

**Port-forwarding on NATs**

Marabunta does not support UDP hole punching, so users behind NATs have to establish a port forwarding route to let the router know to which port and node of the internal net it should forward the arriving datagrams.

