Museria - decentralizált zenetároló

Museria - decentralizált zenetároló

Egyik nap elhatároztam, hogy írok egy alkalmazást, hogy kiválaszthassak magamnak zenét és meghallgathassam otthon/utcán/edzéseken stb. És hogy mindez áramlásban, minimális részvétellel működjön. Kidolgoztam egy architektúrát, felvázoltam egy prototípust, és végül belefutottam egy „kis problémába”.

És nem világos, honnan lehet beszerezni magukat a dalfájlokat. Ekkorra a VKontakte már bezárta az apit, a nagy zenei portálokon is minden le volt némítva, még a dalokat is darabonként adták ki, hogy ne elemezze őket. Csupán néhány egyedi, átrepülő oldal maradt, rengeteg reklámmal és mindenféle szeméttel, mindenféle kétes grabber programokkal és egyéb „piszkos” lehetőségekkel. Általában egyetlen igazán jó megoldás sincs. Természetesen vásárolhat előfizetést néhány Yandex zenére vagy hasonlóra. De ismét nincs nyílt nyilvános API sehol, és nem fér hozzá programozottan a zenéhez. Számos nagyvállalat alapvetően korlátozta mások hozzáférését a zenéhez. Miért történt ez egyáltalán? Mélyebbre ásva világossá vált, hogy a fő probléma a szerzői jog. A jelenlegi, előfizetéses megoldás sok kereskedelmi zeneszerzőnek és ugyanezen cégeknek megfelel. Ugyanakkor a nem kereskedelmi és félig kereskedelmi célú zenék is az általános listába tartoznak. Vagy fizetsz mindenért, vagy nem hallgatsz semmit.

És azon kezdtem gondolkodni, hogy mit kezdjek ezzel az egésszel. Hogyan szervezhetjük meg a zene ingyenes terjesztését? Mit tennék, ha én magam alkotnék zenét, és pénzt szeretnék vele keresni? Szeretném, ha kalózok lennének a dalaim? Egyébként milyen alternatív megoldás létezik?

Ennek eredményeként két fő probléma van, amelyet meg kell oldani:

  • Zene ingyenes terjesztésének megszervezése a legtöbb ember számára kényelmes módszerekkel, beleértve a szoftvereket is.
  • Alternatív lehetőségeket kínál a zenei alkotóknak, hogy pénzt kereshessenek

Globális decentralizált zenetárhely

Kezdetben próbáltam meglévő megoldásokat keresni, és ez alapján alkotni mindent. Némi keresgélés után az első megtetszett ipfs. Elkezdtem megvalósítani az ötletemet, de egy idő után több kritikus problémát is felfedeztem ebben a megoldásban:

  • Ipfs - tárhely mindennek és mindenkinek. Vannak képek, zene, videók és minden, amit csak akarsz. Általában egy ilyen nagy planetáris „porkuka”. Ezért, amikor elindítja a csomópontot, azonnal hatalmas terhelést kap. Az autó csak vonaglik a fájdalomtól.
  • Valamiféle befejezetlen „szemétgyűjtő mechanizmus”. Nem tudom most hogy van, de abban a pillanatban, ha azt írtad a konfigba, hogy tíz gigabájt adatra akarod korlátozni a tárhelyet, akkor az nem jelentett semmit. A tárhely sok konfigurációs paraméter figyelmen kívül hagyásával nőtt. Ennek eredményeként hatalmas merevlemez-tartalékra volt szükség, amíg az ipfs rájött, hogyan kell visszaállítani a szükségtelent.
  • A könyvtár használatának időpontjában (nem tudom, most hogy van) az ügyfélnél nem volt végrehajtva az időkorlát. Kérelmet küld egy fájl fogadására, és ha nem létezik, akkor egyszerűen lefagy. Természetesen az emberek mindenféle megoldást találtak ki, amelyek részben megoldották a problémát, de ezek mankók voltak. Ezeknek a dolgoknak ki kell jönniük a dobozból.

Még mindig sok kisebb probléma volt, és egyértelmű volt a benyomás: ez nem használható fel a projektre. Továbbra is keresgéltem egy raktárhelyet, kutattam a különböző lehetőségeket, de nem találtam megfelelőt.

Végül úgy döntöttem, hogy megéri magamnak decentralizált tárolót írni. Még ha nem is úgy tesz, mintha bolygóközi lenne, megold egy konkrét problémát.

És így is lett kenhető, tárház, metastocle, museria, musicia-global.

kenhető - ez a fő, legalacsonyabb réteg, amely lehetővé teszi a csomópontok hálózatba való kombinálását. Tartalmaz egy algoritmust, amit eddig mintegy 10000 XNUMX szerver alapján részben implementáltam. Az algoritmus teljes verzióját sokkal nehezebb megvalósítani, és több további hónapra (talán többre) is szükség lenne.

Ebben a cikkben nem írom le részletesen a kenhetőt, jobb, ha egyszer külön írunk. Itt csak néhány jellemzőt emelnék ki:

  • http/https-en keresztül működik.
  • Egy adott feladathoz külön hálózatot hozhat létre, ami jelentősen csökkenti az egyes projektek terhelését, mintha mindegyik ugyanazon a hálózaton lenne.
  • Kezdetben kigondoltak egy mechanizmust az időkorlátokkal és egyéb apróságokkal. És ez minden metódusra működik mind a kliensben, mind a csomópontban. Rugalmasan kezelheti a beállításokat az alkalmazáson belül.
  • A könyvtár nodejs-ben van írva. A verem teljesítményével kapcsolatos problémákat ellensúlyozza decentralizált jellege. A terhelést a csomópontok számának növelésével lehet „kiteríteni”. Cserébe sok előnye van: hatalmas közösség, egyszerűség és könnyű kezelhetőség, izomorf kliens, nincs külső függőség stb.

tárház egy teríthető rétegből örökölt réteg, amely lehetővé teszi a fájlok hálózaton való tárolását. Minden fájlnak megvan a maga tartalmának saját hash-je, amely később visszakereshető. A fájlok nincsenek blokkokra osztva, hanem teljes egészében tárolódnak.

metastocle - a teríthetőből örökölt réteg, amely lehetővé teszi adatok tárolását a hálózaton, de fájlokat nem. Az interfész hasonló egy Nosql adatbázishoz. Például hozzáadhat egy fájlt a Storacle-hez, lekérheti a hash-ét, és valamire mutató hivatkozással írhatja a metastocle-be.

museria - Storacle és metastocle öröklődik. Ez a réteg közvetlenül felelős a zene tárolásáért. A tárhely csak mp3 fájlokkal és id3 címkékkel működik.

A dal „kulcsaként” a teljes neve szerepel az űrlapban Előadó (TPE1) – Cím (TIT2). Például:

  • Kénkő – A teher
  • Hi-rez – Lost My Way (feat. Emilio Rojas, Dani Devinci)

A lehető legrészletesebben megtudhatja, hogyan alakulnak a dalcímek. itt. Meg kell nézni a funkciót utils.beautifySongTitle().

A csomópontbeállításokban meghatározott egyezések százalékos aránya egyezésnek minősül. Például a 0.85 érték azt jelenti, hogy ha a billentyű-összehasonlító függvény (dalok nevei) több mint 85%-os hasonlóságot talált, akkor ugyanarról a dalról van szó.

A hasonlóság meghatározására szolgáló algoritmus ott van a függvényben utils.getSongSimilarity().

A dalhoz borító, későbbi átvételhez, címkékkel is rögzíthető (APIC). A segédprogramok minden szükséges módszerrel rendelkeznek a címkék fogadásához és feldolgozásához.

Példa a tárolással való munkavégzéshez kliensen keresztül a következő helyen található: readme.

A fenti rétegek mindegyike önálló, és külön-külön is használható alsó rétegként más projektekhez. Például már van egy ötlet, hogy készítsenek egy réteget a könyvek tárolására.

musicia-global egy már konfigurált git-tárház saját csomópont indításához a globális zenei hálózatban. Klónozás npm i && npm indul és lényegében ennyi. Beállíthatod részletesebben, futtathatod Dockerben stb. Részletes információ a címen érhető el github.

A lerakat frissítésekor frissítenie kell a csomópontot. Ha a fő vagy kisebb verziószám megváltozik, akkor ez a művelet kötelező, ellenkező esetben a régi csomópontokat figyelmen kívül hagyja a hálózat.

A dalokkal manuálisan és programozottan is dolgozhat. Minden csomópont egy szervert futtat különböző feladatokhoz. Beleértve, amikor meglátogatja az alapértelmezett végpontot, kap egy felületet a zenével való munkavégzéshez. Például el lehet menni a gyökércsomópont (a hivatkozás később nem biztos, hogy releváns, bemeneti csomópontok is beszerezhetők távirat, vagy keressen frissítéseket a Githubon).

Így kereshet és tölthet fel dalokat a tárhelyre. A dalok feltöltése két módban történhet: normál és moderált. A második mód azt jelenti, hogy a munkát egy személy végzi, nem egy program. És ha bejelöli ezt a jelölőnégyzetet hozzáadáskor, akkor meg kell oldania a captcha-t. A dalok -1, 0 vagy 1 prioritásúak hozzáadhatók. Az 1-es prioritás csak moderált módban állítható be. A prioritásokra azért van szükség, hogy a tároló hatékonyabban tudja eldönteni, mit tegyen, ha egy meglévő dalt egy újra próbál cserélni. Minél magasabb a prioritás, annál valószínűbb, hogy felülír egy meglévő fájlt. Ez segít a spam elleni küzdelemben és javítja a letöltött dalok minőségét.

Ha elkezd dalokat hozzáadni a tárhelyhez, próbáljon képeket (borítót) csatolni, bár ez a mező nem kötelező. Az esetek 99%-ában az első képek a Google-on a dalcímek alapján az albumborítók.

Hogyan történik technikailag a fájlok hozzáadása, dióhéjban:

  • Az ügyfél megkapja egy ingyenes csomópont címét, amely egy ideig koordinátor lesz.
  • A dal hozzáadásának funkciója aktiválódik (egy személy vagy kód által), és a rendszer kéri, hogy adjunk hozzá egy koordinátort a végponthoz.
  • A koordinátor kiszámítja, hogy hány másolatot kell tárolni (konfigurálható paraméter).
  • Megkeresik a mentésre legalkalmasabb csomópontokat.
  • A fájl közvetlenül ezekhez a csomópontokhoz kerül.

Technikailag a fájlok fogadása:

  • Az ügyfél megkapja egy ingyenes csomópont címét, amely egy ideig koordinátor lesz.
  • A dal (egy személy vagy kód általi) fogadásának funkciója aktiválódik, és a koordinátor végpontján a rendszer kéri a fogadását.
  • A koordinátor ellenőrzi a hivatkozás jelenlétét a gyorsítótárban. Ha van ilyen, és működik, akkor azonnal visszaküldi a kliensnek, ellenkező esetben a csomópontok elérhetőségét lekérdezik.
  • A fájl a hivatkozásról érkezik, ha megtalálható.

Alternatívák zenei alkotók számára

Mindig is érdekelt az a kérdés, hogyan lehet objektíven felmérni sok kreatív alkotás értékét? Miért kínálja az ember például 10 dollárért a zenei albumát? Vagy 20 dollárért vagy 100 dollárért. Hol van az algoritmus? Ha például valamilyen fizikai termékről, vagy akár sokféle szolgáltatásról beszélünk, akkor legalább kiszámolhatjuk a költségeket, és abból indulhatunk ki.

Oké, tegyük fel, hogy fogadunk 10 dollárt. Ez nagyon hatásos? Tegyük fel, hogy meghallgattam valahol egy albumot vagy egy dalt onnan, és úgy döntöttem, hogy kifejezem a hálámat. De az érzéseim és a saját képességeim szerint 3 dollár a plafonom. Szóval mit kéne tennünk? Valószínűleg nem csinálok semmit, mint a legtöbb ember.

Azzal, hogy valamilyen fix árat határoz meg a kreatív munkáért, egyszerűen korlátozza magát, megakadályozva, hogy több ember kevesebb pénzt küldjön Önnek, ami összességében lenyűgözőbb lehet, mint azok, akik az Ön által meghatározott áron vásárolnak. Úgy tűnik számomra, hogy a kreativitás pontosan az a terület, ahol először az adományozásnak kell uralkodnia. Ehhez szüksége van:

  • Tanítsd meg az embereket ezen a módon hálát adni. Az alkotóknak maguknak egyértelműen jelezniük kell, hogy szeretnének adományokat fogadni, mindenhol fel kell tüntetni a különböző fizetési módokra mutató linkeket stb.
  • Több mechanizmusra van szükség e folyamatok egyszerűsítéséhez és megerősítéséhez. Például hozzon létre valamilyen globális webhelyet, ahol a szerzői jogi hivatkozások segítségével adományozhat kreativitásra.

    Tegyük fel, hogy a link valahogy így néz ki:

    http://someartistsdonationsite.site/category/artist?external-info

    Ha leszűkítjük a zenészekre, akkor:

    http://someartistsdonationsite.com/music/miyagi?song=blabla

    Az előadónak ellenőriznie kell a becenevét, és csatolnia kell hozzá.

    Hozzáadunk egy funkciót egy ilyen hivatkozás generálására a museria klienshez, és minden, a repository-t használó projekt elhelyezhet adományozási gombokat ezekkel a hivatkozásokkal a dalok mellett a weboldalain/alkalmazásaikon. A felhasználóknak lehetőségük van nagyon gyorsan és egyszerűen adományozni. Természetesen ez a megközelítés a kreativitás bármely projektjében és kategóriájában használható, nem csak a tároláson keresztül.

Miért van pontosan szüksége zenei tárolóra, és hogyan vehet részt benne?

  • Ha zenével kapcsolatos projekten dolgozol, vagy tervezel egyet, akkor mindent erre szántak. A Museria segítségével dalokat tárolhat és visszakereshet, így növelheti a dalok online áramlását. Ha ugyanakkor képes felemelni és megtartani legalább egy saját csomópontot, akkor ez lesz a legjobb hozzájárulás a hálózat fejlesztéséhez.
  • Talán készen áll arra, hogy más szerepet is vállaljon: segítsen a kódban, vagy töltse ki és moderálja az adatbázist, terjessze a projekttel kapcsolatos információkat barátainak stb.
  • Talán tetszett az ötlet, és készen állsz anyagilag segíteni, hogy mindez éljen és fejlődjön. Minél több csomópont, annál több dal.
  • Vagy egyszer csak meg kell találnia és le kell töltenie egy dalt. Ezt nagyon egyszerűen megteheti, például keresztül távirat bot.

A projekt most a kezdeti szakaszban van. Elindult egy teszthálózat, a csomópontok gyakran újraindulhatnak, frissítéseket igényelhetnek stb. Ha nincs kritikus probléma az értékelési időszakban, akkor ugyanez a hálózat alakul át a fő hálózattá.

A csomóponttal kapcsolatos információkat kívülről tekintheti meg: a dalok számát, szabad területet stb. http://node-address/status vagy http://node-address/status?pretty

Kapcsolattartóim:

Forrás: will.com

Hozzászólás