Contenido del curso
Contratos actualizables
Firmas off-chain
Meta-transacciones
Proxies y sus consideraciones
Contenido del curso
Proxies y sus consideraciones
braulio Gonzalez
EstudianteAndres Valencia
EstudianteJosé Caballero
EstudianteSalvador Enrique German Becerra
EstudianteJosé Valentin Salina Peña
EstudianteLuis Enrique Rodriguez Diaz
EstudianteOriana Morillo
EstudianteCristian Marchese
EstudianteJesus Salvador Briceño Faria
EstudianteHeler Esneider Paez Correa
EstudianteJuan Sebastián Fernández Sáez
EstudianteAldana Maldonado
EstudianteJuan Pablo Castaño Tabares
ProfesorRafael Livise Larico
EstudianteJosé Valentin Salina Peña
EstudianteAlexis Lozano Terán
EstudianteAlexis Lozano Terán
EstudianteEdgar Alfredo López Salero
EstudianteDany R
Estudiantecreo que faltan como unos graficos ..para ver el proceso... un flujograma..no se me pierdo en el mar de conceptos
Es un problema constante en todos los cursos de Platzi, especialmente en los de desarrollo, van directo al código.
He hecho esa recomendación varias veces, no sé si es una directiva pedagógica de Platzi, aunque Freddy usa muy bien su Ipad para explicar primero conceptos complejos.
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
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:
Constructores en los contratos con la lógica
Funciones para inicializar contratos actualizables
Tipos de proxy con Open Zeppelin
Open Zeppelin plugin para desplegar y actualizar contratos actualizables
no logre seguir para nada esta clase :/
Básicamente habla que se puede actualizar un contrato con algo llamado patron proxy, hay una serie de pasos a seguir pues para que la lógica del contrato funcione tenemos que hacer uso de un estandard llamado EIP 1967 y openzeppeling maneja 2 tipos de patrones proxy:
Acá más info sobre el Patrón Proxy:
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
Al utilizar un patrón de almacenamiento desestructurado para evitar colisiones de almacenamiento, de qué manera nos aseguraríamos que el "randomize slot" no se solape con alguna variable del contrato de implementación? Incorporando alguna condición al radomize?
El EIP busca que los compiladores utilicen siempre la misma posición y que esta no sea utilizada para el almacenamiento del estado de las variables. Hasta que esto no ocurra la posición que se maneja, en los contratos que implementen el patrón, busca que sea algo que una posición "alta" que no sea utilizada por los contratos. Si tenemos en cuenta que, tener un estado muy grande o muchas variables de estado hace que el costo de las transacciones sea mayor, se vuelve una razón para no usar muchas variables de estado.
Una explicacion complementaria, muy buena a mi parecer https://youtu.be/a0Jc78zXRwY?t=2300
gracias
Gracias por la recomendación. Muy útil!
Que ventajas tienen los proxies sobre el usar dos contratos, uno para almacenar el estado y otro para la lógica y reemplazar el contrato de la lógica cada vez que haya un cambio?
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/