Tipos de Visibilidad de las Funciones en SOLIDITY (Public vs External)

Escrito por
Yolanda López
Yolanda López
Publicado el
26/4/2023 0:00
Inicio
»
Desarrollo Blockchain
»
Tipos de Visibilidad de las Funciones en SOLIDITY (Public vs External)

Utilizar correctamente la visibilidad en las funciones y variables en Solidity es vital para garantizar la seguridad y el buen funcionamiento de los smart contracts.

Hay que tener en cuenta que estamos en una blockchain pública, por lo tanto, todos los datos son accesibles de algún modo. Podemos restringir desde dónde se pueden utilizar ciertas funciones o variables, pero no podemos restringir su lectura.

En Solidity existen 4 tipos de visibilidad para las funciones y las variables de estado.

  1. public: variable o función completamente accesible, sea cual sea el origen.
  2. private: variable o función a las que sólo se puede acceder desde el smart contract en el que se declaran.
  3. internal: variable o función a las que sólo se puede acceder desde el smart contract en el que se declaran y los que derivan de él (herencia).
  4. external: funciones que son parte de la interfaz del contrato, lo que significa que pueden llamarse desde otros contratos y vía transacciones, pero no pueden llamarse internamente.

En el siguiente esquema, aparecen representados todos los tipos de visibilidad. De esta forma, de un simple vistazo puedes reconocerlos todos.


Al principio, es habitual confundir la visibilidad public con la visibilidad external.


Funciones public vs external en Solidity?

La visibilidad public permite que la función o variable que la llevan asignada, es accesible desde cualquier parte: dentro del propio contrato, en contratos heredados y fuera del contrato también.

En cambio, las funciones con visibilidad external sólo son accesibles desde fuera del contrato. Lo cual quiere decir que no pueden llamarse internamente (o sea, dentro del propio contrato)

Como ha sabéis, en Solidity es MUY importante ser metódicos para escribir un código ediciente y gastar la menor cantidad de gas posible, así que en términos de gas, la visibilidad external puede ser algo más eficiente que public.

¿Y por qué? Pues porque cuando se utiliza public, se asigna automáticamente un espacio de almacenamiento para esa función, por lo tanto se genera un coste adicional en gas.

No obstante, hay que elegir la visibilidad de las funciones obedeciendo a los requerimientos que tenga nuestro contrato, sobretodo hablando en términos de seguridad.

Bonus: Las oportunidad del desarrollo blockchain

¿Quieres formarte en programación blockchain?

¿Sabes que es considerada programación del futuro y la que tiene los salarios más altos?

Accede a la masterclass gratis sobre desarrollo blockchain y descúbrelo, pulsando aquí.


Vídeo del artículo:

Masterclass Gratuita: Comienza tu carrera como Desarrollador Blockchain
Aprende la profesión con salarios de media de más de 100,000€ al año con nuestra metodología en 5 pasos.
Ir a la Masterclass
Masterclass Gratuita: Comienza tu carrera como Desarrollador Blockchain
Aprende la profesión con salarios de media de más de 100,000€ al año con nuestra metodología en 5 pasos.
Ir a la Masterclass

Artículos relacionados

¿Qué estudiar para ser Desarrollador Blockchain?
Desarrollo Blockchain

¿Qué estudiar para ser Desarrollador Blockchain?

En Conquer Blocks siempre hablamos de desarrollo Blockchain, pero ¿sabes qué conocimientos necesitas para ser desarrollador Blockchain?En este artículo vamos a hacer un recorrido por todos los conocimientos necesarios, por orden de aprendizaje.
Yolanda López
26/4/2023
¿Qué es el trilema de la blockchain?
Desarrollo Blockchain

¿Qué es el trilema de la blockchain?

Las cadenas de bloques solamente son capaces de manejar un determinado número de transacciones por segundo.Hablando de las dos redes más grandes que existen actualmente, en el caso de Bitcoin se pueden gestionar hasta siete transacciones por segundo, y en el caso de Ethereum se gestionan unas 13 transacciones cada segundo.
Yolanda López
26/4/2023
¿Qué es DeFi? - Conoce las finanzas descentralizadas
Desarrollo Blockchain

¿Qué es DeFi? - Conoce las finanzas descentralizadas

Te imaginas un mundo en el que las personas pudiéramos hacer transacciones completamente seguras y transparentes, o pudiéramos almacenar nuestros ahorros en carteras digitales sin necesidad de intermediarios, o incluso pudiéramos ser prestamistas con todas las garantías de que vamos a recibir nuestro dinero? Pues tenemos una buena noticia para ti, porque precisamente esto es lo que se conoce como Finanzas Descentralizadas y ya es posible. Y seguro que ya te estás imaginando gracias a qué tecnología: la Blockchain.
Yolanda López
26/4/2023
DeFi vs FinTech ¿Son lo mismo? Diferencias
Desarrollo Blockchain

DeFi vs FinTech ¿Son lo mismo? Diferencias

Hoy en día todo es digital. La tecnología lo mueve todo y poco a poco hemos ido digitalizando cosas que parecían impensables. Ahora podemos leer libros en formato digital por ejemplo.Y lo mismo ha ocurrido con el mundo financiero. Un sistema que antes funcionaba con monedas y billetes, y que era completamente analógico, poco a poco se ha ido modernizando y ahora podemos incluso llevar la tarjeta de crédito en el móvil y hacer pagos con ella.
Yolanda López
26/4/2023
¿Dónde aprender Desarrollo Blockchain en Solidity GRATIS?
Desarrollo Blockchain

¿Dónde aprender Desarrollo Blockchain en Solidity GRATIS?

El desarrollo Blockchain, como ya sabréis, es una de las profesiones mejor pagadas y que más relevancia está tomando actualmente, y no es para menos. Esta tecnología cada vez se está implantando más empresas, y los desarrolladores son el perfil que más está ayudando a que así sea. Como la blockchain es una tecnología muy nueva, puede parecer un poco difícil sumergirse en este mundo y comenzar a aprender de forma autodidacta. Y realmente, en cierto modo lo es, sobretodo cuando se trata de desarrollo Blockchain. Por suerte, existen compañías punteras en este sector que han elaborado cursos y páginas web interactivas para que el camino en este aprendizaje se haga un poco más llevadero. Como es fácil perderse en todo esto, y aprender esta tecnología de forma autodidacta puede ser realmente difícil, en ConquerBlocks hemos querido ayudarte en todo esto, trayendo varios recursos COMPLETAMENTE GRATUITOS que te van a servir para aprender sobre tecnología y desarrollo Blockchain. ‍
Yolanda López
26/4/2023
Los 3 mejores Cursos de Desarrollo Blockchain online y presenciales
Desarrollo Blockchain

Los 3 mejores Cursos de Desarrollo Blockchain online y presenciales

Hoy en día están surgiendo infinidad de formaciones que tienen que ver con la tecnología y el desarrollo Blockchain, y la razón es que esta tecnología está en pleno auge y cada vez son más las personas que quieren aprenderla.‍Pero lo cierto es, que la mayoría de estas formaciones no tienen ninguna consistencia porque no están impartidas por verdaderos profesionales del sector. Y precisamente por eso, hemos hecho una selección de las 3 mejores formaciones en Tecnología Blockchain, para ayudarte a elegir cuál es la que más se ajusta a tus necesidades.
Yolanda López
26/4/2023

Nuestras últimas publicaciones

Aprende sobre Criptomonedas, Blockchain, NFTs, Metaversos, Inteligencia Artificial y Emprendimiento.
¿Qué es un Full-Stack Developer? Alta demanda y Buenos salarios 🤑
Desarrollo

¿Qué es un Full-Stack Developer? Alta demanda y Buenos salarios 🤑

“FullStack”, ese término tan de moda. ¿Pero te has preguntado alguna vez si sabes realmente lo que es un Desarrollador Full-Stack.?
Bienvenido Sáez
26/4/2023
10m
Así son los NFTs de Bitcoin Ordinals y la Colección NFT de Peter Schiff
NFTs y Metaverso

Así son los NFTs de Bitcoin Ordinals y la Colección NFT de Peter Schiff

En este artículo te explicamos cómo la combinación de los revolucionarios NFT de Bitcoin Ordinals y la inesperada colección de NFT del famoso crítico de Bitcoin, Peter Schiff, están sacudiendo el mundo de las criptomonedas y generando un intenso debate sobre el valor y el futuro de esta tecnología disruptiva.
Jordi Quintana
26/4/2023
Bitcoin vs oro ¿Cuál es mejor y por qué?
Criptomonedas y Blockchain

Bitcoin vs oro ¿Cuál es mejor y por qué?

Hoy estaremos dando respuesta a una de las preguntas que más ampollas levanta entre defensores de uno y otro activo y como siempre lo haremos desde una forma objetiva.
Carlos Ruiz
26/4/2023
Cómo evitar estafas con criptomonedas (TIPS Clave)
Criptomonedas y Blockchain

Cómo evitar estafas con criptomonedas (TIPS Clave)

En este artículo te brindamos algunos consejos para mantenerte seguro y proteger tus inversiones de posibles estafas.
Eliana Di Nucci
26/4/2023
¿Qué es XRP y cómo funciona?
Criptomonedas y Blockchain

¿Qué es XRP y cómo funciona?

En este artículo explicamos cuál es el funcionamiento de este token que ha logrado atraer la atención de todo el sector en las últimas semanas.
Carlos Ruiz
26/4/2023
¿Qué estudiar para ser Desarrollador Blockchain?
Desarrollo Blockchain

¿Qué estudiar para ser Desarrollador Blockchain?

En Conquer Blocks siempre hablamos de desarrollo Blockchain, pero ¿sabes qué conocimientos necesitas para ser desarrollador Blockchain?En este artículo vamos a hacer un recorrido por todos los conocimientos necesarios, por orden de aprendizaje.
Yolanda López
26/4/2023
Update cookies preferences