Simple plotting process description
-
@k06a have you tried creating the smallest possible plot file and viewing it in a hex editor?
-
@k06a
format unoptimized plot:
[nonce0][nonce1][nonce2]...[nonceX]
each nonce contain 4096 parts by 64 bytes - scoops1 nonce:
[scoop0][scoop1][scoop2]...[scoop4095]([n0s0][n0s1][n0s2]..[n0s4095]) ([n1s0][n1s1][n1s2]..[n1s4095]) ... ([nXs0][nXs1][nXs2]..[nXs4095])for optimize plot we need rewrite order:
for(nonce=0; nonce<X; nonce++) for(scoop=0; scoop<4096; scoop++){ offset = scoop * 64 + nonce*4096*64 write_to_HDD[offset]so, we will have
([n0s0][n1s0][n2s0]..[nXs0]) ([n0s1][n1s1][n2s1]..[nXs1]) ... ([n0s4095][n1s4095][n2s4095]..[nXs4095])
-
@Blago just curious, would it be possible to re-write an individual scoop in an effort to fix a damaged plot file. The idea being it is quicker to fix one scoop than re-plotting an entire drive.
-
@iKnow0 yeahh, but need to find corrupted nonces - and for it we must calculate and compare ALL nonces in plot
-
@Blago but if the miner reported the scoop in every round, then at least you would know in which scoop the error is.
-
@iKnow0 hmm... i think about it...
miner write to log # nonce which reported as corrupted
-
@Blago will mining be able in case of gap in plots? Or second part of plots will not be useful until gap will be filled? So plot files contain no header, file configuration is right in filename?
-
@Blago maybe to store MD5 of your plots and check it time to time?
-
@Blago how do miner understand is file optimised or not? By filename only?
-
@k06a some of my plots - 3 years old and it never been corrupted.
only one thing may corrupt it - plotter (while plotting)filename: ID_StartNonce_Nonces_Stagger
if Nonces = Stagger then plot optimized
-
@Blago what about gaps?
-
@k06a if plotter makes gaps, miner read it as zeroed bytes (or garbage), calculate deadline, send #nonce to the pool, pool calculate it again, got deadline and compare. Then pool send to miner "Your deadline wrong"
p.s. my English too bad for describing whole process.
@luxe help :)
-
@Blago thanks for your message, looks like 1 nonce gap will shrink your mining size.
-
@k06a На русском будет проще рассказать, Антон
-
So for [n0s0], this is a 64 byte word or 512 bits. I think that this value is some algorithm output with inputs nonce, scoop and acct id hashed together?
What is the algorithm?E.G., For scoop 4000 and nonce 120001 and account id 7979631613202555765:
Is the algorithm "4000+120001+7979631613202555765" (string) ==>>sha 512==>>digest ===>>>[n120001,S4000]?
or "12001+4000+7979631613202555765" (string) ==>>sha 512==>>digest ===>>>[n120001,S4000].
or is it "4000+120001+7979631613202555765" (hex addition) ==>>sha 512==>>digest ===>>>[n120001,S4000]?
Or something else?
I think that's what @k06a needs to know how to develop his own optimized plotter.
-
@rds
https://github.com/Blagodarenko/XPlotter/blob/master/Nonce.cpp#L244[n0s0] this is a 64 bytes
do_something("120001+7979631613202555765") ==>>sha 256==>>digest ===>>>[n120001]
then we split each nonce by parts and write them to the file in different places[n120001s0][n120001s1][n120001s2][n120001s3]...[n120001s4095]
https://github.com/Blagodarenko/XPlotter/blob/master/Nonce.cpp#L275
-
@Blago said in Simple plotting process description:
@rds
https://github.com/Blagodarenko/XPlotter/blob/master/Nonce.cpp#L244[n0s0] this is a 64 bytes
do_something("120001+7979631613202555765") ==>>sha 256==>>digest ===>>>[n120001]
then we split each nonce by parts and write them to the file in different places[n120001s0][n120001s1][n120001s2][n120001s3]...[n120001s4095]
https://github.com/Blagodarenko/XPlotter/blob/master/Nonce.cpp#L275
So the digest of sha256 is 256 bits or 32 bytes. So where do the other 32 bytes come from?
Are you saying you split nonce 120001 apart? how?
-
@rds
better to see, than describe
https://ip.bitcointalk.org/?u=http%3A%2F%2Fi.imgur.com%2FalnEGIj.jpg&t=577&c=NWqgoPs7-7AVPAright side
-
@Blago said in Simple plotting process description:
@rds
better to see, than describe
https://ip.bitcointalk.org/?u=http%3A%2F%2Fi.imgur.com%2FalnEGIj.jpg&t=577&c=NWqgoPs7-7AVPAright side
Very nice, thanks
-
@Blago Given the variety of topics covered in this thread, I'll throw mine in - if using the same nonce Algorithm calculation, how is it that clients and pools so drastically disagree on some DL's? Why does a 50 second DL on my miner get rejected as a 50,000Year DL from the pool ? In flight TCP corruption ?

