Commit graph

16628 commits

Author SHA1 Message Date
Wladimir J. van der Laan
e4a2642cb4
Merge pull request #6316
b666820 build: Remove -DBOOST_SPIRIT_THREADSAFE (Wladimir J. van der Laan)
2015-06-22 09:54:02 +02:00
Wladimir J. van der Laan
88d8525ca2
doc: update mailing list address
Move from sourceforge to linux foundation.

Also get rid of some other stale mentions of sourceforge.
2015-06-22 09:13:19 +02:00
Peter Todd
ffd75adce0
Enable CHECKLOCKTIMEVERIFY as a standard script verify flag
Transactions that fail CLTV verification will be rejected from the
mempool, making it easy to test the feature. However blocks containing
"invalid" CLTV-using transactions will still be accepted; this is *not*
the soft-fork required to actually enable CLTV for production use.
2015-06-22 00:00:48 -04:00
Peter Todd
bc60b2b4b4 Replace NOP2 with CHECKLOCKTIMEVERIFY (BIP65)
<nLockTime> CHECKLOCKTIMEVERIFY -> <nLockTime>

Fails if tx.nLockTime < nLockTime, allowing the funds in a txout to be
locked until some block height or block time in the future is reached.

Only the logic and unittests are implemented; this commit does not have
any actual soft-fork logic in it.

Thanks to Pieter Wuille for rebase.

Credit goes to Gregory Maxwell for the suggestion of comparing the
argument against the transaction nLockTime rather than the current
time/blockheight directly.
2015-06-21 23:56:28 -04:00
Peter Todd
db6047d61b
Take the training wheels off anti-fee-sniping
Now that the off-by-one error w/nLockTime txs issue has been fixed by
87550eef (75a4d512 in the 0.11 branch) we can make the anti-fee-sniping
protection create transactions with nLockTime set such that they're only
valid in the next block, rather than an earlier block.

There was also a concern about poor propagation, however testing with
transactions with nLockTime = GetAdjustedTime()+1 as a proxy for
nLockTime propagation, as well as a few transactions sent the moment
blocks were received, has turned up no detectable issues with
propagation. If you have a block at a given height you certainly have at
least one peer with that block who will accept the transaction. That
peer will certainly have other peers who will accept it, and soon
essentially the whole network has the transaction. In particular, if a
node recives a transaction that it rejects due to the tx being
non-final, it will be accepted again later as it winds its way around
the network.
2015-06-21 23:39:49 -04:00
Cory Fields
7c2c270829 build: comparison tool NPE fix
This should fix the spurious comparison tool failures.
See discussion here: https://github.com/bitcoin/bitcoin/pull/6305

The race fix was cherry-picked on top of the version we're currently using, so
it should be functionally identical otherwise.
2015-06-21 12:12:05 -04:00
Wladimir J. van der Laan
b6668209aa build: Remove -DBOOST_SPIRIT_THREADSAFE
Now that boost spirit is no longer used, `-DBOOST_SPIRIT_THREADSAFE`
doesn't need to be passed to the compiler anymore.
2015-06-21 14:09:34 +02:00
Wladimir J. van der Laan
4f40716dcb test: Move reindex test to standard tests
This test finishes very quickly, so it should be part of the default set
of tests in rpc-tests.
2015-06-21 01:25:22 +02:00
Jorge Timón
36c97b4e5d Bugfix: Don't check the genesis block header before accepting it
This fixes an error triggered when running with -reindex after #5975
2015-06-21 01:24:51 +02:00
Wladimir J. van der Laan
247b91449a
Merge pull request #6262
506bae3 Return all available information via validateaddress (dexX7)
2015-06-19 18:30:58 +02:00
Wladimir J. van der Laan
57539884f2
Merge pull request #6290
57092ed rpc: make `gettxoutsettinfo` run lock-free (Wladimir J. van der Laan)
2015-06-19 17:42:50 +02:00
Wladimir J. van der Laan
7ecdcd99ca
Merge pull request #6307
1c043d5 fix lock issue for QT node diconnect and RPC disconnectnode (Jonas Schnelli)
932687b setban: add IPv6 tests (Jonas Schnelli)
62909f6 fix missing lock in CNode::ClearBanned() (Jonas Schnelli)
2015-06-19 17:32:36 +02:00
Jonas Schnelli
1c043d5672 fix lock issue for QT node diconnect and RPC disconnectnode 2015-06-19 16:32:22 +02:00
Wladimir J. van der Laan
529a44c144
Merge pull request #6301
82e6487 Adding pgp public key for cdecker as requested by @jonasschnelli in bitcoin/gitian.sigs#182 (Christian Decker)
2015-06-19 15:23:13 +02:00
Wladimir J. van der Laan
9005c9165c
Merge pull request #6305
a4d9f95 build: comparison tool swap (Cory Fields)
2015-06-19 14:58:51 +02:00
Jonas Schnelli
932687bc10 setban: add IPv6 tests 2015-06-19 13:51:42 +02:00
Jonas Schnelli
62909f68a0 fix missing lock in CNode::ClearBanned() 2015-06-19 13:31:33 +02:00
Cory Fields
a4d9f95653 build: comparison tool swap
This should be functionally identical to what's in place now. It was built from
be0eef7744

That commit is the same as this pruned commit in TheBlueMatt's repo:
https://github.com/TheBlueMatt/bitcoinj/commit/0f7b5d8

Now we'll be able to trust the line numbers in the stack traces.
2015-06-19 01:52:26 -04:00
Cory Fields
d08cfc2bd7 gitian: add a gitian-win-signer descriptor
This is exactly like the current OSX signing process.

osslsigncode has been patched to detach and re-attach Windows signatures.
The changes can be seen here: https://github.com/theuni/osslsigncode/commits/attach-signature

There's a pull-request open upstream for the changes:
https://sourceforge.net/p/osslsigncode/osslsigncode/merge-requests/3/

This work has been back-ported to the stable 1.7.1 release of osslsigncode, so
that a smaller patch can be reviewed.
2015-06-18 18:17:36 -04:00
Christian Decker
82e6487af8 Adding pgp public key for cdecker as requested by @jonasschnelli in bitcoin/gitian.sigs#182 2015-06-18 17:56:37 +02:00
Wladimir J. van der Laan
40400d53d3
Merge pull request #6272
edbdf88 tests: Extend RPC proxy tests (Wladimir J. van der Laan)
baf0507 Improve proxy initialization (Wladimir J. van der Laan)
2015-06-18 17:53:36 +02:00
Wladimir J. van der Laan
0abfa8a22f
Merge pull request #6158
9d79afe add RPC tests for setban & disconnectnode (Jonas Schnelli)
1f02b80 setban: add RPCErrorCode (Jonas Schnelli)
d624167 fix CSubNet comparison operator (Jonas Schnelli)
4e36e9b setban: rewrite to UniValue, allow absolute bantime (Jonas Schnelli)
3de24d7 rename json field "bannedtill" to "banned_until" (Jonas Schnelli)
433fb1a [RPC] extend setban to allow subnets (Jonas Schnelli)
e8b9347 [net] remove unused return type bool from CNode::Ban() (Jonas Schnelli)
1086ffb [QA] add setban/listbanned/clearbanned tests (Jonas Schnelli)
d930b26 [RPC] add setban/listbanned/clearbanned RPC commands (Jonas Schnelli)
2252fb9 [net] extend core functionallity for ban/unban/listban (Jonas Schnelli)
2015-06-18 16:48:37 +02:00
Wladimir J. van der Laan
cbec57fd71
Merge pull request #6282
0ce30ea fix crash on shutdown when e.g. changing -txindex and abort action (Philip Kaufmann)
2015-06-18 16:40:37 +02:00
Jonas Schnelli
9d79afe9a9 add RPC tests for setban & disconnectnode 2015-06-17 21:40:56 +02:00
Jonas Schnelli
1f02b80253 setban: add RPCErrorCode 2015-06-17 21:40:56 +02:00
Jonas Schnelli
d624167387 fix CSubNet comparison operator 2015-06-17 21:40:55 +02:00
Jonas Schnelli
4e36e9bcc7 setban: rewrite to UniValue, allow absolute bantime 2015-06-17 21:40:55 +02:00
Jonas Schnelli
3de24d7647 rename json field "bannedtill" to "banned_until" 2015-06-17 21:40:55 +02:00
Jonas Schnelli
433fb1a95d [RPC] extend setban to allow subnets 2015-06-17 21:40:55 +02:00
Jonas Schnelli
e8b93473f1 [net] remove unused return type bool from CNode::Ban() 2015-06-17 21:40:55 +02:00
Jonas Schnelli
1086ffba26 [QA] add setban/listbanned/clearbanned tests 2015-06-17 21:40:55 +02:00
Jonas Schnelli
d930b26a26 [RPC] add setban/listbanned/clearbanned RPC commands 2015-06-17 21:40:55 +02:00
Jonas Schnelli
2252fb91cd [net] extend core functionallity for ban/unban/listban 2015-06-17 21:40:55 +02:00
Suhas Daftuar
ae6f957a62 Enable block relay when pruning 2015-06-17 15:37:50 -04:00
Suhas Daftuar
0da6ae2dc3 Do not inv old or missing blocks when pruning
When responding to a getblocks message, only return inv's as
long as we HAVE_DATA for blocks in the chain, and only for blocks
that we aren't likely to delete in the near future.
2015-06-17 15:37:50 -04:00
Wladimir J. van der Laan
9849c663b1
Merge pull request #6280
b19a88b depends: fix Boost 1.55 build on GCC 5 (Jacob Welsh)
2015-06-17 09:09:13 +02:00
Wladimir J. van der Laan
324f20036e
Merge pull request #6286
a3a80c2 remove berkeley-db4 workaround (rion)
2015-06-17 08:58:04 +02:00
Philip Kaufmann
0ce30eaa36 fix crash on shutdown when e.g. changing -txindex and abort action
- fixes #3136
- the problem is related to Boost path and a static initialized internal
  pointer
- using a std::string in CDBEnv::EnvShutdown() prevents the problem
- this removes the boost::filesystem::path path field from CDBEnv
2015-06-16 15:03:50 +02:00
Wladimir J. van der Laan
754aae5148
Merge pull request #6271
60dbe73 New RPC command disconnectnode (Alex van der Peet)
2015-06-16 14:27:27 +02:00
Alex van der Peet
60dbe73016 New RPC command disconnectnode 2015-06-16 14:19:41 +02:00
Wladimir J. van der Laan
a903ad7e9c
Merge pull request #6283
26a639e remove using namespace std from addrman.cpp (Philip Kaufmann)
40c592a make CAddrMan::size() return the correct type of size_t (Philip Kaufmann)
2015-06-16 14:06:59 +02:00
Wladimir J. van der Laan
7fe29d84bd
Merge pull request #6285
72bf90d Fix scheduler build with some boost versions. (Cory Fields)
2015-06-16 13:55:47 +02:00
Wladimir J. van der Laan
57092ed9e7 rpc: make gettxoutsettinfo run lock-free
For leveldb "An iterator operates on a snapshot of the database taken
when the iterator is created". This means that it is unnecessary to
lock out other threads while computing statistics, and neither to hold
cs_main for the whole time. Let the thread run free.
2015-06-16 13:50:38 +02:00
Cory Fields
a794284e61 locking: add a quick example of GUARDED_BY
This was chosen not because it's necessarily helpful, but because its locking
assumptions were already correct.
2015-06-16 04:10:21 -04:00
Cory Fields
2b890dd424 locking: fix a few small issues uncovered by -Wthread-safety
- rpcwallet: No need to lock twice here
- openssl: Clang doesn't understand selective lock/unlock here. Ignore it.
- CNode: Fix a legitimate (though very unlikely) locking bug.
2015-06-16 04:04:02 -04:00
Cory Fields
cd27bba060 locking: teach Clang's -Wthread-safety to cope with our scoped lock macros
This allows us to use function/variable/class attributes to specify locking
requisites, allowing problems to be detected during static analysis.

This works perfectly with newer Clang versions (tested with 3.3-3.7). For older
versions (tested 3.2), it compiles fine but spews lots of false-positives.
2015-06-16 03:59:26 -04:00
rion
a3a80c253c remove berkeley-db4 workaround
"brew install berkeley-db4" appears to be working again.  simplified instructions by removing the berkeley-db4 workaround.
2015-06-15 21:02:29 -07:00
Cory Fields
72bf90d770 Fix scheduler build with some boost versions.
Some boost versions have a conflicting overload of wait_until that returns void.
Explicitly use a template here to avoid hitting that overload.
2015-06-15 16:29:57 -04:00
Philip Kaufmann
26a639e21f remove using namespace std from addrman.cpp 2015-06-15 14:45:19 +02:00
Philip Kaufmann
40c592aa21 make CAddrMan::size() return the correct type of size_t 2015-06-15 14:43:31 +02:00