Supercomputing
|
|
November 09, 2013, 07:57:32 PM |
|
I suspect you are in fact trying to subtly manipulate the markets by stirring up the "IMPENDING GPU MINER" hysteria (again) that serves to create sillyness in the altcoin exchange trollboxes and market instability in general.
I am putting this down to another piss-poor attempt at market manipulation until some code is released and verified as working by other miners.
Haters Gonna HateSorry, the source code is proprietary (IP) closed source. However, I have outlined the exact steps that you need to take to verify the results. Please consult the following documentation for further assistance:The Billion-Mulmod-Per-Second PC http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.150.4576&rep=rep1&type=pdfUsable assembly language for GPUs https://eprint.iacr.org/2012/137.pdf
|
|
|
|
Supercomputing
|
|
November 09, 2013, 09:23:32 PM |
|
My objective is not to code an Nvidia GPU Primecoin miner, that part is functional but not completely optimized. The objective is to find an algorithmic enhancement for reducing the overall run-time complexity. If we keep the same complexity but execute the algorithm faster on the same hardware, I call it an optimization. But if we reduce the overall run-time complexity of the algorithm, I call it a breakthrough. Now with that said, is seems to me that people are more interested in the Nvidia GPU Primecoin miner. But I say, be careful what you ask for, just follow the programming guideline I posted earlier and you will have a working miner that blows away the current high performance CPU miner implementation. Additionally, I know nothing about AMD GPU programming and never owned one, therefore I do not know how powerful they are for multiprecision arithmetic.There are several enhancements which account for the drastic increase in performance over the current CPU implementation:1) Montgomery Reduction is used. 2) The size of the multiprecision arithmetic is fixed. 3) An optimized sieve is running on the GPU. 4) An optimized primorial search is running on the GPU (double SHA-256). 5) An exploitation of the difficulty (Sunny King knows what I am referring to here, just ask Sunny). If you apply the same enhancements to the CPU code, then the gap will close to about 7x in favor for the GPU (Nvidia GTX 580 vs AMD Phenom II X6 1100T) Please note that I am not accepting any donations for the research, the XPMs from GPUs will fully fund the research and the result will be made publically available. Someone from this forum made an attempt to program an Nvidia card, but after looking at the source code( https://github.com/primedigger/primecoin/blob/master/src/cuda/mainkernel.cu), I am surprised that it even made a difference at all.
|
|
|
|
Stinky_Pete
|
|
November 09, 2013, 09:38:47 PM |
|
I am shell shocked about two things that I did not know just a couple of days ago: 1) Primecoin mining is currently more profitable than Bitcoin mining for the same amount of expenses (GTX 580 vs ASIC pricing).
Does that include electricity costs?
|
|
|
|
cryptrol
|
|
November 10, 2013, 07:04:58 PM |
|
5) An exploitation of the difficulty (Sunny King knows what I am referring to here, just ask Sunny).
Sunny ?
|
|
|
|
theskillzdatklls
|
|
November 11, 2013, 07:16:10 AM |
|
Never mined anything before.
Is it possible to [profitably] solo mine with a 2010 iMac with all cores running 24/7 and free electricity?
|
|
|
|
Trillium
|
|
November 11, 2013, 07:34:07 AM |
|
Never mined anything before.
Is it possible to [profitably] solo mine with a 2010 iMac with all cores running 24/7 and free electricity?
Well if you have the hardware (no investment / capital cost) and free electricity (no operational costs) then yes, by definition you are mining with 100% profit. Will you make A LOT of money from it? No. (Probably a few cents or tens of cents per day on average). You'll also want to look at pooled mining.
|
BTC:1AaaAAAAaAAE2L1PXM1x9VDNqvcrfa9He6
|
|
|
Supercomputing
|
|
November 11, 2013, 08:26:31 AM |
|
5) An exploitation of the difficulty (Sunny King knows what I am referring to here, just ask Sunny).
Sunny ? From Sunny King's design document. "Block hash, the value that is embedded in the child block, is derived from hashing the header together with the proof-of-work certificate. This not only prevents the proof-ofwork certificate from being tampered with, but also defeats attempt at generating a single proof-of-work certificate usable on multiple blocks on the block chain, since the block header hash of a descendant block then depends on the certificate itself. Note that, if an attacker generates a different proof-of-work certificate for an existing block, the block would then have a different block hash even though the block content remains the same other than the certificate, and would be accepted to the block chain as a sibling block to the existing block." Unless I completely misunderstood the meaning of that statement, but why would generating a different proof-of-work certificate for an existing block be considered an attack? Which implies two things: 1) The difficulty of that block will be frozen, and you can add as many sibling blocks as you whish, as the probability of finding the next sibling block is not much lower than finding the next block. 2) There is no mechanism in place to prevent spending from the sibling block, double spending attack. Please let me know if I misunderstood something.
|
|
|
|
mikaelh
|
|
November 11, 2013, 10:08:21 AM |
|
5) An exploitation of the difficulty (Sunny King knows what I am referring to here, just ask Sunny).
Sunny ? From Sunny King's design document. "Block hash, the value that is embedded in the child block, is derived from hashing the header together with the proof-of-work certificate. This not only prevents the proof-ofwork certificate from being tampered with, but also defeats attempt at generating a single proof-of-work certificate usable on multiple blocks on the block chain, since the block header hash of a descendant block then depends on the certificate itself. Note that, if an attacker generates a different proof-of-work certificate for an existing block, the block would then have a different block hash even though the block content remains the same other than the certificate, and would be accepted to the block chain as a sibling block to the existing block." Unless I completely misunderstood the meaning of that statement, but why would generating a different proof-of-work certificate for an existing block be considered an attack? Which implies two things: 1) The difficulty of that block will be frozen, and you can add as many sibling blocks as you whish, as the probability of finding the next sibling block is not much lower than finding the next block. 2) There is no mechanism in place to prevent spending from the sibling block, double spending attack. Please let me know if I misunderstood something. I think you have misunderstood the paragraph you quoted. That note is trying to say that the attack wouldn't work. The sibling blocks would all be orphans which makes them useless. Only one of the blocks will be part of the blockchain because its block hash is referenced from the next block in the blockchain. The block cannot be replaced unless you are able to create another block with the same block hash. I think Sunny was trying to say that it's not possible to create such a block in Primecoin even if the attacker finds a different proof-of-work certificate. That's because the certificate (i.e. the prime chain multiplier) is hashed into the block hash. Note that there are two hashes: the block header hash and the block hash. They are defined as follows: blockHeaderHash = HASH(nVersion, hashPrevBlock, hashMerkleRoot, nTime, nBits, nNonce) blockHash = HASH(nVersion, hashPrevBlock, hashMerkleRoot, nTime, nBits, nNonce, bnPrimeChainMultiplier) The block hash is the "official" hash of the block which is referenced in the next block as hashPrevBlock.
|
|
|
|
kactech
Newbie
Offline
Activity: 52
Merit: 0
|
|
November 11, 2013, 11:07:35 AM |
|
@mikaelh Thank you for clarifying, could you also discuss shortly other enhancements pointed by Supercomputing? Not necessarily definitely, just from the perspective of your experience. There are several enhancements which account for the drastic increase in performance over the current CPU implementation: 1) Montgomery Reduction is used. 2) The size of the multiprecision arithmetic is fixed. 3) An optimized sieve is running on the GPU. 4) An optimized primorial search is running on the GPU (double SHA-256).
5) An exploitation of the difficulty (Sunny King knows what I am referring to here, just ask Sunny).
Thanks
|
|
|
|
Supercomputing
|
|
November 11, 2013, 04:05:48 PM |
|
5) An exploitation of the difficulty (Sunny King knows what I am referring to here, just ask Sunny).
Sunny ? From Sunny King's design document. "Block hash, the value that is embedded in the child block, is derived from hashing the header together with the proof-of-work certificate. This not only prevents the proof-ofwork certificate from being tampered with, but also defeats attempt at generating a single proof-of-work certificate usable on multiple blocks on the block chain, since the block header hash of a descendant block then depends on the certificate itself. Note that, if an attacker generates a different proof-of-work certificate for an existing block, the block would then have a different block hash even though the block content remains the same other than the certificate, and would be accepted to the block chain as a sibling block to the existing block." Unless I completely misunderstood the meaning of that statement, but why would generating a different proof-of-work certificate for an existing block be considered an attack? Which implies two things: 1) The difficulty of that block will be frozen, and you can add as many sibling blocks as you whish, as the probability of finding the next sibling block is not much lower than finding the next block. 2) There is no mechanism in place to prevent spending from the sibling block, double spending attack. Please let me know if I misunderstood something. I think you have misunderstood the paragraph you quoted. That note is trying to say that the attack wouldn't work. The sibling blocks would all be orphans which makes them useless. Only one of the blocks will be part of the blockchain because its block hash is referenced from the next block in the blockchain. The block cannot be replaced unless you are able to create another block with the same block hash. I think Sunny was trying to say that it's not possible to create such a block in Primecoin even if the attacker finds a different proof-of-work certificate. That's because the certificate (i.e. the prime chain multiplier) is hashed into the block hash. Note that there are two hashes: the block header hash and the block hash. They are defined as follows: blockHeaderHash = HASH(nVersion, hashPrevBlock, hashMerkleRoot, nTime, nBits, nNonce) blockHash = HASH(nVersion, hashPrevBlock, hashMerkleRoot, nTime, nBits, nNonce, bnPrimeChainMultiplier) The block hash is the "official" hash of the block which is referenced in the next block as hashPrevBlock. Thank you mikaelh, your input is greatly appreciated and it saves me the trouble of going through the source code. Thank you again.
|
|
|
|
theskillzdatklls
|
|
November 11, 2013, 04:13:05 PM |
|
iMac with all cores running 24/7
The thing is going to explode. (i)Macs are extremely bad at handling constant heat. ok, ty, ill change that. Never mined anything before.
Is it possible to [profitably] solo mine with a 2010 iMac with all cores running 24/7 and free electricity?
Well if you have the hardware (no investment / capital cost) and free electricity (no operational costs) then yes, by definition you are mining with 100% profit. Will you make A LOT of money from it? No. (Probably a few cents or tens of cents per day on average). You'll also want to look at pooled mining. sounds pretty bad. ill look into pooled mining, thanks.
|
|
|
|
Brewins
Legendary
Offline
Activity: 1120
Merit: 1000
|
|
November 13, 2013, 05:00:30 PM |
|
anyone got any tips for optimizing shares/s for pooled mining?
|
|
|
|
Sunny King (OP)
Legendary
Offline
Activity: 1205
Merit: 1010
|
|
November 13, 2013, 05:18:10 PM |
|
5) An exploitation of the difficulty (Sunny King knows what I am referring to here, just ask Sunny).
Sunny ? Supercomputing does Fermat test on the last number of a candidate chain first, rather than the first number first. This may improve the performance of Fermat test stage of the miner when fractional difficulty is high. After some discussion we agree that it should be considered a mining optimization rather than an exploit.
|
|
|
|
TrippyPippy
Member
Offline
Activity: 110
Merit: 10
|
|
November 14, 2013, 07:47:13 AM |
|
Hi Guys,
What is the difference between jhPrimeminer-T15-AVX.exe and jhPrimeminer-T15.exe in aerocloud's miner ?
thanks
|
|
|
|
dsattler
Legendary
Offline
Activity: 924
Merit: 1000
|
|
November 14, 2013, 09:32:56 AM |
|
Hi Guys,
What is the difference between jhPrimeminer-T15-AVX.exe and jhPrimeminer-T15.exe in aerocloud's miner ?
thanks
AVX is a feature of modern CPUs, look here: http://en.wikipedia.org/wiki/Advanced_Vector_ExtensionsAccording to AeroCloud, the factor of optimization is rather low (about 5%) and it needs more electrical power! So maybe, it's not worth the effort...
|
Bitcointalk member since 2013!
|
|
|
doof
|
|
November 14, 2013, 10:13:30 AM |
|
Is the proof of work paper still around somewhere? I get 404s on the links
|
|
|
|
|
TrippyPippy
Member
Offline
Activity: 110
Merit: 10
|
|
November 14, 2013, 11:02:06 AM |
|
ok noobie question here.
When solo mining using the primecoin wallet console and command "setgenerate true", if you do find a block where will it be sent ? to what address ?
Thanks for your help in advance.
|
|
|
|
markm
Legendary
Offline
Activity: 3010
Merit: 1121
|
|
November 14, 2013, 11:13:16 AM |
|
The next address in you list of upcoming addresses to use I used, I think.
(The wallet typically creates 100 addresses in advance when created.)
Basically each block it finds, probably including orphans, it mined to another new address you had not yet used.
Some people tell their walelt to generate thousands of addresses up front so they can put the same wallet on multiple machines so that until those pre-generated addresses have been used all the machines will "see" all the blocks mined by any of them. This lets them see from just one machine when some one of their many many machines they have rented or that are part of their botnet or whatever have found a block. (Though it obfuscates which machine it was exactly that found it; they'd have to check the debug.log logs of all the machines to discover which one it was that actually found the block.)
-MarkM-
|
|
|
|
TrippyPippy
Member
Offline
Activity: 110
Merit: 10
|
|
November 14, 2013, 11:21:20 AM |
|
thanks
|
|
|
|
|