No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

15 Días
8 Hrs
57 Min
32 Seg

Proxies y sus consideraciones

6/14
Recursos

Aportes 12

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

creo que faltan como unos graficos …para ver el proceso… un flujograma…no se me pierdo en el mar de conceptos

Toma trabajo entender la clase con tantos cortes, siento que falta mayor material para poder entenderle y una mejor explicación por parte del profesor.

Colisiones de almacenamiento

Al tener dos contratos, uno para la lógica y otro para el almacenamiento, cualquiera de ellos puede sobrescribir un espacio de almacenamiento que ya esté en uso.

Patrón de almacenamiento desestructurado

  • Una solución al problema de colisiones de almacenamiento.
  • Este patrón usa un espacio de memoria desestructurado que se define en el contrato proxy para almacenar la información que se requiere para realizar actualizaciones, y es aleatorio.

Colisiones entre versiones del contrato con la lógica

Las colisiones no son algo que solo pueda ocurrir entre el proxy y el contrato con la lógica.

EIP 1967

Propósito:

  • Implementar una interfaz para que las aplicaciones puedan determinar que están interactuando con proxies y hacer seguimiento a los cambios que estos tengan.
  • Que el compilador garantice que nunca se reserven los espacios de memoria donde se almacena la información del proxy para almacenar otras variables de estado.

Constructores en los contratos con la lógica

  • Muchas veces cuando desplegamos nuestros contratos necesitamos que estos tengan un estado inicial.
  • Los constructores son ideales para calcular el estado inicial del contrato.
  • Si el proxy es quien almacena el estado ¿los cambios que se calculen en le constructor quedan almacenados en el proxy?

Funciones para inicializar contratos actualizables

  • Un inicializador tiene que cumplir con las mismas características de un constructor.
  • Debe ser invocado por el proxy una vez este ha sido desplegado.

Tipos de proxy con Open Zeppelin

  • Transparent proxy: El proxy contiene la lógica para actualizar y administrar el contrato.
  • UUPS (Universal Upgradeable Proxy Standard): El contrato con la lógica contiene las funciones para actualizar y administrar el proxy.

Open Zeppelin plugin para desplegar y actualizar contratos actualizables

  • Paquete de JavaScript que facilite el despliegue, actualización y manejo de admin sobre el proxy de contratos inteligentes.
  • Versión para Truffle y Hardhat.
  • Genera archivos que contienen metadata sobre los contratos desplegados para realizar verificaciones cuando nuevas versiones se vayan a desplegar.

no logre seguir para nada esta clase 😕

Coincido en que no está bien explicado como dicen por ahí, incluso ya sabiendo como funcionan los contratos proxies cuesta entenderle lo que dice. Por suerte para el que quiera verlo en openzeppelin están bien explicados.

no entendi nada

Les dejo el link para la documentación del plugin

Una explicacion complementaria, muy buena a mi parecer https://youtu.be/a0Jc78zXRwY?t=2300

Patron Proxy: Es un patron estructural, que proporciona un sustituto o marcador de posicion para otro objeto.

Para entender en que consiste el patron proxy: Podriamos ver como en un partido de futbol, esta el 4 arbitro, el debe ser garante de que a la hora de sustituir un jugador por otro, cumpla con las normas de llevar pantalones cortos (shorts), canilleras, medias altas, no lleve cadena o anillo para entrar. El 4 arbitro, le avisa al arbitro principal una vez que es revisado, para que pueda ingresar al partido sustituyendo a otro jugador.

Entiendas: El patron proxy es el 4 arbitro, que permite la interaccion entre dos jugadores. SmartContrac A, SmartContracB, cada uno tiene sus caracteristicas especiales.

Aqui explican muy bien sobre los contratos actualizables: Transparent, UUPS, y Beacon https://blog.openzeppelin.com/the-state-of-smart-contract-upgrades/.

Y aqui esta la documentacion de los plugins de openzeppelin https://docs.openzeppelin.com/upgrades-plugins/1.x/