Testing y Despliegue de Contratos en Blockchain
Clase 21 de 28 • Ethereum Developer Program 1ª Edición
Aprender sobre Testing Tools y Despliegue es fundamental para poder avanzar en nuestro camino a Full Stack Blockchain Developers. En la clase de esta semana, Franco Valencia, Blockchain Security Engineer en OpenZeppelin, nos compartió conceptos muy valiosos para poder realizar tus primeros despliegues.
Cursos de la Semana
Si aún no eres parte de nuestra comunidad, no es obligatorio que cumplas los cursos de cada semana. Tenemos un precio especial para ti, y así puedas ser parte de Platzi y la Escuela de Blockchain y Criptomonedas.
- Compilación, tests y despliegue
- Despliegue en Rinkeby
- Despliegue de smart contract en redes de prueba
- Probando nuestro Smart Contract
Te esperamos el jueves en el chat de Discord a las 2:00 pm 🇨🇴🇲🇽/3:00 pm🇻🇪/4:00 pm 🇦🇷/8:00 pm🇪🇸 para hablar con los Platzi Mentores sobre crecimiento profesional y responder todas tus dudas y preguntas.
Comparte tu certificado y cada uno de tus logros con tus amigos y la comunidad, esto es solo el comienzo 💚
Sigamos construyendo 🔥
Resumen de la clase por Tini Cassi
Exploit: programa informático, parte de un software o secuencia de comandos que se aprovecha de un error o vulnerabilidad para provocar un comportamiento no intencionado o imprevisto de un software, hardware o cualquier dispositivo electrónico.
Todo protocolo debe cumplir con un estándar de seguridad. Debemos dar por sentado que intentarán generar un exploit. Es importante auditar el código porque es muy difícil que un developer o un grupo de developers tenga todas las cuestiones de seguridad cubiertas al primer lanzamiento.
Aquí es donde se vuelve relevante el testing, porque mediante su uso podemos disminuir el riesgo de sufrir exploits en el protocolo. Cuando Remix compila, transforma el código Solidity en Bytecode legible por la EVM.
Es muy graves al deployar un contrato, la falta de pruebas. Si no existe un archivo de pruebas en el repositorio, debemos dar por sentado que hay vulnerabilidades en el protocolo. Cada contrato (del conjunto de contratos del protocolo) debe tener un test propio.
Se deben probar todas y cada una de las funciones.
- En remix es difícil testear. Se puede compilar en Remix, Hardhat, Foundry.
Para deployar un contrato, se puede:
- Tener un nodo propio. Es muy dificultoso por distintas razones.
- Usar un nodo en Infura o Alchemy, para realizar la transacción del contrato y estas lo emiten a la red de Ethereum. Además, verifican el contrato en Etherscan automáticamente para las transacciones.
Vulnerabilidades usuales en Contratos:
- Ataque “The entrancy”
- Ataque “Underflow” y ataque “Overflow”
Errores de lógica Documentación de vulnerabilidades Challenges de seguridad