Open eklem opened 2 years ago
Stuff to figure out:
Seeding, creating, downloading
Trackers:
Reasons to use Webtorrent:
Drawbacks:
I guess the business plan will be geared more towards either public search engines or private for you only. Proof of concept will be private, running only in your (one) browser, and then it will be public if you want to sync it.
So, the development plan can be to first offer:
For the webtorrent part theese are inherently read-only. To fix this there are many small steps that can be taken:
Business plan:
Private torrents
Quick wins that will make you have the seed(?) hash to get to use a torrent. If the tracker is also behind login, it's a first low level security solution:
Possible real secure solution:
But if you want to check if user is allowed to access this torrent, you can maybe do as suggested in the second answer to this question:
I understood that I can use a private tracker and seed files privatly with these options. But is there any additional option on client side to hook in if someone requests one of my seeded files? This would make it possible to implement some security logic on the client, not on a centralized tracker, which could be untrustable from a client's perspective. In addition, you could authorize requests even with using dht.
There is an extention API for the Bittorrent protocol and a Metadata example extention.
How to intercept:
torrent.on('wire', function (wire) {
wire.use(myExtension())
})
Files seems to just be data, so both the ones that creates and seeds a torrent and the ones downloading are just keeping this in memory. How to make this persist?
Figuring this out will also maybe make the incremental backup possible to work. Where a new torrent download takes copies of existing files into memory so you don't have to download. But it will need to happen after initiating download and before actually downloading. Or maybe start, pause, copy and re-start.
Persist webtorrent in the browser: Done by SilentBot1 on this issue: Save a complete Torrent with its Files for later reuse!
Private torrents take
dht: false
private: true
So there will be no way of finding out which torrents are seeded, you need to know the hash for it. In addition, you need to know the key. This can be stored together with the hash at i.e. Auth0 together with .
This way it will be easier to create:
For number 2 and 3, we need to figure out how to make them available to others.
For super private stuff, you set up your own tracker or we can also offer access accept/deny on this level:
torrent.on('wire', function (wire) {
wire.use(myExtension())
})
Start figuring out webtorrent as a way to syncing data.