Real-time, low-delay streaming between nodes?

Skype, Messenger, etc: I drop packets on the network with the expectation that the recipient will get them with consistent sub-second delays. (Most of them. Usually in order. Depending on the reuqirements of the application.)

  • What’s the model for this kind of communication on the safe network? It’s basically a two-way stream between two nodes (could be extended to more, e.g. for group chats or group calls), sometimes with TCP-like requirements (e.g. chat), sometimes with UDP-like requirements (e.g. phone, video, etc). The packets are transient; they are not stored once transmitted. I can’t recall anything like this on the safe network, but I may be ignorant.

  • Lag? My concern is that nodes can’t address each other by IP address, so the routing layer will pass around my little hello’s and goodbye’s in addition to what’s happening on the IP layer. I’m wondering how much delay it will introduce.

  • Bandwidth? Similarly, can we expect that the additional layer won’t introduce bottlenecks? Regular routing nodes, unlike core routers on the internet, can not be expected to have hideously high throughput. I’m aware (old) Skype managed to figure this out, so it’s for sure not impossible.

1 Like

Skype, eh? Wasn’t it possible until very recently to see the IP of the node you message with?

Messaging should be able to work well, but video streaming between nodes is a bit too much to ask for IMO.

I haven’t recently checked how much bandwidth Skype sucks away with its forwarding, but when they started it used to be terrible in that regard. I get the idea about sharing but I don’t feel enthusiastic about providing free bandwidth and good QoS to someone for video BS-ing. If I want to donate bandwidth I’d rather seed some stuff that’s actually useful to a wide number of people.

Yeah; bandwidth is a resource as much as storage is, so I’m hoping a mechanism is developed so there’s a SafeCoin market for bandwidth, even if only priority bandwidth (pay for better performance in streaming, gaming & other low latency applications).

I guess you’d be more likely to offer bandwidth resources if you’re rewarded for it?

1 Like

Forgive me for stating the obvious, but your personal beliefs about what’s useful and important and what’s utter bullshit are completely insignificant for just about anybody who’s not you :smirk_cat: Users already have no control over what their storage and bandwidth are used for, and that’s how it should be on the safe network.

Many of us think video chat is a reasonable expectation from a “one system to rule them all”, enough so that if there’s a built-in limitation that makes it impossible, that may be deal-breaker for many people.

I believe this approach is more beneficial than a gut-reflex “no, it’s bullshit” reaction :smiley_cat:

“There is a legitimate need, let’s figure out a way.” Isn’t that how this whole thing started?

Random idea: SAFE can serve a signaling channel for building up a stream over IP (i.e. something sufficient for real-time communication) between trusted parties; I don’t care much if my bud discovers my IP address, but I do want to know it’s him and not somebody else :smiley_cat:

I admit: a connection between our computers, however encrypted, is important metadata for spying agencies. To fight that, what if we take it further, and use SAFE as the organizing platform for a scrambling layer akin to TOR. This would get rid of the SAFE routing overhead for everything but the connection setup, and even with the 2-3 extra hops, it could be still fast enough for low-delay real-time streams (it could also be configurable.)

This deviates from how the network works in general, but we’re talking about ephemeral data anyway. Also, this would be an application layer protocol, therefore it needs no changes to the core.

3 Likes

Uhm, yeah. I never said that my personal beliefs matter on how things should work. The first part of my comment was what I thought about that while the second (this, which you pointlessly criticize) is my personal opinion which I’m not going to change just because it hurts your feelings.

Of course I can control how my bandwidth is used on the SAFE network. For example, I can not join. Or I can join, but not as a farmer. Or I can farm just enough to get 1-2 SAFE to gain access to my favorite sAfep0n4all site, and then nuke the vault. And so on and so forth. And there’s nothing anybody can do to stop me.

Thankfully the idea is so complex that this won’t become a problem for a while.

1 Like

This will be possible using messaging. That can either be done manually, or an App could use it to do this automatically.

I had the impression messaging was more like an object delivery / pickup kind of thing, and not a stream of packets. Did I miss something?

Sorry not to be clear enough - I was referring to the secure exchange of IP addresses.

1 Like

Sorry @janitor, I didn’t respond to this one.

I don’t believe Skype tried to hide IP addresses, and that’s not what I meant.

Skype could do streaming video even when it had to use relay nodes (e.g. when both nodes were behind NAT so they couldn’t even use hole punching.) It was relevant to the question only because the relay nodes were not insanely connected core routers, just generic computers with fairly decent connection (which, in turn, got quickly saturated with relayed Skype traffic, to the absolute delight of the IT staff at your company :joy_cat:).

wonder if webrtc with rtcpeerconnection would work… maybe with some modification to reroute through the network

http://simpl.info/rtcpeerconnection/

theoretically once you can ID the peer using whatever method maidsafe uses for this then it should work (in theory) maybe with some modifications for maidsafe specific stuff. possibly the routing stuff they are working on would be important for this to work well.

https://www.webrtc-experiment.com/docs/how-to-use-rtcpeerconnection-js-v1.1.html

1 Like