What actually is a DAG? Ethereum Stack Exchange

What actually is a DAG? Ethereum Stack Exchange

I have attempted googling it spil well spil finding it here.

Many people here talk about it, but what actually is a DAG?

Four Answers

DAG stands for Directed Acyclic Graph. Ter Ethereum, a DAG is created every epoch using a version of the Dagger-Hashimoto Algorithm combining Vitalik Buterin’s Dagger algorithm and Thaddeus Dryja’s Hashimoto algorithm.

There are fairly a few places where the DAG is defined te the docs and literature. Thesis are collated below:

. d being the current DAG, a large gegevens set needed to compute the mix-hash.

Ter mathematics and pc science, a directed acyclic graph (DAG), is a finite directed graph with no directed cycles. That is, it consists of finitely many vertices and edges, with each edge directed from one vertex to another, such that there is no way to embark at any vertex v and go after a consistently-directed sequence of edges that eventually loops back to v again. Equivalently, a DAG is a directed graph that has a topological ordering, a sequence of the vertices such that every edge is directed from earlier to straks ter the sequence.

. a superb massive dataset known spil the DAG.

The Ethash algorithm expects the DAG spil a two-dimensional array of uint32s (4-byte unsigned ints), with dimension (n 16) where n is a large number. (n starts at 16777186 and grows from there.) Following the magic number, the rows of the DAG should be written sequentially into the opstopping, with no delimiter inbetween rows and each unint32 encoded ter little-endian format.

From Vitalik Buterin’s (I think) Dagger Paper, Dec 2013:

Dagger, a memory-hard proof of work based on moderately connected directed acyclic graphs (DAGs, hence the name), which, while far from optimal, has much stronger memory-hardness properties than anything else te use today.

Essentially, the Dagger algorithm works by creating a directed acyclic graph (the technical term for a tree where each knot is permitted to have numerous parents) with ten levels including the root and a total of 225 – 1 values.

. calculating the PoW (Proof of Work) requires subsets of a stationary resource dependent on the nonce and block header. This resource (a few gigabyte size gegevens) is called a DAG. The DAG is totally different every 30000 blocks (a 100 hour window, called an epoch) and takes a while to generate.

a DAG (directed acyclic graph) for the proof of work algorithm

a large, transient, randomly generated dataset

The DAG is the “dataset” ter this description of the Ethash algorithm, emphasis mine:

  1. There exists a seed which can be computed for each block by scanning through the block headers up until that point.
  2. From the seed, one can compute a 16 MB pseudorandom cache. Light clients store the cache.
  3. From the cache, wij can generate a 1 GB dataset, with the property that each voorwerp te the dataset depends on only a puny number of items from the cache. Total clients and miners store the dataset. The dataset grows linearly with time.
  4. Mining involves grabbing random slices of the dataset and hashing them together. Verification can be done with low memory by using the cache to regenerate the specific chunks of the dataset that you need, so you only need to store the cache.

Leave a Reply

Your email address will not be published. Required fields are marked *