Задать вопрос
@3FANG

Какая структура блокчейнов в TON?

Добрый день! Продолжаю изучать TON и неизбежно возникает путаница в голове, буду благодарен за разъяснения что к чему.

цитаты из Workchain: Blockchainwith your own rules и Shards официальной документации:

TON позволяет создавать до 2^32 воркчейнов, каждый из которых подразделяется на 2^60 шардов.
В настоящее время в TON существует только 2 воркчейна: MasterChain и BaseChain.

1. Почему существует только 2 воркчейна, если потенциально возможно существование до 2^32 воркчейнов?

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

2. Как я понял, из всего вышесказанного вытекает, что MasterChain и BaseChain - это подвиды воркчейнов. Но если отталкиваться от информации других источников, существует один MasterChain, хранящий конфигурацию сети и состояние всех воркчейнов, и от него уже идут воркчейны. Идут воркчейнЫ, но, получается, т.к. их всего два, что воркчейН, т.е. один - BaseChain. ...
Скажите, какая на самом деле структура, что из себя представляют MasterChain и BaseChain?

По умолчанию в Basechain (workchain=0) есть только один шард с номером шарда 0x80000000000000000000 (или 1000000000000000000000000000000000000000000000000000000000000000 в двоичном представлении). Мастерчейн (workchain=-1) всегда имеет один и только один шард.

3. Почему MasterChain имеет только один шард?

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

Пример:

Мастерчейн-блок seqno=34607821 имеет 2 шарда: (0,4000000000000000,40485798) и (0,c0000000000000000000,40485843) - https://toncenter.com/api/v2/shards?seqno=34607821:
{"ok":true,"result":{"@type":"blocks.shards","shards":[{"@type":"ton.blockIdExt","workchain":0,"shard":"4611686018427387904","seqno":40485798,"root_hash":"n9UDwU/qzS+8iagaYEmmcrl8u0DN69zZov9IeppX1Rw=","file_hash":"AGbt+BC6QyjqmFp6TD6zmAVOQd+E/bSjXsZloQNvNCE="},{"@type":"ton.blockIdExt","workchain":0,"shard":"-4611686018427387904","seqno":40485843,"root_hash":"XGrPbMaNvT+LNaa4aGDBnxR6D2i0Gu+M91/xu/gsReU=","file_hash":"ICnp6uI+NQ5svLPqehe2PDcN4+wR14SZsiAbxCRL0SE="}],"@extra":"1714648426.6716506:0:0.5418408720533167"}}


4. Почему у блока 2 шарда - "shard":"4611686018427387904" и "shard":"-4611686018427387904"? Что означает минус перед числом? Почему "workchain": 0, если мы работаем с Мастерчейном, т.е. должен быть, по идее, -1?
Seqno, как я понял, может использоваться как для обозначения порядкового номера транзакции, так и для обозначения порядкового номера блока? Или это seqno шардов...

Разъясните что к чему, пожалуйста...
  • Вопрос задан
  • 249 просмотров
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы