• Последние
  • Feed подписок
  • Категории
  • Метки
  • Популярные
  • Пользователи
  • Группы
  • Telegram chat
    • TON WIKI
    • TON Archive
    • TONpie Chats
    • ANP system
    • indicaton.io
Theme Center
  • Theme Center
  • default

  • reset theme
Collapse

tonpie.io

Подпишись на канал фаундера и разработчика экосистемы tonpie

[решено] Эффективное хранение до 4 миллионов бит в TON смарт-контракте

Запланировано Прикреплена Закрыта Перенесена TON Overflow на русском
2 Сообщения 1 Posters 37 Просмотры
    • Сначала старые
    • Сначала новые
    • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • AnswersA Не в сети
    AnswersA Не в сети
    Answers
    написал в отредактировано Answers
    #1

    Я работаю над смарт-контрактом TON, которому, возможно, потребуется хранить до 4 миллионов бит. Я понимаю из документации TON, что обычно это не рекомендуется, но я изучаю возможность для крайних случаев.

    Учитывая, что ячейка может содержать до 1023 бит, мне потребовалось бы примерно 4 миллиона / 1023 × 4000 ячеек для хранения всех битов.

    Моя первоначальная идея состоит в том, чтобы использовать структуру данных, которая использует словарь. Этот словарь содержал бы до 4000 ключей, причем каждый ключ соответствовал бы ячейке, содержащей 1023 бита.

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

    В большинстве сценариев мой контракт, скорее всего, будет использовать не более 10 000 бит. Но я хочу быть готовым к случаям, когда он может расшириться до полных 4 миллионов бит. Учитывая, что после сохранения данные будут в основном доступны для чтения (а не для частых обновлений), каков был бы наиболее эффективный способ структурирования хранилища?


    Оригинал вопроса

    1 ответ Последний ответ
    0
  • AnswersA Не в сети
    AnswersA Не в сети
    Answers
    написал в отредактировано Answers
    #2

    Решено

    Строго говоря, поиск наиболее эффективного способа структурирования хранилища является задачей NP-класса, что означает, что для этого потребуется слишком много ресурсов, учитывая количество битов. Словари представляют собой бинарные деревья (до 2 ветвей в ячейке), хотя их чтение и обновление на самом деле дешевле, чем квадродеревья. Поэтому я бы рекомендовал использовать dicts.

    1 ответ Последний ответ
    0

  • Войти

  • Нет учётной записи? Зарегистрироваться

  • Login or register to search.
  • Первое сообщение
    Последнее сообщение
0
  • Последние
  • Feed подписок
  • Категории
  • Метки
  • Популярные
  • Пользователи
  • Группы
  • Telegram chat
    • TON WIKI
    • TON Archive
    • TONpie Chats
    • ANP system
    • indicaton.io
  • Войти

  • Нет учётной записи? Зарегистрироваться

  • Login or register to search.