Архитектура Chia

Блокчейн изнутри (главное)

   Chia на одной машине может выполняться более одного из этих процессов. Фактически конфигурация по умолчанию заключается в одновременном запуске четырех процессов: Farmer, Full Node, Harvester и Wallet. Многие фермеры также захотят запускать процессы Electron Gui и Pool. Кроме того, некоторые фермеры, особенно фермы с несколькими Pib, захотят запустить Timelord.

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

     Полные узлы

      Ядро одноранговой системы Chia состоит из полных узлов. Полные узлы имеют несколько обязанностей:

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

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

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

 

Фермеры

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

      Фермеры общаются с "комбайнами" (отдельные машины, включая фермерскую машину, фактически хранящие участки) через протокол комбайна.

      Фермеры работают в ожидании обновлений от полного узла, который дает им новые очки (эквивалентные выигрышным номерам в лотерее) примерно каждые девять секунд. Затем фермеры присылают знаки каждому комбайну, чтобы проверить, есть ли какие-то выигрышные доказательства наличия места. Если комбайн находит какие-то действительные доказательства, он посылает их фермеру, который разделяет их на две категории:

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

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

 

Timelords

      Timelords (Комбайны) – это отдельные машины, которыми управляет фермер. В крупном фермерском хозяйстве фермер может быть подключен ко многим комбайнам.

       Составители управляют фактическими файлами графиков. Минимальный размер участка (безусловно, самый распространенный) – k32, что соответствует примерно 100 ГиБ. С каждым увеличением значение k размер графика примерно удваивается, поэтому график k33 составляет около 200 гигабайт, k34 – около 400 гигабайт и т.д.

      Уровень сложности автоматически настраивается через каждые 4608 блоков, чтобы нацелить одно доказательство пространства по всей сети на каждые две точки вывески. Это целевое среднее значение может быть также нуль или несколько доказательств на точку вывески. Это приводит к корректировке сложности примерно каждые 24 часа.

 

Pool

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

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

      Пулы создают и производят транзакции Coinbase, но в протоколе пула Chia они фактически не выбирают содержимое блоков. Это дает фермерам больше власти и, таким образом, снижает влияние централизованных пулов.

      Фермеры периодически отправляют в пулы частичные копии, содержащие подтверждение наличия места и подписи. Пулы используют эти частичные доказательства, чтобы определить, сколько места выделили фермеры, что в свою очередь определяет долю фермера в вознаграждении, когда пул выигрывает   блок.

     Когда фермер, являющийся членом пула, выигрывает блок, 78 вознаграждения поступает в пул, который затем распределяется между участниками. Фермер покидает 18 часть вознаграждения. Это было намеренное дизайнерское решение. Если фермер не получал прямого вознаграждения за создание блока, у оператора конкурирующего в пуле мог быть финансовый стимул присоединиться к пулу (которым они не управляли) с большим количеством участков и пренебречь созданием блока, когда они нашли действительное доказательство, тем самым испортив конкурирующий пул.

 

Кошелек

     Кошельки могут связываться с полными узлами через протокол кошелька. Это сродни протоколу Биткойн Spv: он позволяет проверять транзакции и вес блока без требований к пропускной способности и процессору полных узлов.

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

 

One Green

One Green

Профита друзья 🕵️‍♂️