# PierMesh service runner Main method for running the PierMesh service ### *class* run.Node Class that handles most of the PierMesh data [πŸ”— Source](https://git.utopic.work/PierMesh/piermesh/src/branch/main/src/run.py) #### *async* action_initNodeDH(data: dict) Initialize diffie hellman key exchange #### SEE ALSO [`Cryptography.DHEFern.DHEFern`](/PierMesh/piermesh/src/branch/main/docs/Cryptography/DHEFern.md#Cryptography.DHEFern.DHEFern) : End to end encryption functionality #### *async* action_keyDeriveDH(data: dict) Derive key via diffie hellman key exchange #### *async* action_map(data: dict) Map new network data to internal network map #### SEE ALSO `Bubble.network.Network` : Layered graph etwork representation #### *async* action_sendCatch(data: dict) Get catch and return the data to a peer #### SEE ALSO `Bubble.router.Router` : Routing class #### *async* action_sendToPeer(data: dict) Send data to a peer connected to the server * **Parameters:** **data** (*dict*) – Data passed from the filter, this is a generic object so it’s similar on all actions here #### SEE ALSO `Filters.Protocols` : Protocol based packet filtering `webui.serve.Server` : Runs a light Microdot web server with http/s and websocket functionality `webui.serve.Server.sendToPeer` : Function to actually execute the action #### cLog(priority: int, message: str) Convenience function that logs to the ui and log files * **Parameters:** * **priority** (*int*) – Priority of message to be passed to logging * **message** (*str*) – Message to log * **Return type:** None #### *async* fListen() Loop to watch for tasks to do #### SEE ALSO `Filters.base.sieve` : Packet filtering/parsing ### Notes We use a common technique here that calls the function from our preloaded actions via dictionary entry #### *async* monitor() Monitor and log ram and cpu usage #### toLog We store logs to be processed here #### SEE ALSO `logPassLoop` : Loop to handle logging to file and TUI