Author

Topic: Ravencoin mining software development? (Read 370 times)

full member
Activity: 1281
Merit: 141
November 03, 2022, 08:25:20 AM
#11
I see you are well versed with this issue and perhaps you do not need the help of professionals. But if you suddenly want to turn to specialists, I, as an experienced miner, would recommend Andersen. I think Andersen is a great solution for those who are looking for a custom miner software development solution. It is one of the most popular options available, and it has a lot to offer in terms of features and flexibility.

Why you responding to 4 year old posts? 
brand new
Activity: 0
Merit: 0
November 03, 2022, 05:33:08 AM
#10
I see you are well versed with this issue and perhaps you do not need the help of professionals. But if you suddenly want to turn to specialists, I, as an experienced miner, would recommend Andersen. I think Andersen is a great solution for those who are looking for a custom miner software development solution. It is one of the most popular options available, and it has a lot to offer in terms of features and flexibility.
newbie
Activity: 1
Merit: 0
November 22, 2018, 04:06:36 PM
#9
Any attempt to produce an X16R miner from white papers and first principles will fail 100%.  If you are new to mining algorithms you must realize that every mining algorithm has within it a tremendous amount of tribal knowledge.  Various bit widths, round constants, parameters, conventions, endianness, all changed or modified from original algorithm specifications without documentation of any kind.  Mining algorithms have been developed and tweaked from earlier code, which was itself tweaked from earlier code, and so on.  SHA-3 refers to a specific and final Keccak variant after several revisions by the original development team.  No crypto algorithm actually uses SHA-3, they use what they call 'Keccak' which is an earlier version of that specification, and different crypto algorithms use different variants of Keccak based on different papers published on different dates.  There is simply no hope to make a working miner without starting with existing open source code that works.

That makes sense. I'm following source code now for the mining stuff and writing the Statum code myself using various documents. I've gotten that to work and I'm now writing the mining code.
legendary
Activity: 1638
Merit: 1046
November 21, 2018, 02:22:28 AM
#6
Ravencoin coin mining is currently mined on video cards using the following programs:
sgminer-x16r;
RavenMiner;
ccminer;
Z-Enemy-CUDA;
T-Rex.
Most of them are open source. You can take them as an example for your program.

I'm curently looking at the source for RavenMiner but I'll check those out too. Smiley

You can try the Z-enemy it gives me higher hashrate compared to other mining software.

You can find the z-enemy here in the forum.
You can check their official thread here https://bitcointalksearch.org/topic/zealotenemy-z-enemy-nvidia-gpu-miner-ver262-kawpow-ravencoin-3378390
copper member
Activity: 166
Merit: 84
November 20, 2018, 11:57:33 PM
#5
Any attempt to produce an X16R miner from white papers and first principles will fail 100%.  If you are new to mining algorithms you must realize that every mining algorithm has within it a tremendous amount of tribal knowledge.  Various bit widths, round constants, parameters, conventions, endianness, all changed or modified from original algorithm specifications without documentation of any kind.  Mining algorithms have been developed and tweaked from earlier code, which was itself tweaked from earlier code, and so on.  SHA-3 refers to a specific and final Keccak variant after several revisions by the original development team.  No crypto algorithm actually uses SHA-3, they use what they call 'Keccak' which is an earlier version of that specification, and different crypto algorithms use different variants of Keccak based on different papers published on different dates.  There is simply no hope to make a working miner without starting with existing open source code that works.



member
Activity: 728
Merit: 10
November 20, 2018, 01:58:40 PM
#4
Ravencoin coin mining is currently mined on video cards using the following programs:
sgminer-x16r;
RavenMiner;
ccminer;
Z-Enemy-CUDA;
T-Rex.
Most of them are open source. You can take them as an example for your program.
member
Activity: 621
Merit: 21
November 18, 2018, 07:06:33 AM
#3
Ravencoin code works on the PoW consensus algorithm and the x16r cryptographic algorithm, which is a combination of 16 hash functions, the order of which constantly changes depending on the hash of the previous block (its last 8 bytes are taken into account).
Ravencoin is using following hash algorithms:
  • blake;
    bmw;
    groestl;
    jh;
    Keccak;
    Skein;
    Luffa;
    Cubehash;
    Shavite;
    Simd;
    Echo;
    Hamsi;
    Fugue;
    Shabal;
    Whirlpool;
    sha512.
The set of hash functions are currently identical to the X15 algorithm with the addition of SHA512. In the future the algorithms can be modified and extended to protect against ASICs.
sr. member
Activity: 966
Merit: 359
👉MINING-BIOS.eu💲⛏
newbie
Activity: 1
Merit: 0
November 17, 2018, 03:01:10 PM
#1
I'm new to this forum. If this isn't the right place to post this I apologize. Under the Bitcoin section there was something for software development, but this isn't really Bitcoin related.

As a project, I want to write a Ravencoin (X16R) miner. I've been working on this by myself for a while now, but I'm getting nowhere. Turns out it's very hard to find documentation for this. What I've gathered is that I need to write the networking (Stratum) code to communicate with the pool and the actual mining code. The Stratum stuff I can do, it's the mining that gets me.

What I understand so far:
In Bitcoin, what you're doing is double hashing the 80 byte (I think) block header, changing the nonce and, once that overflows, the coinbase transaction (and some bits of the version?). You do this until the hash ends with or begins with a certain amount of zeros. You also build a branch of transactions over and over if you change the coinbase. Am I correct so far?

With Raven, there are 16 hashing algorithms, that much is clear. Looking them up they're all just variants of SHA3. The last 8 bytes of the previous hash are supposed to determine which you use.


Other than that, I'm not sure where to start. I want to do this from scratch if possible, only minimally looking at other's source code. I'm doing this in C# other than GPU mining code when I get to that (OpenCL/CUDA are in C++ or C, correct?). I'm adept at writing C# and I know a little C++.

Should I start with a different algorithm (like Bitcoin's SHA256) before I dive right into Raven?

Are there articles I can read or something that I'm not seeing? If anyone can provide some sort of insight I would appreciate it. Thanks! Smiley
Jump to: