dweb-camp-2019 / projects

Projects @ DWeb Camp 2019 💻
https://riot.im/app/#/room/#dweb-camp-2019-projects:matrix.org
15 stars 0 forks source link

GUN for Live Schedule Updates, Chat, Mutable Session Notes, Identity/Contact exchange, etc. #2

Open amark opened 5 years ago

amark commented 5 years ago

There is mention of RasPis for IPFS/SSB/DAT, can we add GUN to that list?

We already have experimented multicasting, discovery, (even some bluetooth support!), so this should work really well in P2P/offline/edge contexts. The most important piece is just having a port exposed on the network.

We could then service all the decentralized mutable needs of dWeb camp! Schedule updates, session notes, etc.

How/where can we get added to those RasPis?

@beachbrake you've done a ton of this hardware stuff (Adruino) too, so I'm tagging you.

benhylau commented 5 years ago

can we add GUN to that list?

My current thinking is: we'll have a network, and it will have PoE switches that will power Raspberry Pis people bring in with whatever thing they want to run on there. The network will assign an IP to the Pi that is unique across the entire network.

having a port exposed on the network

As in no firewall? Yea I think we will plan to not block ports, since we'd be expecting people to test all sorts of stuff on the network.

Schedule updates, session notes, etc.

Cool. I have heard of GUN but don't know much about it. What is the use case you are imagining and what work needs to happen to make that happen?


I also feel Camp is a great opportunity for people to form multidisciplinary groups to work on a project (e.g. one or more of these things you suggested) and build that implementation together. It's better if that project can have a life beyond DWeb (e.g. someone who comes from an offline community where what works at the conference can also be useful in that community).

I am thinking what type of interactions need to happen before and at Camp that will best allow these connections to happen. I wonder who you think GUN serves, what communities you may like to connect with, and basically how can DWeb help with this in our planning / infrastructure/ programming.

amark commented 5 years ago

@benhylau okay, so there is not going to be official nodes, everybody is BYOB ... BYOH, hardware, including IPFS/DAT/etc. responsible for bringing their own hardware/nodes.

We can do that. I'll send a PR for the README list.

Use cases: A live schedule (I assume this will be the most useful/relevant), chat (tho this is also easy for DAT and SSB), session notes (mutable, like the schedule, so more unique to GUN), "business card"-exchange (aka, easy swapping of identity+email+publickey+etc.). Those seem like the most relevant for a conference, open to other ideas.

If it is BYOH, it would be nice if we could still plug into the radios/routers/etc., so that way it isn't like each team is running their own wireless network and campers have to choose "which one" to connect to (kinda silly multiplexing isn't part of the web standard, it is for the dweb!). So collaboration on reusing same network & network hardware would be most important.

I'm not sure what you mean by what communities we best serve? I feel like my answer sounds dumb: "the general public, laypersons."... do you mean in the context of the camp? I'm not trying to exclude anyone!!! So I must be misunderstanding your Q? So sorry. Thanks!

benhylau commented 5 years ago

A live schedule (I assume this will be the most useful/relevant)

That sounds quite useful. We are also thinking there may be ad-hoc organized sessions, maybe if the live schedule allows people to discover things that are spontaneously organized?

chat (tho this is also easy for DAT and SSB)

I feel many people may be doing that! Like those matrix convos in our chat.

"business card"-exchange (aka, easy swapping of identity+email+publickey+etc.)

Seems relevant!

If it is BYOH, it would be nice if we could still plug into the radios/routers/etc.

Yea definitely, I just picked up these 8-port and 24-port PoE switches from @DarkDrgn2k to be used at Camp. The "official" Camp Meshnet is supposed to give some infrastructure so applications don't all have to build the physical layer. The meshnet repo tracks development on that front, like how the interface would be. I expect to start prototyping stuff mid-April and publish notes to the repo, the plan is currently on that README.

do you mean in the context of the camp?

That's a good question. I am thinking... who is GUN built for in general? For example, when I think of Tor I think activists and journalists, Mapeo I think of indigenous communities and people living in offline regions who can use maps as a powerful tool. I understand that GUN / Dat / IPFS are more protocol level projects and may have broader scope, but perhaps there are specific subgroups where you may especially like to connect with. So I am asking this in the context of what organizers can do to help you guys connect at the Camp (e.g. intently reach out to invite those groups, to attend or even publish actual use cases on this board), then the Camp can be used as a "test site" or "activity space" for that co-imagined project.

Also I am not asking specifically, just throwing the idea out that I am happy to make those connections :)

amark commented 5 years ago

@benhylau

Yes, ad-hoc/spontaneous events and pre-planned.

Just caught up & read everything. Apologies if I'm missing something obvious:

But it seems the plan is still for teams to show up, plug device into router, broadcast?

I didn't see info on that repo / sub-pages (if I missed it, please link me!) on:

Questions

I live near Stanford, can I join you guys when you drive over to the Farm next to setup & test things? Looks like one of the pages mentioned mid-June there would be test runs also? Looks like @whanamura is doing a call May 15th, is that the right place to be included/notified for testing farm logistics?

Who

GUN as a protocol is intended for everyone like TCP/UDP/HTTP is, we currently have about 2M monthly active users between p2p/decentralized apps like http://notabug.io , http://d.tube , Internet Archive , and other projects, like http://party.lol .

Personally, at the camp I'm interested in meeting musicians (my goal is to use music as a carrier for mass adoption of decentralization, whether users know it or not), and WebGL & Web Audio devs who can help teach me how to create interactive art in the browser.

@benhylau when do we get to meet? :)

@beachbrake @mmalmi any other Q's I missed?

benhylau commented 5 years ago
  • Is any device allowed? Limited by what? Ethernet plug?

Yes. We can plug devices into switches that are connected to the local network, in the Hacking Room and probably at The Forum beside that big lawn: https://dwebcamp.org/proposals-spaces/ So we'll have power and ethernet cables to whatever device you bring.

  • How do phones/laptops access hosting apps? Will they have to type 192... how will they know the address + port of the plugged in device? Can the network have one of those WiFi Login Pages that automatically opens when somebody connects to the network that lists all the sub-devices/ports/addresses/apps?

A captive portal may be one solution, but we may also have some form of DNS, depending on how this goes https://github.com/dweb-camp-2019/meshnet/issues/12 but for now I'd assume just local IP addresses. Correct me if I'm wrong, GUN apps are all browser based and no client install is necessary right?

  • Are people going to have to constantly be joining new WiFi networks as they walk around?

They will have same SSID so they will join automatically, but under the hood yes there is a disconnect and reconnect to your session. There is no device roaming planned.

  • How many devices do I need to bring to plug into each router? We have multicast working & tested, is there a way to have the routers connect to each other? GUN automatically daisy-chains data, but is there anything special we need to do to have router-to-router communication?

If you plug two devices to same router (e.g. at your home), I am guessing the GUN nodes will automatically peer? But if you plug one at your office how does it currently peer? Do they need some bootstrap node on the Internet, or require one node to have a public IP and you peer manually?

In the Camp it'd be similar, multicast would work on same switch, but having nodes at two locations it'd be like the home <-> scenario.

  • The discussion around HTTPS/SSL looks dismal, so I assume no one knows how to do HTTPS proxying for the ports/devices? I've done self-signed certs and they're OK on laptops but bad UX on mobile... I was gonna have Brewster/Wendy/etc.'s user accounts (keypairs) write-control over the live scheduling app, but our E2EE cryptography depends on WebCrypto which requires HTTPS. So i'm gonna abandon this and downgrade everything to plaintext :( unless you have any smart ideas?

Perhaps assuming no HTTPS is best for now. I wonder if we can have anyone post stuff on schedule so Wendy and Brewster don't become the bottleneck. So it's just a community board that has a schedule-friendly UI. Perhaps this is a longer discussion.

I am thinking about the case when you meet some WebGL & Web Audio dev, and spontaneously decide to start a one hour workshop in the Hacking Room, and think perhaps others may be interested. Having to find Wendy may be too much of a barrier, so what's a good flow for you to broadcast this event on schedule?

I live near Stanford, can I join you guys when you drive over to the Farm next to setup & test things? Looks like one of the pages mentioned mid-June there would be test runs also? Looks like @whanamura is doing a call May 15th, is that the right place to be included/notified for testing farm logistics?

Yes I think the May 15 call is a good time to discuss these! Our last call notes are here https://github.com/dweb-camp-2019/organizing/blob/master/open-dialogue/notes/open-dialogue-20190501.md

In mid-June there will be a meetup at IA where we can plug these into a small mesh net to test things out. Haven't set exact date yet. I'll be in SF for that one and look forward to meet!

whanamura commented 5 years ago

@amark Thanks for these great questions!

Regarding musicians and web devs who help create interactive art:

amark commented 5 years ago

@whanamura nice! I look forward to meeting them! We're building some generative music tools as our instruments!

@benhylau

Schedule: Yes, gonna allow anybody to edit (Brewster/Wendy not needed), but have a special section for Brewster/Wendy to make official announcements that nobody else can fake. I'll skip that for now. Hopefully nobody spams/trolls it :P lol.

Thanks for that link! I'll join https://meet.jit.si/dwebcamp tomorrow at 6pm.

Looking forward to meet! Thanks for all your work/contribution/help!

benhylau commented 5 years ago

@amark thanks for calling in and the great questions, I hope now it's more clear what the interfaces look like to the local network :)

It sounds to me that the Live Schedule would work just fine locally. Of course we may discover some issues when deploying, but it seems nothing significant that we cannot sort at the June trial at IA and Build Days at Camp.

Have you thought about other sessions that could become additional components to this project? For example:

Do you think we are ready to submit this as an official project to the website? Please let me know if there is anything I can help in this process!

benhylau commented 5 years ago

I hope this answers some of the questions https://github.com/dweb-camp-2019/meshnet/blob/master/testnet/README.md

You can imagine GUN schedule servers as A and D on the network. This SSB behaviour is probably also relevant to GUN https://github.com/dweb-camp-2019/projects/issues/6#issuecomment-496891246

amark commented 5 years ago

Wow, it has already been 26 days... nearly a month. Shoot, time flies!

Yes, a few weeks ago I finally used @whanamura 's reserved ticket for the camp - I didn't see I needed to also officially propose a project too, apologies, will try to do that now but may need to edit/add-to-it later if that is ok?

Yes, would love to host those other sessions too! Do I propose those individually on the project form? Or will we just list them on our schedule itself?

I'm back from traveling.... AWESOME README!!! Thank you - shoot did I miss the June 8th farm test while I was gone traveling? When can I test next? I bought 9 raspis (do I need any more?), I still need to go through the readme instructions. When should I have everything ready by? June 26th? But that is at IA, not the farm?

Yes, I'll have each peer connected to the radios have the IPs of others listed, and then multicast + GUN's daisy-chain ad-hoc mesh-network (DAM) will route from laptop/phone on A to B to C to D to laptop/phone on D, or however things are configured.

Thanks for all of your hard work, @benhylau !

benhylau commented 5 years ago

Hey we are going to put existing submissions on SCHED. In addition to orientational sessions (e.g. welcome, coc, connect your device) and camp wide hours (e.g. lunch) so far we have 23 project submissions not counting lightning talks, across 10+ spaces.

We also expect ad-hoc sessions that campers will come up with and would place them on the schedule, how that happens and whether those will get added to SCHED is TBD. I think June 26 is a good opportunity to discuss this together.

I think one thing we can do is to use its API to seed the GUN Live Schedule so it becomes a local p2p version of the same data put through SCHED, and it stay synchronized up until the event.

amark commented 5 years ago

@benhylau good idea. Let's go over this more Wednesday.