Steem DAO
Steem DAO — это ончейн-механизм финансирования, стоящий за Steem Proposal System (SPS, «система предложений Steem»), введённый Hardfork 21 в августе 2019 года. Он состоит из казначейского аккаунта @steem.dao и набора предложений (proposal) — заявок на финансирование, хранящихся в блокчейне, за которые стейкхолдеры голосуют своим стейком и которые ежедневно выплачиваются в долларах STEEM (SBD) из казны.
Предложения — способ, которым цепочка финансирует разработку и инфраструктуру: создать предложение может любой, объём поддержки определяет стейк, а казна платит тем предложениям, которые стейкхолдеры ранжируют достаточно высоко.
Как это работает
- Создание — операция
create_proposalзаписывает предложение в цепочку. У предложения есть создатель (creator), аккаунт-получатель (receiver) (тот, кто получает выплаты), даты начала и окончания, дневная выплата в SBD, а также subject с пермалинком (permlink), указывающим на обсуждаемый пост, который описывает предложение. - Голосование — аккаунты голосуют за предложения (или против) операцией
update_proposal_votes. Вес голоса взвешен по стейку, как при голосовании за свидетелей (witness): каждое предложение накапливает значениеtotal_votesв долях вестинга (VESTS). - Ежедневное финансирование — каждый день активные предложения ранжируются по
total_votesи финансируются в порядке рейтинга, пока дневной бюджет предложений не будет исчерпан. Предложения за пределами бюджета в этот день не получают ничего. - Return Proposal (предложение возврата) — предложение с id 0 («Return Proposal» от @gtg) — это постоянная конвенция. Оно несёт огромный
daily_payи удерживается в состоянии «проголосовано за», чтобы возвращать остаток дневного бюджета обратно в казну. На практике оно выступает потолком расходов: голоса, перемещаемые между Return Proposal и рабочими предложениями, определяют, сколько DAO реально тратит каждый день. - Удаление — создатель предложения может удалить его операцией
remove_proposal, пока оно действует; голоса можно добавлять или отзывать в любое время.
Казна
Казна — это аккаунт @steem.dao. Она хранит неиспользованный бюджет — часть дневной инфляции плюс то, что возвращает Return Proposal, — и растёт со временем, когда стейкхолдеры голосуют тратить меньше, чем начисляется. Текущий баланс казны: около 2,59 млн SBD (ноябрь 2026).
Запросить её в реальном времени:
curl -sS -X POST https://api.steemit.com \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"condenser_api.get_accounts","params":[["steem.dao"]],"id":1}'Запрос предложений
Получить конкретные предложения по id:
curl -sS -X POST https://api.steemit.com \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"condenser_api.find_proposals","params":[[0,1,2]],"id":1}'Каждый объект предложения содержит proposal_id, creator, receiver, start_date, end_date, daily_pay, subject, permlink и total_votes. Полный список, отсортированный и отфильтрованный по статусу, доступен через list_proposals; отдельные голоса, стоящие за total_votes, перечисляет list_proposal_votes.
Жизненный цикл
Предложение становится активным в свою start_date, продолжает финансироваться, пока остаётся активным и входит в дневной бюджет, и становится истёкшим в свою end_date. Самые ранние предложения относятся к запуску системы 27 августа 2019 года — предложение с id 0, Return Proposal, всё ещё действует с датой окончания 31 декабря 2029 года.
Справочник API
| API | Назначение |
|---|---|
| condenser_api.find_proposals | Получить предложения по id |
| condenser_api.list_proposals | Список предложений, отсортированный и отфильтрованный по статусу |
| condenser_api.list_proposal_votes | Список голосов за total_votes |
| database_api.find_proposals | Нативный вариант плагина |
| database_api.list_proposals | Нативный вариант плагина |
| database_api.list_proposal_votes | Нативный вариант плагина |
Создание, голосование за и удаление предложений (create_proposal, update_proposal_votes, remove_proposal) — это операции широковещания: им нужна подписанная транзакция, поэтому они относятся к рабочим процессам широковещания клиентских библиотек, а не к простым RPC-вызовам.