Ya es hora de que profundicemos en los conceptos arquitectónicos fundamentales que constituyen los fundamentos de New Golem.

¿Recuerdas la parte I? Compruébalo aquí

Ya es hora de que profundicemos en los conceptos arquitectónicos fundamentales que constituyen los fundamentos de New Golem.

Las ideas de la Red Golem han evolucionado a lo largo de los años para finalmente formar una visión lógica genérica de un mercado descentralizado de recursos informáticos: por «recurso informático» nos referimos a casi cualquier dispositivo de hardware que ejecute casi cualquier software, que se puede comunicar mediante una red informática.

El siguiente hito (apodado Yagna internamente) es la primera implementación de estos conceptos. 

La implementación de referencia, que demuestra los mecanismos de la red Golem, es modular y permite que los desarrolladores e integradores independientes desarrollen mejoras y aplicaciones. 

Se espera que todas las nuevas aplicaciones compatibles con Golem sigan ciertos patrones y protocolos básicos, así que vamos a sumergirnos en …

Nuevos fundamentos del mercado de Golem

Permítanos reiterar cómo vemos un mercado de recursos informáticos descentralizados, que Golem Network esencialmente debe ser.

Los participantes de la red juegan dos roles:

  • Solicitante : una parte que tiene la intención de consumir recursos informáticos específicos y pagarlos en tokens Golem,
  • Proveedor : una parte que está dispuesta a compartir sus propios recursos informáticos a cambio de tokens Golem.

El objetivo principal de la red New Golem es permitir que los Solicitantes y Proveedores se encuentren de manera descentralizada. 

Para lograr eso, tanto los Solicitantes como los Proveedores deben tener una forma de expresar sus intenciones en el mercado, es decir. «¿Qué quiero comprar?», «¿Qué recursos tengo para ofrecer?» En otras palabras, los Solicitantes deben formular sus Demandas , mientras que los Proveedores deben expresar sus Ofertas .

Exactamente después de que se formulan, las Demandas y Ofertas deben publicarse en el mercado de Golem Network, que las igualará y enrutará, de modo que los Solicitantes se pongan en contacto con Proveedores potenciales para negociar los «términos de negocios».

Gráfico representativo del dominio y lenguaje de especificación de la oferta.

La visión anterior implica que tanto los Solicitantes como los Proveedores pueden expresar sus intenciones con respecto a los servicios requeridos, los volúmenes de recursos, los términos comerciales, etc.

Teniendo en cuenta la gran variedad de lo que podemos considerar un «recurso informático para compartir» (que puede ser cualquier cosa, desde un trozo de almacenamiento a través de una máquina virtual, hasta un servicio informático complejo como, por ejemplo, un clúster Hadoop), hemos creado una forma de lograr la visión antes mencionada: el lenguaje de especificación de demanda y oferta.

Lenguaje de especificación de demanda y oferta

En lugar de tratar de elaborar especificaciones para todos los recursos informáticos concebibles, nuestro equipo de Golem decidió definir un modelo de especificación genérico. Cualquier integrador que desee agregar nuevas clases de recursos informáticos al ecosistema Golem puede ampliar este modelo.

Siempre que las Demandas y Ofertas estén compuestas siguiendo un conjunto específico de reglas, pueden publicarse en la Red Golem. Entonces, las propuestas comerciales coincidentes pueden aparecer gracias al protocolo Golem Market , que está diseñado para abstraer de casos de uso específicos. En efecto, el mercado Golem es universal y no limita la variedad de recursos informáticos que se pueden especificar y ofrecer.

Tanto la demanda como la oferta se componen de:

  • Propiedades : que indican los atributos de los requisitos de recursos, precios y condiciones de pago, Solicitante / Proveedor, etc.
  • Restricciones : que expresan las condiciones que deben cumplir las propiedades del otro lado. Las restricciones se expresan en una sintaxis similar a los filtros LDAP , pero con algunos matices específicos de Golem.

Un ejemplo de demanda puede tener el siguiente aspecto:

#properties

golem.com.term.expiration_dt="2020-06-15T23:20:50.52Z"
golem.srv.comp.wasm.task_package="hash:sha3:44aba2d41021fac2a3b7af8a3ccfc0a3d4a435f9187ea7d5c162035b:http://54.231.6.186:4500/app-44aba2d4.yimg"

#constraints

(&
    (golem.inf.mem.gib>0.5)
    (golem.inf.storage.gib>1)
    (golem.com.pricing.model=linear)
    (golem.srv.runtime.name=wasmtime)
)

Una oferta de muestra puede ser la siguiente:

#properties

#Supported Payment model "payu" = *Pay* as you *U*se
golem.com.payment.scheme="payu"
golem.com.payment.scheme.payu.interval_sec=6

#Price = 0 + 0.01 * <exe unit duration in secs> + <exe unit cpu usage in cpu secs> * 0.01
golem.com.pricing.model="linear"
golem.com.pricing.model.linear.coeffs=[0, 0.01, 0.01]
golem.com.usage.vector=["golem.usage.duration_sec", "golem.usage.cpu_sec"]

# Offered memory is 1GB
golem.inf.mem.gib=1
# Storage for image + input files + output files is 10GB.
golem.inf.storage.gib=10

# Offered runtime is wasmtime version 0.0.0
golem.srv.runtime.name="wasmtime"
golem.srv.runtime.version@v="0.0.0"

# constraints
()

La regla fundamental del New Golem Market es: para que una oferta de demanda y una oferta coincida, las propiedades de la oferta deben coincidir con las restricciones de la demanda y viceversa. En base a esta «verificación de propiedades de restricciones», el protocolo de mercado descentralizado de Golem enviará las Ofertas a los Solicitantes de Demandas correspondientes.

Tenga en cuenta que el contenido de Demanda y Oferta anterior ha sido formateado para ser legible por humanos. Los artefactos reales que circulan en Golem Network tienen un formato diferente.

Estándares de propiedad

El lenguaje de especificación de demanda y oferta está diseñado para ser genérico y abstracto de cualquier caso de uso específico. 

Queremos que el ecosistema Golem sea compatible con casi cualquier clase de recursos que los desarrolladores e integradores puedan crear. 

Pero, ¿qué propiedades debe poner un proveedor en su oferta para «vender» con éxito sus recursos? ¿Y a cuáles debe referirse un Solicitante en su Demanda para encontrar un Proveedor de servicios adecuado?

Para este propósito y como parte de la Implementación de referencia, Golem publicará conjuntos de propiedades estandarizadas para documentar la sintaxis y la semántica de las propiedades implementadas en New Golem. 

Estos estándares no son un conjunto cerrado, en cambio, sirven como un depósito de propiedades comunes y como una guía para los desarrolladores sobre cómo deben especificarse las nuevas clases de recursos en el ecosistema Golem.

A continuación se muestra un ejemplo de entrada de Normas de propiedad:

En general, y en pocas palabras: cualquier interacción en la Red Golem comienza con la publicación de Demandas y Ofertas y los Solicitantes encuentran a sus Proveedores candidatos. 

En la próxima publicación, veremos cómo The Next Milestone pone en marcha las Demandas y Ofertas y qué sucede a continuación.


Para obtener más información sobre Golem, visite nuestro sitio web

¿Tienes comentarios sobre esta publicación de blog? ¡envíanos un correo electrónico o únete a nuestro Discord!

¿Quieres comenzar una discusión al respecto? ¡Reddit es el mejor lugar para ello!

Síganos en Twitter para obtener los últimos anuncios y actualizaciones de progreso.