Cross-chain Message Passing (XCMP)

Las transacciones cross-chain (entre cadenas) se resuelven mediante un mecanismo de cola (queue) simple basado en un árbol Merkle para garantizar la fidelidad. Es tarea de los validadores de la Relay Chain mover transacciones en la cola de salida de una parachain a la cola de entrada de la parachain de destino. Sin embargo, solo los metadatos asociados se almacenan como un hash en el almacenamiento de la Relay Chain.

La cola de entrada y salida a veces se hace referencia en el código base (codebase) y la documentación asociada como mensajes de "ingress" y "egress", respectivamente.

Descripción general de XCMP

XCMP está actualmente en desarrollo y los detalles están sujetos a cambios. Sin embargo, las decisiones generales de arquitectura y diseño son las siguientes:

  • Cross-chain messages (Los mensajes entre cadenas) no pasarán a la Relay Chain.
  • Cross-chain messages se limitarán a un tamaño máximo en bytes.
  • Las parachains pueden bloquear mensajes de otras parachains, en cuyo caso la parachain de envío estaría al tanto de este bloqueo.
  • Los nodos de collator son responsables de enrutar mensajes entre cadenas.
  • Los collators producen una lista de mensajes de "salida-egress" y recibirán los mensajes de "entrada-ingress" de otras parachains.
  • En cada bloque, se espera que las parachains enruten mensajes de algún subconjunto de todas las demás parachains.
  • Cuando un collator produce un nuevo bloque para entregarlo a un validador, recopilará la información de la cola de entrada (ingress) más reciente y la procesará.
  • Los validadores comprobarán una prueba de que el nuevo candidato para el siguiente bloque de parachain incluye el procesamiento de los mensajes de entrada (ingress)esperados a ese parachain.

Las colas (queues) XCMP deben iniciarse abriendo primero un canal entre dos parachains. El canal se identifica tanto por el remitente como por el destinatario, lo que significa que es un canal unidireccional. Un par de parachains pueden tener como máximo dos canales entre ellos, uno para enviar mensajes a la otra cadena y otro para recibir mensajes. El canal requerirá un depósito en DOT para ser abierto, el cual será devuelto cuando el canal esté cerrado.

Horizontal Relay-routed Message Passing (HRMP)

Mientras XCMP todavía se está implementando, existe un protocolo provisional (ver definición a continuación) conocido como HRMP en su lugar. HRMP tiene la misma interfaz y funcionalidad que XCMP pero es mucho más exigente con los recursos, ya que almacena todos los mensajes en el almacenamiento de la Relay Chain. Cuando se haya implementado XCMP, se planea que HRMP quede obsoleto y se elimine gradualmente a su favor.

Nota: Un protocolo provisional es un sustituto temporal de la funcionalidad que no está completamente completa. Si bien XCMP propiamente dicho todavía está en desarrollo, HRMP es un reemplazo funcional.

Vertical Message Passing

Hay dos tipos de "Vertical Message Passing" (Transmisión de Mensajes Verticales): Upward Message Passing (Transmisión de mensajes ascendentes) (UMP) y (Downward Message Passing) (Transmisión de Mensajes Descendentes) (DMP). UMP se usa cuando un mensaje se origina en una parachain o una parathread para ir desde esa parachain hasta la Relay Chain. DMP se utiliza para ir al revés, cuando un mensaje se origina en la Relay Chain y está destinado a una parachain. Los mensajes que se pasan a través de DMP pueden tener su origen en una parachain. En cuyo caso, el primer UMP se utiliza para comunicar el mensaje a la Relay Chain y DMP se utiliza para moverlo hacia abajo a otra parachain.

Formato de mensaje XCMP

Para obtener una descripción del formato de mensaje XCMP, consulte el repositorio de formato xcm en GitHub.

Cómo hacer transferencias entre cadenas

Puede probar las transferencias cross-chain (entre cadenas) en la red de prueba Rococo (Rococo testnet). Puede encontrar un tutorial sobre transferencias descendentes, ascendentes y laterales aquí.

XCMP de alto nivel

Un smart contract (contrato inteligente) que existe en parachain A enviará un mensaje a parachain B en el que se llama a otro smart contract que realiza una transferencia de algunos activos dentro de esa cadena.

Charlie ejecuta el smart contract en parachain A, que inicia un nuevo mensaje cross-chain (de cadena cruzada) para el destino de un smart contract en parachain B.

El nodo collator de parachain A colocará este nuevo mensaje cross-chain (de cadena cruzada) en su cola de mensajes salientes, junto con un destination y un timestamp.

El nodo de collator de la parachain B hace ping rutinariamente a todos los demás nodos de collator solicitando nuevos mensajes (filtrado por el field de destination). Cuando el collator de parachain B haga su siguiente ping, verá este nuevo mensaje en parachain A y lo agregará a su propia cola de entrada para procesarlo en el siguiente bloque.

Los validadores para parachain A también leerán la cola de salida y conocerán el mensaje. Los validadores para parachain B harán lo mismo. Esto es para que puedan verificar que ocurrió la transmisión del mensaje.

Cuando el collator de parachain B está construyendo el siguiente bloque de su cadena, procesará el nuevo mensaje en su cola de entrada, así como cualquier otro mensaje que haya encontrado / recibido.

Durante el procesamiento, el mensaje ejecutará el smart contract en parachain B y completará la transferencia de activos como se pretendía.

El collator ahora entrega este bloque al validador, que a su vez verificará que este mensaje fue procesado. Si el mensaje se procesó y todos los demás aspectos del bloque son válidos, el validador incluirá este bloque para la parachain B en la Relay Chain.

Vea nuestro video animado a continuación que explora cómo funciona XCMP.

https://storage.googleapis.com/w3f-tech-ed-contents/XCMP.mp4

Recursos

https://app.subsocial.network/@PolkadotEspanol/descripcion-general-de-xcmp-18922

Gavin Wood presenta el esquema de cross-chain messaging (XCMP) de Polkadot. (Ingles) Pueden activar los subtítulos en español

Cómo funciona HRMP en Rococo. (Ingles) Pueden activar los subtítulos en español

Cross-chain Message Passing Protocol. (Ingles) Pueden activar los subtítulos en español

0
Sebastian CriptoPost author

L∉şs Ŧℛµşτ, 𝔐øℛє ŦℛµτĦ ✨Not your keys, not your cryptos 🔑 #Web3 / Substrate Ecosystem & Multi-Chain Vision / Researcher - Educator.

Comunidad Hispana de Polkadot.

Este es un centro educativo para aprender sobre Polkadot, Kusama y Substrate en Español.

1 comment

Loading replies...

Comunidad Hispana de Polkadot. Este es un centro educativo para aprender sobre Polkadot, Kusama y Substrate en Español.