<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://homeostasis.scs.carleton.ca/wiki/index.php?action=history&amp;feed=atom&amp;title=DistOS_2021F_2021-11-18</id>
	<title>DistOS 2021F 2021-11-18 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://homeostasis.scs.carleton.ca/wiki/index.php?action=history&amp;feed=atom&amp;title=DistOS_2021F_2021-11-18"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2021F_2021-11-18&amp;action=history"/>
	<updated>2026-05-12T23:28:38Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2021F_2021-11-18&amp;diff=23507&amp;oldid=prev</id>
		<title>Soma: Created page with &quot;==Notes==  &lt;pre&gt; Lecture 18 ----------  - proposals, I&#039;m grading, that is my tomorrow  - but tonight, I&#039;ll get you readings, hopefully for rest of term  - experience 2 is almo...&quot;</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2021F_2021-11-18&amp;diff=23507&amp;oldid=prev"/>
		<updated>2021-11-19T02:26:48Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==Notes==  &amp;lt;pre&amp;gt; Lecture 18 ----------  - proposals, I&amp;#039;m grading, that is my tomorrow  - but tonight, I&amp;#039;ll get you readings, hopefully for rest of term  - experience 2 is almo...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Notes==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Lecture 18&lt;br /&gt;
----------&lt;br /&gt;
 - proposals, I&amp;#039;m grading, that is my tomorrow&lt;br /&gt;
 - but tonight, I&amp;#039;ll get you readings, hopefully for rest of term&lt;br /&gt;
 - experience 2 is almost done, should be released over the weekend&lt;br /&gt;
   - you&amp;#039;ll have more time than we originally planned&lt;br /&gt;
      - probably till the final exam&lt;br /&gt;
   - he&amp;#039;ll then get to grading experience 1&lt;br /&gt;
&lt;br /&gt;
Delos&lt;br /&gt;
 - why did I pick it?  in part, &amp;quot;power of abstraction&amp;quot;&lt;br /&gt;
 - consensus protocols keep being used&lt;br /&gt;
   - many ones&lt;br /&gt;
   - each is very technical&lt;br /&gt;
&lt;br /&gt;
abstracting consensus to a shared log file&lt;br /&gt;
 - consensus over the order of events&lt;br /&gt;
&lt;br /&gt;
log files are central to maintaining state&lt;br /&gt;
 - in log-based filesystems, the log is everything&lt;br /&gt;
 - this is because the log determines how state is changed&lt;br /&gt;
   - if you can agree on the order of changes,&lt;br /&gt;
     (and what those changes are)&lt;br /&gt;
     you can agree on the final state&lt;br /&gt;
&lt;br /&gt;
Chubby said the central consensus mechanism should be a file&lt;br /&gt;
 - Delos says it should be a log&lt;br /&gt;
 - and you can use a log to make a consensus filesystem if you want!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The abstraction says &amp;#039;you have a log&amp;#039;&lt;br /&gt;
 - below: how do I make a log?&lt;br /&gt;
 - above: how do I use the log?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DHTs &amp;amp; Tapestry&lt;br /&gt;
&lt;br /&gt;
Overlay networks&lt;br /&gt;
 - network on a network&lt;br /&gt;
&lt;br /&gt;
We have the Internet, why do we need anything else on top?&lt;br /&gt;
&lt;br /&gt;
an overlay network is adding a level of indirection to the networking problem&lt;br /&gt;
 - and that&amp;#039;s how you solve problems in CS, right?&lt;br /&gt;
&lt;br /&gt;
You use an overlay network when you don&amp;#039;t have an easy way of knowing the destination beforehand&lt;br /&gt;
 - where you communicate is based on what is being communicated&lt;br /&gt;
&lt;br /&gt;
On the Internet, I can find someplace by its IP address or DNS name&lt;br /&gt;
 - and if I don&amp;#039;t know either, I use a search engine&lt;br /&gt;
&lt;br /&gt;
But a search engine is centralized&lt;br /&gt;
 - and we want a decentralized way&lt;br /&gt;
&lt;br /&gt;
So an overlay network is a way of routing information where&lt;br /&gt;
 - you don&amp;#039;t know the location of the destination a-priori&lt;br /&gt;
 - and you don&amp;#039;t have a centralized authority to tell you&lt;br /&gt;
&lt;br /&gt;
So we define a new topology, and the purpose of that topology is to facilitate the kind of information exchange we want to do&lt;br /&gt;
 - &amp;quot;neighbors&amp;quot; have a relationship that helps communication&lt;br /&gt;
&lt;br /&gt;
Social networks are a kind of overlay network&lt;br /&gt;
 - social graph overlayed on the Internet&lt;br /&gt;
 - but, mostly ends up just being a centralized service nowadays&lt;br /&gt;
    - but you could make a decentralized one&lt;br /&gt;
&lt;br /&gt;
On the Internet, how does data get from A to B?&lt;br /&gt;
 - A sends info to local router R_1&lt;br /&gt;
 - R_1 sends it to R_2&lt;br /&gt;
 - ...&lt;br /&gt;
 - R_n-1 sends it to R_n&lt;br /&gt;
 - R_n sends it to B&lt;br /&gt;
&lt;br /&gt;
So data goes from source to routers to destinations&lt;br /&gt;
&lt;br /&gt;
Routers know about each other, how to route data, using&lt;br /&gt;
routing tables&lt;br /&gt;
 - spanning trees&lt;br /&gt;
&lt;br /&gt;
BGP is a protocol for updating routing tables&lt;br /&gt;
&lt;br /&gt;
So with an overlay network, we do the same thing&lt;br /&gt;
 - note that Tapestry even takes into account local topology&lt;br /&gt;
&lt;br /&gt;
We don&amp;#039;t use this sort of stuff as much anymore&lt;br /&gt;
 - overlay networks are essential to any P2P system&lt;br /&gt;
 - but we don&amp;#039;t use P2P so much nowadays&lt;br /&gt;
&lt;br /&gt;
Let&amp;#039;s recall Skype, great example of an overlay &amp;amp; P2P network back in the day&lt;br /&gt;
&lt;br /&gt;
Before, Skype had very few central servers, yet it wanted to route calls for the planet&lt;br /&gt;
 - idea: make it a P2P network!&lt;br /&gt;
 - clients would become hosts, everyone would share in maintaining directory, routing calls&lt;br /&gt;
    - actual call would take place directly between two parties&lt;br /&gt;
      unless there were networking issues (firewalls, NAT)&lt;br /&gt;
    - but connecting the two parties, finding them via&lt;br /&gt;
      their usernames took serious resources&lt;br /&gt;
&lt;br /&gt;
Turns out university network admins HATED Skype&lt;br /&gt;
 - it would suck up their bandwidth&lt;br /&gt;
 - it was also stealthy, so they couldn&amp;#039;t easily block it&lt;br /&gt;
&lt;br /&gt;
When Microsoft bought Skype, they dismantled the P2P network&lt;br /&gt;
and replaced it with centralized servers&lt;br /&gt;
 - and made it much worse for end users&lt;br /&gt;
&lt;br /&gt;
What P2P apps do we use nowadays?&lt;br /&gt;
 - Bittorrent?&lt;br /&gt;
 - some games?&lt;br /&gt;
 - Windows update?&lt;br /&gt;
&lt;br /&gt;
but our home network connections are *so* much better than they were nowadays, and computers are so much more powerful&lt;br /&gt;
 - would be so easy to do P2P today&lt;br /&gt;
&lt;br /&gt;
mobile devices aren&amp;#039;t the best for P2P&lt;br /&gt;
 - intermittent connectivity&lt;br /&gt;
&lt;br /&gt;
But the real problem is one of economics and sociology, not technology&lt;br /&gt;
 - P2P networks are heavily used for illegal activity&lt;br /&gt;
 - unclear how to monetize any P2P application, so who develops it?&lt;br /&gt;
 - nobody knows how to really stop the abuse of P2P systems&lt;br /&gt;
    - too easy for bad actors to mess everything up&lt;br /&gt;
&lt;br /&gt;
You could say that cryptocurrencies are the new P2P systems&lt;br /&gt;
 - but miners aren&amp;#039;t something most people want to run&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Soma</name></author>
	</entry>
</feed>