by
Pri on 2017/08/13 01:00:27 PM
Hello, I've been running a channel on WinMX since 2006 called Renegades. We've invested a lot of time and effort into the chat producing a custom chat server and bots.
I've tried Fopnu and opened a channel on it also called Renegades. I have some feedback which I'd like to provide.
Firstly I'm very appreciative that Fopnu has been created, I think it shows a lot of promise. I'm only focusing on constructive criticism in this post but I wanted to make it clear I think the client has great potential.
So the chat system in Fopnu appears to use a mesh system where by each user within the chat is responsible for the sending and receiving of messages with everyone else in the chat. This has some positive points and some negatives.
Positives:
Anyone can start a chat room even without having good internet access
Chat channels can't "crash" and stay open 24.7 even if the creator of the channel goes offline
Ownership is maintained with a private-public key sharing system which I assume is cryptographically secure.
Negatives:
1. Innovation in the chat space cannot come from third party servers because the clients are maintaining the look and all functionality of the channel. Features explicitly not programmed into the clients will not become available, period.
- examples: Colour formatting, custom formatting of text, alert messages, messages formed without usernames in the front (good for bot usage). Hidden commands being intercepted by bots (/command interception and redirection to specific clients in the chat).
2. If you have a poor internet connection you currently may lose messages being sent/received in the chat by other users. You may also appear to disconnect and reconnect to the chat over and over again. It may also be impossible for clients with poor internet to join rooms with hundreds of users due to the bandwidth requirements in forwarding sent messages to all those peers.
- Some of these issues like lost messages and intermittent connectivity messages appear to be caused by the usage of UDP without your custom protocol supporting packet numbering and acknowledgement. This means messages lost in transmission are not known about and ones that do transfer successfully are not acknowledged as so. I believe you can fix this with a more robust protocol built on top of UDP or switching to TCP.
3. Due to the way Fopnu functions it's easy for a user in a chat room to view another users IP Address (from the Browse menu). I believe this is a mistake as it will entice people to use packet flooders against people they don't like in the chat rooms to knock them offline (Denial of Service attacks). If we had a Client <-> Server chat model instead of Client <-> Client we could operate a Fopnu client in an offline state while still accessing chat rooms, thus masking the IP Address from other users in the channel, only the server would know about the IP's of users keeping them secure if they so wished.
My thoughts:
I am of the opinion that going with a mesh topology for the chat system is a big mistake. For sure it has the benefit of allowing anyone to open a channel without needing decent channel hosting but I would argue the downsides are vast. On WinMX we have been able to innovate the chat so much but all of it relies on our ability to operate chat servers which can withhold, send and manipulate the messages being shown to users in the chat and so I am here to request that you consider changing to a Client <-> Server model or to provide such functionality alongside the currently implemented Mesh system.
Also I do think by doing Client <-> Server you will be able to release your own server software separately to the client which will allow easier development and addition of new features without needing to meddle in the client code base. You could even open source just the chat server allowing others to innovate on the chat software while you maintain your core focus on the client.
Thanks for reading, I hope the feedback is helpful.
by
Pri on 2017/08/28 11:53:53 PM
Did you read my entire post though? - I gave a good example as to why a decentralised system is bad for chat, everyone's IP Address is displayed to everyone in the channel making it easy to knock people offline when they say something you don't like. That makes it much easier to censor people.
IRC is I believe the most popular public chat system in the world with millions of chatters at any one moment. It uses a Server <-> Client model and it has worked very well for decades.
by
Buggah on 2017/09/10 03:31:07 AM
there are already a few server/client chat apps around. maybe even IRC if you recall. And it can mask your host/IP from non-ops/admins
Why create another one?
Decentralized and encrypted chat offers unmatched privacy.
and with multiple MOMs it can be very robust.
At current time, fopnu chat is very rudimentary. we as yet do not know what the future holds. I would prefer IP info not be so easily available, but realize any p2p connections will reveal user IPs unless masked by external servers for proxy, VPN etc.