{"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\/es\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki","title":{"rendered":"Museria es un almacenamiento de m\u00fasica descentralizado","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Museria es un almacenamiento de m\u00fasica descentralizado\" src=\"\/wp-content\/uploads\/2020\/05\/e5323f70f0df3f3bb6fb92ae0544ad2f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUn d\u00eda decid\u00ed escribir una aplicaci\u00f3n para seleccionar m\u00fasica para m\u00ed y escucharlo en casa, en la calle, durante entrenamientos, etc. Y que todo funcionara de manera fluida, con m\u00ednima intervenci\u00f3n de mi parte. Ide\u00e9 la arquitectura, bocet\u00e9 un prototipo y al final me encontr\u00e9 con un \"peque\u00f1o problema\". <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nY no estaba claro de d\u00f3nde obtener los propios archivos de canciones. Para ese momento, Vkontakte ya hab\u00eda cerrado su API, y en los grandes portales musicales todo estaba igualmente cerrado, incluso las canciones se entregaban en partes para evitar que se raspeo. Solo quedaban algunos sitios de una sola vez llenos de anuncios y basura, programas de \u2018grabbing\u2019 dudosos y otras opciones \u2018sucias\u2019. En resumen, no hab\u00eda ninguna soluci\u00f3n v\u00e1lida y buena. Por supuesto, podr\u00eda comprar una suscripci\u00f3n a alg\u00fan servicio de m\u00fasica de Yandex o similar. Pero nuevamente, no hay API p\u00fablica abierta en ninguna parte y no tienes acceso a la m\u00fasica de forma program\u00e1tica. Varias empresas grandes, en esencia, limitaron el acceso a la m\u00fasica para los dem\u00e1s. \u00bfPor qu\u00e9 ocurri\u00f3 esto? Al indagar m\u00e1s, se hizo evidente que el problema principal reside en los derechos de autor. La soluci\u00f3n actual basada en suscripciones satisface a muchos creadores comerciales de obras musicales y a esas mismas empresas. Al mismo tiempo, la m\u00fasica no comercial y condicionalmente comercial tambi\u00e9n se incluyen en la lista general. O pagas por todo, o no escuchas nada.<\/p>\n<p>Y comenc\u00e9 a pensar qu\u00e9 hacer con todo esto. \u00bfC\u00f3mo se puede organizar la distribuci\u00f3n libre de m\u00fasica? \u00bfQu\u00e9 har\u00eda si estuviera creando m\u00fasica y quisiera ganar dinero con ello? \u00bfMe gustar\u00eda si mis canciones comenzaran a distribuirse de forma pirata? \u00bfQu\u00e9 soluci\u00f3n alternativa existe? <\/p>\n<p>En total, se formaron dos problemas principales que deben resolverse:<\/p>\n<ul>\n<li>Organizaci\u00f3n de la distribuci\u00f3n libre de m\u00fasica por m\u00e9todos convenientes para la mayor\u00eda de las personas, incluidas las soluciones program\u00e1ticas.<\/li>\n<li>Propuesta de alternativas para que los creadores de m\u00fasica ganen dinero.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Almacenamiento musical global y descentralizado.<\/h3>\n<p>\nInicialmente trat\u00e9 de encontrar soluciones existentes y construir todo sobre esa base. Despu\u00e9s de un tiempo de b\u00fasqueda, lo primero que llam\u00f3 mi atenci\u00f3n fue <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ipfs\/ipfs\">ipfs<\/a><\/noindex>. Comenc\u00e9 la implementaci\u00f3n de mi idea, pero despu\u00e9s de un tiempo descubr\u00ed varios problemas cr\u00edticos en esta soluci\u00f3n:<\/p>\n<ul>\n<li>Ipfs es un almac\u00e9n para todo y para todos. Aqu\u00ed hay im\u00e1genes, m\u00fasica, videos y cualquier cosa que puedas imaginar. En resumen, es un gran 'basurero' planetario. Por lo tanto, cuando inicias tu nodo, recibes una carga enorme. La m\u00e1quina simplemente sufre. <\/li>\n<li>Es un mecanismo incompleto para la recolecci\u00f3n de 'basura'. No s\u00e9 c\u00f3mo est\u00e1 ahora, pero en su momento, si especificabas en la configuraci\u00f3n que quer\u00edas limitar el almacenamiento a diez gigabytes de datos, eso no significaba nada. El almacenamiento crec\u00eda, ignorando muchos par\u00e1metros de configuraci\u00f3n. En consecuencia, era necesario tener un gran espacio en el disco duro mientras ipfs decid\u00eda c\u00f3mo liberar lo innecesario.<\/li>\n<li>En el momento en que us\u00e9 la biblioteca (no s\u00e9 c\u00f3mo est\u00e1 ahora), el cliente no ten\u00eda implementados los timeouts. Env\u00edas una solicitud para obtener un archivo, y si no est\u00e1, simplemente te quedas colgado. Por supuesto, la gente invent\u00f3 diversas soluciones alternativas que resolv\u00edan parte del problema, pero eran parches. Este tipo de cosas deber\u00edan venir incluidas de forma nativa.<\/li>\n<\/ul>\n<p>\nTambi\u00e9n hab\u00eda muchos problemas menores, la impresi\u00f3n que qued\u00f3 era clara: no se puede utilizar para un proyecto. Continu\u00e9 buscando almacenes, explorando diferentes opciones, pero no encontr\u00e9 nada adecuado.<\/p>\n<p>Al final, decid\u00ed intentar crear un almacenamiento descentralizado por m\u00ed mismo. Aunque no pretenda ser interplanetario, resolver\u00e1 la tarea espec\u00edfica que se plantea.<\/p>\n<p>As\u00ed surgieron <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> es la capa principal, la m\u00e1s baja, que permite agrupar nodos en red. Contiene un algoritmo que he implementado parcialmente, orientado a aproximadamente 10,000 servidores. La versi\u00f3n completa del algoritmo es mucho m\u00e1s compleja de implementar y requerir\u00eda varios meses adicionales (quiz\u00e1s m\u00e1s).<\/p>\n<p>No voy a detallar spreadable en este art\u00edculo, mejor har\u00e9 uno separado en alg\u00fan momento. Aqu\u00ed solo se\u00f1alar\u00e9 algunas caracter\u00edsticas:<\/p>\n<ul>\n<li>Funciona a trav\u00e9s de http\/https.<\/li>\n<li>Se pueden crear redes separadas para tareas espec\u00edficas, lo que reducir\u00e1 significativamente la carga en cada proyecto individual, en comparaci\u00f3n con tener todos en una sola red.<\/li>\n<li>Inicialmente se pens\u00f3 en un mecanismo con timeouts y otros peque\u00f1os detalles. Y esto funciona para todos los m\u00e9todos tanto en el cliente como en el nodo. Se pueden gestionar flexiblemente los par\u00e1metros desde tu aplicaci\u00f3n.<\/li>\n<li>La biblioteca est\u00e1 escrita en nodejs. Los problemas de rendimiento del stack se compensan con la naturaleza descentralizada. La carga se puede \"dispersar\" aumentando el n\u00famero de nodos. A cambio, hay muchas ventajas: una enorme comunidad, simplicidad y comodidad en el trabajo, un cliente isom\u00f3rfico, ausencia de dependencias externas, etc.<\/li>\n<\/ul>\n<p>\n<b>storacle <\/b> \u2014 es una capa que hereda de spreadable, que permite almacenar archivos en la red. Cada archivo tiene su propio hash seg\u00fan su contenido, que se puede utilizar posteriormente para recuperarlo. Los archivos no se dividen en bloques, sino que se almacenan en su totalidad.<\/p>\n<p><b>metastocle <\/b> \u2014 es una capa que hereda de spreadable, que permite almacenar datos en la red, pero no archivos. La interfaz es similar a bases de datos noSQL. Se puede, por ejemplo, a\u00f1adir un archivo a storacle, obtener su hash y escribirlo en metastocle vinculado a algo.<\/p>\n<p><b>museria<\/b> \u2014 hereda de storacle y metastocle. Esta capa es responsable del almacenamiento de m\u00fasica. El almacenamiento trabaja solamente con archivos mp3 y etiquetas id3. <\/p>\n<p>Se utiliza el \"nombre completo\" de la canci\u00f3n como \"clave\" en forma de <b>Artista (TPE1) \u2014 T\u00edtulo (TIT2)<\/b>Por ejemplo:<\/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>\nPara saber con el m\u00e1ximo detalle c\u00f3mo se forman los nombres de las canciones se puede <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria\/blob\/master\/src\/utils.js\">aqu\u00ed<\/a><\/noindex>ver la funci\u00f3n <b>utils.beautifySongTitle()<\/b>.<\/p>\n<p>Una coincidencia por claves se considera el porcentaje configurado en los ajustes del nodo. Por ejemplo, un valor de 0.85 significa que si la funci\u00f3n de comparaci\u00f3n de claves (nombres de canciones) detecta una similitud mayor al 85%, se considera que es la misma canci\u00f3n.<\/p>\n<p>El algoritmo para determinar la similitud est\u00e1 tambi\u00e9n all\u00ed, en la funci\u00f3n <b>utils.getSongSimilarity()<\/b>.<\/p>\n<p>La car\u00e1tula de la canci\u00f3n, para recuperaci\u00f3n posterior, tambi\u00e9n se debe adjuntar a trav\u00e9s de las etiquetas (<b>APIC<\/b>). En las utilidades (utils) hay todos los m\u00e9todos necesarios para obtener y procesar las etiquetas.<\/p>\n<p>Un ejemplo de funcionamiento con el almacenamiento a trav\u00e9s del cliente se puede ver en <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria\">readme<\/a><\/noindex>.<\/p>\n<blockquote><p>Todas las capas mencionadas anteriormente son autosuficientes y pueden ser utilizadas por separado como capas m\u00e1s bajas para otros proyectos. Por ejemplo, ya hay una idea de hacer una capa para almacenar libros.<\/p><\/blockquote>\n<p>\n<b>museria-global<\/b> \u2014 es un repositorio git ya configurado para ejecutar su propio nodo en la red global de m\u00fasica. Clona, <b>npm i &amp;&amp; npm<\/b> start y eso es todo. Se puede configurar m\u00e1s detalladamente, ejecutar en docker, etc. Hay informaci\u00f3n detallada disponible en <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria-global#museria-global-storage-alpha-\">github<\/a><\/noindex>.<\/p>\n<p>Cuando se actualiza el repositorio, tambi\u00e9n es necesario actualizar su nodo. Si cambia el n\u00famero de versi\u00f3n mayor o menor, esta acci\u00f3n es obligatoria; de lo contrario, los nodos antiguos ser\u00e1n ignorados por la red.<\/p>\n<p>Se puede trabajar con canciones manual o program\u00e1ticamente. Cada nodo inicia un servidor para diversas tareas. En particular, al visitar el punto final por defecto, obtendr\u00e1 una interfaz para trabajar con m\u00fasica. Por ejemplo, puede entrar en <noindex><a rel=\"nofollow\" href=\"http:\/\/storage.museria.com\">el nodo ra\u00edz<\/a><\/noindex> (el enlace puede no ser relevante m\u00e1s tarde; tambi\u00e9n se pueden obtener nodos de entrada en <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/museria\">Telegram<\/a><\/noindex>, o ver actualizaciones en GitHub).<\/p>\n<p>As\u00ed puedes buscar y descargar canciones en el almacenamiento. La carga de canciones puede realizarse en dos modos: normal y moderado. El segundo modo significa que un ser humano, y no un programa, conduce el proceso. Y si marca esta casilla al agregar, ser\u00e1 necesario resolver un captcha. Las canciones se pueden agregar con prioridades de -1, 0 o 1. La prioridad 1 solo se puede establecer en modo moderado. Las prioridades sirven para que el almacenamiento tome decisiones m\u00e1s eficaces sobre qu\u00e9 hacer cuando intenta reemplazar una canci\u00f3n existente por una nueva. Cuanto mayor sea la prioridad, mayores ser\u00e1n las posibilidades de sobrescribir el archivo existente. Esto ayuda a combatir el spam y aumenta la calidad de las canciones cargadas. <\/p>\n<p>Si comienza a agregar canciones en el almacenamiento, intente tambi\u00e9n adjuntar im\u00e1genes (portadas), aunque este campo no sea obligatorio. En el 99% de los casos, las primeras im\u00e1genes en Google por los nombres de las canciones son portadas de \u00e1lbumes.<\/p>\n<p>\u00bfC\u00f3mo ocurre t\u00e9cnicamente la adici\u00f3n de archivos, en pocas palabras?<\/p>\n<ul>\n<li>El cliente recibe la direcci\u00f3n de un nodo libre, que durante un tiempo se convertir\u00e1 en coordinador.<\/li>\n<li>Se activa la funci\u00f3n de agregar una canci\u00f3n (por una persona o por c\u00f3digo), se realiza una solicitud de adici\u00f3n al punto final del coordinador.<\/li>\n<li>El coordinador calcula cu\u00e1ntos duplicados es necesario conservar (par\u00e1metro configurable).<\/li>\n<li>Se buscan los nodos m\u00e1s apropiados para el almacenamiento.<\/li>\n<li>El archivo, directamente, se env\u00eda a estos nodos. <\/li>\n<\/ul>\n<p>\n\u00bfC\u00f3mo ocurre t\u00e9cnicamente la obtenci\u00f3n de archivos?<\/p>\n<ul>\n<li>El cliente recibe la direcci\u00f3n de un nodo libre, que durante un tiempo se convertir\u00e1 en coordinador.<\/li>\n<li>Se activa la funci\u00f3n de obtener una canci\u00f3n (por una persona o por c\u00f3digo), se realiza una solicitud de obtenci\u00f3n al punto final del coordinador.<\/li>\n<li>El coordinador verifica la existencia del enlace en la cach\u00e9. Si existe y funciona, se devuelve inmediatamente al cliente; de lo contrario, se consultan los nodos sobre la existencia.<\/li>\n<li>Se est\u00e1 obteniendo el archivo a trav\u00e9s del enlace, si se encontr\u00f3 alguno. <\/li>\n<\/ul>\n<p><\/p>\n<h3>Alternativas para creadores de m\u00fasica<\/h3>\n<p>\nSiempre me ha interesado la pregunta de c\u00f3mo se puede evaluar objetivamente el valor de muchas obras creativas. \u00bfPor qu\u00e9, por ejemplo, alguien pone su \u00e1lbum musical a 10$? \u00bfO a 20$ o a 100$? \u00bfCu\u00e1l es el algoritmo? Cuando hablamos de alg\u00fan producto f\u00edsico, o incluso de muchos tipos de servicios, al menos podemos calcular el costo de producci\u00f3n y partir de eso. <\/p>\n<p>Ok, supongamos que se puso 10$. \u00bfEs realmente eficaz? Supongamos que escuch\u00e9 un \u00e1lbum o una canci\u00f3n de all\u00ed y decid\u00ed agradecer. Pero seg\u00fan mis sensaciones y posibilidades, 3$ son mi techo. \u00bfY aqu\u00ed qu\u00e9 hacer? Lo m\u00e1s probable es que simplemente no haga nada, como la mayor\u00eda de las personas. <\/p>\n<p>Al establecer un precio fijo por el trabajo creativo, simplemente te limitas, no permites que m\u00e1s personas te env\u00eden menos dinero, que en suma podr\u00eda ser m\u00e1s significativo que aquellos que compren al precio que t\u00fa has establecido. Me parece que la creatividad es precisamente el \u00e1mbito donde deber\u00edan prevalecer las donaciones. Para esto se necesita:<\/p>\n<ul>\n<li>Ense\u00f1ar a las personas a agradecer de esta forma. Los creadores deben mostrar claramente que les gustar\u00eda recibir donaciones, a\u00f1adir enlaces a diferentes m\u00e9todos de pago en todas partes, etc.<\/li>\n<li>Se necesitan m\u00e1s mecanismos para simplificar y reforzar estos procesos. Por ejemplo, crear un sitio global donde se pueda donar por la creatividad a trav\u00e9s de enlaces de autor.\n<p>Supongamos que el enlace es aproximadamente as\u00ed: <\/p>\n<p><b><code>http:\/\/someartistsdonationsite.site\/category\/artist?external-info<\/code><\/b><\/p>\n<p>Si nos limitamos a los m\u00fasicos, entonces:<\/p>\n<p><b><code>http:\/\/someartistsdonationsite.com\/music\/miyagi?song=blabla<\/code><\/b><\/p>\n<p>El int\u00e9rprete necesita verificar su apodo y asociarlo con \u00e9l.<\/p>\n<p>En el cliente museria a\u00f1adimos una funci\u00f3n para generar este tipo de enlace, y todos los proyectos que utilicen el almacenamiento pueden colocar botones para donaciones con estos enlaces junto a las canciones en sus sitios\/aplicaciones. Los usuarios tienen la posibilidad de donar de forma muy r\u00e1pida y sencilla. Naturalmente, este enfoque se puede usar en cualquier proyecto y categor\u00eda de creatividad, no solo a trav\u00e9s del almacenamiento.<\/li>\n<\/ul>\n<p><\/p>\n<h3>\u00bfPor qu\u00e9, para ti, un almacenamiento musical, y c\u00f3mo puedes participar en esto?<\/h3>\n<p><\/p>\n<ul>\n<li>Si trabajas en un proyecto relacionado con la m\u00fasica o planeas crear uno, todo esto fue concebido para ello. Puedes usar museria para almacenar y obtener canciones, aumentando el flujo de canciones en la red. Si, adem\u00e1s, tienes la capacidad de levantar y mantener al menos un nodo propio, ser\u00e1 la mejor contribuci\u00f3n al desarrollo de la red.<\/li>\n<li>Quiz\u00e1s est\u00e9s listo para asumir alg\u00fan otro rol: ayudar con el c\u00f3digo, o llenar y moderar la base de datos, difundir informaci\u00f3n sobre el proyecto a tus conocidos, etc.<\/li>\n<li>Tal vez te haya gustado la idea y est\u00e9s dispuesto a ayudar financieramente para que todo esto viva y se desarrolle. Cuantos m\u00e1s nodos, m\u00e1s canciones.<\/li>\n<li>O simplemente, en alg\u00fan momento necesitar\u00e1s encontrar y descargar una canci\u00f3n. Podr\u00e1s hacerlo muy f\u00e1cilmente, por ejemplo, a trav\u00e9s de <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/MuseriaBot\">un bot de Telegram<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nEl proyecto est\u00e1 en su etapa inicial. Se ha lanzado una red de prueba, los nodos pueden reiniciarse con frecuencia, requerir actualizaciones, etc. Si no hay problemas cr\u00edticos durante el per\u00edodo de evaluaci\u00f3n, esta misma red se transformar\u00e1 en la principal.<\/p>\n<p>Puedes ver la informaci\u00f3n sobre un nodo desde afuera: la cantidad de canciones, espacio libre, etc., a trav\u00e9s de un enlace del tipo <b><code>http:\/\/node-address\/status<\/code><\/b> o <b><code>http:\/\/node-address\/status?pretty<\/code><\/b><\/p>\n<p>Mis contactos:<\/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\">Grupo en Telegram en ingl\u00e9s.<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/museria.com\/\">Y el sitio que dio origen a toda esta idea.<\/a><\/noindex><\/li>\n<\/ul>\n<p>Fuente: <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.2 - 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\/es\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\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\/es\/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 almacenamiento de m\u00fasica descentralizado | ProHoster","description":"Una vez, me junt\u00e9 para escribir una aplicaci\u00f3n, para que.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","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\/es\/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\/es\/wp-json\/wp\/v2\/posts\/80222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=80222"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/80222\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/80223"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=80222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=80222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=80222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}