Download TomP2P-4.4-dist.zip from the Maven repository.

Release notes for TomP2P 4.4


Major changes
=============

* NAT-PMP timeout fixes
* enhanced default broadcast handler
* fixes in discover()

Remarks
=======

-

Next things to do
=================

* refinement of the API
* application level broadcast
* support ICE/TURN
* support uTP
* automatic network / DHT parameter configuration
* connection aggregation
* upgrade to latest libraries (Netty, JDBM)
* push TomP2P to the official maven repositories

Download TomP2P-4.3-dist.zip from the Maven repository.

Release notes for TomP2P 4.3


Major changes
=============

* indirect replication fixes
* UPnP timing updates
* peermap concurrency fixes
* added bloom filter examples
* many smaller fixes/improvements

Remarks
=======

-

Next things to do
=================

* refinement of the API
* application level broadcast
* support ICE/TURN
* support uTP
* automatic network / DHT parameter configuration
* connection aggregation
* upgrade to latest libraries (Netty, JDBM)
* push TomP2P to the official maven repositories

Download TomP2P-4.2-dist.zip from the Maven repository.

Release notes for TomP2P 4.2


Major changes
=============

* better MapReduce support
* new API for put/get/add
* JDBM 8MB fix
* tons of fixes/improvements
* update to Netty 3.5.2 and latest JDBM

Remarks
=======

Although JDBM runs fine with TomP2P and all the testcases pass, the author of JDBM states that its slow on mulit-core machines. Rather than fixing JDBM 3, which is still considered to be alpha, he started to work on JDBM 4. Only fixes will be applied to JDBM 3. This means as soon as JDBM 4 is available, I'm going to switch to that version. This may break the file format when upgrading from JDBM 3 to JDBM 4. One possible scenario in TomP2P is to ship both libraries and convert JDBM 3 to JDBM 4 if necessary on the fly.  

Due to an update in the connection reservation, TomP2P runs with the official Netty and does not require a patched version. I also started to integrate Netty more deeply into TomP2P, for example Data, or PeerAddress now accepts ChannelBuffer as an argument.

I'm also staring to change the naming scheme from [x].[y].[z] to [x].[y]. In the past, [y] meant that the API may change, while [z] were fixes, and [x] were ground breaking changes. From the next release, [x] means that API may change and [y] are fixes. The current release 4.2 is a mix of both and the 4.2 release changes API. The next version where API is changed will be 5.0 and bugfixes for the current version will go into 4.3.

Next things to do
=================

* refinement of the API
* application level broadcast
* performance improvements
* make proper formatting (change to the sun standard)
* enable checkstyle
* push this library to the official maven repositories
* documentation

Download TomP2P-4.1.2-preview-dist.zip from the Maven repository.

Changelog for TomP2P 4.1.2-preview

* upgrade to latest JDBM
* switched to logback for logging
* added support for Bloom filters in get() and digetst()
* better handling of "connection reset by peer"
* fixed PeerConnection
* improved success evaluation for futures
* added examples for similarity search, distributed segment trees, and Bloom filters

Please note that there are still open issues with storing more than 8MB on disk. There is an other issue with too many open files in system which is under investigation.

Download TomP2P-4.1.1-preview-dist.zip from the Maven repository.

Changelog for TomP2P 4.1.1-preview

* TCP options set in try-catch to suppress warning if an option could not be set
* suppress "connection reset by peer" in Windows
* expose storage.map() to user
* fixed CacheMap and ConcurrentCacheMap
* improved bootstrapping, which includes connecting to random peers
* fixed tracker replication
* added more examples

Please note that there are still open issues with storing more than 8MB on disk. There is an other issue with too many open files in system which is under investigation.

Download TomP2P-4.1.0-preview-dist.zip from the Maven repository.

Changelog for TomP2P 4.1.0-preview

* Removed Guava, switched back to Java collections
* Removed BerkeleyDB, switched to JDBM, rewrote storage
* Added build-pattern to create peers
* Switched from Java5 to Java6
* Many, many bugs fixed
* Added new examples
* Further preparation for MapReduce

Please note that there are still open issues with storing more than 8MB on disk and two failed replication testcases. The reason for this release is that I need this version for the P2P lecture I'm giving at UZH.

Download from TomP2P-4.0.7-dist.zip from the Maven repository.

Changelog for TomP2P 4.0.7

* Preparation for MapReduce
* Changes for SimGrid integration
* Potential peer discovery fix for multiple interfaces
* TomP2P-4.0.7-dist.zip now contains all the required dependencies

Download from TomP2P-4.0.6-dist.zip and TomP2P-4.0.6-dist.tar.bz2 from the Maven repository.

Changelog for TomP2P 4.0.6

* Timeouts for DHT operations, use Peer.setFutureTimeout() to set a timeout for any future object.
* Fixes in tracker code and peer exchange
* Exposed DistributedHashHashMap.parallelRequests() (was DistributedHashHashMap.loop()). There is an example in TestDHT.testCompareAndPut() how to use it.
* Added flag to enforce UDP or TCP for RPC calls.
* Updated to latest Netty to fix issue with Android.

Download from TomP2P-4.0.5-dist.zip and TomP2P-4.0.5-dist.tar.bz2 from the Maven repository.

Changelog for TomP2P 4.0.5

* Initial support for SimGrid (not quite ready yet)
* Fixed maintenance thread issues
* Fixed binding bug and added testcase (connection refused)

Download from TomP2P-4.0.4-dist.zip and TomP2P-4.0.4-dist.tar.bz2 from the Maven repository.

Changelog for TomP2P 4.0.4

* An RPC for compareAndPut. For more information, see http://lists.tomp2p.net/pipermail/users/2012-January/000088.html
* Moved from SVN to Git. Migration complete.
* Bugfix: Add empty constructor for FutureTracker.
* Upgraded Netty to 3.3.0 with patches.
* Refined connection reservation. The user does not need to reserve connection in advance. In situations where deadlocks can occur, an new thread is started. If too many threads are started, the user is warned.

Download from TomP2P-4.0.3-dist.zip and TomP2P-4.0.3-dist.tar.bz2 from the Maven repository.

Changelog for TomP2P 4.0.3

* Cleanup and documentation of package net.tomp2p.connection.
* Fixed bug in add() that behaved as putIfAbsent
* Classcast exception fix for Android
* Fixed bug in handling XMLUtils, which requires to be called synchronized
* Upgraded Netty to 3.2.7
* Added support for digest() and digestAll()

Download from TomP2P-4.0.2-dist.zip and TomP2P-4.0.2-dist.tar.bz2 from the Maven repository.

Changelog for TomP2P 4.0.2

* Fixes for Java5 (Android) compatibility

Download from TomP2P-4.0.1-dist.zip and TomP2P-4.0.1-dist.tar.bz2 from the Maven repository.

Changelog for TomP2P 4.0.1

* Distinguish in routing between DHT and bootstrap operation to set success or failure correctly
* New facades (PeerAddress and Peer.remove)
* Added evaluation of digest information from the routing process to make get() more efficient
* Smaller fixes and cleanups

Download from TomP2P-4.0.0-dist.zip and TomP2P-4.0.0-dist.tar.bz2 from the Maven repository.

Changelog for TomP2P 4.0.0

* Better UPNP support and new NAT-PMP (jNAT-PMPlib) support.
* New persistant connections, because the user knows best when a connection should stay open.
* New connection handling and connection reservation.
* Upgraded libraries (Netty, Guava, BerkleyDB).
* Lots of fixes.

Download from TomP2P-3.2.11-dist.zip and TomP2P-3.2.11-dist.tar.bz2 from the Maven repository.

Changelog for TomP2P 3.2.11

* Bugfix: endless loop in Peer.java

Download from TomP2P-3.2.10-dist.zip and TomP2P-3.2.10-dist.tar.bz2 from the Maven repository.

Changelog for TomP2P 3.2.10

* Set default to not firewalled (no NAT testing), can be enabled with P2PConfiguration.setBehindFirewall().
* putIfAbsent() fixes. No denied message is sent back.
* PeerAddress serialization improvements, removed duplicate code from PeerAddress and MessageCodec.
* Close storage on shutdown, which caused an exception if writing still in progress.
* PeerMap can ignore firewalled peers.
* Configuration cleanup: P2PConfiguration and ConnectionConfiguration.
* Enabling more testcases (needs now -Xmx1024M).

Download from TomP2P-3.2.9-dist.zip and TomP2P-3.2.9-dist.tar.bz2 from the Maven repository.

Changelog for TomP2P 3.2.9

* Works again with Android, but be aware that NIO is broken in Harmony. Please use Gingerbread (2.3), which contains important fixes (http://www.jboss.org/netty/community.html#nabble-td6033498).
* Mesh-based distributed tracker improvement. Bloomfilters are used to avoid sending duplicate peers.
* Removed IP information from the packet header.
* IPv6 fixes and tested with Linux
* Removed dead and unused code

Download from TomP2P-3.2.8-dist.zip and TomP2P-3.2.8-dist.tar.bz2 from the Maven repository.

Changelog for TomP2P 3.2.8

* Distinguished tracker add/get, which adds itself to close trackers to place itself always on the same peers, and get() tracker, which searches for trackers close to a random id.
* Fixed signature check for entry and domain protection.
* Disabled UPNP behavior that assumes a peer is always behind a NAT. To enable it, use Bindings.setBehindFirewall(true).

Download from TomP2P-3.2.7-dist.zip and TomP2P-3.2.7-dist.tar.bz2 from the Maven repository.

Changelog for TomP2P 3.2.7

* Small UPNP fixes and example fixes, which were introduced in TomP2P 3.2.6

Download from TomP2P-3.2.6-dist.zip and TomP2P-3.2.6-dist.tar.bz2 from the Maven repository.

Changelog for TomP2P 3.2.6

* Fixed UPNP and port forwarding detection, which makes TomP2P more NAT friendly. The UPNP library sbbi.net was removed because the project seems to be dead. Since the code is Apache licensed, I reduced the code to the minimum for UPNP NAT traversal based on "rugl":http://code.google.com/p/rugl/.
* Updated Netty to 3.2.4 and Berkeley DB 4.1.7

Download from TomP2P-3.2.5-dist.zip and TomP2P-3.2.5-dist.tar.bz2 the Maven repository.

Changelog for TomP2P 3.2.5

* Added support for broadcasting on layer 2. The disadvantage is that it breaks Java5 compatibility.
* pingBroadcast works with any ports (not only default ports
* Added another example how to use TomP2P.

Download from TomP2P-3.2.4-dist.zip and TomP2P-3.2.4-dist.tar.bz2 the Maven repository.

Changelog for TomP2P 3.2.4

* Removed the beta label
* Fixes in the neighbor list
* Release management uses Maven
* Added support for OSGi
Changelog for TomP2P 3.2.3-beta

* Message length calculation includes header
* Concurrent modification exception fixes
* Testcase fixes
* Number of peers estimation included
* Added replication for trackers
Name Modification Date Size
tomp2p-3.2.3-beta.zip May 5, 2013 2:29:04 PM 3,366,784 bytes
Changelog for TomP2P 3.2.2-beta

* Tracker performance issue fixed
* Concurrent modifiacion exception in tracker fixed
* Changed EvaluatingSchemeDHT due to erasure errors
* Removed replication from trackers because this causes too much overhead
Name Modification Date Size
tomp2p-3.2.2-beta.zip May 5, 2013 2:29:07 PM 3,322,041 bytes
Changelog for TomP2P 3.2.1-beta

* Caught exception for fault custom handlers
* Updated to latest Netty (3.2.1.Final) release
Name Modification Date Size
tomp2p-3.2.1-beta.zip May 5, 2013 2:29:06 PM 3,320,310 bytes
Changelog for TomP2P 3.2.0-beta

* Added shiftleft, shiftright for Number160
* Added Number320 and Number480 for storing location keys, domain keys and content keys
* Added support for indirect replication (experimental)
* Added maintenance support for trackers
* Increased aggressivity of maintenance interval
* merged tracker and dht storage to one class
* Fixed bug in short int conversion
* Added disk-based storage (experimental)
* changed package name from ch.uzh.csg.tomp2p to net.tomp2p
* Added port forwarding identification (experimental)
* Remove timed out data objects
Name Modification Date Size
tomp2p-3.2.0-beta.zip May 5, 2013 2:29:06 PM 3,302,104 bytes
Changelog for TomP2P 3.1.15

* Fixed bug in tracker. The timeout was not calculated correctly, which resulted in an immediate remove.
* Updated to Netty 3.2CR1
Name Modification Date Size
tomp2p-3.1.15.zip May 5, 2013 2:29:05 PM 1,284,718 bytes
Changelog for TomP2P 3.1.14

* Added better support for deadlock detection
Name Modification Date Size
tomp2p-3.1.14.zip May 5, 2013 2:29:07 PM 1,173,451 bytes
Changelog for TomP2P 3.1.13
* Fixed bug in signatures. When a packet was fragmented, the header was ignored in the signature calculation. Thus, the signature was wrong
* Changed the maps from private to protected in StorageMemory, since access to those is sometimes necessary
* Added new TestCases
* Removed ASN1 dependency (CoDec), since TomP2P uses a very specify part of it. Implementation of the specific ASN1 was done with 20 LoC. This reduces the whole TomP2P package from 1.4MB to 1.1MB
* Fixed transfer of raw channel buffers
Name Modification Date Size
tomp2p-3.1.13.zip May 5, 2013 2:29:04 PM 1,173,334 bytes
Changelog for TomP2P 3.1.12
* Removed move/copy, since it was never really used. You can still have your own move copy with the new custom send method
* Added custom send for arbitrary buffers and objects. This can be used with the location key
* Improved scheduled future handling for FutureDHT. The remove future now creates only one scheduled future.
* Renamed RawData to DirectData
Name Modification Date Size
tomp2p-3.1.12.zip May 5, 2013 2:29:04 PM 1,420,515 bytes
Changelog for TomP2P 3.1.11
* Fixed protected security bug
* Added initial support for passive replication
* Added FutureCreate, for futures that are created in the future
* Fixed configurations bug in copy
* Added scheduled executor pool for passive replication. Changed Storage and added methods that store data for the passive replication
* Added Empty keyPair in Peer.java
Name Modification Date Size
tomp2p-3.1.11.zip May 5, 2013 2:29:08 PM 1,418,545 bytes
Changelog for TomP2P 3.1.10
* Changed and simplified security. A user can define, which domain cannot be protected
* Added built-in security to trackers
* Introduced message and data signatures in the data object
* Codec fixes, encoding was performed byte-wise, decoding int-wise, which can cause problems of little/big-endian machines.
* Removed entry protection from the message and added in the data object, the sign bit of the TTL indicates if an entry is protected. This also means, that there are no negative TTLs.
* Changes in FutureDHT for add. If nothing is returned, it should not be an error since we insert only if absent. If vaules are present, we do not insert anything, which is ok.
* Added initial support for passive replication in p2p.config
* Added more sanity checks in Peer.java
* Shared execution handler in sender for slave peers
Name Modification Date Size
tomp2p-3.1.10.zip May 5, 2013 2:29:08 PM 1,406,445 bytes
Changelog for TomP2P 3.1.8
* fixed bug: added channel to channelgroup in dispatcher
* fixed bug: priority to IPv4
* changed to Netty 3.2 BETA1
* added secure keys
* added listener for peer offline
* removed JDK depended code for use with android
* changed name in peermap
* Added deadlock checker in future listener
* Added configurable offline peer detector
* Fixed bug in messagecodec
* Added execution handler for incoming (from the sender) messages
* Changed order of shutdown sequence
* Added getAll in peermap
* Add security (signatures for protecting entries, domains)
* First-class support for trackers with load-balancing
* Added new contstructors in Peer.java for easy initlialization
* Added more fine-graind protection mechanism for entry and domain
* Added hash creators in Number160
* Bug fixed in DistributedHashHashMap
* Added experimental support for get, which returns data with a certain public key
* Split add/remove future methods in FutureDHT
* Added filter for IPs in peermap
* Shared udpChannelFactory, tcpServerChannelFactory, tcpClientChannelFactory
* Added warning message if a content key is set when using add
Name Modification Date Size
tomp2p-3.1.8.zip May 5, 2013 2:29:06 PM 1,400,808 bytes