Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hello and support from KadOH #18

Closed
alexstrat opened this issue Dec 8, 2013 · 6 comments
Closed

Hello and support from KadOH #18

alexstrat opened this issue Dec 8, 2013 · 6 comments

Comments

@alexstrat
Copy link

@alexstrat alexstrat commented Dec 8, 2013

Hi @feross,

I just bumped into webtorrent and i'm astonished: I really think you are on top of something big!

I'm co-author (with @jinroh) of KadOH, a (dying?) project that has much in common with webtorrent:

  • KadOH was initially a student project started in 2011 around the subject "data privacy protection on mobile" that turned into an implementation of the Kademlia algorithm with web technologies – you can read more at http://jinroh.github.io/kadoh. As demonstration, it later ended up in a implementation of a decentralized twitter-like application built on KadOH.
  • to do browser-to-browser communication, we relied mainly on XMPP since, at that time, WebRTC was still a draft initiative. However, it looked like a promising techno that we never took time to experiment later..
  • when run in nodejs, KadOH was able to connect and interact with Mainline (the DHT behind bittorrent). We wanted to do that in browser (thru chrome socket API): we had issues with buffer-browserify+bncode, we never investigated further. But it looks like you fixed a lots of stuff!
  • we also wanted to write a complete implementation of a bittrorrent client for Node built on top of KadOH. And maybe, make it run on browser too!

Now, it's been a while since last time we did a true commit to KadOH.. One last initiative I wanted to achieve was to split our implementation into several reusable modules (for instance, eventually is our implementation of ~promises) but I never went further.

However, I think there is probably some parts of KadOH that could interesting to pickup to continue building webtorrent. We got for instance an implementation of the Kademlia routing table (with its iterative-lookup algorithm) that webtorrent might be interested in (#11?).

I would be very happy and proud to discuss it and help you building webtorrent by integrating pieces of KadOH!

– Alex

@piranna

This comment has been minimized.

Copy link

@piranna piranna commented Dec 8, 2013

However, I think there is probably some parts of KadOH that could
interesting to pickup to continue building webtorrent. We got for
instance an implementation of the Kademlia routing tablehttps://github.com/jinroh/kadoh/tree/master/lib/dht(with its iterative-lookup algorithm) that
webtorrent might be interested in (#11#11
?).

Could you be able to move this to an independent project and show how to
(re-)use it? I think it would be an interesting feature for my ShareIt! P2P
application...

"Si quieres viajar alrededor del mundo y ser invitado a hablar en un monton
de sitios diferentes, simplemente escribe un sistema operativo Unix."
– Linus Tordvals, creador del sistema operativo Linux

@alexstrat

This comment has been minimized.

Copy link
Author

@alexstrat alexstrat commented Dec 8, 2013

@piranna okay let's start! -> https://github.com/kadoh/routing-table is a rough extraction of KadOH routing table implementation with minimal reformatting.

@piranna

This comment has been minimized.

Copy link

@piranna piranna commented Dec 8, 2013

Wow, fan service!!! :-D Thanks, I'm going to take it a look :-)

2013/12/8 Alexandre Lacheze notifications@github.com

@piranna https://github.com/piranna okay let's start! ->
https://github.com/kadoh/routing-table is a rough extraction of KadOH
routing table implementation with minimal reformatting.


Reply to this email directly or view it on GitHubhttps://github.com//issues/18#issuecomment-30095014
.

"Si quieres viajar alrededor del mundo y ser invitado a hablar en un monton
de sitios diferentes, simplemente escribe un sistema operativo Unix."
– Linus Tordvals, creador del sistema operativo Linux

@feross

This comment has been minimized.

Copy link
Member

@feross feross commented Dec 9, 2013

@alexstrat - thanks for the note! I remember hearing about KadOH a year ago, but didn't investigate too deeply. I'm definitely going to take a closer look at what you've built and learn what I can that might help WebTorrent. It sounds like you broke new ground with KadOH, doing Kademlia in JS. Very cool!

Your routing table implementation (https://github.com/kadoh/routing-table) sounds like it might be really useful for webtorrent.

Let me know if there are any other pieces of KadOH that might make sense to incorporate or even use for inspiration.

@piranna

This comment has been minimized.

Copy link

@piranna piranna commented Dec 9, 2013

Just a question: KadOH is for looking (routing) peers, for addresing its
content (the files), or for both? At what level is it oriented, transport
or application? I know it's some kind a stupid question, but I'm not so
much into P2P on this details... :-/

Send from my Samsung Galaxy Note II
El 09/12/2013 01:45, "Feross Aboukhadijeh" notifications@github.com
escribió:

@alexstrat https://github.com/alexstrat - thanks for the note! I
remember hearing about KadOH a year ago, but didn't investigate too deeply.
I'm definitely going to take a closer look at what you've built and learn
what I can that might help WebTorrent. It sounds like you broke new ground
with KadOH, doing Kademlia in JS. Very cool!

Your routing table implementation (https://github.com/kadoh/routing-table)
sounds like it might be really useful for webtorrent.

Let me know if there are any other pieces of KadOH that might make sense
to incorporate or even use for inspiration.


Reply to this email directly or view it on GitHubhttps://github.com//issues/18#issuecomment-30098256
.

@alexstrat

This comment has been minimized.

Copy link
Author

@alexstrat alexstrat commented Dec 9, 2013

@piranna KadOH is not much than an implementation of Kademlia, a DHT (Distributed Hash Table) algorithm. From an external perspective, it provides a way to get and put key/value tuples distributively stored across participating peers.

One key element of the algorithm is indeed the routing (aka finding the right peer(s)): each peer stores contacts of some others in a bit-tree sorted table (that's our routing-table) and finding a peer resides in jumping from peer to peer by querying routing-tables of others thru FIND_NODE RPC (that's our iterative-lookups).

So, to answer your question, KadOH gives solution for looking (routing) peers, but not for addressing content of files. Once you find the peer that got your file (KadOH job), you can establish a P2P connection to transfer the file (ShareIt job)! :)

@feross feross closed this Jul 25, 2014
@lock lock bot locked as resolved and limited conversation to collaborators May 7, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
3 participants
You can’t perform that action at this time.