Alex Morcos
7335afabd4
ModifyNewCoins saves database lookups
...
When processing a new transaction, in addition to spending the Coins of its txin's it creates a new Coins for its outputs. The existing ModifyCoins function will first make sure this Coins does not already exist. It can not exist due to BIP 30, but because of that the lookup can't be cached and always has to go to the database. Since we are creating the coins to match the new tx anyway, there is no point in checking if they exist first anyway.
Zcash: Modified to account for the fact that BIP 30 and BIP 34 have applied
from the beginning.
2018-10-24 19:28:39 +08:00
Pieter Wuille
cf47f9550e
Don't wipe the sigcache in TestBlockValidity
2018-10-24 19:28:39 +08:00
Simon
c94f4477e8
For #3546 . Shielded tx with missing inputs are not treated as orphans.
2018-10-05 10:48:03 -07:00
Homu
75c1dbc5eb
Auto merge of #3452 - LarryRuane:3399-peer-ban-test, r=bitcartel
...
Test peer banning logic in both pre- and post-initial block download states
The DoS ban scores are different for each, and it's nice to test both.
Follow-on from #3410 .
2018-09-19 10:25:23 -07:00
Larry Ruane
6206d86237
Test peer banning logic in both pre- and post-initial block download states
2018-09-12 13:30:01 -06:00
Jack Grigg
c861137624
net: Check against the current epoch's version when disconnecting peers
2018-09-12 10:17:33 +01:00
Jack Grigg
ebf4c0671e
net: Check against the current epoch's version when rejecting nodes
2018-09-12 09:27:28 +01:00
Jack Grigg
13751895c7
Move RewindBlockIndex log message inside rewindLength check
2018-08-08 12:08:29 +01:00
Daira Hopwood
66856b2b3c
Support testnet rollback.
...
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2018-08-02 23:10:30 +01:00
Eirik Ogilvie-Wigley
4fc309f0f5
Rename Merkle Trees to include sprout or sapling
2018-08-01 10:31:09 -06:00
Sean Bowe
291895fac7
Ensure sum of valueBalance and all vpub_new's does not exceed MAX_MONEY inside of CheckTransactionWithoutProofVerification.
2018-07-30 22:35:31 -06:00
Larry Ruane
772f87aaeb
don't ban peers when loading pre-overwinter blocks
2018-07-26 12:29:04 -06:00
Eirik Ogilvie-Wigley
f86ee1c252
Pass sapling merkle tree when incrementing witnesses
2018-07-25 20:47:41 -07:00
Homu
3835cbb57f
Auto merge of #3263 - str4d:ibd-upstream-changes, r=bitcartel
...
InitialBlockDownload upstream changes
Cherry-picked from the following upstream PRs:
- bitcoin/bitcoin#7208
- bitcoin/bitcoin#8007
- bitcoin/bitcoin#9053
- Excluding second commit (requires bitcoin/bitcoin#8865 )
- bitcoin/bitcoin#10388
2018-07-17 13:17:27 -07:00
Homu
9acfa0067f
Auto merge of #3258 - Eirik0:3056-anchor-test-cases, r=str4d
...
Add tests for sapling anchors
Closes #3253
2018-06-19 09:28:20 -07:00
Homu
f62fff80d5
Auto merge of #3255 - str4d:sapling-value-pool, r=ebfull
...
Track net value entering and exiting the Sapling circuit
2018-05-16 10:46:32 -07:00
Eirik Ogilvie-Wigley
3182b4abc3
Add tests for sapling anchors
2018-05-16 10:31:53 -06:00
Alex Morcos
bbff8631f5
Output line to debug.log when IsInitialBlockDownload latches to false
2018-05-15 22:18:11 +12:00
Gregory Maxwell
f04a90afb2
IsInitialBlockDownload no longer uses header-only timestamps.
...
This avoids a corner case (mostly visible on testnet) where bogus
headers can keep nodes in IsInitialBlockDownload.
2018-05-15 22:18:04 +12:00
Gregory Maxwell
e41632c9fb
IBD check uses minimumchain work instead of checkpoints.
...
This introduces a 'minimum chain work' chainparam which is intended
to be the known amount of work in the chain for the network at the
time of software release. If you don't have this much work, you're
not yet caught up.
This is used instead of the count of blocks test from checkpoints.
This criteria is trivial to keep updated as there is no element of
subjectivity, trust, or position dependence to it. It is also a more
reliable metric of sync status than a block count.
2018-05-15 21:25:19 +12:00
Kaz Wesley
02eedeeb69
IsInitialBlockDownload: usually avoid locking
...
Optimistically test the latch bool before taking the lock.
For all IsInitialBlockDownload calls after the first to return false,
this avoids the need to lock cs_main.
2018-05-15 21:25:19 +12:00
Wladimir J. van der Laan
29aaf13b0a
Make max tip age an option instead of chainparam
...
After discussion in #7164 I think this is better.
Max tip age was introduced in #5987 to make it possible to run
testnet-in-a-box. But associating this behavior with the testnet chain
is wrong conceptually, as it is not needed in normal usage.
Should aim to make testnet test the software as-is.
Replace it with a (debug) option `-maxtipage`, which can be
specified only in the specific case.
2018-05-15 21:24:58 +12:00
Homu
ae6c2587d3
Auto merge of #3232 - ebfull:3207-sapling-validation, r=str4d
...
Sapling validation
**Also review https://github.com/zcash/librustzcash/pull/7 **
This is an attempt to tackle much of https://github.com/zcash/zcash/issues/3065
2018-05-10 10:21:15 -07:00
Jack Grigg
ae97177c86
Track net value entering and exiting the Sapling circuit
2018-05-09 16:02:23 -04:00
Jack Grigg
97b46f00cc
Add valueBalance to value balances, and enforce its consensus rules
2018-05-09 11:34:41 +01:00
Sean Bowe
b4db32f53c
Check Sapling Spend/Output proofs and signatures.
2018-05-08 14:30:26 -06:00
Sean Bowe
55fabd8272
Refactor so that dataToBeSigned can be used later in the function for other purposes.
2018-05-08 14:28:01 -06:00
Sean Bowe
6eea48bf96
Remove unnecessary IsCoinbase() check. Coinbases are guaranteed to have empty vjoinsplit.
2018-05-08 14:23:09 -06:00
Homu
333b9a0d0b
Auto merge of #3170 - ebfull:sapling-merkle-tree, r=ebfull
...
Sapling merkle tree implementation
Closes #3056 .
Please also review https://github.com/zcash/librustzcash/pull/8
This PR:
1. Introduces ZCSaplingIncrementalMerkleTree using Pedersen hashes.
2. Adds support for Sapling anchors into consensus rules. (Adds commitments, checks anchors are correct, handles block (dis)connects, etc.)
3. Handles mempool eviction for obsolete anchors.
4. Enforces correctness of block's Sapling root field
5. Changes miner to correctly apply the Sapling root to the block header
6. Handles mempool consistency checks for anchors
2018-05-07 20:37:46 -07:00
Sean Bowe
98d2f090ca
Evict transactions with obsolete anchors from the mempool
2018-05-07 14:37:46 -06:00
Sean Bowe
1f8be05b63
Add consensus support for Sapling merkle trees.
2018-05-07 14:37:46 -06:00
Sean Bowe
c643ff0b51
Add support for PopAnchor(.., SPROUT/SAPLING)
2018-05-07 14:37:46 -06:00
Sean Bowe
e814be60fe
Rename hashSproutAnchorEnd to hashFinalSproutRoot to be consistent.
2018-05-07 14:37:46 -06:00
Sean Bowe
18322f074c
Introduce support for GetBestAnchor(SAPLING).
2018-05-07 13:46:06 -06:00
Sean Bowe
2bd59e1473
Rename PushAnchor to PushSproutAnchor.
2018-05-07 13:46:06 -06:00
Sean Bowe
008f4ee8e7
Rename GetAnchorAt to GetSproutAnchorAt.
2018-05-07 13:46:06 -06:00
Sean Bowe
08f0728884
Rename hashAnchor to hashSproutAnchor.
2018-05-07 13:46:06 -06:00
Sean Bowe
28d20bdb11
Rename NullifierType to ShieldedType.
2018-05-07 13:46:06 -06:00
Homu
1d4235dce7
Auto merge of #3239 - str4d:sapling-default-tx-version, r=str4d
...
Update CreateNewContextualCMutableTransaction for Sapling
Part of #3063 .
2018-05-07 12:27:47 -07:00
Homu
265eca3f47
Auto merge of #3212 - str4d:2864-sapling-tx-size-limit, r=str4d
...
Raise 100kB transaction size limit from Sapling activation
Closes #2864 .
2018-05-07 02:20:42 -07:00
Homu
8ef1d333b5
Auto merge of #2894 - per-gron:dont-export-unless-needed, r=str4d
...
Make some globals static that can be
I wrote this patch as part of making a Bazel build system but it really is independent from that so I'm putting this as a separate PR.
External linkage does not help and just encourages sloppy dependencies (ie using symbols only declared in a cpp file in some other cpp file) and can lead to weird issues when there are name collisions.
2018-05-04 15:05:43 -07:00
Jack Grigg
25fee3509a
Rename MAX_TX_SIZE to MAX_TX_SIZE_AFTER_SAPLING
2018-05-04 11:17:30 +01:00
Jack Grigg
15ec5525e3
Raise 100kB transaction size limit from Sapling activation
...
Closes #2864 .
2018-05-04 11:17:30 +01:00
Jack Grigg
fa70084c87
Expire Overwinter transactions before the Sapling activation height
2018-05-03 12:27:56 +01:00
Jack Grigg
dc889d7f52
Update CreateNewContextualCMutableTransaction to create Sapling transactions
2018-05-03 12:02:51 +01:00
Homu
0a8d0c25e8
Auto merge of #3220 - Eirik0:3209-fix-CheckTransaction, r=str4d
...
Implement consensus rules about the number of Spend and Output Descriptions in a transaction
Closes #3209 .
Part of #3065 .
2018-05-01 07:09:52 -07:00
Marshall Gaucher
b300118002
Merge pull request #2813 from str4d/2074-uacomment
...
Implement uacomment config parameter
2018-04-30 09:12:38 -06:00
Eirik Ogilvie-Wigley
812098256f
Coinbase transactions can not have shielded spend or output
2018-04-26 15:53:26 -06:00
Eirik Ogilvie-Wigley
4b4662b06d
Make sure transactions have non-empty outputs
2018-04-26 15:24:59 -06:00
Sean Bowe
6679855147
Check that duplicate Sapling nullifiers don't exist within a transaction.
2018-04-25 17:10:34 -06:00
Eirik Ogilvie-Wigley
9669920f75
Rename nullifier caches and maps to indicate sprout nullifiers
2018-04-25 11:26:38 -06:00
Eirik Ogilvie-Wigley
cab341e1a8
Add sapling nullifiers to db and mempool
2018-04-24 17:16:43 -06:00
Eirik Ogilvie-Wigley
708c87f16d
Add enum for nullifier type
2018-04-24 09:57:14 -06:00
Eirik Ogilvie-Wigley
685e936c31
Add sapling nullifier set
2018-04-24 09:57:14 -06:00
Jack Grigg
b1608eed82
Add a constant for Overwinter's transaction version
2018-04-23 20:39:04 +01:00
Jack Grigg
72540cee4a
Add Sapling v4 transactions to IsStandard
2018-04-19 16:25:04 +01:00
Jack Grigg
987b8ee60e
Adjust consensus rules to require v4 transactions from Sapling activation
2018-04-19 05:01:47 +01:00
Jack Grigg
a8e5ae92ba
GetSerializeSize changes in Zcash-specific code
2018-04-16 07:38:38 -06:00
Pieter Wuille
b8a6579366
Make GetSerializeSize a wrapper on top of CSizeComputer
...
Given that in default GetSerializeSize implementations created by
ADD_SERIALIZE_METHODS we're already using CSizeComputer(), get rid
of the specialized GetSerializeSize methods everywhere, and just use
CSizeComputer. This removes a lot of code which isn't actually used
anywhere.
For CCompactSize and CVarInt this actually removes a more efficient
size computing algorithm, which is brought back in a later commit.
2018-04-16 07:38:38 -06:00
Pavol Rusnak
2bc62dc4e3
limit total length of user agent comments
...
Reworked-By: Wladimir J. van der Laan <laanwj@gmail.com>
2018-04-13 07:40:34 -06:00
Jack Grigg
39ee63c876
When rewinding, reset pindexBestInvalid if it is pointing to a removed block
2018-04-11 21:46:58 -06:00
R E Broadley
4f31d82395
Allow filterclear messages for enabling TX relay only.
...
An example of where this might be useful is allowing a node to connect blocksonly during IBD but then becoming a full-node once caught up with the latest block. This might also even want to be the default behaviour since during IBD most TXs appear to be orphans, and are routinely dropped (for example when a node disconnects). Therefore, this can waste a lot of bandwidth.
Additionally, another pull could be written to stop relaying of TXs to nodes that are clearly far behind the latest block and are running a node that doesn't store many orphan TXs, such as recent versions of Bitcoin Core.
2018-04-05 01:30:38 +01:00
Jack Grigg
2b7fcab8fc
Move bloom filter filtering logic back into command "switch"
2018-04-05 01:30:38 +01:00
Matt Corallo
1c82adeb87
Don't do mempool lookups for "mempool" command without a filter
2018-04-05 01:30:12 +01:00
Patick Strateman
f07ad43553
Add enforcenodebloom option.
...
Previously peers which implement a protocol version less than NO_BLOOM_VERSION
would not be disconnected for sending a filter command, regardless of the
peerbloomfilter option.
Many node operators do not wish to provide expensive bloom filtering for SPV
clients, previously they had to cherry pick the commit which enabled the
disconnect logic.
The default should remain false until a sufficient percent of SPV clients
have updated.
2018-04-05 01:30:12 +01:00
Patick Strateman
d06ae252a0
Move bloom filter filtering logic outside of command "switch" (giant if/else).
...
Moving this logic outside of the "switch" makes it far simpler to
enable the forced disconnect by a parameter.
2018-04-05 01:30:12 +01:00
Matt Corallo
8bc4461326
Add NODE_BLOOM service bit and bump protocol version
...
Lets nodes advertise that they offer bloom filter support explicitly.
The protocol version bump allows SPV nodes to assume that NODE_BLOOM is
set if NODE_NETWORK is set for pre-170004 nodes.
Also adds an option to turn bloom filter support off for nodes which
advertise a version number >= 170004. Nodes attempting to use bloom
filters on such protocol versions are banned, and a later upgade
should drop nodes of an older version which attempt to use bloom
filters.
Much code stolen from Peter Todd.
Zcash: Implements Zcash equivalent of BIP 111; deploys with Overwinter
2018-04-05 01:30:12 +01:00
Daira Hopwood
473a113241
Don't increase banscore if the transaction only just expired.
...
Author: Jack Grigg <str4d@z.cash>
2018-04-04 01:29:47 +01:00
Jay Graber
e4dff510b4
Set ban score for expired txs to 0
2018-04-03 23:50:43 +01:00
Jack Grigg
f5007d8912
When rewinding, remove insufficiently-validated blocks
...
If a block is insufficiently-validated against a particular branch ID, then we
cannot guarantee that even the block header will be valid under the actual
consensus rules the node will want to apply. Instead require that the blocks are
completely re-validated, by removing them from the block index (which is
equivalent to reducing their validity to BLOCK_VALID_UNKNOWN).
2018-04-03 10:58:31 +01:00
Homu
72f14060bc
Auto merge of #3098 - str4d:2343-overwinter-disable-mempooltxinputlimit, r=str4d
...
Ignore -mempooltxinputlimit once Overwinter activates
Overwinter changes the SignatureHash function to solve the quadratic hashing problem, so this option will no longer be needed.
2018-03-30 08:33:58 -07:00
Jack Grigg
31afbcc5c9
Ignore -mempooltxinputlimit once Overwinter activates
2018-03-28 14:25:42 +02:00
Simon
8b15afd315
Closes #3110 . Ensure user can see error message about absurdly high fees.
2018-03-27 10:23:24 -07:00
Daira Hopwood
c938fb1f17
Squashed commit of the following:
...
commit 5e7222e4bc0401ef8c6d8049b12a62d4854ac85c
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Thu Mar 1 21:20:51 2018 +0200
Cleanup
commit 2e1bc7a7cd6c72e7c3d2ff74cb30f7a56515006c
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Thu Mar 1 21:19:53 2018 +0200
Cleanup
commit edd7fa87fb2c839c17457ff004d258a049df832f
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Thu Mar 1 21:18:57 2018 +0200
Cleanup
commit ee34e1433806655a7123f0617802aa4771507dff
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Thu Mar 1 21:18:10 2018 +0200
Cleanup
commit 20779e4021b8ab95a87289d2741ad2f0fbc7fb39
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Thu Mar 1 21:16:52 2018 +0200
Cleanup
commit 084e1aa563807f5625ad3aaff376b598e139f2a7
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 18:42:49 2018 +0200
Fix typo
commit c61a7c2319d3b9b96d1b5ad52ecf9d4f2fd92658
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 18:37:43 2018 +0200
Cleanup
commit e435c0229b0cbe3f4a77f43b01ca87ed0552d405
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 18:17:58 2018 +0200
Fix typos
commit e05bff3fea8915e95a473fe3266b2b1f727deca0
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 17:59:32 2018 +0200
Fix typo
commit 8c55c7840232cef7fa4389a12f6f220e86f5f581
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 17:46:33 2018 +0200
Fix typos
commit a1edfcc5cc29d815ba7e8c4baaf14c23ef93af64
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 17:39:41 2018 +0200
Fix typos
commit 2ce2c4d180e936ccc5c10745a6430fda5de38a9b
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 17:14:10 2018 +0200
Fix typo
commit 5bdc6cd5bc9cff93aa48fbdeda36d4d9774bfa18
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 17:12:14 2018 +0200
Fix typo
commit d08749f549575efc6f44a7f80850bc439c12ad5c
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 16:54:06 2018 +0200
Revert one change
commit a734bb1191c692f09f58bcc8e85160ce7c839905
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 16:52:45 2018 +0200
Fix typo
commit 95fbc8d94bbefc0db989c83d0f053111bfed45e7
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 16:51:33 2018 +0200
Fix typos
commit d17d540a83d035cf9a200f9a8b19f0fab6084728
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 16:49:36 2018 +0200
Fix typo
commit c4bf4402210bcb926ccfb3928afeb3a8a7490b42
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 16:48:09 2018 +0200
Fix typo
commit 25e7990848a1d723702e2d041c04bc68a6c1275f
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 16:47:01 2018 +0200
Fix typo
commit d72ffb5b0253e0d7b992ffe13c40695421378dc3
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 16:45:20 2018 +0200
Fix typo
commit 705e6f271192a575cc99d794545b0efe75d964c4
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 16:41:19 2018 +0200
Revert one change
commit 4fd26cd29e21c42b027e37da2616761ebc399d16
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 16:39:41 2018 +0200
Revert commit
commit 8a5cc627b1048368fe8807973d1f542bab2e045f
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 16:28:56 2018 +0200
Fix typo
commit 0a24baa7258c0ae0f244d82af8d0831b148ab012
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 16:15:45 2018 +0200
Fix typo
commit 38f93ecd90171fb881243f0de55b3452daccff20
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 15:56:49 2018 +0200
Fix typos
commit 15446fd62400c36c2a51f7e6f13725cc8adfd924
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 15:48:00 2018 +0200
Fix typos
commit 76533b41986bbc5826070a1e644215a74757c1db
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 15:04:38 2018 +0200
Fix typo
commit aea330c2b0bf76975ec69142a732288cc8b192bd
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 14:46:29 2018 +0200
Fix typo
commit 8b1b1d0be1dc44f36c22c54d1a3d56d84d456b92
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 14:40:23 2018 +0200
Fix typo
commit 46ea76785a26cf20a664ed211c8f3fb9a283e127
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 14:14:17 2018 +0200
Fix typo
commit e0d7c5748545dd0975507ad603623072fcc6bdea
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 14:08:24 2018 +0200
Fix typo
commit 604d5a244323b17ba596b12d245407e1cf63a375
Merge: 6c081ca 1c65b2b
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 09:03:23 2018 +0200
Merge pull request #36 from rex4539/patch-36
Fix typo
commit 6c081caf28b7cef9e62ed523284dff90e4add16d
Merge: 899e5d2 88fa2d9
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 09:02:49 2018 +0200
Merge pull request #35 from rex4539/patch-35
Fix typo
commit 899e5d2c343ac7ea5069b8548e5df86c8e963e21
Merge: 6380c7f 40e73e2
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 09:02:16 2018 +0200
Merge pull request #34 from rex4539/patch-34
Fix typo
commit 6380c7f740246474c69d8145bde61688551efe83
Merge: f592274 4567667
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 09:01:47 2018 +0200
Merge pull request #33 from rex4539/patch-33
Fix typos
commit f592274a713162da0083bd6d22fb47cb1afcdba9
Merge: d86ef7e 4aeaa3a
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 09:01:14 2018 +0200
Merge pull request #32 from rex4539/patch-32
Fix typo
commit d86ef7e5e4f7e9c2014358ec5b647d1815eb304d
Merge: fe0b432 5cdd1b2
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 09:00:41 2018 +0200
Merge pull request #31 from rex4539/patch-31
Fix typo
commit fe0b432ee125ae0b876af2c26139dfc979005a3b
Merge: 6fd6d0d 70130d0
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 09:00:12 2018 +0200
Merge pull request #30 from rex4539/patch-30
Fix typos
commit 6fd6d0dcf3714118a623c0d8d84aabb4578410a8
Merge: 389660f 3377426
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:59:42 2018 +0200
Merge pull request #29 from rex4539/patch-29
Fix typo
commit 389660f856cb60ff475a8757aad3873b99213cc0
Merge: a0b85ce 40643eb
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:59:15 2018 +0200
Merge pull request #28 from rex4539/patch-28
Fix typo
commit a0b85ce3b4d2e6596da0727e05c1fe15c289b1e7
Merge: 6f9a1c7 23ead80
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:58:42 2018 +0200
Merge pull request #27 from rex4539/patch-27
Fix typo
commit 6f9a1c71a680bb3ed1c249dd42bf0a54663d0af3
Merge: b880547 3612eab
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:58:06 2018 +0200
Merge pull request #26 from rex4539/patch-26
Patch 26
commit b880547415afeae36bd19867388e60a3040a15ca
Merge: a3b7da2 5c3177f
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:57:24 2018 +0200
Merge pull request #25 from rex4539/patch-25
Fix typo
commit a3b7da2c6d6691f38751292e1aea63498a325788
Merge: edd8586 60026ef
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:56:52 2018 +0200
Merge pull request #24 from rex4539/patch-24
Fix typo
commit edd8586fdf8c112f4c513804610c237d7e2e80ef
Merge: 0c28eb7 f979c00
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:56:12 2018 +0200
Merge pull request #23 from rex4539/patch-23
Fix typo
commit 0c28eb7717821b1d68016f40911d07f2a7231b4f
Merge: 775beb6 c900722
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:55:42 2018 +0200
Merge pull request #22 from rex4539/patch-22
Fix typo
commit 775beb625beb1fc5f72388c076b295de4b8ff039
Merge: a0cf889 1027543
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:55:16 2018 +0200
Merge pull request #21 from rex4539/patch-21
Fix typo
commit a0cf88971e756c37c406bab3066c11d6fc7f6d74
Merge: 4504b48 f3fa89b
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:54:44 2018 +0200
Merge pull request #20 from rex4539/patch-20
Fix typo
commit 4504b4824b3438e931ca8d24a56b1887657e87cd
Merge: dd0bcbf 2699eca
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:54:20 2018 +0200
Merge pull request #19 from rex4539/patch-19
Fix typo
commit dd0bcbfc89293e9760156d5534f3a558451e1f29
Merge: abfb65a f02ef2e
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:53:46 2018 +0200
Merge pull request #18 from rex4539/patch-18
Fix typos
commit abfb65afaed49c34b9875df79f6fe6eb2b7bf769
Merge: 68b46b7 6485c90
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:53:08 2018 +0200
Merge pull request #17 from rex4539/patch-17
Fix typo
commit 68b46b75d2e5b7ae97e83fc5541c46b4907a7899
Merge: a131e84 fcc0828
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:52:39 2018 +0200
Merge pull request #16 from rex4539/patch-16
Fix typo
commit a131e844652e58aff78fa8952e7547a9ba82b8a1
Merge: 8487c0e 8a688ff
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:51:54 2018 +0200
Merge pull request #15 from rex4539/patch-15
Fix typo
commit 8487c0e39092b74e977c7a60f4a07a27606756a8
Merge: bcc4cb4 bb60b83
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:51:28 2018 +0200
Merge pull request #14 from rex4539/patch-14
Fix typos
commit bcc4cb46130e789faa9adae9b159ca818f67ec52
Merge: 23e66e9 53539bb
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:51:00 2018 +0200
Merge pull request #13 from rex4539/patch-13
Fix typos
commit 23e66e956bff2d6935c7a4dd570d457294018a77
Merge: 56956cf 0808445
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:50:27 2018 +0200
Merge pull request #12 from rex4539/patch-12
Fix typo
commit 56956cf23ba1208aa39cb3ab1ef60375c6630263
Merge: 77007d4 7a4f064
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:49:59 2018 +0200
Merge pull request #11 from rex4539/patch-11
Fix typo
commit 77007d49fa1d8cb80aef02bea1dd15e522a47c90
Merge: e78ad0c 48c33fb
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:49:16 2018 +0200
Merge pull request #10 from rex4539/patch-10
Fix typo
commit e78ad0cf0d91955a848f5e953a042eabdcdac198
Merge: 38a3e08 809f01c
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:48:33 2018 +0200
Merge pull request #9 from rex4539/patch-9
Fix typo
commit 38a3e08699fe4c4ec715b1783dba18bff6b829fb
Merge: eee3c28 fec279c
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:48:05 2018 +0200
Merge pull request #8 from rex4539/patch-8
Fix typo
commit eee3c286eb84f994310142a9e7fdbd36a671e593
Merge: 702635b cf81b4e
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:47:33 2018 +0200
Merge pull request #7 from rex4539/patch-7
Fix typo
commit 702635bb34abb2f83ded27ae95deefd5b6e7df93
Merge: d7497ea 3bbcc3d
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:47:01 2018 +0200
Merge pull request #6 from rex4539/patch-6
Fix typo
commit d7497ea070e03380cf1d4f533b7dc4b881f724f8
Merge: bfcc1e8 f639727
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:45:33 2018 +0200
Merge pull request #5 from rex4539/patch-5
Fix typos
commit bfcc1e8ae2094ca4e9837f623999705f538aff04
Merge: f4440ec 55262fe
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:45:05 2018 +0200
Merge pull request #4 from rex4539/patch-4
Remove space for word "backup"
commit f4440ecd4a7367e6bc4a5f75bea112290017ed2b
Merge: f8b487f 61d5279
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:44:31 2018 +0200
Merge pull request #3 from rex4539/patch-3
Fix typos in zmq.md
commit f8b487f5699990fabc7fc383d02bc728db3cb9aa
Merge: 60104a7 f2ce50f
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:42:51 2018 +0200
Merge pull request #2 from rex4539/patch-2
Fix typo in security-warnings.md
commit 60104a7034f55284afb814e81a1430a8b2b0d8d1
Merge: be262f0
af7dfe0
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 08:41:48 2018 +0200
Merge pull request #1 from rex4539/patch-1
Fix typos
commit 1c65b2bd0c49f7f392d0e3a2db14ce1366a87171
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 07:35:26 2018 +0200
Fix typo
commit 88fa2d966a3b462ed34a9a4659fc390711cc0276
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 07:21:00 2018 +0200
Fix typo
commit 40e73e258671f21d2b2205509e9cae1f50294752
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 07:14:21 2018 +0200
Fix typo
commit 4567667fcc8b4197dfd51da34fe82b0f2fb78127
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 06:44:40 2018 +0200
Fix typos
commit 4aeaa3a3d6335302c53c0f5f4ef81de05e266479
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 05:55:25 2018 +0200
Fix typo
commit 5cdd1b29b4c90492aa15fed7940984e1d675052f
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 05:36:46 2018 +0200
Fix typo
commit 70130d05f1646c8b9fb1f33c4efbe2a5fcf7138b
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 05:28:21 2018 +0200
Fix typos
commit 33774261b1c63e5640aa1dd251edb67892ed7a5b
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 05:00:56 2018 +0200
Fix typo
commit 40643ebfcd85ee257a4576e85d2fb6c73dad17b5
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 04:51:57 2018 +0200
Fix typo
commit 23ead80e05116ebfeaac0a00d5bd4a158fbeb54e
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 04:29:53 2018 +0200
Fix typo
commit 3612eaba2dcf273e94cac9ad889723776ce55108
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 04:19:36 2018 +0200
Fix typos
commit 5c3177f5d191d1f4e4d9f78ae4b75381010f7768
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 04:13:03 2018 +0200
Fix typo
commit 60026efe27a39300e428879ad8dba94f19934870
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 04:08:09 2018 +0200
Fix typo
commit f979c0074efd66804f229c8b3cc6e812d7f26406
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 04:01:44 2018 +0200
Fix typo
commit c9007220a8a727c1cfe3b25b453c178eacd431f3
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 03:52:33 2018 +0200
Fix typo
commit 1027543bd30701c4b09aa66226281a10563db910
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 03:36:19 2018 +0200
Fix typo
commit f3fa89bcd30e0cb45ff4391e78d02452c9227be0
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 03:34:37 2018 +0200
Fix typo
commit 2699eca938f1e413a29d4408a271aaafd27969cc
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 03:30:29 2018 +0200
Fix typo
commit f02ef2e495fe43142d305f5c4f40dcfa3d2cb423
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 03:22:36 2018 +0200
Fix typos
commit 6485c908433bb91fd70d7e18cf3611c9a96115a7
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 03:10:06 2018 +0200
Fix typo
commit fcc082850564b14b86b1932dfc5a099816c72ef1
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 03:06:26 2018 +0200
Fix typo
commit 8a688ff7405d67bd4c77b0aa0ebdd4b4a8a9a6a7
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 03:02:50 2018 +0200
Fix typo
commit bb60b83853ed0a82ca47dd58d55f1849ddcf23ab
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 02:59:25 2018 +0200
Fix typos
commit 53539bb720c7676b9d37e25dde3423db3aa7bfa1
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 02:50:55 2018 +0200
Fix typos
commit 080844581d6488ab797ac188acae9c4b2e1d0c59
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 01:05:54 2018 +0200
Fix typo
commit 7a4f0649ac5e71f39f0bef7f2e1fcb6fafad0291
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 00:16:31 2018 +0200
Fix typo
commit 48c33fb3f9ab1ad287987d147ee4bbe186f7ade1
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 00:07:42 2018 +0200
Fix typo
commit 809f01ca4f785a7b5bc9cc2c388e0ae814ecaa95
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Tue Feb 27 00:02:34 2018 +0200
Fix typo
commit fec279cac89aa917be929447c81177811728361a
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Mon Feb 26 23:55:27 2018 +0200
Fix typo
commit cf81b4e12399570545372d4c9daceca8e70142d5
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Mon Feb 26 23:48:43 2018 +0200
Fix typo
commit 3bbcc3d9986caf8df99bec5d8a18d0f0c8990e06
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Mon Feb 26 23:28:52 2018 +0200
Fix typo
commit f639727525dbd23f5f2d0f89e7be13d868e984c3
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Mon Feb 26 23:13:12 2018 +0200
Fix typos
commit 55262fe9c5e1e127c6b817a0c2ab3f9db3ac35b9
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Mon Feb 26 22:46:52 2018 +0200
Remove space for word "backup"
commit 61d52797d4d26a90dcc15e2bcd6f19a5f36faac3
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Mon Feb 26 22:23:31 2018 +0200
Fix typos in zmq.md
commit f2ce50f10e67b4265e559a432681bc44828ae59b
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Mon Feb 26 22:12:58 2018 +0200
Fix typo in security-warnings.md
commit af7dfe046c12109e44ddc18dff07ede8755cf4f9
Author: Dimitris Apostolou <dimitris.apostolou@icloud.com>
Date: Mon Feb 26 21:59:24 2018 +0200
Fix typos
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2018-03-02 11:45:05 +00:00
Homu
a418756ef4
Auto merge of #2874 - arcalinea:tx_block_expiry, r=arcalinea
...
Transaction expiry height
Implements ZIP 203.
- Only applies after Overwinter blockheight.
Closes #754 .
2018-02-23 18:37:48 -08:00
Simon
72b2192950
Overwinter peer management and network handshaking.
...
Implements ZIP 201.
2018-02-23 14:21:27 -08:00
Jay Graber
9bb37bf0d5
Implement transaction expiry for Overwinter
2018-02-23 00:12:03 -08:00
Homu
d4d2844829
Auto merge of #2463 - str4d:713-rollback-limit, r=str4d
...
Implement roll-back limit for reorganisation
Part of #2905 . Closes #713 .
2018-02-20 15:17:22 -08:00
Jack Grigg
d55e5e778b
Cleanup: Wrap function arguments
2018-02-20 04:22:21 +00:00
Jack Grigg
be12669982
Add consensus branch ID parameter to SignatureHash, remove SigVersion parameter
...
We do not need to be able to calculate multiple SignatureHash versions for a
single transaction format; instead, we use the transaction format to determine
the SigVersion.
The consensus branch ID *does* need to be passed in from the outside, as only
the caller knows the context in which the SignatureHash is being calculated
(ie. mempool acceptance vs. block validation).
JoinSplit signature verification has been moved into ContextualCheckTransaction,
where the consensus branch ID can be obtained.
The argument to the sign command for zcash-tx has been modified to take a height
in addition to the optional sigtype flags.
2018-02-20 04:22:20 +00:00
Pieter Wuille
6514771a44
Rename to PrecomputedTransactionData
2018-02-20 04:22:20 +00:00
Pieter Wuille
f762d44973
Precompute sighashes
...
Original version by Nicolas Dorier. Precomputing version by Pieter Wuille.
Edited for Zcash by Ariel Gabizon and Jack Grigg
2018-02-20 04:22:20 +00:00
Pieter Wuille
c86a1cb86e
BIP143: Verification logic
...
Includes simplifications by Eric Lombrozo.
Edited for Zcash merge by Ariel Gabizon.
2018-02-20 04:22:19 +00:00
Pieter Wuille
2d42e1a993
Refactor script validation to observe amounts
...
This is a preparation for BIP143 support.
Edited for Zcash merge by Ariel Gabizon.
2018-02-20 04:22:19 +00:00
21E14
8cb98d9105
Remove obsolete reference to CValidationState from UpdateCoins.
2018-02-20 04:22:18 +00:00
Pieter Wuille
838e7a29cc
Report non-mandatory script failures correctly
2018-02-20 04:22:10 +00:00
Homu
49274558c6
Auto merge of #2940 - str4d:nu-activation-mempool-expiry, r=str4d
...
Mempool improvements, branch ID awareness
Whenever the local chain tip is updated, transactions in the mempool which commit to an
unmineable branch ID (for example, just before a network upgrade activates, where the
next block will have a different branch ID) will be removed.
Includes commits cherry-picked from the following upstream PRs:
- bitcoin/bitcoin#6654
- Only the mempool index change.
- bitcoin/bitcoin#6776
- bitcoin/bitcoin#7020
- bitcoin/bitcoin#6915
Part of #2074 .
2018-02-19 19:00:30 -08:00
Jack Grigg
34a64fe0a2
Remove mempool transactions which commit to an unmineable branch ID
2018-02-20 02:57:44 +00:00
Suhas Daftuar
233c9eb635
Fix removeForReorg to use MedianTimePast
2018-02-20 02:57:44 +00:00
Suhas Daftuar
e52ba51bda
Don't call removeForReorg if DisconnectTip fails
2018-02-20 02:57:44 +00:00
Suhas Daftuar
a4b2518068
Track coinbase spends in CTxMemPoolEntry
...
This allows us to optimize CTxMemPool::removeForReorg.
2018-02-20 02:57:44 +00:00
Matt Corallo
fe5cef0555
removeForReorg calls once-per-disconnect-> once-per-reorg
2018-02-20 02:57:44 +00:00
Matt Corallo
5aa165d557
Make indentation in ActivateBestChainStep readable
2018-02-20 02:57:44 +00:00
Matt Corallo
f5b35d2305
Fix removal of time-locked transactions during reorg
2018-02-20 02:57:43 +00:00
Jack Grigg
cb580c7241
Add rollback limit to block index rewinding
...
This will prevent users from starting their nodes if they switch between
software versions that implement different network upgrades. It will also
prevent users from using the testnet if they have more than MAX_REORG_LIMIT
post-upgrade blocks, and the upgrade point is shifted in a newer software
version.
2018-02-19 16:32:45 +00:00
Jack Grigg
57e6ecda5a
Implement roll-back limit for reorganisation
...
Closes #713 .
2018-02-19 16:32:42 +00:00
Simon
072099d788
Implementation of Overwinter transaction format ZIP 202.
2018-02-16 10:10:15 -08:00
Jack Grigg
828940b163
Use a boost::optional for nCachedBranchId
...
This enables us to distinguish between it being unset vs. being set to zero.
2018-02-06 22:42:18 +00:00
Jack Grigg
9e851450ab
Adjust rewind logic to use the network upgrade mechanism
2018-02-04 22:58:42 +00:00
Pieter Wuille
89f20450c2
Add rewind logic to deal with post-fork software updates
...
Includes logic for dealing with pruning by Suhas Daftuar.
2018-02-04 22:58:42 +00:00
Per Grön
39d2e9e0cb
Make some globals static that can be
...
External linkage does not help and just encourages sloppy dependencies
and can lead to weird issues when there are name collisions.
2018-01-22 18:20:47 +01:00
Suhas Daftuar
ba3cdf56d9
Enable block relay when pruning
2017-12-19 13:08:47 +00:00
Suhas Daftuar
7407c55cf5
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.
2017-12-19 13:08:38 +00:00
Jack Grigg
ad6a36ad02
Track net value entering and exiting the Sprout circuit
...
Delta values will be stored for new blocks; old blocks can be filled in by
re-indexing. The net value currently in the Sprout circuit is only calculated
when delta values for all previous blocks are present.
2017-12-14 22:06:11 +00:00
Simon
06c19063bb
Implement RPC shield_coinbase #2448 .
2017-09-21 15:04:12 -07:00
Sean Bowe
15a9937654
Revert "Delete old protocol version constants and simplify code that used them."
...
This reverts commit 5a49c929dd
.
2017-06-23 18:19:25 -06:00
Sean Bowe
9ad9a25eff
Revert "Remove an unneeded version workaround as per @str4d's review comment."
...
This reverts commit 1e9db0b38a
.
2017-06-23 18:19:17 -06:00
Homu
59de56eeca
Auto merge of #2342 - bitcartel:1081__mempoolpatch, r=str4d
...
Add ability for node to reject tx from mempool by number of tx inputs
Implement short-term solution described in #2343 so that users can respond promptly to critical short-term problems caused by quadratic validation scaling, such as the getblocktemplate latency, block propagation latency, and mempool size inflation issues described in #2333 .
2017-06-21 14:42:13 -07:00
Daira Hopwood
c2a722d3c4
Fix a comment that was made stale before launch by #1016 (commit 542da61
).
...
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2017-06-19 16:33:18 +01:00
Daira Hopwood
de609b8c54
Strict DER signatures are always enforced; remove the flag and code that used it.
...
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2017-06-17 17:19:08 +01:00
Simon
da6d93916d
Add option 'mempooltxinputlimit' so the mempool can reject a transaction
...
based on the number of transparent inputs.
2017-06-16 19:31:33 -07:00
Homu
3440de74ee
Auto merge of #2386 - str4d:2385-consensus-correction, r=str4d
...
Correct consensus logic in ContextualCheckInputs
Closes #2385 .
2017-06-15 18:50:03 -07:00
Jack Grigg
30006a2e79
Correct consensus logic in ContextualCheckInputs
...
Closes #2385 .
2017-06-16 13:45:19 +12:00
Homu
a23fdf862d
Auto merge of #2245 - daira:2244.remove-old-peer-workarounds, r=str4d
...
Delete old protocol version constants and simplify code that used them.
fixes #2244
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2017-06-13 23:10:19 -07:00
Jack Grigg
5b3bc9716e
Implement automatic shutdown of deprecated Zcash versions
...
Closes #2274 .
2017-05-12 14:41:46 +12:00
Daira Hopwood
1e9db0b38a
Remove an unneeded version workaround as per @str4d's review comment.
...
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2017-05-11 07:27:43 +01:00
Daira Hopwood
5a49c929dd
Delete old protocol version constants and simplify code that used them.
...
fixes #2244
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2017-04-09 13:19:48 +01:00
Wladimir J. van der Laan
eb5f63fe58
net: Automatically create hidden service, listen on Tor
...
Starting with Tor version 0.2.7.1 it is possible, through Tor's control socket
API, to create and destroy 'ephemeral' hidden services programmatically.
https://stem.torproject.org/api/control.html#stem.control.Controller.create_ephemeral_hidden_service
This means that if Tor is running (and proper authorization is available),
bitcoin automatically creates a hidden service to listen on, without user
manual configuration. This will positively affect the number of available
.onion nodes.
- When the node is started, connect to Tor through control socket
- Send `ADD_ONION` command
- First time:
- Make it create a hidden service key
- Save the key in the data directory for later usage
- Make it redirect port 8333 to the local port 8333 (or whatever port we're listening on).
- Keep control socket connection open for as long node is running. The hidden service will
(by default) automatically go away when the connection is closed.
2017-03-25 20:22:09 +13:00
zkbot
7d9bf65501
Auto merge of #2168 - str4d:2164-getblock-anchor, r=daira
...
Add anchor to output of getblock
Closes #2164 .
2017-03-23 18:21:10 +00:00
Jack Grigg
0bc1e2c431
Add anchor to output of getblock
...
Closes #2164 .
2017-03-10 20:09:40 +13:00
Simon
07cf426404
Remove stale Qt comments and dead code
2017-03-09 17:04:59 -08:00
zkbot
dadb1ab74c
Auto merge of #2101 - str4d:2074-tests, r=arcalinea
...
Bitcoin 0.12 test PRs 1
Cherry-picked from the following upstream PRs:
- bitcoin/bitcoin#6337
- bitcoin/bitcoin#6390
- bitcoin/bitcoin#5515
- bitcoin/bitcoin#6287 (partial, remainder included in bitcoin/bitcoin#6703)
- bitcoin/bitcoin#6465
Part of #2074 .
2017-03-03 21:25:03 +00:00
Cory Fields
72b25b0ffd
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.
2017-03-03 11:47:10 -08:00
Pavel Vasin
2af5a65066
remove unused inv from ConnectTip()
2017-03-03 10:57:22 -08:00
Jorge Timón
e079f010bf
Consensus: Refactor: Separate Consensus::CheckTxInputs and GetSpendHeight in CheckInputs
...
Zcash:
- Replaces some of the refactoring performed in #1017
- Exposed Consensus::CheckTxInputs for testing
2017-03-03 10:57:09 -08:00
Pieter Wuille
bfa832c7ed
Reduce checkpoints' effect on consensus.
...
Instead of only checking height to decide whether to disable script checks,
actually check whether a block is an ancestor of a checkpoint, up to which
headers have been validated. This means that we don't have to prevent
accepting a side branch anymore - it will be safe, just less fast to
do.
We still need to prevent being fed a multitude of low-difficulty headers
filling up our memory. The mechanism for that is unchanged for now: once
a checkpoint is reached with headers, no headers chain branching off before
that point are allowed anymore.
2017-03-03 10:57:07 -08:00
Philip Kaufmann
db954a65ac
use const references where appropriate
2017-03-03 10:57:05 -08:00
Jack Grigg
1f015f6afa
Add a flag for enabling experimental features
2017-02-09 22:10:58 +00:00
Jonas Schnelli
6a793d9c27
use CBlockIndex* insted of uint256 for UpdatedBlockTip signal
...
- removes mapBlockIndex find operation
- theoretically allows removing the cs_main lock during zqm notification while introducing a new file position lock
2017-02-08 22:10:42 +00:00
João Barbosa
7e6ec078fa
Add UpdatedBlockTip signal to CMainSignals and CValidationInterface
2017-02-08 22:10:42 +00:00
Jack Grigg
207924a1d5
Remove OpenSSL PRNG reseeding
...
Per https://download.libsodium.org/doc/generating_random_data/ reseeding the
default libsodium PRNG is not required.
2017-01-23 17:06:54 +01:00
Jack Grigg
6fb8d0c2d6
Skip JoinSplit verification before the last checkpoint
...
Part of #1749
2016-12-09 21:06:45 +13:00
Sean Bowe
bc59f53722
Isolate verification to a `ProofVerifier` context object that allows verification behavior to be tuned by the caller.
2016-12-05 12:40:06 -07:00
Simon
4e3ac9b015
Fix stale comment referencing upstream block interval
2016-11-18 10:26:20 -08:00
Simon
9ddb6ad028
Mempool will accept tx with joinsplits and the default z_sendmany fee.
...
Issue #1851 shows that a zaddr->taddr can be rejected from mempools
due to not meeting fee requirements given the size of the transaction.
Fee calculation for joinsplit txs has not yet been agreed upon, so
during this interim period, this patch ensures joinsplit txs using
the default fee are not rejected due to an insufficient fee.
2016-11-15 11:32:59 -08:00
Simon
ba0625f25d
Set default minrelaytxfee to 1000 zatoshis to match upstream.
...
A txout will be considered dust when it has a value <546 zatoshis.
Helps to address #1719 .
2016-11-15 10:48:51 -08:00
Jack Grigg
548bbd95f0
Adjust consensus rule to accept genesis block without height in coinbase
...
Closes #1753
2016-11-01 19:58:56 -05:00
Sean Bowe
7662d72bf4
Make more string changes.
2016-10-26 13:57:22 -06:00
Jack Grigg
a6df7ab567
Add a persistent screen showing basic node metrics
...
The screen is implemented using ANSI Escape sequences.
Closes #1331
2016-10-22 15:50:06 -05:00
zkbot
30d3d2dfd4
Auto merge of #1603 - str4d:1556-reject-old-block-versions, r=daira
...
Reject block versions lower than 4
Includes parts of #1554
Closes #1556
2016-10-22 14:32:40 -04:00
zkbot
f82273829a
Auto merge of #1600 - str4d:1557-consensus-rule-disallow-v0-txns, r=daira
...
Disallow v0 transactions as a consensus rule
Closes #1557
2016-10-22 13:50:52 -04:00
zkbot
e3c8e88e9b
Auto merge of #1588 - bitcartel:upstream_8427_dos_logging, r=daira
...
Upstream: Prevent possible DoS in logging
bitcoin/bitcoin#8427
2016-10-22 13:08:26 -04:00
Simon
432bc22ade
Patch backport of upstream 1588 as we don't (yet) use the NetMsgType namespace
2016-10-22 09:49:35 -07:00
Daira Hopwood
cb1246194e
Update the error message string for tx version too low. ref #1600
...
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-10-22 13:26:44 +01:00
Jack Grigg
80f4cdcf8f
Reject block versions lower than 4
...
Closes #1556
2016-10-22 00:43:26 -05:00
Jack Grigg
7ac924cdb7
Disallow v0 transactions as a consensus rule
...
Closes #1557
2016-10-22 00:40:50 -05:00
zkbot
f808be7546
Auto merge of #1589 - bitcartel:upstream_7856_one_getaddr_per_connection, r=daira
...
Upstream: Only send one GetAddr response per connection.
bitcoin/bitcoin#8427
2016-10-21 22:53:19 -04:00
Gregory Maxwell
a514cb2968
Only send one GetAddr response per connection.
...
This conserves resources from abusive peers that just send
getaddr in a loop. Also makes correlating addr messages
against INVs less effective.
2016-10-20 20:30:53 -07:00
Wladimir J. van der Laan
e496b2e391
net: Ignore `notfound` P2P messages
2016-10-20 20:22:34 -07:00
Daira Hopwood
e923e3ae0f
Make v2 transactions standard.
...
This also corrects a rule about admitting large orphan transactions into the mempool, to account for v2-specific fields.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2016-10-18 19:37:55 +01:00