Tribler 7.2.0-exp1 is out. Please try out this experimental release

Dear Tribler Community,

For the last several months we were working on a modern re-implementation of Tribler’s Channels feature. We called it the GigaChannel because we designed it to be able to host channels of up to 1 000 000 000 torrents in size.

In this forum post, we present an experimental Tribler release featuring the core component of the GigaChannel subsystem, the new MetadataStore. This release marks the first step on the way of removing our legacy components, which is essential to moving Tribler development forward.

As usual, if you encounter any problems, or have some ideas on improving Tribler please create a new issue on GitHub or post it on the forum. If the issue is related to the new GigaChannels feature, please post it in this thread.

DISCLAIMER: Please, note that this release is entirely experimental, so don’t forget to backup your Tribler profile folder before trying it out!

Download links:
Windows (64-bit)
Windows (32-bit)
Linux
MacOS

Technical details on GigaChannel
Torrents as channels
The GigaChannel uses torrents to share channel data. Your channel data is stored in two places: once in an SQLite database indexed for fast searching, and once in a binary form on disk, seeded as a torrent. The torrent name is derived from the public key of the author of the channel. All the data managed by GigaChannel is cryptographically signed by the channel’s author’s private key, meaning its impossible to “fake” the release or update of a channel.
For this release, we decided to leave these channel torrents in the main torrents list so that experienced users could see their channel’s stats. In the future, channel torrents will be moved to a separate tab in “Debug” window.

Manually sharing you channel
The next experimental release will feature a peer-to-peer protocol for automatically sharing information about popular channels, similar to the old Channels Discover feature. For this release, if a user wants to share his or her GigaChannel with a friend, they must export the “signed metadata link” file (.mdblob) pointing to their channel and send it to their peer by some other means (email or messenger).

Channel updates are grouped
Before, when you added a new torrent to your channel, it would become immediately published as soon as you add it. In GigaChannel, you first add, delete, or edit torrents in your channel, and then push the “Apply changes” button. As soon as you do, the new channel torrent is created and seeded in Tribler. Then you can export new “.mdblob” (see above), and share the update. In the future, information about channel updates will be spread through the network automatically.

GigaChannel How-to
To create your first GigaChannel, you first have to enable it by clicking “Enable Channel 2.0 editing” checkbox in the Settings menu and “Save” the settings.

Next, click on “My channel” tab in the main Tribler menu and proceed to add torrents to your channel as usual. Note that you can add multiple torrents to your channel by selecting “Import torrent(s) from dir” option When you finish, you must push the “Apply changes” button to publish your channel. Published torrent entries have the “Committed” status. “Uncommitted” means that the torrent was added to your channel, but has not been committed yet. “To delete” status means that this torrent will be deleted from your channel when you apply the changes. If you have at least one “Uncommitted” or “To delete” torrent in your channel, the “Apply changes” button appears at the top of the list.

From the moment you press “Apply changes,” a special torrent with a long alphanumeric name appears in the Downloads menu. This torrent is your channel, in torrent form. Note that when you update your channel, old versions of the corresponding torrent are not removed automatically from the Downloads list. Keeping them is a special feature that allows you to seed even the older versions of your channel, to serve those peers who only have access to old versions of your ‘.mdblob.’ Don’t worry! These additional torrents would not cost you any extra disk space. In the future, a specific algorithm will be there to"garbage collect" these. Again, these torrents will be hidden in the future releases and will not clutter your Downloads list.

To share your channel with others, you have to export its torrent in the form of cryptographically signed “.mdblob” file. Click on My channel, then click on the new “Export channel” button there, and save the “.mdblob” file representing the link to your channel by any name you want. You can send this file to your friends who are using this experimental version of Tribler so that they could see your channel.

If someone sent you an “.mdblob” file, you can open it with Tribler by pressing big “+” button, as if you would do when downloading a regular torrent, but clicking the new “Import Tribler metadata from file” instead.
import
As soon as you do, the channel download is added to the Downloads list. If the shared channel has at least one seeder, it will be downloaded to your Tribler instance, and you will see it listed at the Subscriptions list. If the download went right, you’d be able to look at its contents as usual. Please, note that general torrent rules apply to downloading/seeding channel torrents: if there is a meager number of seeds, it could take some time for Tribler to find them through DHT. And if you are seeding are behind a NAT, using “anonymous seeding” option could be your best chance to seed your channel.

Well, that’s all about this experimental release! We hope you’ll have some fun with it!

p.s.
The real purpose of the release is to get your feedback on this. So, any thoughts, bug reports, etc. are appreciated.

spining wheels…

INFO 1541619022.18 single_application:23 (root) init()
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to ‘/tmp/runtime-root’
INFO 1541619022.19 single_application:49 (root) self._outSocket.error() = ‘0’
INFO 1541619022.19 single_application:52 (root) received QLocalSocket.ConnectionRefusedError; removing server.
INFO 1541619022.19 single_application:64 (root) close()
INFO 1541619022.19 single_application:71 (root) close(): returning
INFO 1541619022.19 single_application:60 (root) init(): returning
INFO 1541619023.19 event_request_manager:148 (TriblerGUI) Will connect to events endpoint
INFO 1541619023.22 event_request_manager:52 (TriblerGUI) Got Tribler core error: 1
Traceback (most recent call last):
File “run_tribler.py”, line 86, in
start_tribler_core(base_path, api_port)
File “run_tribler.py”, line 45, in start_tribler_core
from Tribler.Core.Session import Session
File “/usr/share/tribler/Tribler/Core/Session.py”, line 20, in
from Tribler.Core.APIImplementation.LaunchManyCore import TriblerLaunchMany
File “/usr/share/tribler/Tribler/Core/APIImplementation/LaunchManyCore.py”, line 16, in
from pony.orm import db_session
ImportError: No module named pony.orm
INFO 1541620691.65 run_tribler:128 (root) Shutting down Tribler

@cisf It seems our newer dependency module ‘pony’ is missing.
Could you try installing it and running Tribler again?

pip install pony

yep, that was it ! thx

1 Like

I just encountered the following error:

Traceback (most recent call last):
File "TriblerGUI\event_request_manager.py", line 130, in on_read_data
RuntimeError: [Failure instance: Traceback: <class 'plyvel._plyvel.IOError'>: IO error: C:\Users\<user>\AppData\Roaming\.Tribler\collected_torrents\181452.ldb: Could not create random access file.
lib\site-packages\twisted\internet\base.py:1243:run
lib\site-packages\twisted\internet\base.py:1252:mainLoop
lib\site-packages\twisted\internet\base.py:878:runUntilCurrent
lib\site-packages\twisted\internet\task.py:239:__call__
--- <exception caught here> ---
lib\site-packages\twisted\internet\defer.py:150:maybeDeferred
Tribler\Core\leveldbstore.py:141:flush
Tribler\Core\plyveladapter.py:25:Write
plyvel\_plyvel.pyx:599:plyvel._plyvel.WriteBatch.write (plyvel/_plyvel.cpp:9519) 
plyvel\_plyvel.pyx:80:plyvel._plyvel.raise_for_status (plyvel/_plyvel.cpp:1689)
]

I’m using the Windows x64 version.

@LesVerres Does it happen randomly? I have seen a few of these errors in error reporter but not sure how to reproduce the issue.

This happened randomly for as far as I can tell.

Is it recurrent? Does Tribler still work next time you start?

It seems to work fine after I restarted it. This was the first time I encountered this issue.

We have a few plyvel fixes for the upcoming release!