Podcast Z #6: Proyecto X - DNS como base de datos distribuida mundial

29:48
 
Compartir
 

Manage episode 207895417 series 2332298
Por Jesús Cea and Pablo Lobariñas descubierto por Player FM y nuestra comunidad - los derechos de autor son propiedad de la editorial, no de Player FM, y el audio se transmite directamente desde sus servidores. Presiona el botón de suscripción para rastrear cambios en Player FM o pega el URL del feed en otras aplicaciones de podcast.
Usar el DNS como un sistema de cacheo mundial. https://podcast.jcea.es/podcastz/6

Notas:

  • 00:30: El proyecto es confidencial, pero quiero exponer algunas técnicas que pueden ser útiles para otros programadores.

  • 02:50: El programa requiere actualizarse constantemente de forma automática.

  • 04:30: El usuario solo instala manualmente un "descargador".

  • 05:50: Descripción del proceso de actualización.

  • 06:30: Firma digital, imprescindible cuando hay actualizaciones constantes a través de redes no confiables.

  • 08:00: En la primera versión del proyecto, el programa se descargaba en cada ejecución (20KBytes).

  • 09:00: Pero esto no escala cuando el número de usuarios crece, o el tamaño del fichero crece.

  • 13:30: Usar el DNS para comprobar las versiones, utilizándolo de caché. A nivel mundial y de forma simple.

  • 15:20: Cuando un ordenador pide a su ISP que haga una petición de DNS, dicho ISP cachea el resultado y está disponible para otros clientes. Y el tiempo de cacheo es configurable en el servidor origen.

  • 17:30: Problema: sin instalar librerías adicionales, Python tiene una capacidad de interacción con el DNS muy limitada. Hay que buscarse la vida.

  • 19:30: En vez de decir a través del DNS qué versión es la más moderna, lo que hacemos es permitir que el cliente confirme si su versión es la última o no. Comprobamos si el registro "HASH_MD5.md5.DOMINIO" existe o no.

  • 22:40: Ojo con los ISPs puñeteros que resuelven a sus propias IPs las resoluciones DNS inexistentes. Solución: Comprobamos que la IP resuelta sea la esperada.

  • 25:00: Firma digital por El Gamal.

  • 27:20: El actualizador no hace más descargar la versión actual (con todas las verificaciones) y luego le pasa el control. Actualizar el actualizador es "complicado" :).

10 episodios