If you know C, you should already be able to see how ridiculous most of the code is. Echo is really bad.
I'm fighting with priorities on a daily basis, but I'll take a look at it soon. You talking about both the AMD and NVidia version here? They were created by different people as far as I know.
|
|
|
No problem. The OpenCL is still slow, the current algorithm can be implemented a lot better, even if not changed.
Well, I don't think the current algorithm needs to be changed at the core, except to get rid of inefficiencies or to make the "pool-prevention"-mechanism stronger (which is certainly necessary). If you have any ideas, let us know! More splitting of the kernels, replacing most of the X11 code. I think the AMD compiler will derp out of some kernels are seperated, but more can be without error. One of these days, I'll need to dive into GPU/ OpenCL programming too... it giggity-geeks the hell out of me already, lol!
|
|
|
No problem. The OpenCL is still slow, the current algorithm can be implemented a lot better, even if not changed.
Well, I don't think the current algorithm needs to be changed at the core, except to get rid of inefficiencies or to make the "pool-prevention"-mechanism stronger (which is certainly necessary). If you have any ideas, let us know!
|
|
|
If it was an error, it wouldn't get the right hash. It's correct.
I meant to say "bug", not error, ofcourse. Not a bug - if I change/remove it, wrong hashes. well, if - as you say - it causes a horrible inefficiency, then it's a bug in my book. Hey thanks, that you take your time to look into this BTW.
|
|
|
Mining optimization meaning the current algo?
Wait, let's first further analyze this. So you are saying we have about 3000 unnecessary SHA256 calculations per second, right? On what GPU with what settings are you getting those values? Not per second. PER HASH. I'm looking at the OpenCL code, it's right there. ok, I'm only looking at the in-wallet CPU miner code, probably it's just an error in the OpenCL version? Can you point me to the line in the sourcecode of the OpenCL version please.
|
|
|
Mining optimization meaning the current algo?
Yes, but wait, let's first further analyze this. So you are saying we have about 3000 unnecessary SHA256 calculations per second, right? On what GPU with what settings are you getting those values?
|
|
|
Why over 3000 SHA256 hashes were used, I'll never know. What's the URL for Slack?
Yeah, I'm sure mr.spread's mining algo can be optimized. The reason we use a little SHA256 in our algo is because the miner has to provide a hashWholeBlock value (to prove he himself had first knowledge about the block content, called POK "Proof Of Knowledge" in the sourcecode), which ofcourse is derived thru a common double SHA256, and which has to be recalculated whenever ANYTHING in the block changes (timestamp, nonce (but only every 64 nonces), txs, etc...) It's explained in mr. spread's whitepaper : http://www.spreadcoin.info/downloads/SpreadCoin-WhitePaper.pdf(which admittedly is a little bit cryptic and not using the "clearest" english... I'm working on a more readable whitepaper version when servicenodes have progressed a little bit) No, I know that. What I don't know is why you need 3000 goddamned iterations. I'm not sure about that either. Mr. Spread uses the hashPrevBlock (which is known and stays the same while we hash) to fill up the padding he's using to construct a complete MAX SIZE block which is then used to create the hashWholeBlock value. So you probably assume that it would be enough if we derived the hashWholeBlock just once after a miner has found a solution (since hashWholeBlock is not part of the actual POW). But I'm not sure if we are not missing something important here. I wouldn't mind if a mining specialist like you takes a close look at it. Nope. There is ZERO reason to hash the same data that many times. It's barbaric overkill. I'm currently occupied with servicenode development, and I was going to look into mining optimization only after that. But if you want to give it a try and optimize the mining code, you are highly welcomed, and I'm sure the community is going to reward your efforts. BTW, nobody doubts that mr. spread's code can be optimized. He left us in freaking mid-air.
|
|
|
Why over 3000 SHA256 hashes were used, I'll never know. What's the URL for Slack?
Yeah, I'm sure mr.spread's mining algo can be optimized. The reason we use a little SHA256 in our algo is because the miner has to provide a hashWholeBlock value (to prove he himself had first knowledge about the block content, called POK "Proof Of Knowledge" in the sourcecode), which ofcourse is derived thru a common double SHA256, and which has to be recalculated whenever ANYTHING in the block changes (timestamp, nonce (but only every 64 nonces), txs, etc...) It's explained in mr. spread's whitepaper : http://www.spreadcoin.info/downloads/SpreadCoin-WhitePaper.pdf(which admittedly is a little bit cryptic and not using the "clearest" english... I'm working on a more readable whitepaper version when servicenodes have progressed a little bit) No, I know that. What I don't know is why you need 3000 goddamned iterations. I'm not sure about that either. Mr. Spread uses the hashPrevBlock (which is known and stays the same while we hash) to fill up the padding he's using to construct a complete MAX SIZE block which is then run thru doubleSHA256 to create the hashWholeBlock value. So you probably assume that it would be enough if we derived the hashWholeBlock just once after a miner has found a solution (since hashWholeBlock is not part of the actual POW). But I'm not sure if we are not missing something important here. I wouldn't mind if a mining specialist like you takes a close look at it.
|
|
|
Why over 3000 SHA256 hashes were used, I'll never know. What's the URL for Slack?
Yeah, I'm sure mr.spread's mining algo can be optimized. The reason we use a little SHA256 in our algo is because the miner has to provide a hashWholeBlock value (to prove he himself had first knowledge about the block content, called POK "Proof Of Knowledge" in the sourcecode https://github.com/spreadcoin/spreadcoin/blob/master/src/main.cpp#L1529 ), which ofcourse is derived thru a common double SHA256, and which has to be recalculated whenever ANYTHING in the block changes (timestamp, nonce (but only every 64 nonces), txs, etc...) It's explained in mr. spread's whitepaper : http://www.spreadcoin.info/downloads/SpreadCoin-WhitePaper.pdf(which admittedly is a little bit cryptic and not using the "clearest" english... I'm working on a more readable whitepaper version when servicenodes have progressed a little bit)
|
|
|
hm, quite curious, if you use the duckduckgo search engine, you get all the right results for spreadcoin, including recent price, etc: While when you use google, the results are pretty lame: we only come in at rank 4, and there is no price mentioned. I continue to dislike google more and more with every passing day... lol
|
|
|
Hey the price jumped up a little. Good. Lets hope it keeps increasing. If there was a progress bar for servicenodes what percentage would it be at? 10%?
If I were forced to estimate I would say approximately 35% Ah, awesome! Just wondering, when did the progress start? Was it 2 months after Mr. spread left or was it like 4 months ago? well, last months don't really count, since I didn't have much time to work on anything. Since beginning of november I can concentrate much more on spreadcoin. So... Stay tuned!
|
|
|
Hey the price jumped up a little. Good. Lets hope it keeps increasing. If there was a progress bar for servicenodes what percentage would it be at? 10%?
If I were forced to estimate I would say approximately 35%
|
|
|
Any news on service nodes?
Working on them on a daily basis!
|
|
|
so the naysayers have a field day - and so have their say ...
Well, naysayers gonna naysay! Enjoy low prices as long as you can.
|
|
|
B'cos development diverted away from Service Nodes?
Still top priority. Yep, nothing has changed!
|
|
|
Small update. I made some major steps in the blockexplorer, will not take much longer Teaser: also, while exploring the code, I did have an idea... maybe we can use this as a feature for an upcoming version. Currently all cryptocoins use automatically generated change addresses for all their transactions. This often confuses the shit out of people, and can have quite unforseen consequences. I want to explore what happens when people have more freedom/control and can decide to tell the wallet that it should send the change back to the same address (or one of the inputs)... so that no change addresses are generated. There are some interesting remarks in the posts and comments here: http://bitcoin.stackexchange.com/questions/736/how-does-change-work-in-a-bitcoin-transactionhttp://bitcoin.stackexchange.com/questions/1629/why-does-bitcoin-send-the-change-to-a-different-addresshttp://bitzuma.com/posts/five-ways-to-lose-money-with-bitcoin-change-addresses/It's scary how many people have already lost money because of those auto-change addresses... I think sometime in the near future I'll create a patch that gives the user the power to decide: Do I want to use automatically generated change addresses or not?(People will be able to switch auto-generated change addresses on and off, as they see fit.) This will also allow people to use their paperwallet for a quick payment, without having to fear where the change goes. but that's just an idea to explore, something that would give people more control about what actually happens during the transaction.Stay tuned, we'll create a testnet version for this soon ... (not gonna experiment with real SPR here obviously)
|
|
|
@devs
Nice piece of work on the work miners have to carry out once they solve a block. It's actually a rather neat idea. And its something I didn't really know.
Looking forward to the block explorer.
Thanks. Still exploring it, you can expect an updated more in-depth whitepaper soon. Blockexplorer is underway.
|
|
|
The current block size is 200000 Bytes.
At what point is it worth looking at increasing that?
We can increase it with the next fork! Maybe by 10x
|
|
|
|