Blacklisting A Component

Component blacklisting exists as an emergency feature to ensure Nodes can remove faulty components.

Overview

  • Malicious components can be blacklisted on a Router contract.

  • This is to enable Node Owners to force remove a component that is not functioning correctly and blocking normal Node operations.

  • If a component is not blacklisted use of the force bool on node.removeComponent() will revert.

The blacklist is publicly viewable on each Router contract:

mapping(address => bool) public isBlacklisted;

Only the Registry Owner can blacklist a component:

function setBlacklistStatus(address component, bool status) external onlyRegistryOwner {
        if (component == address(0)) revert ErrorsLib.ZeroAddress();
        isBlacklisted[component] = status;
        emit EventsLib.ComponentBlacklisted(component, status);
    }

Interactions with Router Whitelist

The whitelist is not affected by the blacklist:

  • The whitelist exists to enable governance to safely add valid components to each router contract.

  • The blacklist exists to enable governance to safely allow node owner to remove faulty or malicious components.

  • Add a component to the blacklist does not remove it from the whitelist. This step must be separately to protect future node owners from adding the malicious component.

Last updated