Uh, there are also a lot of, uh,
uh, sophisticated reputation schemes
that have been invented in, um, the academic literature.
Uh, there is an entire, uh, workshop called P2PEcon,
which, um, you might want to look at if you're interested,
that covers some of, uh, these ideas.
With this, uh, the, uh, peers, um, can now search much faster.
They can just search in nearby supernode,
going back to the previous figure.
This peer on the bottom left corner can now
simply send a query,
its query to, ah, its neighboring supernode
instead of flooding the query
throughout the entire overlay graph.
Uh, why is there an advantage to being a supernode?
What is the incentive to be a supernode?
Well, a lot of your queries and searches now become
just local searches in your local uh, data structure
or your local directory information,
and so they do not incur any network traffic.
They are really, really fast.
BitTorrent is one of these systems
that has been very popular and continues to be popular.
Uh, it has a lot of similarities
with the systems that we have discussed so far,
but it works in slightly different ways, uh,
by incentivizing peers to participate in the system.
Remember that we discussed that peers oftentimes
do not contribute anything to the system.
They do not contribute files,
they do not contribute even bandwidth in many cases,
and BitTorrent addresses this by having incentives,
um, uh, for the peers to participate
so that the peers can benefit from,
uh, being unselfish and helping other peers.
So how does, uh, BitTorrent work?
Well, BitTorrent has a notion of trackers.
Uh, typically there is one tracker per file.
Uh, there might also be trackers for multiple files.
When a peer wants to join the system,
you f-somehow find, uh, the torrent or the tracker,
uh, and this, uh, enables you to talk to the tracker.
The tracker, uh, maintains a list of some of the peers
that are currently transferring that file.
Uh, it does so by receiving heartbeats
from, uh, the current, uh, peers
heartbeat messages, uh, from these peers.
The peers are of two kinds, a seed, which has a full file
and is still continuing to be, um, uh, part of the system
and help the other peers download the file,
and the leechers, which has some blocks from the file,
a file is split up into blocks,
[silence]
typically equal sized blocks,
and, uh, this peer has some of the files
and is still looking to download
the other, uh, blocks of that particular file.
The new peer, when it joins this particular, uh, group of peers,
uh, is also a leecher because it has, obviously,
none of the blocks of that particular file.