Holochain Dev Pulse 20 - Validación de confianza y datos

Criptografía y Complejidades de Captura

Holochain Dev Pulse 20

Resumen

Esta semana ha sido una oportunidad refrescante para hacer mucho trabajo "invisible": explorar la arquitectura, mapear y comprender las complejidades que hemos descubierto, y así sucesivamente. También nos hemos sentido cómodos con nuestro nuevo proceso de lanzamiento y estamos felices de recibir a nuestro nuevo ingeniero de DevOps.

Reflejos

  1. Capturando Complejidad y Mapeando las Posibilidades Adyacentes
  2. Característica API: verificación de firma y soporte de KeyStore de bajo nivel
  3. Holo Enablement: arranque de instancia en vivo
  4. Experiencia del desarrollador: pruebas de unidad de ADN con Rust HDK
  5. Cambio de última hora / Característica API: Validación CRUD
  6. Desafíos: Sincronización del proceso de lanzamiento y soporte de DevOps
Holochain Dev Pulse 11-18 de marzo de 2019

Detalles

1. Capturando la complejidad y mapeando las posibilidades adyacentes

El Principio de KISS, no importa lo que digas que representan los S, es axiomático para los desarrolladores. Los conceptos simples y el código simple facilitan la administración de su base de código. Sin embargo, cada proyecto tiene una medida de complejidad irreducible, y resulta que construir una nueva pila distribuida para Internet tiene bastante.

Estamos tomando señales de diseño de los sistemas vivos, en donde muchas entidades emplean reglas simples para gobernar sus interacciones. Estas reglas básicas dan como resultado una complejidad sorprendente y, a menudo, incluso surgen de sistemas complejos de nivel inferior. Esta complejidad es en realidad una ventaja para los sistemas vivos: es lo que les permite adaptarse a las amenazas, prosperar y dar a luz a la maravillosa riqueza que vemos a nuestro alrededor.

Gran parte de la complejidad del espacio de diseño de Holochain solo se descubre a medida que avanzamos: a medida que exploramos cosas que parecen sencillas, se desarrollan en redes de subproblemas. Puede ser difícil mantener una vista de todas las piezas entrelazadas.

Hemos estado haciendo un montón de trabajo detrás de escena esta última semana, mapeando toda la complejidad que hemos descubierto hasta ahora. Hemos producido muchos diagramas y documentos arquitectónicos en el proceso. Sin embargo, el resultado final no son pedazos de papel, es la confianza. Sabemos de dónde venimos y sabemos hacia dónde nos dirigimos a continuación. Cada poco de complejidad, cuando se entiende y se escribe, se convierte en algo conocido.

Este mapeo, reflexión y exploración hace que el diseño sea más robusto. Es bueno estar entrando en esta fase en este momento.

2. Característica API: verificación de firma y soporte de KeyStore de bajo nivel

La criptografía está en el corazón del diseño de Holochain; es lo que permite a los participantes confiar en la validez de los datos que ven. La criptografía de clave pública, específicamente las firmas, es una de las primitivas básicas para generar confianza intrínseca en los datos.

Holochain adjunta un encabezado con una firma a cada dato en el nivel de "subconsciente", sin embargo, muchos casos de uso también necesitan firmas en la aplicación.

Verificación digital

La próxima versión alfa verá la adición de la función `verificar_signature ()` como complemento de `sign ()`. Esto nos acerca a la paridad de características con Holochain-Proto. Es bastante emocionante, porque las aplicaciones importantes como DPKI y HoloFuel dependen en gran medida de los datos firmados por dos o más claves. Si está diseñando una aplicación que requiere transacciones firmadas o garantías de terceros, como contratos, monedas y verificación de identidad, estas dos funciones son cruciales para usted.

A medida que una persona usa más aplicaciones de Holochain, generará muchas claves que representan y controlan sus identidades en las redes a las que pertenecen. DPKI es una aplicación central diseñada para administrar esas claves. A veces necesita firmar datos con claves de otras aplicaciones. Actualmente estamos creando soporte de bajo nivel para un "almacén de claves", que contiene todas las claves de un usuario en un dispositivo y las hace accesibles para las aplicaciones apropiadas. Nota: Esta característica estará en 0.0.8-alpha.

3. Habilitación de Holo: arranque de instancia en vivo

A medida que aumentamos nuestra prueba Holo Closed Alpha, los requisitos de Holo continúan impulsando las características de Holochain. Hay un punto final de API de administración de conductor, `admin / instance / add`, que le permite crear una instancia de un ADN específico. El Holo Hosting Interceptor, que hace girar nuevas instancias en dispositivos de alojamiento en nombre de los usuarios de la web, utiliza este punto final para hacer su trabajo. Hasta ahora, solo tenía entradas escritas en el archivo de configuración, lo que significaba que tenía que reiniciar el Conductor para que los cambios surtan efecto. Ahora, las instancias se crean de inmediato. Nota: Esto significa que se crean instancias para un usuario, en realidad no se inician.

4. Experiencia del desarrollador: pruebas de unidad de ADN con Rust HDK

Aquí hay un hecho poco conocido: puede escribir pruebas unitarias para su código zome, compilar su ADN en modo de prueba y ejecutar las pruebas sin activar el conductor de desarrollo completo. Sin esta solicitud de extracción, habría tenido que agregar definiciones de funciones vacías para todas las funciones API de HDK para no obtener "referencias no resueltas" al intentar ejecutar la "prueba de carga".

Este cambio agrega apéndices para cada función de HDK API para que pueda escribir pruebas unitarias para sus funciones de zome que dependen de la API. Es bastante limitado; sus pruebas no deberían esperar respuestas reales de las llamadas a la API de Holochain, como `commit_entry ()` y `get_entry ()`. ¡Los valores de retorno siempre serán un éxito con una carga útil vacía!

5. Cambio de última hora / Característica API: Validación CRUD

Ahora puede especificar reglas de validación para eliminar o actualizar una entrada. Esto viene con un cambio importante: las funciones de validación recibirán solo un argumento, una enumeración llamada `hdk :: EntryValidation `, cuando esta característica aterriza con 0.0.8-alpha. El parámetro genérico "T" representa la estructura de sus tipos de entrada. La enumeración viene en tres sabores:

  • `Crear`, que contiene la nueva entrada.
  • `Modificar ', que contiene las entradas antiguas y nuevas, así como el encabezado de la entrada anterior.
  • `Eliminar`, que contiene la entrada anterior y su encabezado.

Los tres también contienen el paquete de validación. Proporcionaremos más documentación cuando esta función esté disponible.

6. Desafíos: Sincronización del proceso de lanzamiento y soporte de DevOps

Todavía estamos en el proceso de adaptarnos a nuestro nuevo proceso de lanzamiento, y estamos agradecidos por su paciencia mientras resolvemos los problemas - lecciones aprendidas - siga el guión de lanzamiento al pie de la letra y tenga cuidado con los errores de prueba de Windows en el liberar candidato! Nuestro objetivo es sincronizar los Dev Pulses semanales con los lanzamientos semanales.

También nos complace informar que contratamos a un ingeniero de DevOps la semana pasada y que se puso en marcha. Uno de nuestros desarrolladores comentó que ya ha demostrado su valía.

Es un experto en rastrear problemas de compilación, dependencias perdidas o rotas y problemas de CI. Él está ayudando inmensamente con lanzamientos consistentes y de alta calidad.
La criptografía está en el corazón del diseño de Holochains

¿Construyendo una aplicación / plataforma en Holochain? ¡Queremos escuchar de ti!

¿Estás construyendo en Holochain? Nos encantaría conectarnos y escuchar más sobre su aplicación / plataforma. ¡Por favor, tómese unos minutos para completar esta encuesta! Nuestro objetivo es enumerar todos los proyectos que se basan en Holochain en nuestro sitio web.

Desbordamiento de pila: expanda la base de conocimiento de Holochain

¡Ayúdanos a hacer crecer la base de conocimiento de Holochain en Stack Overflow!

Envía tu pregunta sobre Holochain.
Envíe su pregunta de Holochain Rust.

Subiendo:

1) Versión preliminar de desarrollador 0.0.8-alpha

Conéctese con la comunidad de desarrolladores:

  • Construir sobre Holochain: Portal del desarrollador
  • Solicitar: ¡Estamos buscando un desarrollador de óxido y un coordinador de lanzamiento y propietario del producto!
  • Conéctate en Twitter