Commit Graph

88 Commits

Author SHA1 Message Date
jl777
f2dd868d93 test 2016-10-20 06:32:43 -03:00
jl777
254debb628 test 2016-10-18 19:44:12 -03:00
jl777
c73c41db3c test 2016-10-18 19:40:45 -03:00
jl777
74a3757792 test 2016-10-18 19:30:22 -03:00
jl777
38f6c6f0fd test 2016-10-18 19:27:59 -03:00
jl777
8e54e61f93 test 2016-10-18 19:20:56 -03:00
jl777
53b58ced34 test 2016-10-18 19:19:24 -03:00
jl777
745f5b12ff test 2016-10-18 19:03:06 -03:00
jl777
0cb232fa89 test 2016-10-18 19:01:38 -03:00
jl777
651989c73c test 2016-10-18 19:00:22 -03:00
jl777
482c3933ad test 2016-10-18 13:17:40 -03:00
zkbot
2271d3feda Auto merge of #1338 - str4d:147-tweak-difficulty-adjustment-algorithm, r=ebfull
Tweaks to difficulty adjustment algorithm

This PR changes the difficulty algorithm to adjust from the average difficulty over the
block window instead of from the last difficulty. It also removes the special rules for the
testnet, which are incompatible with difficulty averaging.

Closes #147 again.
2016-09-08 02:21:13 +00:00
Simon
805344dcf4 Refactor: replace calls to GetTxid() with GetHash() 2016-09-07 15:12:09 -07:00
Jack Grigg
f50e8313f5 Remove accidental double-semicolon (harmless but odd) 2016-09-06 13:18:33 +12:00
Jack Grigg
333ea3c426 Remove testnet-only difficulty rules
The min-difficulty blocks are incompatible with difficulty averaging.

Network difficulty is also now defined as the difficulty the network is
currently working to solve, rather than the last non-min-difficulty block
difficulty.
2016-09-05 23:13:25 +12:00
Jack Grigg
695a7a8826 Separate concepts of block difficulty and network difficulty in RPC
"Block difficulty" is the difficulty listed in a block's header, which in the
testnet can sometimes be min-difficulty (if time-since-last-block is too large).

"Network difficulty" is the difficulty that the network was trying to satisfy
at a particular block height. In mainnet this is always equal to the difficulty
of the solved block for that height, but in testnet the network difficulty is
derived from the last non-min-difficulty block difficulty.

This commit fixes the RPC APIs that are intended to show network difficulty, so
that on testnet they don't sometimes drop to 1.0, confusing users.

Closes #1181
2016-09-01 15:13:05 +12:00
Jack Grigg
e1dde421c3 Output Equihash solution in RPC results as a hex string 2016-08-27 23:58:11 +12:00
Simon
10d2c57c0d Replace calls to GetHash() with GetTxid() for transaction objects.
Where the caller intends to receive a transaction id and not a double
SHA256 hash.
2016-07-26 17:13:03 -07:00
aniemerg
24809b16b6 Update GetDifficulty() to use consensus.powLimit from consensus parameters. Fixes #1032. 2016-06-20 22:21:42 -04:00
Jack Grigg
fdda3c5085 Use Equihash for Proof-of-Work
The main and test networks are configured to use parameters that are currently
low-memory but usable with the basic solver; they will be increased once the
solver is optimised. The regtest network is configured to have extremely low
memory usage for speed.

Note that Bitcoin's double-hasher is used for the difficulty check. This does
not match the paper, but is simpler than changing the block header
serialization. Single hashing is kept for the EquiHash solver because there is
no requirement on execution time there, only on memory usage.
2016-04-08 13:56:00 +12:00
Peter Todd
6af25b0f64 Add BIP65 to getblockchaininfo softforks list
Rebased-From: 54a200ac9ad8909303ccf1ac49c291e0c2b5fb23
2015-10-08 17:50:02 +02:00
Wladimir J. van der Laan
ba1da90b33 Show softfork status in getblockchaininfo
Rebased-From: 5ed10793c2df970d07cecd760c42205e68779e83
2015-10-08 17:49:00 +02:00
jtimon
da29ecbcc6 Consensus: MOVEONLY: Move CValidationState from main consensus/validation 2015-05-15 16:05:28 +02:00
Chris Arnesen
803f51efe4 Typo in GetRawMemPool RPC method help: "]" --> "}" 2015-05-14 01:02:00 -04:00
Wladimir J. van der Laan
7e0e7f823f Merge pull request #6058
03c5687 appropriate response when trying to get a block in pruned mode (Jonas Schnelli)
1b2e555 add autoprune information to RPC "getblockchaininfo" (Jonas Schnelli)
2015-05-11 16:40:58 +02:00
Jonas Schnelli
03c56872b5 appropriate response when trying to get a block in pruned mode 2015-05-11 16:10:08 +02:00
Cory Fields
11982d366d checkpoints: Decouple checkpoints from Params
Pass checkpoint data in as necessary
2015-04-30 23:14:48 -04:00
Jonas Schnelli
1b2e555593 add autoprune information to RPC "getblockchaininfo" 2015-04-26 23:23:09 +02:00
Eric Lombrozo
4401b2d7c5 Removed main.h dependency from rpcserver.cpp
Rebased by @laanwj:

- update for RPC methods added since 84d13ee: setmocktime,
  invalidateblock, reconsiderblock. Only the first, setmocktime, required a change,
  the other two are thread safe.
2015-01-28 07:41:54 +01:00
Wladimir J. van der Laan
34cdc41128 String conversions uint256 -> uint256S
If uint256() constructor takes a string, uint256(0) will become
dangerous when uint256 does not take integers anymore (it will go
through std::string(const char*) making a NULL string, and the explicit
keyword is no help).
2015-01-05 15:45:35 +01:00
Wladimir J. van der Laan
4f1524966a Replace direct use of 0 with SetNull and IsNull
Replace x=0 with .SetNull(),
x==0 with IsNull(), x!=0 with !IsNull().
Replace uses of uint256(0) with uint256().
2015-01-05 15:45:34 +01:00
sandakersmann
f914f1a746 Added "Core" to copyright headers
Github-Pull: #5494
Rebased-From: 15de949bb9277e442302bdd8dee299a8d6deee60
2014-12-19 19:55:32 +01:00
Jonas Schnelli
932ef50f77 [REST] JSON output: remove block infos from tx details if it is nested in block 2014-12-09 16:05:51 +01:00
Jonas Schnelli
73351c3686 [REST] /rest/block response with full tx details
- rest block request returns full unfolded tx details
- /rest/block/notxdetails/<HASH> returns block where transactions are only represented by its hash
2014-12-09 16:05:50 +01:00
Pieter Wuille
32b93a1bc2 Extra explanation for getchaintips 2014-12-01 20:48:50 +01:00
Wladimir J. van der Laan
0ddf4416cc Merge pull request #5386
1b91be4 Report status of chain tips (Pieter Wuille)
2014-12-01 11:49:35 +01:00
Pieter Wuille
1b91be49f5 Report status of chain tips 2014-11-27 11:50:14 +01:00
Pieter Wuille
9b0a8d3152 Add 'invalidateblock' and 'reconsiderblock' RPC commands.
These can be used for testing reorganizations or for manual intervention in case of
chain forks.
2014-11-26 16:36:25 +01:00
Pieter Wuille
51ce901aa3 Improve chainstate/blockindex disk writing policy
There are 3 pieces of data that are maintained on disk. The actual block
and undo data, the block index (which can refer to positions on disk),
and the chainstate (which refers to the best block hash).

Earlier, there was no guarantee that blocks were written to disk before
block index entries referring to them were written. This commit introduces
dirty flags for block index data, and delays writing entries until the actual
block data is flushed.

With this stricter ordering in writes, it is now safe to not always flush
after every block, so there is no need for the IsInitialBlockDownload()
check there - instead we just write whenever enough time has passed or
the cache size grows too large. Also updating the wallet's best known block
is delayed until this is done, otherwise the wallet may end up referring to an
unknown block.

In addition, only do a write inside the block processing loop if necessary
(because of cache size exceeded). Otherwise, move the writing to a point
after processing is done, after relaying.
2014-11-24 15:15:40 +01:00
Michael Ford
72fb3d295a Update comments in src/rpc* to be doxygen compatible 2014-11-20 10:19:39 +08:00
Philip Kaufmann
771d500283 minor cleanup: include orders, end comments etc.
- no code changes
2014-10-31 09:41:15 +01:00
Wladimir J. van der Laan
d9702bcf7c Merge pull request #5115
33dfbf5 rpc: Fix leveldb iterator leak, and flush before `gettxoutsetinfo` (Wladimir J. van der Laan)
2014-10-27 11:05:20 +01:00
dexX7
6261e6e6e0 getblockhash: throw JSONRPCError (not runtime_error) 2014-10-24 19:18:03 +02:00
Wladimir J. van der Laan
33dfbf57d3 rpc: Fix leveldb iterator leak, and flush before gettxoutsetinfo
This fixes an iterator leak resulting in

    bitcoind: db/version_set.cc:789: leveldb::VersionSet::~VersionSet(): Assertion `dummy_versions_.next_ == &dummy_versions_' failed."

exception on shutdown.

Also make sure to flush pcoinsTip before calling GetStats() to make
sure we apply them to the current height.
2014-10-21 16:16:55 +02:00
Pieter Wuille
ad6e601712 RPC additions after headers-first 2014-10-14 15:42:01 -07:00
Pieter Wuille
7c70438dc6 Get rid of the dummy CCoinsViewCache constructor arg 2014-09-24 03:19:04 +02:00
Pieter Wuille
145d5be896 Introduce BlockMap type for mapBlockIndex 2014-09-04 02:04:51 +02:00
Wladimir J. van der Laan
93f97aab62 Merge pull request #4768
2e28031 Perform CVerifyDB on pcoinsdbview instead of pcoinsTip (Wladimir J. van der Laan)
2014-09-01 09:42:10 +02:00
Wladimir J. van der Laan
57153d4e1a rpc: Compute number of confirmations of a block from block height
Currently this uses a CMerkleTx, but that makes no sense as we
have the CBlockIndex available. As noted by @jgarzik.
2014-08-29 17:25:23 +02:00
Wladimir J. van der Laan
2e280311b8 Perform CVerifyDB on pcoinsdbview instead of pcoinsTip
Bypassing the main coins cache allows more thorough checking with the same
memory budget.

This has no effect on performance because everything ends up in the child
cache created by VerifyDB itself.

It has bugged me ever since #4675, which effectively reduced the
number of checked blocks to reduce peak memory usage.

- Pass the coinsview to use as argument to VerifyDB

- This also avoids that the first `pcoinsTip->Flush()` after VerifyDB
  writes a large slew of unchanged coin records back to the database.
2014-08-27 09:20:33 +02:00