power2all / torrust-actix Goto Github PK
View Code? Open in Web Editor NEWA multi-functional lightweight BitTorrent Tracker
License: MIT License
A multi-functional lightweight BitTorrent Tracker
License: MIT License
Adding to the config file also the database structure.
This way you can customize it to your own wishes and platform.
Make a docker image out of this.
Any way to create api like this from tracker which give file info example:
https://tracker-info.mirrorbay.org/scrape/D71A9D5708A2F1D1F658492189F7F18D5E1FB6AB?fetchData=true
give info in json like:
{"announce":["udp://tracker.opentrackr.org:1337/announce"],"infoHash":"d71a9d5708a2f1d1f658492189f7f18d5e1fb6ab","complete":54,"downloaded":450,"incomplete":28,"name":"Blue.Beetle.2023.1080p.WEBRip.x265-KONTRAST","magnetURI":"magnet:?xt=urn:btih:d71a9d5708a2f1d1f658492189f7f18d5e1fb6ab&dn=Blue.Beetle.2023.1080p.WEBRip.x265-KONTRAST&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce","files":[{"name":"2_eng.srt","size":5337,"path":"Blue.Beetle.2023.1080p.WEBRip.x265-KONTRAST/Subs/2_eng.srt"},{"name":"3_eng.srt","size":155365,"path":"Blue.Beetle.2023.1080p.WEBRip.x265-KONTRAST/Subs/3_eng.srt"},{"name":"Blue.Beetle.2023.1080p.WEBRip.x265-KONTRAST.mp4","size":2508444746,"path":"Blue.Beetle.2023.1080p.WEBRip.x265-KONTRAST/Blue.Beetle.2023.1080p.WEBRip.x265-KONTRAST.mp4"},{"name":"Encoded by KONTRAST.txt","size":1432,"path":"Blue.Beetle.2023.1080p.WEBRip.x265-KONTRAST/Encoded by KONTRAST.txt"},{"name":"[TGx]Downloaded from torrentgalaxy.to .txt","size":715,"path":"Blue.Beetle.2023.1080p.WEBRip.x265-KONTRAST/[TGx]Downloaded from torrentgalaxy.to .txt"}]}
I noticed a high memory usage after a while, and this is because the BTreeMap get fragmented after a while.
Going to work on a custom block system for the BTreeMap, so that I can make a thread that will clean up the fragmentation every often, without locking up the system too much.
A proof of concept will be worked on for version 3.1.2
Adding also SSL for the API
Using some crates which help improving memory usage.
Noticed most of the memory leakage, comes from the pushing of data to SQL for persistency.
Also, some other improvements could be done with the btreemaps, using 3rd party crates.
Is there a way to allow for a single peer to use both IPv4 and IPv6 so that other clients don't get alienated and can always find peers?
I've created two separate subdomains tracker.****
and tracker6.****
, the first only has a A DNS entry, while the last one only has an AAAA entry, to see if splitting the DNS query would lead to it accepting the broadcast on both IPv4 and IPv6.
Accessing the API made me find only my IPv6 address, which means I wouldn't be able to seed to users with only IPv4 support, even though I added both tracker subdomains in the torrent.
Going to write a test for the functions eventually, but also to see if the code compiles in various platforms. This is to make sure my code functions in the most useful places.
A simple module that will allow a torrent announcement to have a extra variable, that can be linked with a user account. We will then "track" the user it's uploaded and downloaded traffic.
I have noticed performance problems with RwLock in the longer run.
After debating, I'm going to switch to Crossbeam Channel, as this does block (aka, "lock") the variable through a bounded channel, so that each variable being maintained by a rwlock, have their own channel without interfering with each other.
This is a huge rewrite of the implementation, and will take some work and testing.
When i tried connect the api to php with cURL i have this response "SSL Certificate problem: unable to get local issuer", and in the browser all work fine, the response is like the example of the project page.
Hello Power2All,
I found the tracker www.gbitt.info support both ipv4 and ipv6.
But I can only make it supports ipv4 or ipv6.
Can you tell me how to configure to make it works with both ipv4 and ipv6?
Thanks
As the title says.
Will be removing the build-in interface.
Needs a rewrite anyway, to be properly used.
Will probably become a separate project on it's own.
As the title states :)
Just some simple code is needed, to be able to switch from MySQL, SQLite3 or PostgreSQL to any of the other engines, while keeping the data preserved.
I'm trying to understand how it works. I have persistence, whitelist, keys and users set to true.
I've added a hash to whitelist, tried to announce to the tracker, to make it work I have to add a key through the api and then says working and it adds a record in the torrents table, yet nothing is persisted in the keys table.
I tried to add a used through the API, says "OK", but also not persisted in the DB.
Can someone help me understand how it works? How to persist users. Now after I add a key and use it, if I stop the client, the key is lost.
Any way we can use postgres and assign a table to write to, and it will write fields like seeders, leechers, completed in it according to info hash
Had a big discussion with friends on vacation.
Eventually, I will rewrite a huge chunk of the code, and splitting up things for easier maintainability.
Hopefully I can also clean up bad code chunks to improve the system, and adding commentary in the code.
This needs to be done, but I need time to work on this.
Needs to be implemented for a new minor version update.
As title says, adding a security token to the API
I noticed UDP IPv4 is not working as expected.
Probably found the typo, but will be testing first before I release a 3.1.1, also trying to fix the duplicate code to improve readability.
Working out the first iteration of a plugin system.
A new 'plugin' folder will be available, where you could put in your own 3rd party code for the tracker.
More documentation will be written how this could be used for your preferences, and would be helpful for trackers used with private sites and such.
Currently we are in the process of implementing WebTorrent support to Torrust-Actix.
This implementation will be made for version 3.2.2.
As title says.
Need to divide up the torrents metadata and the peer data in their own separate btreemap.
This would increase the scanning of dead peers, since torrents that are not "alive" with peers, will not need to be scanned anyway, but only retain their completed downloaded number.
For version v3.1.1 I will be doing some refactoring of code.
Lot's of duplicate blocks need to be solved into their own little functions, but I was lazy with writing so I noticed :)
The configuration files are not in YAML format as the readme say. I think it's TOML.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.