Tipos de Almacenamiento: call data, memory, etc
Las variables pueden tener una ubicaci贸n distinta dentro de su almacenamiento en el contrato dependiendo del uso que se les vaya a dar y c贸mo se utilicen.
Tipos de almacenamiento de datos
Para especificar la localizaci贸n de los datos en un contrato, veremos a continuaci贸n tres posibilidades y dependiendo la misma, una variable tendr谩 un comportamiento u otro.
Storage
Storage
Indica que una variable ser谩 guardada dentro de la Blockchain. Siempre podremos obtener un valor desde el storage dado que todo en Blockchain es inmutable. A este tipo de memoria se le conoce como memoria persistente.
Memory
Memory
Las variables del tipo memory solo pueden ser usadas mientras se llama a una funci贸n. Despu茅s de esto, la misma se borrar谩. Este tipo de variable puede modificarse mientras est谩 en uso.
Calldata
Calldata
Similar a memory, con la diferencia de que aqu铆 las variables no se pueden modificar mientras est茅n en uso. Si se sabe de antemano que una variable no necesitar谩 modificarse, es buena pr谩ctica usar calldata para reducir el consumo de gas.
Por defecto, las variables de estado del contrato son guardadas en el storage, mientras que los par谩metros de una funci贸n son guardados en memory. Los 煤nicos tipos de datos a los que se les puede asignar un almacenamiento distinto son los tipos string, array, struct y mapping.
El tipo de almacenamiento de una variable cambiar谩 el ciclo de vida de la misma. Haciendo que esta sea modificable o persistente dentro del contrato. Es muy importante entender la diferencia entre cada tipo para saber cu谩ndo es conveniente utilizar cada uno y mejorar el rendimiento de un contrato.
Last updated