You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+2-4Lines changed: 2 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -52,9 +52,7 @@ This course can be facilitated in an environment without internet access. Partic
52
52
53
53
## Workshop Materials
54
54
55
-
Class materials are written as [Markdown](https://en.wikipedia.org/wiki/Markdown) files and presentation slides are created as a Markdown-based [GitBook](https://www.gitbook.com). All generated assets are hosted on [GitHub Pages](https://tomeshnet.github.io/p2p-internet-workshop/) and packaged as a downloadable archive on [GitHub Releases](https://github.com/tomeshnet/p2p-internet-workshop/releases/latest).
56
-
57
-
When facilitating the workshop in an offline environment, you can run `gitbook serve` from a `presentation` directory to serve the slides on `http://localhost:4000`.
55
+
Class materials are written as [Markdown](https://en.wikipedia.org/wiki/Markdown) files and presentation slides are created as Markdown-based [Remark slides](https://github.com/gnab/remark). All generated assets are hosted on [GitHub Pages](https://tomeshnet.github.io/p2p-internet-workshop/) and packaged as a downloadable archive on [GitHub Releases](https://github.com/tomeshnet/p2p-internet-workshop/releases/latest).
58
56
59
57
If you want to generate course assets yourself, simply run `./install-dependencies.sh` and `./build.sh`. You will find the generated assets in the `output` folder. The `./package.sh` script is used to zip up the generated assets into downloadable archives and to create the course website.
60
58
@@ -92,7 +90,7 @@ Other accessories:
92
90
93
91
The first version of this syllabus is created by [Toronto Mesh](https://tomesh.net) contributors: [@benhylau](https://github.com/benhylau), [@darkdrgn2k](https://github.com/darkdrgn2k), [@dcwalk](https://github.com/dcwalk), [@uditvira](https://github.com/uditvira), [@Shrinks99](https://github.com/Shrinks99), and [@Pedro-on-a-bike](https://github.com/Pedro-on-a-bike). While most of the material is created new, the course also incorporates many prior works listed [here](https://tomeshnet.github.io/p2p-internet-workshop/articles/general/general-extra-resources.pdf), or otherwise referenced in their individual course modules.
94
92
95
-
Hands-on activities rely on software from many projects: [mesh-orange](https://github.com/tomeshnet/mesh-orange), [mesh-router-builder](https://github.com/benhylau/mesh-router-builder), [mesh-workshop](https://github.com/benhylau/mesh-workshop/), [steamlink](https://github.com/steamlink), [cjdns](https://github.com/cjdelisle/cjdns/), [Yggdrasil](https://yggdrasil-network.github.io/about.html), [IPFS](https://ipfs.io/), [Secure Scuttlebutt](https://github.com/ssbc/). Course material generation uses [markdown-pdf](https://github.com/alanshaw/markdown-pdf) and [gitbook-cli](https://github.com/GitbookIO/gitbook-cli). The course website is built with [Jekyll](https://jekyllrb.com/), and the theme is from [Mozilla's Open Leadership Training Series](https://github.com/mozilla/open-leadership-training-series). Icons from [Font Awesome](http://fontawesome.io/) and [Jake Ingman](https://thenounproject.com/search/?q=mesh&i=74809) are used.
93
+
Hands-on activities rely on software from many projects: [mesh-orange](https://github.com/tomeshnet/mesh-orange), [mesh-router-builder](https://github.com/benhylau/mesh-router-builder), [mesh-workshop](https://github.com/benhylau/mesh-workshop/), [steamlink](https://github.com/steamlink), [cjdns](https://github.com/cjdelisle/cjdns/), [Yggdrasil](https://yggdrasil-network.github.io/about.html), [IPFS](https://ipfs.io/), [Secure Scuttlebutt](https://github.com/ssbc/). Course material generation uses [markdown-pdf](https://github.com/alanshaw/markdown-pdf) and [decktape](https://github.com/astefanutti/decktape). The course website is built with [Jekyll](https://jekyllrb.com/), and the theme is from [Mozilla's Open Leadership Training Series](https://github.com/mozilla/open-leadership-training-series). Icons from [Font Awesome](http://fontawesome.io/) and [Jake Ingman](https://thenounproject.com/search/?q=mesh&i=74809) are used.
This workshop series is made by [Toronto Mesh](https://tomesh.net), a group of volunteers using off-the-shelf hardware and peer-to-peer software to build a community mesh network.
39
+
40
+
Over the course of six workshops, we will:
41
+
42
+
- Learn how to build and maintain mesh networks
43
+
- Familiarize with peer-to-peer applications and their values vs. centralized systems
44
+
- Reflect on the politics of our technologies and what a distributed web may bring
45
+
46
+
The syllabus, along with all course material is open-source and adapts resources from [Commotion Wireless](http://commotionwireless.net), [Meta Mesh](https://www.metamesh.org), [networks.land](http://networks.land), [(Re)Building Technology](http://communitytechnology.github.io/), among others.
47
+
48
+
You can find it here: https://github.com/tomeshnet/p2p-internet-workshop/
- In 2011, [Egypt internet shutdown](https://www.accessnow.org/five-years-later-the-internet-shutdown-that-rocked-egypt/) during Arab Spring, and in 2016, [Turkey passed legislation](https://turkeyblocks.org/2016/08/25/social-media-blocked-turkey/) allowing government to suspend access
62
+
- In 2017, [Hurrican Maria in Puerto Rico](https://dyn.com/blog/puerto-ricos-slow-internet-recovery/) caused significant damage to last-mile infrastructure, slow recovery of general internet access long after core infrastructure is restored
63
+
64
+
---
65
+
66
+
# Mesh topology
67
+
68
+

69
+
70
+
- [Great Firewall of China](https://en.wikipedia.org/wiki/Great_Firewall) routinely scans, censors, and modifies internet traffic
71
+
- In 2017 leading up to the Catalan referendum, the Spanish government [took down .cat domains](https://www.theregister.co.uk/2017/09/23/spanish_government_criticized_over_catalan_internet_registry_raid/) and [had the polling station app blocked](https://www.thespainreport.com/articles/1166-170929190146-google-removes-catalan-referendum-app-from-google-play-after-catalan-high-court-issues-take-down-order)
72
+
- [Equifax data breach of 2017](https://arstechnica.com/information-technology/2017/09/why-the-equifax-breach-is-very-possibly-the-worst-leak-of-personal-info-ever/) demonstrated significant security risk associated with large collections of personal information
- Distribute content to mesh nodes such that you can access them from your peers, and their peers, and so on...
81
+
- Content-addressing schemes allow you to self-verify integrity of the data, so you don't have to trust the data source
82
+
- Content replication across nodes + distributed communication infrastructure make it difficult for single actors to monitor, censor, or destroy information access, discourage large collections of personal information, and allows for democratic forms of moderation
83
+
84
+
---
85
+
86
+
# Mesh communities
87
+
88
+
- Established mesh networks such as [Freifunk](https://freifunk.net) and [Guifi](http://guifi.net/) in Europe, [Metamesh](https://www.metamesh.org) and [People's Open](https://peoplesopen.net) in the U.S., [AlterMundi](https://altermundi.net) in Argentina, and many more
89
+
- Common activities include flashing and putting up off-the-shelf routers, building free software and custom hardware, developing technical literacy material, providing low-cost internet access, community organizing locally and globally (such as [Battle Mesh](https://battlemesh.org))
90
+
- Large variations across different mesh communities in their approach and ambitions
91
+
92
+
---
93
+
94
+
# Peer-to-peer file sharing on a mesh
95
+
96
+
Each Raspberry Pi:
97
+
- Has a unique name in the form of `<hostname>.local`
98
+
- Advertises a WiFi SSID `<hostname>` which you can connect with `password` as password
99
+
- Connects to other in-range Raspberry Pis via a second WiFi interface to form a mesh
100
+
101
+
We will use the [InterPlanetary File System (IPFS)](https://ipfs.io), a peer-to-peer hypermedia protocol, to share content with each other on our own network.
102
+
103
+
You can think of the Raspberry Pi as your home router and modem connecting to your Internet Service Provider (ISP), except now it has a direct line to other content-serving mesh nodes just like itself, and has superpowers because it runs like a full computer.
104
+
105
+
---
106
+
107
+
# Investigate our technologies
108
+
109
+
Select a popular website or application and investigate based on the following criteria:
110
+
111
+
1. Mission & Ownership
112
+
2. Design & Access
113
+
3. Community & Local Impact
114
+
4. Profit & Sustainability
115
+
5. Teaching & Learning
116
+
117
+
.footnote[_This activity is based on [Explore Community Technology: Investigate Technology](https://communitytechnology.github.io/docs/intro-ct/investigate-tech/)._ ]
118
+
119
+
---
120
+
class: center, middle
121
+
122
+
# Wrap-up & Homework
123
+
124
+
---
125
+
126
+
# Recap
127
+
128
+
- Presented the general state of peer-to-peer networks and services
129
+
- Experimented with a distributed peer-to-peer application run over off-internet mesh network infrastructure
130
+
- Touched upon community models for creating and managing technologies
131
+
132
+
_Questions?_
133
+
134
+
---
135
+
136
+
# Homework
137
+
138
+
Next session we will dive into networking on GNU/Linux and explore the layers between the application we used today and the cable or WiFi radio connecting these nodes.
139
+
140
+
📝_Watch this awesome video at home!_
141
+
142
+
[Routing and the Postal System](https://www.youtube.com/watch?v=n7NBgJAhzZ0) from the [Metamesh YouTube channel](https://www.youtube.com/channel/UCGEnntxbGKMU9J9GIZ1LQUQ):
143
+
- Compares IP routing to postal delivery system
144
+
- Explains acronyms like IP, DHCP, and NAT
145
+
- Explains how addresses are distributed and routing in hierarchical ISP networks
146
+
- Provides background for future discussions about self-addressing of IPv6 and mesh based "flat" routing
147
+
</textarea>
148
+
149
+
<script>
150
+
varslideshow=remark.create({
151
+
// While the slide aspect ratio can be changed to '4:3' this can cause some content to be cut off. If you plan on changing this please reformat the slides accordingly!
152
+
ratio: '16:9',
153
+
slideNumberFormat:'',
154
+
155
+
// Presentation slide navigation options
156
+
navigation: {
157
+
scroll: false,
158
+
touch: true,
159
+
click: true,
160
+
},
161
+
162
+
// The highlight theme used by highlight.js to style code blocks
0 commit comments