CNT4007C Peer-to-Peer network project. To ensure that this project runs, it requires you to have a public and private key authentication set up for SSH. If this is not set up the SSH for the machines will ask for passwords. Also, in StartRemotePeers.java, change line 11 to include your username for the CISE machines. Finally, transfer this Project directory into the remote machines using SFTP. Make sure that the name of the directory is "Project" on the remote machine. To begin run ./compileJava in the working directory. Then you can run java StartRemotePeers. The alternative is to run the project on the localhost.
Christopher Cooper, Kyle Cheng, Alejandro Lopez
- choke
- unchoke
- interested
- not interested
- have
- bitfield
- request
- piece
Kyle Cheng, Christopher Cooper, Alejandro Lopez
- handshake and bitfield
- choke and unchoke
- interested and not interested
- request and piece
- Common.cfg
- PeerInfo.cfg
Kyle Cheng, Christopher Cooper, Alejandro Lopez
- Peer that started should make TCP connections to all peers started before it
- When connected to at least one peer, starts to exchange pieces
- Peer terminates when it finds out that all peers have downloaded the complete file
Kyle Cheng, Alejandro Lopez
- Reads file PeerInfo.cfg and starts peers in the file one by one
- Terminates after starting all peers
Alejandro Lopez, Christopher Cooper
- Should have subdirectories with 'peer_[peerID]'
- Ensure that peer processes with a complete file actually contain the file before you start them
Kyle Cheng, Christopher Cooper
- TCP Connection
- Change of preferred neighbors
- Change of optimistically unchoked neighbor
- Unchoking
- Choking
- Receiving 'have' message
- Receiving 'interested' message
- Receiving 'not interested' message
- Downloading a piece
- Completion of download