devp2p / org.apache.tuweni.devp2p.v5.internal / DefaultUdpConnector

DefaultUdpConnector

class DefaultUdpConnector : UdpConnector, CoroutineScope (source)

Constructors

<init>

DefaultUdpConnector(bindAddress: InetSocketAddress, keyPair: KeyPair, selfEnr: Bytes, enrStorage: ENRStorage = DefaultENRStorage(), receiveChannel: CoroutineDatagramChannel = CoroutineDatagramChannel.open(), nodesTable: RoutingTable = RoutingTable(selfEnr), topicTable: TopicTable = TopicTable(), ticketHolder: TicketHolder = TicketHolder(), authenticationProvider: AuthenticationProvider = DefaultAuthenticationProvider(keyPair, nodesTable), packetCodec: PacketCodec = DefaultPacketCodec(keyPair, nodesTable), selfNodeRecord: EthereumNodeRecord = EthereumNodeRecord.fromRLP(selfEnr), messageListeners: MutableList<MessageObserver> = mutableListOf(), coroutineContext: CoroutineContext = Dispatchers.IO)

Properties

coroutineContext

val coroutineContext: CoroutineContext

Functions

attachObserver

Attach observer for listening processed messages

fun attachObserver(observer: MessageObserver): Unit

detachObserver

Remove observer for listening processed message

fun detachObserver(observer: MessageObserver): Unit

getAwaitingPongRecord

Retrieve enr of pinging node

fun getAwaitingPongRecord(nodeId: Bytes): Bytes?

getEnr

Provides node's ENR

fun getEnr(): EthereumNodeRecord

getEnrBytes

Provides node's ENR in RLP encoded representation

fun getEnrBytes(): Bytes

getNodeKeyPair

Provides node's key pair

fun getNodeKeyPair(): KeyPair

getNodeRecords

Provides enr storage of known nodes

fun getNodeRecords(): ENRStorage

getNodesTable

Get kademlia routing table

fun getNodesTable(): RoutingTable

getPendingMessage

Retrieve last sent message, in case if it unauthorized and node can resend with authentication header

fun getPendingMessage(authTag: Bytes): TrackingMessage?

getSessionInitiatorKey

Provides node's session initiator key

fun getSessionInitiatorKey(nodeId: Bytes): Bytes

getTicketHolder

Provides node's ticket holder

fun getTicketHolder(): TicketHolder

getTopicRegistrar

Provides node's topic registrar

fun getTopicRegistrar(): TopicRegistrar

getTopicTable

Provides node's topic table

fun getTopicTable(): TopicTable

send

Sends udp message by socket address

suspend fun send(address: InetSocketAddress, message: UdpMessage, destNodeId: Bytes, handshakeParams: HandshakeInitParameters?): Unit

start

Bootstraps receive loop for incoming message handling

suspend fun start(): Unit

started

Gives information about connector, whether receive loop is working

fun started(): Boolean

terminate

Shut downs both udp receive loop and sender socket

suspend fun terminate(): Unit