Pelajaran 3

Creación y gestión de contratos inteligentes en Vyper

Ha creado una base sólida para la programación blockchain con Vyper al finalizar este curso. Ahora tiene un conocimiento sólido de Ethereum, los contratos inteligentes y cómo crearlos en Remix IDE con Vyper. Este entendimiento abre un mundo de oportunidades para desarrollar aplicaciones descentralizadas y participar en el ecosistema blockchain.

Introducción

¡Bienvenidos a la Lección 3! En esta lección, nos centraremos en aplicar los conceptos y la sintaxis que hemos aprendido en las lecciones anteriores para desarrollar contratos inteligentes de Ethereum utilizando Vyper con Remix IDE. Crearemos, implementaremos e interactuaremos con contratos inteligentes simples, brindándole experiencia práctica con Vyper y Ethereum. El primer contrato será un contrato simple de almacenamiento de datos, mientras que el segundo simulará un sistema de votación básico.

SimpleStorage: una introducción a los contratos inteligentes

El primer contrato que implementaremos es SimpleStorage. Este contrato, como su nombre indica, es un contrato de almacenamiento de datos simple que almacena un único número. SimpleStorage consta de una variable storedData y dos funciones, set y get. La función set permite al usuario almacenar un número y la función get permite que cualquiera recupere este número.

Implementación e interacción con SimpleStorage

Revisaremos los pasos para implementar e interactuar con el contrato SimpleStorage en la cadena de bloques Ethereum. Implementar un contrato en la cadena de bloques Ethereum es el proceso de transmitir el código de bytes y el ABI del contrato a la red Ethereum, desde donde se puede llamar y ejecutar. Una vez que se implementa un contrato, recibe una dirección única en la que se puede localizar.

Aquí está el código para SimpleStorage:

Python 
 # @title SimpleStorage 
 datos almacenados: int128 

 @external 
 def set(x: int128): 
 self.storedData = x 

 @external 
 def get() -> int128: 
 return self.storedData

En este contrato, definimos una variable entera pública storedData, una función pública set(x: int128) para establecer el valor de storedData y una función constante pública get() -> int128 para recuperar el valor actual de storedData.

Aquí hay una guía paso a paso sobre cómo implementar este contrato usando Remix:

  1. Abra su navegador web y navegue hasta Remix Ethereum IDE.

  2. Activar el complemento Vyper

  3. Cambie el entorno a Injected Web3 en la sección Deploy & Run Transactions . Esto conectará Remix a su billetera MetaMask.

  4. En la sección File Explorer , haga clic en el ícono + para crear un nuevo archivo. Nómbrelo SimpleStorage.vy.

  5. Pegue el código del contrato SimpleStorage en este nuevo archivo.

  6. Ahora vaya a la pestaña VyperCompile y seleccione el contrato SimpleStorage .

  7. Cambie a la pestaña Deploy & Run Transactions y luego haga clic en el botón Deploy .

  8. MetaMask abrirá una ventana emergente de confirmación de transacción. Confirma la transacción.

  9. Una vez confirmada la transacción, verá el contrato SimpleStorage implementado en la sección Deployed Contracts .

  10. Ahora puedes interactuar con el contrato. Por ejemplo, para almacenar un número, ingrese el número en la función set y haga clic en transact. Para recuperar el número almacenado, haga clic en get.

SimpleVoting: un contrato más complejo

Después de que nos hayamos mojado con SimpleStorage, pasaremos a algo un poco más complejo: SimpleVoting. El contrato SimpleVoting simulará un sistema de votación simple. Tendremos una lista de candidatos, cada uno representado como una cadena. Los usuarios podrán votar por estos candidatos y realizaremos un seguimiento del número de votos que recibió cada candidato. El contrato proporcionará funciones para agregar un candidato, votar por un candidato y obtener el total de votos que recibió un candidato.

Implementación e interacción con SimpleVoting

El contrato SimpleVoting es un poco más complejo que SimpleStorage. En SimpleVoting tendremos una lista de candidatos, cada uno representado por una cadena.

Aquí está el código para SimpleVoting:

Python 
 # Contrato de votación de Vyper 

 # Declarar una variable de estado `votos` como HashMap para almacenar los votos de cada candidato.
votos: HashMap[bytes32, uint256] 

 @external 
 def voto(candidato: bytes32): 
 """ 
 Emitir un voto por un candidato.

    Argumentos: 
 candidato: bytes32: el identificador del candidato por el que votar.
    """ 
 # Incrementa el recuento de votos para el candidato especificado.
    autovotos[candidato] += 1 

 @external 
 @view 
 def get_votes(candidate: bytes32) -> uint256: 
 """ 
 Obtener el número total de votos de un candidato.

    Argumentos: 
 candidato: bytes32: el identificador del candidato para el que se recuperarán los votos.

    Devuelve: 
 uint256: el número total de votos que ha recibido el candidato.
    """ 
 devolución de votos propios[candidato]

Este contrato es bastante básico y no contiene precauciones contra votaciones dobles o no autorizadas. En la práctica, sería necesario incluir procedimientos para evitar estas dificultades, como el registro de votantes y una verificación para garantizar que cada dirección sólo pueda votar una vez.

Conclusión y próximos pasos

Ha creado una base sólida para la programación blockchain con Vyper al finalizar este curso. Ahora tiene un conocimiento sólido de Ethereum, los contratos inteligentes y cómo crearlos en Remix IDE con Vyper. Este entendimiento abre un mundo de oportunidades para desarrollar aplicaciones descentralizadas y participar en el ecosistema blockchain.

Para mejorar aún más sus habilidades y conocimientos, considere explorar las siguientes áreas:

  1. Programación avanzada de Solidity: Solidity es otro lenguaje de programación popular para contratos inteligentes de Ethereum. Learning Solidity ampliará su capacidad para trabajar con contratos existentes y contribuir a la comunidad Ethereum. Consulte nuestro curso aquí: [inserte el enlace del curso Solidity cuando esté en línea]

  2. Desarrollo de aplicaciones descentralizadas (DApp): profundice en la creación de aplicaciones descentralizadas completas combinando contratos inteligentes con desarrollo front-end utilizando marcos como Web3.js, React o Vue.js. Esto le permitirá crear interfaces de usuario interactivas que interactúan con sus contratos inteligentes.

  3. Seguridad y auditoría: explore las mejores prácticas para asegurar contratos inteligentes y realizar auditorías de código exhaustivas. Comprender las vulnerabilidades potenciales y mitigar los riesgos garantizará la confiabilidad y seguridad de sus contratos inteligentes.

  4. Interoperabilidad Blockchain: Investigar la integración de diferentes redes y protocolos blockchain. Obtenga información sobre la comunicación entre cadenas y el desarrollo de contratos inteligentes interoperables que pueden interactuar con múltiples cadenas de bloques.
    Recuerde, la tecnología blockchain evoluciona constantemente y es fundamental mantenerse actualizado con los últimos avances. Interactúe con la comunidad blockchain, participe activamente en debates y explore nuevos conceptos y tecnologías para mantenerse informado y actualizado.

Pernyataan Formal
* Investasi Kripto melibatkan risiko besar. Lanjutkan dengan hati-hati. Kursus ini tidak dimaksudkan sebagai nasihat investasi.
* Kursus ini dibuat oleh penulis yang telah bergabung dengan Gate Learn. Setiap opini yang dibagikan oleh penulis tidak mewakili Gate Learn.
Katalog
Pelajaran 3

Creación y gestión de contratos inteligentes en Vyper

Ha creado una base sólida para la programación blockchain con Vyper al finalizar este curso. Ahora tiene un conocimiento sólido de Ethereum, los contratos inteligentes y cómo crearlos en Remix IDE con Vyper. Este entendimiento abre un mundo de oportunidades para desarrollar aplicaciones descentralizadas y participar en el ecosistema blockchain.

Introducción

¡Bienvenidos a la Lección 3! En esta lección, nos centraremos en aplicar los conceptos y la sintaxis que hemos aprendido en las lecciones anteriores para desarrollar contratos inteligentes de Ethereum utilizando Vyper con Remix IDE. Crearemos, implementaremos e interactuaremos con contratos inteligentes simples, brindándole experiencia práctica con Vyper y Ethereum. El primer contrato será un contrato simple de almacenamiento de datos, mientras que el segundo simulará un sistema de votación básico.

SimpleStorage: una introducción a los contratos inteligentes

El primer contrato que implementaremos es SimpleStorage. Este contrato, como su nombre indica, es un contrato de almacenamiento de datos simple que almacena un único número. SimpleStorage consta de una variable storedData y dos funciones, set y get. La función set permite al usuario almacenar un número y la función get permite que cualquiera recupere este número.

Implementación e interacción con SimpleStorage

Revisaremos los pasos para implementar e interactuar con el contrato SimpleStorage en la cadena de bloques Ethereum. Implementar un contrato en la cadena de bloques Ethereum es el proceso de transmitir el código de bytes y el ABI del contrato a la red Ethereum, desde donde se puede llamar y ejecutar. Una vez que se implementa un contrato, recibe una dirección única en la que se puede localizar.

Aquí está el código para SimpleStorage:

Python 
 # @title SimpleStorage 
 datos almacenados: int128 

 @external 
 def set(x: int128): 
 self.storedData = x 

 @external 
 def get() -> int128: 
 return self.storedData

En este contrato, definimos una variable entera pública storedData, una función pública set(x: int128) para establecer el valor de storedData y una función constante pública get() -> int128 para recuperar el valor actual de storedData.

Aquí hay una guía paso a paso sobre cómo implementar este contrato usando Remix:

  1. Abra su navegador web y navegue hasta Remix Ethereum IDE.

  2. Activar el complemento Vyper

  3. Cambie el entorno a Injected Web3 en la sección Deploy & Run Transactions . Esto conectará Remix a su billetera MetaMask.

  4. En la sección File Explorer , haga clic en el ícono + para crear un nuevo archivo. Nómbrelo SimpleStorage.vy.

  5. Pegue el código del contrato SimpleStorage en este nuevo archivo.

  6. Ahora vaya a la pestaña VyperCompile y seleccione el contrato SimpleStorage .

  7. Cambie a la pestaña Deploy & Run Transactions y luego haga clic en el botón Deploy .

  8. MetaMask abrirá una ventana emergente de confirmación de transacción. Confirma la transacción.

  9. Una vez confirmada la transacción, verá el contrato SimpleStorage implementado en la sección Deployed Contracts .

  10. Ahora puedes interactuar con el contrato. Por ejemplo, para almacenar un número, ingrese el número en la función set y haga clic en transact. Para recuperar el número almacenado, haga clic en get.

SimpleVoting: un contrato más complejo

Después de que nos hayamos mojado con SimpleStorage, pasaremos a algo un poco más complejo: SimpleVoting. El contrato SimpleVoting simulará un sistema de votación simple. Tendremos una lista de candidatos, cada uno representado como una cadena. Los usuarios podrán votar por estos candidatos y realizaremos un seguimiento del número de votos que recibió cada candidato. El contrato proporcionará funciones para agregar un candidato, votar por un candidato y obtener el total de votos que recibió un candidato.

Implementación e interacción con SimpleVoting

El contrato SimpleVoting es un poco más complejo que SimpleStorage. En SimpleVoting tendremos una lista de candidatos, cada uno representado por una cadena.

Aquí está el código para SimpleVoting:

Python 
 # Contrato de votación de Vyper 

 # Declarar una variable de estado `votos` como HashMap para almacenar los votos de cada candidato.
votos: HashMap[bytes32, uint256] 

 @external 
 def voto(candidato: bytes32): 
 """ 
 Emitir un voto por un candidato.

    Argumentos: 
 candidato: bytes32: el identificador del candidato por el que votar.
    """ 
 # Incrementa el recuento de votos para el candidato especificado.
    autovotos[candidato] += 1 

 @external 
 @view 
 def get_votes(candidate: bytes32) -> uint256: 
 """ 
 Obtener el número total de votos de un candidato.

    Argumentos: 
 candidato: bytes32: el identificador del candidato para el que se recuperarán los votos.

    Devuelve: 
 uint256: el número total de votos que ha recibido el candidato.
    """ 
 devolución de votos propios[candidato]

Este contrato es bastante básico y no contiene precauciones contra votaciones dobles o no autorizadas. En la práctica, sería necesario incluir procedimientos para evitar estas dificultades, como el registro de votantes y una verificación para garantizar que cada dirección sólo pueda votar una vez.

Conclusión y próximos pasos

Ha creado una base sólida para la programación blockchain con Vyper al finalizar este curso. Ahora tiene un conocimiento sólido de Ethereum, los contratos inteligentes y cómo crearlos en Remix IDE con Vyper. Este entendimiento abre un mundo de oportunidades para desarrollar aplicaciones descentralizadas y participar en el ecosistema blockchain.

Para mejorar aún más sus habilidades y conocimientos, considere explorar las siguientes áreas:

  1. Programación avanzada de Solidity: Solidity es otro lenguaje de programación popular para contratos inteligentes de Ethereum. Learning Solidity ampliará su capacidad para trabajar con contratos existentes y contribuir a la comunidad Ethereum. Consulte nuestro curso aquí: [inserte el enlace del curso Solidity cuando esté en línea]

  2. Desarrollo de aplicaciones descentralizadas (DApp): profundice en la creación de aplicaciones descentralizadas completas combinando contratos inteligentes con desarrollo front-end utilizando marcos como Web3.js, React o Vue.js. Esto le permitirá crear interfaces de usuario interactivas que interactúan con sus contratos inteligentes.

  3. Seguridad y auditoría: explore las mejores prácticas para asegurar contratos inteligentes y realizar auditorías de código exhaustivas. Comprender las vulnerabilidades potenciales y mitigar los riesgos garantizará la confiabilidad y seguridad de sus contratos inteligentes.

  4. Interoperabilidad Blockchain: Investigar la integración de diferentes redes y protocolos blockchain. Obtenga información sobre la comunicación entre cadenas y el desarrollo de contratos inteligentes interoperables que pueden interactuar con múltiples cadenas de bloques.
    Recuerde, la tecnología blockchain evoluciona constantemente y es fundamental mantenerse actualizado con los últimos avances. Interactúe con la comunidad blockchain, participe activamente en debates y explore nuevos conceptos y tecnologías para mantenerse informado y actualizado.

Pernyataan Formal
* Investasi Kripto melibatkan risiko besar. Lanjutkan dengan hati-hati. Kursus ini tidak dimaksudkan sebagai nasihat investasi.
* Kursus ini dibuat oleh penulis yang telah bergabung dengan Gate Learn. Setiap opini yang dibagikan oleh penulis tidak mewakili Gate Learn.