Clearnet peers Overpower and Dethrone I2P torrent peers in Mixed Mode settings
A copy of https://github.com/arvidn/libtorrent/issues/7812
What is the problem?
Whenever in a Mixed Mode torrent - if both the kind of peers are present they dethrone I2P peers.
Even though, I2P peers had more transfer speed than the Clearnet peers.
Once, dethroned, the I2P peers slowly fades away until their speed reaches to Zero.
After some time they get back up but do not recover proper speeds until the Clearnet peers goes away.
Image 1 = Clearnet peers enter and then not only slows down I2P peers but never lets them recover their speed until and unless Clearnet peers leaves the torrent swarm.
Image 2 = Slow I2P speed due to Clearnet peer
Steps to reproduce
- download cross-seeded torrent [public+i2p]
- uploading starts after completing download.
- I2P peers going about their transfer
- suddenly Clearnet peers enters
- slows down all i2p peers and gets into top spot
- i2p peers all go away,
- i2p peers again enter the torrent swarm but their speeds are significantly less than what was before.
- this state exists until the Clearnet peers goes away.
Ideally, What should happen?
Both I2P & Clearnet peers should be getting seeded/leeched at their topmost speed as possible - because both of them should work separately, as in how separate tunnels work
I2P speed goes into I2P torrent speed
Clearnet speed goes into Clearnet torrent speed.
This does not happen, instead Clearnet completely overpowers and dethrones I2P peers and after sometime when Clearnet peers is finished with their transfer the I2P peers rise back to their glory.
Additional context
libtorrent developer says it is the I2Pd daemon which does not push as hard as TCP torrent peers = https://github.com/arvidn/libtorrent/issues/7812#issuecomment-2613664367
I have repeatedly faced this issue when torrenting while using I2Pd and not with BiglyBT (which uses inbuilt JAVA I2P)
Please, check about this, especially daemon related issues as mentioned by libtorrent developer Thanks.
libtorrent developer says it is the I2Pd daemon which does not push as hard as TCP torrent peers
What is the total speed of your internet connection? For example, tested with speedtest.net.
Is it higher than total speed of clearnet + I2P peers? If speeds are about the same, then arvidn is probably right. If your average speed is much higher (which is the case I expect), then congestion control does not matter and problems are on libtorrent side.
What is the total speed of your internet connection? For example, tested with speedtest.net.
500 mbps symmetric
Is it higher than total speed of clearnet + I2P peers?
qBittorrent = Unlimited
I2Pd = XU
500 mbps symmetric
Does it mean ISP connection is almost unused (only few percents of capacity are used) when qBittorrent and I2Pd are active?
Does it mean connection is almost unused when qBittorrent and I2Pd are active?
Yes, qBittorrent does not use 100% of the speed all the times. Mixed Mode is my default setup.
Here is a torrent I am seeding via BiglyBT in another computer, posting here for comparison
If this had been qBittorrent + I2Pd setup then, I2P peer would have hardly crossed 10-20KBps until and unless that clearnet peer left the torrent swarm.
Yes, qBittorrent does not use 100% of the speed all the times.
What about other non-I2P/non-Torrent services? It is important to know if peers are forced to fight for resources (channel capacity). If you have non-Torrent download running at the same time when qBittorrent operates for example, it may explain such effect.
Here is a torrent I am seeding via BiglyBT in another computer, posting here for comparison
You are comparing the mix of torrent/i2p client functionality - i2pd+qBittorrent / javai2p+BiglyBT. It is hard to "unmix" effects in this case.
What about other non-I2P/non-Torrent services? It is important to know if peers are forced to fight for resources (channel capacity). If you have non-Torrent download running at the same time when qBittorrent operates for example, it may explain such effect.
No, not much usage outside torrents.
You are comparing the mix of torrent/i2p client functionality - i2pd+qBittorrent / javai2p+BiglyBT.
Yes, with regards to the image that I uploaded, I am comparing mixed mode of qBitttorrent + I2Pd setup versus BiglyBT [inbuilt I2P plugin].
BiglyBT has been quite consistent in mixed mode with not only the speeds but also, with "connection with peers" lasting longer in comparison to qBittorrent, with respect to, my issue that I raised.
To see if this issue really belongs to i2pd repository, you can try comparing qBittorrent + I2Pd versus qBittorrent + Java I2P.
To see if this issue really belongs to i2pd repository, you can try comparing qBitttorrent + I2Pd versus qBitttorrent + Java I2P.
Java I2P eats too much disk & RAM resources in my PC.
(i) Furthermore, if I have to use I2P Java then there is no need to use qBittorrent with it because I2PSnark comes inbuilt with it.
(ii) So, if I am letting my computer eat 200-350MB of RAM then letting inbuilt I2PSnark eat a 100-150MB more is not much of an issue. It is something I would bear with.
(iii) For your kind information, Java I2P's inbuilt I2PSnark has provided, quite reliable stability of connections.
So, my only concern & testing metric is using I2Pd + qBittorrent.
I have tried I2Pd + I2PSnark standalone for atleast a month before but I felt the stability of connections was not up to the mark,
[i] as torrents keep changing their places within themselves ---- so when a torrent reaches speed 150kbps +, then suddenly it goes down to zero and then new torrent takes its place with 120kbps and it goes on & on & on.
[ii] sometimes peers do not connect even when there are atleast 10 leechers present.
I checked this by having BiglyBT & qBittorrent+I2Pd setup seed the same torrent. [having torrent clients run as singular entity during testing as well as all 3 concurrently]
Here are some results of my testing with 40+ torrents, windows 10 up-to-date :
Java I2P eats too much disk & RAM resources in my PC.
I was asking about making tests, not about using it permanently.
If you will see the same "overpowering" problem with qBittorrent + Java I2P, it will mean problem is with libtorrent. If not, then problem is with i2pd.
Try to run torrent client and i2pd on different boxes and see.
If you will see the same "overpowering" problem with qBittorrent + Java I2P, it will mean problem is with libtorrent. If not, then problem is with i2pd.
Took your suggestion and ran the tests on everything latest and up to date.
qBittorrent = unlimited speed
Java I2P = 4000 KBps with 80% share
Java I2P 2.8.1 + qBittorrent certainly shows some improvement over I2Pd in both connection stability and speed but still Clearnet completely overpowers I2P peers.
Image 1
Image 2
So, I can now confirm that the problem lies with I2Pd only.
any update on this?
There is no problem on i2pd side.