What Are Relayers?
In the BESC Hyperchain ecosystem, relayers are the 4 IBFT 2.0 consensus nodes that both produce blocks AND route block rewards and gas fees into the validator economy.
The Dual Role
Each relayer node does two jobs simultaneously:
1. Block Production (IBFT 2.0 Consensus)
The 4 relayer nodes participate in IBFT 2.0 block production. They propose, vote on, and seal blocks every 3 seconds. This is the standard consensus role.
2. Reward & Gas Forwarding
After sealing each block, the relayer that produced it forwards both the block reward (0.002 BESC) and all gas fees collected in that block via forwardReward() on the Validator Registry. The exact split of where those funds go depends on whether the target validator has delegators:
If validator has NO delegators:
→ Block reward + gas fees sent DIRECT to the validator wallet
If validator HAS delegators:
→ Validator commission share → sent DIRECT to the validator
→ Remaining → sent to the registry contract
→ split among delegators proportionally by their stakeThis design means validators without delegators receive everything directly with no contract overhead, while validators with delegators get their earned commission directly and delegators receive their proportional share from the registry.
Why This Design?
This architecture separates two concerns cleanly:
IBFT Layer (permissioned, fixed)
─ 4 trusted relayer nodes
─ Responsible for chain security and liveness
─ Cannot be joined by arbitrary participants
Economic Layer (governed, open)
─ Any approved entity can register as a validator
─ Stake BESC, earn proportional rewards
─ 28+ validators today
─ Governed by on-chain votingThe relayers are the trusted intermediaries that connect these two layers. Only authorized relayer addresses can call forwardReward() on the registry.
Relayer Authorization
Relayer addresses are managed by the registry owner via:
function addRelayer(address relayer) external onlyOwner;
function removeRelayer(address relayer) external onlyOwner;
// Check if an address is an authorized relayer
mapping(address => bool) public authorizedRelayers;Relayer / Consensus Node Addresses
| # | Address |
|---|---|
| 1 | 0x5A5134c2BC99c3991D69839eE7628364fa813619 |
| 2 | 0x8F32294c406f8c32a24D0B3c800a5f172CCFcebd |
| 3 | 0xc493Ac0fd4Bb41552E8a83F675A16c318249C17c |
| 4 | 0xD00b96c4586D9B2e6dee6DEFd69CBE7E988f5745 |
