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

I would appear to have made an arse of this. Why am I not connected?

Is dweb open a447871043968be2be1628584026cad30b824009a30eab43db3ee6dd8c0990051c27160cc8d1662da763d57c41c091f6 still the right way to start this?

3 Likes

Go via dweb open awesome to be sure.

2 Likes

hmmmmm - the tab needs to be in the foreground for a kind of reliable connection

which browser(s) are you using? - I had the impression it works better with chrome than with firefox :open_mouth:

1 Like

Im on the latest Brave from Ubuntu

1 Like

Clicking Friends from the awesome page gives me this

I killed any running dweb serve, restarted and this is the last output from dweb serve


            port: 33999
 history_address: Some(HistoryAddress { owner: PublicKey(0c3a..0448) })
         version: None
 archive_address: eb16e646d509f48b85797e0666ab10fda0cb19e8b5b82cc216fffa486eadc87f
Splitting path '/favicon.png'
...into '/' and 'favicon.png'
Looking for resource at '/'
DEBUG Tree looking up 'favicon.png'
DEBUG lookup_name_in_vec(favicon.png)
DEBUG: immutable data with eTag: "immutable-8298490553911241693-image/png"
DEBUG ETAG COMPARING: "immutable-8298490553911241693-image/png" and "immutable-8298490553911241693-image/png"
DEBUG serve with ports HttpResponse: 304 Not Modified  (Not Modified)
DEBUG serve with ports HttpRequest : GET /_app/immutable/nodes/1.B-rdie4U.js
DEBUG www_handler(/_app/immutable/nodes/1.B-rdie4U.js)...
DEBUG our_directory_version:
            port: 33999
 history_address: Some(HistoryAddress { owner: PublicKey(0c3a..0448) })
         version: None
 archive_address: eb16e646d509f48b85797e0666ab10fda0cb19e8b5b82cc216fffa486eadc87f
Splitting path '/_app/immutable/nodes/1.B-rdie4U.js'
...into '/_app/immutable/nodes/' and '1.B-rdie4U.js'
Looking for resource at '/_app/immutable/nodes/'
DEBUG Tree looking up '1.B-rdie4U.js'
DEBUG lookup_name_in_vec(1.B-rdie4U.js)
DEBUG: immutable data with eTag: "immutable-3313927504648492931-text/javascript"
DEBUG ETAG COMPARING: "immutable-3313927504648492931-text/javascript" and "immutable-3313927504648492931-text/javascript"
DEBUG serve with ports HttpResponse: 304 Not Modified  (Not Modified)
DEBUG serve with ports HttpRequest : GET /favicon.png
DEBUG www_handler(/favicon.png)...
DEBUG our_directory_version:
            port: 33999
 history_address: Some(HistoryAddress { owner: PublicKey(0c3a..0448) })
         version: None
 archive_address: eb16e646d509f48b85797e0666ab10fda0cb19e8b5b82cc216fffa486eadc87f
Splitting path '/favicon.png'
...into '/' and 'favicon.png'
Looking for resource at '/'
DEBUG Tree looking up 'favicon.png'
DEBUG lookup_name_in_vec(favicon.png)
DEBUG: immutable data with eTag: "immutable-8298490553911241693-image/png"
DEBUG ETAG COMPARING: "immutable-8298490553911241693-image/png" and "immutable-8298490553911241693-image/png"
DEBUG serve with ports HttpResponse: 304 Not Modified  (Not Modified)
1 Like

that is strange - I’m getting to the friends app on port 37968

broken link is strange - I restarted everything to make sure nothing is cached … but you end up at the wrong place .. and that nobody is able to connect is disturbing too …

I’ll see if I find out something later … I may be uploading a bit in parallel too and my internet connection is probably at its limit :innocent: - that possibly doesn’t help

3 Likes

Check the address in the awesome page link.

I suggested that because I updated it a day or two ago and thought it was up to date but maybe I messed up. :man_shrugging:

2 Likes

Inspecting the source of the Awesome page, the link is given as

http://127.0.0.1:31720/dweb-open-as/Friends/a447871043968be2be1628584026cad30b824009a30eab43db3ee6dd8c0990051c27160cc8d1662da763d57c41c091f6

Putting that into the address bar I get

Aha!!
If I wait a few mins , I AM connected…

but only to riddim

1 Like

I’m not an ā€œonlyā€ … :stuck_out_tongue:

2 Likes

I only ask you don’t be lonely…

1 Like

are you ignoring me or did the connection break again? :open_mouth:

…I just learned today that progressive web apps that can be installed from a website may support executing tasks at set points in time … (that’s llm info … I need to test this to be sure …)

…that might be the best path to reliable handshake from my current knowledge… I need to do some tests …
…and I’ll split the handshake-stuff to use one scratchpad per friend … I suspect there may be stuff going wrong when friends tries to create multiple ANSERWS to multiple friends and possibly overwrites stuff in the handshake-scratchpad … ooooh … and maybe when issuing offers at first … and then answers … might be working coming from a wrong state when writing the answers -.-" …

1 scratchpad per friend it is … too much that can go wrong otherwise …
ps: and I suspect it’s worse the more friends you have -.-" …

4 Likes

No, not ignoring you at all. I was working outside while its still light.

The connection did break though at some point in the last couple of hours

1 Like

okay - in the light of latest bugs and unreliabilities I decided to invest some moments into the current release …

enhancements:

  • session transfer

  • 1 scratchpad per friend
    – this totally makes setting up a friend more complicated for now … but I think it’s probably worth it for enhanced reliability … we’ll see what the feedback from here sais how well it works after that fix :smiley: …

    – later we’ll send invites which will lead to automatic handshake execution … so this clumsy handshake with needing to exchange contact IDs per person will go away again :smiley:

  • added version info of the account package to it to be able to migrate to the new version (and removing the incompatible friends)

edit:

oh no - this is not my best release - if it doesn’t work for you then it probably isn’t you it’s me :-/ let me test properly through 2 or 3 different internet connections and post again when I have something that I am confident again that it should work for others too …

8 Likes

Sorry people - I didn’t forget you - I’m currently testing out different ways of doing proper tests before future releases (not only within my local network but as well between different Internet connections) … Which turned out to be more of a challenge than I expected…

I Rarely use servers with graphical interface but for testing a gui app that does p2p between different locations it’s pretty useful… Paperspace completely changed what they are offering (their software worked excellent in the past) with the new provider I tested clipboard doesn’t work… Which is super annoying… And now I think I’ve settled at using browsh as terminal browser for my typical servers without gui (browsh supports Javascript… Without which the typical autonomi apps don’t work… )

7 Likes

little status update.

first version of friends operational using individual scratchpads per friend and utilizing the auto-reconnecting smokesigns library under the hood (in this second still handshake-server to not change too much at a time)

I’ll need some more days to get to the next release. but on the bright side this one should then be significantly more robust than the last ones :slight_smile:

ps:

oh and more exciting stuff happened under the hood:

  • i have one cloud machine with graphical user interface now to test with a proper browser
  • another one where I can use browsh as terminal browser to test the behavior there
  • in smokesigns I added an end-to-end test where it launches via puppeteer 2 browser windows (either headless or really to see them), establishes a real connection via WebRTC and sends messages back and forth.
    • this is the systematic how I envision testing multi-user chats with >100 participants at some point through digital ocean droplets.

pps:

the only thing I’m not sure about is if I should add the invite system before the next release or not … because exchanging the individual scratchpad-addresses per friend is super clumsy and a horrible user experience … I really tend to delay the next release another week or so and having invites in place …

9 Likes

I wouldn’t stress on the invite system the first customers will be the regulars who can manage just fine the way it is :slight_smile:

4 Likes

little facelift and internal testing results.

…vpn can cause trouble (possibly symmetric NAT then ..? traffic filtering happening …) …

  • I’ll fix a bug in state management (disconnections are not correctly discovered anymore in this moment)
  • and then make adding of friends a bit less confusing with the current communication scheme …

and then I’ll call it the next and significantly better release … =)

Ps: oh and thank you @aatonnomicc for your patient and repeated testing of different stuff! You deserve a medal my friend

pps:

and @aatonnomicc even tested windows :exploding_head: - since he was previously on mint (well and my other machines are Linux) and I’m on macOS we’ve all 3 now

9 Likes

Btw - since I already see scenarios where webrtc doesn’t manage to hole punch without changing settings in firewalls/vpn I think having a optional companion app may be something worth considering …

With the companion process probably being able to crack into symmetric Nat and through firewalls it could enable connections in scenarios where webrtc fails … When not being bound to the webrtc protocol/handshake style we can achieve better connectivity (+without the timeouts being imposed by browsers etc…) and since connections are on a 1:1 basis we can connect via webrtc to webrtc only friends and use the more sophisticated/more suitable for autonomi systematic in native app scenarios (mobile, tauri Windows/MacOS/Linux apps / webapp with companion process… ).

…Just some thoughts… I need to think further about this and we need to see how reliable pure webrtc turns out to be for real world application users …

7 Likes

okay - you asked for it @aatonnomicc

new release with friend specific scratchpads:

I’ve got a bunch of peer-ids now for you :joy:

@aatonnomicc:

b27398e82ef33ead8fc0dafa8c09850d21f0396ee08bedfbc34090febf0afb43b537848e8e698394ca9e52da69ccb378 (that shouldn’t have changed - we should be connected - just listing you here for completeness)

@Southside:

b34461276a8b31ac265f68e859d4ca0298781c78f8793c04db293e396a3222bca661b1807e095a67fe7f5cc51809c2da

@ambled:

80750630453172644ca8637ccbf7fc14938cf6f9b41b8aec05db1a3e30c2d9fd6e1e4a4c5d4673535cbb5f64d122f60f

@Josh:
a65d4caef6ff439473632257b291e3a6f517ef200cdcec1a50008bd8963bcf6ccd7970eff251b425b2307401c1034af1

@scottefc86:

969c8c2a8c52110dccceb7a6bf066e12c10e44548c42237bc74f2a0a48a0c137dce96544e79d48b67ad40016acb4677d

@happybeing:

b6ca7ac7780dbffa1e089dd60afba0d15ac74bfa7dfa13f21a4e8efd8a66a2a8a546d844ecb51bd664e5119060c570d4

@Toivo:

b792ed1f28106554c9f3f8de1b5172677780ca9e4acbae40f4c0c0d68d34cf2d23701a39b04e01273502f671eeaa253e

(please don’t feel excluded if I didn’t list you - just poke me and send me your peer id :smiley: I most certainly forgot some important people here :innocent: … )


I’m pretty confident this release is a good one :smiley: … did significant testing in my local network and some testing with cloud/ @aatonnomicc

known limitations/issues:

  • ufw is an issue it does hinder WebRTC handshakes to be executed … somehow with my new variant of tunneling firefox through the ssh session ufw no longer seems to be an issue :smiley: I have to admit I don’t understand exactly why … I assume that browsh somehow was simply too slow to execute the handshake… but as long as it works for proper use cases I’m okay with it …
  • only 1:1 communication
  • since I want to avoid TURN servers we’ll find out which connections go through without them and which ones won’t … no ufw allowed is already a pretty big bummer imho … we need that other hole-puncher I was working on initially I’m afraid to get more robust here (without TURN servers … which are relay-servers for all messages so we’d revert back to centralized infrastructure if we’d add them …)

little fun fact:

I think I either need to change the way I’m testing server-based connections :smiley: or I need to optimize friends a bit for terminal browser usage - this is how it looks in browsh on cloud-machine side:

and here the version in my regular browser on my local machine

7 Likes

little victory of the day:

firefox via tunneled x-server shown locally in nice colors but running on my headless server :tada:
…could have had that idea earlier too … anyway - working now =D …
2 different locations (local + cloud) and at my side via local LAN /wifi 2 different machines :slight_smile:

6 Likes