BastyonBastyon
  • Начало работы

    • Начало работы
    • Руководство по настройке Easy Node
    • Руководство по настройке Full Node
  • Монетизация

    • Руководство по монетизации Bastyon
  • Обзор платформы

    • Обзор платформы
    • Участие в разработке Bastyon
  • Блокчейн-узел

    • Начало работы
    • Исходный код
    • Сборка
    • Использование
    • RPC
  • API

    • Введение
    • Начало работы
    • RPC
    • Мини-приложения
  • Мини-приложения

    • Начало работы
    • Разрешения
    • SDK
  • Barteron

    • API Barteron
  • English
  • Русский
  • Начало работы

    • Начало работы
    • Руководство по настройке Easy Node
    • Руководство по настройке Full Node
  • Монетизация

    • Руководство по монетизации Bastyon
  • Обзор платформы

    • Обзор платформы
    • Участие в разработке Bastyon
  • Блокчейн-узел

    • Начало работы
    • Исходный код
    • Сборка
    • Использование
    • RPC
  • API

    • Введение
    • Начало работы
    • RPC
    • Мини-приложения
  • Мини-приложения

    • Начало работы
    • Разрешения
    • SDK
  • Barteron

    • API Barteron
  • English
  • Русский
  • Приложения

    • /ru/dev/apps/introduction_ru.html
    • /ru/dev/apps/get-started_ru.html
    • Мини-приложения в Bastyon
    • Бастион Бартер (Barteron)

Мини-приложения в Bastyon

Транзакция Pocketnet версии 2

В новой системе консенсуса транзакции предназначены для гибкого использования. Это означает, что поля могут быть заполнены клиентом в произвольном формате, за исключением определенных полей, которые используются для разрешения конфликтов консенсуса.

Поля верхнего уровня используются для реализации правил консенсуса и будут проверяться на уровне узла. Поля второго уровня (объект p, Payload) могут быть заполнены свободно для реализации функциональности приложения.

Для реализации нестандартной логики данные Payload могут использоваться узлом для индексации дополнительных таблиц. Соглашения о структуре данных должны быть описаны и согласованы с кодом приложения.

Общая структура полей транзакции

{
  "s1": <АДРЕС>, # Обязательно
  "s2": <ВАРИАНТ>,
  "s3": <ВАРИАНТ>,
  "s4": <ВАРИАНТ>,
  "s5": <ВАРИАНТ>,
  "i1": <ВАРИАНТ>,
  "p": {
    "s1": <ПОЛЬЗОВАТЕЛЬСКОЕ>,
    "s2": <ПОЛЬЗОВАТЕЛЬСКОЕ>,
    "s3": <ПОЛЬЗОВАТЕЛЬСКОЕ>,
    "s4": <ПОЛЬЗОВАТЕЛЬСКОЕ>,
    "s5": <ПОЛЬЗОВАТЕЛЬСКОЕ>,
    "s6": <ПОЛЬЗОВАТЕЛЬСКОЕ>,
    "s7": <ПОЛЬЗОВАТЕЛЬСКОЕ>
  }
}

Транзакция приложения

Код OP_RETURN

6d696e69617070

Обязательные элементы Payload

{
  "s1": <АДРЕС>, # Обязательно
  "s2": <ХЭШ_КОРНЕВОЙ_TX>, # Обязательно для редактирования
  "p": {
    "s1": "{\"n\":\"Первое приложение\",\"d\":\"Описание первого приложения\",\"t\":[\"тег1\",\"тег2\"]}",
    "s2": <УНИКАЛЬНЫЙ_ID_ПРИЛОЖЕНИЯ> # Обязательно
  }
}

p.s1 - это JSON-строка со следующими полями:

  • n - Название приложения (Используется для индексации поиска)
  • d - Описание приложения (Используется для индексации поиска)
  • t - Теги приложения (Используются для фильтрации по тегам)
  • ... любые другие поля

API

Получение приложений

/rpc/getapps { <аргументы> }

Аргументы:

{
  "tags": [1,2,3], // Теги для фильтрации приложений
  "search": "Строка для полнотекстового поиска по названию и описанию",
  "topHeight": 100, // Верхняя высота блока для начала пагинации
  "pageStart": 0, // Номер первой страницы
  "pageSize": 10, // Количество приложений на странице
  "orderBy": "height", // height | rating
  "orderDesc": true, // true | false
}

Пример ответа:

[
  {
    "hash": "a3c5f9ba693a9d399ab4a3c453dd6ee9d12e1a7ceb001d25622da2a45cb1d723",
    "type": 221,
    "height": 1051,
    "blockHash": "f1885784d513141cecdca4cde5154e382f96e19510033853384a6e42191dff49",
    "time": 1720427842,
    "s1": "mppcM1GXMoePyLnFXothKHgjtGPo7dFVhe",
    "s2": "a3c5f9ba693a9d399ab4a3c453dd6ee9d12e1a7ceb001d25622da2a45cb1d723",
    "p": {
      "s1": "{\"n\":\"Первое приложение\",\"d\":\"Описание первого приложения\",\"u\":\"first_app.com\",\"e\":\"first_app@first_app.com\"}",
      "s2": "first_app"
    },
    "ad": {
      "r": 2
    }
  }
]

Получение оценок приложения

/rpc/getappscores { <аргументы> }

Аргументы:

{
  "app": "a3c5f9ba693a9d399ab4a3c453dd6ee9d12e1a7ceb001d25622da2a45cb1d723", // Хэш транзакции (корневой) приложения
  "topHeight": 100, // Верхняя высота блока для начала пагинации
  "pageStart": 0, // Номер первой страницы
  "pageSize": 10, // Количество оценок на странице
  "orderBy": "height",
  "orderDesc": true, // true | false
}

Пример ответа:

[
  {
    "hash": "c9a0fade16e1386e7a39ea344d0ec1c371860c0b838d344883f36a2ad2f91dcf",
    "type": 300,
    "height": 1053,
    "blockHash": "c0469c4f20d8719bf6d53404d8e58805b7c6945a2bd2dc4839b402e615dd3a1a",
    "time": 1720427842,
    "s1": "mv7NYsv4DgaouV7eTUkmAXz8EP5z9AwF6Q",
    "s2": "a3c5f9ba693a9d399ab4a3c453dd6ee9d12e1a7ceb001d25622da2a45cb1d723", // Хэш транзакции приложения
    "i1": 5
  }
]

Получение комментариев к приложению

/rpc/getappcomments { <аргументы> }

Аргументы:

{
  "app": "a3c5f9ba693a9d399ab4a3c453dd6ee9d12e1a7ceb001d25622da2a45cb1d723", // Хэш транзакции (корневой) приложения
  "topHeight": 100, // Верхняя высота блока для начала пагинации
  "pageStart": 0, // Номер первой страницы
  "pageSize": 10, // Количество комментариев на странице
  "orderBy": "height",
  "orderDesc": true, // true | false
}

Пример ответа:

[
  {
    "hash": "6dd011619696548051bf266c8170522da8b7becdb87e6edebed4a9cfc9abc9f1",
    "type": 204,
    "height": 1054,
    "blockHash": "a9de4f2b5a1498085049e8e55c3f8e542878b68473db82550a34fb80b44eb311",
    "time": 1720427843,
    "s1": "mv7NYsv4DgaouV7eTUkmAXz8EP5z9AwF6Q",
    "s2": "6dd011619696548051bf266c8170522da8b7becdb87e6edebed4a9cfc9abc9f1", // Хэш корневой транзакции комментария
    "s3": "a3c5f9ba693a9d399ab4a3c453dd6ee9d12e1a7ceb001d25622da2a45cb1d723", // Хэш транзакции приложения
    "p": {
      "s1": "текст комментария"
    }
  }
]
Последнее обновление:
Участники: gked
Prev
/ru/dev/apps/get-started_ru.html
Next
Бастион Бартер (Barteron)