Because the devcoin difficulty is lower than the bitcoin difficulty, miners can switch in and out of the chain, which means the block generation rate varies wildly. To fix this problem, the difficulty can be determined with a continous average rather a step function, and it can calculated over one day instead of two weeks. This will lead to greater daily variation than bitcoin because it is being averaged over a small time; but it would be a much smaller variation than the current factor of more than two as a miner switches in and out. The original code follows:

While this would fix the step change difficulty problem, would this create another other problem in turn?

Bitcoin difficulty change is based on 2016 blocks generation rate. Two weeks - is just a milestone for averaging, but not an averaging interval.But the diffuculty change for daily average (or 144 blocks as 144*14=2016) can be set up much smaller then bitcoins 25-400%. Say - 10% increase/decrease based on daily average. So in two weeks we can get 22%-379% difficulty change rate (approximatelly) which is close to bitcoin but much more flexible.Namecoin have terrible difficulty problem due 2016 diffuculty averaging interval. Take a look at Namecoin next difficulty. Current generation rate is about 12% of required and next difficulty change is projected to early November. So namecoin have less then one block per hour! And this will last for several months.

Two weeks - is just a milestone for averaging, but not an averaging interval.

Looking at the following code:

Code:

// Go back by what we want to be 14 days worth of blocks const CBlockIndex* pindexFirst = pindexLast; for (int i = 0; pindexFirst && i < nInterval-1; i++) pindexFirst = pindexFirst->pprev;

it does seem like it is averaging over nInterval, which is 2,016 or two weeks on average.

Quote

But the diffuculty change for daily average (or 144 blocks as 144*14=2016) can be set up much smaller then bitcoins 25-400%. Say - 10% increase/decrease based on daily average. So in two weeks we can get 22%-379% difficulty change rate (approximatelly) which is close to bitcoin but much more flexible.

I considered that, but it would mean further code changes, and I want to make the minimum amount of code changes so that there is the least possible chance of something unexpected happening. I think the only time it ever ran into the factor of four change is at the very beginning intervals, once it's going the difficulty changes are smaller. Also, with the code change the difficulty change is now smoothed, so there would only be a difficulty change of at most a few percent per block anyways. The factor of four limit could actually be removed entirely, but I don't want to yet in order to minimize the code change.

Quote

Namecoin have terrible difficulty problem due 2016 diffuculty averaging interval. Take a look at Namecoin next difficulty. Current generation rate is about 12% of required and next difficulty change is projected to early November. So namecoin have less then one block per hour! And this will last for several months.

Indeed, that's why I'm making the change now. If ever there is a spike in devcoin generation, after that we would have to wait months for the generation rate to normalize. Once this code change is in place, spikes would be smoothed out within a few days.

When the devcoin bounties were first posted, I made them similar in value to other bounties I've seen posted, which were small. However, after getting used to devcoin, I realized that with 90% of generation going to bounties and developers, there's no need to be stingy anymore.

So I'm adding 1/5 of a share per 100,000 DVC bounty for bounties under one million. For bounties over one million I'm adding one share per five million bounty. I'm only adding one share per five million for the big bounties because if there are many large bounties that would drain the generation, if it turns out that few large bounties are being awarded the share for large bounties will be increased further.

Once the receiver file is checked, then it would be uploaded by the receiver file administrators.

On the account file, Mark and I are general administrators and get a share for that. Jackjack is busy with other stuff and doesn't have much time to be an administrator, so he is only a file administrator, who posts the receiver file at a website, and gets 2/5 of a share for that. Jackjack gets an additional one share bounty for making the devcoin block explorer.

I've also added informative bounties for people who post useful stuff (1/5 of a share) and for people who help develop devcoin in extra ways (2/5 of share). Twobits posted that curl would be best for downloading from https sites, I tried that and it works well and has been added to devcoin (1/5 share). Shattienator posted that namecoin is down to 12% of the required hash rate (1/5 share), and he made permanent devcoin nodes (2/5 share).

Edit: As of Aug 2012, there are enough permanent nodes, so there will not be bounties for any new permanent nodes.

Caston, Jackjack, Twobits and Shattienator also received the extra 1/5 per 100,000 DVC for the installation posts.

to see that your donation address is correct. Once round 3 starts, at block 12,000, that donation address will start receiving lots of devcoins. At the time of this writing, the minimum round 2 share is 6,660,000 DVC. If more bounties are awarded or developers added that share will be smaller, so that is just a ballpark share value.

The switchover is at block 10,700. Because this changes the network difficulty, everyone must update devcoin before then. If someone does not, their client or miner will not work properly after that block. At the time of this writing, the devcoin block is about 9,000, so there are roughly two weeks to go before the switchover. Please update your client and/or miner as soon as possible, please don't wait until the last minute.

Below is the devcoin development plan for the next several months. When the block number is followed by a minus sign, that means that the task should be completed by then. When the block number is followed by a plus sign, that means the task will probably be started after then.

Everyone on the account 3 file will get their share of devcoins starting at block 12,000 and ending at block 16,000. There are 27 shares and 4,000 blocks, so each share is a minimum of 148 blocks each giving 45,000 devcoins to the receivers, for a minimum of 6,660,000 devcoins. The fractional shares are worth a minimum of 6,660,000 devcoins devided by the number of receivers in that line. So for example in the line:1QFNbLgpFKwFYKLNc9XkYbzgCryd3XYfuX,1QFNbLgpFKwFYKLNc9XkYbzgCryd3XYfuX,1M1BzQBpb8sbCuNzBTaae9PBdvjLthVrbR,1M1BzQBpb8sbCuNzBTaae9PBdvjLthVrbR

the address 1QFN.. will get a minimum of 2 / 4 * 6,660,000 = 3,330,000 devcoins for that distribution line and address 1M1B.. will also get a minimum of 3,330,000 devcoins. The reason it is divided four ways even though the award was two fifths of a share in the account file is that the genereceiver.py script fills the distribution lines as evenly as possible up to the share denominator (5 in this case). In this case because there were 12 / 5 fractional shares to distribute, it divided them into 3 lines of 4. In other words, when there is a fractional share bounty awarded, the bounty is at least the fractional share, it could be more and was in round 3.

The round 4 receiver file will be generated and posted at around block 13,000. Any new bounties awarded between now and then will be in the round 4 file.

Ah, I had said earlier I would provide a windows binary when/if the use of python for https was resolved. That was done, and I did build the binary, but looks like I forgot to post about it here after I did so.

The difficulty steps are starting because there was a power miner, and the oscillations will continue because the new difficulty is based off the last difficulty rather than the average difficulty. I'll try to make a code change within a couple of days.

Below is updated code for GetNextWorkRequired which uses average difficulty to avoid difficulty oscillations and the median time to resist the timestamp attack. Please look it over and post if there are any errors.

The switchover is at block 10,800. Because this changes the network difficulty, everyone must update devcoin before then. If someone does not, their client or miner will not work properly after that block. At the time of this writing, the devcoin block is 10,704, the difficulty is 7,203 and will decrease, so it is maybe several days to go before the switchover. Please update your client and/or miner as soon as possible, please don't wait until the last minute.

Now that the difficulty is so high that the interval is more than a day, the difficulty change will now reverse, decreasing exponentially, down to the starting minimum of one. So block 10705 will take on average a few days to find, then block 10706 will take a day, then block 10707 will take six hours, and so on. Because of the continuing exponential decrease, all the next hundred blocks until 10800 will take about three hours.

When I wrote the smooth block code, I didn't realize that because I was using the last block difficulty the system would go into an oscillation. With the new code, because it's using the average difficulty, the system should narrow down onto the correct difficulty.

please mine devcoins for the next few days, even though the 10705 block will take a few days to get. After that, since the difficulty will drop quickly, the next blocks will be easier to get and you'll get a portion of the roughly ninety cheap blocks between 10710 and 10800. Afterwards, the difficulty should narrow down and we can get on with using devcoin to fund open source developers and projects.

Thank you to whoever mined the really difficult blocks 10705 through 10707. To thank those miners, the miner of block 10705 will get 3/5 share of round 4, the miner of block 10706 will get 2/5 of a share and the miner of block 10707 will get 1/5 of a share. The difficulty is now increasing and hopefully by around block 11400 the block interval will approach ten minutes.

Also, since no extra big bounties have been awarded, the big bounties can be enlarged, so 4 shares for what used to be a 5 million devcoin bounty. So Jackjack will get a total of 4 shares for the devcoin block explorer, since he's already received two, he'll get two more in round 4.

Shattienator gets 1/5 of a share for each of his latest two informative posts. Twobits gets 2/5 of a share for the windows devcoin version.