﻿Структура БД:

1. table nodes - список всех известных узлов (или пользователей)
  node_id
  node_pubkey
  last_seen

1A. ip_addr
  node_id
  ip_addr
  port


2. table groups - список всех известных групп
  group_id
  group_pubkey - privkey известен суперадминам группы. соответственно админские настройки могут менять владельцы privkey.


3. table group_members - список пользователей групп
  node_id
  group_id
  parent_node_id
  parent_node_sign - приглашая узел, parent node должен сделать подпись для нового мембера. таким образом все мемберы выстраиваются в дерево (кто кого пригласил)


4. table group_actions - настройки групп и действия админов. могут менять все кому известен админский ключ.
  group_id
  action_name - например забанить node_id и всех вниз по дереву
  action_value
  node_id - опциональное поле
  node_sign - подпись ключом ноды
  sign - подпись ключом админа группы (всех полей выше включая node_id/sign)

5. table messages - собственно сообщения
  group_id
  node_id
  node_sign
  content_type
  content
  timestamp
