Разработчикам

Разработка прямо на устройствах.

Команды, состояние и события устройств разных производителей доступны через один открытый API, без SDK и перепрошивки. Владелец устройства, обслуживающая его нода и параметры лежат в TON — блокчейне, где ничего из этого не подделать и не потерять вместе с чьим-то сервером.

01 · Возможности

Что может разработчик.

02 · Порядок работы

Из чего складывается работа с устройством.

01Агент ставится на устройство пакетом, привязка — по коду из терминала в веб-консоли. Установка и поддержанные платформы — на страницах «Пакеты» и «Начать».
02Состояние, события и платежи читаются через HTTP API ноды обычным GET, без подписи. Там же видны адреса контрактов устройства в TON.
03Изменение настроек уходит командой, подписанной ключом владельца: агент сверяет подпись и только тогда исполняет. Подписать команду можно из консоли, из скрипта или из своего сервиса.
04Своё событие уходит с устройства одной командой: подпись добавляет агент, автору события ключи не нужны. Механизмы и рецепты — в статье «События устройства».
05Правило, которое должно работать без сервера посередине, переносится в TON: контракт одного устройства шлёт сообщение контракту другого. Как это пишется, выкатывается и проверяется — на странице «Связь устройств через контракты».

Первые четыре шага не требуют правки контрактов и делаются в день установки. Пятый — работа с кодом на Tact, языке смарт-контрактов TON, и обновлением контракта устройства.

03 · Основы архитектуры

Быстрое идёт через ноду, проверяемое хранится в TON.

Архитектура Subrose: клиент разработчика, нода, агент устройства и контракты TON

Команды, состояние и события любого устройства идут через один API, каким бы ни был производитель железа. Скрипт отправляет команду HTTP-запросом на ноду, та находит устройство даже за файрволом или серым NAT и передаёт команду по CoAP — лёгкому протоколу для устройств. Блокчейн в этом пути не участвует.

Агент subrose хранит ключи устройства, проверяет подпись владельца и только после этого исполняет команду. В TON живёт то, что должно быть проверяемым: владелец устройства, обслуживающая нода, параметры устройства и значимые события вроде регистрации. Собственные события читаются в консоли или через API.

04 · Смарт-контракты

Контракт устройства — открытый код.

Контракт устройства — запись в TON: владелец, права, оплата. Устроена она как программа на Tact, языке смарт-контрактов TON, с открытым исходником, и логику можно заменить: обновление проходит на месте, адрес остаётся прежним, а провести его может только ключ устройства или владелец с полными правами.

Контракты в TON шлют сообщения друг другу. Контракт одного устройства можно научить отправлять сообщение контракту второго — и второе устройство отреагирует: например, сменит настройку. Такие цепочки «устройство → контракт → устройство» собираются прямо в TON и не требуют сервера посередине.

Такую логику пишут сами, на Tact. Исходники всех контрактов открыты — начать можно с контракта нужного устройства, а весь путь от сообщения до реакции железа разобран на странице «Связь устройств через контракты».

05 · Что строить

С чего начать.

Панель для своего парка

Команда уходит curl-запросом, статус приходит одним GET — примеры запросов и формат ответа на странице «События устройства». Из этого собирается панель или бот с правами по ролям.

Свои сценарии

Скрипт читает события одного устройства и отдаёт команду другому — логика остаётся у разработчика, а интерфейс к железу один. То же правило можно перенести в TON: связь устройств через контракты.

Любое железо

Агент собирается для Linux (x86_64), macOS (universal — Intel и Apple Silicon), OpenWrt, Keenetic и Raspberry Pi. Windows — на подходе.

06 · Своя языковая модель

ИИ-чат — обычный клиент поверх открытого API.

В веб-консоли Subrose работает ИИ-чат. Для системы это просто ещё один клиент: модель может сразу читать устройства, события и платежи, а любую операцию записи чат оформляет как запрос на подпись владельца. Ключи устройств модели недоступны.

Тот же API открыт всем: клиент собирается на любом стеке. Модель можно подключить локальную, тогда данные не уходят в чужой API.

07 · Готово и что дальше

Система сегодня.

В TON — по-прежнему владелец устройства, обслуживающая нода, параметры устройства и значимые события. Свои события читаются через API; для истории поглубже их складывают у себя.

Платёж за обслуживание инициирует само устройство, доля ноды и производителя раскладывается автоматически в момент списания — о деньгах подробно на странице «Начать». Готовых блоков для реакции одного устройства на другое пока нет: цепочку контрактов пишут сами на Tact — по разбору с примерами кода — или держат эту логику в своём клиенте.

Роутер на OpenWrt, Raspberry Pi, Linux-сервер или Mac — этому железу Subrose даёт один открытый API.

08 · Операторам нод

Нода приносит долю.

Нода обслуживает устройства и с каждого списания автоматически получает долю. Как это устроено — на странице «Операторам нод».

Стать оператором ноды

09 · Вопросы

Вопросы, которые обычно задают разработчики.

Нужен ли SDK?Нет: любой скрипт превращает факт в событие одной командой — subrose emit, без SDK и перепрошивки. Команды, состояние и события устройств разных производителей доступны через один и тот же HTTP API.
Что можно сделать без подписи владельца, а что нельзя?Читать состояние, события и платежи можно без подписи — API открыт для чтения. Отправить своё событие тоже можно без неё: агент подписывает его ключом устройства. А выполнить команду, которая меняет настройки или поведение устройства, можно только с подписью владельца — без неё агент её не примет.
Где читаются свои события?В TON — только значимые факты вроде регистрации и смены ноды; свои события туда не попадают. Их читают в веб-консоли Subrose или тем же HTTP-запросом, что использует subrose emit для отправки.
Можно ли связать два устройства напрямую?Да, и двумя способами. Скрипт читает события первого через API и отдаёт команду второму, а правило, которое должно срабатывать без своего сервера, переносится в контракты: контракт первого устройства шлёт сообщение контракту второго. Приёмник, проверка отправителя и выкатка разобраны на странице «Связь устройств через контракты».
Какие платформы поддержаны?Linux, macOS (Intel и Apple Silicon), роутеры на OpenWrt и Keenetic, Raspberry Pi — агент собирается под все эти платформы уже сегодня. Windows — на подходе.
Можно ли подключить свою языковую модель?Да: тот же открытый API доступен любому клиенту, включая локальную модель — тогда данные не уходят в чужой API. Ключи устройств модели недоступны в любом случае, а любая запись оформляется как запрос на подпись владельца.

Начать

Старт с реального устройства.

Установка агента subrose, привязка устройства в веб-консоли по коду из терминала и первое событие.

Открыть инструкцию