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

Extend coin maturation to match Bitcoin wall time #26

Closed
weex opened this issue Mar 23, 2013 · 2 comments
Closed

Extend coin maturation to match Bitcoin wall time #26

weex opened this issue Mar 23, 2013 · 2 comments

Comments

@weex
Copy link

weex commented Mar 23, 2013

For the first 100 blocks after a block is mined, the coinbase output is unspendable. The litecoin client waits an additional 20 blocks after that so an effective 120 block holding period is in effect on newly mined litecoins. This limit is the same as in Bitcoin and due to Litecoin's faster block rate, means new coins mature in ~4 hours vs Bitcoin's 16 hours. This is a problem because in the case of a network fork, coins mined during the fork becoming spendable create transactions that can never be merged back into one chain.

I propose that we make the coin maturation time 4x as long (400 blocks for the protocol/480 for the client) to give more time to fix any forking problems Litecoin may encounter in the future.

@dasher
Copy link

dasher commented Mar 24, 2013

Network forks & orphaned side chains - so far have been only 2 or 3 in size - which translates to about 7.5 mins - way outside the 4 hour maturation time.
In the case of a network fork (which is only detected when the network detects a conflict) - forks by their nature are less than 120 blocks from the current tip - so the coins won't be spendable. Coins from an orphaned chain aren't in valid blocks - therefore the tx won't validate.

I'll run some tests and see if there are any issues that crop up just to be sure.

Extending the maturation time by 4x to be identical to bitcoin (in a relative sense) doesn't really help solve this problem and keeping some kind of parity to bitcoin with this doesn't really make sense to the litecoin network.
We're close.. but not identical :)

@wtogami
Copy link
Member

wtogami commented Jul 3, 2013

https://forum.litecoin.net/index.php/topic,4040.0.html
Discussion on this continues here.

@wtogami wtogami closed this as completed Jun 22, 2014
thrasher- pushed a commit to thrasher-/litecoin that referenced this issue Feb 14, 2018
fe805ea Declare single-argument (non-converting) constructors "explicit"
8a2d6f1 Merge pull request litecoin-project#41 from jgarzik/get-obj-map
ba341a2 Add getObjMap() helper method.  Also, constify checkObject().
ceb1194 Handle .pushKV() and .checkObject() edge cases.
107db98 Add ::push_back(double) method for feature parity.
d415300 Move one-line implementation of UniValue::read() to header.
52e85b3 Move exception-throwing get_* methods into separate implementation module.
dac5296 README.md: update code quotes
3e31dcf README.md: close code quote
d09b842 Update README.md
f1b86ed Convert README to markdown style.
1dfe464 Import UniValue class unit tests from bitcoin project.
0d3e74d operator[] takes size_t index parameter (versus unsigned int)
640158f Private findKey() method becomes size_t clean, and returns bool on failure.
7099135 Merge pull request litecoin-project#36 from ryanofsky/pr/end-str
a31231b Version 1.0.3
4fd5444 Reject unterminated strings
81eba33 Merge pull request litecoin-project#26 from isle2983/pushBackHelpers
3640541 Merge PR litecoin-project#32 from branch 'nul-not-special' of git://github.com/ryanofsky/univalue into merge
89bb073 Merge pull request litecoin-project#31 from ryanofsky/raw-literals
511008c Merge pull request litecoin-project#30 from ryanofsky/test-driver
77974f3 Merge pull request litecoin-project#34 from paveljanik/20161116_Wshadow_codepoint
a38fcd3 Do not shadow member variable codepoint.
fd32d1a Don't require nul-terminated string inputs
0bb1439 Support parsing raw literals in UniValue
28876d0 Merge pull request litecoin-project#29 from btcdrak/exportspace
839ccd7 Add test driver for JSONTestSuite
26ef3ff Remove trailing whitespace from JSON export
cfa0384 Convenience wrappers for push_back-ing integer types
REVERT: 16a1f7f Merge #3: Pull upstream
REVERT: daf1285 Merge pull request #2 from jgarzik/master
REVERT: f32df99 Merge branch '2016_04_unicode' into bitcoin
REVERT: 280b191 Merge remote-tracking branch 'jgarzik/master' into bitcoin
REVERT: 2740c4f Merge branch '2015_11_escape_plan' into bitcoin

git-subtree-dir: src/univalue
git-subtree-split: fe805ea
thrasher- pushed a commit to thrasher-/litecoin that referenced this issue Feb 14, 2018
Add leveldb: prefix to leveldb debug logging lines.
leveldb debug messages come in various scary flavors such as:

    2017-11-30 08:26:31 leveldb: Recovering log litecoin-project#26
    2017-11-30 08:26:31 leveldb: Level-0 table litecoin-project#28: started
    2017-11-30 08:26:31 leveldb: Level-0 table litecoin-project#28: 597 bytes OK
    2017-11-30 08:26:31 leveldb: Delete type=0 litecoin-project#26
    2017-11-30 08:26:31 leveldb: Delete type=3 litecoin-project#24

so it's reasonably important to mark them as coming from leveldb
internals and not from consensus validation wallet or such.

(this only affects `-debug=leveldb` or `-debug=1` otherwise you won't
see them in the first place)
thrasher- pushed a commit to thrasher-/litecoin that referenced this issue Feb 14, 2018
9b80fc1 Prefix leveldb debug logging (Wladimir J. van der Laan)

Pull request description:

  Add leveldb: prefix to leveldb debug logging lines.
  leveldb debug messages come in various scary flavors such as:

      2017-11-30 08:26:31 leveldb: Recovering log litecoin-project#26
      2017-11-30 08:26:31 leveldb: Level-0 table litecoin-project#28: started
      2017-11-30 08:26:31 leveldb: Level-0 table litecoin-project#28: 597 bytes OK
      2017-11-30 08:26:31 leveldb: Delete type=0 litecoin-project#26
      2017-11-30 08:26:31 leveldb: Delete type=3 litecoin-project#24

  so it's reasonably important to mark them as coming from leveldb internals and not from consensus validation wallet or such.
  This is consistent with the `libevent:` prefix for libevent messages.

  (this only affects `-debug=leveldb` or `-debug=1` otherwise you won't see them in the first place)

Tree-SHA512: 074eba00d39c6378b9e14d03aa2c551b4e3fc7bffdd5a1a0ba2498b44bcc77071d47735be09493286056053f0cca625c5cbaad7ad1ddb9d902d30e7cd316d9d2
Lerzsta pushed a commit to Lerzsta/litecoin that referenced this issue Mar 27, 2023
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

3 participants