How is it that concurrent miners do not subvert each other's work?


An analogy for mining would be the following:

You are at a lottery booth. The lottery booth has 1,000 lottery tickets in a bowl (which are always mixed perfectly). There is only one ticket with a prize in the bowl. Every time somebody buys one lottery ticket, the booth owner prints a new ticket and adds it to the bowl, replacing a loser with a new losing ticket, and a winner with a winning ticket, so that there is always 1 winning ticket and 999 losing tickets in the bowl.

Whenever somebody buys a ticket, chances are 1 in 1,000 that he wins.

You might win with your first ticket, but you might win with your 10,000th.

As you already mentioned, every try at finding a new block has an equal chance of being the winning ticket. That means that there is no such thing as "progress towards the block". It either works or it doesn't.

So now, somebody found a block. If people keep mining on the old block, they would have to find two blocks in a row in order...

0 0


AsicBoost speeds up Bitcoin mining in general (for ASICs and CPUs alike) by reducing the frequency of computing one part of the SHA-256 calculation.

A Bitcoin block header is 80 bytes long. It fits in 2 blocks for SHA-256 hashing. It gets hashed into a 32-byte value, then hashed again (1 block) to get the final value that is compared to the threshold.


The conventional way to do Bitcoin mining looks like this:

while True: blockHeader = ... # based on Merkle root and other fields sha256Block0 = sha256Expand(blockHeader[0 : 64]) midState = sh256Compress(sha256InitVector, sha256Block0) for i in range(2**32): # Try nonces blockHeader.nonce = i sha256Block1 = padAndExpand(blockHeader[64 : 80]) singleSha = sh256Compress(midState, sha256Block1) sha256Block2 = padAndExpand(singleSha) doubleSha = sh256Compress(sha256InitVector, sha256Block2) if doubleSha < target: miningSuccessful(blockHeader) #...
0 0

Here is an extremely simplified sketch of the problem, but it should give a pretty good idea of what the problem is.

The data:

This is the hash of the lastest block (shortened to 30 characters):


These are the hashes of a few valid transactions waiting for inclusion (shortened).

5572eca4dd4 db7d0c0b845

And this the hash of one special transaction that you just crafted, which gives 25BTC (the current reward) to yourself:


Building the next block:

Now, let's use a gross approximation of what a new block might look like (the real one uses binary format). It contains the hash of the previous block and the hashes of those 3 transactions:


Now let's do mining by hand! Our goal is to complete this block with a nonce (a piece of garbage) such that the hash of the new block starts with 13 zeros (considering the previous hash, it seems...

0 0

The "scalability issues" for Hashtable are present in exactly the same way in Collections.synchronizedMap(Map) - they use very simple synchronization, which means that only one thread can access the map at the same time.

This is not much of an issue when you have simple inserts and lookups (unless you do it extremely intensively), but becomes a big problem when you need to iterate over the entire Map, which can take a long time for a large Map - while one thread does that, all others have to wait if they want to insert or lookup anything.

The ConcurrentHashMap uses very sophisticated techniques to reduce the need for synchronization and allow parallel read access by multiple threads without synchronization and, more importantly, provides an Iterator that requires no synchronization and even allows the Map to be modified during interation (though it makes no guarantees whether or not elements that were inserted during iteration will be...

0 0

Hello to all here - I am a new member and happy to contribute some information to all.

I have tested the several 11.0 versions with my RIG1:

6 x GTX 1060 (ASUS Turbo) 6GB (OC Mem 10 GHz).
Windows 10: up to date
NVidia Driver: up to date

And I can confirm:

All versions of 11.0 have similar problems. Sometimes the error message is different but in general they all have the same issue. It looks like that the changes in the area of the CUDA search are buggy.

I am a software developer by myself and worked also with CUDA but unfortunately I do not have MS DevStudio 12 so I cannot contribute a bugfix. I tried to migrate the project to MS DevStudio 2017 but that failed for a lot of reasons.

I am now testing the old version: ethminer-0.9.41-genoil-1.1.7 if it has similar problems with overclocked cards and I will report.


Also the version ethminer-0.9.41-genoil-1.1.7 is reporting an CUDA search error
CUDA error in...

0 0

Tip: See my list of the Most Common Mistakes in English. It will teach you how to avoid mis takes with com mas, pre pos i tions, ir reg u lar verbs, and much more (PDF Version).

Learners of English (and native speakers alike) sometimes wonder whether they are supposed to write each other’s or each others’ (or even each others) in phrases like “to hold each other’s hand(s)”. Long story short, the correct spelling is the one used in the previous example, i.e. each other’s. Another example:

We didn’t see each other’s face(s). (correct)

We didn’t see each others’ face(s). (wrong)

This is quite logical. The possessive form in English is formed by adding ’s at the end of a noun, unless it is a plural noun, in which case we write just an apostrophe, e.g. “these teachers’ books” (not “these teachers’s books”). This rules out each others, as the possessive apostrophe must be there.

In the case of “each other”, “other” is in the singular because it...

0 0

Miners are valuable members of the work force that engage in the risky but essential task of extracting minerals and other important substances from the earth. The materials that are harvested are used to provide a number of goods and services to the buying public. In some cases, the miner works with highly technical equipment, and in other situations, he might perform his duties with the same simple tools that have been used for centuries.

Perhaps the most commonly recognized type is the coal miner. Coal mining involves extracting coal from underground mines, a task that is carries a high degree of risk. Historically, few precautions were made to protect these miners safe from physical danger, including respiratory problems. The second half of the 20th century saw a number of reforms in the industry, however, including the addition of protective gear that serves to minimize the chances for ongoing health issues.

Mining in general is a dangerous profession. Much of...

0 0
0 0

For the Discord code, refer to the Discord Integration page.

Codes are given out by berezaa in Twitch streams or on Twitter. On a few occasions, other locations. They usually give Twitch Coins, Unobtainium Crystals (uC), and Mystery Boxes. A few codes even give exclusive items. Most codes eventually expire, and all of them can only be redeemed once. If a server is shut down before an auto-save, items retrieved from the codes are sometimes lost but the codes will still count as used.

NOTE: The MH Wikia does not have authority to fabricate codes. Only berezaa and a handful of other people are capable of doing so. We only specialize to share them.

A Few Rules/Notes:

Once codes expire, they will be removed from the table. Only put the 'Code' and 'Contents'. Extra notes are unnecessary. Feel free to comment on the Replacement to the Codes Comment Section forum post, to notify of new codes, and codes that've become invalid. Make sure the code is...
0 0

Hi everyone,

I've been following ethereum since the very beginning silently. This is my first post. I am not a computer scientist, please bear this in mind when replying. thanks. -I am however a mathematician so feel free to get technical

From the start I was confused as to how to assign ether/gas to contract execution. How do we determine how much computation something took? Surely there are many ways to calculate the same result? ... but nobody seemed to raise this issue so I put it down to my own inexperience.
But now I saw the recent blog post on long range attacks ( ) and this reawakened my question. The example given is instructive:

i = 0
while sha3(i) != 0x8ff5b6afea3c68b6cd68bd429b9b64a708fa2273a93ea9f9e3c763257affee1f:
i = i + 1

one way to solve this is brute force, the other is knowing the answer beforehand. There...

0 0

Due to the fact these two-word combinations sound exactly the same with only the placement of the apostrophe being different, many people aren’t sure which of them is correct. The aim of this article is to de-fog the fogginess surrounding these two (we’ve already done so with

was vs were


further away vs farther away

, and

onto vs on to

). One of these forms is correct, and the other is just plain wrong. Would anyone care to lay bets before we continue by explaining which is which?

“Each” Refers to How Many?

To get the answer we’re looking for, we should begin by looking at the word “each.” It automatically implies that we are talking about one of the following: a single object or person, a group of things, or people that can be regarded as a unit.

To put this more clearly, you wouldn’t use a pluralized word after “each.” You may say “each animal has unique markings,” but you would never say “each animals have unique markings.”...

0 0

Use apache's MaxClients Directive in your httpd configuration (/etc/httpd/conf.d/httpd.conf):

Description: Maximum number of connections that will be processed simultaneously Syntax: MaxClients number Default: See usage for details Context: server config Status: MPM Module: beos, prefork, worker

The MaxClients directive sets the limit on the number of simultaneous requests that will be served. Any connection attempts over the MaxClients limit will normally be queued, up to a number based on the ListenBacklog directive. Once a child process is freed at the end of a different request, the connection will then be serviced.

For non-threaded servers (i.e., prefork), MaxClients translates into the maximum number of child processes that will be launched to serve requests. The default value is 256; to increase it, you must also raise ServerLimit.

For threaded and hybrid servers (e.g. beos or worker) MaxClients restricts the total number of threads that will...

0 0

As teachers, we need to help each other out.

Last week’s blog post was about teaching students when to use other, another, and the other. But confusion over these terms might not stop there. How do we form the possessive—is it each other’s or each others’? And should a singular or plural noun follow the possessive form? Should we use each other or one another? Get prepared for all these potential student questions by brushing up on the rules below.

Each Other’s or Each Others’?

This can be confusing for students, because the rule for possessives is usually ’s for singular count and non-count nouns and s’ for plural count nouns (e.g., one teacher’s desk, two teachers’ desks). However, you should point out to students that each other is treated as a singular pronoun and emphasizes two or more separate people. Each other’s is always correct, and each others’ is never correct. Think of it this way: You would say We talked to each other for hours. You would never...

0 0


I'm considering building a realtime ASP.NET application on IIS6, that'll need to support about 3,000 simultaneous users on a server, each with a keep-alive HTTP connection for "server push."

The HTTP connection will need to stay open for the duration of the user's session, to allow updates to be pushed to the browser in near real time.

My question is, is this technically feasible on IIS6, particularly with the large number of connections? If it's possible, are there any special considerations to get it to work?

Thanks in advance.


Yup, IIS6 can easily handle 3,000 concurrent keep-alive connections, assuming you:

Have sufficient HW resources (like RAM) on the system
Reconfigure the system (i.e. tweak any applicable limits)
Run scalable user software that handles the user load (i.e. uses asynchronous IO, not necessarily multi-threaded, has appropriate caches, etc)

Windows Server 2003 and...

0 0

The most common question regarding a website’s performance is not how fast the website is or how it scales, but something more fundamental:

What should the performance goal be in terms of concurrent users?

Should it be one hundred concurrent users? A thousand? Ten thousand? Does it require one server or a hundred to handle the load?

There’s a good reason for how many times this question comes up: it’s tricky and there’s no definitive answer. If it is a new website it’s anyone’s guess what the demand will be. Even if it is an existing website, web analytics software typically give marketing reports on how many customers were acquired per month or per week, and even a per-day measurement but doesn’t give the numbers required. The reason is the difference between average and instantaneous peak. It doesn’t matter if only 5% of a site’s capacity is used all year if the site was unusable for a critical period. The only thing that matters in terms of protecting your...

0 0