piermesh/docs/Sponge/base.md

1.3 KiB

Primary filtering functionality Dispatches to Protocols

class Sponge.base.Filter(cache, onodeID, todo, cLog)

Packet filtering orchestration

cLog
Reference to run.Node.cLog for logging
cache: Daisy.Cache.Cache
Reference to our Daisy Cache instance
completed: list
List of completed messages IDs
todo
Reference to list of actions to do in the Node
onodeID
PierMesh node ID

cache

Messages is temporary storage for unfinished messages

mCheck(payload: bytes)

Check if payload bytes are msgpack encoded, otherwise skip

async protoMap(protocolID: int)

Get protocol from protocol ID using the mlookup table

async protoRoute(completeMessage: dict)

Route message to proper protocol handler

selfCheck(packet)

Check if this is a self packet, if so skip

async sieve(packet)

Base filtering logic, takes a single MeshTastic packet

class Sponge.Protocols.bubble.filter(completeMessage, recipient, recipientNode, onodeID, todo)

Peer to peer protol

class Sponge.Protocols.catch.filter(completeMessage, recipient, recipientNode, todo)

Catch exchange protocol

class Sponge.Protocols.cryptography.filter(completeMessage, recipientNode, todo)

Cryptographic operations protocol

class Sponge.Protocols.map.filter(completeMessage, todo)

Network mapping protocol