Skip to content

tomeshnet/p2p-internet-workshop

Repository files navigation

Building the Peer-to-Peer Internet

Build Status GitHub release

Workshop Series by Toronto Mesh, tomesh.net/peer-to-peer-internet

Description

Participants will learn about community networks, wireless mesh networks, distributed applications, and train their pet Raspberry Pi to do networking things. While this course assumes no technical expertise, all sessions contain a technical hands-on component and a reflection activity to explore the role of technologies on our society. A socially-minded tinkerer who enjoys a collaborative learning experience will be the ideal participant.

Participants will be expected to bring their own laptop.

Schedule: Tuesdays April 10 - May 15, register through the Toronto Public Library workshop
Duration: 1.5 hours per week for 6 weeks
Discussion: https://chat.tomesh.net/#/room/#reading-networks:tomesh.net

Module Topics

  1. What is mesh?
  2. Setting up your first node
  3. Building nodes (hardware)
  4. Planning a network
  5. Measuring networks
  6. Living on a decentralized network

Learning Outcomes

  • Working with Raspberry Pi's to make a network router
  • Building mesh networks and running peer-to-peer applications
  • Understanding the barriers to access and the history of the internet in Toronto as well as mesh networks worldwide
  • Unpacking the values of distributed vs. centralized systems
  • Applying network security and private communications
  • Starting and maintaining a sustainable community mesh network

Expectations

  • TPL will provide Raspberry Pi 2s and 3s
  • Participants will bring their own laptop
  • Participants will receive primer information via a welcome email, which includes laptop setup instructions, a Linux shell primer, and a pre-workshop survey
  • Participants are comfortable using a computer before, with no assumptions about prior programming or networking knowledge

Facilitation Guidelines

  • Each module should be presented by a lead facilitator driving the session according to the lesson plan
  • Aim to have one helper for every 3 to 4 students, responsible for:
    • Providing assistance during hands-on sections
    • Keeping groups on schedule for each activity
    • Having one helper observe the class and providing feedback (sample reflection questions)
  • Use a shared notepad for:
    • Sharing notes and links
    • Jargon-busting
  • Conclude with a ticket out the door activity where students can optionally and anonymously leave feedback as they leave the class

Workshop Materials

Workshop materials such as lesson plans and worksheets are written as simple Markdown files. Each presentation slide deck is created as a Markdown-based GitBook. All generated assets are published to GitHub Pages individually and GitHub Releases as an archive for download.

If you want to generate these assets yourself, simply run ./install-dependencies.sh and ./build.sh and you will find the generated assets in the output folder. The ./package.sh script is used to zip up the generated assets into archives convenient for download, which is the form you will find in the GitHub Releases.

Travis CI is configured to build, package, and publish a new release to GitHub Releases when you push a new tag, so to publish a new package, all you need is to find the current version with git tag, and if the next one should be v0.4, you do:

git tag v0.4
git push --tag

When using the GitBook presentations at a workshop, you can either:

  • Load the appropriate module from GitHub Pages, such as module-1-presentation
  • Or serve the slides from your local machine by cloning this repository, navigate to the appropriate presentation directory of the module to run gitbook serve, then navigate to localhost:4000 from your browser to see the slides

Course Design

Objectives

  • Create syllabus with sufficient flexibility so it can be adapted to Toronto Libraries in other areas and other settings
  • With a community network project as basis, establish regular hack nights at the Toronto Libraries' Innovation Hubs
  • Engage students and equip them with necessary knowledge to continue involvement in local mesh community efforts
  • Publish this as open-source syllabus that other communities can adopt to kick-start a mesh community

Credits

License

All Building the Peer-to-Peer Internet workshop materials at github.com/tomeshnet/p2p-internet-workshop/ are licensed under a Creative Commons Attribution-ShareAlike 4.0 International License, the text of which is included in the repository LICENSE.