devp2p
Module Contents
alltypes
Module Contents
object AES128GCM
class AuthHeader
interface AuthenticationProvider
class DecodeResult
class DefaultAuthenticationProvider : AuthenticationProvider
class DefaultENRStorage : ENRStorage
class DefaultPacketCodec : PacketCodec
class DefaultUdpConnector : UdpConnector, CoroutineScope
Module Contents
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)
fun attachObserver(observer: MessageObserver): Unit
val coroutineContext: CoroutineContext
fun detachObserver(observer: MessageObserver): Unit
fun getAwaitingPongRecord(nodeId: Bytes): Bytes?
fun getEnr(): EthereumNodeRecord
fun getEnrBytes(): Bytes
fun getNodeKeyPair(): KeyPair
fun getNodeRecords(): ENRStorage
fun getNodesTable(): RoutingTable
fun getPendingMessage(authTag: Bytes): TrackingMessage?
fun getSessionInitiatorKey(nodeId: Bytes): Bytes
fun getTicketHolder(): TicketHolder
fun getTopicRegistrar(): TopicRegistrar
fun getTopicTable(): TopicTable
suspend fun send(address: InetSocketAddress, message: UdpMessage, destNodeId: Bytes, handshakeParams: HandshakeInitParameters?): Unit
@ObsoleteCoroutinesApi suspend fun start(): Unit
fun started(): Boolean
suspend fun terminate(): Unit
class DevP2PPeerRoutingTable : PeerRoutingTable
interface DiscoveryService
Module Contents
abstract suspend fun awaitBootstrap(): Int
abstract suspend fun awaitTermination(): Unit
abstract fun awaitTerminationAsync(): AsyncCompletion
abstract val expiredPackets: Long
abstract val filteredPackets: Long
abstract val invalidPackets: Long
abstract val isShutdown: Boolean
abstract val isTerminated: Boolean
abstract val localPort: Int
abstract suspend fun lookup(target: PublicKey): List<Peer>
abstract fun lookupAsync(target: PublicKey): AsyncResult<List<Peer>>
abstract val nodeId: PublicKey
@JvmOverloads fun open(keyPair: KeyPair, port: Int = 0, host: String? = null, seq: Long = Instant.now().toEpochMilli(), enrData: Map<String, Bytes> = emptyMap(), bootstrapURIs: List<URI> = emptyList(), peerRepository: PeerRepository = EphemeralPeerRepository(), advertiseAddress: InetAddress? = null, advertiseUdpPort: Int? = null, advertiseTcpPort: Int? = null, routingTable: PeerRoutingTable = DevP2PPeerRoutingTable(keyPair.publicKey()), packetFilter: (PublicKey, InetSocketAddress) -> Boolean = null, loggerProvider: LoggerProvider = LoggerProvider.nullProvider(), channelGroup: CoroutineChannelGroup = CommonCoroutineGroup, bufferAllocator: () -> ByteBuffer = DEFAULT_BUFFER_ALLOCATOR, timeSupplier: () -> Long = CURRENT_TIME_SUPPLIER): DiscoveryService
@JvmOverloads fun open(keyPair: KeyPair, bindAddress: InetSocketAddress, seq: Long = Instant.now().toEpochMilli(), enrData: Map<String, Bytes> = emptyMap(), bootstrapURIs: List<URI> = emptyList(), peerRepository: PeerRepository = EphemeralPeerRepository(), advertiseAddress: InetAddress? = null, advertiseUdpPort: Int? = null, advertiseTcpPort: Int? = null, routingTable: PeerRoutingTable = DevP2PPeerRoutingTable(keyPair.publicKey()), packetFilter: (PublicKey, InetSocketAddress) -> Boolean = null, loggerProvider: LoggerProvider = LoggerProvider.nullProvider(), channelGroup: CoroutineChannelGroup = CommonCoroutineGroup, bufferAllocator: () -> ByteBuffer = DEFAULT_BUFFER_ALLOCATOR, timeSupplier: () -> Long = CURRENT_TIME_SUPPLIER): DiscoveryService
abstract val selfPackets: Long
abstract fun shutdown(): Unit
abstract fun shutdownNow(): Unit
abstract val unexpectedENRResponses: Long
abstract val unexpectedNeighbors: Long
abstract val unexpectedPongs: Long
abstract val unvalidatedPeerPackets: Long
interface ENRStorage
class EncodeResult
data class Endpoint
data class EnodeUriComponents
class EphemeralPeerRepository : PeerRepository
class EthereumNodeRecord
Module Contents
EthereumNodeRecord(signature: Bytes, seq: Long, data: Map<String, Bytes>)
val data: Map<String, Bytes>
@JvmStatic fun fromRLP(rlp: Bytes): EthereumNodeRecord
fun ip(): InetAddress
fun publicKey(): PublicKey
val seq: Long
val signature: Bytes
fun tcp(): Int
@JvmOverloads @JvmStatic fun toRLP(signatureKeyPair: KeyPair, seq: Long = Instant.now().toEpochMilli(), data: Map<String, Bytes>? = null, ip: InetAddress, tcp: Int? = null, udp: Int? = null): Bytes
fun udp(): Int
fun validate(): Unit
class FindNodeMessage : UdpMessage
class FindNodeMessageHandler : MessageHandler<FindNodeMessage>
class HandshakeInitParameters
interface MessageHandler<T : UdpMessage>
interface MessageObserver
interface NodeDiscoveryService
class NodesMessage : UdpMessage
class NodesMessageHandler : MessageHandler<NodesMessage>
interface PacketCodec
interface Peer
interface PeerRepository
interface PeerRoutingTable : Set<Peer>
class PingMessage : UdpMessage
class PingMessageHandler : MessageHandler<PingMessage>
class PongMessage : UdpMessage
class PongMessageHandler : MessageHandler<PongMessage>
class RandomMessage : UdpMessage
class RandomMessageHandler : MessageHandler<RandomMessage>
class RegConfirmationMessage : UdpMessage
class RegConfirmationMessageHandler : MessageHandler<RegConfirmationMessage>
class RegTopicMessage : UdpMessage
class RegTopicMessageHandler : MessageHandler<RegTopicMessage>
class RoutingTable
class SessionKey
object SessionKeyGenerator
class TargetAd
data class Ticket
class TicketHolder
class TicketMessage : UdpMessage
class TicketMessageHandler : MessageHandler<TicketMessage>
data class Topic
class TopicQueryMessage : UdpMessage
class TopicQueryMessageHandler : MessageHandler<TopicQueryMessage>
class TopicRegistrar : CoroutineScope
class TopicTable
class TrackingMessage
interface UdpConnector
abstract class UdpMessage
class WhoAreYouMessage : UdpMessage
class WhoAreYouMessageHandler : MessageHandler<WhoAreYouMessage>
package org.apache.tuweni.devp2p
Module Contents
const val DEVP2P_BUCKET_SIZE: Int
class DevP2PPeerRoutingTable : PeerRoutingTable
interface DiscoveryService
Module Contents
abstract suspend fun awaitBootstrap(): Int
abstract suspend fun awaitTermination(): Unit
abstract fun awaitTerminationAsync(): AsyncCompletion
abstract val expiredPackets: Long
abstract val filteredPackets: Long
abstract val invalidPackets: Long
abstract val isShutdown: Boolean
abstract val isTerminated: Boolean
abstract val localPort: Int
abstract suspend fun lookup(target: PublicKey): List<Peer>
abstract fun lookupAsync(target: PublicKey): AsyncResult<List<Peer>>
abstract val nodeId: PublicKey
@JvmOverloads fun open(keyPair: KeyPair, port: Int = 0, host: String? = null, seq: Long = Instant.now().toEpochMilli(), enrData: Map<String, Bytes> = emptyMap(), bootstrapURIs: List<URI> = emptyList(), peerRepository: PeerRepository = EphemeralPeerRepository(), advertiseAddress: InetAddress? = null, advertiseUdpPort: Int? = null, advertiseTcpPort: Int? = null, routingTable: PeerRoutingTable = DevP2PPeerRoutingTable(keyPair.publicKey()), packetFilter: (PublicKey, InetSocketAddress) -> Boolean = null, loggerProvider: LoggerProvider = LoggerProvider.nullProvider(), channelGroup: CoroutineChannelGroup = CommonCoroutineGroup, bufferAllocator: () -> ByteBuffer = DEFAULT_BUFFER_ALLOCATOR, timeSupplier: () -> Long = CURRENT_TIME_SUPPLIER): DiscoveryService
@JvmOverloads fun open(keyPair: KeyPair, bindAddress: InetSocketAddress, seq: Long = Instant.now().toEpochMilli(), enrData: Map<String, Bytes> = emptyMap(), bootstrapURIs: List<URI> = emptyList(), peerRepository: PeerRepository = EphemeralPeerRepository(), advertiseAddress: InetAddress? = null, advertiseUdpPort: Int? = null, advertiseTcpPort: Int? = null, routingTable: PeerRoutingTable = DevP2PPeerRoutingTable(keyPair.publicKey()), packetFilter: (PublicKey, InetSocketAddress) -> Boolean = null, loggerProvider: LoggerProvider = LoggerProvider.nullProvider(), channelGroup: CoroutineChannelGroup = CommonCoroutineGroup, bufferAllocator: () -> ByteBuffer = DEFAULT_BUFFER_ALLOCATOR, timeSupplier: () -> Long = CURRENT_TIME_SUPPLIER): DiscoveryService
abstract val selfPackets: Long
abstract fun shutdown(): Unit
abstract fun shutdownNow(): Unit
abstract val unexpectedENRResponses: Long
abstract val unexpectedNeighbors: Long
abstract val unexpectedPongs: Long
abstract val unvalidatedPeerPackets: Long
data class Endpoint
data class EnodeUriComponents
class EphemeralPeerRepository : PeerRepository
class EthereumNodeRecord
Module Contents
EthereumNodeRecord(signature: Bytes, seq: Long, data: Map<String, Bytes>)
val data: Map<String, Bytes>
@JvmStatic fun fromRLP(rlp: Bytes): EthereumNodeRecord
fun ip(): InetAddress
fun publicKey(): PublicKey
val seq: Long
val signature: Bytes
fun tcp(): Int
@JvmOverloads @JvmStatic fun toRLP(signatureKeyPair: KeyPair, seq: Long = Instant.now().toEpochMilli(), data: Map<String, Bytes>? = null, ip: InetAddress, tcp: Int? = null, udp: Int? = null): Bytes
fun udp(): Int
fun validate(): Unit
interface Peer
interface PeerRepository
interface PeerRoutingTable : Set<Peer>
fun parseEnodeUri(uri: URI): EnodeUriComponents
package org.apache.tuweni.devp2p.v5
package org.apache.tuweni.devp2p.v5.encrypt
package org.apache.tuweni.devp2p.v5.internal
Module Contents
class DefaultAuthenticationProvider : AuthenticationProvider
class DefaultPacketCodec : PacketCodec
class DefaultUdpConnector : UdpConnector, CoroutineScope
Module Contents
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)
fun attachObserver(observer: MessageObserver): Unit
val coroutineContext: CoroutineContext
fun detachObserver(observer: MessageObserver): Unit
fun getAwaitingPongRecord(nodeId: Bytes): Bytes?
fun getEnr(): EthereumNodeRecord
fun getEnrBytes(): Bytes
fun getNodeKeyPair(): KeyPair
fun getNodeRecords(): ENRStorage
fun getNodesTable(): RoutingTable
fun getPendingMessage(authTag: Bytes): TrackingMessage?
fun getSessionInitiatorKey(nodeId: Bytes): Bytes
fun getTicketHolder(): TicketHolder
fun getTopicRegistrar(): TopicRegistrar
fun getTopicTable(): TopicTable
suspend fun send(address: InetSocketAddress, message: UdpMessage, destNodeId: Bytes, handshakeParams: HandshakeInitParameters?): Unit
@ObsoleteCoroutinesApi suspend fun start(): Unit
fun started(): Boolean
suspend fun terminate(): Unit
package org.apache.tuweni.devp2p.v5.internal.handler
package org.apache.tuweni.devp2p.v5.misc
package org.apache.tuweni.devp2p.v5.packet
package org.apache.tuweni.devp2p.v5.storage
package org.apache.tuweni.devp2p.v5.topic