tribler
tribler copied to clipboard
attack-resilient micro-economy for media
Three primary tasks for the whole Tribler research team:
- [ ] fully circular and self-sufficient token economy
Create a richer incentive then tit-for-tat within Bittorrent. Deploy the micro-economy around tokens which we have been perfecting since the first deployed version in September 2007. Scientific micro-economy publications, presented recently at the Delft Blockchain Launch event:
- [ ] Mining. Earn tokens by donating bandwidth. Credit mining effortlessly converts idle bandwidth into tokens. The mining boosts the health of the network. Underseeded swarms and popular swarms are identified and helped out. Dead swarms and spam are correctly dealt with. Users need to select a channel with content to boost. This signal from the user prevents spam. In a later stage we will auto-boost swarms in general.
- [x] Earn credits by relaying Tor-like encrypted traffic.
- [x] Get tokens for hidden seeding and being an exit node
- [ ] Market. Sell and buy on our integrated decentralised marketplace. Convert bandwidth tokens into Ethereum or Bitcoin. Your karma as a merchant grows with each successful trade. Part of our Internet-of-Trust research.
- [ ] Coin wallet. Move coins between a Tribler PC and Android devices. Offline storage inside Android smartphones. Transfer securely and effortlessly using simple QR codes without the need for Internet access. Focus on the "you can see it, you can spend it" security model.
- [ ] Tribler anonymous downloads are fast and secure
Donations of encrypted relays are essential for performance. We require the token economy to fix that. Currently our software is still a bottleneck. Only 2.5MByte/sec is unacceptable for our video streaming use-case. Currently our GCM cypto, tunnel latency or other bottleneck are slowing things down. #1882 #2548 Replace Dispersy tunnels with clean code of IPv8
- [x] Refactor the video-on-demand part of Tribler
- [x] Refactor the download core of Tribler. Libtorrent wrapper #3418
- [ ] search, share, rate and enhance
Vloggers, journalists, and creatives in general need to be able to use Tribler to share. The content within Tribler needs to become richer. Metadata needs to be perfect. Spam marking and voting needs to work. Relevance ranking and swarm popularity needs to be shown in search. Rich channels. We need to empower our community to sustain itself.
- [ ] spam prevention, voting and spam marking
- [ ] accurate swarm size estimations
- [ ] Fast search with relevance ranking based on swarm size
- [ ] rich metadata for channels
- [x] redesign of the AllChannel voting and channel pre-view mess. IPv8
Tribler is 14 years old in a few weeks. It's time to revisit the past and determine the future. The following mindmap shows the roadmap for the next 14 years of development and current accomplishments. Within the coming 12 months we aim to finish all open #1 issues around the token economy, anonymous downloading, and content crowd-sourcing. Long-term scientific focus is deploying our algorithm for creating trust and relentlessly improve it for another 14 years.
Anonymous downloads are now at least 5.5 MBytes per second. Historical milestone. Our Tor-level privacy is no longer CPU bound. We need to incentives people's willingness to contribute.
Long-term scientific focus is deploying our algorithm for creating trust and relentlessly improve it for another 14 years.
Medical-grade software reliability
We need to think about our software development methodology. As our software matures the coming years we need to facilitate both bleeding-edge science and medical-grade software reliability. A series of lab-meetings will determine our best approach. Coming 12 months we need to focus on 1) stability and 2) closing #1. Tokens are financial products and people expect that coins don't disappear magically out of their wallets. Our application in the digital identity space demands that our code base is nearly bug-free and "passport-grade". As a university we need to take the next step the coming decade: combine the strength of tamper-proof data structures with machine learning (first running code https://github.com/Tribler/distributed-ai-kernel). Honor students aim to create the first proof-of-principle code featuring distributed learning and disease detection on actual DNA using IPv8.
We have pioneered mechanisms of creating trust since April 2005, when the first Tribler code was written. Tribler is older then both Github and Bitcoin. We survived the end of P2P file sharing and today we are past "Peak-Hype" of blockchain. We need to discuss if it is possible to transition to "medical-grade" quality of software while preserving our ability for scientific innovations. Can we "freeze" the lower parts of our software stack in coming years? Can we engineer a trustworthy trust function? The EU has reserved 300 million Euro for their European Blockchain Services Infrastructure. Trustchain has been submitted as the foundational EBSI technology. Could Trustchain drive the European services economy?
Concrete impact might be that we apply best-practices from the commercial world. For instance, deterministic builds, move fast and don't break things, atomic commits, autonomic bug reporting tools, deployment monitoring, reproduce all defects, hard-enforced sprint deadlines, monolithic repo, and this Git commit checklist for each PR. Can we still do science then?
- [ ] The first line of commit message is less then 50 chars; clean, clear and easy to understand.
- [ ] The parent of the commit(s) in the PR is not older than 3 days.
- [ ] Pull request is sent from a non-master branch with a meaningful name.
- [ ] Separate unrelated changes into different commits.
- [ ] Use rebase to squash/fixup dummy/unnecessary commits into only one commit.
- [ ] Close corresponding issue in commit message
- [ ] Mention related issue(s), people in commit message, comment.
An even higher ambition level is formal verification of critical IPv8 communities/IPv8 modules and base classes.
We need to grown in significance and offer a polished alternative to Youtube. Like DuckDuckGo, ProtonMail, Brave, and Signal covered by BBC News. This will be a challenge. Polished products don't break. period.
Polished products don't break. period.
Discuss with team the cost and benefits of using the Continuous Delivery model. Will it accelerate the closing of this issue #1? Make release 7.5 stable and possibly switch. When we expand with upto 5 additional people by 1 Sep 2020 we require more structured work methodologies and weekly stand-up meeting or something. The CMU Software Engineering Institute features a lot of depth on this issue, we probably should try this out even before new people join us. Would put a dashboard #4999 and performance monitoring #1287 (open issue for 5 years) at the core of our development process. We now rely on manual performance testing for release readiness. This is not on par with mature software like VLC, Kodi, BiglyBT, and Libtorrent. Our current test score?
- [X] Do you use source control?
- [X] Can you make a build in one step?
- [X] Do you make daily builds?
- [X] Do you have a bug database?
- [ ] Do you fix bugs before writing new code?
- [ ] Do you have an up-to-date schedule?
- [ ] Do you have a spec?
- [ ] Do programmers have quiet working conditions?
- [ ] Do you use the best tools money can buy?
- [X] Do you have testers?
- [ ] Do new candidates write code during their interview?
- [ ] Do you do hallway usability testing?
Next step: find a volunteer :safety_vest: to write 1-page plan with details and decisions to make...
Usability of Tribler still is lacking. See our great ToDo list by user Grunwald:
- [ ] Problem the program starts very slowly. Plenty of time must to wait for the program to fully load. It stumbles on more serious operations and is very slow. When i added a new torrent they didn’t show up for a long time.
- [ ] There is no option on it to run the program at system startup which is very inconvenient. For similar programs, this is a default option.
- [ ] The anonymous mode with 1 hop does not working. The connection is constantly disconnected with the 2 PC. The anonymous mode with 3 hop using another torrent client to download the file uTorrent used it cannot be connected either.
- [ ] Using the client in a local network with normal non anonymous mode. Transferring a file a Windows 10 laptop to PC Tribler to Tribler using a router are failed. The two Tribler to Tribler programs cannot find each other
- [ ] Creating a torrent file from a large 10GB folder with many files are failed. And it’s not easy to put in either the torrent folder location. He wanted to download and not hashing the file.
- [ ] When i deleted the program ruined the files. He threw the 10GB torrents in the trash on which I worked for half a day. However, the program did not want to delete its own components properly. Could not start the program due to a bug after reinstallation. I had to look for what the installer had left because there caused something problem.
We developed many new insights during our continuing 15 year journey of creating a token economy for helping others. We continue the delicate balance between science, engineering and societal impact. Our "academic stature" was estimated to be low,improving in March 2019. We continue to document the lessons learned and shift in thinking in past 15 years. New milestone is our own workshop on distributed infrastructure of common good.
Closing all #1 main issues is getting closer. We make this work future-proof by creating a specialised dedicated scientific community around our line of work. This also means slowing down as individuals and building a larger community which collectively is stronger.
To re-visit the medical-grade software reliability issue, our lab ambition is to build strong infrastructural foundations: self-sovereign identity, secure communication, data dissemination, strong privacy, trust, money and markets. Directly usable, stable, documented, behaves as expected, and can easily build higher services on top.
The lab is expanding significantly, 4 new people :sparkles: :fire: :sparkles: As starting point for detailed discussions, rough breakdown of work for remainder of 2020.
Person | Task |
---|---|
@xoriole | mining community manager, badges of honour, release management |
@drew2a | Devops, code quality, deployment testing, and bandwidth tokens |
@qstokkink | overlay and first line of defence against fake accounts: latency diversity |
@devos50 | freerider prevention, token economy |
@alexander-stannat | deceptively simple trust model |
@cuileri | reputation and trust algorithm |
@grimadas | freerider prevention, community contribution accounting and anti-fraud police |
@ichorid | search, content discovery, metadata and adversarial information retrieval |
@kozlovsky | master of database matters |
@egbertbouman | single-person Decentralised Tor Team |
The most important property of the economy is the ability to have different prices for different torrents. The seller (seeder) should be able to state his price for each of his torrents, individually. The buyer (leecher) is then able to compare the prices from different sellers and get the best combination for his request. The network then becomes literally the information exchange.
Having different prices is a prerequisite for profitable credit mining. The mining algorithm will be able to compare and predict prices for the info to seed. The network will always balance at the point of profitability, with really low margins. This will promote long-term participation (investment/seeding).
Popularity info is just a means to an end of the objective and up-to-date view into the supply-demand of information.
Price differentiation also solves the "negative balance" problem: if someone got no balance, they can only expect to be served by people who are willing to share their stuff for free as a kind of "community service". This is akin to the gas price in Ethereum: the more you are willing to pay for the service, the faster the download is for you. Willing to pay more enables more seeders.
However, this will disincentivize free torrent sharing in general. One way to solve this problem is to pay "residuals" back from each block transfer. Essentially, the result is the original seeder "recruiting" newbies for cheap work of spreading the stuff. This will require storing the whole history of sharing for each block in each torrent, and people generally controlling others for cheating. In turn, this could make the whole protocol unbearably slow.
Price differentiation is not something we need I think (just like bulk stuff, grain and copper). Keep it simple. But, Sandeep is in charge of the design of that part now.
1 million user engineering strategy: each part of Tribler should be good enough to support this huge community (but not perfect yet!).
Release priorities:
- November - Popularity community
-
December - channels work
- progress bar and instant-GUI feedback
- IO is less agressive, no blocking/locking of entire computer
- instant-random sample content in non-subscribed channels
- January - keyword search with relevance ranking and popularity weight
- February - ToDo.
-
March and beyond:
- Channel Thumbnails
- Markdown-based description for channels
- Markdown-based description for homepages of users and "follow user"
- Markdown hypertext with picture embedding and pointers
- Real-time updates of Tribler front-page
- content rating, quality voting (truthfulness, deceptive, CamQuality, True 4k, Italian subtitles, etc)
- Add more concrete steps for our ultimate goal: "global democratic layer for media"
- Strategy: core competence is scalability and trustworthy content; not social interaction and lively discussion
Person | Task |
---|---|
@xoriole | popularity community, mining community manager, badges of honour |
@drew2a | Devops, code quality, deployment testing, and "user acceptance test" |
@qstokkink | IPv8 2.0, IPv6 support, latency diversity |
@devos50 | freerider prevention, token economy, BAMI |
@grimadas | BAMI; freerider prevention, community contribution accounting and anti-fraud police |
@cuileri | reputation and trust algorithm |
@ichorid | search, content discovery, metadata and adversarial information retrieval |
@kozlovsky | master of database matters; social side of Tribler |
@egbertbouman | 2020: single-person Decentralised Tor Team; 2021: channels final polish? |
1 million user engineering strategy: each part of Tribler should be good enough to support this huge community (but not perfect yet!). Customer journey as the basis of our development roadmap.
- User installs Tribler
- first startup
- sees the first channels appear, filling screen quickly
- clicks on a channel (trigger pre-view)
- subscribes to a channel.
- sees entire channels become visible
- does a keyword search
- relevant search results appear
- select a file for (Tor-like) download
- Downloading...
Roadmap for coming 5 years. (ongoing drafting)
We aim to overcome the tragedy of the commons, quite ambitious. Our roadmap below has the 4 pillar: money, trust, code and data. This roadmap incrementally works towards a global commons to manage the digital domain. It is meticulously designed to provide self-governance, financial sustainability, and existential financial freedom. Each year we move up and deploy more blocks to our users. The money pillar is the most scientifically challenging. We aim to create the first DAO with pure horizontal governance. Our work essentially represents a closed micro-economy with no critical dependency (share nothing architecture). The first sovereign international organisation with democratic governance. For effective self-governance we expect to encounter digital identity (#2682) and online voting problems (#5986). This needs to be addressed, but much is still unknown.
Our challenge is: creating trustworthy IPv8 plugins, bootstrapping a collaborative ecosystem, scale to 1000+ engineers, CV of anonymous code contributors, and Bitcoin payments for new code plugins.
If we manage to realise this self-governing DAO we could target broader ambitions post-2026, expanding into hardware and crowdsourcing with numerous engineers on the software. Long-term scientific challenge for humanity is creating robots which can assemble themselves. Thus robots which can do 3D printing, assemble parts, and add Raspberry-pi type of boards. Science fiction scenario around asteroid mining is covering the whole "ore-to-arm" spectrum from ore mining to robot arm printing, creating self-evolving robots. My target after 2026 is to transition our DAO to a hardware platform. Goal is to have an open source robot which can walk, see, own money and conduct economic activity. This team or others here, Github: https://github.com/J-DIndustries/openDog-V2.1 It should form an IPv8 mesh network with others, IPv8 live code updates, and have our self-organising federated learning #5221.
The 20 years dream roadmap
Milestone | description |
---|---|
Plutus | Operational DAO for investments in autonomous robotic technology |
Peitho | Strong self-sovereign identity for democratic decision making within our DAO |
Themis | First DAO income is divided fairly amongst participants |
Coeus | DAO pays first bounty for Robot technology which is shared freely. <IMG src=https://user-images.githubusercontent.com/325224/154214001-893551e5-54e5-445f-b93a-c2fa2497aa4f.png width=150> |
Nomos | Self-sustaining robot technology development using Bitcoin DAO funding <IMG src=https://user-images.githubusercontent.com/325224/154214508-2add78a3-a590-4e0c-9597-527dc6be9ea6.png width=150> |
Juno | Nevada Mars Simulator Mile - legal establishment of a test site for robots to autonomously roam around (photo credits) !![]() |
Mercurius | first robot walk at test site <IMG src=https://user-images.githubusercontent.com/325224/154044549-dacade6b-4d6a-42c5-870e-461094aa7fb8.png width=150> |
Daedalus | robots find and locate an iron deposit in Nevada simulator |
Helios | First melt using concentrated sun beams |
Hephaestus | Create robot parts with melting of Moon regolith simulant in Nevada |
t.b.d. | launch it! |
Concrete roadmap for 2023, instead of a 20-year dream as posted above.
Priority level | item |
---|---|
1 | Stability |
2 | Search |
2.1 | 100 ms for first result (with refresh later) |
2.2 | tags. Ontology-free crowdsourced metatada |
2.3 | Perfect metadata |
2.4 | popularity community. For high-quality relevance ranking |
3 | BONUS: make tags the only method for content discovery |
2024 (First long-enduring DAO):
Priority level | item |
---|---|
1 | Bitcoin wallet |
2 | Direct artist donations and reward seeders |
3 | Earn Bitcoin with Bittorrent. Credit mining: donate bandwidth to swarm, 5 TByte seeding ability |
4 | improve upload and download performance |
Roadmap for coming 5 years. (ongoing drafting) The primitives are still democracy, autonomy, money, trust and global brain. Feb2023 update: full focus on search engine + youtube/Tiktok. Remains on Python, only master students are doing a best-effort mobile-first implementation of our prototocols. Kotlin compatible Android re-implementation would have less features, but enable camera recording plus sharing. Thumbnails, plugins, channel PRs etc are dropped.
@synctext This may help from a security and privacy point of view. https://github.com/rule110-io/surge
thnx @hbednar ! That is an interesting project, feels like Freenet (1999) all over again. Freenet also uses hop-by-hop forwarding architecture. Then you need a anti-freeriding, resource usage, reputation function or central user moderation server.