What is TomP2P?
TomP2P is a peer-to-peer (P2P) distributed hash table (DHT) library implemented in Java, designed for high-performance key-value storage. It extends standard DHT functionality by allowing multiple values to be stored for a single key, with each peer maintaining either disk-based or memory-based tables. The library supports operations such as put and get, along with custom operations, and utilizes Java NIO for non-blocking I/O to handle numerous concurrent connections efficiently.
Built on XOR-based iterative routing similar to Kademlia, TomP2P includes features like direct and indirect replication, mesh-based distributed tracking, and data integrity protection via signatures. It is compatible with IPv4 and IPv6, scales to over 2160 peers, and has been tested on Android. The library is open-source under the Apache License 2.0, with academic and practical applications in projects like Hive2Hive and LiveShift.
Features
- Java 6 DHT Implementation: Non-blocking I/O for high performance
- XOR-based Iterative Routing: Similar to Kademlia for efficient peer discovery
- Extended DHT Operations: Support for custom operations beyond standard put and get
- Direct and Indirect Replication: Ensures data availability and redundancy
- Mesh-based Distributed Tracker: Facilitates peer coordination and network management
- Data Integrity Protection: Uses signatures to secure stored data
- Port Forwarding Detection: Configurable via UPNP for network accessibility
- IPv4 and IPv6 Compatibility: Tested on Linux and other platforms
Use Cases
- Distributed storage systems for academic research
- Peer-to-peer file sharing applications
- Decentralized data management in IoT networks
- Building scalable overlay networks for communication services
- Developing Android apps with P2P capabilities
- Implementing custom DHT operations for specialized projects
FAQs
-
What is the target Java version for TomP2P?
TomP2P targets Java 6 and has been successfully tested on Android. -
What license is TomP2P distributed under?
TomP2P is distributed under the Apache License, Version 2.0, except for the net.tomp2p.natpmp module, which is LGPL. -
How does TomP2P handle network address translation (NAT)?
TomP2P includes features for NAT integration, hole punching, and stable relaying, with port forwarding detection via UPNP. -
Can TomP2P be used in academic projects?
Yes, TomP2P has been used in several academic projects and research papers, supported by EU grants like FLAMINGO. -
What are some applications built with TomP2P?
Applications include Hive2Hive, LiveShift, DRFS, P2PFastSS, PeerVote, PSH/CompactPSH, and P2P-PTT.
Helpful for people in the following professions
TomP2P Uptime Monitor
Average Uptime
100%
Average Response Time
559.5 ms