Что на самом деле является DAG?

Я попытался найти его в Google, а также найти его здесь.

Многие люди здесь говорят об этом, но что на самом деле является DAG?

dag
65 голосов | спросил Tomas 11 MarpmFri, 11 Mar 2016 16:19:11 +03002016-03-11T16:19:11+03:0004 2016, 16:19:11

4 ответа


44

DAG означает Directed Acyclic Graph . В Ethereum, DAG создается каждую эпоху, используя версию алгоритма Кинжал-Хашимото, сочетающую алгоритм Китгаля Виталика Бутерина и алгоритм Хашимото Thaddeus Dryja .

Существует немало мест, где DAG определяется в документах и ​​литературе. Они сопоставляются ниже:

Из желтой бумаги :

  

... d является текущим   DAG, большой набор данных, необходимый для вычисления микс-хэша ...

Из Wikipedia :

Направленный ациклический график: image credit Дэвид Эппштейн

 введите описание изображения здесь>> </a> </p>

<blockquote>  <p> В математике и информатике ориентированный ациклический граф (DAG) - это конечный ориентированный граф без направленных циклов.
  То есть он состоит из конечного числа вершин и ребер, причем каждый
  край, направленный от одной вершины к другой, так что нет способа
  начинаются с любой вершины v и следуют последовательно направленной последовательности
  края, которые в конечном итоге снова возвращаются к v. Эквивалентно, ДАГ является
  направленный граф, имеющий топологическое упорядочение, последовательность
  вершины такие, что каждое ребро направлено от более раннего к более позднему в
  Последовательность. </p>
</blockquote>

<p> Из <a href= https://github.com/ethereum/wiki/wiki/Ethash-DAG :

  

... огромный огромный набор данных, известный как DAG ...

     

Алгоритм Ethash ожидает, что DAG будет представлять собой двумерный массив   uint32s (4-байтовые unsigned ints), с размерностью (n Ã-16), где n является   большое количество. (n начинается с 16777186 и растет оттуда).   волшебное число, строки DAG должны записываться последовательно   в файл, без разделителя между строками и каждого кодированного unint32   в формате little-endian.

Из фильма Виталика Бутерина (я думаю) Кинжал бумаги , декабрь 2013:

  

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

     

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

Из https://github.com/ethereum /вики /вики /Mining # так, что-это-горно-равно :

  

... вычисление PoW (Proof of Work) требует подмножества фиксированного ресурса, зависящего от заголовка nonce и block.   Этот ресурс (данные размером в несколько гигабайт) называется DAG. ДАГ является   совершенно разные каждые 30000 блоков (100-часовое окно, называемое   epoch) и требуется некоторое время для генерации.

Из https://github.com/ethereum/wiki/wiki/Mining # ethash-даг

  

a DAG (направленный ациклический граф) для доказательства алгоритма работы

Из https://github.com/ethereum/wiki/wiki/Mining #-алгоритм

  

большой, временный, случайно сгенерированный набор данных

Из https://github.com/ethereum/wiki/wiki/Ethash

DAG - это «набор данных» в этом описании алгоритма Ethash, акцент мой:

  
  1. Существует семя, которое может быть вычислено для каждого блока путем сканирования через заголовки блока до этой точки.
  2.   
  3. Из семени можно вычислить псевдослучайный кеш на 16 МБ. Легкие клиенты хранят кеш.
  4.   
  5. Из кеша мы можем создать набор данных 1 ГБ , с тем свойством, что каждый элемент в наборе данных зависит от небольшого количества элементов из кеша. Полные клиенты и шахтеры хранят набор данных. Набор данных растет линейно со временем.
  6.   
  7. Добыча включает захват случайных фрагментов набора данных и их объединение. Проверка может выполняться с низкой памятью, используякеш, чтобы восстановить определенные части набора данных, которые вам нужны, поэтому вам нужно хранить кеш.
  8.   
ответил atomh33ls 28 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 28 Sep 2016 15:01:53 +0300 2016, 15:01:53
12

DAG означает Dagger Hashimoto

  

Это предлагаемая спецификация для алгоритма добычи для Ethereum 1.0.

     

Кинжал Хашимото стремится одновременно выполнить две цели:

     
  • Сопротивление ASIC: преимущество создания специализированного оборудования для алгоритма должно быть как можно меньше, в идеале до точки   что даже в экономике, где ASIC были разработаны, ускорение   достаточно мала, что она по-прежнему незначительно выгодна для пользователей   обычные компьютеры для моей работы с запасной мощностью процессора.
  •   
  • Легкость проверки клиента: блок должен быть относительно эффективно проверен легким клиентом.
  •   

вы найдете все, что вы хотите узнать о здесь >> здесь

ответил euri10 11 MarpmFri, 11 Mar 2016 17:46:17 +03002016-03-11T17:46:17+03:0005 2016, 17:46:17
12

Ethereum использует Ethash (система Proof of Work).

Ethash PoW - это память, что делает ее в основном устойчивой к ASIC. Это в основном означает, что для вычисления PoW требуется выбрать подмножества фиксированного ресурса, зависящие от заголовка nonce и block. Этот ресурс (данные размером в несколько гигабайт) называется DAG . Получено из здесь .

ответил Gaurav Agrawal 12 MarpmSat, 12 Mar 2016 13:10:22 +03002016-03-12T13:10:22+03:0001 2016, 13:10:22
7

Я вижу, что никто не упомянул, что такое DAG. Как из описания того, что содержит файл DAG, вы можете видеть, что DAG означает направленный ациклический граф. Это представлено в файле как матрица.

ответил dragosb 3 J000000Sunday16 2016, 09:57:46

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132