Hi @riddim, thank you for your work and updates, great job! I’m here to cause some trouble again 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:
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?
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 … everything is super slow or fails entirely for me …
…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!
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
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
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 … but first things first …
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!”
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?
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…
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.
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..
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 …