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

  • reset theme
Collapse

tonpie.io

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

Что такое seqno?

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

    В мире разработки TON, когда дело доходит до сообщений, я часто вижу ссылки на "seqno", но я еще не понял, что именно это такое? Для чего нам это нужно?


    Этот вопрос был импортирован из чата Telegram: <***Скрыто***

    click to show


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

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

    Seqno - это один из способов предотвращения повторных атак. Когда транзакция отправляется в смарт-контракт кошелька, он сравнивает поле seqno транзакции с полем внутри своего хранилища. Если они совпадают, это принимается, и сохраненный seqno увеличивается на единицу. Если они не совпадают, транзакция отменяется.

    Без seqno (или другого механизма для предотвращения повторных атак) любой человек (обычно получатель средств) может прочитать данные транзакции (например, от исследователей блокчейна) и создать еще одну поддельную транзакцию и повторно отправить ее в оригинальный смарт-контракт кошелька и заставить его повторно отправить TON еще раз, в конечном итоге истощив все его ресурсы. фонды.

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

    Отличный вопрос, "seqno" - это интересная концепция на TVM, которая станет изюминкой

    Который больше похож на номер транзакции кошелька, отправляющего Tx. Как "одноразовый номер" в EVM world.

    Для дополнительного примера, если вы хотите отправить Txs через SDK в блокчейн, используйте следующий код:

    		// (=== more codes === ) //
        console.log("Interacting with Collection Contract: \n" + contract_address);
        let seqno: number = await wallet_address.getSeqno();
        let transfer = await wallet_address.sendTransfer({
            seqno: seqno,
            secretKey: keyPair.secretKey,
            messages: [
                internal({
                    value: toNano("0.5"),
                    to: contract_address,
                    init: {
                        code: init.code,
                        data: init.data,
                    },
                    bounce: true,
                    body: packed, 
                }),
            ],
        });
    

    Сначала вам нужно будет получить seqno для отправки с параметрами в транзакции.

    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.