||Batching preprocessor that will briefly delay the sending of a message
if it doesn't fill up a full tunnel message, in which case it queues up
an additional flush task.
||Honor the 'batchFrequency' tunnel pool setting or the 'router.batchFrequency'
router config setting, and track fragmentation.
||Manage the IV validation for all of the router's tunnels by way of a big
decaying bloom filter.
||Receive the build message at a certain hop, decrypt its encrypted record,
read the enclosed tunnel request, decide how to reply, write the reply,
encrypt the reply record, and return a TunnelBuildMessage to forward on to
the next hop
||Decrypt the layers of a tunnel build reply message, determining whether the individual
hops agreed to participate in the tunnel, or if not, why not.
||Gather fragments of I2NPMessages at a tunnel endpoint, making them available
for reading when complete.
||Handle fragments at the endpoint of a tunnel, peeling off fully completed
I2NPMessages when they arrive, and dropping fragments if they take too long
||Defines the general configuration for a hop in a tunnel.
||Take a received tunnel message, verify that it isn't a
duplicate, and translate it into what the next hop will
||Receive the inbound tunnel message, removing all of the layers
added by earlier hops to recover the preprocessed data sent
by the gateway.
||Override the hop processor to seed the message with a random
||When a message arrives at the inbound tunnel endpoint, this distributor
honors the instructions (safely)
||Receive the preprocessed data for an inbound gateway, encrypt it, and forward
it on to the first hop.
||Turn the preprocessed tunnel data into something that can be delivered to the
first hop in the tunnel.
||When a message arrives at the outbound tunnel endpoint, this distributor
honors the instructions.
||Receive the outbound message after it has been preprocessed and encrypted,
then forward it on to the first hop in the tunnel.
||Receive the preprocessed data for an outbound gateway, encrypt all of the
layers, and forward it on to the first hop.
||We are the end of an outbound tunnel that we did not create.
||This is used for all gateways with more than zero hops.
||Minor extension to allow message history integration
||Same as PTG, but check to see if a message should be dropped before queueing it.
||Do the simplest thing possible for preprocessing - for each message available,
turn it into the minimum number of fragmented preprocessed blocks, sending
each of those out.
||Coordinate the info that the tunnel creator keeps track of, including what
peers are in the tunnel and what their configuration is
||Handle the actual processing and forwarding of messages through the
||Serve as the gatekeeper for a tunnel, accepting messages, coallescing and/or
fragmenting them before wrapping them up for tunnel delivery.
||Stores all the state for an unsent or partially-sent message
||run through the tunnel gateways that have had messages added to them and push
those messages through the preprocessing and sending process
||Serve as the gatekeeper for a tunnel with no hops.
||Participate in a tunnel at a location other than the gateway or outbound