Como funciona Solana — TURBIN3

Maicon Crespo
4 min read5 days ago

--

Esta es la parte 1/3 de una serie explicando como funciona la blockchain de Solana, hecha por Turbin3 en el evento AThensDAO (este es el enlace al video original).

Introducción a Solana

“Transcripción resumida y traducida al castellano.”

  • Jack es el jefe de proyectos especiales en Turbine, donde se encarga de diversas tareas relacionadas con educación y desarrollo.
  • B y W son instructores que también forman parte del equipo de Turbine, especializándose en enseñar sobre Solana y su ecosistema.
  • Objetivo.
  • Proporcionar una visión general de cómo funciona Solana, enfocándose en conceptos clave como las transacciones, los validadores y el consenso.

Conexión con DApps (Aplicaciones Descentralizadas)

Qué es un DApp:

  • Un DApp no es más que una aplicación descentralizada que interactúa con blockchains. Facilita la interacción entre usuarios y contratos inteligentes.

Tipos de wallets:

  • Custodias: Ejemplos incluyen billeteras donde terceros administran tus claves privadas, como algunas plataformas de correo electrónico para NFTs.
  • No custodias: Phantom Wallet, Backpack u otras opciones populares en Solana. Estas billeteras permiten un mayor control sobre tus activos digitales.

Pasos básicos para interactuar con un DApp:

  1. Conectar tu wallet al DApp.
  2. El DApp crea una transacción basada en la acción que deseas realizar.
  3. La transacción se envía a tu wallet para ser firmada.
  4. Después de firmarla, la transacción se envía al RPC (Remote Procedure Call), que actúa como puente hacia la blockchain de Solana.
  5. Los validadores procesan y verifican la transacción.

Estructura de una Transacción en Solana

  • Componentes principales:

Program ID: Identifica el contrato inteligente o programa con el que deseas interactuar.

Accounts: Lista de todas las cuentas involucradas en la transacción, especificando si son de solo lectura o de lectura/escritura.

Data: Información adicional necesaria para ejecutar la transacción, como cantidades o parámetros específicos.

LatestBlockhash : Asegura que la transacción sea válida dentro de un período de tiempo limitado.

Signer: Necesarias para autenticar la transacción y demostrar que el usuario autoriza la acción.

  • Características adicionales:
  • Las transacciones tienen un tiempo de expiración predeterminado de 30 segundos para evitar retrasos significativos.
  • Es posible incluir múltiples instrucciones dentro de una sola transacción, optimizando el uso de recursos.

Procesamiento de Transacciones

Etapa de Recolección (Fetch):

  • Los validadores recolectan todas las transacciones pendientes enviadas desde diferentes RPCs alrededor del mundo.

Etapa de Verificación:

  • Se comprueba que las firmas sean válidas y que las cuentas involucradas estén correctamente especificadas.

Etapa Bancaria (Banking):

  • Aquí se ejecutan realmente las transacciones. Solana permite procesamiento paralelo, lo que significa que varias transacciones pueden ejecutarse simultáneamente siempre que no afecten las mismas cuentas.

Prueba de Historia (Proof of History):

  • Actúa como un “reloj” en la blockchain, asegurando que las transacciones se procesen en orden correcto. Utiliza un mecanismo de hashing continuo para garantizar la integridad temporal.

Distribución de Transacciones:

  • Una vez procesadas, las transacciones se distribuyen a través de la red para su verificación por parte de otros validadores.

Errores Comunes en Transacciones

Causas frecuentes de fallos:

  1. Firmas incorrectas o faltantes.
  2. Código mal implementado, como intentar dividir entre cero.
  3. Insuficiencia de fondos en la cuenta origen.

Simulaciones previas:

  • Algunos DApps permiten simular transacciones antes de enviarlas para detectar posibles errores. Esto ayuda a reducir el riesgo de transacciones fallidas.

Validadores y Consenso

Funcionamiento de los Validadores:

  • Cada bloque tiene un líder designado que procesa las transacciones.
  • Los demás validadores verifican el trabajo del líder mediante la reproducción de las transacciones.

Consensus:

  • Requiere el acuerdo de al menos 66% + 1 de los validadores para confirmar una transacción.
  • Si falla, la transacción no se incluye en el bloque.

Seguridad contra ataques:

  • La elección del líder se realiza de manera pseudoaleatoria basada en el stake (participación) de cada validador.
  • Atacar la red requeriría controlar más del 66% del stake total, lo cual es económicamente inviable.

Optimización y Rendimiento

Paralelismo en Solana:

  • Permite que varias transacciones se ejecuten simultáneamente si no afectan las mismas cuentas.
  • Mejora significativamente el rendimiento en comparación con blockchains EVM, que procesan transacciones secuencialmente.

Restricciones de Lectura/Escritura:

  • Una cuenta marcada como “writable” solo puede ser modificada por una transacción a la vez.
  • Esto evita conflictos y garantiza la integridad de los datos.

Capacitación y Comunidad Turbine

Ofertas educativas:

  • Builder Cohort: Enseña a construir contratos inteligentes usando Anchor y Rust, cubriendo desde lo básico hasta aplicaciones avanzadas.
  • Advanced Courses: Incluyen temas avanzados como rollups personalizados, optimización de código y desarrollo de soluciones escalables.
  • Impacto en la comunidad:
  • Turbine ha formado a más del 25% de los desarrolladores activos en Solana.
  • Ofrece mentorías, recursos gratuitos y oportunidades para participar en hackatones y proyectos reales.

Casos de Uso Práctico

Moonwalk:

  • Proyecto que incentiva la actividad física mediante recompensas financieras.
  • Los participantes depositan fondos en un vault y ganan más si cumplen con ciertos objetivos semanales.

Flash Loans y Arbitraje:

  • Discusión sobre cómo funcionan los préstamos rápidos y las oportunidades de arbitraje en Solana.
  • Aunque existen riesgos, Solana es lo suficientemente rápida para minimizarlos gracias a su bajo tiempo de bloque (400 ms).

Preguntas Frecuentes

¿Qué pasa si una transacción falla?

  • Aunque una transacción falle, aún se cobran tarifas por su procesamiento debido al costo computacional incurrido.

¿Cuál es la diferencia entre confirmación y finalización?

  • Confirmación: La transacción es válida y aceptada para su procesamiento.
  • Finalización: La transacción ha sido procesada y agregada al bloque, siendo irreversible.

Bueno, aqui termina la primera parte. nos vemos en la segunda!

--

--

Maicon Crespo
Maicon Crespo

Written by Maicon Crespo

Flutter - Dev - Blockchain - Solana - Star Atlas

No responses yet