fraction / oasis

Free, open-source, peer-to-peer social application that helps you follow friends and discover new ones on Secure Scuttlebutt (SSB).
http://oasis-demo.fraction.io
GNU Affero General Public License v3.0
287 stars 42 forks source link

Add support for peer invites #428

Open Powersource opened 4 years ago

Powersource commented 4 years ago

What's the problem you want solved?

Oasis only has support for oldschool ssb-invites and not ssb-peer-invites. Peer invites has several advantages (the readme mentions a few of them).

Is there a solution you'd like to recommend?

Add support for peer invites (keep support for old invites though). This would mean:

Powersource commented 4 years ago

I added the safety tag here because peer invites should massively reduce the rando problem.

zicmama commented 4 years ago

It must be from the same kind? Runnning Oasis 2.16.0

sbotc invite.create 1

Trace: deprecated api used: ssb-ref.parseAddress
    at Object.parseAddress (/home/attilax/.nvm/versions/node/v12.16.3/lib/node_modules/@fraction/oasis/node_modules/ssb-ref/index.js:96:15)
    at Object.<anonymous> (/home/attilax/.nvm/versions/node/v12.16.3/lib/node_modules/@fraction/oasis/node_modules/ssb-invite/index.js:98:24)
    at apply (/home/attilax/.nvm/versions/node/v12.16.3/lib/node_modules/@fraction/oasis/node_modules/muxrpc-validation/index.js:197:15)
    at Object.<anonymous> (/home/attilax/.nvm/versions/node/v12.16.3/lib/node_modules/@fraction/oasis/node_modules/muxrpc-validation/index.js:86:14)
    at Object.hooked (/home/attilax/.nvm/versions/node/v12.16.3/lib/node_modules/@fraction/oasis/node_modules/hoox/index.js:10:15)
    at Object.localCall (/home/attilax/.nvm/versions/node/v12.16.3/lib/node_modules/@fraction/oasis/node_modules/muxrpc/local-api.js:31:29)
    at Object.<anonymous> (/home/attilax/.nvm/versions/node/v12.16.3/lib/node_modules/@fraction/oasis/node_modules/muxrpc/local-api.js:37:22)
    at Object.request (/home/attilax/.nvm/versions/node/v12.16.3/lib/node_modules/@fraction/oasis/node_modules/muxrpc/stream.js:48:17)
    at PacketStream._onrequest (/home/attilax/.nvm/versions/node/v12.16.3/lib/node_modules/@fraction/oasis/node_modules/packet-stream/index.js:161:17)
    at PacketStream.write (/home/attilax/.nvm/versions/node/v12.16.3/lib/node_modules/@fraction/oasis/node_modules/packet-stream/index.js:134:41)

but creates invite

christianbundy commented 4 years ago

If the problem is something like "onboarding is difficult because pub invites are flaky and ruin the social graph" then I agree with this issue (although I'm not married to peer invites as a solution to this problem).

Powersource commented 4 years ago

I don't know if I'd phrase it like that, I'd guess peer invites will be about as flaky as pub invites (although maybe a bit less over time since it's harder for pubs to get overloaded with tons of users). But I agree they ruin the social graph.

Would you merge a PR implementing this?

christianbundy commented 4 years ago

Would you merge a PR implementing this?

Definitely! Sorry, my previous comment was me speaking with my contributor hat on -- as a maintainer, I'd merge anything that solves more problems than it creates.

Powersource commented 4 years ago

Started trying to do a bit of progress on this by adding the right plugins to flotilla, but atm stuck on this https://github.com/ssbc/ssb-peer-invites/issues/27