RUEN中文

← Forecaster← Forecaster← Forecaster

События и метаданные: рынки, которые собираются в матчи

Events & metadata: markets that group into matches

事件与元数据:将市场组合成赛事

Гайд для создателей рынков: как проставить метаданные, чтобы Forecaster показал ваши рынки одной карточкой события — с исходами, коэффициентами и «ещё N линий».

A market-creator guide: set the right metadata and Forecaster renders your markets as one event card — outcomes, odds and a "+N more lines" drill-down.

市场创建者指南:设置正确的元数据,Forecaster 就会将您的市场 渲染为一张赛事卡片——包含结果、赔率和"+N 条更多盘口"的下钻。

Как это работает

How it works

工作原理

Один матч — это несколько независимых on-chain рынков: «кто победит», «тотал», «первый Рошан». Специальных «родительских» объектов в протоколе нет — группировку задаёт создатель через поле metadata (JSON-строка в операции pm_create_market). Нода индексирует белый список ключей; клиент читает готовые индексы.

One match is several independent on-chain markets: "who wins", "total", "first Roshan". The protocol has no special "parent" objects — the creator defines grouping via the metadata field (a JSON string in pm_create_market). The node indexes a whitelist of keys; the client reads ready-made indexes.

一场比赛由多个独立的链上市场组成:"谁获胜"、"总分"、"第一个罗shan"。 协议没有特殊的"父级"对象——创建者通过 metadata 字段 (pm_create_market 操作中的 JSON 字符串)定义分组。 节点索引白名单中的键;客户端读取现成的索引。

Три ключа склейкиThree grouping keys三个分组键

event — общий slug матча у всех его рынков (ключ склейки); event_title — человекочитаемое имя события на карточках; child: 1 — дочерняя линия (проп): скрыта из общих лент, видна на странице события. Рынок БЕЗ child — родительский (лицо карточки).

event — a slug shared by all markets of the match (the join key); event_title — the human-readable event name on cards; child: 1 — a child line (prop): hidden from general feeds, visible on the event page. The market WITHOUT child is the parent (the face of the card).

event — 比赛所有市场共用的 slug(连接键); event_title — 卡片上可读的事件名称; child: 1 — 子盘口(prop):在常规信息流中隐藏,在赛事页面上可见。 没有 child 的市场是父级(卡片的正面)。

Пример: три рынка одного матча

Example: three markets of one match

示例:一场比赛的三个市场

// Родитель (винлайн) — БЕЗ child          // Parent (moneyline) — NO child
{"title":"MOUZ победит Vici Gaming?",
 "category":"esports","tags":["dota-2"],
 "event":"dota2-mouz-vg-2026-07-12",
 "event_title":"Dota 2: MOUZ vs Vici Gaming"}

// Дочерняя линия (проп)                    // Child line (prop)
{"title":"Тотал убийств больше 45.5?",
 "category":"esports","tags":["dota-2"],
 "event":"dota2-mouz-vg-2026-07-12",
 "event_title":"Dota 2: MOUZ vs Vici Gaming",
 "child":1}

Правила: одинаковый event у всех линий матча (точное совпадение строки — регистр и дефисы важны, ключ выбирайте до создания); винлайн без child; остальным линиям child: 1. Заголовок родителя со словом «победит» / «winner» / «moneyline» помогает клиенту выбрать его лицом карточки.

Rules: the same event on every line of the match (exact string match — case and dashes matter, pick the key before creating markets); the moneyline without child; every other line gets child: 1. A parent title containing "winner" / "moneyline" helps the client pick it as the card face.

规则:比赛每条盘口使用相同的 event(精确字符串匹配—— 大小写和连字符很重要,请在创建前确定键);胜负盘不加 child; 其他盘口加 child: 1。父级标题包含 "winner" / "moneyline" 有助于客户端将其选为卡片正面。

Ключи, которые индексирует нода

Keys the node indexes

节点索引的键

КлючKey键ЗачемPurpose用途
titleВопрос рынка на карточке.The market question on the card.卡片上的市场问题。
category, tagsРазделы и фильтры листингов (теги — массивом).Listing sections and filters (tags as an array).列表分区和筛选(标签为数组)。
imageОбложка (URL, не хостится on-chain).Cover (URL, not hosted on-chain).封面(URL,不在链上托管)。
descriptionКраткие правила резолва.Short resolution rules.简要结算规则。
event, event_titleКлюч и имя события (склейка).Event key and name (grouping).事件键和名称(分组)。
child1 = дочерняя линия, скрыта из лент.1 = child line, hidden from feeds.1 = 子盘口,在信息流中隐藏。
banned_jurisdictionsЮрисдикционный фильтр клиентов.Jurisdiction filter for clients.客户端的地区过滤器。

Остальные ключи JSON не индексируются, но остаются в сыром metadata — свои клиенты могут читать их напрямую.

Other JSON keys are not indexed but stay in the raw metadata — custom clients can read them directly.

其他 JSON 键不会被索引,但保留在原始 metadata 中—— 自定义客户端可以直接读取它们。

Что получается в Forecaster

What Forecaster renders

Forecaster 中的呈现效果

Полная версия гайда — в документации ноды: события и метаданные.

The full guide lives in the node documentation: events & metadata.

完整指南见节点文档: 事件与元数据。