Децентрализованная P2P-сеть. Твоя нода общается напрямую с другими. Никакого сервера между нами. Разговоры хранятся только у тебя на диске.
Что это. DEMI — это твой приватный канал в сети операторов. Не Telegram, не Slack, не email — прямое P2P-соединение, зашифрованное end-to-end.
Зачем. Обсуждать задачи с Дмитрием и другими операторами так, чтобы переписка не лежала на чужом сервере. Плюс ты в первой волне клуба DEMI.
Альфа-версия. Unsigned. Windows требует подтверждения SmartScreen. macOS — через Gatekeeper (правый клик → Open).
node --version. Нет → brew install node на макеTerminal.app на маке, любой на Linux)cd ~
git clone https://github.com/vasilevdasfo/demi-node.git
cd demi-node
npm install
Появится папка ~/demi-node. Это твой узел.
node src/index.js
Увидишь что-то похожее:
🌟 DEMI node running Nick: steady-fox-83 Fingerprint: a1b2c3d4 UI: http://localhost:4321
http://localhost:4321 — твой личный пульт. Терминал не закрывай: нода работает пока он открыт.
В новой вкладке терминала (старая пусть работает):
cd ~/demi-node
node bin/demi.js pair.new
Выдаст 6-значный код типа 742-195. Код живёт 10 минут.
Скинь Дмитрию в Telegram одной строкой:
nick=steady-fox-83 fp=a1b2c3d4 code=742-195
Подставь свои значения из шага 2 + код из шага 3.
Через ~30 секунд вы paired. В браузерном UI слева появится его ник с зелёной точкой.
Через UI (проще): клик на пир слева → пиши в текстовое поле внизу → Enter.
Через CLI:
node bin/demi.js send <ник_собеседника> "привет, что по задаче X"
node bin/demi.js history <ник_собеседника>
~/.demi-node/chat.db. Не в облаке. Не у Дмитрия. Только у тебя на диске.
Повторяешь шаг 3 с любым другим оператором сети. Каждая пара = отдельный канал.
Если спарился с Дмитрием и с Русланом — вы paired попарно. Между Дмитрием и Русланом свой канал, ты его не видишь. Full mesh, без серверной комнаты.
Чтобы нода жила после закрытия терминала:
cd ~/demi-node
nohup node src/index.js > ~/demi.log 2>&1 &
Убедиться что работает:
ps aux | grep demi-node | grep -v grep
Остановить:
pkill -f "node src/index.js"
Напиши Дмитрию одной строкой что делал + что написал терминал. Мы починим за 10 минут.
Типичные случаи:
EADDRINUSE :4321 — нода уже запущена, не стартуй вторуюcannot find module — npm install не прошёл, запусти ещё раз○ offline — один из двух не запущен. Hyperswarm коннектится когда оба online одновременно