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
Bienvenida al desarrollo en blockchain
Por qu茅 iniciar en el desarrollo de blockchain
驴Qui茅n puede ser blockchain developer?
脕reas de aplicaci贸n
Conociendo el entorno de desarrollo
Consideraciones b谩sicas para desarrollo
Lenguajes y herramientas para el desarrollo blockchain
Arquitectura b谩sica en Web 3
Glosario criptogr谩fico
Desarrollo en Ethereum
Solidity: el lenguaje para programar contratos inteligentes
OpenZeppelin Contracts
Ethereum Virtual Machine
Mi camino programando - Ernesto Garc铆a
Primeros pasos en Ethereum
Uso de wallets: Metamask
Redes de prueba
RemixIDE
Entorno de desarrollo con Hardhat
Compilando y desplegando contratos inteligentes
Conectando la blockchain con el navegador: Web3.js y Ether.js
Ejecutando tu aplicaci贸n descentralizada
De Web2 a Web3 - Alfredo Bonilla
Seguridad y protocolos de segunda capa
Desarrollando en capa 2
Aprovecha la descentralizaci贸n - Oscar Barajas
M谩s all谩 del desarrollo
Base de datos en blockchain: IPFS, Filecoin y ARWEAVE
Blockchain startups y DAO
C贸mo llegu茅 a trabajar en programaci贸n - Natacha De La Rosa
Contin煤a tu aprendizaje en la Escuela de Blockchain y Criptomonedas
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 7
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
}
}
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!
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.
驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?