piermesh/docs/Sponge/base.md

63 lines
1.3 KiB
Markdown

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