Перейти к содержимому

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).

Запросить её в реальном времени:

bash
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:

bash
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-вызовам.