All Projects → tomeshnet → P2p Internet Workshop

tomeshnet / P2p Internet Workshop

Licence: cc-by-sa-4.0
Building the Peer-to-Peer Internet workshop series

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to P2p Internet Workshop

Prototype Cjdns Pi
Prototype system for mesh networks on single board computers
Stars: ✭ 205 (+132.95%)
Mutual labels:  raspberry-pi, p2p, mesh-networks
Kubeadm Workshop
Showcasing a bare-metal multi-platform kubeadm setup with persistent storage and monitoring
Stars: ✭ 593 (+573.86%)
Mutual labels:  raspberry-pi, workshop
Fluence
Peer-to-peer computing protocol and licensing system
Stars: ✭ 453 (+414.77%)
Mutual labels:  p2p, peer
P2p Media Loader
An open-source engine for P2P streaming of live and on demand video directly in a web browser HTML page
Stars: ✭ 822 (+834.09%)
Mutual labels:  p2p, peer
Teaching Materials
GDI SF - Web Development and Programming Curriculum
Stars: ✭ 360 (+309.09%)
Mutual labels:  education, workshop
Decentralized Internet
A SDK/library for decentralized web and distributing computing projects
Stars: ✭ 406 (+361.36%)
Mutual labels:  p2p, mesh-networks
Hlsjs P2p Engine
Let your viewers become your unlimitedly scalable CDN.
Stars: ✭ 759 (+762.5%)
Mutual labels:  p2p, peer
peermesh
💫 Exchange files p2p and e2e encrypted over a fully meshed network in your browser using WebRTC.
Stars: ✭ 107 (+21.59%)
Mutual labels:  mesh-networks, p2p
Lnbook
Mastering the Lightning Network (LN)
Stars: ✭ 931 (+957.95%)
Mutual labels:  p2p, peer
Ios P2p Engine
Let your viewers become your unlimitedly scalable CDN.
Stars: ✭ 31 (-64.77%)
Mutual labels:  p2p, peer
Bittorrent Dht
🕸 Simple, robust, BitTorrent DHT implementation
Stars: ✭ 1,004 (+1040.91%)
Mutual labels:  p2p, peer
Nicotine Plus
Nicotine+: A graphical client for the SoulSeek peer-to-peer system
Stars: ✭ 310 (+252.27%)
Mutual labels:  p2p, peer
Near
A P2P library for Android for discovery on local networks using UDP and transfer in general using TCP sockets
Stars: ✭ 296 (+236.36%)
Mutual labels:  p2p, peer
Bsb Lan
LAN interface for Boiler-System-Bus (BSB) and Local Process Bus (LPB) and Punkt-zu-Punkt Schnittstelle (PPS) used by Elco Thision, Brötje and similar heating systems
Stars: ✭ 83 (-5.68%)
Mutual labels:  raspberry-pi, internet
Fpnd
Python package for freepn network daemon
Stars: ✭ 271 (+207.95%)
Mutual labels:  p2p, internet
Flatend
Quickly build microservices using p2p networking in NodeJS/Go.
Stars: ✭ 600 (+581.82%)
Mutual labels:  p2p, mesh-networks
Spruce Network
Decentralized peer-to-peer mesh network.
Stars: ✭ 61 (-30.68%)
Mutual labels:  p2p, mesh-networks
peerchan
Fully decentralized p2p IRC for your terminal
Stars: ✭ 15 (-82.95%)
Mutual labels:  p2p, peer
hyperhyperspace-core
A library to create p2p applications, using the browser as a full peer.
Stars: ✭ 112 (+27.27%)
Mutual labels:  p2p, peer
Ulnoiot Upy
retired version of ulnoiot based on micropython
Stars: ✭ 17 (-80.68%)
Mutual labels:  raspberry-pi, education

Building the Peer-to-Peer Internet

Workshop Series by Toronto Mesh

Build Status GitHub release

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.

This course can be facilitated in an environment without internet access. Participants will be expected to bring their own laptop.

Duration: 1.5 hours per week for 6 weeks
Discussion: #p2p-internet-workshop: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

  • Each participant will have a hardware kit
  • 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 6 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

Class materials are written as Markdown files and presentation slides are created as Markdown-based Remark slides. All generated assets are hosted on GitHub Pages and packaged as a downloadable archive on GitHub Releases.

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.

Travis CI is configured to build, package, and publish a new release to GitHub Pages and Releases whenever a new tag is pushed. So all you need to create a new release is to push a new tag with git tag <version> and git push --tag.

Hardware

Each node consists of one:

It is possible to use other USB WiFi adapters with rt2800usb, ath9k_htc, or rtl8192cu drivers with slight modifications to the software.

Other accessories:

  • Ethernet cables
  • A network switch may come in handy
  • LoRa hardware for Module 6: Living on a decentralized network

Software

  1. Download the latest mesh-orange release of raspberrypi3-<version>_default.img, then flash the image onto an SD card with a tool like Etcher.

  2. Download the latest mesh-workshop release and unpack it. Mount the FAT partition of the SD card you flashed in the previous step, then use the tool mesh-workshop to install workshop files on each node:

     $ ./mesh-workshop
     Usage:   mesh-workshop confpath nodename
     Example: mesh-workshop /Volumes/BOOT/conf.d/ bloor
    

    The example shows a path to your SD card on Mac OS, your local path may differ. The command installs node profile and workshop files to the SD card conf.d for the node with hostname bloor.

Credits

The first version of this syllabus is created by Toronto Mesh contributors: @benhylau, @darkdrgn2k, @dcwalk, @uditvira, @Shrinks99, and @Pedro-on-a-bike. While most of the material is created new, the course also incorporates many prior works listed here, or otherwise referenced in their individual course modules.

Hands-on activities rely on software from many projects: mesh-orange, mesh-router-builder, mesh-workshop, steamlink, cjdns, Yggdrasil, IPFS, Secure Scuttlebutt. Course material generation uses markdown-pdf and decktape. The course website is built with Jekyll, and the theme is from Mozilla's Open Leadership Training Series. Icons from Font Awesome and Jake Ingman are used.

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 file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].