Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove nonce restriction in block headers with hard fork #50

Closed
domob1812 opened this issue Jul 13, 2018 · 2 comments
Closed

Remove nonce restriction in block headers with hard fork #50

domob1812 opened this issue Jul 13, 2018 · 2 comments
Assignees
Milestone

Comments

@domob1812
Copy link
Collaborator

Currently, the consensus rule is that the nNonce field in the actual block header (not the one used for PoW) must be set to zero. We introduced this restriction to make sure that we can put the field to planned use later as necessary.

As it turns out, it will be beneficial to remove this restriction - this allows miners using the Stratum protocol to use the field as extra nonce in the protocol. With this, a proper pool for Neoscrypt miners could be set up (merged mining is not affected).

Thus, we should remove this restriction together with the planned hard fork that will update the coin supply (#40).

@domob1812 domob1812 added this to the 1.1 milestone Oct 17, 2018
domob1812 added a commit that referenced this issue Oct 17, 2018
This implements a hard fork scheduled at certain heights (500 on regtest,
12000 on testnet and not yet active on mainnet) that allows non-zero
nonce values in the main block header (not the fake header).  This solves
#50.

Forks are added to Consensus::Params similar to how they are handled in
Huntercoin.  For now, there's only this one, but there will likely be
more in the future; for instance, to change the standalone mining
algorithm or when we implement ephemeral timestamps.

The created POST_ICO fork will contain more things in the future, namely
a change to the block reward and block interval as described in
#40.
@domob1812
Copy link
Collaborator Author

This was implemented in 89f0ad2 on the fork branch. I create a pull request and merge it to master together with the changes for #40.

@domob1812 domob1812 self-assigned this Oct 17, 2018
domob1812 added a commit that referenced this issue Nov 4, 2018
This implements a hard fork scheduled at certain heights (500 on regtest,
12000 on testnet and not yet active on mainnet) that allows non-zero
nonce values in the main block header (not the fake header).  This solves
#50.

Forks are added to Consensus::Params similar to how they are handled in
Huntercoin.  For now, there's only this one, but there will likely be
more in the future; for instance, to change the standalone mining
algorithm or when we implement ephemeral timestamps.

The created POST_ICO fork will contain more things in the future, namely
a change to the block reward and block interval as described in
#40.
domob1812 added a commit that referenced this issue Nov 5, 2018
This implements a hard fork scheduled at certain heights (500 on regtest,
12000 on testnet and not yet active on mainnet) that allows non-zero
nonce values in the main block header (not the fake header).  This solves
#50.

Forks are added to Consensus::Params similar to how they are handled in
Huntercoin.  For now, there's only this one, but there will likely be
more in the future; for instance, to change the standalone mining
algorithm or when we implement ephemeral timestamps.

The created POST_ICO fork will contain more things in the future, namely
a change to the block reward and block interval as described in
#40.
domob1812 added a commit that referenced this issue Nov 6, 2018
This implements a hard fork scheduled at certain heights (500 on regtest,
1M on testnet and mainnet for now, will be changed) that allows non-zero
nonce values in the main block header (not the fake header).  This solves
#50.

Forks are added to Consensus::Params similar to how they are handled in
Huntercoin.  For now, there's only this one, but there will likely be
more in the future; for instance, to change the standalone mining
algorithm or when we implement ephemeral timestamps.

The created POST_ICO fork will contain more things in the future, namely
a change to the block reward and block interval as described in
#40.
domob1812 added a commit that referenced this issue Nov 6, 2018
356be12 Set POST_ICO fork for testnet. (Daniel Kraft)
5752067 Increase block reward with POST_ICO fork. (Daniel Kraft)
dd40da9 Make block target spacing fork-able. (Daniel Kraft)
d7f7e84 Allow non-zero nonce with POST_ICO fork. (Daniel Kraft)

Pull request description:

  This implements the planned "post ICO" hard fork.  For now, it is scheduled at height 500 on regtest, 11k on testnet and 1M on mainnet.  The mainnet height will be defined later after a (hopefully) successful activation on testnet.

  This changes three things:

  1. The nonce values of main block headers no longer need to be zero (#50).
  2. The block intervals are changed and made algorithm-dependent:  Neoscrypt targets 40s and SHA-256d two minutes after the fork (for an average that is still 30s per block).  See #67 for the discussion.
  3. The block rewards are increased to 10 CHI on testnet and mainnet after the fork.  For testnet, that is the (arbitrary) value we will use.  For mainnet, the value will be changed when the actual fork height becomes known, so that we can calculate the correct value.  This implements #40.

Tree-SHA512: 20b0cc0ea020cdcf46bbb2476bdfe0799b02faffcaf23f0b312d76d351e735ff17ac294a6ad1b6dd865e5134ff15fa5a53a1b2869990efdbb51caa847ba827fd
@domob1812
Copy link
Collaborator Author

Closing this now, as the main coding is done. Finalisation of the fork is being tracked in #70.

domob1812 pushed a commit that referenced this issue Oct 4, 2021
0d624261ef Merge bitcoin-core/crc32c-subtree#2: Merge upstream
cac7ca830b Merge commit 'fa5ade41ee480003d9c5af6f43567ba22e4e17e6' into bitcoin-fork
fa5ade41ee Fix compilation warnings on ARM64 with old GCC versions. (#52)
db08d22129 Updated Travis-CI configuration. (#51)
e31619a5b7 Fix GitHub links. (#50)
7fa4c263e8 Update Travis CI config. (#49)
a3d9e6d1a4 Updated third_party/ and Travis CI config. (#48)

git-subtree-dir: src/crc32c
git-subtree-split: 0d624261ef83ab08c953c196540ed18f355add4c
domob1812 pushed a commit that referenced this issue Oct 29, 2021
a44caf65fe Merge bitcoin-core/univalue-subtree#28: Import fixes for sanitizer reported issues
135254331e Import fixes for sanitizer reported issues
d5fb86940e refactor: use c++11 range based for loop in checkObject
ff9c379304 refactor: Use nullptr (c++11) instead of NULL
08a99754d5 build: use ax_cxx_compile_stdcxx.m4 to check for C++11 support
66d3713ce7 Merge bitcoin-core/univalue-subtree#29: ci: travis -> cirrus
808d487292 ci: travis -> cirrus
c390ac375f Merge bitcoin-core/univalue-subtree#19: Split sources for easier buildsystem integration
4a5b0a1c65 build: Move source entries out to sources.mk
6c7d94b33c build: cleanup wonky gen usage
a222637c6d Merge #23: Merge changes from jgarzik/univalue@1ae6a23
f77d0f718d Merge commit '1ae6a231a0169938eb3972c1d48dd17cba5947e1' into HEAD
1ae6a231a0 Merge pull request #57 from MarcoFalke/test_fix
92bdd11f0b univalue_write: remove unneeded sstream.h include
ffb621c130 Merge pull request #56 from drodil/remove_sstream_header
f33acf9fe8 Merge commit '7890db9~' into HEAD
66e0adec4d Remove unnecessary sstream header from univalue.h
88967f6586 Version 1.0.4
1dc113dbef Merge pull request #50 from luke-jr/pushKV_bool
72392fb227 [tests] test pushKV for boolean values
c23132bcf4 Pushing boolean value to univalue correctly
81faab26a1 Merge pull request #48 from fwolfst/47-UPDATE_MIT_LINK_TO_HTTPS
b17634ef24 Update URLs to MIT license.
88ab64f6b5 Merge pull request #46 from jasonbcox/master
35ed96da31 Merge pull request #44 from MarcoFalke/Mf1709-univalue-cherrypick-explicit
420c226290 Merge pull request #45 from MarcoFalke/Mf1710-univalue-revert-test

git-subtree-dir: src/univalue
git-subtree-split: a44caf65fe55b9dd8ddb08f04c0f70409efd53b3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant