|
|
|
|||||||||||
P2PKit: A Services Based Architecture for Deploying Robust Peer-to-Peer Applications |
|||||||||||||
August, 2006
| The P2PKit Report | This is based on PEPITO deliverable 3.7. It provides a good introduction to P2PKit, describes its architecture, and gives some nice examples. However, it describes an ancient (horrible) API. |
| api.txt | This is an ascii file containing the current (nicer) API. I am looking for a more suitable format for this information. Hopefully, it can be made easier to maintain by me, and easier to use by P2PKit developers. |
| A presentation | A nice presentation of P2PKit that I gave to the 3rd Pepito Project Workshop. It uses the current API (though a little simplified in places, mainly error handling) |
| Poster Presentation | P2PKit in 6 slides. For a quick overview of our research project |
As always, feel free to mail me any questions or comments.
To run a P2PKit network of peers you must install the ozmake package keving-p2p-P2PKitPeer-1.07.pkg and this version of P2PS (the one in Mogul is currently out of date).
I have code for a sample P2PKit network: download and compile Node.oz, then install keving-net-twikistore-1.01.pkg and keving-lib-util-1.1.pkg. Run an instance of
ozengine Node.ozf -m --network blabla, where
blabla is a unique name for your network. Then you can
start as many other nodes as you like by ozengine Node.ozf
--network blabla, (i.e., without the -m
argument). All the nodes started with the same network name will find
each other. You can also start tracing by adding the -v
<tracelevel> argument to your calls. Currently
-v10 will get all possible tracing. Nodes can be started
on different computers.
@s-ensor:test 4Q> ozengine Node.ozf -h Usage: Node.ozf [option] Options: -m, --master Create New Network (default: false) -p <n>, --peers <n> Start <n> virtual peers (default: 1) --ozstore Use the OzStore Persistent Dictionary --ozstoreticket <ticketfile> ozstore ticket file (default: http://www.info.ucl.ac.be/~glynn/OzStoreTicket) -n <network>, --network <network> Create/join <network> -v <level>, --verbose <level> Verbosity level -h, --help This helpI have some sample code for P2PKit clients: opi_p2p.oz connects as a client to an existing P2PS network and installs / runs a number of services; ControlGUI.oz is a control center GUI for a P2PS network written using P2PKit. To run these clients you must install keving-p2p-P2PKitClient-1.04.pkg and keving-net-twikistore-1.01.pkg (if you didn't already). Once you have started a network of P2PKit nodes you can run ControlGUI.oz (
ozengine ControlGUI.ozf --network <blabla>) to view the network.
A number of services have been built using P2PKit. For the Pepito project we have built a service which provides a Distributed
Shared Memory offering Causal Consistency. For the code and an explanation follow this link.
Kevin Glynn (kevin.glynn@gmail.com)
--peer=<n> option to start | Attachment: |
|---|
| |
| |
| |
| |
| |