Colección de citas famosas - Slogan de motivación - Explicación detallada de BSC 2——retransmisor de BSC

Explicación detallada de BSC 2——retransmisor de BSC

bsc-relayer es un proceso independiente y se puede ejecutar de forma independiente. Cuando se ejecuta, primero verificará con BSC si se ha registrado. De lo contrario, se registrará automáticamente en BSC y requerirá un depósito de 100. BNB (actualmente un total de aproximadamente 22 monedas hermanas blandas de Dabuliuduo...), después de un registro exitoso, la información del bsc-relayer se registra en el contrato del sistema de solidez llamado RelayerHub.sol en BSC, y luego se puede ejecutar el servicio de retransmisión.

bsc-relayer tiene principalmente dos funciones:

Hay dos contratos de sistema de solidez en BSC (además de estos dos, hay otros contratos de sistema), a saber, TendermintLightClient.sol y CrossChain. .sol, la operación "sincronizar encabezado de bloque" de bsc-relayer llamará a TendermintLightClient.sol de BSC, y la operación "sincronizar paquete de datos entre cadenas" llamará a CrossChain.sol de BSC.

Además, bsc-relayer también tiene otras funciones, como el estado de la consulta local, el seguimiento de tx, etc., que no se describirán en detalle aquí.

bsc-relayer se comunica con BC y BSC a través de RPC, y la información de RPC se registra en el archivo config/config.json.

bsc-relayer siempre sondeará todos los eventos de cadena cruzada de bloques BC de cada altura. El formato del evento es el siguiente:

Entre ellos:

(Relacionado con BSC La lógica del contrato del sistema se presentará en capítulos posteriores)

bsc-relayer genera un identificador único basado en la combinación de identificación de canal y secuencia, y solicita la carga útil correspondiente de BC a través de RPC. las cargas útiles se pasan a bsc-relayer en forma de bytes.

bsc-relayer genera el tx llamado CrossChain.sol a partir de la carga útil anterior y lo envía a BSC a través de RPC.

Lo que bsc-relayer extrae es el encabezado del bloque de BC. El encabezado del bloque de BC es esencialmente el encabezado del bloque de Tendermint. Aquí tenemos que presentar primero las características relevantes de Tendermint:

. Lo anterior probablemente significa que datos como el estado y la firma de un bloque deben esperar al menos hasta el siguiente bloque para obtenerlos. Por lo tanto, si necesita verificar un bloque con una altura de H, debe esperar hasta el. Información de LastCommit del bloque con una altura de H 1 (descargo de responsabilidad, no soy muy bueno en eso. Comprenda el algoritmo de Tendermint y, si hay algo incorrecto, infórmelo a tiempo).

El comportamiento de bsc-relayer de extraer encabezados de bloques BC es completamente autónomo y se activa cuando ocurren las dos situaciones siguientes:

De lo anterior, se puede ver que bsc-relayer Continuará enviando mensajes al BSC. La transacción equivale a que el relé emita su propio gas para realizar el trabajo.

Para compensar esta pérdida, BSC emitirá una recompensa del sistema a bsc-relayer en el contrato del sistema RelayerIncentivize.sol. La recompensa debe ser mucho mayor que el gas deducido; de lo contrario, perderá gg.

Como retransmisor, bsc-relayer no participa en el procesamiento de estructuras de datos específicas, sino que sólo sirve como monitor y portador de datos.

/bnb-chain/bsc-relayer.git