interface ConnectionGater {
    denyDialMultiaddr?(multiaddr): Promise<boolean>;
    denyDialPeer?(peerId): Promise<boolean>;
    denyInboundConnection?(maConn): Promise<boolean>;
    denyInboundEncryptedConnection?(peerId, maConn): Promise<boolean>;
    denyInboundRelayReservation?(source): Promise<boolean>;
    denyInboundRelayedConnection?(relay, remotePeer): Promise<boolean>;
    denyInboundUpgradedConnection?(peerId, maConn): Promise<boolean>;
    denyOutboundConnection?(peerId, maConn): Promise<boolean>;
    denyOutboundEncryptedConnection?(peerId, maConn): Promise<boolean>;
    denyOutboundRelayedConnection?(source, destination): Promise<boolean>;
    denyOutboundUpgradedConnection?(peerId, maConn): Promise<boolean>;
    filterMultiaddrForPeer?(peer, multiaddr): Promise<boolean>;
}

Methods

  • denyDialMultiaddr tests whether we're permitted to dial the specified multiaddr.

    This is called by the connection manager - if the peer id of the remote node is known it will be present in the multiaddr.

    Return true to prevent dialing the passed peer on the passed multiaddr.

    Parameters

    Returns Promise<boolean>

  • denyInboundConnection tests whether an incipient inbound connection is allowed.

    This is called by the upgrader, or by the transport directly (e.g. QUIC, Bluetooth), straight after it has accepted a connection from its socket.

    Return true to deny the incoming passed connection.

    Parameters

    Returns Promise<boolean>

  • denyInboundEncryptedConnection tests whether a given connection, now encrypted, is allowed.

    This is called by the upgrader, after it has performed the security handshake, and before it negotiates the muxer, or by the directly by the transport, at the exact same checkpoint.

    Return true to deny the passed secured connection.

    Parameters

    Returns Promise<boolean>

  • denyInboundRelayedConnection tests whether a remote peer is allowed to open a relayed connection to this node.

    This is invoked on the relay client when a remote relay has received an instruction to relay a connection to the client.

    Return true to deny the relayed connection.

    Parameters

    Returns Promise<boolean>

  • denyInboundUpgradedConnection tests whether a fully capable connection is allowed.

    This is called after encryption has been negotiated and the connection has been multiplexed, if a multiplexer is configured.

    Return true to deny the passed upgraded connection.

    Parameters

    Returns Promise<boolean>

  • denyOutboundConnection tests whether an incipient outbound connection is allowed.

    This is called by the upgrader, or by the transport directly (e.g. QUIC, Bluetooth), straight after it has created a connection with its socket.

    Return true to deny the incoming passed connection.

    Parameters

    Returns Promise<boolean>

  • denyOutboundEncryptedConnection tests whether a given connection, now encrypted, is allowed.

    This is called by the upgrader, after it has performed the security handshake, and before it negotiates the muxer, or by the directly by the transport, at the exact same checkpoint.

    Return true to deny the passed secured connection.

    Parameters

    Returns Promise<boolean>

  • denyOutboundRelayedConnection tests whether a remote peer is allowed to open a relayed connection to the destination node.

    This is invoked on the relay server when a source client with a reservation instructs the server to relay a connection to a destination peer.

    Return true to deny the relayed connection.

    Parameters

    Returns Promise<boolean>

  • denyOutboundUpgradedConnection tests whether a fully capable connection is allowed.

    This is called after encryption has been negotiated and the connection has been multiplexed, if a multiplexer is configured.

    Return true to deny the passed upgraded connection.

    Parameters

    Returns Promise<boolean>