Screenshot

Qué es Solang, el traductor de Solidity para Solana y Polkadot de Hyperledger

Hyperledger y Linux Foundation han puesto en marcha una de las propuestas más interesantes en el ámbito de la programación blockchain: Solang. Se trata de un un proyecto que ha construido un compilador del lenguaje Solidity de Ethereum, permitiendo utilizar este lenguaje para crear aplicaciones descentralizadas (DApps). Dichas aplicaciones pueden desplegarse en blockchains  como Solana y Polkadot, incluyendo también a sus derivadas

Básicamente, Solang es un traductor de Solidity capaz de generar un código compatible con las máquinas virtuales que se ejecutan en las redes Solana y Polkadot, permitiendo que los desarrolladores puedan utilizar todas las herramientas de desarrollo que existen en Solidity para generar aplicaciones para las cadenas ya mencionadas.

Qué es Hyperledger Fabric, la blockchain de las empresas

De esta forma, los desarrolladores de smarts contracts de Solana y Polkadot ven ampliadas sus oportunidades de desarrollo. Al  mismo tiempo, los desarrollos en Solidity pueden portarse más fácilmente a las nuevas redes soportadas por Solang. El proyecto  lleva construyéndose desde el año 2020, pero fue a finales de 2022 cuando alcanzó un nivel de madurez lo suficientemente alto  como para considerar su uso en producción.

¿Cómo funciona Solang?

Para el público no desarrollador, la manera más sencilla de explicarlo es que su software funciona como un traductor. Solang toma el código escrito en Solidity de los smart contracts y transforma dichas instrucciones en código que las máquinas virtuales de Solana y Polkadot pueden ejecutar. De esta forma, una aplicación descentralizada escrita en Solidity se puede porta, para que funcione en las blockchains a las que Solang ofrece soporte: Solana y Polkadot.

Solang, es parte de los proyectos de Hyperledger
Solang forma parte de los proyectos desarrollados por Hyperledger

Es importante resaltar que la traducción realizada por Solang no es 100% perfecta. Esto se debe a los cambios que tienen lugar  entre las distintas redes blockchain (diferente funciones criptográficas, formato de direcciones y demás). Pese a ello, herramientas como Solang facilitan la generación y portación de DApps entre las distintas cadenas.

Qué es Golden, la Wikipedia o el Google del conocimiento de la Web3

Por ejemplo, una plataforma como Uniswap (construida en Ethereum usando Solidity) podría ser fácilmente portada a Solana o Polkadot gracias a Solang. Para ello, los desarrolladores de Uniswap tendrían que preparar su entorno de desarrollo para agregar  Solang a sus herramientas. Una vez realizado esto, deben hacer los cambios necesarios a los smart contracts para que compilen sin problemas. Es decir, sean traducidos por Solang de Solidity al código de Solana o Polkadot, según se requiera.

Así,  el equipo solo tendría que hacer pruebas de dicho código en redes testnet y verificar que todo funciona como debe ser. De esta manera, los desarrolladores de Uniswap no tendrían que reescribir todo para desplegar Uniswsap en Solana o Polkadot, simplemente deben hacer pequeños ajustes para lograr el objetivo.

Un deep-dive sobre Solang

¿Cómo posibilita Solang todo esto a un nivel un poco más técnico? La magia empieza con el uso de LLVM y su capacidad para producir código WebAssembly (WASM) y Solana SBF.

Qué es Chainlink, la red de oráculos que une el mundo real con blockchain

LLVM, la primera pieza detrás de Solang

LLVM es un proyecto de software libre muy conocido. Es el responsable de crear una de las infraestructuras de compilación más grandes del sector. Algunos de estos valiosos desarrollos son:

  1. Clang, un completo compilador de lenguaje C/C++/ObjC, con capacidades únicas para checking, LSP (Language Server Protocol – Protocolo de Servidor de Lenguaje) y más, que facilitan el desarrollo utilizando estos lenguajes de programación, que son los más importantes dentro del mundo de la informática.
  2. LLDB es un debugueador o buscador de errores para los lenguajes C/C++/ObjC.
  3. Libc++, una librería de C++ que está tomando cada vez más relevancia en el mundo de la informática debido a su soporte y rendimiento.
  4. OpenMP y OpenACC son dos herramientas para la generación de software de alto rendimiento y paralelización.
  5. LLVMpipe es un driver o controlador gráfico creado por Mesa construido enteramente por software. Ofrece alto rendimiento para computadores donde el soporte gráfico por hardware es complejo (u obsoleto) de obtener.

Qué es Helium, el primer criptoportador del mundo y donde ha invertido Telefónica

La relevancia de LLVM es enorme en el mundo del software y para el caso de Solang también. El motivo es que LLVM ofrece las capacidades de compilación de alto rendimiento para que Solang pueda funcionar. Esto es posible porque los proyectos de Solana y Polkadot han usado LLVM en sus respectivos desarrollos desde hace tiempo. Por ejemplo, Polkadot utiliza LLVM para transformar sus smart contracts (escritos en Substrate, Solidity o Ink) en WebAssembly (WASM).  Mientras que Solana puede utilizar smart contracts escritos en Rust (compilados con rustc) y C/C++ (compilados con LLVM y sus extensiones Solana BPF Loader o SBF).

Hyperledger es el que une las piezas

Dado que ambos proyectos tienen un punto en común, tanto Solana como Polkadot tienen la capacidad de emplear LLVM para compilar smarts contracts, los desarrolladores de Hyperledger han creado una estructura que flexibilice el uso de LLVM para convertir Solidity en código compilado para ambas cadenas.

Como resultado, Solang puede tomar el código de Solidty y transformar su salida a un código compilado compatible, permitiendo portar aplicaciones descentralizadas de forma más sencilla. Lo mejor de todo es que al usar LLVM esto se realiza de forma rápida y altamente optimizada, por lo que las aplicaciones descentralizadas generadas pueden funcionar de forma óptima en las redes objetivo. Por ejemplo, requiriendo poco gas para operar u operando de forma tal que no requieren de grandes capacidades de cómputo para ejecutarse de forma correcta.

Qué es Filecoin, almacenamiento de datos P2P alternativo a Google o Amazon

No obstante, conviene recordar que Solang todavía es un desarrollo en fase muy temprana. De hecho, el soporte que ofrece no es completo. De momento, solo puede tratar con Solidity versión 0.8, cuando la versión más actual es la 0.8.21 (21 revisiones de diferencia).

Solidity en su versión 0.8 ese es el objetivo de soporte de Solang
Solidity en su versión 0.8 es el objetivo de soporte de Solang 

El problema de estga limitación es que si deseas trasladar smart contracts anteriores a la versión 0.8, podría no lograrse de forma exitosa, teniendo que reescribir buena parte de los mismos. Si hay cambios en las versiones superiores, también podrías verte en la misma situación. Otros lenguajes (como Yul o EVM Assembly) también pueden funcionar con Solang, pero el soporte del  lenguaje es incompleto.

Qué es la tokenización blockchain y por qué está transformando el mundo

Nuevas fronteras

El interés de Hyperledger por desarrollar una herramienta como Solang es lógico Por un lado, se flexibiliza el alcance que tienen las aplicaciones descentralizadas creadas en Solidity, al permitir que pueden ser portadas fácilmente a otras cadenas sin tener que reescribir enteramente los smart contracts. Esto facilita el trabajo de crear, portar y mantener actualizadas dichas aplicaciones entre distintas cadenas.

¿Qué es Hyperledger Besu, el software que puede ser utilizado en la red Ethereum?

Asimismo, focaliza y reúne más esfuerzos de desarrollo sobre proyectos bien establecidos. Como son OpenZepellin o Alchemy, cuyos SDK y frameworks para crear aplicaciones descentralizadas sobre Solidit, pueden ser fácilmente adaptadas para aprovechar las posibilidades de Solang.

Aunque no se trata de un trabajo sencillo, desde Hyperledger han ido alcanzando hitos para hacer realidad todo esto. La actual versión de Solang (0.3.1) ofrece muchas de estas capacidades y el equipo se plantea grandes metas para la próxima: la 0.4, donde se verán avances para facilitar el trabajo de esta herramienta.

También puedes seguirnos en nuestros canales de Telegram Twitter 

José Maldonado
Comparte esto:
Esta web utiliza cookies. Puedes ver aquí la Política de Cookies. Si continuas navegando estás aceptándola   
Privacidad