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

29:48
 
Compartir
 

Fetch error

Hmmm there seems to be a problem fetching this series right now. Last successful fetch was on April 07, 2020 17:00 (7M ago)

What now? This series will be checked again in the next day. If you believe it should be working, please verify the publisher's feed link below is valid and includes actual episode links. You can contact support to request the feed be immediately fetched.

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. http://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