2

Since mining is resource intensive process, how to make it more efficient for a lightweight client in terms of memory. I am ready for a trade off even it takes more time to mine than what it would take for a normal client.

2
  • Hi there. I'm sure others will provide better/more detailed answers, but the first thing to look at would be the DAG file. I'm pretty sure this is >1GB, and I'm also pretty sure it has to be this size to provide the ASIC-resistant memory hardness that makes ASIC-based mining implausible. As such, I think you may struggle to make a lightweight miner. Apr 24, 2017 at 14:08
  • Hi sir. Since I am new to blockchain, can you guide me as where to look for the resources for the same, like the details of DAG and ASIC-based mining. Apr 24, 2017 at 14:11

1 Answer 1

2

The simplistic answer

For a mining client node, the best (i.e. smallest) memory footprint you could hope for would be dictated by the size of the DAG file. As the DAG file is currently over 1GB in size, and will only get bigger, I don't think what you're hoping to achieve is currently possible.


The DAG

A DAG (a Directed Acyclic Graph) is a large dataset created by a version of the Dagger-Hashimoto Algorithm, and which is used by Ethereum's Ethash proof-of-work algorithm (i.e. it's directly used by miners).

More details: What actually is a DAG?

It essentially provides memory-hardness, meaning that mining by ASICs, which are popularly used in Bitcoin mining, is no more favourable than mining with CPUs or GPUs.

More details: By what mechanism are ASIC-based miners made less favourable?

Further details:


Further investigation

You could look into splitting up the DAG file into chunks. I believe this has been discussed in the past, but I don't know what came of it - others may know more about this. See issue #2559 for a related discussion.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.