{"id":80222,"date":"2020-05-04T13:42:18","date_gmt":"2020-05-04T11:42:18","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki"},"modified":"2020-05-04T13:42:18","modified_gmt":"2020-05-04T11:42:18","slug":"museria-deczentralizovannoe-hranilishhe-muzyki","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki","title":{"rendered":"Museria \u2013 decentraliz\u00e1lt zenei t\u00e1rol\u00f3","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Museria \u2013 decentraliz\u00e1lt zenei t\u00e1rol\u00f3\" src=\"\/wp-content\/uploads\/2020\/05\/e5323f70f0df3f3bb6fb92ae0544ad2f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEgyszer elhat\u00e1roztam, hogy \u00edrok egy alkalmaz\u00e1st, hogy zen\u00e9t v\u00e1logassak magamnak, \u00e9s hallgassam otthon\/kint\/edz\u00e9s k\u00f6zben, stb. \u00c9s hogy mindez folyamatosan m\u0171k\u00f6dj\u00f6n, a lehet\u0151 legkevesebb r\u00e9szv\u00e9telemmel. Kital\u00e1ltam az architekt\u00far\u00e1t, k\u00e9sz\u00edtettem egy protot\u00edpust, \u00e9s v\u00e9g\u00fcl egy \"kicsi probl\u00e9m\u00e1val\" tal\u00e1lkoztam. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nDe nem volt vil\u00e1gos, honnan szerezzem be magukat a dalf\u00e1jlokat. Ekkorra a Vkontakte m\u00e1r bez\u00e1rta az API-j\u00e1t, a nagy zenei port\u00e1lokon is minden elakadt, m\u00e9g a dalokat is darabokban adj\u00e1k \u00e1t, hogy ne lehessen \u0151ket lementeni. Csak n\u00e9h\u00e1ny k\u00fcl\u00f6n\u00e1ll\u00f3, hirdet\u00e9sekkel teli, egy napig \u00e9l\u0151 weboldal maradt, mindenf\u00e9le k\u00e9tes programokkal \u00e9s egy\u00e9b \"piszkos\" megold\u00e1sokkal. Sz\u00f3val nem volt egyetlen \u00e9rv\u00e9nyes j\u00f3 megold\u00e1s sem. Persze, lehetne el\u0151fizetni valamilyen Yandex Music-ra vagy hasonl\u00f3ra. De ism\u00e9t, sehol sincs nyilv\u00e1nosan el\u00e9rhet\u0151 API, \u00e9s nincs programozott hozz\u00e1f\u00e9r\u00e9s a zen\u00e9hez. N\u00e9h\u00e1ny nagyobb c\u00e9g l\u00e9nyeg\u00e9ben korl\u00e1tozta a zenei hozz\u00e1f\u00e9r\u00e9st m\u00e1sok sz\u00e1m\u00e1ra. Mi\u00e9rt t\u00f6rt\u00e9nik ez egy\u00e1ltal\u00e1n? M\u00e9lyebbre \u00e1sva vil\u00e1goss\u00e1 v\u00e1lt, hogy a f\u0151 probl\u00e9ma a szerz\u0151i jogokkal van. A jelenlegi el\u0151fizet\u00e9ses modell sok kereskedelmi zenem\u0171 szerz\u0151j\u00e9nek \u00e9s ezeknek a c\u00e9geknek is megfelel. Ek\u00f6zben a nem kereskedelmi \u00e9s f\u00e9lig kereskedelmi zene is beker\u00fcl a k\u00f6z\u00f6s list\u00e1ba. Vagy mindent kifizetsz, vagy egy\u00e1ltal\u00e1n nem hallgatsz semmit.<\/p>\n<p>Kezdtem gondolkodni, mit is tegyek ezzel az eg\u00e9sszel. Hogyan lehetne a zene szabad terjeszt\u00e9s\u00e9t megszervezni? Mit tenn\u00e9k, ha \u00e9n magam zen\u00e9t k\u00e9sz\u00edten\u00e9k \u00e9s szeretn\u00e9k p\u00e9nzt keresni ezzel? Tetszene, ha a dalaimat kal\u00f3z m\u00f3don terjeszten\u00e9k? Milyen alternat\u00edv megold\u00e1s l\u00e9tezik egy\u00e1ltal\u00e1n? <\/p>\n<p>V\u00e9g\u00fcl k\u00e9t f\u0151 probl\u00e9m\u00e1v\u00e1 \u00e1lltak \u00f6ssze, amelyeket meg kell oldani:<\/p>\n<ul>\n<li>A zene szabad terjeszt\u00e9s\u00e9nek megszervez\u00e9se a legt\u00f6bb ember sz\u00e1m\u00e1ra k\u00e9nyelmes m\u00f3dszerekkel, bele\u00e9rtve a programokat is.<\/li>\n<li>Alternat\u00edv aj\u00e1nlatok l\u00e9trehoz\u00e1sa a zeneszerz\u0151k sz\u00e1m\u00e1ra a kereset\u00fckh\u00f6z<\/li>\n<\/ul>\n<p><\/p>\n<h3>Glob\u00e1lis decentraliz\u00e1lt zenei t\u00e1rol\u00f3<\/h3>\n<p>\nKezdetben pr\u00f3b\u00e1ltam m\u00e1r megl\u00e9v\u0151 megold\u00e1sokat tal\u00e1lni, \u00e9s erre alapozva l\u00e9trehozni mindent. N\u00e9h\u00e1ny keres\u00e9s ut\u00e1n els\u0151k\u00e9nt a <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ipfs\/ipfs\">ipfs<\/a><\/noindex>-t tal\u00e1ltam. Elkezdtem megval\u00f3s\u00edtani az \u00f6tletemet, de egy id\u0151 ut\u00e1n t\u00f6bb kritikus probl\u00e9m\u00e1t fedeztem fel ebben a megold\u00e1sban:<\/p>\n<ul>\n<li>Az IPFS - mindent \u00e9s mindenkit t\u00e1rol\u00f3. Itt vannak k\u00e9pek, zene, vide\u00f3k \u00e9s minden, ami csak elk\u00e9pzelhet\u0151. Tulajdonk\u00e9ppen egy nagy planet\u00e1ris \"kuk\u00e1nak\" nevezhet\u0151. Teh\u00e1t amikor elind\u00edtod a csom\u00f3pontodat, azonnal hatalmas terhel\u00e9ssel tal\u00e1lkozol. A g\u00e9p egyszer\u0171en szenved a terhel\u00e9st\u0151l. <\/li>\n<li>Valamilyen befejezetlen m\u00f3dszer a \"szem\u00e9t\" \u00f6sszegy\u0171jt\u00e9s\u00e9re. Nem tudom, hogy most hogy van, de abban a pillanatban, ha a konfigur\u00e1ci\u00f3dban be\u00edrtad, hogy szeretn\u00e9l t\u00edz gigab\u00e1jtra korl\u00e1tozni a t\u00e1rol\u00f3t, az semmit sem jelentett. A t\u00e1rol\u00f3 n\u00f6vekedett, figyelmen k\u00edv\u00fcl hagyva sok konfigur\u00e1ci\u00f3s param\u00e9tert. V\u00e9g\u00fcl is hatalmas merevlemez-kapacit\u00e1ssal kellett rendelkezned, m\u00edg az IPFS ki tudta takar\u00edtani a felesleges anyagokat.<\/li>\n<li>A k\u00f6nyvt\u00e1r haszn\u00e1latakor (nem tudom, hogy ez most hogy van) a kliens nem val\u00f3s\u00edtotta meg az id\u0151korl\u00e1tokat. K\u00fcldesz egy k\u00e9r\u00e9st egy f\u00e1jl lek\u00e9r\u00e9s\u00e9re, \u00e9s ha az nem tal\u00e1lhat\u00f3, egyszer\u0171en v\u00e1rakozol. Persze az emberek kital\u00e1lt\u00e1k a k\u00fcl\u00f6nb\u00f6z\u0151 megold\u00e1sokat, amelyek r\u00e9szben megoldott\u00e1k a probl\u00e9m\u00e1t, de ezek csak ideiglenes megold\u00e1sok voltak. Ezeknek dobozb\u00f3l kellene m\u0171k\u00f6dni\u00fck.<\/li>\n<\/ul>\n<p>\nR\u00e1ad\u00e1sul sok apr\u00f3 probl\u00e9ma is felmer\u00fclt, a benyom\u00e1som egy\u00e9rtelm\u0171en az volt: ezt nem lehet haszn\u00e1lni projekthez. Folytattam a t\u00e1rol\u00f3k keres\u00e9s\u00e9t, k\u00fcl\u00f6nb\u00f6z\u0151 lehet\u0151s\u00e9geket tanulm\u00e1nyoztam, de v\u00e9g\u00fcl nem tal\u00e1ltam megfelel\u0151t.<\/p>\n<p>V\u00e9g\u00fcl \u00fagy d\u00f6nt\u00f6ttem, hogy \u00e9rdemes megpr\u00f3b\u00e1lni saj\u00e1t decentraliz\u00e1lt t\u00e1rol\u00f3t \u00edrni. Nem az\u00e9rt, hogy interplanet\u00e1ris szerepre p\u00e1ly\u00e1zzon, hanem hogy egy konkr\u00e9t feladatot megoldjon.<\/p>\n<p>\u00cdgy sz\u00fcletett meg <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/spreadable\">spreadable<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/storacle\/\">storacle<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/metastocle\">metastocle<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria\">museria<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria-global\">museria-global<\/a><\/noindex>. <\/p>\n<p><b>spreadable <\/b> ez a f\u0151, legals\u00f3 r\u00e9teg, amely lehet\u0151v\u00e9 teszi a csom\u00f3pontok \u00f6sszekapcsol\u00e1s\u00e1t a h\u00e1l\u00f3zatban. Itt van egy algoritmus, amit eddig r\u00e9szlegesen val\u00f3s\u00edtottam meg, k\u00f6r\u00fclbel\u00fcl 10.000 szerverre kalkul\u00e1lva. Az algoritmus teljes verzi\u00f3ja sokkal bonyolultabb a megval\u00f3s\u00edt\u00e1s szempontj\u00e1b\u00f3l, \u00e9s tov\u00e1bbi h\u00f3napokat ig\u00e9nyelne (tal\u00e1n t\u00f6bbet is).<\/p>\n<p>R\u00e9szleteiben nem fogom itt a spreadable-t bemutatni, ink\u00e1bb \u00edrok r\u00f3la k\u00fcl\u00f6n cikket valamikor. Itt csak n\u00e9h\u00e1ny jellemz\u0151t emeln\u00e9k ki:<\/p>\n<ul>\n<li>HTTP\/HTTPS-en kereszt\u00fcl m\u0171k\u00f6dik.<\/li>\n<li>K\u00fcl\u00f6n h\u00e1l\u00f3zatokat lehet l\u00e9trehozni konkr\u00e9t feladatokhoz, ami l\u00e9nyegesen cs\u00f6kkenti a terhel\u00e9st minden egyes projekten, mintha mindannyian egy h\u00e1l\u00f3zatban lenn\u00e9nek.<\/li>\n<li>Eredetileg be volt tervezve az id\u0151korl\u00e1tok \u00e9s egy\u00e9b apr\u00f3s\u00e1gok mechanizmusa. Ez minden m\u00f3dszerre m\u0171k\u00f6dik, mind a kliensben, mind a csom\u00f3pontban. Rugalmasan kezelheted a param\u00e9tereket a saj\u00e1t alkalmaz\u00e1sodb\u00f3l.<\/li>\n<li>A k\u00f6nyvt\u00e1r nodejs-ben k\u00e9sz\u00fclt. A verem teljes\u00edtm\u00e9nyprobl\u00e9m\u00e1it a decentraliz\u00e1lt term\u00e9szet kompenz\u00e1lja. A terhel\u00e9st \"el lehet osztani\" a csom\u00f3pontok sz\u00e1m\u00e1nak n\u00f6vel\u00e9s\u00e9vel. Cser\u00e9be sok el\u0151ny: hatalmas k\u00f6z\u00f6ss\u00e9g, egyszer\u0171 \u00e9s k\u00e9nyelmes haszn\u00e1lat, izomorf kliens, k\u00fcls\u0151 f\u00fcgg\u0151s\u00e9gek hi\u00e1nya stb.<\/li>\n<\/ul>\n<p>\n<b>storacle <\/b> \u2014 ez egy spreadable-t\u0151l \u00f6r\u00f6kl\u0151d\u0151 r\u00e9teg, amely lehet\u0151v\u00e9 teszi f\u00e1jlok t\u00e1rol\u00e1s\u00e1t a h\u00e1l\u00f3zaton. Minden f\u00e1jl rendelkezik egy saj\u00e1t hash-sel a tartalom alapj\u00e1n, amely k\u00e9s\u0151bb a hozz\u00e1f\u00e9r\u00e9se lehets\u00e9ges. A f\u00e1jlok nem blokkokra oszlanak, hanem eg\u00e9szben ker\u00fclnek t\u00e1rol\u00e1sra.<\/p>\n<p><b>metastocle <\/b> \u2014 egy spreadable-t\u0151l \u00f6r\u00f6kl\u0151d\u0151 r\u00e9teg, amely lehet\u0151v\u00e9 teszi adatok t\u00e1rol\u00e1s\u00e1t a h\u00e1l\u00f3zaton, de nem f\u00e1jlokat. Az interf\u00e9sz hasonl\u00f3 a nosql adatb\u00e1zisokhoz. P\u00e9ld\u00e1ul lehet egy f\u00e1jlt hozz\u00e1adni a storacle-hoz, megkapni a hash-\u00e9t, \u00e9s bejegyezni a metastocle-ba valamivel val\u00f3 kapcsol\u00f3d\u00e1ssal.<\/p>\n<p><b>museria<\/b> \u2014 a storacle \u00e9s metastocle \u00f6r\u00f6k\u00f6se. Ez a r\u00e9teg k\u00f6zvetlen\u00fcl felel\u0151s a zene t\u00e1rol\u00e1s\u00e1\u00e9rt. A t\u00e1rol\u00f3 csak mp3 f\u00e1jlokkal \u00e9s id3 c\u00edmk\u00e9kkel m\u0171k\u00f6dik. <\/p>\n<p>A dal \u201ekulcsak\u00e9nt\u201d a teljes c\u00edme szolg\u00e1l, form\u00e1ban <b>El\u0151ad\u00f3 (TPE1) \u2014 C\u00edm (TIT2)<\/b>. P\u00e9ld\u00e1ul:<\/p>\n<ul>\n<li>Brimstone \u2014 The Burden<\/li>\n<li>Hi-rez \u2014 Lost My Way (feat. Emilio Rojas, Dani Devinci)<\/li>\n<\/ul>\n<p>\nA dal c\u00edm\u00e9nek kialakul\u00e1s\u00e1r\u00f3l a lehet\u0151 legr\u00e9szletesebb inform\u00e1ci\u00f3t lehet kapni <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria\/blob\/master\/src\/utils.js\">itt<\/a><\/noindex>. A funkci\u00f3t kell megn\u00e9zni <b>utils.beautifySongTitle()<\/b>.<\/p>\n<p>A kulcsok szerinti egyez\u00e9st a csom\u00f3pont be\u00e1ll\u00edt\u00e1saiban meghat\u00e1rozott sz\u00e1zal\u00e9k tekinti. P\u00e9ld\u00e1ul a 0.85-\u00f6s \u00e9rt\u00e9k azt jelenti, hogy ha a kulcsok (dalok c\u00edmei) \u00f6sszehasonl\u00edt\u00f3 funkci\u00f3ja 85%-n\u00e1l nagyobb hasonl\u00f3s\u00e1got \u00e9szlel, akkor ugyanarr\u00f3l a dalr\u00f3l van sz\u00f3.<\/p>\n<p>A hasonl\u00f3s\u00e1g meghat\u00e1roz\u00f3 algoritmus ugyanott van, a <b>utils.getSongSimilarity()<\/b>.<\/p>\n<p>A dal bor\u00edt\u00f3ja, a tov\u00e1bbi el\u00e9r\u00e9shez, szint\u00e9n a c\u00edmk\u00e9k (<b>APIC<\/b>). A seg\u00e9dprogramokban (utils) minden sz\u00fcks\u00e9ges m\u00f3dszer megtal\u00e1lhat\u00f3 a c\u00edmk\u00e9k megszerz\u00e9s\u00e9hez \u00e9s feldolgoz\u00e1s\u00e1hoz.<\/p>\n<p>P\u00e9lda a t\u00e1rol\u00f3val val\u00f3 munk\u00e1ra a kliensen kereszt\u00fcl megtekinthet\u0151 a <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria\">readme<\/a><\/noindex>.<\/p>\n<blockquote><p>Az \u00f6sszes fent eml\u00edtett r\u00e9teg \u00f6nell\u00e1t\u00f3, \u00e9s k\u00fcl\u00f6n is haszn\u00e1lhat\u00f3, mint alacsonyabb r\u00e9tegek m\u00e1s projektekhez. P\u00e9ld\u00e1ul m\u00e1r most van elk\u00e9pzel\u00e9s\u00fcnk arra, hogy k\u00f6nyvek t\u00e1rol\u00e1s\u00e1ra szolg\u00e1l\u00f3 r\u00e9teget hozzunk l\u00e9tre.<\/p><\/blockquote>\n<p>\n<b>museria-global<\/b> \u2014 ez egy m\u00e1r konfigur\u00e1lt git-repozit\u00f3rium, amely lehet\u0151v\u00e9 teszi a saj\u00e1t csom\u00f3pont elind\u00edt\u00e1s\u00e1t a glob\u00e1lis zeneh\u00e1l\u00f3zaton. Kl\u00f3nozi, <b>npm i &amp;&amp; npm<\/b> start, \u00e9s l\u00e9nyeg\u00e9ben ennyi. R\u00e9szletesebben be\u00e1ll\u00edthat\u00f3, futtathat\u00f3 dockerben stb. R\u00e9szletes inform\u00e1ci\u00f3 tal\u00e1lhat\u00f3 az <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria-global#museria-global-storage-alpha-\">GitHubon<\/a><\/noindex>.<\/p>\n<p>Amikor a t\u00e1rol\u00f3 friss\u00fcl, a csom\u00f3pontodnak is friss\u00fclnie kell. Ha a f\u0151 vagy a mell\u00e9kverzi\u00f3 sz\u00e1ma megv\u00e1ltozik, ez a l\u00e9p\u00e9s k\u00f6telez\u0151, k\u00fcl\u00f6nben a r\u00e9gi csom\u00f3pontokat figyelmen k\u00edv\u00fcl hagyja a h\u00e1l\u00f3zat.<\/p>\n<p>A dalokkal manu\u00e1lisan \u00e9s programozottan is lehet dolgozni. Minden csom\u00f3pont szervert ind\u00edt k\u00fcl\u00f6nb\u00f6z\u0151 feladatokhoz. P\u00e9ld\u00e1ul, ha ell\u00e1togatsz az alap\u00e9rtelmezett v\u00e9gpontra, egy fel\u00fcletet kapsz a zen\u00e9vel val\u00f3 munk\u00e1hoz. P\u00e9ld\u00e1ul megl\u00e1togathatod a <noindex><a rel=\"nofollow\" href=\"http:\/\/storage.museria.com\">gy\u00f6k\u00e9rcsom\u00f3pontot<\/a><\/noindex> (a link k\u00e9s\u0151bb elavulhat, a bel\u00e9p\u00e9si csom\u00f3pontokat szint\u00e9n megkaphatod a <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/museria\">t\u00e9v\u00e9n<\/a><\/noindex>, vagy megn\u00e9zheted a friss\u00edt\u00e9seket a GitHubon).<\/p>\n<p>\u00cdgy kereshetsz \u00e9s t\u00f6lthetsz le dalokat a t\u00e1rol\u00f3ban. A dalok felt\u00f6lt\u00e9se k\u00e9t m\u00f3dban t\u00f6rt\u00e9nhet: norm\u00e1l \u00e9s moder\u00e1lt. A m\u00e1sodik \u00fczemm\u00f3d azt jelenti, hogy az ember int\u00e9zi a munk\u00e1t, nem a program. Ha ezt a jel\u00f6l\u0151n\u00e9gyzetet bejel\u00f6l\u00f6d a hozz\u00e1ad\u00e1skor, akkor captcha-t kell megoldanod. A dalokat -1, 0 vagy 1 priorit\u00e1ssal lehet hozz\u00e1adni. A 1 priorit\u00e1s csak a moder\u00e1lt \u00fczemm\u00f3dban adhat\u00f3 meg. A priorit\u00e1sok seg\u00edtenek abban, hogy a t\u00e1rol\u00f3 hat\u00e9konyabban d\u00f6nts\u00f6n arr\u00f3l, mit tegyen, amikor megpr\u00f3b\u00e1lod kicser\u00e9lni a m\u00e1r l\u00e9tez\u0151 dalt egy \u00fajra. Min\u00e9l nagyobb a priorit\u00e1s, ann\u00e1l nagyobb az es\u00e9ly, hogy fel\u00fcl\u00edrod a megl\u00e9v\u0151 f\u00e1jlt. Ez seg\u00edt a spam ellen \u00e9s n\u00f6veli a felt\u00f6lt\u00f6tt dalok min\u0151s\u00e9g\u00e9t. <\/p>\n<p>Ha dalokat kezdesz hozz\u00e1adni a t\u00e1rol\u00f3hoz, pr\u00f3b\u00e1lj k\u00e9peket (bor\u00edt\u00f3t) is csatolni, b\u00e1r ez a mez\u0151 nem k\u00f6telez\u0151. Az esetek 99%-\u00e1ban az els\u0151 k\u00e9pek a Google-ben a dalok nevei alapj\u00e1n albumbor\u00edt\u00f3k.<\/p>\n<p>Hogyan t\u00f6rt\u00e9nik a f\u00e1jlok hozz\u00e1ad\u00e1sa technikailag, r\u00f6viden:<\/p>\n<ul>\n<li>Az \u00fcgyf\u00e9l megkapja a szabad csom\u00f3pont c\u00edm\u00e9t, amely egy id\u0151re koordin\u00e1torr\u00e1 v\u00e1lik.<\/li>\n<li>Elindul a dal hozz\u00e1ad\u00e1s\u00e1nak funkci\u00f3ja (ember vagy k\u00f3d \u00e1ltal), a koordin\u00e1tor v\u00e9gpontj\u00e1ra t\u00f6rt\u00e9nik a hozz\u00e1ad\u00e1si k\u00e9r\u00e9s.<\/li>\n<li>A koordin\u00e1tor kisz\u00e1m\u00edtja, h\u00e1ny duplik\u00e1t kell meg\u0151rizni (konfigur\u00e1lhat\u00f3 param\u00e9ter).<\/li>\n<li>Megkeresik a legmegfelel\u0151bb csom\u00f3pontokat a t\u00e1rol\u00e1sra.<\/li>\n<li>A f\u00e1jl k\u00f6zvetlen\u00fcl ezekre a csom\u00f3pontokra ker\u00fcl. <\/li>\n<\/ul>\n<p>\nHogyan t\u00f6rt\u00e9nik a f\u00e1jlok lek\u00e9rdez\u00e9se technikailag:<\/p>\n<ul>\n<li>Az \u00fcgyf\u00e9l megkapja a szabad csom\u00f3pont c\u00edm\u00e9t, amely egy id\u0151re koordin\u00e1torr\u00e1 v\u00e1lik.<\/li>\n<li>Elindul a dal lek\u00e9r\u00e9s\u00e9nek funkci\u00f3ja (ember vagy k\u00f3d \u00e1ltal), a koordin\u00e1tor v\u00e9gpontj\u00e1ra t\u00f6rt\u00e9nik a lek\u00e9rdez\u00e9si k\u00e9r\u00e9s.<\/li>\n<li>A koordin\u00e1tor ellen\u0151rzi, hogy van-e link a gyors\u00edt\u00f3t\u00e1rban. Ha van, \u00e9s m\u0171k\u00f6d\u0151k\u00e9pes, akkor azonnal visszak\u00fcldi az \u00fcgyf\u00e9lnek, k\u00fcl\u00f6nben megk\u00e9rdezi a csom\u00f3pontokat a megl\u00e9v\u0151 tartalomr\u00f3l.<\/li>\n<li>A f\u00e1jl let\u00f6lt\u00e9se a link seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9nik, ha van ilyen. <\/li>\n<\/ul>\n<p><\/p>\n<h3>Alternat\u00edv\u00e1k a zeneszerz\u0151k sz\u00e1m\u00e1ra<\/h3>\n<p>\nMindig is foglalkoztatott a k\u00e9rd\u00e9s, hogyan lehet objekt\u00edven \u00e9rt\u00e9kelni sok kreat\u00edv m\u0171 k\u00f6lts\u00e9g\u00e9t? Mi\u00e9rt \u00e1ll\u00edt p\u00e9ld\u00e1ul valaki 10 doll\u00e1rt a zenei album\u00e1\u00e9rt? Vagy 20 doll\u00e1rt vagy ak\u00e1r 100 doll\u00e1rt. Hol van az algoritmus? Amikor p\u00e9ld\u00e1ul egy fizikai term\u00e9kr\u0151l vagy sokf\u00e9le szolg\u00e1ltat\u00e1sr\u00f3l besz\u00e9l\u00fcnk, legal\u00e1bb kisz\u00e1m\u00edthatjuk a k\u00f6lts\u00e9geket, \u00e9s ebb\u0151l kiindulhatunk. <\/p>\n<p>Ok\u00e9, tegy\u00fck fel, hogy 10 doll\u00e1rt \u00e1ll\u00edtottak be. Ez nagyon hat\u00e9kony? Tegy\u00fck fel, hogy meghallgattam egy albumot vagy egy dalt, \u00e9s szeretn\u00e9m megk\u00f6sz\u00f6nni. De az \u00e9rz\u00e9seim \u00e9s a lehet\u0151s\u00e9geim szerint a 3 doll\u00e1r a hat\u00e1r. \u00c9s mit tegyek ezut\u00e1n? Val\u00f3sz\u00edn\u0171leg semmit sem fogok tenni, ahogy a legt\u00f6bb ember. <\/p>\n<p>Ha egy r\u00f6gz\u00edtett \u00e1rat \u00e1ll\u00edtasz be a kreat\u00edv munk\u00e1d\u00e9rt, akkor csak korl\u00e1tozod magad, nem adod meg a lehet\u0151s\u00e9get, hogy t\u00f6bb ember kisebb \u00f6sszegeket k\u00fcldj\u00f6n neked, ami \u00f6sszess\u00e9g\u00e9ben lehet jelent\u0151sebb, mint azok\u00e9, akik a megadott \u00e1ron v\u00e1s\u00e1rolnak. \u00dagy \u00e9rzem, hogy a kreativit\u00e1s \u00e9ppen az a ter\u00fclet, ahol el\u0151sz\u00f6r kellene a adom\u00e1nyoknak uralkodniuk. Ehhez sz\u00fcks\u00e9g van:<\/p>\n<ul>\n<li>Meg kell tan\u00edtani az embereket, hogy \u00edgy k\u00f6sz\u00f6nj\u00e9k meg. A kreatoroknak tiszt\u00e1n kell azt mutatniuk, hogy szeretn\u00e9k kapni az adom\u00e1nyokat, \u00e9s mindenhol hozz\u00e1 kell adniuk a k\u00fcl\u00f6nb\u00f6z\u0151 fizet\u00e9si m\u00f3dszerekre mutat\u00f3 linkeket.<\/li>\n<li>T\u00f6bb mechanizmusra van sz\u00fcks\u00e9g a folyamatok egyszer\u0171s\u00edt\u00e9s\u00e9re \u00e9s er\u0151s\u00edt\u00e9s\u00e9re. P\u00e9ld\u00e1ul l\u00e9trehozni egy glob\u00e1lis weboldalt, ahol az emberek a kreativit\u00e1s\u00e9rt adom\u00e1nyozhatnak szerz\u0151i linkek seg\u00edts\u00e9g\u00e9vel.\n<p>Tegy\u00fck fel, hogy a link k\u00f6r\u00fclbel\u00fcl \u00edgy n\u00e9z ki: <\/p>\n<p><b><code>http:\/\/someartistsdonationsite.site\/category\/artist?external-info<\/code><\/b><\/p>\n<p>Ha a zen\u00e9szekre sz\u0171k\u00edtj\u00fck, akkor:<\/p>\n<p><b><code>http:\/\/someartistsdonationsite.com\/music\/miyagi?song=blabla<\/code><\/b><\/p>\n<p>A m\u0171v\u00e9sznek ellen\u0151riznie kell a nev\u00e9t, \u00e9s azt hozz\u00e1rendelni.<\/p>\n<p>A museria kliensbe adjunk hozz\u00e1 egy hasonl\u00f3 link gener\u00e1l\u00e1si funkci\u00f3t, \u00e9s minden olyan projekt, amely t\u00e1rol\u00f3t haszn\u00e1l, elhelyezheti a weboldalain \/ alkalmaz\u00e1saikban a gyors \u00e9s egyszer\u0171 adom\u00e1nyoz\u00e1si gombokat ezekkel a linkekkel a dalok mellett. A felhaszn\u00e1l\u00f3k nagyon gyorsan \u00e9s egyszer\u0171en adom\u00e1nyozhatnak. Term\u00e9szetesen ezt a megk\u00f6zel\u00edt\u00e9st b\u00e1rmely projekt \u00e9s kreat\u00edv kateg\u00f3ria sor\u00e1n alkalmazni lehet, nemcsak a t\u00e1rol\u00f3n kereszt\u00fcl.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Mi\u00e9rt van sz\u00fcks\u00e9ged, pontosan neked, egy zenei t\u00e1rol\u00f3ra, \u00e9s hogyan lehet r\u00e9szt venni ebben?<\/h3>\n<p><\/p>\n<ul>\n<li>Ha zen\u00e9vel kapcsolatos projekten dolgozol, vagy ilyet tervezel, ez\u00e9rt van ez az eg\u00e9sz kital\u00e1lva. Haszn\u00e1lhatod a museri\u00e1t a dalok t\u00e1rol\u00e1s\u00e1ra \u00e9s el\u00e9r\u00e9s\u00e9re, n\u00f6velve a dalok \u00e1raml\u00e1s\u00e1t az interneten. Ha van lehet\u0151s\u00e9ged legal\u00e1bb egy saj\u00e1t node fel\u00e1ll\u00edt\u00e1s\u00e1ra \u00e9s fenntart\u00e1s\u00e1ra, az lenne a legjobb hozz\u00e1j\u00e1rul\u00e1s a h\u00e1l\u00f3zat fejl\u0151d\u00e9s\u00e9hez.<\/li>\n<li>Tal\u00e1n k\u00e9szen \u00e1llsz arra, hogy valamilyen m\u00e1s szerepet v\u00e1llalj: seg\u00edteni a k\u00f3dol\u00e1sban, vagy kit\u00f6lteni \u00e9s moder\u00e1lni az adatb\u00e1zist, terjeszteni a projekt inform\u00e1ci\u00f3j\u00e1t a bar\u00e1taid k\u00f6z\u00f6tt stb.<\/li>\n<li>Lehet, hogy tetszett az \u00f6tlet, \u00e9s anyagilag is szeretn\u00e9l t\u00e1mogatni, hogy ez az eg\u00e9sz \u00e9ljen \u00e9s fejl\u0151dj\u00f6n. Min\u00e9l t\u00f6bb node, ann\u00e1l t\u00f6bb dal.<\/li>\n<li>Vagy lehet, hogy egyszer\u0171en sz\u00fcks\u00e9ged lesz egy dal megtal\u00e1l\u00e1s\u00e1ra \u00e9s let\u00f6lt\u00e9s\u00e9re. Ezt nagyon egyszer\u0171en megteheted, p\u00e9ld\u00e1ul a <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/MuseriaBot\">Telegram boton kereszt\u00fcl.<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nA projekt jelenleg a legkor\u00e1bbi szakasz\u00e1ban van. Elindult a tesztel\u00e9si h\u00e1l\u00f3zat, a node-ok gyakran \u00fajraindulhatnak, friss\u00edt\u00e9seket ig\u00e9nyelhetnek stb. Ha a becs\u00fclt id\u0151szakban nincsenek kritikus probl\u00e9m\u00e1k, a h\u00e1l\u00f3zat \u00e1talakul az alap\u00e9rtelmezett h\u00e1l\u00f3zatt\u00e1.<\/p>\n<p>A node k\u00fcls\u0151 inform\u00e1ci\u00f3it: a dalok sz\u00e1m\u00e1t, a szabad helyet stb. az al\u00e1bbi form\u00e1tum\u00fa link seg\u00edts\u00e9g\u00e9vel lehet megn\u00e9zni: <b><code>http:\/\/node-address\/status<\/code><\/b> vagy <b><code>http:\/\/node-address\/status?pretty<\/code><\/b><\/p>\n<p>Az el\u00e9rhet\u0151s\u00e9geim:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/ortex\">@ortex<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"mailto:mywebstreet@gmail.com\">mywebstreet@gmail.com<\/a><\/noindex>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/museria\">Telegram csoport angol nyelven.<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/museria.com\/\">Na \u00e9s a weboldal, ami miatt ez az \u00f6tlet megsz\u00fcletett.<\/a><\/noindex><\/li>\n<\/ul>\n<p>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/495058\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u043e\u0431\u0440\u0430\u043b\u0441\u044f \u044f \u043e\u0434\u043d\u0430\u0436\u0434\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0431\u0438\u0440\u0430\u0442\u044c \u043c\u0443\u0437\u044b\u043a\u0443 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0438 \u0441\u043b\u0443\u0448\u0430\u0442\u044c \u0434\u043e\u043c\u0430\/\u043d\u0430 \u0443\u043b\u0438\u0446\u0435\/\u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u043a\u0430\u0445 \u0438.\u0442.\u0434. \u0418 \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0432 \u043f\u043e\u0442\u043e\u043a\u0435, \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u043c\u043e\u0438\u043c \u0443\u0447\u0430\u0441\u0442\u0438\u0435\u043c. \u041f\u0440\u0438\u0434\u0443\u043c\u0430\u043b \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443, \u043d\u0430\u0431\u0440\u043e\u0441\u0430\u043b \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u0438 \u0432 \u0438\u0442\u043e\u0433\u0435 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u043e\u0434\u043d\u043e\u0439 \u201c\u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439\u201d. \u0410 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043e\u0442\u043a\u0443\u0434\u0430 \u0431\u0440\u0430\u0442\u044c \u0441\u0430\u043c\u0438 \u0444\u0430\u0439\u043b\u044b \u043f\u0435\u0441\u0435\u043d. \u041a \u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u043c\u0435\u043d\u0442\u0443 \u0432\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0435 \u0443\u0436\u0435 \u0437\u0430\u043a\u0440\u044b\u043b\u0430 api, \u043d\u0430 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u044b\u0445 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":80223,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-80222","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u043e\u0431\u0440\u0430\u043b\u0441\u044f \u044f \u043e\u0434\u043d\u0430\u0436\u0434\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0447\u0442\u043e\u0431\u044b.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Museria \u2014 \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043c\u0443\u0437\u044b\u043a\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u043e\u0431\u0440\u0430\u043b\u0441\u044f \u044f \u043e\u0434\u043d\u0430\u0436\u0434\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0447\u0442\u043e\u0431\u044b.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-05-04T11:42:18+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-04T11:42:18+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Museria \u2014 decentraliz\u00e1lt zenei t\u00e1rol\u00f3 | ProHoster","description":"Egyszer elhat\u00e1roztam, hogy \u00edrok egy alkalmaz\u00e1st, hogy.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Museria \u2014 \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043c\u0443\u0437\u044b\u043a\u0438 | ProHoster","og:description":"\u0421\u043e\u0431\u0440\u0430\u043b\u0441\u044f \u044f \u043e\u0434\u043d\u0430\u0436\u0434\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0447\u0442\u043e\u0431\u044b.","og:url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-05-04T11:42:18+00:00","article:modified_time":"2020-05-04T11:42:18+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"80222","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 16:22:48","updated":"2022-10-08 10:56:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/80222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=80222"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/80222\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/80223"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=80222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=80222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=80222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}