Commit Graph
5 Commits
Author SHA1 Message Date
Mark Friedenbach f720c5fc9f Enable policy enforcing GetMedianTimePast as the end point of lock-time constraints
Transactions are not allowed in the memory pool or selected for inclusion in a block until their lock times exceed chainActive.Tip()->GetMedianTimePast(). However blocks including transactions which are only mature under the old rules are still accepted; this is *not* the soft-fork required to actually rely on the new constraint in production.
2015-10-23 21:33:51 +01:00
Mark Friedenbach a1d3c6fb9d Add rules--presently disabled--for using GetMedianTimePast as endpoint for lock-time calculations
The lock-time code currently uses CBlock::nTime as the cutoff point for time based locked transactions. This has the unfortunate outcome of creating a perverse incentive for miners to lie about the time of a block in order to collect more fees by including transactions that by wall clock determination have not yet matured. By using CBlockIndex::GetMedianTimePast from the prior block instead, the self-interested miner no longer gains from generating blocks with fraudulent timestamps. Users can compensate for this change by simply adding an hour (3600 seconds) to their time-based lock times.

If enforced, this would be a soft-fork change. This commit only adds the functionality on an unexecuted code path, without changing the behaviour of Bitcoin Core.
2015-10-23 21:33:31 +01:00
Mark Friedenbach a372168e77 Use a typedef for monetary values 2014-09-26 15:42:04 -07:00
Mark Friedenbach e935293e17 Minor code cleanup: remove indentation
This indentation should have been stripped out when AreInputsStandard was made a top-level function instead of a CTransaction method.
2014-03-08 00:43:35 -08:00
Mark Friedenbach cb501a7d44 Fix typo in README.md 2013-07-27 14:22:42 -07:00