:IF: Friends - the messenger you'll never want to move away from

Hi @riddim, thank you for your work and updates, great job! I’m here to cause some trouble again :joy: I haven’t used Friends for a few days, and now I just logged into my VM on different internet connection.

I opened terminal and launched dweb - my wallet is loaded, no problem here.

But then, I tried to open friends again and this is what I got after several minutes, blank screen:

And now, after another few minutes and while writing this post, I am surprised because I can see Friends app loaded.

My point is - I thought I’m doing something wrong because the browser showed me a blank screen for a few minutes and it seemed like nothing is moving (no progress bar, no loading icon, etc). So I thought it would be a good idea to let users know it may take quite a while to load. I almost closed the browser as I thought it doesn’t work anymore.

Which leads me to another question - if you upload a new version of the app, is the command dweb open friends always opening the latest version of the app?

1 Like

yes it does.

and the funny thing is that friends does show a spinner when loading the account data / checking stuff and doing migrations to a new version …

…so when you see ‘hanging’ behavior that’s sadly nothing I could influence … that’s somehow the time dweb needs to fetch the few files that are the friends app -.-" …

ps: oh wow - I think something is going on with mainnet :open_mouth: … everything is super slow or fails entirely for me …

3 Likes

The reason dweb is slow is because Pointers are not reliable so it has to find the latest version itself which takes a long time.

You could speed it up by loading the archive address for the version you want.

2 Likes

i am afraid in this case it might not be dweb but be mainnet …

2 Likes

about the multi-friend bug :open_mouth:

fun fact - the alpha-network is so fast that the WebRTC handshake is not an issue at all … and I don’t see a many-friends-bug xD …


smallish usability upgrade and more and intense reconnect tests:

pending requests are now clearly indicated.

…and since I see now all 8 friends connecting on first attempt on alpha … I tend to believe in a performance related issue on mainnet … and think when the current changes have resulted in a stabilized (and faster) network then it should work on mainnet with multiple friends too!

5 Likes

okay … time to re-read the whole thread to collect feature requests/ideas I guess.

some needed/wanted features in no particularly meaningful order:

  • route upgrades as per dwebs upgrade
  • dweb watermark
  • scrolling when too many friends
  • opening friends avatars in larger modal
  • display ANT/gas balance
  • upload avatar in-app
  • revisiting translations / locations where text is visible
  • code cleaning :smiley:
  • offline messages (simply utilizing the handshake scratchpads)
  • using asymmetric encryption to exchange encrypted messages (offer/answer/offline messages) in the public scratchpads
  • simplifying and documenting external stylesheets for easier theming of friends
  • implementing plugins (loaded from autonomi) as JavaScript Webcomponents.
  • optionally persisting chat history with friends via scratchpads
  • releasing a python version of smokesigns (name already reserved)
  • and creating a simple demo on how to use it to connect (from everywhere in the world) via WebRTC to e.g. a locally running Raspberry Pi with a camera and fetching a picture it takes with a pi-camera
    python terminal chat (friends compatible - only selecting friends and chatting with them as text only; no adding/removing of friends etc)
  • offline DMs to friends (friend specific offline Scratchpad - message encrypted via public key of a asymmetric public key read from friends profile)
  • more extensive profile pages
  • the whole Friends app as JS WebComponent
  • Friends bundled with dweb via Tauri as standalone app
  • multi session / multi user chats
  • SDK for plugins
  • persist files (real uploads to the network) and separate view in chat with shared files - maybe even types (pictures / audio / video / others)
  • audio chat
  • video chat
  • extended states (free for chat, afk, DND, show offline)
  • import and use root private key (different from the one generally used by dweb)
  • create invite (send coin to a private key and encrypt it) → share a link leading to the info
  • account recovery through multiple other friends (multisig/multi-decrypt of owner-secret)

if you have additional feature/request that should be included in the roadmap feel free to mention them.

if something is super important to you please feel free to point that out so I can properly prioritize stuff :slight_smile:
The idea here is to give everyone around here the possibility to point out/add topics of great importance that I missed.

ps: oh - and some features are blocked by yet missing dweb functionality; in those cases opening PRs to dweb and helping out over there probably makes sense :smiley: … but first things first …

7 Likes

A “product description” from the point of view of privacy and anonymity. How to make best use of Friends, if those happen to be a high priority for user. Doesn’t need to cover the whole topic, but some guidelines would be great.

Edit: adding “please” and “thank you very much, good job!” :face_blowing_a_kiss:

4 Likes

Hi @riddim, do you think it is technically possible to add video calls between friends, given all the latency on the network? I don’t say it’s my feature request but I’m just curious if video calling is technically possible on Autonomi network, or if there is some path to achieve it in the future?

1 Like

Friends only uses autonomi for exchanging contact info - the communication then works without anybody in between (as fast as the upload of the communication partners allows) - so video calls should work better than e.g. teams/discord/… where there is a server in between that collapses when too many people are streaming through it…

So yes i don’t see any issues with audio/video

9 Likes

wow, I thought it would be something very hard to achieve and I didn’t expect such a great answer! Then this is my feature request for sure :grin:

5 Likes

Next… on mobile :+1:

That’ll teach @riddim to open all those issues :laughing:

Great work, amazing!

8 Likes

And I think I need to add a visualisation of the communication flow so it gets more obvious what’s the job of the network here and what isn’t :slight_smile:

5 Likes

Aaaah - I’ll put them on a roadmap and will see how fast we proceed along that :smiley:

But yes I really need a couple of clones that help me with the things I’d like to do :grinning_face_with_smiling_eyes:

5 Likes

Sadly Friends just never seems to connect for me…

This is all I ever see.

1 Like

I see. We need a ‘last seen’ info.

But in this moment of time don’t expect a connection attempt on mainnet to succeed.

I did a “quick” test before I left the house and neither the friends app did load correctly (2 attempts) for me nor did my speed test script succeed in fetching the speed test Scratchpad (2x 2 minutes to exception “record not found” from cloud machine)

After seeing the performance on the alpha network I decided to just stick to the Scratchpad peer exchange… But if the current state persists for long I will reintroduce the centralised handshake server to prevent frustration with the app due to no connections.

4 Likes

I’ll try on Alphanet later.
But now its beer and choonz from the Cow Pat Kickers in the Clutha.

1 Like

I’ll publish friends to alpha later and add the address over there to the readme… Do you have alpha network coin?

(maybe to clarify - it’s totally possible to either run friends in dev mode and use the alpha network (dweb) for accounts, profiles and peer discovery… That’s how I test on alpha… Or it’s possible to run a mainnet dweb to start the app and configure it to connect to a 2nd Alphanet dweb as backend for said Scratchpads… But both not paths I’d call “user friendly” =D

And that people need special token that need to be requested from rusty to use alpha doesn’t make the whole thing easier…
But if you’ve done that I’ll now publish a friends version to alpha to make it easier to use over there… Your friends need to be there too ofc )

@Southside for testing purposes you can as well add &accountname=your2ndAccountName as query param to the dweb URL and it will be a 2nd account instead of logging into the first one (both derived from your SECRET_KEY) which makes it possible to test from 2 different browser windows (Chrome works well on same machine - Firefox not so much for me) or 2 different pcs without needing multiple wallets..

1 Like

ah - sorry @Southside … didn’t manage to do it yesterday

SECRET_KEY=0xYOUR_ALPHA_SECRETKEY dweb --alpha serve

and

dweb open ac27b0a6801733f0d75e590b1f518f6384079ae427d254ce87d598bb7cbd9f9221a8be00cc79c6c028ab5c60ef461fde

IMPORTANT: this is the friends address on alphanet! (!) this won’t work on mainnet (!)

(on mainnet you can simply fire dweb open friends which doesn’t work on alpha)

don’t worry - I was afk most of yesterday, probably similar today

1 Like

all good - since your friends need to be on alpha too this is a rather advanced users way of running friends anyway … not sure how many will go that route …

1 Like