Skip to main content
Share Your Experience: Take the 2024 Developer Survey
59 votes

For pool mining, what exactly is a share?

Lots of answers here, but none of them has actually answered the question "what is a share?" In almost all mining pools, a share is a block "solution" not quite good enough to be published as an ...
Jeff Coleman's user avatar
  • 22.1k
22 votes
Accepted

Is Ethereum ASIC resistant?

According to the Ethereum white paper: The current intent at Ethereum is to use a mining algorithm where miners are required to fetch random data from the state, compute some randomly selected ...
Mike Shultz's user avatar
  • 1,212
15 votes

What is a block hash?

The block header is the hash returned from generating a Merkle tree that is below the current difficulty target for the blocks data. What's a hash? In order to understand what the block header is ...
Anandamide's user avatar
13 votes

For pool mining, what exactly is a share?

The Ethereum mining algorithm is outlined here and further detailed here. Participants in a mining pool only receive the parameters (block header parameters, etc..) required for them to compute the ...
zanzu's user avatar
  • 5,360
10 votes
Accepted

How is DAG related to Merkle Tree?

The Ethash DAG is not related to merkle trees (the word "merkle" does not appear on either wiki page). The Ethash DAG only serves as a big dataset (i.e. too big to fit in memory) for making Ethash ...
cdetrio's user avatar
  • 386
9 votes

Block header hash calculation

Below are the steps to calculate blockHash, given a blockNumber: Step1. eth.getBlock(400000) Output:{ difficulty: '6022643743806', extraData: '0xd583010202844765746885676f312e35856c696e7578', ...
AnuragP's user avatar
  • 441
6 votes
Accepted

Why did Ethereum design Ethash instead of using an existing memory-hard hash function?

Though it's only a partial answer, this might shed some light: http://github.com/ethereum/wiki/wiki/Ethash-Design-Rationale . I seem to recall reading a blog post by vbuterin, but I can't locate it at ...
lungj's user avatar
  • 6,680
5 votes

Does Ethereum use Ethash or KECCAK-256 (an alias to SHA3) as hash function?

A hash function is different to a proof-of-work algorithm. Much of the effort in following a proof-of-work algorithm involves making hashes, but they're distinct things. Ethash is the proof-of-work ...
Edmund Edgar's user avatar
  • 16.9k
5 votes

Ethash vs Equihash in terms of memory hardness?

Ethash vs Equihash memory hardness isn't a constant - it changes with time - but I'll try to provide a (very basic and generalised) method that you could use to work out what it is at any point in ...
xflowXen's user avatar
  • 646
5 votes
Accepted

Can the PoW problem be changed without a hard fork?

In the future there will be move to a proof of stake algorithm called Casper, which will require a hard fork because such changes are not backwards compatible. There has already been a hard fork: ...
Physes's user avatar
  • 1,298
4 votes

For pool mining, what exactly is a share?

zanzu accurately describes the architecture that prevents pool miners from controlling the work delivered to the pool, but to answer your question: What exactly is a share? A share is the miner's ...
wilco's user avatar
  • 148
4 votes
Accepted

How does Ethash work?

The general route that the algorithm takes is as follows: There exists a seed which can be computed for each block by scanning through the block headers up until that point. From the seed, ...
Roman Frolov's user avatar
  • 3,177
3 votes

What is FNV and FNV function

FNV = Fowler–Noll–Vo hash function. From the main Ethash page (which contains a link to Wikipedia): We use an algorithm inspired by the FNV hash in some cases as a non-associative substitute for ...
Richard Horrocks's user avatar
3 votes

For pool mining, what exactly is a share?

To mine a block mining pool, you need to find a "good" nonce for the header. The header includes a field "beneficiary", which has to be set to the account to receive the block reward. If the ...
Duane's user avatar
  • 131
3 votes

Is it possible to verify Ethash PoW in a contract?

It seems impossible to do so, because Ethash requires a 16 MB pseudorandom cache. This would be expensive to store on the blockchain, as each Ethereum transaction only holds a maximum of 89kB (3 ...
Loi.Luu's user avatar
  • 2,103
3 votes
Accepted

How is the 1GB dataset generated, which is used by the Ethash algorithm?

The algorithm The algorithm is explained in detail, using (Python) pseudo-code, on the Ethash wiki page. There's also a related Design Rationale page. Those pages are nicely written, concise, and ...
Richard Horrocks's user avatar
3 votes
Accepted

What is ethash shared mode?

I got the answer from Péter Szilágyi on go-ethereum gitter channel so I paste here for people who come by. If I remember correctly, the "shared PoW" is only used inside our tests. The idea was ...
vutran's user avatar
  • 802
3 votes

What is the difference between account nonce and block nonce?

First of all, in bitcoin and subsequently in every other blockchain nonce is shortcut for nonsense. It does not make any sense to the block data but it is there. Lets see why is it there? A Block ...
biplavo's user avatar
  • 934
3 votes
Accepted

What is the difference between account nonce and block nonce?

Your understanding is correct about both nonces. The block nonce is what miners keep changing to compute a solution to Proof of Work (in Ethereum, it's Ethash). Miners probably start with a value of ...
eth's user avatar
  • 85.9k
2 votes
Accepted

Python bitswap // Ethash algorithm

The thing is that here, nonce is an integer I think it's actually of type bytes - it's not a true numeric type like int is. So here nonce is being treated as a byte array. So how should header and ...
Richard Horrocks's user avatar
2 votes

How can i calculate curent block number?

You can just use eth_blockNumber
Tjaden Hess's user avatar
  • 37.1k
2 votes

Support in Ethereum for PoWs algos other than Ethash

Yes it would be possible, but you would have to make every one follow your fork. Why would we do this ? Ethash is nice and Casper proof of stake algorithm will come soon (I hope) so mining will be ...
Nicolas Massart's user avatar
2 votes
Accepted

Why there are two full-R23 files (DAG files) in .ethash folder?

Every 30,000 blocks - where 30,000 blocks is called an epoch - a new DAG file is generated. This mechanism provides the Ethash algorithm something fresh to work on. At the end of 30,000 blocks, ...
Richard Horrocks's user avatar
2 votes

What do Ethhash and CliqueConfig refer to in the genesis config?

Ethash is the Proof-of-Work algorithm used by Ethereum. Design rationale and an explanation of the algorithm in pseudo-code can be found on the wiki (and has been discussed in previous questions - see:...
Richard Horrocks's user avatar
2 votes

How does Ethash work?

From here Ethash is the name of the PoW algorithm used in Ethereum. Originally, this was proposed as the Dagger-Hashimoto algorithm, but much has changed since the first implementation, and the PoW ...
Yilmaz's user avatar
  • 1,610
2 votes
Accepted

Hashing header "offline" python

You make sure that the information is correct by putting all the fields in a Header RLP object, generating the hash, and comparing it against the block hash. Two of those header fields are the ...
carver's user avatar
  • 6,381
2 votes

Generating cache from block_number and seed using Python

Just solved the problem. There were a couple of mistakes I made when implementing the mkcache function in the example above: The seed ...
dugdmitry's user avatar
1 vote

Verifying ethash output Ethereum block hash

I've found an answer here at the Ethash wiki. def calc_dataset_item(cache, i): n = len(cache) r = HASH_BYTES // WORD_BYTES # initialize the mix mix = copy.copy(cache[i % n]) mix[0] ...
k26dr's user avatar
  • 861
1 vote

How can I calculate the Ethash of a Block

For calculating the Ethash you need a lot more than just the block number (you need the entire header). The documentation about how this is calculated can be seen here. You can copy paste the python ...
Pani's user avatar
  • 280
1 vote
Accepted

geth mining on 32bits host (raspberry pi) memory error

Do not use POW, use Proof of Authority and problem solved. Reason being POA requires no DAG generation, therefore is suitable for low end devices.
Consy's user avatar
  • 592

Only top scored, non community-wiki answers of a minimum length are eligible