Solidity
El lenguaje mas comun para smart contracts en Ethereum
Solidity permite escribir la logica que se ejecuta dentro de la EVM para manejar estado, reglas de negocio y transferencias de valor.
Que es un smart contract
- Es codigo desplegado en una direccion onchain
- Tiene almacenamiento persistente y funciones publicas
- Se ejecuta de forma deterministica en todos los nodos
- No puede modificarse libremente despues del despliegue salvo que se haya diseniado para eso
Estructura basica
solidity
contract Counter {
uint256 public count;
function increment() external {
count += 1;
}
}Un contrato define variables de estado, funciones, eventos y reglas de acceso.
Visibilidad y tipos de funciones
publicexpone lectura o llamada desde fueraprivaterestringe acceso al mismo contratoviewlee estado sin modificarlopayablepermite recibir ETH junto con la llamada
Eventos y estado
- El almacenamiento onchain es costoso
- Los eventos sirven para emitir datos hacia clientes externos
- Indexadores y frontends leen esos eventos para construir interfaces
- Elegir bien entre storage, memory y calldata afecta costo y claridad
Seguridad basica
- Validar permisos antes de cambiar estado
- Evitar patrones vulnerables a reentrancy
- Manejar con cuidado arithmetic, approvals y llamadas externas
- Preferir simplicidad antes que contratos demasiado abstractos
Tooling comun
- Foundry para testing, scripting y fuzzing
- Hardhat para deploys, tasks y debugging
- OpenZeppelin para componentes auditados
- Explorers como Etherscan para verificar codigo desplegado
Como aprender bien Solidity
- Construyendo contratos pequenos y auditables
- Escribiendo tests antes de desplegar
- Leyendo codigo real de protocolos conocidos
- Entendiendo EVM y gas, no solo la sintaxis