Podcast Z #6: Proyecto X - DNS como base de datos distribuida mundial
Fetch error
Hmmm there seems to be a problem fetching this series right now. Last successful fetch was on February 26, 2024 22:59 ()
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
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