TON Overflow на русском

552 Темы 1.0k Сообщения

Русское зеркало answers.ton.org

  • 0 Голоса
    2 Сообщения
    17 Просмотры

    Решено

    В TVM существуют ограничения по памяти, но они могут быть не такими строгими, как в EVM. Это связано с тем, что TVM разработан таким образом, чтобы быть более эффективным и гибким с точки зрения управления ресурсами. Однако разработчикам все равно следует помнить об использовании ресурсов при создании смарт-контрактов для бесплатной платформы TON.

    Некоторые соображения по использованию памяти в TVM:

    Управление памятью: TVM использует более сложную модель памяти, чем EVM, что обеспечивает более эффективное управление памятью. Однако это не означает, что разработчики могут игнорировать использование памяти, поскольку чрезмерное потребление памяти все равно может привести к проблемам с производительностью или увеличению затрат на выполнение.

    Затраты на газ: Подобно EVM, TVM также использует газовую модель для выполнения смарт-контрактов, где газ представляет собой вычислительные затраты на выполнение операций. Хотя затраты на газ в TON могут быть не такими значительными, как в Ethereum, по-прежнему важно оптимизировать код вашего смарт-контракта, чтобы минимизировать потребление газа и затраты на выполнение.

    Производительность и масштабируемость: Написание эффективного кода, оптимизирующего использование памяти, имеет решающее значение для обеспечения хорошей производительности и масштабируемости ваших смарт-контрактов в сети Free TON. Это помогает поддерживать общую работоспособность сети и позволяет ей поддерживать большее количество смарт-контрактов и транзакций.

    Хранение данных: В сети TON смарт-контракты используют постоянное хранилище, называемое "Persistent Data Storage" (PDS), для хранения своего состояния. Разработчикам следует помнить о том, какой объем данных они хранят в PDS, поскольку большие требования к хранилищу могут привести к увеличению затрат и потенциальным проблемам с производительностью.

    Таким образом, хотя виртуальная машина TON может обеспечить большую гибкость и эффективность с точки зрения использования памяти по сравнению с виртуальной машиной Ethereum, разработчикам по-прежнему важно помнить об ограничениях памяти и писать эффективный код для обеспечения оптимальной производительности, масштабируемости и экономической эффективности своих смарт-контрактов.

  • 0 Голоса
    2 Сообщения
    341 Просмотры

    Решено

    Причина различных адресов, сгенерированных TonHub, TonKeeper и wallet.ton.org при использовании одной и той же мнемонической фразы происходит потому, что адрес зависит от ** используемой версии контракта кошелька **.

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

    Кроме того, важно проявлять осторожность при использовании веб-кошельков, поскольку они могут быть уязвимы для атак. Недавно появились сообщения о сайте под названием wallet-ton.org это выглядело как веб-кошелек, но на самом деле было предназначено для кражи паролей и опустошения учетных записей пользователей. Веб-кошельки считаются "горячими кошельками", и их следует использовать с осторожностью. Рекомендуется, чтобы веб-кошельки включали улучшенные функции безопасности для защиты пользователей от потенциальных атак.

  • 0 Голоса
    2 Сообщения
    9 Просмотры

    Решено

    Да, любые случайно сгенерированные 256 бит могут быть использованы в качестве начального значения для генерации закрытого ключа Ed25519. Одним из возможных способов генерации закрытого ключа из такого начального значения является использование криптографической хэш-функции, такой как SHA256.

  • [Решено] Является ли subwallet_id таким же, как workchain_id в сети TON?

    0 Голоса
    2 Сообщения
    18 Просмотры

    Решено

    subwallet_id - это не то же самое, что workchain_id в сети TON.

    Вместо этого subwallet_id - это свойство контракта, которое позволяет создавать несколько кошельков, используя одну и ту же пару ключей. Основная цель subwallet_ids - разрешить создание нескольких кошельков с одной парой ключей.

    Чтобы пояснить далее, "subwallet_id" - это концепция, специфичная для сети TON и используемая в рамках контракта для создания нескольких кошельков. Используя subwallet_id, контракт может проводить различие между различными созданными кошельками, даже если все они используют одну и ту же пару ключей.

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

    Таким образом, subwallet_id - это не то же самое, что workchain_id в сети TON. Subwallet_id - это концепция, используемая в контракте для создания нескольких кошельков с одной парой ключей, в то время как workchain_id - это термин, используемый для идентификации определенных сегментов или подгрупп узлов в сети TON.

  • 0 Голоса
    2 Сообщения
    19 Просмотры

    Решено

    Использование метода **'getTransactions' ** было бы рекомендуемым подходом для проверки того, было ли получено конкретное сообщение по определенному адресу.

    Репозиторий примеров TON JS на Github предлагает полезные ресурсы, включая фрагмент кода JavaScript, который можно использовать для получения списка транзакций по определенному адресу.

    Пример кода можно найти по адресу https://github.com/toncenter/examples https://gist.github.com/slavafomin/1bcb401b5dc336bb4f9a2005b1660cbd.

  • 0 Голоса
    2 Сообщения
    14 Просмотры

    Решено

    Похоже, что контракты Jetton корректно функционируют на "TonWeb", поэтому проблема, скорее всего, связана с ошибкой в коде, развернутом человеком, задающим вопрос.

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

    Благодаря тщательному процессу отладки они могут определить первопричину проблемы и внести необходимые изменения для ее устранения.

  • 0 Голоса
    2 Сообщения
    9 Просмотры

    Решено

    В TON нет необходимости в прокси-контрактах, подобных Ethereum. Контракты в TON могут обновлять свой код без изменения своего адреса.

  • [Решено] Как я могу перевести TON на PHP?

    0 Голоса
    2 Сообщения
    54 Просмотры

    Решено

    Я полагаю, что другие проекты TVM активно используют PHP, но TON этого не делает. Существуют расширения сообщества PHP, которые доступны для вашего использования, но они все еще находятся в разработке:

    https://github.com/olifanton/ton

    Это позволит вам взаимодействовать с кошельками:

    https://github.com/olifanton/ton/blob/main/src/Olifanton/Ton/Contracts/Wallets/V4/WalletV4.php

    Например, где переменная $kp - это ключевая пара, а переменная $transport - это структура, определенная SDK, которая по сути действует как поставщик:

    global $kp, $transport; $wallet = new WalletV3R1( new WalletV3Options( $kp->publicKey, ) ); $extMsg = $wallet->createTransferMessage( new TransferMessageOptions( dest: new Address("EQBYivdc0GAk-nnczaMnYNuSjpeXu2nJS3DZ4KqLjosX5sVC"), amount: Units::toNano("0.01"), seqno: (int)$wallet->seqno($transport), payload: "Hello world!", sendMode: SendMode::IGNORE_ERRORS->combine(SendMode::PAY_GAS_SEPARATELY) ) ); $transport->sendMessage($extMsg, $kp->secretKey);
  • 0 Голоса
    2 Сообщения
    19 Просмотры

    Решено

    Секретный ключ должен быть передан как Uint8Array. nacl уже предоставит вам ключи в правильном формате.

    Вы также можете сделать следующее: const SecretKey = TonWeb.utils.hexToBytes('ВАШ шестнадцатеричный код'); const keyPair = TonWeb.utils.nacl.sign.keyPair.fromSecretKey(секретный ключ);

    С другой стороны, вы можете проверить детали здесь, как в примере с Jetton, используя Tact Language https://github.com/ton-community/tact-jetton/blob/21e198cd7c95a287509f91f806f1ed32a4252129/исходныеданные/jetton.deploy.ts#L25

  • 0 Голоса
    2 Сообщения
    10 Просмотры

    Решено

    Не снимайте его!

    Контракт minter является родительским, а кошелек - дочерним. Существует один экземпляр minter и N экземпляров кошелька (N - количество владельцев вашего токена). Избавление от кошелька означало бы, что ваши пользователи не будут владеть вашими джеттонами и не смогут ничего делать с ними.

  • Как вы можете использовать оплату TON через Telegram-бота?

    0 Голоса
    2 Сообщения
    27 Просмотры

    Существует платежный бот Telegram, но ему еще предстоит интегрировать TON:

    Вот несколько примеров проектов сообщества ботов TON, которые принимают платежи TON: https://github.com/Gusarich/ton-bot-example https://github.com/LevZed/ton-payments-in-telegram-bot

    Но если вы хотите чего-то лучшего, вам придется разработать это самостоятельно. Вы можете попробовать начать здесь: https://ton.org/docs/develop/dapps/asset-processing/

  • 0 Голоса
    2 Сообщения
    4 Просмотры

    Есть ТОННА исследователей NFT. Например, ссылка на следующий проводник приведена на официальной странице стандарта TEP-62 NFT:

    https://explorer.tonnft.tools/

    Что касается исследователей, которые анализируют данные по цепочке, я не знаю ни одного. Существует много способов хранения данных в сети, но URL-адреса являются наиболее распространенными. Это был бы классный проект для всех, кто хочет его попробовать!

  • Существуют ли в TON платежные сервисы на основе подписки?

    0 Голоса
    3 Сообщения
    14 Просмотры

    Привет, это отличный вопрос! Да, RocketBot - фантастический вариант. С другой стороны, вы также можете опробовать подключаемый модуль кошелька с подписками.

    Следуйте функциональному коду здесь: https://github.com/ton-blockchain/wallet-контракт/blob/main/func/simple-подписка-plugin.fc

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

  • [Решено] Есть ли способ создать "симпатичный" адрес кошелька TON?

    0 Голоса
    2 Сообщения
    133 Просмотры

    Решено

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

    По сути, вы бы сгенерировали тысячи случайных мнемоник и отфильтровали те, которые соответствуют нужным вам параметрам.

    Вы можете генерировать пары ключей с помощью TonWeb:

    const nacl = TonWeb.utils.nacl; // use nacl library for key pairs const tonweb = new TonWeb(); const keyPair = nacl.sign.keyPair(); // create new random key pair let secretKey = keyPair.secretKey; let wallet = tonweb.wallet.create({publicKey: keyPair.publicKey}); // create interface to wallet smart contract (wallet v3 by default)
  • 0 Голоса
    2 Сообщения
    61 Просмотры

    Решено

    В блокчейне TON, как только транзакция включается в блокчейн, она считается ** "подтвержденной" ** и не может быть отменена. Таким образом, скорость, с которой транзакции включаются в блокчейн, имеет решающее значение для многих вариантов использования, особенно для децентрализованных приложений, которые полагаются на быструю и эффективную обработку транзакций.

    В отличие от некоторых других блокчейнов, таких как Ethereum, "блокчейн TON не допускает динамической корректировки платы за газ в зависимости от рыночного спроса`. Цены на газ одинаковы для всех и определяются конфигурацией сети. * ** Таким образом, невозможно "заплатить больше", чтобы заставить валидаторов отдавать приоритет вашей транзакции перед другими.** *

    Однако можно ускорить обработку транзакций, запустив свой собственный узел проверки. С помощью вашего собственного валидатора вы можете обрабатывать свои транзакции быстрее, чем другие участники сети, поскольку у вас есть прямой контроль над вычислительной мощностью вашего узла.

  • 0 Голоса
    2 Сообщения
    3 Просмотры

    Решено

    Я бы предложил использовать для этого библиотеку JavaScript: https://github.com/toncenter/tonweb.

    Для получения дополнительных примеров JS, пожалуйста, обратитесь к https://github.com/toncenter/examples.

    В качестве альтернативы, вы могли бы попробовать использовать эту библиотеку Python: https://github.com/kdimentionaltree/tApi. Это часть TonCenter для single liteserver, и пример можно найти в sandbox.ipynb.

  • 0 Голоса
    2 Сообщения
    17 Просмотры

    Решено

    Вообще говоря, хранилище TON находится в автономном режиме, и его стоимость зависит от поставщика. С другой стороны, для ячейки TON вам следует проверить плату за хранение TON.

    Важно отметить, что TON Storage гарантирует, что поставщики хранилища не получат оплату, если они не сохранят файл, но это не гарантирует, что файлы действительно будут сохранены. Хранилище TON в большей степени зависит от доступности, чем от фактического хранилища.

    ** Что касается стоимости хранения данных в TON, то сохранение 1 МБ данных в течение одного года обойдется примерно в 6,01 тонны. Однако стоит отметить, что обычно вам не нужно хранить большие объемы данных по цепочке.**

    Если вам требуется децентрализованное хранилище, вы можете рассмотреть возможность хранения данных TON. Вы можете найти более подробную информацию о TON Storage здесь: https://ton.org/docs/participate/ton-storage/storage-daemon.

  • [Решено] Есть ли способ получить больше монет testnet?

    0 Голоса
    2 Сообщения
    27 Просмотры

    Решено

    К сожалению, нет.

    Но лучший способ для меня - открыть больше аккаунтов Telegram и вызывать бота из каждого аккаунта.

  • [Решено] Существуют ли рекомендации по созданию DApp?

    0 Голоса
    2 Сообщения
    24 Просмотры

    Решено

    Универсального ответа на эти вопросы не существует, поскольку наилучший подход может варьироваться в зависимости от конкретных требований и ограничений создаваемого вами DApp. Однако существуют некоторые общие рекомендации и лучшие практики, которым можно следовать при разработке DApp на TON.

    Одним из ресурсов, который может оказаться полезным, является серия руководств, содержащих пошаговые инструкции по развертыванию контрактов и написанию функционального кода. Вы можете найти эти учебные пособия по адресу https://ton-community.github.io/tutorials/01-wallet/.

    Кроме того, веб-сайт TON (https://ton.org/) предлагает огромное количество информации и документации по всему, что связано с TON. Хотя он может быть организован не самым систематизированным образом, он может стать ценным ресурсом для разработчиков, желающих создавать на платформе.

  • [Решено] Каков уровень инфляции для тонны?

    0 Голоса
    2 Сообщения
    22 Просмотры

    Решено

    Уровень инфляции для TON не является фиксированным и может варьироваться в зависимости от различных факторов, таких как сетевая активность и количество валидаторов.

    Согласно техническому документу TON, "первоначальный уровень инфляции был установлен на уровне 0,6% в год", который распределяется между валидаторами в качестве вознаграждения за проверку транзакций и поддержание сети.

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

    Также стоит отметить, что TON не был запущен из-за проблем с регулированием, поэтому активной сети TON нет.

    Что касается меня, я буду использовать http://Tonstake.com и отслеживайте данные.