Открытый ключ, необходимый для перевода валюты и отправки сообщений с этой
учетной записи (необязательно; по умолчанию равен самому идентификатору учетной записи). В некоторых случаях здесь
может быть расположен более сложный код проверки подписи, аналогичный тому
, что делается для вывода транзакций биткойнов; тогда идентификатор учетной записи
будет равен хэшу этого кода.
Нам также нужно где-то хранить, либо в состоянии учетной записи, либо в какой-либо другой
хэш-карте, индексированной учетной записью, следующие данные:
ˆ Очередь выходных сообщений учетной записи (см. 2.4.17)
ˆ Сбор (хэшей) недавно доставленных сообщений (см. 2.4.23)
Не все из них действительно необходимы для каждой учетной записи; например, код smartcontract необходим только для смарт-контрактов, но не для простых учетных записей. Кроме того, в то время как любой счет должен иметь ненулевой баланс в
основной валюте (например, монеты в тоннах для мастер-цепочки и цепочки фрагментов
базовой рабочей цепочки), он может иметь нулевые остатки в других валютах.
Чтобы избежать хранения неиспользуемых данных, определяется тип суммарного продукта (в зависимости от рабочей
цепочки) (во время создания рабочей цепочки), который использует различные
байты тегов (например, конструкторы TL; см. 2.2.5) для различения используемых различных
конструкторов. В конечном счете, состояние учетной записи само по себе хранится в виде набора
ячеек постоянного хранилища TVM.
2.4 Сообщения Между Цепочками Сегментов
Важным компонентом блокчейна TON является система обмена сообщениями
между блокчейнами. Эти цепочки блоков могут быть цепочками фрагментов одной и той же рабочей
цепочки или разных рабочих цепочек.
2.4.1. Сообщения, учетные записи и транзакции:
обзор системы с высоты птичьего полета. Сообщения отправляются с одной учетной записи на другую. Каждая транзакция
состоит из учетной записи, получающей одно сообщение, изменяющей свое состояние в соответствии с
определенными правилами и генерирующей несколько (возможно, одно или ноль) новых сообщений для
других учетных записей. Каждое сообщение генерируется и принимается (доставляется) ровно один
раз.
Это означает, что сообщения играют фундаментальную роль в системе, сравнимую с ролью учетных записей (смарт-контрактов). С точки зрения
В парадигме конечного сегментирования (см. 2.1.2) каждая учетная запись находится в своей отдельной цепочке
учетных записей, и единственный способ, которым она может повлиять на состояние какой-либо другой учетной записи, -
это отправить сообщение.
29
2.4. Сообщения Между Цепочками Сегментов
2.4.2. Учетные записи как процессы или субъекты; Модель субъекта. Можно подумать
об учетных записях (и смарт-контрактах) как о процессах или субъектах, которые
способны обрабатывать входящие сообщения, изменять их внутреннее состояние и
в результате генерировать некоторые исходящие сообщения. Это тесно связано с так называемым
Модель актора, используемая в таких языках, как Erlang (однако актеры в Erlang
обычно называются процессами). Поскольку новые участники (т.е. смарт-контракты) также
могут создаваться существующими участниками в результате обработки входящего
сообщение, переписка с моделью Актера по существу завершена.
2.4.3. Получатель сообщения. Любое сообщение имеет своего получателя, характеризуемого идентификатором
целевой рабочей цепочки (по умолчанию предполагается, что он совпадает с идентификатором
исходной цепочки сегментов), и идентификатором учетной записи получателя account_id.
Точный формат (т.е. количество бит) идентификатора учетной записи зависит от w; однако
сегмент всегда определяется его первыми (наиболее значимыми) 64 битами.
2.4.4. Отправитель сообщения. В большинстве случаев у сообщения есть отправитель, который снова характеризуется (w
0
, account_id0
) пара. Если он присутствует, он расположен после получателя
сообщения и значения сообщения. Иногда отправитель неважен
или это кто-то за пределами блокчейна (т.е. не смарт-контракт), и в этом
случае это поле отсутствует.
Обратите внимание, что модель Субъекта не требует, чтобы сообщения имели
неявного отправителя. Вместо этого сообщения могут содержать ссылку на Субъекта,
которому должен быть отправлен ответ на запрос; обычно он совпадает с
отправителем. Однако в криптовалютной (византийской) среде полезно иметь явное поле отправителя, не подлежащее блокировке, в
сообщении.
2.4.5. Значение сообщения. Еще одной важной характеристикой сообщения является
его вложенная стоимость в одной или нескольких криптовалютах, поддерживаемых как
источником, так и целевой рабочей цепочкой. Значение сообщения указывается в самом
его начале сразу после получателя сообщения; по сути, это
список пар (currency_id, значение).
Обратите внимание, что простые переводы значений между простыми учетными записями - это просто
пустые (без операции) сообщения с прикрепленным к ним значением. С другой
стороны, немного более сложный текст сообщения может содержать простой текст
или двоичный комментарий (например, о цели платежа).
2.4.6. Внешние сообщения или сообщения из ниоткуда. Некоторые сообщения поступают в систему из ниоткуда, то есть они не генерируются
учетной записью (смарт-контрактом или нет), находящейся в блокчейне. Самый
30
2.4. Сообщения между Цепочками сегментов
Типичный пример возникает, когда пользователь хочет перевести некоторые средства с
контролируемого им счета на какой-либо другой счет. В этом случае пользователь отправляет
сообщение из ниоткуда в свою учетную запись с просьбой сгенерировать
сообщение для учетной записи получателя, содержащее указанное значение. Если это сообщение подписано правильно, ее учетная запись получает его и генерирует необходимые
исходящие сообщения.
На самом деле, можно рассматривать простую учетную запись как особый случай смарт-
контракта с предустановленным кодом. Этот смарт-контракт получает только один тип
сообщений. Такое входящее сообщение должно содержать список исходящих сообщений,
которые будут сгенерированы в результате доставки (обработки) входящего сообщения, а
также подпись. Смарт-контракт проверяет подпись, и, если она
правильно, генерирует необходимые сообщения.
Конечно, есть разница между сообщениями из ниоткуда и
обычными сообщениями, потому что сообщения из ниоткуда не могут иметь ценности,
поэтому они не могут сами платить за свой газ (т.е. за свою обработку). Вместо этого
они предварительно выполняются с небольшим ограничением газа, прежде чем даже быть предложенными для включения в новый блок цепочки сегментов; если выполнение завершается неудачно (
подпись неверна), сообщение из ниоткуда считается неправильным и
отбрасывается. Если выполнение не завершится неудачей в пределах малого лимита газа, сообщение может быть включено в новый блок цепочки сегментов и обработано полностью,
при этом оплата за потребленный газ (мощность обработки) взимается со счета
получателя. Сообщения из ниоткуда также могут взимать некоторую комиссию за транзакцию, которая списывается со счета получателя в дополнение
к оплате за газ для перераспределения между валидаторами.
В этом смысле сообщения из ниоткуда или внешние сообщения берут на себя
роль кандидатов на транзакции, используемых в других блокчейн-системах (например, Биткойн
и Эфириум).
2.4.7. Регистрировать сообщения или сообщения в никуда. Аналогичным образом, иногда
специальное сообщение может быть сгенерировано и направлено в определенную цепочку сегментов не для
доставки ее получателю, а для регистрации, чтобы быть легко замеченным любым
, кто получает обновления о рассматриваемом сегменте. Эти зарегистрированные
сообщения могут выводиться в консоль пользователя или запускать выполнение какого-либо
сценария на сервере o-chain. В этом смысле они представляют собой внешний вывод суперкомпьютера блокчейна, точно так же, как сообщения из ниоткуда
представляют внешний вход суперкомпьютера блокчейна.
2.4.8. Взаимодействие с сервисами o-chain и внешними блокчейнами.
Эти внешние входные и выходные сообщения могут использоваться для взаимодействия с
учетной записи (необязательно; по умолчанию равен самому идентификатору учетной записи). В некоторых случаях здесь
может быть расположен более сложный код проверки подписи, аналогичный тому
, что делается для вывода транзакций биткойнов; тогда идентификатор учетной записи
будет равен хэшу этого кода.
Нам также нужно где-то хранить, либо в состоянии учетной записи, либо в какой-либо другой
хэш-карте, индексированной учетной записью, следующие данные:
ˆ Очередь выходных сообщений учетной записи (см. 2.4.17)
ˆ Сбор (хэшей) недавно доставленных сообщений (см. 2.4.23)
Не все из них действительно необходимы для каждой учетной записи; например, код smartcontract необходим только для смарт-контрактов, но не для простых учетных записей. Кроме того, в то время как любой счет должен иметь ненулевой баланс в
основной валюте (например, монеты в тоннах для мастер-цепочки и цепочки фрагментов
базовой рабочей цепочки), он может иметь нулевые остатки в других валютах.
Чтобы избежать хранения неиспользуемых данных, определяется тип суммарного продукта (в зависимости от рабочей
цепочки) (во время создания рабочей цепочки), который использует различные
байты тегов (например, конструкторы TL; см. 2.2.5) для различения используемых различных
конструкторов. В конечном счете, состояние учетной записи само по себе хранится в виде набора
ячеек постоянного хранилища TVM.
2.4 Сообщения Между Цепочками Сегментов
Важным компонентом блокчейна TON является система обмена сообщениями
между блокчейнами. Эти цепочки блоков могут быть цепочками фрагментов одной и той же рабочей
цепочки или разных рабочих цепочек.
2.4.1. Сообщения, учетные записи и транзакции:
обзор системы с высоты птичьего полета. Сообщения отправляются с одной учетной записи на другую. Каждая транзакция
состоит из учетной записи, получающей одно сообщение, изменяющей свое состояние в соответствии с
определенными правилами и генерирующей несколько (возможно, одно или ноль) новых сообщений для
других учетных записей. Каждое сообщение генерируется и принимается (доставляется) ровно один
раз.
Это означает, что сообщения играют фундаментальную роль в системе, сравнимую с ролью учетных записей (смарт-контрактов). С точки зрения
В парадигме конечного сегментирования (см. 2.1.2) каждая учетная запись находится в своей отдельной цепочке
учетных записей, и единственный способ, которым она может повлиять на состояние какой-либо другой учетной записи, -
это отправить сообщение.
29
2.4. Сообщения Между Цепочками Сегментов
2.4.2. Учетные записи как процессы или субъекты; Модель субъекта. Можно подумать
об учетных записях (и смарт-контрактах) как о процессах или субъектах, которые
способны обрабатывать входящие сообщения, изменять их внутреннее состояние и
в результате генерировать некоторые исходящие сообщения. Это тесно связано с так называемым
Модель актора, используемая в таких языках, как Erlang (однако актеры в Erlang
обычно называются процессами). Поскольку новые участники (т.е. смарт-контракты) также
могут создаваться существующими участниками в результате обработки входящего
сообщение, переписка с моделью Актера по существу завершена.
2.4.3. Получатель сообщения. Любое сообщение имеет своего получателя, характеризуемого идентификатором
целевой рабочей цепочки (по умолчанию предполагается, что он совпадает с идентификатором
исходной цепочки сегментов), и идентификатором учетной записи получателя account_id.
Точный формат (т.е. количество бит) идентификатора учетной записи зависит от w; однако
сегмент всегда определяется его первыми (наиболее значимыми) 64 битами.
2.4.4. Отправитель сообщения. В большинстве случаев у сообщения есть отправитель, который снова характеризуется (w
0
, account_id0
) пара. Если он присутствует, он расположен после получателя
сообщения и значения сообщения. Иногда отправитель неважен
или это кто-то за пределами блокчейна (т.е. не смарт-контракт), и в этом
случае это поле отсутствует.
Обратите внимание, что модель Субъекта не требует, чтобы сообщения имели
неявного отправителя. Вместо этого сообщения могут содержать ссылку на Субъекта,
которому должен быть отправлен ответ на запрос; обычно он совпадает с
отправителем. Однако в криптовалютной (византийской) среде полезно иметь явное поле отправителя, не подлежащее блокировке, в
сообщении.
2.4.5. Значение сообщения. Еще одной важной характеристикой сообщения является
его вложенная стоимость в одной или нескольких криптовалютах, поддерживаемых как
источником, так и целевой рабочей цепочкой. Значение сообщения указывается в самом
его начале сразу после получателя сообщения; по сути, это
список пар (currency_id, значение).
Обратите внимание, что простые переводы значений между простыми учетными записями - это просто
пустые (без операции) сообщения с прикрепленным к ним значением. С другой
стороны, немного более сложный текст сообщения может содержать простой текст
или двоичный комментарий (например, о цели платежа).
2.4.6. Внешние сообщения или сообщения из ниоткуда. Некоторые сообщения поступают в систему из ниоткуда, то есть они не генерируются
учетной записью (смарт-контрактом или нет), находящейся в блокчейне. Самый
30
2.4. Сообщения между Цепочками сегментов
Типичный пример возникает, когда пользователь хочет перевести некоторые средства с
контролируемого им счета на какой-либо другой счет. В этом случае пользователь отправляет
сообщение из ниоткуда в свою учетную запись с просьбой сгенерировать
сообщение для учетной записи получателя, содержащее указанное значение. Если это сообщение подписано правильно, ее учетная запись получает его и генерирует необходимые
исходящие сообщения.
На самом деле, можно рассматривать простую учетную запись как особый случай смарт-
контракта с предустановленным кодом. Этот смарт-контракт получает только один тип
сообщений. Такое входящее сообщение должно содержать список исходящих сообщений,
которые будут сгенерированы в результате доставки (обработки) входящего сообщения, а
также подпись. Смарт-контракт проверяет подпись, и, если она
правильно, генерирует необходимые сообщения.
Конечно, есть разница между сообщениями из ниоткуда и
обычными сообщениями, потому что сообщения из ниоткуда не могут иметь ценности,
поэтому они не могут сами платить за свой газ (т.е. за свою обработку). Вместо этого
они предварительно выполняются с небольшим ограничением газа, прежде чем даже быть предложенными для включения в новый блок цепочки сегментов; если выполнение завершается неудачно (
подпись неверна), сообщение из ниоткуда считается неправильным и
отбрасывается. Если выполнение не завершится неудачей в пределах малого лимита газа, сообщение может быть включено в новый блок цепочки сегментов и обработано полностью,
при этом оплата за потребленный газ (мощность обработки) взимается со счета
получателя. Сообщения из ниоткуда также могут взимать некоторую комиссию за транзакцию, которая списывается со счета получателя в дополнение
к оплате за газ для перераспределения между валидаторами.
В этом смысле сообщения из ниоткуда или внешние сообщения берут на себя
роль кандидатов на транзакции, используемых в других блокчейн-системах (например, Биткойн
и Эфириум).
2.4.7. Регистрировать сообщения или сообщения в никуда. Аналогичным образом, иногда
специальное сообщение может быть сгенерировано и направлено в определенную цепочку сегментов не для
доставки ее получателю, а для регистрации, чтобы быть легко замеченным любым
, кто получает обновления о рассматриваемом сегменте. Эти зарегистрированные
сообщения могут выводиться в консоль пользователя или запускать выполнение какого-либо
сценария на сервере o-chain. В этом смысле они представляют собой внешний вывод суперкомпьютера блокчейна, точно так же, как сообщения из ниоткуда
представляют внешний вход суперкомпьютера блокчейна.
2.4.8. Взаимодействие с сервисами o-chain и внешними блокчейнами.
Эти внешние входные и выходные сообщения могут использоваться для взаимодействия с
Пн Мар 04, 2024 8:47 am автор Admin
» Как майнить Notcoin Not подробное описание
Сб Фев 03, 2024 12:04 am автор Admin
» Кто придумал Toncoin
Ср Янв 31, 2024 3:38 am автор Admin
» Недельный дайджест???? Криптовалюты
Вт Янв 23, 2024 8:06 pm автор Admin
» Notcoin как играть подробное описанин
Вт Янв 23, 2024 7:03 pm автор Admin
» Что такое Not coin токен подробнее
Пн Янв 22, 2024 2:23 pm автор Admin
» Что такое not coin как в него играть. Подробнее.
Сб Янв 20, 2024 11:39 pm автор Admin
» Notcoin от Павла Дурова как заработать
Сб Янв 20, 2024 8:37 am автор Admin
» Новая криптовалюта на Телеграм Notcoin
Пт Янв 19, 2024 3:34 am автор Admin