SplittyDev / cn-miner-rs

A CryptoNight miner written in Rust.
2 stars 2 forks source link

Hi, I have some questions regarding this project #1

Open Joe23232 opened 3 years ago

Joe23232 commented 3 years ago

Hi, I have some questions regarding this project:

  1. Am I able to import it as a library/crate into my own Rust code and integrate it into my own software so I can compile all into a single executable?
  2. Does it support either Beam, Zcash or Monera or any other privacy respecting cryptocurrency?
  3. How efficient is it compared to something like gminer?
  4. Do you guys get a commission from my cryptomining if I were to use this library/crate?
  5. How well maintained is this project? How many people are working on it?
SplittyDev commented 3 years ago

Hi, thanks for your interest in the project!

  1. This is a library, so yes, you'll be able to integrate it into your own software and compile it into your executable.
  2. Since it implements the CryptoNight algorithm, it should be compatible with all coins based on CryptoNight (Monero, Electroneum, Bytecoin, etc.)
  3. I don't really know gminer, so I can't really say whether It offers comparable performance. I tried to use optimized libraries and used some optimization techniques (for example loop unrolling) to achieve great performance, but I'm sure there are more optimizations that could be done.
  4. The library does not include a commission or anything like that, so you'll get 100% of your shares.
  5. I created the library as a personal project and haven't really maintained it in four years now. I'd be very happy to merge contributions though, if you're interested in contributing.

Since I haven't worked on this for a few years now, I'm not really sure how much of it still works. The core algorithm should work fine, but it's possible that some coins changed some parameters of the algorithm and it might not work for those. A little research would be needed in order to find out whether the parameters have changed for some coins.

Also, the Stratum client is - as far as I can remember - not production ready at all. So you could use the library for the CryptoNight algorithm itself, but probably not for actually connecting to a Stratum server.

I hope I've answered all your questions, have a great day!

Joe23232 commented 3 years ago

@SplittyDev

This is a library, so yes, you'll be able to integrate it into your own software and compile it into your executable.

Oh ok cool mate :)

Since it implements the CryptoNight algorithm, it should be compatible with all coins based on CryptoNight (Monero, Electroneum, Bytecoin, etc.)

Would you happen to know if Beam is also part of CryptoNight? Also which cryptocurrency is it easiest to generate money for if you happen to know?

I don't really know gminer, so I can't really say whether It offers comparable performance. I tried to use optimized libraries and used some optimization techniques (for example loop unrolling) to achieve great performance, but I'm sure there are more optimizations that could be done.

I see mate, but since you have mentioned that it hasn't been updated in 4 years time, do you think that there are more useful optimization libraries out there that can be used with your project?

The library does not include a commission or anything like that, so you'll get 100% of your shares.

That sounds great :)

I created the library as a personal project and haven't really maintained it in four years now. I'd be very happy to merge contributions though, if you're interested in contributing.

I wish I could contribute but I am not too sure if I can contribute due to my lack of knowledge and programming skills. However I am more than happy to fund your project based on the amount of money I can get via mining using your project. But since it is a few years old, there may be more optimizations available out there and I was wondering if I could receive assistance in making it more optimized if possible?

Since I haven't worked on this for a few years now, I'm not really sure how much of it still works. The core algorithm should work fine, but it's possible that some coins changed some parameters of the algorithm and it might not work for those. A little research would be needed in order to find out whether the parameters have changed for some coins.

I see thanks mate

Also, the Stratum client is - as far as I can remember - not production ready at all. So you could use the library for the CryptoNight algorithm itself, but probably not for actually connecting to a Stratum server.

What what is Stratum?

I hope I've answered all your questions, have a great day!

I also hope you have a great day as well mate :)

SplittyDev commented 3 years ago

Would you happen to know if Beam is also part of CryptoNight? Also which cryptocurrency is it easiest to generate money for if you happen to know?

Beam is based on a modified Equihash algorithm, so it's not gonna be mineable using this CryptoNight implementation. To be honest, in my opinion making money by mining crypto isn't worth it. Most cryptocurrencies are very hard to mine nowadays and the reward is probably not gonna be very high. It's likely that your electricity costs will be higher than the return you're getting.

Of course profitability heavily depends on the mining mode (pool or solo mining), the cryptocurrency and its price development, the mining difficulty, electricity costs in your area and your mining rig.

I see mate, but since you have mentioned that it hasn't been updated in 4 years time, do you think that there are more useful optimization libraries out there that can be used with your project?

Probably the algorithm would be faster by just updating the library to use the latest versions of all dependencies. Most of them are pretty optimized already.

I wish I could contribute but I am not too sure if I can contribute due to my lack of knowledge and programming skills. However I am more than happy to fund your project based on the amount of money I can get via mining using your project. But since it is a few years old, there may be more optimizations available out there and I was wondering if I could receive assistance in making it more optimized if possible?

If you're not good at programming, I'm afraid it might be pretty hard to get started using this library in the first place. It only implements the core algorithm, it doesn't connect to a mining pool or anything like that. So you'd have to write that part yourself anyway in order to get any use out of it.

What is Stratum?

Stratum is the protocol used for connecting a miner to a mining pool or wallet for solo mining. It basically tells the server that you're there and requests work. The server tells the miner whenever a new block has been found and gives new work to the miner. The miner then generates the hashes and submits them to the server.

Without proper stratum support, you won't be able to connect to a mining pool or solo mining daemon in the first place.

I might be able to implement full stratum support to make this work as a standalone miner, but at the moment I am occupied with other projects, so I can't promise that this will be done anytime soon or even at all.

Joe23232 commented 3 years ago

Hi @SplittyDev

To be honest, in my opinion making money by mining crypto isn't worth it. Most cryptocurrencies are very hard to mine nowadays and the reward is probably not gonna be very high. It's likely that your electricity costs will be higher than the return you're getting.

You may be right but what if I used a cryptocurrency that is not popular? Wouldn't that be beneficial?

Probably the algorithm would be faster by just updating the library to use the latest versions of all dependencies. Most of them are pretty optimized already.

Ah right. But what if it breaks your code as they may have changed the API?

If you're not good at programming, I'm afraid it might be pretty hard to get started using this library in the first place. It only implements the core algorithm, it doesn't connect to a mining pool or anything like that. So you'd have to write that part yourself anyway in order to get any use out of it.

I was wondering if I could get assistance for this?

Stratum is the protocol used for connecting a miner to a mining pool or wallet for solo mining. It basically tells the server that you're there and requests work. The server tells the miner whenever a new block has been found and gives new work to the miner. The miner then generates the hashes and submits them to the server.

I see mate.

I might be able to implement full stratum support to make this work as a standalone miner, but at the moment I am occupied with other projects, so I can't promise that this will be done anytime soon or even at all.

I see and understand. Thanks for everything :)