Logo

Iván de la Jara

  • Archivo
  • RSS
  • Pregúntame

¿Te apuntas a mejorar el P2P actual?

Antes de levantarme estaba pensando en que hoy seria lo suyo ver alguna película antes de acostarme, porque tengo que acostarme temprano… Y me he dicho… pero… ¿Porque son tan mierdas las descargas?

La descarga directa esta siendo borrada cada vez mas rápido, el torrent no puedes verlo online mientras se descarga y no dura, el emule lo mismo y encima es lentísimo… Pando tienes que buscar y descargar solo lo que haya disponible…

Analicemos el mercado de las descargas…

Descarga directa, megavideo y similares:

  • Necesitas meter claves y esperar para empezar a descargar los archivos en algunas webs, tiene limites.
  • A veces se hace desesperantemente lento.
  • Borran los archivos a la primera de cambio.
  • Tienes que ir buscando por todo Internet tropecientos enlaces para bajar por el jdownloader.

Torrent y Pando:

  • Las descargas dejan de funcionar en un tiempo demasiado corto y se quedan a la mitad, cosa imperdonable.
  • La descarga es desigual y ofuscada. No se puede ver mientras se descarga
  • Tienes que ir buscando por todo Internet

Emule:

  • Tiene buscador pero a veces los archivos contienen virus.
  • La descarga es desigual, ofuscada y muy lenta.

¿Y sabéis que me he dicho? ¿Porque no hacemos el HTTP2P? La web es el futuro. Lo ideal seria lo siguiente:

  • Descarga rápida y segura legalmente para los alojadores de partes de archivos.
  • Enlaces directos de descarga sin ninguna acción a realizar por parte de los usuarios.
  • Todo usuario es también host de archivos.
  • Hay buscador descentralizado, tipo metabuscador de torrents sobre todos los hosts. Nadie aloja nada completo. Todo tiene varias copias.
  • No se necesita programa instalable o modificación de servidores. Todo es a través de web, javascript o flash.
  • Los archivos deben poder ser descargados de forma secuencial a la suficiente velocidad como para ser visualizados online.
  • El encriptado y ofuscación de las partes se hace por parte del cliente por tanto el host o el servidor maestro (que no existe ninguno) por tanto los hosters no saben que están almacenando y no pueden ser juzgados. Igual que el p2p normal.
  • El usuario ofrece (opcional) un ftp o cualquier otro método mediante un transporte que permite disponer de los archivos por descargas directas sin claves, así el cliente puede descargar diferentes partes al mismo tiempo mientras las codifica (html5) en un archivo nuevo y visualizable desde el navegador.
  • Suscripciones por RSS para series completas o control de versiones, con la excusa de actualizaciones se puede utilizar para los capítulos de las series.
  • Se tiene que poder descargar directamente desde jdownloader (esto veremos a ver como).

La forma de realizar esto no seria tan difícil como parece. Incluso podría hacer un panel de control central con el que luego gestionas los ftps (que se haría automático todo pero se le pondrían los limites del hosting). Los archivos no tienen que contener ningun tipo de traza detectable del protocolo http2p porque sino los hostings podrían configurar un autoborrado de los archivos.

Lo bueno de esto es que los hostings están siempre online (bueno dependiendo de los limites) y por tanto la velocidad de descarga superaría a la descarga directa y a torrent juntos porque cada parte se obtendría de un servidor diferente para optimizar la velocidad. Eso si, los limites de descarga pues iba a ser complicado ponerlos…

El sistema tendría que funcionar en móviles y poder usar cualquier player (por tanto el script tendría que ir generando un archivo en memoria o en disco mientras descarga las partes por orden). Esto daría unos resultados un tanto raros porque si una de las descargas es lenta atrasaría todas las partes… pero por otro lado la distribución de las partes se haría incluso sin estar conectados por lo que se podrían organizar según proximidad de los clientes. O mejor, alojando los archivos siempre en servidores legalmente seguros para cada cliente.

Supongo que el almacenamiento html5 también podría usarse para algo pero lo interesante seria ofrecer descargas y creo que eso no iba a ser posible a menos que fuese por flash, cosa que habría que evitar al máximo posible. Porque el tema es que no haga falta tener nada instalado para que funcione sino sería una perdida de tiempo intentar convencer a nadie…

Otra de las opciones que seria la leche seria que el sistema funcionase automáticamente extrayendo archivos de servicios de descarga directa (con el tema de los transportes).

Existen varios sistemas de P2P instaalables en el navegador pero es logico que no tengan repercusión porque si hay que instalarse otro programa es como instalarte directamente torrent y no vas a usar un protocolo nuevo qu eno usa nadie y que no te sirve para nada…

De esto sacamos otro detalle. Tiene que poder servir para acelerar las descargas de sitios de descarga directa.

HTML5 tiene algo para implementar P2P pero creo que esta mas centrado a acelerar descargas directas que a servir de plataforma de almacenamiento y distribución. De todas formas lo mejor es implementar el sistema de la forma mas básica, por Ajax, no por requerimientos de plugins o que el navegador tenga instalado “no se que” o sea “no se cual versión”. Si no le funciona a todo el mundo no va a prosperar.

Centrémonos. El tratado de archivos y partes debe ser totalmente serverside, mediante, por ejemplo PHP (aunque supongo que si lo hacemos open source aparecería para todo tipo de lenguajes). Por tanto los servidores web deben dedicarse a procesar, cortar, encriptar, serializar y difundir las partes. Por lo que para descargar un archivo lo que haya que hacer es buscar por los diferentes servidores (cada servidor añadirá otros servidores) la lista de las partes de archivos que buscamos en concreto y su clave de desencriptado. Estos mismos archivos de búsqueda ejercerán de “ping” y conteo del tiempo para saber que servidores están mas cerca, menos saturados o deben ser usados para descargar mas rápido, según el orden de llegada de los datos. Así que debe existir un archivo que contenga los listados de trozos de un archivo completo así como su descripción, tipo e imagen. Esto al ser open source cada server dirá si permite almacenar estos archivos (que son la constancia de saber que es cada archivo y por tanto sujetos a problemas legales)…

Perdón, un amigo me estaba comentando un tema y se me ha ido la olla… Cuando le hablas a alguien que no es informático de estas cosas en seguida te hablan de ganar dinero… Esta claro que la intención no es ganar dinero sino que se pueda disfrutar de descargas directas con vídeo online y que sea decente… Pero los que se dedican a subir los archivos a megavideo lo hacen porque pueden ganar dinero con ello… Por tanto debería poderse ganar dinero de alguna forma y por ahora lo único que se me ocurre para que los uploaders ganen dinero es dejar que las descripciones de los archivos tengan un apartado publicitario den HTML. Un banner, o enlace a “mas información” con el que puedan sacarse un dinerillo de alguna forma… Hay una cosa negativa de este tipo de cosas y es que normalmente no se le otorga crédito al uploader. Si por ejemplo seriesyonkis pone un enlace, en ese enlace no aparece la realidad, que no ha sido seriesyonkis quien ha subido el archivo sino que ha sido seriespepito o tu prima la calva… Por tanto enlace de crédito para el uploader principal. Al menos si no modificas el server claro.

Una de las opciones podría ser que el server revise un directorio en concreto (en el que se podrían poner links si hiciese falta) donde todo lo que aparezca ahí sea automáticamente publicado, por si por ejemplo usas un programa de torrents, amule o cualquier otro “transporte”. Incluso podría instalarse el server una persona en su casa.

Así que por ahora sólo se me ocurre como dificultad el hecho de que en el cliente se desencripten los archivos y se unan en uno mas grande que a su vez éste sea cargado desde cualqueir aplicación como si fuese cualquier otro archivo de la red. Esto se podría hacer desde php en server pero entonces se perderían las ventajas de la descarga simultanea de partes. Se antoja una putada que tengas que tener una pestaña con 1GB de datos y que se te corte Internet en ese momento… Supongo que de igual forma que se descargan los archivos xml de datos de los servidores se descarguen también las partes de los archivos y luego una vez estén todos descargados es cuando se unan…

Otra de las opciones debería ser poder enviar borrado de archivos por parte de un uploader, si este tiene una clave que no sea publica para así identificarse como uploader verificado y que no pudiese entrar un atacante y borrar todos los archivos de toda la red. De todas formas debería haber un limite de permanencia para los archivos, por si se olvida la clave y este limite quizá deberían ser años o meses… Porque una de las pegas que tiene torrent y pando es que se caducan las descargas… Esto me dice que deberían haber mas datos en los archivos “.http2p” como el bitrate y la permanencia del archivo. Una vez pasada esa permanencia se deberían borrar, aunque claro las partes no contienen estos datos de forma visible porque sino se podrían detectar y borrar de forma automática. Deberían poder tener incluso extensión jpg o html.

Mas pienso en el cliente javascript y mas difícil lo veo, quizá solo se tenga que hacer por flash… HTML5 tiene un limite de 5mb por lo que se antoja imposible mediante ese modo… Sobretodo si un archivo de vídeo tiene 2GB. Veo mas factible abrir 50mil iframes e ir borrando y añadiendo a un iframe conjunto los datos correlativos que se vayan obteniendo, pero ¿Esto permitiría cargar ese archivo desde otro lugar? Suena a bloqueo del navegador. Al menos esta opción funcionaría en navegadores bastante antiguos. Encriptar y desencriptar los archivos mediante cadenas tiene pinta de ser algo bastante limitado a un par de KB por iframe… Ademas del posible limite de 10 o 15 frames simultáneos por pagina… Demasiado poco, se gastaría mas en peticiones de descarga que en descargas en sí… Esto me recuerda a como Google hace algo similar con su sistema de Instant Previews. Veamos…

Aquí tenemos un script jQuery que hace lo mismo que Instant Previews y parece que funciona… Así que al menos en archivos pequeños funciona ¿Funcionaria en vídeos también? Supongo que es cuestión de probar… Según leemos en la descripción oficial, los trozos de archivos son de limite 32kb. Esto hace que esta película convertida en bluray, “300” a 720p, ocupe 4.469.946.833 bytes y esto implica que se necesiten 136.412 partes de nada… Aunque con eso ganamos que ningún hosting a menos que sepa que los archivos son de HTTP2P pueda darse cuenta de que están alojando algo que no sean archivos normales de uso habitual… Cualquier cache o archivo de imagen sirve como excusa para un archivo valido de 32kb. Si le pones la extensión que te de la gana o extensiones aleatorias ofuscas el archivo y si encima cada parte esta en un lugar diferente es imposible que sepas de que archivo es cada parte. Por lo que un archivo con los md5 de cada parte permitiría juntarlas… Sin necesidad de encriptar porque al convertir a base 64 ya estas “entriptando” de tal forma que “no puedes” detectar el mime type del archivo leyendo las cabeceras… Motivo por el cual interesaba encriptar. Aunque la conversión a base64 aumenta el tamaño un 33% luego se comprime en gzip y en teoría se vuelve a quedar bastante similar… 

Por tanto solo queda probar si es posible para archivos de GB y si lo es, montar toda la parafernalia de conversión, corte y movimientos de partes… Para probar una imagen tan sólo tendríamos que hacer este ejemplo. Lo que no me termina de quedar claro es si el Instant esta hecho a partir de varios archivos o uno solo…

Aquí tenemos también buscadores de torrents…

¿Alguien se apunta para liarla con software libre?

  • hace 11 meses
  • Comments
  • Enlace permanente
  • Share
    Tweet

Comentarios recientes

Comentarios del blog proporcionados por Disqus
← Anterior • Siguiente →

Iván de la Jara

Portrait/Logo

Adelantándome al futuro que probablemente aun no has asimilado.

Asperger, gay y geek...
¿Te parece poco?
  • Google+ personal
  • Proyecto GayWok
  • RSS
  • Aleatorio
  • Archivo
  • Pregúntame
  • Móvil

Effector Theme by Carlo Franco.

Proporcionado por Tumblr