Más allá del contenido de Platzi para aprender Solidity
En esta web aportan una gamificación del aprendizaje interesante
https://cryptozombies.io/
Inicia tu camino construyendo la Web3
Pre-work para Desarrollo en Blockchain: Primeros Pasos y Herramientas
Desarrollo Blockchain: Principios y Oportunidades en Web3
Fundamentos de Blockchain y Descentralización
Smart Contracts y Web3: Construyendo el Futuro Descentralizado
Conociendo el entorno de desarrollo
Introducción al Desarrollo Blockchain: Git, Node.js y Comandos de Terminal
Fundamentos de Blockchain: Redes, Lenguajes y Herramientas Esenciales
Stack de Web3: Capas y Herramientas para Aplicaciones Descentralizadas
Conceptos Básicos de Criptografía para Web3
Desarrollo en Ethereum
Programación de Contratos Inteligentes con Solidity
Seguridad en Smart Contracts con Open Zeppelin Contracts
Fundamentos de la Ethereum Virtual Machine (EVM)
Desarrollo de Aplicaciones Blockchain con Solidity y Ethereum
Primeros pasos en Ethereum
Creación y gestión de wallets de criptomonedas
Redes de Pruebas Blockchain: Uso y Funcionalidad en Desarrollo
Creación de Contratos Inteligentes en Remix IDE y Solidity
Instalación y Configuración de Hardhat para Contratos en Solidity
Compilación y despliegue de contratos inteligentes con Hardhat
Conexión de Aplicaciones Descentralizadas a Blockchain con Ethers.js
Ejecución de Aplicaciones Descentralizadas con Metamask
Programación Web 3: Fundamentos y Especializaciones
Seguridad y protocolos de segunda capa
Capas 2 en Ethereum: Escalabilidad y Seguridad en Blockchain
Transición de Web 2 a Web 3: Desarrollo y Comunidades Blockchain
Más allá del desarrollo
Almacenamiento Descentralizado en Blockchain: IPFS, Filecoin y Más
Creación de Startups y DAOs en Blockchain
Introducción al Desarrollo en Web3 para Mujeres y Hablantes de Español
Fundamentos de Blockchain y Criptomonedas en Web3
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Blockchain trajo consigo un nuevo paradigma de programación. Desarrollar en blockchain, es muy diferente al desarrollo de software tradicional. Debemos conocer muy bien algunas particularidades que lo hacen diferente para comprender qué tipo de proyectos podemos construir y cómo.
El desarrollo en blockchain posee tres características que lo hacen único:
El contexto de desarrollo de software en web3 es muy distinto al web2. Esto requiere de un lenguaje de programación especial para este propósito.
Solidity es el lenguaje de programación por excelencia para desarrollar contratos inteligentes en blockchains como Ethereum. El mismo es orientado a objetos y de alto nivel, lo que lo convierte en un lenguaje bastante sencillo de aprender.
Descubre más en el Curso de Introducción a Solidity.
Que el mismo sea orientado a objetos permite que, de conocer previamente ese paradigma de programación, todo sea más intuitivo. Conceptos como propiedades, funciones, herencia, todo forma parte de Solidity.
Se lo considera de "alto nivel" debido a que es una capa de abstracción para programar en un lenguaje binario, mucho más complicado de entender para el ser humano, y que los programas sean ejecutados por la Ethereum Virtual Machine.
Todo programa desarrollado en blockchain se lo conoce con el nombre de smart contract, o contrato inteligente. Piezas de código capaces de resolver, casi, cualquier problema computacional.
La única limitación en el desarrollo de contratos que debes considerar, y que explorarás poco a poco en tu carrera, es el determinismo que blockchain demanda. Todo lo que ocurre en un contrato es determinista, no pueden ocurrir resultados distintos para un mismo input. Esto provoca que en blockchain no exista la aleatoriedad ni la comunicación con el exterior. Para esto se requiere de concepto más avanzado como lo son los oráculos; pero es algo más avanzado y no debes preocuparte de momento.
Blockchain es una gran base de datos. En todo momento, la misma posee un estado único y compartido por todos los nodos de la red. Solidity es capaz de acceder a ese estado y modificarlo o interactuar con este, dependiendo la lógica que haya sido programada en el contrato.
La sintaxis de un contrato desarrollado con Solidity es una combinación de Javascript y C++. Observemos un contrato básico que permite guardar un número dentro del mismo:
``` // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.8.1 <0.8.19;
contract SimpleStorage { uint storedData; function set(uint x) public { storedData = x; } function get() public view returns (uint) { return storedData; } } ```
Todo contrato en Solidity comienza con un comentario indicando la licencia del mismo, seguido por la versión del compilador de Solidity utilizando la palabra reservada, "pragma". Otra palabra reservada, "contract", podemos asociarla a "class" en la POO. Dentro del contrato, o la clase, encontrarás seguramente que es muy intuitivo comprender la lógica del programa y cómo estamos logrando persistir, obtener y modificar información de la blockchain.
Solidity es un lenguaje bastante ameno y que podrás aprender poco a poco para desarrollar tus primeros contratos. Por supuesto que la experiencia previa en cualquier otro lenguaje o paradigma de programación hará la tarea más fácil.
Y tú: ¿Ya tienes experiencia en Solidity?
Contribución creada por: Kevin Fiorentino (Platzi Contributor).
Aportes 8
Preguntas 0
Más allá del contenido de Platzi para aprender Solidity
En esta web aportan una gamificación del aprendizaje interesante
https://cryptozombies.io/
Es un lenguaje orientado a objetos, de alto nivel, para programar Smart Contracts.
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.2 <0.9.0;
contract simpleStorage {
uint storedData;
function set(uint x) public {
storeData = x;
}
function get() public view returns (uint) {
return storedData
}
}
Cuando Ernesto dice que Solidity es un lenguaje decidible, básicamente se refiere a que el mismo es determinista. En blockchain todo debe ser determinista, por lo tanto, en Solidity no es posible la aleatoriedad de las cosas o comunicarse con el exterior. Para este propósito existen los Oráculos, pero esto es algo más complejo y para más adelante.
Apenas empecé con el lenguaje de solidity y la verdad me esta gustando mucho, se me complican un poco algunos temas, pero es normal al momento de agarrar algún tema nuevo.
esta será mi primera vez usando Solidity!
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?