Code Monkey home page Code Monkey logo

Comments (81)

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024 1

Ok, i imagine mishmesh as a armless kraken (client), but which you can add arms to (adapter) which adds network compatibility?

image

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024 1

interesting, i googled mishmash and it turns out, it means "A collection containing a variety of miscellaneous things."
That is exactly what german Mischmasch means. πŸ˜…

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024 1

image
NOW i get what mishmesh does. Wooooooow!!! Thats decent.
And with so little code. Great!

from easypeers.

draeder avatar draeder commented on July 19, 2024

Unfortunately, no P2P network can escape the need for bootstrap servers/nodes of some kind, and with browsers, signaling servers are a must because browsers can't listen for incoming traffic. The problem with WebTorrent is the scarcity of tracker servers, which are the signaling servers for WebRTC. They are commonly overloaded. Gun is working on solving this for the Gun network with its AXE protocol. I can see AXE as a way to eventually decentralize WebTorrent tracker servers.

Easypeers works pretty much the same way as P2PT. It creates a torrent that peers swarm around and connect to each other with. But as with P2PT, Easypeers also requires a signaling server for WebRTC connections. And, of course, it isn't finished yet.

You might want to look into simple-peer, which is absent any signaling server, so requires some way to exchange WebRTC SDP. It is what WebTorrent uses under the hood, and it makes WebRTC pretty simple once you understand how it works.

The bittorrent-tracker library is free. You can run your own tracker server with an easy 1-click deploy to Heroku with p2p-tracker.

I have a domain name I would be willing to contribute to anything you come up with from a DNS perspective. Just ping me on twitter and we can work it out.

Hope this info helps

from easypeers.

draeder avatar draeder commented on July 19, 2024

Speaking of 'Atlas' that makes me thing of MongoDB Atlas. I think I might whip something together with change streams for WebRTC signaling using that.

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

Thanks for the answer. It helps a lot understanding the basics.

Axe is definitly interesting, but for me the concept is already "too capitalistic" and too monopoly.
I dont want to have to pay to go online, i just want to go online :D
Except i am not getting the concept and there is no cost or wallet connect or similar for the app developer or their users involved.
If usable for free, you could put AXE on top of the stable of strategies to reconnect.

I know i am counting peas, but my goal is independent or minimum quasi independant P2P.

Which means, not dependant on one single network infrastructure, not my own, not a foreign one, but allowed to use every chance to connect as a fallback to reconnect. (in turn using different, already existing network infrastructures as needed. at the end of the day, we want the connection to the swarm, to update our DHT trackerlist/peertrackerlist/peerlist, to STAY connected)

What about this MSC MEP concept then? (Multiple Strategy Concept, Multiple Entry Points)

Having multiple strategies
-jamstack decentralizes the centralized "very first entry" domain
-pwa gives it offline capabilities out of the box
-dht lists saved on free github page, blogs, forums (updated in an interval, automated via script on clients, sharing the updated dht to your page, a free blog for this purpose only, in a forum, etc., everything thats free and allowed, ergo not stresses out the free tier)

PLUS

using multiple entry points
-tracking/signaling (using multiple protocols for entry points) in a priority list with timeout limits (p2p first, then fallback options, worst the "very first entry" domain)

I imagine it happening like this

This is the users client on the "very first entry" domain, which is live for demo: https://cloud-atlas.app/ (only the Google Login is active)
The client is a JAMStack website (static html file, which is hydrated via API, stored on GitHub, build and served from Cloudflare Pages(200 CDN server), at zero cost)
Its a PWA, so it can be installed like an app, running your website/app itself even with https://cloud-atlas.app/ offline.
Overall, it behaves like an app, which is accessable through a website.

Every client is also a tracker itself, so its able to fetch connection adresses (DHT)

  1. direct (webrtc) and indirect (torrents) (webrtc prioritized, Peerservers but with webtorrent AND bittorrent)
  2. direct tracker-swarm
  3. Easypeers or P2PT to reconnect via webtorrent as signaling server, than back to 1 & 2

Summary

So this is using two different ways taking advantage of the webtorrent/bittorrent network first, (Peerservers and Easypeers/ P2PT) but as soon as you have enough peers continously, these already online peers are becoming the 99% of the time used p2p trackers (some time after their launch, for instance Facebook, had minimum a few users online every second of a 24h day, which is the equivalent to 99,9% server uptime in a p2p network)

Fallback 1

Besides exchanging their DHT steady, they also are able to get their dht via a classic torrent, saved on some torrent websites, or like a post somewhere with a magnet link you save every few hours automated on a/or multiple socialmedia websites, and god knows where else...

???Fallback 2 and possible "mainnet"??? (here mainnet is the most reliable fallback option which would equal a centralized server)
The swarm always found via dyndns????
Maybe Bugoff as a decentralized P2P API server(appdata & dht), always found via dyndns???????????

Fallback 3

Your "very first entry" domain/site gets a 60sec updated dht list. But only used as last last last fallback, after everything else what i just wrote failed.

You get the upside down concept, which causes pragmatically what we could call True P2P territory, right? ;)

These beasts (clients) pretty much crawling their options for connections, the opposite way a centralized entity would do. πŸ₯³

Would that work? Are my peers steady online now, independant from fixed infrastructure, which becomes just the fallback in case, or did i miss something out?

You know whats cool? We are just about to figuring out how True P2P could work out. Which has the power to transform the internet from ground up. (so lets keep it open-source) Thats minimum so cool as figuring out True AI (like from the movies) ;D

from easypeers.

draeder avatar draeder commented on July 19, 2024

Just a quick note: AXE is part of Gun. All Gun modules/protocols are free & open source.

@amark's ideas with AXE are very similar to some of those you mentioned about storing relay addresses on Github, elsewhere, etc.

I do like the idea of one p2p technology being used to make another one more robust. Tristero does this to some degree with IPFS, WebTorrent and Firebase.

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

Ok, then AXE definitly gets interesting as soon as its available.
And Wow. This Tristero repo reads awesome! A nice extension to the above described concept.

Well, do you see any struggles, shortages, narrow pipes in the concept?
Are there any obvious development struggles involved?

from easypeers.

draeder avatar draeder commented on July 19, 2024

Are there any obvious development struggles involved?

Considering I have yet to be successful with my 5-6 year long quest to decentralize tracker servers, yes there are many development struggles! :)

Curious to see what you come up with

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

Well, i have all your repos available plus the ones you suggested, plus my own research.

I am pretty new in coding, so i cant really estimate, if having all these libraries available is a serious advantage?
Are you?

For me, it looks like puzzling it together with these libraries and than finetuning, finetuning, finetuning... or not?

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

We switched the repo and i found a collaborator already.

You can follow us on https://github.com/worldpeaceenginelabs/True-P2P, which is based on Trystero, and now we are adding modules (first is webtorrent)

Thanks for your suggestions. It pushed the project forward a lot, making it much easier to realize (and finally find a starting point)

from easypeers.

draeder avatar draeder commented on July 19, 2024

Nice! Great to hear! I'll certainly be following along

from easypeers.

draeder avatar draeder commented on July 19, 2024

Oh man, I forgot about some of those old repos. They mostly represent failed attempts to get things working. I think tracker-swarm is probably the most useable of the bunch; but I don't remember where I left off with it. I believe it works as described in the readme.

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

Hi Draeder. Could you help me out maybe?
It turned out, that Trystero is using webtorrent already (i was confused by him using the bittorrent term)

I like to add two of your repos as modules to my repo.
tracker-swarm, and webtorrent-beacon like you used it on your peerservers repo.

If i understand webtorrent beacon right, you could potentially do the following with it:

My idea is to use a torrent as a beacon. So your app only has the name /signature of a torrent saved, which nobody knows about, except your app (like a secret). Everybody who is interested in this torrent (only people with your app, nobody else knows), is potentially one of your users, so you connect to them.

For security, you could exchange this torrent from time to time, which is like changing the secret address or password from time to time.

from easypeers.

draeder avatar draeder commented on July 19, 2024

Take a look at the Easypeers code. It uses WebTorrent extensions, which will probably work better for you for that purpose. It's basically what P2PT and Bugout does as well. It creates a torrent based on a 'topic' and peers interested in that topic swarm around that torrent and connect to each other.

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

so easypeers replaces tracker-swarm and webtorrent-beacon at once?

did you use these two repos/concepts to realize easypeers?

Sounds like it does exactly what i just wrote?
"My idea is to use a torrent as a beacon."

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

Which one is more developed? (for production)

Easypeers or P2PT?

from easypeers.

draeder avatar draeder commented on July 19, 2024

P2PT. Easypeers is a work in progress. I have to finish the gossip protocol.

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

Ok, very honest. thx

For understanding:
Does P2PT already make use of the gossip protocol?
Or is Easypeers in the future even better, because of the gossip protocol?

from easypeers.

draeder avatar draeder commented on July 19, 2024

I don't have much experience with P2PT really, so I'm not sure. It may connect all the peers together directly. Bugout certainly has a gossip protocol.

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

ok. But does Trystero something different than Easypeers/p2pt does then? Or are they both/all three doing the same? (swarm surrounding a "topic", by searching for a dedicated torrent?)

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

Because i like to integrate p2pt into Trystero, except i am thinking wrong, and they both doing the exact same thing...
???

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

Because if not, i like p2pt to be the fallback option of Trystero.

Every client is also a tracker itself, so its able to fetch connection adresses (DHT)

  1. direct (webrtc) and indirect (torrents, IPFS) (webrtc prioritized, Trystero reconnects through torrents and ipfs as a fallback)
  2. indirect/fallback (torrent/magnetlink) (P2PT) reconnect, than back to 1. (direct)

from easypeers.

draeder avatar draeder commented on July 19, 2024

I believe Trystero/P2PT/Bugout/Easypeers all operate the same way when it comes to webtorrent.

The problem you will face with

Every client is also a tracker itself

Is that browsers cannot be trackers, because they are unable to listen for incoming network traffic without first making an outbound connection (e.g. to a tracker).

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

Is that browsers cannot be trackers, because they are unable to listen for incoming network traffic without first making an outbound connection (e.g. to a tracker).

The moment, the client is connected through WebRTC to other clients, exchanging DHT lists with them, isnt it a tracker then?

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

Imagine a client A already online 2h, has around 100 entrypoints on a dht.
A new client B, just got online, has maybe 2-3 entrypoints on its dht.
When client A and B connect via WebRTC, client B synchronizes with client A to get the other 100 entrypoints over WebRTC.

So client A is virtually the tracker for client B, or not?

from easypeers.

draeder avatar draeder commented on July 19, 2024

Browsers can't use the DHT because they can't listen on ports.

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

Yes, i understand.

But two clients exchanging DHT's via WebRTC, is the same what trackers do, or not?
Of course, you need a classic tracker for their first kiss, but then...

Where is my error in my thinking?

from easypeers.

draeder avatar draeder commented on July 19, 2024

Trackers crawl the DHT to find peers, accept the WebRTC signaling from those peers, and send it to the other peers.

No new WebRTC connections can be created without some kind of way to coordinate this WebRTC signaling exchange. For example, Alice and Bob are connected to each other through Tracker1. Now Carl wants to connect to Alice and Bob, it is impossible for Carl to exchange WebRTC signaling data with Alice and Bob unless it is sent through the Tracker1 server. You could have 1000 WebRTC connections, all of them will have had to coordinate the WebRTC signaling somehow. In WebTorrent, those are the tracker servers.

In Gun DB, those are the relay servers.

In Hyperswarm-web, those are websockets servers.

Take simple-peer for example. It simplifies WebRTC signal exchange but doesn't ship with any way to actually coordinate the WebRTC signaling. Some kind of mechanism to do that is required. I've done it with a websocket server I built for this purpose. It could be anything though, like my idea to use MongoDB Atlas change streams, for example.

The biggest challenge with decentralization in browsers is this requirement for some kind of centralized way to connect the the peers together.

If what you're building can solve this challenge by using multiple fallback mechanisms for WebRTC signaling exchange, that would be awesome. Gun's AXE protocol is striving to do this too. I've been working with @amark on developing tests to achieve it. When AXE is done, it could probably be used as one of the fallbacks in True-P2P

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

Well explained. That was a big update. I got it now. Thank you very much.

If what you're building can solve this challenge by using multiple fallback mechanisms for WebRTC signaling exchange, that would be awesome.

Thats the goal ;)

When AXE is done, it could probably be used as one of the fallbacks in True-P2P

definitly

The biggest challenge with decentralization in browsers is this requirement for some kind of centralized way to connect the the peers together.

well, i am thinking about a p2p "API"?/"DHT"? or easy said, a list with direct entrypoints running on the swarm network.

As soon, as a client is connected, it receives multiple entrypoints to be able to get reconnected. (independant from torrents/ipfs)
At the same time, all clients got that lists updated, so in case of a disconnect, they could just reconnect via the already updated lists (saved on the client), minimum one entry on the list will work out, and synchronize again on reconnect.

In turn, a client has always a hundred options of direct webrtc reconnects from the list.
Or websocket, webtorrent, ipfs (and the other 10 options i mention in readme) as fallback.

So i am running my own lists for direct connection, and use the open available lists (torrent/ipfs etc.) as fallback.

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

Trystero is pretty much doing everything from my bucket list.
So i "just" need to add third partys now.

Take a look at this:
dmotz/trystero#16

Thank you so much for suggesting Trystero to me πŸ™πŸΌπŸ™πŸΌπŸ™πŸΌ

from easypeers.

draeder avatar draeder commented on July 19, 2024

Interesting.. I looked at Trystero a while back; I don't remember why I moved away from it. Notably, I'm working on building a decentralization based secure 1:1 tunnel at the moment. It could potentially be used for trust between True-P2P servers.

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

sounds like p2p vpn?

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

To me, it looks like, there is everything available for true-p2p already on github.
Someone just need to patch that stuff together, do some custom coding, some finetuning... done

from easypeers.

draeder avatar draeder commented on July 19, 2024

sounds like p2p vpn?

https://github.com/draeder/timebeam

I have it live at a minimally viable level now..

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

sounds like this repo but with onetime password?
https://github.com/mafintosh/hyperbeam

Is hyperswarm a signaling method free to use?

from easypeers.

draeder avatar draeder commented on July 19, 2024

Yes, Timebeam is based on Hyperbeam.
Also, yes, hyperswarm is the networking layer of hypercore.

Also check out hyperswarm-web. Hyperswarm works only in Node.js. Hyperswarm-web is an implementation of hyperswarm that works in the browser.

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

Wow. Great. Thx
I even understand whats happening. The source code is well commented and documented.

One could add further proxies and fallbacks here.
And then customize the proxy/fallback handling of the repo with if, then, timeout conditions.

For understanding: Does hyperswarm depend on something? like if hyperswarm doesnt exist anymore, is their api still usable?
So, future safe?

image

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

one could add webtorrent, ipfs and webrtc fallbacks by adding the trystero strategies from this folder https://github.com/dmotz/trystero/tree/main/src into https://github.com/RangerMauve/hyperswarm-web

just by calling it as a function after a specified timeout, if "const swarm = hyperswarm" times out.

from easypeers.

draeder avatar draeder commented on July 19, 2024

All decentralization technologies out there require some kind of bootstrap peers. In the case of hyperswarm, there are 'root' bootstrap servers. In the case of hyperswarm-web, it's a websockets server you have to run yourself. In the case of webtorrent, it's the tracker server(s). In the case of gun, it's the gun relay servers. Until browsers allow listening on ports, this will always be the case.

I'm basically building a type of Trystero with Mishmesh. The main difference being that, with Trystero the connections are independent of the p2p network a peer is connected on. With Mishmesh, the peer connections will relay messages to other p2p networks regardless of which p2p network a peer is connected on. And, Mishmesh will allow adapters to be written to enable data relaying between any network.

Ultimately, True-P2P could use Mishmesh as a way to connect a peer on any decentralized network to another peer on any other decentralized network. The biggest challenge there is defining some kind of scalable gossip protocol (or daisy chaining [in Gun terminology] for messages). But that's what MMST could be used for, which is what hyperswarm-web uses and was the inspiration for Easypeers' gossip protocol.

I really love the idea of True-P2P. I can see Mishmesh as its transport layer.

from easypeers.

draeder avatar draeder commented on July 19, 2024

I really love the idea of True-P2P. I can see Mishmesh as its transport layer.

The difference being, though, Mishmesh uses other p2p networks as the bootstrap to connect peers together, instead of as fallbacks.

Think about it like this:

  1. Instead of p2p network 'fallbacks', Mishmesh uses p2p networks as the bootstrap into the Mishmesh network

  2. After exchanging SDP over Mishmesh and some kind of True-P2P partial mesh connection logic and gossip protocol, peers are all connected together and can communicate in a scalable way

  3. The peer connections using other networks are then dropped

  4. The peers are now communicating over True-P2P

But, if Gun's AXE protocol is successful, Gun will be the main transport for Mishmesh.

from easypeers.

draeder avatar draeder commented on July 19, 2024

peer <--> Gun AXE <--> (Mishmesh adapter) <--> Other p2p networks <--> peer

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024
  1. Mishmesh uses p2p networks as the bootstrap into the Mishmesh network

is the Mishmesh adapter in the topology above/mishmesh network, based on Bugout?

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

I really love the idea of True-P2P. I can see Mishmesh as its transport layer.

i am happy to hear and appreciate it

from easypeers.

draeder avatar draeder commented on July 19, 2024

is the Mishmesh adapter in the topology above/mishmesh network, based on Bugout?

I'm trying to make it universal. E.g. as long as a developer using Mishmesh provides the adapters, it will relay messages between all of the adapters the developer provides.

I have it almost working between Gun and Bugout... I'll probably have it working this week. Then I can write up the Mishmesh API documentation, and from there developers can start using it between whatever p2p networks they want!

from easypeers.

draeder avatar draeder commented on July 19, 2024

For example, bugout and gun are independent adapters to Mishmesh.

Mishmesh by itself won't do anything without adapters.

Although, I guess, I could provide default adapters... I'm not sure if I like that idea for this library, because it seems to be more True-P2p level stuff.

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

are you german? i just recognized, mishmash sounds like german Mischmasch :D

from easypeers.

draeder avatar draeder commented on July 19, 2024

LOL -- German by heritage, American by birth. My last name means 'wheel maker' in German, derived from the word rΓ€dermaker. Mishmesh comes from the word mishmash, but instead of mash is mesh to describe that is is a mesh of mismatched things πŸ”₯. I would venture, that mish has German roots.

from easypeers.

draeder avatar draeder commented on July 19, 2024

interesting, i googled mishmash and it turns out, it means "A collection containing a variety of miscellaneous things."
That is exactly what german Mischmasch means.

My latin is better than I thought.

from easypeers.

draeder avatar draeder commented on July 19, 2024

Ok, i imagine mishmesh as a armless kraken (client), but which you can add arms to (adapter) which adds network compatibility?

This is exactly what I'm imagining for Mishmesh. But the kraken is a new network...

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

This is how i understand Mishmesh. But thats not different from what i imagined from true-p2p at the end.
Your solution is just cleaner and simpler. Less susceptible for errors, because of smaller, simpler code.

A very high potential for adaption in the open-source, decentralized and jamstack community, because everybody is able to combine what they like.

You could add further adapters for famous libraries from time to time to raise the number of available networks and sowith the attractiveness of using Mishmesh.
And i am sure, there would be fast a list of devs joining adapters for Mishmesh.

Because Mishmesh, as i understand it now, can do the scifi p2p from true-p2p, but is simple like Zapier

image

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

This is exactly what I'm imagining for Mishmesh. But the kraken is a new network...

Could Bugout act as a p2p api server? and would data still be available on some way after closing the browser tab?

from easypeers.

draeder avatar draeder commented on July 19, 2024

Mishmesh could lead to a new p2p network of peers that are found from other p2p networks. But I'm not designing it to be that by itself. Something like True-P2P will have to finish that last mile.

Could Bugout act as a p2p api server? and would data still be available on some way after closing the browser tab?

This is what Gun does out of the box!

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

Mishmesh could lead to a new p2p network of peers that are part of other p2p networks. But I'm not designing it to be that by itself. Something like True-P2P will have to finish that last mile.

oh you mean like, if i run an app with mishmesh and another dev runs his own app with mishmesh, we could share resources and profit both from sharing nodes?

from easypeers.

draeder avatar draeder commented on July 19, 2024

For example: if the 'topic' matches on say, Bugout, and there's a matching 'topic' on Gun, the Gun and Bugout peers would just connect to each other over Mishmesh and drop the Bugout and Gun connections.

from easypeers.

draeder avatar draeder commented on July 19, 2024

But if AXE is ultimately successful, it will be AXE as the primary transport for Mishmesh... Mishmesh will just coordinate between other p2p technologies over AXE.

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

Does someone now, when there is a stable GunDB and AXE?

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

I think this is what i imagine for true-p2p.
I like the concept, that one is able to set the use or not, and priority and timeouts for the arms. (adapter)
This is convinient for a simple code.

image

from easypeers.

draeder avatar draeder commented on July 19, 2024

You understand that all browser-based P2P technology uses WebRTC, right? That includes WebTorrnet, Bugout, Gun, IPFS, etc. (any other p2p libraries that work in the browser). Also, that Bugout and P2PT (and Easypeers) are built on top of WebTorrent....?

WebRTC can work in Node.js but requires a library called wrtc to make that happen. Yet, Node.js doesn't require WebRTC because it is server-side and can access TCP/IP directly. Timebeam, for example, uses hyperbeam and creates a server that can be reached on the provided ports. Theoretically, a browser could be configured to use a Timebeam server as it's web proxy server. I plan to test that soon, actually.

Just some stuff to keep in mind as you're working through True-P2P

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

Yes, but WebRTC is the one you want to replace with AXE in the future, or not?

from easypeers.

draeder avatar draeder commented on July 19, 2024

Until browsers support listening on ports, WebRTC will never be replaced, not even with AXE. What AXE will do, though, is enable communicating with other peers with it's daisy chaining protocol (gossip protocol), by relaying messages through the peers it is already connected to (via WebRTC).

Some homework: what is Partial Mesh?

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

partial mesh is were groupes of nodes acting, while in a full mesh you have one big group only.

for instance, in my cloud atlas project, people collaborate on places or areas.
so why should someone from new york be a node for an event in cologne?

here comes partial mesh into play and builds a fast network of short distance nodes.

from easypeers.

draeder avatar draeder commented on July 19, 2024

Partial mesh is Alice, Bob and Carl are all in a group and Carl, Dale and Ed are all in a group. Alice can talk to Ed through Carl. That is the Gossip Protocol, or Daisy Chaining, in a Partial Mesh network.

If you used WebRTC connections between all peers, it would be a massive performance problem for all of the connected peers.

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

image

ok, this would be my perfect high level abstraction of a true-p2p client.

i know from our conversation, that i still got wrong concepts in my mind πŸ˜…

  1. Does the crypto part of AXE cost the user or developer money? Because i want to go non-profit, so i need AXE to have no cost at all. Is it using a blockchain, or is it using just a blockchain mechanism?

  2. What exactly is Bugout used for in your concept? Which use case do you use it for i mean?

  3. Do i understand right, that SEA is what i have here with the three thirdparty logins, but p2p? Distributed on my users, so i dont need to run a centralized server for user login/profile data? https://cloud-atlas.app/

  4. Webtorrents reconnect via a distributed DHT. Is there a repo or concept already, which would have already connected peers via WebRTC, share a distributed WebRTC DHT with the swarm? Like if the client looses one WebRTC direct connection, it has a list with minium 100 other WebRTC ip/port pairs? Or is WebRTC or the p2p repos all using WebRTC (you explained to me) already doing this and i dont get it? πŸ˜… Maybe the gossip does that already? But would a dedicated WebRTC DHT be an advantage or a disadvantage anyway?

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

one of my other fallbacks i was thinking about:
"volunteers adding nodes for fallback support (for instance downloadable exe with autostart option)"

i would totally support my favourite website with installing this on my pc. for instance, if i could support wikipedia with this, i would run one of these background windows clients, of course.

same could work for a very reliable p2p maptile server, for a decentralized Google Earth/Maps

btw: whatever api you use for showing map tiles in a map application(cesium js for instance), with adding mishmesh/true-p2p to an application, the downloaded maptiles get distributed(like saved offline forever), without having to write an interface for the tile api and your p2p network. I think that is an interesting finding.

I am sure there is more about to pop up in the future. Like weird, but great side effects of connecting p2p with the website/app environment/concepts of today. (with an eye on storing and caching, which is p2p all about)

Esspecially when it comes in combination with JAMStack and PWA (which are both great concepts for themself already)

from easypeers.

draeder avatar draeder commented on July 19, 2024

Speaking of which, Mishmesh is working between Gun & Bugout!

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

Motivation is everthing :D

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

Hope to learn from your commits, how to write adapters

from easypeers.

draeder avatar draeder commented on July 19, 2024

Hope to learn from your commits, how to write adapters

One of the problems with Mishmesh is if you leave the adapter running, it has an event listener leak. Anyway, if you have any comments, problems with Mishmesh, open an issue over there.. πŸ‘

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

Thank you so much for coding Mishmesh, and even in just one night. :D
I am instant able to start trying out stuff now.

if you leave the adapter running, it has an event listener leak

something with unregister the event handler if not in use. a heartbeat could tact the scanner rate in general.

I will use it as an opportunity to learn something ;)
I have my problems starting a project from ground up, but adding and reconnecting functions of a core repo is what i really grasp and like.

#1 (comment)
Could you answer my, i hope, last annoying questions, please? πŸ˜…
Because it feels like, i still got some basic assumptions wrong?

from easypeers.

draeder avatar draeder commented on July 19, 2024

Does the crypto part of AXE cost the user or developer money? Because i want to go non-profit, so i need AXE to have no cost at all. Is it using a blockchain, or is it using just a blockchain mechanism?

There is no cost, and it does not use a blockchain.

What exactly is Bugout used for in your concept? Which use case do you use it for i mean?

It can be used for whatever you want. I have used it for a chatting app, Hyperbole, which runs in the browser only, with no server at all, and can even be launched by just opening the index.html file.

Do i understand right, that SEA is what i have here with the three thirdparty logins, but p2p? Distributed on my users, so i dont need to run a centralized server for user login/profile data? https://cloud-atlas.app/

SEA is a security suite that Gun uses for authenticating users. But it can be used independently of Gun for encryption/decryption, too.

Webtorrents reconnect via a distributed DHT. Is there a repo or concept already, which would have already connected peers via WebRTC, share a distributed WebRTC DHT with the swarm? Like if the client looses one WebRTC direct connection, it has a list with minium 100 other WebRTC ip/port pairs? Or is WebRTC or the p2p repos all using WebRTC (you explained to me) already doing this and i dont get it? πŸ˜… Maybe the gossip does that already? But would a dedicated WebRTC DHT be an advantage or a disadvantage anyway?

Bugout, P2PT and Easypeers all do this. WebRTC DHTs have been discussed with WebTorrent. I see you found that issue. If I recall correctly, the WebTorrent developers decided WebRTC is not performant or reliable enough to serve as a protocol for DHT.

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

There is no cost, and it does not use a blockchain.

i meanwhile found some info. its similar to my priority/timeout/ distance/responsetime approach i am thinking of.
it has to do with the cloud atlas app, were techniques like pinning(ipfs) for instance come into practical play. (whichs potential use cases is far underestimated)

for instance posts(missions) are related to an area, so i will only connect nodes from the same area of course, which will optimize the dataflow already. nodes are only subscribed to a post, not to another user.

ergo= more users supporting a mission (with joining it, which pins the post), the more available the post gets.
this equals more viewers= put post on top of the page
i hope you get my point.

It can be used for whatever you want. I have used it for a chatting app, Hyperbole, which runs in the browser only, with no server at all, and can even be launched by just opening the index.html file.

could it emulate or be a p2p node.js server?

SEA is a security suite that Gun uses for authenticating users. But it can be used independently of Gun for encryption/decryption, too.

so it replaces my third-party "sign in with", but i have to store the profile somewhere, for instance gundb.

Bugout, P2PT and Easypeers all do this. WebRTC DHTs have been discussed with WebTorrent. I see you found that issue. If I recall correctly, the WebTorrent developers decided WebRTC is not performant or reliable enough to serve as a protocol for DHT.

yes, i was wondering, why is there no direct connection dht running between the nodes.
That he said its not worth it, does not mean, its not worth it ;D

Like with spinach: 100 years long, people were convinced, spinach is rich in iron. A few years ago, someone made a second measure. Its not! :D

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

Since you seem to be obsessed with true open-sourceness (which is good), i am sure you will have a oppionion about this:

I usually dont think in terms of limiting or forcing people, but i thought, why not combining the MIT License and Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) into one "for-nonprofit only" license.
(not for this repo, like in general, for ALL open-source software)

The idea behind it is not limiting business.
But it would "force" people softly, to do the right thing.

For instance if you do a for profit supermarket, you go for profit no matter what.
But with a MIT license but for non-profit only, you as a supermarket, are expected to be fair, sustainable, and the money goes to the fair payed coworkers, the rest to the common good.

its just such a little change in licensing and thinking, but it would totally shift the agendas of business. (and peoples minds, become rich doing good)

its like banning this unfair unsustainable machines we call businesses.

Because non-profit, doesnt mean, you not allowed to make a profit (thats a misconception) but in the case of a non-profit, the money flows were it belongs(legally and morally)

I really love to know your oppinion to this one.

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

https://worldpeaceenginelabs.org/decentralized-non-profit-as-a-service/

wolff makes a strong point in the video. i think what he says could work out with non-profit open source licensing as a standard. becoming the new normal.

from easypeers.

draeder avatar draeder commented on July 19, 2024

As a true free market capitalist, I'm perfectly okay with corporations and businesses making obscene amounts of money. But we as a society don't really have true free market capitalism. We have central economic planning through central banks, governments who set policies that only benefit large corporations, which in turn benefits the government officials through bribes, insider trading (e.g. the US congress legalized insider trading for itself a few years ago, and the president signed it into law). Meanwhile, the average American can't even do day trading unless their account has $25,000 in it.

To me, unrestricted open source software provides equal opportunity for all.

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

I think a MIT-for-nonprofit-only license would keep the unrestrictedness, even stay capitalistic, but without the bad side of capitalistic behaviour.
Just removing the psychopathic for money agenda, and replacing it with a makes sense business, earning a shitload of money (because best product in town, for real, not by media propagation)

Dont you think?

Or would i be (unknowingly) the new enemy of freedom, with establishing this movement? πŸ˜…

from easypeers.

draeder avatar draeder commented on July 19, 2024

At a philosophical, moral, ethical, and even legally enforceable level, who exactly would decide what is a 'psychopathic for money agenda'? With the MIT license as it is, that choice is up to left up to the developer who uses MIT licensed software. To me, liberty is: not blocking others' ability to exercise their own. See: Negative Rights

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

we are on the same side.
but i cant see, how this could block others ability to exercise their own. (which is super important to me)

i am not against anything, not capitalism, nor free market (both cultural technologies we need to improve, and not banishing it) just shifting the purpose of a business endevour. And with that letting our moral abilities come into play again.

no one should decide whats psycho, but some things are obviously not right(kidswork, slavery, dept slavery, money printing, amm)

today, you cant tell nestle to stop stealing water from small villages, and we just accept that some way, even there is some resistance of course.

but if wwf (classic non-profit giant) would go hunt pandas, or greenpeace starts investing into oil, someone would come, cut their power, right? :D

Because its logic! a non-profit doesnt do that. if a non-profit does the opposite of its written down statues, you could even cut their tax deduction for non-profits! ;)

but in a classic business, doing bad things is handled as business as always. an with politicians having shares in this companies, makes it even worse.

But that all said, just by incepting open-source for non-profit only. The already existing machinery does the rest.

from easypeers.

draeder avatar draeder commented on July 19, 2024

When you start to peal back the layers behind non-profits, you'll find many members secretly do the things they claim to be against. The non-profit organization serves as cover for their wickedness. Evil will always exist, no matter what it hides behind.

Your idea is fine, I just personally won't use that kind of license.

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

When you start to peal back the layers behind non-profits, you'll find many members secretly do the things they claim to be against. The non-profit organization serves as cover for their wickedness. Evil will always exist, no matter what it hides behind.

exactly this came to my mind too. we do not living on a ponyfarm, were everybody obeys the moral and laws, because he says so.
but the things they do behind closed doors is stuff related to the narrative today.

But if the new narritive was sustainable, non profit open-source, in my oppinion, money would become rather a tool, instead of being the goal. (and third world countries would get vaccin production instructions for free, if it was oh oh oh so dangerous as say said)

And with JAMStack already and coming P2P esspecially, everybody is able to start a global business without cost.

So why not taking what bothers you, look if others have that issue too, develop a solution and make money with solving their problem? Thats a good thing. ( and the actual intention of business in a free market)

I wouldnt even sue someone, not using it for non-profit purposes. Never ever :D

Just want to change the narrative, because people love to do good.
And if we tell them, they can be a super hero with starting a non-profit business(which is sexy we say), they probably do.

You get me? ;D

*imagine kids. if you tell them, people like people who do good, they do. we as a species are kids too.

Your idea is fine, I just personally won't use that kind of license.

fair enough :)

from easypeers.

worldpeaceenginelabs avatar worldpeaceenginelabs commented on July 19, 2024

its not limiting anything. just the narrative changed. sell it for drugs and rock and roll if you like, nobody cares :D

but i want kids say: if i am grown up, i want to start a non-profit like my father. (and get rich)

from easypeers.

Related Issues (1)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.