Документация
Запуск узла
tintd — программа валидатора. Здесь: локальная тестовая сеть, команды и то, как устроен публичный тестовый узел.
Тестовая сеть: монеты ничего не стоят
Команды
| Команда | Что делает |
|---|---|
tintd testnet | Создаёт файлы локальной тестовой сети. |
tintd run | Запускает один валидатор. |
tintd pay | Отправляет монеты из кошелька, заданного файлом с сидом. |
tintd swap | Обменивает одну монету кошелька из файла с сидом на другую через пул. |
Локальная тестовая сеть на одной машине
Создайте файлы для четырёх валидаторов, затем запустите каждый в своём терминале.
tintd testnet --dir net --addresses 127.0.0.1:4100,127.0.0.1:4101,127.0.0.1:4102,127.0.0.1:4103tintd run --local \
--genesis net/genesis.bin \
--validators net/validators.txt \
--key net/validator-0/key \
--data net/validator-0/data \
--rpc 127.0.0.1:4200Повторите для валидаторов 1–3 со своими --key, --data и, если нужен и их интерфейс кошельков, другим портом --rpc. --local разрешает частные адреса, которые нужны сети на одной машине.
testnet создаёт genesis.bin, validators.txt, папку с ключом каждого валидатора и faucet.seed — сид кошелька, в котором лежат все тестовые монеты. Держите сид в секрете.
Отправка и обмен из командной строки
tintd pay --node http://127.0.0.1:4200 --seed net/faucet.seed --to tint1... --amount 100tintd pay --node http://127.0.0.1:4200 --seed net/faucet.seed --to tint1... --amount 50 --coin TUSDtintd swap --node http://127.0.0.1:4200 --seed net/faucet.seed --amount 10 --buy TUSDБез --coin команда pay отправляет родную монету. swap платит родной монетой, если не назвать другую через --pay; одна из двух монет обмена всегда родная.
Флаги tintd run
| Флаг | Смысл |
|---|---|
--genesis | Файл первого блока. |
--validators | Файл со списком валидаторов. |
--key | Файл с закрытым ключом этого валидатора. |
--data | Папка для блоков этого валидатора. |
--listen | Адрес для прослушивания; по умолчанию тот, что в списке валидаторов. |
--metrics | Адрес, на котором отдавать метрики. Без флага выключено. |
--rpc | Адрес, на котором обслуживать кошельки по HTTP. Без флага выключено. |
--rpc-behind-proxy | Кошельки идут к --rpc через обратный прокси на этой машине: клиентов считать по X-Forwarded-For. |
--local | Принимать частные адреса, для сети на одной машине. |
--log-json | Писать журнал строками JSON. |
--log-level | error, warn, info (по умолчанию), debug или trace. |
--idle-block-ms | Сколько миллисекунд цепочка без ожидающих платежей отдыхает между блоками. По умолчанию 5000, не больше 60000. У всех валидаторов значение должно быть одинаковым. |
Как устроен публичный тестовый узел
Публичный узел https://node.tint.top — один сервер с четырьмя валидаторами: он проверяет, что сеть работает, и ничего не доказывает о децентрализации.
| Что | Где |
|---|---|
| Четыре валидатора | юниты systemd tint-validator@0 … @3, общаются через 127.0.0.1:4100 … 4103 |
| Интерфейс кошельков | валидатор 0, 127.0.0.1:4200, снаружи недоступен |
| HTTPS | Caddy на порту 443, пересылает /v1/* на интерфейс кошельков |
| Данные цепочки | /var/lib/tint/validator-N/data |
- Прокси не ведёт журнал обращений: запись о том, кто что спрашивал с какого адреса, — то, что сеть приватности хранить не должна.
- Нет порта метрик и нет открытых портов валидаторов; валидаторы общаются друг с другом через петлевой интерфейс.
- Валидатор хранит все блоки навсегда. Размер на диске:
du -sh /var/lib/tint/validator-*/data. - На сервере с 1 vCPU и 2 ГБ каждый валидатор после первого запуска занимал около 92 МБ памяти; юнит ограничивает его 1 ГБ.
Посмотреть на работающий узел
curl -s http://127.0.0.1:4200/v1/statusНа сервере под systemd systemctl status 'tint-validator@*' покажет юниты, а journalctl -u 'tint-validator@*' -n 50 — последние строки журнала.
Подключить кошелёк к своему узлу
В настройках кошелька общий узел можно заменить своим. Узел должен отдавать интерфейс кошельков по HTTPS и принадлежать той же сети, то есть иметь тот же первый блок, что и остальные данные кошелька. Кошелёк, встретивший новый первый блок, читает новую цепочку с начала.