this post was submitted on 07 Nov 2024
14 points (100.0% liked)

Ask Lemmy

26961 readers
883 users here now

A Fediverse community for open-ended, thought provoking questions

Please don't post about US Politics. If you need to do this, try [email protected]


Rules: (interactive)


1) Be nice and; have funDoxxing, trolling, sealioning, racism, and toxicity are not welcomed in AskLemmy. Remember what your mother said: if you can't say something nice, don't say anything at all. In addition, the site-wide Lemmy.world terms of service also apply here. Please familiarize yourself with them


2) All posts must end with a '?'This is sort of like Jeopardy. Please phrase all post titles in the form of a proper question ending with ?


3) No spamPlease do not flood the community with nonsense. Actual suspected spammers will be banned on site. No astroturfing.


4) NSFW is okay, within reasonJust remember to tag posts with either a content warning or a [NSFW] tag. Overtly sexual posts are not allowed, please direct them to either [email protected] or [email protected]. NSFW comments should be restricted to posts tagged [NSFW].


5) This is not a support community.
It is not a place for 'how do I?', type questions. If you have any questions regarding the site itself or would like to report a community, please direct them to Lemmy.world Support or email [email protected]. For other questions check our partnered communities list, or use the search function.


Reminder: The terms of service apply here too.

Partnered Communities:

Tech Support

No Stupid Questions

You Should Know

Reddit

Jokes

Ask Ouija


Logo design credit goes to: tubbadu


founded 1 year ago
MODERATORS
 

Hello, I'm Valmond creator of the Tenfingers sharing protocol & implementation.

To make it more motivating for people to try it out, what should I share to showcase its abilities? It can be rougly anything up to say a gigabyte.

I'm thinking about music, video, parts of wikipedia, ...

Legal of course.

Any ideas greatly appreciated.

Cheers & thanks!

top 17 comments
sorted by: hot top controversial new old
[–] [email protected] 3 points 1 week ago* (last edited 1 week ago) (1 children)

if I'm reading this right, it's a bit like ipfs+dht. is this a content-addressable system?

anyway, you should probably have demos of

  • large files (like a Linux disk image), to demonstrate consistency in transfer.
  • Video stream, to demonstrate performance and low latency.
  • multiple files shared with many peers at once, to demonstrate scalability
  • sharing with low bandwidth and high latency, to demonstrate possible mobile use cases.

thoughts:

  • the logo is very close to wireguard's.
  • if the data is stored on peers, that means there must always be people with free storage online for it to work? how much storage is needed? is that data in plaintext? could a bad actor push illegal content to peers without them knowing?

also, please convert the whitepaper to a format that is actually readable. rtf? really?

[–] Valmond 2 points 1 week ago (1 children)

Thanks, good ideas and recommendations!

The data is overshared, so several nodes store your data (as you store theirs. The storage requirements are roughly your data size times the number of over shares. The number of overshares is confugurable on a per data basis), this makes the availability high.

The data is encrypted with AES 256 (CTR) so nodes do not know what they are storing.

It's hard to invent new logos I guess, at least mine is blue and laying on the side...

It might feel like IPFS but the underlying tech is completely different, so it's not a DHT but uses dynamic links, which means that you can update your shared data without the need to re distribute the link file.

Ha ha point taken, I'll convert it to a better format.

[–] [email protected] 2 points 1 week ago (1 children)

i'm interested in the dynamic linking, what mechanism is used to stop situations like left-pad or the pypi incident where a file is removed replaced with a malicious alternative?

[–] Valmond 3 points 1 week ago (1 children)

The idea is that nodes are trust-less, they do not know anything about the data.

An owner is authentified over an RSA handshake, so if the owner is not compromised, your request for updating a data will be rejected.

A malicous node though, must be both lucky (asked to share the data, so it can try to serve the malicious data) but also must have access to the link file so he can use the AES key to encrypt the bad data. This could happen if a malicious peron gets the hand on the link file, which sort of defeats the whole idea in the first place but it's an attack vector for sure.

So back to the drawing board again.

The public RSA key of the owner is already in the link file, I think I can use it to authenticate the data (say the original user uses his private RSA to sign a hash of the data and adds it to the payload).

Very good feedback, I thought I had it all covered. It seems like I can make a secure fix but I'll think a bit more about it first of course.

[–] [email protected] 2 points 1 week ago (1 children)

your reaction makes me more confident that this may turn into something interesting :)

i take it then that files must have some ownership information associated with them, to distinguish the author from a relay node? or is that just a private key.

[–] Valmond 1 points 1 week ago (1 children)

Thanks!

The file does have an ownership information (the public RSA key of the owner), it's just that a malicious node doesn't show any proof of ownership of the data it's sending (which causes the problem). I think I have a straight forward solution but I'll ponder it a bit more before digging in :-) I'd like to have the possibility to download from several nodes at once which makes things a bit more interesting.

Would you mind if I copy paste this conversation over to [email protected] ? I guess here it will disappear in the abyss...

Cheers

Valmond

[–] [email protected] 2 points 1 week ago (1 children)

sure, do that. and good luck with this, i did something similar for a project once and as usual its those last 5% that are going to cost you 90% of the time.

[–] Valmond 1 points 1 week ago (1 children)

Thank you!

Ya, there was a saying in video game dev circles, when you have finished 90% of a game, that's good, because now you only have the other 90% to do...

What was that project, if you'd like to share?

[–] [email protected] 2 points 1 week ago (1 children)

it was nothing official, just a toy file sharing thing using the chord dht algorithm. it consisted of a single binary that you fed with a directory and the IP of an extant member, and it would sync everything on the network into that directory.

no edge cases handled, so the 90% remained.

[–] Valmond 1 points 1 week ago (1 children)

Interesting thing that Chord stuff.

Sounds like a good little tool to have there, it's always hell to share stuff among computers and phones and stuff! Guess overwriting from one side to the other (and vice versa) would be hell to fix in a user friendly manner though... If you don't go for a master/slave system, or git repo style...

[–] [email protected] 1 points 1 week ago* (last edited 1 week ago)

yeah one thing we couldn't fix before losing interest was eventual consistency and authority. files would sort of flicker in and out while state was being propagated. i dread to think what kind of bandwidth use that thing would have when sharing large files.

[–] NeoNachtwaechter 2 points 1 week ago* (last edited 1 week ago) (1 children)

Usually, sharing protocols are invented either by people who try to make a shitload of money from it or by people who are already somebody. Who are you?

[–] Valmond 3 points 1 week ago* (last edited 1 week ago) (1 children)

I didn't know there were entry requirements :-)

It's FOSS so no money involved, no crypto or other bs.

As for who I am, why on earth would that matter?

[–] NeoNachtwaechter 2 points 1 week ago (1 children)

entry requirements

No, just curious :)

[–] Valmond 2 points 1 week ago

No problem, I'm just a nobody old developer :-)

[–] [email protected] 1 points 1 week ago (1 children)

What is it? The link is http and times out for me

[–] Valmond 1 points 1 week ago

Bizarre, it works well for me?

It's http://www.tenfingers.org