¿Qué son las invocaciones entre programas (cross-program invocations) en Solana?
Escrito por Tau
La invocación en tiempo de ejecución entre programas (cross-program invocation) en Solana permite un desarrollo de programas más eficiente y flexible, lo que la convierte en una característica clave de la plataforma. Las Cross Program Invocations (CPIs) se refieren a la capacidad de un programa en la blockchain de Solana de llamar a otro programa y ejecutar su código.
Este artículo te ayudará a entender qué son las invocaciones entre programas en Solana, sus casos de uso específicos, y cómo puedes usarlas en tus programas de Solana.
¿Qué son las invocaciones entre programas (cpis)?
En una invocación entre programas en tiempo de ejecución, un programa en Solana puede llamar a otro programa y pasarle datos, lo que permite crear sistemas de contratos inteligentes complejos y modulares.
El runtime de Solana proporciona un entorno seguro y descentralizado para ejecutar estas invocaciones entre programas. El runtime de Solana garantiza que el programa llamado se ejecute correctamente y que los resultados se devuelvan al programa que lo invocó de manera verificable. Esto permite crear aplicaciones descentralizadas y sin necesidad de confianza en la blockchain de Solana.
¿Cuáles son los casos de uso de las invocaciones entre programas?
Las invocaciones entre programas permiten una amplia variedad de casos de uso en la blockchain de Solana, como transacciones multisig, transferencias de tokens, canales de estado, interoperabilidad entre apps, nuevos tipos de transacciones, y funcionalidad compartida.
1. Transacciones de firma múltiple (multisig)
Un programa multisig es aquel en el que varias partes deben firmar una transacción antes de que se ejecute en la blockchain. Con las invocaciones entre programas, el programa multisig puede ser invocado por otros programas para verificar si una transacción tiene la cantidad de firmas necesaria antes de procesarla.
2. Transferencias de tokens
Solana tiene programas y cuentas de tokens para todas las transacciones relacionadas con un token. Estos programas de tokens pueden ser invocados por otros programas para transferir tokens de una cuenta a otra, permitiendo la creación de aplicaciones como los exchanges descentralizados.
3. Canales de estado
Los programas de Solana pueden usarse para implementar canales de estado, que permiten transacciones fuera de la cadena que se liquidan en la cadena. Por ejemplo, un programa puede usarse para implementar un canal de estado para un juego simple de blockchain, donde el programa de estado puede ser invocado por otros programas cuando los jugadores realizan movimientos, para luego liquidar el estado final en la cadena.
4. Interoperabilidad entre apps
Las invocaciones entre programas permiten que las apps se comuniquen entre sí y compartan datos, lo que permite interacciones más fluidas entre distintas apps en la red de Solana.
5. Funcionalidad compartida
Las apps pueden usar invocaciones entre programas para compartir funcionalidad común, como funciones criptográficas o almacenamiento de datos. Esto puede reducir la cantidad de código que cada dApp necesita implementar, y puede facilitar construir apps en Solana.
6. Habilitar nuevos tipos de transacciones
Las invocaciones entre programas habilitan nuevos tipos de interacciones entre apps, como la capacidad de que una dApp solicite datos de otra dapp o desencadene una acción en otra dApp.
Ya sea que quieras aplicar lógica de negocio compleja que involucre varios programas, como en exchanges descentralizados, crear billeteras multisig que requieran múltiples firmas de distintos programas, o construir a escala con programas componibles y reutilizables, implementar invocaciones entre programas es el mejor enfoque.
¿Cuáles son algunos ejemplos de invocaciones entre programas?
Las invocaciones entre programas pueden usarse de varias maneras, incluyendo una billetera multisig, un marketplace de NFTs y programas modulares.
1. Billetera multisig de Solana
Usando invocaciones entre programas, podemos crear una billetera multisig como Snowflake que requiere dos firmas para ejecutar una transacción. Esto se puede lograr creando dos programas: uno para cada firma.
Cuando se inicia una transacción, el primer programa verifica la primera firma, llama al segundo programa para verificar la segunda firma, y si ambas firmas son válidas, se ejecuta la transacción.
2. Marketplace de NFTs en Solana
Las invocaciones entre programas también ayudan en el desarrollo de marketplaces de NFTs en Solana para comprar y vender tokens no fungibles (NFTs). Los desarrolladores pueden lograr esto creando un programa para gestionar el marketplace, y programas separados para cada tipo de NFT que se comercia en el marketplace. El programa del marketplace puede llamar al programa de NFT correspondiente para verificar la unicidad y propiedad del NFT, y luego ejecutar el intercambio si todo es válido.
3. Programas modulares
Las invocaciones entre programas ayudan directamente a crear un programa complejo que involucra múltiples pasos e interacciones. Esto se logra creando múltiples programas, cada uno manejando un paso o aspecto específico del contrato. El programa de contrato principal puede entonces llamar a los otros programas según sea necesario para ejecutar los distintos pasos del contrato.
Cómo ejecutar invocaciones entre programas
Construir una invocación entre programas en tiempo de ejecución en Solana implicaría los siguientes pasos: escribir, compilar, desplegar e invocar.
Paso 1: escribe tus programas de Solana
Primero, necesitas escribir los programas que quieres que puedan invocarse entre sí. Estos programas se pueden escribir en Rust nativo, usando el framework Anchor, o en Python usando el framework Seahorse.
Paso 2: compila tus programas a wasm
Una vez que hayas escrito los programas, necesitarás compilarlos a Wasm usando un compilador adecuado. Esto producirá un binario Wasm que puede ser ejecutado por el runtime de Solana.
Paso 3: despliega tus programas en Solana
A continuación, necesitas desplegar los binarios Wasm compilados en la blockchain de Solana. Esto se puede hacer usando la herramienta de línea de comandos solana-deploy, que se proporciona como parte del kit de desarrollo de software de Solana (SDK).
Paso 4: escribe transacciones para invocar tus programas
Después de desplegar los programas, puedes usar el SDK de Solana para escribir una transacción que invoque uno de los programas y le pase datos. Esta transacción se enviaría a la blockchain de Solana, donde sería verificada y ejecutada por el entorno de ejecución (runtime).
Cuando se ejecuta el programa llamado, puede realizar cualquier cómputo posible dentro del runtime de Wasm, incluyendo llamar a otros programas. Los resultados del cómputo pueden devolverse al programa que hizo la llamada y almacenarse en la blockchain de Solana.
En resumen, construir invocaciones entre programas en tiempo de ejecución en Solana implica escribir programas, compilarlos a Wasm, desplegarlos en la blockchain, y usar el SDK de Solana para invocarlos y pasar datos entre ellos. Esto permite la creación de sistemas de contratos inteligentes complejos y modulares en la plataforma de Solana.
Nota: las tarifas de renta de los programas de Solana variarán según la cantidad de programas presentes.
Ejemplo simple de la implementación
Como ejemplo, supongamos que tienes dos programas en Solana, program1 y program2, y quieres invocar la función process_data en program1 desde program2.
Así es como podrías hacerlo:
En program1, agrega una nueva función process_data_interface que tome los datos de entrada como parámetro y devuelva los datos de salida:
En program2, agrega código para invocar process_data_interface en program1, pasando los datos de entrada y recibiendo los datos de salida:
Luego puedes usar los datos de salida en program2 según lo necesites.
Nota: este es solo un ejemplo simple, y la implementación exacta dependerá de los programas y funciones específicos con los que estés trabajando. Es posible que necesites agregar código adicional para manejar errores, garantizar la autorización adecuada, etc.
Comienza con las invocaciones entre programas en tiempo de ejecución de Solana
Solana tiene una característica clave llamada Cross Program Invocations en tiempo de ejecución que permite que los contratos inteligentes que se ejecutan en su plataforma invoquen otros programas de manera segura y descentralizada. En Solana, cada programa tiene una dirección única en la blockchain, y las CPIs se logran llamando a la dirección del programa que quieres ejecutar. Esto permite que los programas interactúen entre sí y habilita una funcionalidad de programa compleja en la blockchain de Solana.
En general, las CPIs en tiempo de ejecución de Solana son una parte importante del conjunto de habilidades de un desarrollador de Solana, ya que permiten la creación de aplicaciones descentralizadas complejas y potentes.
Si quieres comenzar tu camino con el desarrollo en Solana y las CPIs, ¡regístrate hoy para obtener una cuenta de Alchemy!
Resúmenes relacionados
Solana27 de julio de 2026
Nodos de Solana: validadores, nodos RPC y self-hosting
Qué son los nodos de Solana, en qué se diferencian los validadores, los nodos RPC y los sistemas de datos secundarios, y cuándo conviene hacer self-hosting en lugar de usar un proveedor.
Solana22 de julio de 2026
Datos de archivo de Solana: cómo consultar el historial completo de bloques y transacciones
Datos de archivo de Solana explicados: por qué los nodos podan el historial, qué métodos de RPC necesitan acceso a archivo, y cómo consultar el historial completo de bloques y transacciones a escala.
Solana28 de mayo de 2026
Solana Agent Kit versus GOAT versus ElizaOS: ¿qué framework deberías usar?
Comparación entre Solana Agent Kit, GOAT y ElizaOS: profundidad nativa en Solana, alcance multichain o runtime de agentes completo. Incluye ejemplos de código y un marco de decisión.

Construye magia blockchain
Alchemy combina los productos y herramientas de desarrollo Web3 más potentes con recursos, comunidad y un soporte legendario.