If you are looking for a structured p2p overlay to build distributed 
applications, try FreePastry!  (http://www.freepastry.org/)

FreePastry is a open source (BSD like), modular, Java implementation of the Pastry overlay. We just released version 2.0 which has a lot of performance features including a much more compact serialization than Java Serialization. We've done extensive testing on the Internet, and FreePastry comes with a discrete event simulator that has been optimized and can support 10K-100K nodes on a beefy machine. We've done a lot of work to make stronger routing consistency guarantees than most other p2p overlays. NAT support is currently limited to users who can set up port forwarding, or have UPnP, but some of our users are investigating integration STUN to expand this capability.

Cheers!
-Jeff

Changes since release 2.0beta2

    * Documentation:
          o Diagrams -- see docs/visio/ in the source distribution
          o Wireshark dissector. Thanks David Dugoujon -- see tools/wireshark/ 
in the source distribution.
            Note: the FreePastry wireshark dissector is licensed under the GPL, 
not FreePastry's BSD-like license
          o Protocol Specification -- see docs/ProtocolSpec.txt in the source 
distribution
    * Minor bug fixes.

Changes since release 2.0beta

    * Depends on Java 1.5 to use new features
    * Numerous Bug Fixes, Performance Optimizations, Documentation improvements.
    * Tap interface for simulator: see SimulatorListener
    * Routing Consistency works much better
          o Lots of evaluation on PlanetLab
          o Note:The PeriodicLeafSetProtocol is very low bandwidth and provides 
routing consistency in almost all situations
other than network partitions. However, the accuracy of the LeafSet is most 
accurate near the center. This is because leafset
changes are gossiped. With the default setup, changes to the leafset may take 
over 4 minutes to propagate to all nodes. However,
your nearest neighbor to the left and right are guaranteed to be accurate.
          o Note:The node may go ready and not ready depending on lease 
validity. Not ready means that the node will not accept
routing messages. This is necessary to guarantee routing consistency. To find 
out if you are ready, you can call
PastryNode.isReady(), or register yourself as an Observer of the PastryNode. 
You can expect a value of true when the node goes
ready, and a value of false when it goes not-ready.
    * Better support of NATs:
          o Integration of optional UPnP provider: SBBI's UPNPLib
          o EpochInetSocketAddress supports a list of IP addresses to work 
properly with NATs that don't support hairpinning.
    * FreePastry will scan the working directory for user.params to override 
the freepastry.params file in the jar

Changes since release 1.4.4

    * Elimination of Java Serialization. Is reverse compatible with the code of 
previous version, but the protocol is not reverse
compatible. Your application needs to implement 
rice.p2p.commonapi.rawserialization.RawMessage to gain the benefits of non-java
serialization.
    * See docs/ProtocolSpec.txt for the definition of the protocol. Now FP can 
be ported to other languages...
    * Application level sockets. Applications can now use their own socket 
which will be properly source-routed. This allows
applications to handle their own end-to-end communication for large messages 
and flow control. See rice.tutorial.appsocket for an
example of how to use this feature.
    * Application and Endpoint can be registered later to remove implicit 
registration that caused synchronization bugs during
startup. In other words, Node.registerApplication() was replaced with 
buildEndpoint() and you must call Endpoint.register() after
you application has initialized its member variables.
    * Various other improvements.

_______________________________________________
p2p-hackers mailing list
[email protected]
http://lists.zooko.com/mailman/listinfo/p2p-hackers

Reply via email to