Tribler / trustchain-superapp

Kotlin implementation of Trustchain and IPv8 with rich networking: multihoming of local Bluetooth+4G, decentral social networking, UDP hole punching, etc.
GNU General Public License v3.0
80 stars 63 forks source link

Fairness and freedom for artists: Towards a Robot Economy for the Music (Streaming) Industry #45

Closed Tim-W closed 3 years ago

Tim-W commented 4 years ago

(Placeholder issue for msc thesis)

Problem statement

(Musicians/artists/creators) receive low compensation for publishing their content. * [Typical cut of revenue:](https://www.theguardian.com/technology/2015/apr/03/how-much-musicians-make-spotify-itunes-youtube) (distributor: Spotify/iTunes/Google Play/...) Signed records: 25% distributor 55% label 20% artist Unsigned records: 40% distributor 60% artist * Smaller artists get low revenue, due to the "pro rata" model applied by e.g. Spotify. A [user-centric](https://www.rollingstone.com/music/music-features/should-spotify-change-the-way-it-pays-artists-763986/) model should be more fair (economics/business, less CS) * [The distributor could censor tracks](https://www.springfieldnewssun.com/entertainment/spotify-removes-kelly-music-from-playlists-under-new-hateful-content-policy/9NIgUD8qJBd2tAYmVhn5hK/) * [Platform lock-in](https://www.google.com/search?q=Google+Rules%3A+The+History+and+Future+of+Copyright+Under+the+Influence+of+Google) **Existing and upcoming solutions** Blockchain-based solutions exist for music streaming services. At least two start-ups attempted. * [OPUS Audio](https://opus.audio/) "Helps artist generate the revenue they deserve". It uses [IPFS](https://ipfs.io/) for distributed file storage, but actually uses a back-up off-chain database for performance purposes. Strategy for IPFS nodes: OPUS deploys **its own** nodes around the globe for low latency. OPUS uses Ethereum smart contracts. Using smart contracts, "[consumers] can rest assured almost 100% of the payments are delivered to the artists transparently, immutably and without intermediaries taking large chunks of revenue”. * [Musicoin project](https://musicoin.org/) encourages **independent artists** to register and publish their work on its own blockchain-based platform. Very interesting: consumers have a free service without ads, while artists get paid (in $MUSIC) Uses earn-per-play smart contracts based on preset fees each time a song gets played (for >s seconds). Consumers can also tip artists (micropayments). Uses mining in the form of bitcoin. * [Mycelia project](http://myceliaformusic.org/) is not a streaming service on its own but does provide "creative passport" technology: a digital container with authorization of work, acknowledgements, payment mechanisms and metadata. **Shortcomings of these solutions** * Musicoin pay-per-play system depends entirely on investors and the price of its non-stable currency. If its currency becomes [worthless](https://coinmarketcap.com/currencies/musicoin/) then the artists also receive low revenue. * OPUS deploys nodes itself and consumer pay a (small) fee for this infrastructure (different from Tribler/torrents) **The dream: a good decentralized streaming system** * A (torrent) streaming technology as fast as spotify, based on a p2p file sharing system (tribler? IPFS?). Challenge: seeders for content with small popularity. To think about: are bandwidth tokens enough incentive? * Proof of authorship on the blockchain Tribler/tribler#4144 * (Near) 100% of fees from consumers go directly to the artists they listen to. * Payouts with stablecoin (USDT/EURS) * Tipping system/micropayments * Effective sharing and recommendation systems **Completed reading list** * [How the blockchain is disrupting the art economy as we know it (2017)](https://www.forbes.com/sites/rogeraitken/2017/08/17/how-the-blockchain-is-disrupting-the-art-economy-as-we-know-it/#53c12c9f74fe) * de Vos, M., & Pouwelse, J. (2018). A Blockchain-based Micro-Economy of Bandwidth Tokens. CompSys 2018. * [Blockchain is changing how media and entertainment companies compete](https://sloanreview.mit.edu/article/blockchain-is-changing-how-media-and-entertainment-companies-compete/) * Zhang, B. (2018). Credit Mining: An Incentive and Boosting System in a Peer-to-Peer File-sharing Network.
synctext commented 4 years ago

The central research question within this thesis is can we automate the music industry as a robot economy? We envision an autonomous ecosystem with an integrated financial system, audio streaming platform, all middleman removed, and implemented with a zero-server architecture. Autonomy in the sense that it is owned by both nobody and everybody (self-governance). We successfully designed a novel zero-marginal cost industry, various prototypes, a fully operational ecosystem, and deployment to real Internet users. We introduce a novel Artist Income Division Algorithm (AIDA) which regulates all monetary flows within our fully robotic music industry. Our AIDA component determines income fairness and winner-takes-all dynamics. All money goes to artists within our robot economy, already gives 80% more income to artists.

AIDA is implemented based on validated artists playlists and monthly automated payouts with Bitcoin wallets.

ToDo:

Please do a weekly push of your code to Superapp!

Tim-W commented 4 years ago

I had a more in-depth code review of RemoteQueryCommunity and wrote around quarter of the functions so far. I feel that it will be difficult to have a full and bug-free implementation of this in Kotlin by next week. It is not a trivial engineering process and will require some integration testing and application testing. I'm a bit doubting if this is the best way to spend my time :thinking:

As an alternative idea I could try to run a headless, bare-minimum instance of Tribler on Android (this might be a bit crazy), and then do API calls to itself locally such as /search and /metadata. I can expect this will be costly in terms of APK size and threading on Android. The upside is that I can rely on the existing Python code and run into less bugs. Does this idea make any sense for browsing/searching channels? @ichorid

Another more simple idea is to interact with Trustchain more directly, by scraping, and store all content under a certain identifier (which is what I'm doing right now). Then content can be searched/filtered locally. This requires some more CC content, as we discussed before @synctext

one of our scientific developers to build a Creative Commons content library + seedbox

So tldr; I'm investigating and building code for the RemoteQueryCommunity but am also looking for other solutions

ichorid commented 4 years ago

@Tim-W , you don't really have to implement the complete functionality of the RemoteQuery Community. It is enough to only do two fixed types of queries: one for keyword search, another for subscribed channels list. Of course, this is only gonna be easy if there is already an implementation of ipv8 for Android. We can discuss the problems in-depth in Slack or in the office this Tuesday in person.

Tim-W commented 4 years ago

That's right, I'll try to filter out unnecessary functions.

Interesting: this article draws a relationship between blockchain and robot economy, in one (short) section:

Arduengo, Miguel, and Luis Sentis. "Robot Economy: Ready or Not, Here It Comes." arXiv preprint arXiv:1812.01755 (2018).

Tim-W commented 4 years ago

I filled a large part of the functionality of RemoteQueryCommunity, see the latest commits at https://github.com/Tim-W/kotlin-ipv8 . For now I decided to build a simple scraping mechanism on the side, which crawls content on the TrustChain from peers. Then the user can view content directly after connecting to some (perhaps bootstrap?) peers. And local search/filtering is easy to implement this way. The reason I'm building this (which should be only few days to build and test) is so we have something running that displays songs directly when opening the app; namely the one-click play from homepage which we discussed before.

For this work check my latest commit: https://github.com/Tim-W/trustchain-superapp/commit/36e9249c39ea808ddf33bd51c3c122f49f458c80

Tim-W commented 4 years ago

Progress: now able to do keyword search (simple search: it checks if the keyword is contained in either the title, artist or date). Also, the content is crawled from TrustChain, periodically in the background for now (for testing and simple prototype). So the app should display some content more quickly now on first launch, if it finds peers that have blocks with tag publish_release stored.

Commit: https://github.com/Tim-W/trustchain-superapp/commit/e4ca500b27a4f8043cd42609b0ad72f50063f96d

ezgif-searching-09-07-2020

app-debug-13-07-2020-trustchain-superapp.zip

Tim-W commented 4 years ago

In MusicCommunity, which is a community that inherits from TrustChainCommunity, I built a mechanic with "initial addresses". This is kind of like a list of bootstrap nodes (which can be expanded in the future), which are used to load some initial content from, on first launch. This should give new users a list of Playlists directly when they first run the app, as they connect with the initial address and crawl their MusicCommunityTrustChain.

app-15-07-2020.zip Latest report, see problem description

synctext commented 4 years ago

Focus only on economic motive and mention "market failure". Can you find financial breakdown of total music industry revenue, income portions, Apple/Google cut, and other stats for problem description? Money from Music: Survey Evidence on Musicians’ Revenue and Lessons About Copyright Incentives Music income statistics Old stats http://loas.creativepassport.net/breakdowns/uk-physical/

EDIT: Rising tides? Data capture, platform accumulation, and new monopolies in the digital music economy

Billy Bragg and other indie musicians blast YouTube rates https://www.rootsmusic.ca/2019/03/14/a-brief-history-of-why-artists-are-no-longer-making-a-living-making-music/ MP3s are killing home taping: The rise of Internet distribution and its challenge to the major label music monopoly Music Production in Times of Monopoly: The Example of Sweden "Which technology can correct the market failure and restore a reliable income stream to artists?" Related work: music passport screenshot by Imogen Heap?

Progress check: started part-time 17Feb, full-time 20April. Now in Corona time its 15 July. Status: Convergence on general thesis storyline, Problem Description had few iterations, getting final. Schedule: currently in week 13 of 45 ECTS thesis job. Safely on Track.

Determine final thesis focus in coming sprints; Artist Income Division Algorithm (AIDA) ? the music listening histories dataset For final thesis chapter: experiment on artist payout dataset, "good torrenting" and solid "Trustworthy Trustchain", subscription scalability figure, etc.

First draft of final thesis ToDo:

Tim-W commented 4 years ago

Draft version 3 of problem description: https://github.com/Tim-W/msc-thesis/blob/master/report.pdf

Based the red line of the problem around 4 pillars: gatekeeping, intermediaries taking large cut, monopsomy, recommendations and curatorial power. Found some articles about Spotify-curated playlists, which was an eye-opener for me. 99 out of top 100 popular playlists on Spotify are Spotify-curated and have large influence. Draws attention away from labels and towards Spotify-signed records in the future (just like Netflix is doing). Also part about human influence on top of 'black box recommendation machine learning' is interesting for my prototype: No artist knows why it is visible or invisible on some playlist, no one knows how to get promoted on playlists, no one knows how recommendations work (can be combined with distributed collaborative filtering story, as future work)

devos50 commented 4 years ago

Just did a quick read-through of the problem description. A few comments:

Tim-W commented 4 years ago

Thanks for the feedback @devos50 !

Make sure to give proper citations for the claims you make in the introduction sentences in Section 2.

This is an introduction that uses statements, which I afterwards backup using the sources in the paragraphs below it. Does that make sense? Good ideas for the research question, which indeed needs some thought and revision.

For the future experiments, demos and tests I would like to have a set-up with multiple (20+?) Android Virtual Devices and/or multiple physical Android devices. Do you, by any chance have an idea who could help me set up an environment with virtual Android devices in the cloud @synctext ?
Update 05/08 Today installed android studio and launch an Android Virtual Device on my DigitalOcean droplet, just to see if it works.. But I found out running an AVD on a remote server will require at least 4gb of RAM, and preferably more if we want multiple AVDs. That will be a quite costly experiment, so I guess experiments on cloud servers will be without Android. But rather, by scripting all interactions with TrustChain and jlibtorrent.

Superapp update I created various UI and UX improvements for the superapp MusicDAO. Such as: a button in action bar that shows up/down and other connectivity stats, showing loading info, improvements to layout. More detail can be seen in description of this PR: https://github.com/Tribler/trustchain-superapp/pull/46

Tim-W commented 3 years ago

@synctext Some questions about the next steps of this thesis: I was working on cryptocurrency integration for payment to artists. BTC wallet is already integrated in the superapp, as a light wallet. However I'm thinking about integrating something with a DAG (like NANO) for scalability and fast tx confirmation time for a demo. Does that make sense?

The issue I see with integrating this with our MusicDAO, is that these cryptos are still dependent on external servers (namely high throughput nodes), which makes it not truly autonomous, "phone-to-phone serverless". I don't think there exists a solution for this currently, so it should just be mentioned in future work?

How should the musicDAO decide which crypto node to use? I could run my own node and connect the superapp to it, but this moves towards a more centralized architecture. On the other hand I could connect the superapp to an external node, but then we rely on node uptime from an external party. The phone could try to run a full node by itself, but the memory, space and network requirements are too high for any Android phone.

So TLDR: 1. is it a good idea to work on crypto payments now? If so, how do we preserve the decentralized, autonomous nature of the MusicDAO?

synctext commented 3 years ago

please focus on Bitcoin, Trustchain and music (industry) DAO (in dApp form).

Bitcoin has existing fast confirm ability using server optionally. Would advise to first perfect the music (search) part of your app before switching to replacing operational Bitcoin libs. Other DAGs such as Nano introduce critical required servers, so 'fake tech' :-)

Tim-W commented 3 years ago

Integrated bitcoinJ library:

No real device-to-device bitcoin transactions tested yet, as BTC transaction fees are high, up for discussion tomorrow :P

Pull request: https://github.com/Tribler/trustchain-superapp/pull/47 APK can be downloaded at: https://github.com/Tribler/trustchain-superapp/actions/runs/222351824

synctext commented 3 years ago

Comments on thesis draft:

Tim-W commented 3 years ago

Progress toward Remote Keyword Search I implemented a simple, fully distributed algorithm which uses neighbour nodes to find content. Basically, it works as follows: Scenario: a user wants to find content with keyword "Creative Commons"

  1. User checks its own local database (downloaded trustchain blocks) to filter out content by this keyword
  2. If there are less than X results, ask neighbours (max N) to obtain it, by sending a "KeywordSearchMessage":
    query: "Creative Commons"
    ttl: 3
    origin: <my public key>
  3. When a peer receives a KeywordSearchMessage: check local database for results. If there are results: send results as trustchain blocks directly to original peer and terminate.
  4. If ttl > 0: Reduce ttl by 1, and forward message to own neighbours (max N). Otherwise terminate.

This is a simple (but effective?) algorithm for doing remote keyword search. I think it is a somewhat similar algorithm as used in remote_query_community.py, but simplified (no SQL). I implemented the code in Kotlin here: https://github.com/Tim-W/trustchain-superapp/commit/18ea0d1ae6833d00ffe23fa091d94a8165dd41b6

It requires testing & device-to-device experimentation. Is this a step in the right direction for search?

synctext commented 3 years ago

Good stuff! Please simplify and always ask 20 peers around you. Science: https://www.semanticscholar.org/paper/Improving-P2P-keyword-search-by-combining-.torrent-Zeilemaker/a020b8007cf2687997090655729e07b44a19066a/figure/11

synctext commented 3 years ago

ttl: 3 Actually, there is no need for Gnutella explosion of query traffic. Keep a local database and caching. 1 hop only!

Tim-W commented 3 years ago

Progress update - apk download below Searching.gif - also I changed the searching parameters to use the "20 peers, 1 hop" strategy.

Donation.gif - Please note that the donation is not yet a confirmed transaction after sending. On my remote server I have a simple miner script that mines 1 block every 10 seconds (so confirmation time is currently 1000 sec), to test transactions on my own testnet. I'll try to also make this lightweight server a seedbox to help with some content seeding.

trustchain-superapp-07-09-2020-apk.zip

synctext commented 3 years ago

Great progress!

Tim-W commented 3 years ago

Currently I am mostly working on implementation.tex (see recent updates to https://github.com/Tim-W/msc-thesis, report: https://github.com/Tim-W/msc-thesis/blob/master/report.pdf) Also I am aware that I am mixing some design in implementation, I will make a better division of the two once I have more content :)

synctext commented 3 years ago

Reading latest version (direct raw thesis .PDF)

Discussed "DAO", what is proposed in this thesis on the Organisation side? Brainstorm: all users contribute income for artists and get to vote, artists create content and get to vote also. Each Bitcoin either donated by a fan or received by an artist obtains proportional voting rights inside the DAO (or capped for abuse/central control purposes; voting threshold). ToDo left for thesis wrap-up (?December?):

  1. thesis report (solid progress, more high-level scientific writing; less engineering)
    • design: design choices!; architecture picture, superapp screenshot (or put this in Problem Description, state-of-the-art chapter) and design of (donation) screen
    • implementation: much more high level; libraries, code coverage table, and end-to-end quality assurance model (.PNG of crash report)
    • We identified the following open problems; we uncovered these as the key issue for achieving a magical uptake of one million users?
    • what do you seed and how much?
    • the perceived lack of control on spam uploading, authentication of content injection, impersonation of famous artists
  2. popularity community
  3. GigaChannels
  4. (optional) artist income algorithm

This sprint: Another writing cycle

Tim-W commented 3 years ago

report.pdf Changes to the report

Changes to the code

https://www.volkskrant.nl/mensen/bij-spotify-kon-dieuwertje-heuvelings-artiesten-maken-of-breken-ze-schreef-er-een-roman-over~b274536aa/#&gid=1&pid=1

synctext commented 3 years ago

Reviewed current thesis draft, making solid progress. All content is there, just present it at a higher abstraction level:

Scientific article of music industry architecture image

Tim-W commented 3 years ago

This week, mainly focused on making visualizations/models of current vs. desired situation in distributed vs. centralized music streaming services. Also added pseudocode for the remote keyword search function. See problem description & design. I tried to make the design chapter a bit more abstract/high-level (mainly the first sentences and titles of sections).

Now that I filled the report with more models, I need to introduce more explanations in text, that is the next focus.

See report.pdf

3 Short questions:

synctext commented 3 years ago

related work. Obviously this is false, as your MusicDAO work pre-dates LikeCoin: "As the world's first data registry specifically recording the internet's digital creative content, it stores ISCN metadata for every item published or shared within Liker Land or associated with the LikeCoin button.",

synctext commented 3 years ago

More flavor for the "problem Description" at a high abstraction: business-level:

Wixen raised the case in December 2017, claiming that the music-tech giant was hosting tens of thousands of songs
managed by Wixen on its streaming service without holding the proper copyright to them. It also said Spotify offered
“outrageous annual salaries to its executives” while skimping on artist payments.

Spotify Settles Its $1.6 Billion Publishing Lawsuit

The court papers accuse the streaming service of lacking the infrastructure needed to make sure songs are
licensed and musicians are paid.

Spotify sued over 'billions of Eminem streams' by BBC Bad IT in music biz, by Daan: https://www.copyrightdelta.com/media/CopyrightDelta-Presentation-CordaCon2020.mp4

Tim-W commented 3 years ago

Thank you! will look into it. There are a lot of different problems in the music industry right now, so I could go on forever in the problem description section.. So I will need to filter out until we have the most important!

https://github.com/Tim-W/msc-thesis/blob/master/report.pdf Work from last days:

synctext commented 3 years ago

Lastest .PDF download link: https://github.com/Tim-W/msc-thesis/raw/master/report.pdf

Fresh idea that I also had: Big Tech platforms (Youtube, Netflix Apply music, Spotify) are already the first wave of the robot economy ref. Feel free to include this within your thesis storyline.

synctext commented 3 years ago

The first robot economy

Apologies for giving conflicting advice yet again. April 6 comment about the "first robot economy" also has great potential as superior scientific storyline. Because you did not implement any AI, I incorrectly assumed it wasn't a valid storyline. image

Please consider adding more of AI storyline in for the final thesis writing sprint. No need to have any AI within the implementation: you worked on the cardinal first step towards an AI DAO; deployed in the wild with zero-server architecture for a zero-cost music industry. Compared to music labels and platform overhead (e.g. 90% of cost) you can sustain 800% to 1000% increase in artists living of their work.

Brainstorm, Chapter 3: Problem Description (leave the chapter as is, insert this up front and see how it goes) The central problem addressed within this thesis is exploring new architectures for the first "AI DAO" applied to a specific industry. A DAO is an autonomous organization with a decentralized governance, budgeting system and without traditional employees or managers. An "AI DAO" is the envisioned idea of a leaderless organisation with a decision making process controlled by AI. Our goal is to create the first AI DAO framework and deploy this in the wild to further evolve. We will focus on a viable framework itself within this thesis and leave the increase in intelligence and learning to future work. Theoretically it is possible to use an AI DAO to fully automated an entire industry.

For many decades AI scientists have failed to materialise in the wild the more basic concept of an "intelligent Agent". This is an "Autonomous entity that acts, directing its activity towards achieving goals, upon an environment using observation through sensors and consequent actuators. Intelligent agents may also learn or use knowledge to achieve their goals."

Much is still unknown within the young AI DAO field. We do not yet understand on how to achieve them or give them intelligence. Especially governance issues are still insurmountable, who owns them and who ultimately controls them? What even makes something autonomous in the first place?

This thesis acts as a first concrete step to increasing our understanding of AI DAO. By trying to engineer an AI DAO we will irrefutably identify the gap between theoretical speculations and running code. This empirical approach leads us to the selection problem of which business to automate with our AI DAO framework.

We now present an analysis of the music industry because we believe for four reasons this is the most fertile starting point for our AI DAO framework called "TimDAO". First, the music industry has an overhead percentage of 90%. Only 10% of the revenue stream goes to the producers of the core product: music artists. This means TimDAO could be fiercely competitive. Second, this industry is inherently digital. Digital music recording and digital music playback ensure that the entire industry, in theory, could be replaced by TimDAO. Third, due to anti-competitive practices such as price fixing this industry has lost the moral high ground. Fourth, the music industry value chain is mature and numerous components have already been digitised using open source libraries. We can re-use many building block to implement the TimDAO framework and realistically release it in the wild. {expand the above into 2 pages with existing fantasy blog posts and thoughtful ideas on AI DAO as inspiration} image

Tim-W commented 3 years ago

Thanks for the good resources.

Experiment ideas I started writing some drafts for graphs and experiments. Please check it here in chapter 6. My main idea is:

  1. give the app to 20+ devices, everyone installs and receives $10 fake dollars.
  2. run the experiment for 7+ days
  3. Every day, I increase the music catalog: start with ~50 songs, then add 50 every day.
  4. We measure the latency of buffering music, searching music, sending money.
  5. We measure the amount of money artist get.

Using these numbers, we can measure how large the catalog size can be in comparison to the network size. So, we can calculate the expected catalog size we have when we extend the network size to 1 million. Also, using the same calculations we can find out the expected income for artists per month, (and possibly even show that they get better paid then now!)

BTW, I feel like it would be the best to start with fixing code and preparing experiments sooner rather than earlier. So I can write my thesis report while the experiments are running.

Updated State of the Art (edit: 10 nov) Started on 2 new sections from the beginning: "DAO theory and technologies" and "AI DAO"

Updated problem description (edit: 3 nov) I added a little history and tried to build the 'story of the villain' (Big Tech) more slowly and more logically. Removed some details.

Updated design (edit: 10 nov) Added an explanation for a phone-to-phone censor-resilient network, and what kind of censorship-attacks there are, and how we defend against them (see section "Phone-to-phone censorship-free network"). Added short section "phone-to-phone connectivity:. Added short section "Zero-cost autonomous music industry".

Updated Implementation (edit: 11 nov) Added a new introduction to implementation, and moved the current introduction to a separate section "Android app". I tried to explain zero-server app infrastructure in general terms


*Brainstorm, Chapter 3: Problem Description (leave the chapter as is, insert this up front and see how it goes)* Keep Chapter 3 simple: economic literature on centralisation of power; Section 3.2 Alternative music industry initiatives (organisational!); Subsection "3.3 Decentralised technology alternatives" (Good Kind of Tech) with IPFS, DAO, Superapp matters.

Currently, Chapter 3 has title "State of the Art", but with the above comments it seems that it should include a Problem Description as well? economic literature on centralisation of power seems more logical to be in Problem Description (Chapter 2) to me. Then with Chapter 3 listing all current decentralized organizational structures (non-tech), then DAO applications/protocols outside of music industry (tech) and then DAO applications/protocols inside the music industry (tech). Does that make more sense?

Other stuff that is on my mind and I am unsure of: the title (edit: 4 nov) The robot economy also implies interaction with robots, but we rather show a peer-to-peer network than an artist/listener-to-robot network (except for robot miners)

Therefore for the title I would suggest "The first steps to a Robot Economy: ..." or "The first steps to a fair and automated music streaming industry" or "The first steps towards fair and transparent digital value chains: an implementation of the first robot economy"

I don't know if the current thesis date is still viable, if I want to fix these issues and incorporate a design for a DAO AI. But I'll try to add it

Tim-W commented 3 years ago

@synctext Could you check my email? For me the thesis date and formalities are very unclear now Recent news: here is the 30% Google cut again: https://blockchain.news/news/ethereums-vitalik-buterin-creating-app-store-after-google-demands-30-cut

synctext commented 3 years ago

Latest .PDF download of thesis, remarks:

Implementation section; repeat your related work, compare, and close the circle:

Features Operational Scalability No cut for Platform Fancy DAO, something, something
Spotify :heavy_check_mark: :heavy_check_mark: :red_circle: :red_circle:
OpenMusic :heavy_check_mark: :red_circle: :red_circle: :red_circle:
Other work1 :heavy_check_mark: :red_circle: :red_circle: :red_circle:
Other work2 :heavy_check_mark: :red_circle: :red_circle: :red_circle:
This Thesis :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Tim-W commented 3 years ago
  1. Created bitcoin faucet: every user that obtains a fresh wallet key, sends this key to my faucet server, and receives 10 fake dollars.
  2. Created an IPv8 message type for sending swarm health messages. Basically implemented most stuff of popularity_community.py (from Tribler) in Kotlin.
  3. Devices now keep track of swarm health of 5 popular torrents and 5 random torrents internally.
  4. Devices once every X seconds send a swarm health message to a random peer -> mostly done, need testing with few devices
  5. Album overview is sorted based on swarm health.
  6. Fix some bugs: Music keeps playing while browsing, syncing wallet blockchains, downloading/buffering progress bars

GIF of end-to-end popularitycommunity/swarm health messages

10 fake BTC on startup

TODO for Android currently:

  1. Crawling of music metadata on TrustChain over local network is very slow? I need to investigate and fix what the issue is.
  2. Fix various bugs with the recent functions.
  3. Test functions on ~5 devices (only done 2 devices so far)

Plans: work on the app until first week of December, see how far it is progressed for the conference. (news post?) Then perform release experiment, give the app in hands of users and measure what happens on the network. APK on Nov 26: app-debug.zip

synctext commented 3 years ago

MPs to investigate whether artists are paid fairly for streaming music Musicians Can and Should Organize to Improve Their Pay and Working Conditions More nice details and inspirational graph: image

ichorid commented 3 years ago

Tried to install the abovementioned app-debug.zip on my phone, the phone says "syntactic error while opening the packet". What am I doing wrong?

p.s. Feel free to delete this message if this is off-topic.

Tim-W commented 3 years ago

@ichorid Please try using this artifact https://github.com/Tribler/trustchain-superapp/suites/1636262534/artifacts/30239452 let me know if there are issues. Unpack the zip on your phone -> open the APK.

Just merged all latest functionalities (swarm health gossiping, faster content spreading) and bug fixes here: https://github.com/Tribler/trustchain-superapp/pull/48

Tim-W commented 3 years ago

Added cover art & new layout (nothing fancy, if the album is pre-downloaded it fetches the cover art from the phone cache, no fetching from other devices directly). "Royalty free background music" here are 2 different records on TrustChain, it's not a duplication bug from the app itself

Cover art & new layout

I'm currently in the progress of obtaining 100+ creative common albums and making torrents and wallets for the demo. Then they can be put on seed box.

Edit 12 dec: Sandip helped me set-up a server for seeding of torrents. I am now seeding all of this free Creative Commons music from frostwire: https://www.frostwire.com/featured-downloads (free downloads for personal use), (112 albums, around 30-50 Mbs per album). I'm now writing a script to put all this data into magnet links, extract metadata, create wallet identities and publish on TrustChain

Edit 14 december: now torrenting 2.5 GB of FrostWire and Jamendo creative commons music on the seedbox on TU Delft

Torrenting 60+ albums

Now the next step is to publish on TrustChain & generate wallets for each artist

Also installed the app on a friend of mine and working well after some last minute bug fixes. (network of my phone, virtual phone on PC and his phone)

synctext commented 3 years ago

MusicDAO is getting there. Please upload a new version to Play.Google for wider testing and bug feedback. Crawling trustchain will give you a scroll list of 2.5GByte of magnet links. Gossip of these magnet link by seedbox? Good thesis material and music discovery protocol design (20 unique demons, 20 UDP ports (same IPv4) running at seedbox). One album shared by all 20 peers, goes to the top of the page, should have incoming donations enabled...

In a broader 10-year vision, DAO is only a first milestone. Solid step towards a "Democratic Economy" in which people vote, contribute to the greater good and give reward to those who "do good".

.APK downloading link fails to work on Android

app (12).zip Content: http://bt.etree.org/index.php?sort=seeders

Tim-W commented 3 years ago

~app-14dec.zip~ @synctext Update: MusicDAO version from 14 dec is now available on Google Play: https://play.google.com/store/apps/details?id=nl.tudelft.trustchain From now on I'll deliver updates through the Open Testing on Google Play

devos50 commented 3 years ago

It seems that Spotify is supporting direct artist donations without taking a cut:

Schermafbeelding 2020-12-21 om 09 54 04
synctext commented 3 years ago

Play store version works! Donated 1BTC to a good free album. btw direct donation with Spotify still have PayPal as an intermediary taking a cut.

Tim-W commented 3 years ago

MusicDAO release 0.2 "Christmas release" Google Play store: https://play.google.com/store/apps/details?id=nl.tudelft.trustchain&gl=NL The app is ready for its release experiment. I will send a message over Slack to other 'colleagues' to download, install and run the MusicDAO.

I currently have 2 "seedbox" nodes running to get the music data started. There are a little over 100 albums published on TrustChain with torrents, with 3.9GB of music. I have 20 virtual IPv8 nodes running which are publishing this data, spread over 2 servers (10 nodes each). I also renamed "Ipv8 apps" to "TrustChain Superapp" for more consistent naming.

Latest new features and changes https://github.com/Tribler/trustchain-superapp/pull/50 :

GIF: Browsing and streaming music
GIF: Sending money to artists

Main challenges currently:

synctext commented 3 years ago
Tim-W commented 3 years ago

Finally, after getting some rid of some pesky bugs in the seedboxes, I'm creating the first graphs measuring performance. Lot of work in evaluation/measurement still to do

Also I am now able to 'control' a network of 6 real world Android devices, for doing experiments. (and for making demo videos for the thesis defence?)

synctext commented 3 years ago

That graph is good thesis stuff!

Tim-W commented 3 years ago

Last 2 weeks:

Still to do:

synctext commented 3 years ago
Tim-W commented 3 years ago

New graphs, that show the transaction success of our bitcoin blockchain environment.

(Cumulative) artist income vs. bitcoin block count
(Cumulative) transactions vs. bitcoin block count

Question: I'm wondering, what is a valuable visualization of artist donations for my thesis report? Currently we have these graphs with total transactions, throughput, block count etc. but we do not show any individual artists and what they receive. @synctext

Expected releases vs. simulations - versus network size

Last couple of days: did a few more experiments and created more graphs for latency, throughput of certain activities in MusicDAO. Mostly working on evaluation.tex now. (5+ pages as of 04/02/20201)

Update 05/02/2021 made some improvements to implementation and evaluation Update 06/02/2021 added keywords and empty sections for things I still want to (at least) write. There is a long section I can write as Future work. Where should this be placed? Evaluation or Conclusion, or as chapter inbetween? Update 10/02-2021 Updated title. Added several things to intro end evaluation, fig. 4.5, sections 1.4, 4.10, table 1.1. Updated conclusion with section titles. Update 11/02-2021 Add short sec. on transaction fees in Evaluation.

Thesis version can be found here (40 pages), direct link: https://github.com/Tim-W/msc-thesis/raw/master/report.pdf

Tim-W commented 3 years ago

Update 10/02/2021 created MusicDAO demo video Currently 1:27 minutes, could remove some stuff. It is not very professional, but it does show all its functionalities in quite a short time. Also, I'm working on a better render with higher FPS. Advice welcome, I am not a video editor :)

https://user-images.githubusercontent.com/4957928/107580497-edc26900-6bf6-11eb-8c82-2f83d6cdf704.mp4

Summary of updates to Thesis Report