Поток данных NEAR

3 min read
To Share and +4 nLEARNs

Видео объяснение

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

Текстовая версия

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

По сути, любой поток блокчейна можно представить как бесконечную временную шкалу, у которой есть начало, но нет конца.

Blocks Timeline

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

Протокол NEAR имеет сегментированную природу, что означает, что в любой момент может работать более одной параллельной сети, называемой сегментом. И каждый шард производит кусок блока с заданным интервалом. Блок в NEAR Blockchain — это набор фрагментов блоков из всех сегментов. Чанк блока сокращен до Chunk в документации протокола NEAR.

Возвращаясь к самому потоку данных. Лучшее, что мы можем сделать, это представить треки, которые мы могли бы видеть в приложениях для редактирования аудио/видео. Каждый шард имеет свой набор дорожек. Верхний трек предназначен для кусков. Они появляются несмотря ни на что с заданным интервалом, для NEAR Blockchain интервал составляет около одной секунды. Чанки создаются, даже если в блокчейне ничего не происходит.

Timeline as tracks

Но что мы имеем в виду, говоря, что что-то происходит? Мы имеем в виду, что что-то вызвало какие-то изменения в блокчейне. И самый известный способ инициировать любые изменения — отправить транзакцию в блокчейн с инструкциями о том, что мы хотим изменить, и кто запросил эти изменения.

Транзакция должна быть создана, подписана и отправлена в блокчейн. После его выполнения мы ожидаем получить результат — ExecutionOutcome. О, это просто. Но это не совсем точно для NEAR Blockchain.

Transaction execution

В начале есть транзакция, она содержит инструкции, которые мы хотим выполнить в блокчейне. Транзакция отправляется в NEAR Blockchain.

И да, она выполняется там немедленно, НО непосредственным результатом выполнения транзакции всегда является просто подтверждение того, что она будет выполнена в цепочке; этот внутренний запрос на выполнение известен как Квитанция. Вы можете думать о Квитанция как о внутренней транзакции, которая существует для передачи информации между осколками.

Вернемся к дорожкам, чтобы посмотреть на пример.

Предположим, у нас есть две учетные записи, живущие на разных шардах alice.near и bob.near. alice.near создает транзакцию для отправки нескольких токенов bob.near. Транзакция выполняется немедленно, и ExecutionOutcome для Транзакции всегда является Квитанцией.

Но этот Квитанция не может быть выполнен здесь, потому что bob.near не живет на том же шарде, что и alice.near, поэтому Квитанция должна быть выполнена на шарде получателя. Таким образом, Квитанция перемещается в тот шард, которому принадлежит bob.near.

На целевом шарде выполняется квитанция, и процесс считается выполненным.

ОБЪЯСНЕНИЕ ЗДЕСЬ УПРОЩЕННОЕ

См. статью о передаче токенов

Итак, окончательная схема будет выглядеть так:

Complete scheme of sending tokens from an account from one Shard to an account on another

Резюме

Мы изучили основные принципы передачи данных в протоколе NEAR. Мы выяснили, что Транзакции выполняются, и Результатом выполнения Транзакции всегда является Квитанция.

Теперь мы знаем, что Квитанция является основным внутренним активом блокчейна NEAR Protocol и обладает способностью перемещаться между шардами. Мы изучили поток данных NEAR на простом примере. Конечно, в реальной жизни с более сложными транзакциями, которые включают вызовы между контрактами, будет больше квитанций и результатов выполнения.

Мы надеемся, что эта статья окажется полезной, и вы сможете легко создавать свои dApps и индексаторы, зная, как данные передаются в протоколе NEAR.

51
Пролистать наверх