Resolviendo el enigma de cómo mejorar el código de Ethereum
En Cardstack están construyendo un marco de aplicaciones que permitirá a los desarrolladores crear y alojar dApps( aplicaciones decentralizadas), que pongan la experiencia del usuario como algo primordial. Como parte de este esfuerzo, van a crear un token extensible.
→ Si le agrada la temática Ingrese en : https://cardstack.com/
■ Contratos Actualizables.
Entonces, ¿por qué son importantes los contratos actualizables?
Los requisitos cambian, el mercado cambia, el mundo se vuelve más complejo, un químico diría que la entropía del universo aumenta de forma natural. El software, al igual que la biología, se encuentra en constante cambio y evolución. El software más exitoso es el software que se adapta mejor a un mundo cambiante. Un contrato inteligente no es tan inteligente si no puede evolucionar con el tiempo.
Cardstack ha encontrado una manera de resolver este problema crucial.
El núcleo del enfoque que han tomado en Cardstack estuvo muy influenciado por la publicación de la bloguera llamada Elena Dimitrova sobre cómo COLONY construye contratos ampliables. Específicamente, lo más importante a considerar cuando se actualizan contratos es cómo preservar el estado del contrato original en el contrato actualizado. En un enfoque clásico de ingeniería de software, Elena describe cómo el estado del contrato puede separarse de la funcionalidad del contrato. Este enfoque permite que múltiples contratos compartan el mismo estado.
Cuando desarrollaron ese enfoque, agregaron una componente adicional a la solución: esto es, un “contrato de registro”. El contrato de registro realiza la contabilidad necesaria para realizar un seguimiento del estado del contrato compartido, realizar un seguimiento de las diferentes versiones de cada contrato y vincular y desvincular el estado compartido a los contratos a medida que se agregan nuevas versiones de los contratos a la red.
Puede parecer difícil de comprender, pero es una genialidad
El contrato de registro actúa como un puente entre el Servicio de nombres de Ethereum (ENS) y la última versión de los registros de contratos de Cardstack.
■ Almacenamiento
Al igual que en el enfoque descrito en la publicación de Elena, CardStack ha creado un “contrato de almacenamiento” que básicamente actúa como un cubo, elevando el estado de una versión de contrato a la siguiente. En ese contrato de almacenamiento, se puede registrar muchos tipos diferentes de datos en un almacén especial. También han creado un “contrato de Libro mayor”, como en el enfoque de “Colony”, pero es una forma especializada de un contrato de almacenamiento diseñado específicamente para blockchain.
El módulo llamado
ExternalStorage.sol
es el “contrato de almacenamiento”. En él se puede ver que se ofrecen slots para almacenar todo tipo de datos, incluidas estructuras más complejas como libros reales e incluso “libros múltiples”, que es un mapa de libros contables. Esto es lo que usan para almacenar las asignaciones para la función transferFrom()
ERC20 del contrato de Cardstack. Para cada tipo, tienen un parámetro de record
que es la “clave” en el almacén de valores clave del contrato de almacenamiento. En su contrato de biblioteca de token, se puede ver cómo establecen y obtienen esos valores de almacenamiento:
Otra cosa interesante a tener en cuenta es que: Han hecho un trabajo adicional en nuestro contrato de almacenamiento para permitir que nuestros libros mayores (y libros múltiples) sean iterables, de modo que el almacenamiento sea más fácilmente introspectado. Cuesta más gas para mantener tales estructuras; pero para los casos de uso específicos, entendieron que valía la pena compensar las tarifas adicionales de gas.
Para completar, la forma especializada del almacenamiento del libro mayor de cardstack, aparece a continuación:
Puede ver cómo usan su almacenamiento de contabilidad en el contrato principal de tokens ERC20. A continuación hay un ejemplo de algunas de las funciones del ERC20 que aprovechan el almacenamiento específico del libro mayor:
■ Autor:
Hassan Abdel-Rahman
Developer at Cardstack
■ Segunda Parte
Hemos publicado la segunda parte de este artículo en:
https://medium.com/@rDieminger/cardstack-contratos-actualizables-en-solidity-parte-02-03-3361ceb2fecf
https://medium.com/@rDieminger/cardstack-contratos-actualizables-en-solidity-parte-02-03-3361ceb2fecf
Para obtener más información sobre Cardstack y el próximo Token Generating Event (THE), visite visite el website de cardstack o lea el white paper.
También le invito a ver un corto vídeo en video intro
También le invito a ver un corto vídeo en video intro
No hay comentarios:
Publicar un comentario