Announcing: Mælstrøm, a Magic Wormhole client

Magic Wormhole reminds me a little of SimpleX. They both somewhat address the problem of Signal having IDs and a single monopoly server where $govt$ can do traffic analysis. They both have the problem of transferring a non-ID, ID token.
Just thought I’d send y’all down a rabbit hole… You can thank me later.

the problem with reading QR code is that Warp or iOS/android app generate just wormhole code (wormhole-transfer:2-some-code) = does not contain rendezvous or role …

so around this piece of code will need more enhancement to use default values if they are not in QR code…

 else if (content.rendezvouz != wormhole.mailbox) {`
                                    app.popup("QR Code URL is using a different connection profile!")

3 Likes

Thanks for the analysis.

I try to set the defaults in the URI parser correctly, but that rendezvouz part was a typo/thinko.

Shoud be fixed in 0.3.8 (8139e0a).

2 Likes

:partying_face: now it is working, reading and start receiving from Warp or iOS app automatically :raising_hands:
for next transfer app must be killed. also phone must be locked/unlocked to start new readings otherwise camera only focusing and not reading. anyway if it reads qr code for the second time transfer will not start, still need to kill app.

1 Like

0.4.3 should fix the restart after completed transfers issue.

1 Like

0,4,4 fixes a regression caused by 0.4.3. argh!

And now we’re into python dependency hell proper:

#39

Connecting to wss: instead of ws: websockets fails.

The pip-installed cffi is not compatible with the system libffi.

OK, we can recompile cffi on pip-install, but this then links against the system libffi which is not allowed in Harbour.

And while I can use __provides_exclude and __requires_exclude, that apparently is not enough for the links-to-libray scanner from the harbour validator.

@poetaster any ideas?

It’s not a very good situation. On the up side, it’s a setup.py so there is a single point to intervene (beside rpm patching), but you’d have to have 2 submodules including libffi as well.

EDIT: I’d remove cffi altogether and see how it performs. It’s in the _util.py bits of the OpenSSL lib Gin, and sat up against.

It’s actually NOT a very safe thing they do here anyway (ie. not zeroing allocated memory.) Might kill performance though.

Update: the first try in getting this into Harbour has been rejected.
Reason is currently it uses Amber.QrFilter, which is not allowed.

@vige kindly opened a PR to allow that, lets see how that progresses.

Meanwhile, I’ll disable/rip out QR code scanning and resubmit at Harbour. Maybe I’ll do a “plugin” for qr code scanning, published on Chum like I did with Lonewolf.

3 Likes

Mælstrøm 0.4.6 (without support for QR scanning) has been released in Harbour! Enjoy!

Still some quirks left to work on, but basic functionality is there.

6 Likes