piermesh/docs/run.md

3.1 KiB
Raw Blame History

PierMesh service runner

Main method for running the PierMesh service

class run.Node

Node: Class that handles most of the PierMesh data

🔗 Source

toLog

We store logs to be processed here

  • Type: list

actions

Dictionary mapping methods with the action prefix to the method name after action dynamically to be called through Sponge (Sponge.base) filtering

  • Type: dict

todo

List of actions to execute

  • Type: list[dict]

network

Network map

  • Type: Network

catch

Daisy cache for catchs, our domain analog

  • Type: Catch

cache

Daisy cache for general use

  • Type: Cache

nodeInfo

Daisy (Components.daisy.Daisy) record containing some information about the node

onodeID

PierMesh node ID

  • Type: str

oTransmitter

LoRa transmitter Transmitter

processed

List of IDs of already completed messages so that we dont reprocess messages

  • Type: list

proc

This process (psutil.Process), used for managing and monitoring PierMesh

  • Type: psutil.Process

mTasks

Dictionary of PierMesh service tasks

  • Type: dict

SEE ALSO

logPassLoop
Loop to handle logging to file and TUI

async action_initNodeDH(data: dict)

Initialize diffie hellman key exchange

SEE ALSO

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

Siph.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 its 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 monitor()

Monitor and log ram and cpu usage

async spongeListen()

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