Commit Graph

173 Commits

Author SHA1 Message Date
Alexander Block
f235b6a6ac Apply review suggestions/fixes 2017-12-20 07:51:20 +01:00
Wladimir J. van der Laan
11ac70af9e Merge #7542: Implement "feefilter" P2P message
0371797 modify release-notes.md and bips.md (Alex Morcos)
b536a6f Add p2p test for feefilter (Alex Morcos)
5fa66e4 Create SingleNodeConnCB class for RPC tests (Alex Morcos)
9e072a6 Implement "feefilter" P2P message. (Alex Morcos)
2017-12-19 13:18:30 +01:00
Pieter Wuille
23eeaeef8f Merge #7662: remove unused NOBLKS_VERSION_{START,END} constants
7d2f84c remove unused NOBLKS_VERSION_{START,END} constants (Pavel Vasin)
2017-12-19 12:55:48 +01:00
UdjinM6
362becbcce
Bump MIN_PEER_PROTO_VERSION to 70208 (#1772)
Drop old (pre-v0.12.2.x) peers
2017-12-12 04:24:10 +03:00
UdjinM6
3028af19f1
post-DIP0001 cleanup (#1763)
* post-DIP0001 cleanup

also fixes tests

* bump nMinimumChainWork and defaultAssumeValid
2017-12-07 12:43:23 +03:00
UdjinM6
02e882c3d8 bump MIN_MASTERNODE_PAYMENT_PROTO_VERSION_2 and PROTOCOL_VERSION to 70208 (#1636) 2017-09-17 20:43:58 +03:00
gladcow
a439e98408 Replace watchdogs with ping (#1491)
* Add hassentinelping to governanceinfo

* sentinelping rpc call

* additional fields in mnp

* sentinel ping implementation

* change sentinel state to byte in mnp

* use adjusted time in sentinel ping

* update nTimeLastWatchdogVote if sentinel ping is actual

* remove unused fields

* bump protocol to 70207

* Fix small issues

 - fix the error message text in CActivbeMasternodeUpdateSentinelPing;
 - add empty string before public: in CActiveMasternode class declaration;
 - rename field sentinelPing in CMasternodePing to sentinelIsActual and change $
 - decrease sentinelVersion field size to uint16_t;

* revert proto bump for MIN_... consts

* revert changes in getgovernanceinfo

* Update mn vote time for remote masternodes

 - call UpdateWatchdogVoteTime in CMasternodeMan::ProcessMessage
 - deserialize masternodeping from the previous version archive without exception
 - add ability to set time in UpdateWatchdogVoteTime
 - set nTimeLastWatchdogVote to masternode ping sigTime if sentinel is actual
 - bump CMasternodeMan::SERIALIZATION_VERSION_STRING

* remove mn state checks and add correct rpc param convertion

* fix var names

* Helper class for version in string and integer form

* String version in sentinel ping

Version format is "x.x.x"

* test for bacward compatibility in serialization

* Change VersionInfo class to convert functions
2017-07-04 20:31:57 +03:00
UdjinM6
9ed9474a9e Drop support for pre-12.1 nodes (#1394) 2017-03-14 09:22:00 +03:00
UdjinM6
cfc8954b42 Shift PS denoms (#1292)
* Shift PS denoms

* fix ui PS restrictions
2017-02-02 12:50:21 +04:00
UdjinM6
60409df822 InstantSend overhaul (#1288)
* Multi-quorum InstantSend, complete refactoring
+ cleanup for IS and partial protobump

* more changes:
- allow InstantSend tx to have 10 inputs max
- store many unique tx hashes in mapVotedOutpoints
- more checks in AcceptToMemoryPoolWorker (moved from ProcessMessage + CTxLockRequest(tx).IsValid() )

* More changes:
- let multiple lock candidates compete for votes
- fail to vote on the same outpoint twice early

* More changes:
- notify CInstantSend on UpdatedBlockTip -> remove cs_main from CheckAndRemove()
- notify CInstantSend on SyncTransaction -> count expiration block starting from the block corresponding tx was confirmed instead of the block lock candidate/vote was created
- fixed few locks

* add comments about nConfirmedHeight

* Fix "Block vs Lock" edge case

* Fix "Block vs Lock" edge case, p2

* Fix issues:
- fix logic for locking inputs and notifying - see UpdateLockedTransaction, TryToFinalizeLockCandidate
- add missing hash inserting in ProcessTxLockVote
- add nMaxBlocks param to ResolveConflicts to limit max depth allowed to disconnect blocks recursively
- fix false positive mempool conflict
- add missing mutex locks
- fix fRequireUnspent logic in CTxLockRequest::IsValid
2017-01-29 12:22:14 +04:00
Holger Schinzel
e1702cd4ec bump copyright notice to 2017 (#1207) 2016-12-20 17:26:45 +04:00
Tim Flynn
8c16880b15 Fix governance hash (#1208)
* Add vinMasternode to governance object hash and bump protocols

* Add collateral hash to governance object hash

* Added signature to object hash

* Revert "Add collateral hash to governance object hash"

This reverts commit 2f60c280f3.
2016-12-20 07:25:20 +04:00
UdjinM6
9c4e019c36 bump proto (#1162)
70202 -> 70203
2016-11-22 19:14:28 +04:00
UdjinM6
1eb399cf34 bump proto 70202 (#1054) 2016-09-30 22:19:26 +04:00
UdjinM6
231532d6d0 Align governance proto logic with logic for similar proto for other modules (#1049)
i.e MSG_GOVERNANCE_PEER_PROTO_VERSION -> MIN_GOVERNANCE_PEER_PROTO_VERSION (to check other peers) + PROTOCOL_VERSION (to announce own version)
2016-09-29 00:03:54 +04:00
UdjinM6
b7e81cb2bd Decouple mn payments from version.h, drop MIN_MNW_PEER_PROTO_VERSION (#960)
* Decouple min mnw versions from version.h, drop MIN_MNW_PEER_PROTO_VERSION in fav of GetMinMasternodePaymentsProto()

* Split min protocol validation for new and old winners in IsValid
2016-09-08 16:04:45 +04:00
UdjinM6
625b5ebb09 Merge #936: Bump NO_BLOOM_VERSION and SENDHEADERS_VERSION to match PROTOCOL_VERSION
411ad29 Bump NO_BLOOM_VERSION and SENDHEADERS_VERSION to match PROTOCOL_VERSION
2016-08-12 07:41:23 +02:00
UdjinM6
5a8c0c9b9d Merge #928: Refactor All The Things - part1
86d8505 Refactor CActiveMasternode
+ move strMasterNodeAddr to CActiveMasternode

a005c79 Refactor InstantSend
+ new lock cs_instantsend to protect maps on CleanTransactionLocksList()
+ new DEFAULT_INSTANTSEND_DEPTH constant
+ rename MIN_INSTANTX_PROTO_VERSION to MIN_INSTANTSEND_PROTO_VERSION and bump it

d24182c Refactor Privatesend
+ decouple from util.h and version.h
+ more functions for CDarksendBroadcastTx: constructors, signing, serialization
+ move from rand() to insecure_rand() in general but to GetRand() for session id
+ fix defaults
2016-08-05 21:49:45 +02:00
Evan Duffield
95ba71570b Merge #864: govobj sync
487674f Governance object/vote syncing fixes
- disable fCached values
- use two maps for storing votes, by hash and parent-hash/type
- disable part of flatdb.dump (still overwriting)
- fixed govobj/votes relay and sync

15821fe various fixes
- Added const where possible
- Uncommented sync block
- Protocol min 70201
- Fixed bug which flags invalid votes incorrectly
- Formatting

aa8fdd7 fix curly braces

d8e39b1 Fix GetTypeHash bug
- Should not collide based on the outcome

732a8a3 fixed mismatched index for vote map
2016-06-08 08:57:16 +02:00
UdjinM6
d705da741c fix masternode signatures, bump PROTOCOL_VERSION
strMessage for masternode broadcast (which we sign and verify) looks like this currently:
[2001:1608:45:3::242:ac11:6]:199991464464536
                                  ?~}&?Q?S?Ǚ?q	?0??????O?I/Y?(
?f?jJF??m??bssknN??9鲜JXVs?ә?5T?8??????~70200
which I believe in some cases leads to "Got bad Masternode ping signature" errors and banning.

I propose to change the way strMessage is composed so that it looks like this:
[2002:82ff:c04:2:a90f:2261:43c4:2745]:1999514645552319591ec70225aacadfafa4ab5d21e87cdce641fd4030d029485434533c5e481578a9d471089fb5ec170200

Further more nDos for old masternodes is set to 0 to stop false positives (message still gets rejected though).
2016-05-30 11:37:35 +03:00
Evan Duffield
860d29f9c4 Budget system -> Governance System
- Changed Action -> Signal for clarity
- CBudgetVote -> CGovernanceVote
2016-05-23 10:53:05 -07:00
UdjinM6
a5ac60b868 Merge remote-tracking branch 'bitcoin/0.12' into HEAD
+ merge fixes
+ keepass on evhttp
2016-02-06 16:48:04 +03:00
Suhas Daftuar
50262d8953 Allow block announcements with headers
This replaces using inv messages to announce new blocks, when a peer requests
(via the new "sendheaders" message) that blocks be announced with headers
instead of inv's.

Since headers-first was introduced, peers send getheaders messages in response
to an inv, which requires generating a block locator that is large compared to
the size of the header being requested, and requires an extra round-trip before
a reorg can be relayed.  Save time by tracking headers that a peer is likely to
know about, and send a headers chain that would connect to a peer's known
headers, unless the chain would be too big, in which case we revert to sending
an inv instead.

Based off of @sipa's commit to announce all blocks in a reorg via inv,
which has been squashed into this commit.

Rebased-by: Pieter Wuille
2015-11-29 11:59:23 +01:00
Matt Corallo
afb0ccaf9c 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-70011 nodes.

Also adds an option to turn bloom filter support off for nodes which
advertise a version number >= 70011. 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.

Implements BIP 111
2015-09-05 23:29:13 -07:00
Evan Duffield
4727d92d1f protocol bump 2015-08-13 16:35:38 -07:00
Evan Duffield
5e1a6afe7f Send nLastDsq with MasternodeBroadcast 2015-08-11 15:43:19 -07:00
Evan Duffield
57599e07e3 protocol bump 2015-08-04 11:22:31 -07:00
Evan Duffield
8b62e590df version bump / proto bump / try mining lock 2015-07-31 19:18:26 -07:00
Evan Duffield
bf18699ade client bump /proto bump 2015-07-27 12:35:17 -07:00
Evan Duffield
b04faf6e2d Update lastPing in mapSeen obj, remove ping from CMasternode hash 2015-07-25 21:13:17 -07:00
Evan Duffield
8187228be1 Fixed budget syncing issues / forking issues / syncing issues
- Budgets now store the seen objects locally so they're not overwritten when saving/loading to check validity of budget.dat
- Added safer sync "failure" mode, that will retry an hour later if the sync fails for some reason. This will stop the client from thinking it has budget data and rejecting blocks when they're valid.
- protocol bump
- version bump
2015-07-25 09:29:29 -07:00
Evan Duffield
61745d7724 Filter SigTime modes / version / proto bump 2015-07-24 16:10:44 -07:00
Evan Duffield
48f9e277f9 changed min ver back to 70066 2015-07-23 18:55:39 -07:00
Evan Duffield
ac947444da protocol bump 2015-07-23 15:02:15 -07:00
Evan Duffield
9aca541200 inc min peer version to 70094 for testing 2015-07-23 11:36:07 -07:00
Evan Duffield
388f22c576 Version 26 / New masternode consensus system
- Consensus system selects 1/10 of the oldest masternodes by payment, then selects payee by score from those. This fixes various race conditions when blocks are close together or inconsistant historical winner lists.
- Ask for up to 2 cycles of history
- Keep up to 5 cycles of history locally
2015-07-21 20:07:23 -07:00
Evan Duffield
3fae250190 Dont accept MNW from older masternodes 2015-07-21 08:09:17 -07:00
Evan Duffield
37f55a3181 Refactored masternode payments system
- Replaced coinbase cache in favor of using the masternode payments voting system only
- Syncing masternode payments now supports up to the syncing the entire payment list
2015-07-20 15:09:42 -07:00
Evan Duffield
841c7c270b version/proto bump 2015-07-18 12:29:19 -07:00
Evan Duffield
e65a1edce3 version / proto bump 2015-07-16 02:43:53 -07:00
UdjinM6
3ef2cec49d proto bump 2015-07-14 08:59:08 +03:00
Evan Duffield
bee6941195 Fixed Propagation Of Budgets / Proto Bump 2015-07-13 20:03:08 -07:00
Evan Duffield
40a14cb802 version bump / proto bump 2015-07-12 16:39:37 -07:00
Evan Duffield
2885f9e6ca protocol bump / version bump 2015-07-12 10:47:28 -07:00
Evan Duffield
c701839a43 Proposal Security Overhaul
Submissions to the network now require a fee to be paid to the network (mining fee) using a special transaction with a OP_RETURN && ProposalHash in one of the outputs. This allows the network to filter spam quickly, while also allowing anyone to submit a proposal to the network.

To implement these changes we've introduced a few new commands:

mnbudget prepare PROPOSAL-NAME URL PAYMENT_COUNT BLOCK_START DASH_ADDRESS DASH_AMOUNT YES|NO|ABSTAIN [USE_IX(TRUE|FALSE)]
- To create the special transaction

mnbudget submit PROPOSAL-NAME URL PAYMENT_COUNT BLOCK_START DASH_ADDRESS DASH_AMOUNT YES|NO|ABSTAIN FEE_TX
- After the transaction is accepted by the network and has 3 confirmations, you can submit the transaction to the network here

mnbudget show
- Get the proposal hash from here

mnbudget vote PROPOSAL-HASH YES|NO|ABSTAIN
- You can now simply vote by hash using this command
2015-07-11 13:20:12 -07:00
Evan Duffield
2d118769f0 version/proto bump 2015-07-08 10:27:26 -07:00
Evan Duffield
6c6a280df8 Version bump / more fixes 2015-07-06 13:37:43 -07:00
Evan Duffield
4596e7f336 Vastly improved proposal management implementation
-Syncing now happens in stages. Masternodes and Sporks, then Masternode winners, then proposals. Some of these require the masternode signatures, otherwise there are race conditions within the syncing process itself.
-Resigning - When a proposal is sent to the network initially it's signed by a masternode, if that masternode goes inactive the proposal becomes invalid. Resigning allows other masternodes to update proposal keep it valid with the coming and going of masternodes.
-Resigning compatibility - non masternodes will scan and flag proposals as invalid to accept updated owners.
-Invalid votes are now actively removed from the proposals when they go inactive
- Remove budgets with negative votes of more than 10% of network
- Only allow proposals into budget that have more than 10% of network support
- Faster removal of inactive masternodes
2015-07-06 10:46:58 -07:00
Evan Duffield
13bd6a15eb version/proto bump 2015-07-02 09:45:28 -07:00
Evan Duffield
2b75faefee Various fixes improvements
- Implemented spork for only paying new nodes after a period of time on mainnet
- protocol bump
- fixed a few issues with sporks. Spork show now shows all sporks, instead of the changed ones. IsSporkActive now supports sporks set to 0 as on.
2015-06-25 12:59:11 -07:00
Evan Duffield
cf53f2f897 protocol bump 2015-06-24 07:41:52 -07:00
Evan Duffield
3eeb33e577 version / proto bump 2015-06-23 10:53:22 -07:00
Evan Duffield
892212d407 version / min version bump 2015-06-21 09:32:32 -07:00
Evan Duffield
1cf09fae8e update protocol version 2015-06-20 19:03:06 -07:00
Evan Duffield
1e69e57662 Masternode Overhaul
- Added new CMasterBroadcast/CmasternodePing objects, with all of the code required to check each new message. SHould be much easier to tell what's going on now.
2015-04-17 23:44:49 -07:00
UdjinM6
8051f73446 bump MIN_POOL_PEER_PROTO_VERSION manually 2015-04-10 19:39:12 +03:00
UdjinM6
64eebc3316 0.12 dirty merge'n'fix (bitcoin 0.10) 2015-04-04 19:24:37 +03:00
Evan Duffield
41135ad456 version/proto/minproto bump 2015-03-24 14:14:55 -07:00
Evan Duffield
528cf61185 version bump / pose fixes 2015-03-23 10:20:56 -07:00
Evan Duffield
88de9f9c4d version bump 2015-03-22 07:31:55 -07:00
Evan Duffield
1c8bec258a protocol bump 2015-03-21 05:56:50 -07:00
Evan Duffield
8f39610ee4 Merge branch 'v0.11.2.x' of https://github.com/darkcoinproject/darkcoin into v11.2-dash 2015-03-18 12:50:02 -07:00
Evan Duffield
a1ac7ca8d3 Fixed blinding submission process 2015-03-18 09:47:01 -07:00
Evan Duffield
35bb210c6b Dash rebranding 2015-03-17 16:06:58 -07:00
Evan Duffield
820e660e10 version bump / protocol bump 2015-03-17 04:42:32 -07:00
Evan Duffield
441103ea71 update relay rules - protocol/version bump 2015-03-08 07:49:04 -07:00
Evan Duffield
8726e80132 version/protocol bump 2015-03-07 18:52:37 -07:00
Evan Duffield
1053c299ed version/protocol bump 2015-03-05 08:23:21 -07:00
UdjinM6
0747da6b36 Fix versions:
- bump PROTOCOL_VERSION (new collaterals are incompatible with 70066)
 - define MIN_POOL_PEER_PROTO_VERSION instead of confusing darkSendPool.MIN_PEER_PROTO_VERSION / bump it too
2015-02-26 20:29:57 +03:00
Evan Duffield
e6ec9665d5 min proto / version 2015-02-09 19:43:39 -07:00
Evan Duffield
38df2bf093 version bump/ proto bump 2015-02-09 13:43:10 -07:00
Evan Duffield
ddc31b0ff7 fixed issues with ix signature propagation 2015-02-07 20:54:36 -07:00
Evan Duffield
0d8ae6fc16 version/proto/min version bump 2015-02-07 20:23:43 -07:00
Evan Duffield
2f56ecb10a protocol version 2015-02-07 20:04:08 -07:00
Evan Duffield
ee37d4622e proto bump 2015-02-07 10:47:44 -07:00
Evan Duffield
3b35672bb8 version/proto bump 2015-02-06 12:53:31 -07:00
Evan Duffield
c56a54d211 enforce mn port on mainnet only 2015-02-06 12:41:39 -07:00
Evan Duffield
dfb3da5ec3 version/protocol bump/min protocol 2015-02-06 09:03:50 -07:00
Evan Duffield
64e8cbc661 version/protocol bump 2015-02-05 17:16:43 -07:00
Evan Duffield
ae0b956d82 protocol bump 2015-02-05 11:11:50 -07:00
Evan Duffield
c8fc2633ee Various IX improvements
- Fixed a segfault with listtransactions and IX
- Improved the feed back of IX while processing
2015-02-05 08:52:02 -07:00
Evan Duffield
77bade91be version bump 2015-02-04 21:05:36 -07:00
Evan Duffield
cf1ec7153b version bump 2015-02-03 10:19:53 -07:00
Evan Duffield
d512124bad Much lower bandwidth requirements for IX 2015-02-02 05:24:04 -07:00
Evan Duffield
837fe9b417 protocol bump / version bump 2015-02-01 15:49:24 -07:00
Evan Duffield
e6a937196d version & protocol bump 2015-01-21 08:03:14 -07:00
Evan Duffield
2737edbbf3 Removed non-denomational inputs (UdjinM6)
Exact amounts are now allocated directly to denominated
funds then submitted to the pool. This improves anonymity
by never having non-denomination inputs enter or exit the pool.
Randomness has also been added to the amount of each session to
improve anonymity.
2015-01-19 20:12:10 -07:00
vertoe
e6ce27defd Update copyright year 2015 2015-01-15 11:31:35 +01:00
Evan Duffield
4eb14d271b Change minversion to 70046 2015-01-01 11:15:24 -07:00
Evan Duffield
aa63a99162 Percision matching engine / masternode regtest
- Fixed matching engine issue causing false positive non-denominational matches
- Basic masternode support for regtest (still not working)
2014-12-30 11:14:58 -07:00
sandakersmann
f914f1a746
Added "Core" to copyright headers
Github-Pull: #5494
Rebased-From: 15de949bb9277e442302bdd8dee299a8d6deee60
2014-12-19 19:55:32 +01:00
Evan Duffield
2a33377fc8 Merged: Typo in log output (crowning) 2014-12-11 08:58:38 -07:00
Evan Duffield
78c5ca53f6 Merged in Darksend/InstantX/Masternodes
This doesn't include any of the changes in the darkcoin/v0.10.18.x branch. Those will be brought over into this commit history.
2014-12-11 08:10:35 -07:00
vertoe
311ee3ee74 Prepare KGW and DGWv3 implementation. 2014-12-02 12:43:06 +01:00
vertoe
dcdbfbcfe4 Update protocol versions 2014-11-27 18:29:18 +01:00
Michael Ford
6395ba3036 Update comments in version to be doxygen compatible 2014-10-31 08:20:17 +08:00
Cory Fields
71697f97d3 Separate protocol versioning from clientversion 2014-10-29 00:24:40 -04:00
Pieter Wuille
341735eb8f Headers-first synchronization
Many changes:
* Do not use 'getblocks', but 'getheaders', and use it to build a headers tree.
* Blocks are fetched in parallel from all available outbound peers, using a
  limited moving window. When one peer stalls the movement of the window, it is
  disconnected.
* No more orphan blocks. At all. We only ever request a block for which we have
  verified the headers, and store it to disk immediately. This means that a
  disk-fill attack would require PoW.
* Require protocol version 31800 for every peer (released in december 2010).
* No more syncnode (we sync from everyone we can, though limited to 1 during
  initial *headers* sync).
* Introduce some extra named constants, comments and asserts.
2014-10-14 15:42:01 -07:00
Philip Kaufmann
093303a887 add missing header end comments
- ensures a consistent usage in header files
- also add a blank line after the copyright header where missing
- also remove orphan new-lines at the end of some files
2014-08-28 22:25:21 +02:00
Wladimir J. van der Laan
70352e11c0
Revert "Add a getutxos command to the p2p protocol. It allows querying of the UTXO set"
This reverts commit da2ec100f3.
2014-08-27 18:04:29 +02:00