Pages:
Author

Topic: BitShares PTS (formerly ProtoShares) Mandatory Upgrade & Snapshot Announcement - page 46. (Read 218419 times)

hero member
Activity: 695
Merit: 500
Does anyone have a guide on how to make the pool work please?  Noobie miner here

put this in a bat file:

ptsminer_x64 -pooluser=PdDcdWJdXzzKBNzTiVG2DPZuno5o4eMcRG -poolpassword=0 -poolip=54.238.185.113 -poolport=2336 -genproclimit=4

if the miner exe is in the same folder. otherwise instead of "ptsminer_x64" input the complete path to the miner file(i would always add the full path). hf

Should I replace the -pooluser address with my own protoshares address?

Yes Wink
it should look like this (exampel): C:\Users\Pascal\Desktop\ptsminer\ptsminer_x64 -pooluser=PkgvHu9orJ6PRGiCse5VcDKuHuhwJ6sH2H -poolpassword=0 -poolip=54.238.185.113 -poolport=2336 -genproclimit=8

I have it now running and will report back if I get paied^^
hero member
Activity: 518
Merit: 521
I don't know if anyone is still interested, and I hope I am not annoying readers. I will try to describe now the GPU vulnerability with education on technical concepts so that hopefully everyone can readily understand, so there hopefully won't be any doubt for those who desire to know.

First of all, let me describe what I believe the Momentum algorithm is, so we that we can see if we are all discussing the same thing. I will simplify some of the details which don't matter to my point. The Birthday hash algorithm generates a sequence of numbers, with each number being randomly generated (actually pseudo-random but never mind the slight distinction for now) and uniformly distributed over the number range specified.

In other words, we start with some number, then we use a SHA256 hash function on that number to get the next number in the sequence. The SHA256 hash function is applied to each output number over and over to generate a sequence of numbers.

We are looking for a pair of output numbers which are the same. We when find it, then that is the output of the Birthday hash algorithm.

So what is the fastest way to implement this? We must save the numbers in memory as we compute them (from repeated applications of the SHA256), then when we find we have already generated that number because it is already saved, then the hash solution is found.

Our options for saving the numbers as we compute them are to store them in the memory at an array index which is the number, or by storing them in a hash table where the key of the hash table is the number. The latter will use less memory. I will not explain hash tables here, because it is irrelevant to my point below.

The speed of the hash is thus determined by how fast SHA256 is and how fast we can store and lookup numbers from memory (either full random or hash table).

We know SHA256 can be parallelized and accelerated, in fact even some CPUs have accelerated custom logic for doing so. So asymptotically SHA256 will always be faster than the memory accesses in terms of the optimum hardware that can be made given the whole point is to force a use of large memory. I don't think anyone argues this point nor any point I have made above.

Thus the relative speed of the CPU and the GPU (or other custom hardware) is going to depend on the relative speed of the memory access and the level of parallelism that can be applied to the storage and lookup of numbers.

We have two choices for the algorithm. Either we can specify that only the first number of the sequence that is the same is allowed as the solution. In this case, verification can no longer be fast, because verification will also have to store and lookup all the numbers. So if we specify that any number of the sequence that matches is allowed as a solution, then verification can be much faster than when we search for a match, because verification doesn't need to store all the numbers that don't match the number we've told verification will match.

So obviously bytemaster chose the second option, as he needs fast verification. I don't think anyone disputes any of the above.

Let us assume that we can run SHA256 so fast that we can compute 100 candidate numbers asymptotically fast relative to the memory accesses.

However, the second option choice that provides fast verification, also allows us to run numerous simultaneous hardware threads (cores) each will simultaneously store and lookup a different number from the same sequence in the same memory simultaneously.

Now you need to understand the way this works on hardware. While waiting on memory the core will block (meaning it will sleep) and let another core run that isn't waiting on memory.

Random access latency on main memory for both CPU and GPU is very high on the order of several hundred clock cycles. That is an egregious amount of time that a single thread would be sleeping doing nothing if you didn't run simultaneously threads on the same sequence and same memory (i.e. within the same hash instance).

However, if you mix a multi-threaded (parallelized) computation of the SHA256 sequence with simultaneous threads for the memory stores and lookups, then you can asymptotically reduce that computation to 0 time. As well if your simultaneous memory access have collisions in the cache line and memory bus sizes (and don't forget that caches are multi-way mapped into memory so this doesn't just require sequential memory locations), then what happens if that the more hardware threads (cores) you run simultaneously, then the memory latency gets masked away and the underlying memory bandwidth becomes the limit of the speed. This is a fundamental quality of the GPU, and it was designed to have this advantage. If you don't design to defeat it, you won't. Momemtum algorithm does nothing to defeat it.

Since the i7 CPU has at most 8 hardware threads and the GPU has 100s or 1000s of hardware threads, then the GPU can reach its memory bandwidth and the CPU will not even get close to its 20 GBps bandwidth because the CPU has a statistically much lower chance of coherence (collisions) on the accesses. Additionally the GPU main memory bandwidth is up to 10x faster (e.g. 260 GBps for Radeon Tahiti versus 20 GBps for i7).

So the ratio of speed between the GPU and the CPU on this coin is going to be on the order of 260 GBps versus 1 GBps, i.e. two orders-of-magnitude. This is a major fail, since Litecoin is only one order-of-magnitude.

Now someone might counter that GPU cores are not as powerful as i7 cores. True but irrelevant, because the memory latency is the bound here not the computational power per core.

I am open to discussion, questions, and refutations.


.... but by making verification faster than finding a hash, I assert he opened a vulnerability that makes it easy to parallelize the finding of a hash and thus not CPU-only ...
Having a cheap verify function is a must for a proof of work, otherwise loading the blockchain would take forever. BTW, I have yet to see any evidence or proof of concept of your claims. Ranting is ok, especially in this subforum, but bear in mind that for this very same reason, people in here are used to start taking things seriously only when an evidence is provided, not before.

I have already described the algorithm as linked in my prior post. If there are any questions, I will answer when asked.

Anyone who is interested can code it and test it. I am not particularly interested to do so, because I am quite happy if bytemaster gets totally dependent on a non-CPU-only PoW. I have studied all the major PoW altcoins and none of them are CPU-only in my analysis. I don't have time to go proving them all, by implementing them all on GPUs. But I do suppose I will pay someone to do that soon (within months), so it benefits me to let these altcoins waste people's time so that they will then believe me when I later pay the someone like the author of cpuminer (if he is willing) to help me.

Indeed in my deep study, I have come to the conclusion that no coin can be CPU-only and have fast verification. Thus this presents a major problem for both verifying a long blockchain and for dealing with denial-of-service attacks (since the rate of determining if a received transaction or block solution is valid thus decreases). It is possible this is exacerbated for BitShares, because they attempt to do so much more within a block with their market clearing of bid/ask, but I would need to study their code to verify.

I would be happy to describe the algorithm for the GPU attack in more detail after I get back from eating dinner.

Genuine question about the protocol, correct me if I'm wrong anywhere: Bitcoin works well because it takes a huge amount of work to find a block, but only takes one hash to verify that a block is valid. So a wallet can verify thousands of blocks fairly quickly. From what I understand Protoshares works by the same concept, except one Protoshares hash takes many orders of magnitude more work to perform. Does the Protoshares wallet need to perform one hash to verify each block in the network? Seeing how most computers get ~5 hashes per min, wouldn't that take an outrageously long time to verify the block chain once it gets bigger?

bytemaster apparently designed Momentum PoW and didn't use Scrypt for PoW for precisely that reason, but by making verification faster than finding a hash, I assert he opened a vulnerability that makes it easy to parallelize the finding of a hash and thus not CPU-only. See the link to my claim on the bounty and judge for yourself.

And when (if) someone does implement a faster GPU miner for this coin, please kindly acknowledge I was correct. You don't have to tip me anything, the acknowledgement would be more than enough.
jr. member
Activity: 47
Merit: 1

Regarding your question about randomization: do the logfiles show identical hashes on all machines? If not, I'd guess there's sufficient randomization.


I can't find the log/debug files on the linux version...is it active by default?
in with the data folder should be debug.log, by default this is ~/.protoshares/debug.log


So having analyzed the logs, and knowing the miners are using the same pregenerated keys (wallets) to create blocks, and are synced with the same transactions (low txn volume), I think I may be experiencing a huge loss of efficiency.  I have about 250 hashes per minute and am barely making blocks, about 3 over the past 24 hours.

I noticed this repeating string in the logs:

testHash ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Hash Target 0003ffc000000000000000000000000000000000000000000000000000000000

I think every new transaction it reverts to this hash test. Meaning all the clients are performing this has over and over.

1) Am I confused? Is this even a problem?

2) Should I be aiming to change the wallet on each of my machines to unique addresses? Is there an easy command to reset the wallet?

3) Is there another way to avoid redundancy?

If anyone wants to earn a free protoshares block and can help me out send me your skype user over PM.

Thanks.
sr. member
Activity: 252
Merit: 250
Does anyone have a guide on how to make the pool work please?  Noobie miner here

put this in a bat file:

ptsminer_x64 -pooluser=PdDcdWJdXzzKBNzTiVG2DPZuno5o4eMcRG -poolpassword=0 -poolip=54.238.185.113 -poolport=2336 -genproclimit=4

if the miner exe is in the same folder. otherwise instead of "ptsminer_x64" input the complete path to the miner file(i would always add the full path). hf

Thank you
hero member
Activity: 504
Merit: 500
Does anyone have a guide on how to make the pool work please?  Noobie miner here

put this in a bat file:

ptsminer_x64 -pooluser=PdDcdWJdXzzKBNzTiVG2DPZuno5o4eMcRG -poolpassword=0 -poolip=54.238.185.113 -poolport=2336 -genproclimit=4

if the miner exe is in the same folder. otherwise instead of "ptsminer_x64" input the complete path to the miner file(i would always add the full path). hf
sr. member
Activity: 252
Merit: 250
Does anyone have a guide on how to make the pool work please?  Noobie miner here
newbie
Activity: 5
Merit: 0
judging by the posts so far im having some serious luck with mining so far apparently ^_^ got a total of 413PTS so far.
mining on i5 with 12H/m mining using setgenerate -1 seems to give me a bonus 2 H/m
hero member
Activity: 695
Merit: 500
did anyone try the pool yet?

im getting 40% rejects, any idea why that could be?

greets
I've roughly the same amount of rejects, is the source for the miner available anywhere?

A pool, were?!! Do you have a link?


http://54.238.185.113/

Cool, thank you!!!

Now were do I have to put this command "ptsminer -pooluser=PdDcdWJdXzzKBNzTiVG2DPZuno5o4eMcRG -poolpassword=0 -poolip=54.238.185.113 -poolport=2336 -genproclimit=4" ? I tryed the command line and that was obviosly not the right place...do I have to add it in my . bat file ?
hero member
Activity: 504
Merit: 500
did anyone try the pool yet?

im getting 40% rejects, any idea why that could be?

greets
I've roughly the same amount of rejects, is the source for the miner available anywhere?

A pool, were?!! Do you have a link?


http://54.238.185.113/
hero member
Activity: 695
Merit: 500
did anyone try the pool yet?

im getting 40% rejects, any idea why that could be?

greets
I've roughly the same amount of rejects, is the source for the miner available anywhere?

A pool, were?!! Do you have a link?
sr. member
Activity: 280
Merit: 250
did anyone try the pool yet?

im getting 40% rejects, any idea why that could be?

greets
I've roughly the same amount of rejects, is the source for the miner available anywhere?
hero member
Activity: 504
Merit: 500
did anyone try the pool yet?

im getting 40% rejects, any idea why that could be?

greets
hero member
Activity: 695
Merit: 500
Guys, have a question:
When I would run the client on  ubuntu, can I then use 8 cores at once? OR do I have to do the same 2x with setgenerate true 4 ?
If it were so, were would I find the ubuntu version and waht do I have to do to get it runing?
Thanks Smiley
sr. member
Activity: 280
Merit: 250

Regarding your question about randomization: do the logfiles show identical hashes on all machines? If not, I'd guess there's sufficient randomization.


I can't find the log/debug files on the linux version...is it active by default?
in with the data folder should be debug.log, by default this is ~/.protoshares/debug.log
legendary
Activity: 980
Merit: 1000
Need a campaign manager? PM me
I had over 300 PTS evaporate on my computer.   I had a power outage and I guess my wallet got corrupted.   I tried -salvage wallet.  Any suggestions?

I just got an unconfirmed mine reward, was stuck on sync, decided to restart the wallet, resync, 0.00 in the wallet Sad   grrrrrrrrrrrrrr

Happened to me thrice. The wallet goes out of sync on its own and any mined block after that is useless.

I posted in the giveaway thread and got nothing either.
jr. member
Activity: 47
Merit: 1

Regarding your question about randomization: do the logfiles show identical hashes on all machines? If not, I'd guess there's sufficient randomization.


I can't find the log/debug files on the linux version...is it active by default?
full member
Activity: 213
Merit: 100
So I don't know, maybe the big servers are just not good at this coin
Perhaps run some memory benchmarks on the two.
I wonder if ECC (assuming those servers have it) could add some latency?

You could be right.  My i5 seems to get gaining blocks better then my Xeon with ECC
I'm having the opposite, by Xeon's with ECC are the only ones getting blocks (3). Thus far, nothing valid on my i5 or i7. But please let us know if your benchmarking turns up anything interesting.
sr. member
Activity: 252
Merit: 250
So I don't know, maybe the big servers are just not good at this coin
Perhaps run some memory benchmarks on the two.
I wonder if ECC (assuming those servers have it) could add some latency?

You could be right.  My i5 seems to get gaining blocks better then my Xeon with ECC
legendary
Activity: 2940
Merit: 1090
Yeah my powerful dedicated servers out on the net are still doing poorly compared to some of the crappy old core two duos here at home. Its a crapshoot/lottery.

-MarkM-


Do you think this is just due to the diff , stales and the luck this early in Markm ?

I don't know, some posts have indicated that hyperthreads or hardware threads or whatever it is that makes four real cores get seen as an talked about as eight cores or threads might by a problem. But, my actual hashes per minute is shown as more than twice as many on those boxes as on any boxes here at home. The posts about the type of core or thread didn't mention whether the problems they are about would leave hashes per minute high while not really finding blocks or would make the hashes per mintue low so that I'd see the machines are not really performing well.

I am though starting to consider putting those boxes back onto primecoin and doing protoshares only at home because still the home machines seem to do better than the seemingly (according to hashes per minute readout) better remote servers. The stuff people said about latency/connections also should make the remote servers better than my home boxes as the home boxes have no incoming ports so only get to go up to 8 connections whereas the remote ones have like 120 connections or so. Plus my home line is no-where near the bandwidth the remote servers have.

So I don't know, maybe the big servers are just not good at this coin despite supposedly higher hashes per minute, whereas for primecoin all the boxes here at home went a week or two without finding any blocks while the remote servers keep on finding them (not fast, and likely not enough to pay for the servers, but the servers are paid for a year up front anyway so might as well let them pay a little of their cost.)

-MarkM-
sr. member
Activity: 252
Merit: 250
Guys, is there a command in the windows wallet to make it use two processors rather then two wallets?
Pages:
Jump to: