Solana es una Blockchain innovadora en varios sentidos, desde el funcionamiento y optimización de la red, sus protocolos de consenso, hasta el método de almacenamiento de la información que implementa.
Persistencia de datos en Solana
En otras Blockchains como Ethereum, la información se guarda de forma Stateful, o sea, los contratos inteligentes almacenan el estado de la información. Solana lo hace en forma Stateless, separa la lógica del almacenamiento de datos en lo que denomina como “accounts”, o cuentas.
Podemos entender las cuentas como archivos, similar al sistema de archivos de un sistema operativo, donde tanto los programas como la información que consumen su guarda en archivos binarios. En Solana, todo es una cuenta. Desde una transacción, un contrato inteligente, información que queremos guardar en la Blockchain, hasta otros tipos de cuenta nativa, propias del funcionamiento del core de Solana.
Los contratos inteligentes derivan la información a las cuentas y hacen uso de estas para ejecutar su lógica. Las cuentas también pueden ser compartidas entre múltiples contratos, optimizando el uso de la red.
Solana, al igual que el lenguaje de programación Rust, busca optimizar el utilización de la memoria. Cada byte cuenta y las accounts tienen un tamaño máximo de 10 MB. La administración del tamaño de una cuenta será crucial para el desarrollo de un programa.
Estructura de una cuenta
Las cuentas en Solana tienen la siguiente estructura de información:
- Lamports: Representación mínima de la unidad monetaria de la Blockchain de Solana conocida como SOL. A lo igual que Wei en Ethereum o los Satoshis en Bitcoin.
1 Lamport = 0,0000000000582 SOL
- Owner: Dueño de la cuenta con permisos para acceder a la información.
- Executable: Booleano que indica si la cuenta se trata de un contrato para permitir su ejecución o no.
- Data: Datos propios que se guardan en la cuenta. Si la cuenta es un contrato, se almacena la lógica del mismo.
- rent_rpoch: Renta o alquiler que hay que pagar a la red para mantener la cuenta en memoria de cada validador por X tiempo. Es una especie de Garbage Collection para limpiar los datos que ya no se utiliza en la red.
{
lamports: number,
owner: string,
executable: boolean,
data: Object,
rentEpoch: number,
}
Conclusión
Los datos en la Blockchain de Solana se almacenan como todo un sistema de archivos de un sistema operativo, donde los mismos tienen un dueño, peso en bytes y una serie de permisos de lectura y ejecución.
Mantener la lógica separada de la información es el método que Solana implementa para desarrollar programas. Totalmente diferente a como lo realizan otras Blockchains, cambiando así el paradigma de programación.
Contribución creada por: Kevin Fiorentino (Platzi Contributor).
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.