Este repositorio contiene el código del prototipo desarrollado para verificar la factibilidad del protocolo propuesto en la tesis de maestría "Especificación Formal De Un Protocolo Criptográfico De Intercambio De Información Entre Blockchains"
Link de la tesis que contiene la descripción del protocolo: link tesiunam
Video que muestra la ejecución del prototipo: link youtube
-
El código requiere que se tengan descargadas las wallets Metamask y Phantom en el navegador en el que se va a ejecutar las web apps. Se recomienda usar Google Chrome.
-
Se deben tener cuatro cuentas en total: dos en la testnet de Sepolia (una para A y otra para pcn) y dos en la devnet de Solana (una para B y otra para pcn). Tratar que todas las cuentas tengan al menos 3 ETH para Sepolia y 3 SOL para Solana.
-
Copiar el código del contrato inteligente web-ethereum>smartContracts>ProtocolActionsSCA.sol, editarlo con las direcciones de las cuentas que se vayan a usar y desplegarlo usando Remix, puede seguir el siguente tutorial para desplegar contratos inteligentes con Remix. Una vez desplegado el nuevo contrato inteligente, reemplazar el valor del ProtocolActionsABI.json con el nuevo valor creado.
-
Seguir los pasos para instalar solana y anchor para desplegar contratos inteligentes en Solana y una vez instalado copiar el código del contrato inteligente web-solana>anchor>ProtocolActionsSCB.rs, editarlo con las direcciones de las cuentas que se vayan a usar y desplegarlo en Solana. Se puede seguir este tutorial para desplegar contratos inteligentes en Solana con Anchor y React. Una vez desplegado el nuevo contrato inteligente, reemplazar el valor del idl.json con el nuevo valor.
-
Obtener API Keys de los terceros que se vayan a usar para la comunicación con Ethereum, se puede omitir el uso de terceros, pero se debe modificar el código correspondiente.
-
Crear un archivo .env donde se incluyan los valores de las API keys, los valores de las direcciones públicas de los contratos inteligentes y las direcciones públicas de las cuentas, escribiendolos el siguiente formato:
# API KEYS
INFURA_API_KEY=''
ETHER_SCAN_API_KEY=''
ALCHEMY_API_KEY=''
CHAINSTACK_API_KEY=''
# ADDRESSES
USER_A_ETHEREUM_ADDRESS=''
NETWORK_LEADER_ETHEREUM_ADDRESS=''
NETWORK_LEADER_SOLANA_ADDRESS=''
USER_B_SOLANA_ADDRESS=''
# SMART CONTRACTS
SMART_CONTRACT_A_ETHEREUM_ADDRESS=''
SMART_CONTRACT_B_SOLANA_ADDRESS=''
SMART_CONTRACT_B_SOLANA_STATE_ADDRESS=''
- Una vez cubiertos los prerequisitos ejecutar el comando
yarn instally luego el comandoyarn vite, después copiar los links de localhosts en dos pestañas de su navegador electo y seguir la lógica del protocolo.