Commit graph

18114 commits

Author SHA1 Message Date
Gregory Sanders
9f5cc03f94 Read PAK list from connected blocks, save list, and boot transactions not conforming 2019-01-24 11:06:55 -05:00
Gregory Sanders
86fbc2418f GetPAKKeysFromCommitment utility function 2019-01-24 11:06:55 -05:00
Gregory Sanders
bf66d77a8d Add Read/Write functions to txdb for PAK lists 2019-01-24 11:06:55 -05:00
Gregory Sanders
2b4899dd3c PAK enforcement via standardness, drop multi-op_return restriction 2019-01-24 11:06:55 -05:00
Gregory Sanders
6679823fc0 Create global PAK lists for config and blockchain state 2019-01-24 11:06:55 -05:00
Gregory Sanders
8c7746c4de Add CScript::IsPayToPubkeyHash convienience function 2019-01-24 11:06:55 -05:00
Gregory Sanders
43424cbf71 Add PAK proof validation function 2019-01-24 11:06:55 -05:00
Gregory Sanders
378e594617 Define PAKList structure and operations 2019-01-24 11:06:25 -05:00
Gregory Sanders
40571ab6d4 Turn on secp-zkp experimental modules for PAK 2019-01-11 13:29:09 -05:00
Steven Roose
32aec9af0b
Merge #493: secp-zkp update to fix a couple Travis issues
624a6153f Squashed 'src/secp256k1/' changes from 53ad841..43dd1f4 (Gregory Sanders)

Pull request description:

  Type mismatch may have been causing rangeproof verification failure in secp unit tests on 32 bit systems.

  The rangeproof unit tests also run far too long, so iterations are cut down to avoid a 10 minute Travis timeout.

Tree-SHA512: a23ea2db3338d122fef9e05527f88850cc71f597d1afca6bad5978312587effa945effe7d61866d88a2e576ea14a177ca878f524f6fb74bdce8d0ae310e898c1
2019-01-11 18:25:49 +00:00
Gregory Sanders
34eeb2b20c Merge commit '624a6153f5' into 2019-1-secp-update 2019-01-04 10:39:37 -05:00
Gregory Sanders
624a6153f5 Squashed 'src/secp256k1/' changes from 53ad841..43dd1f4
43dd1f4 Merge pull request #40 from instagibbs/size_t
6532fa0 Merge pull request #39 from instagibbs/more_builds
2b2429d rangeproof: reduce iteration count in unit tests
12b0e5d Enable more builds with rest of experimental flags
8c444ee use proper types for rangeproof min/max

git-subtree-dir: src/secp256k1
git-subtree-split: 43dd1f4fe732268734f0b4efd8e99ea4ff1e49a1
2019-01-04 10:39:37 -05:00
Gregory Sanders
5a18be3769
Merge #458: [0.17] Add pegin validation
d358364 Integration test for pegins and pegouts (Steven Roose)
d888540 Add support for signed-blocks parent chains (Steven Roose)
b56f7da Add pegin and pegout RPC calls (Steven Roose)
7bb9380 Recognize pegout scripts (Steven Roose)
4688e3e Add periodic RPC recheck and invalid block recheck (Steven Roose)
0e4e834 Add pegin validation unit tests (Steven Roose)
5cbb014 Validation of pegin inputs (Steven Roose)
f4adb46 Add spentness flag to pegin coins (Steven Roose)
0d07d21 Change CCoinsMapKey to use chain-aware outpoints (Steven Roose)
22ec499 Add "vdata" field to createrawtransaction rpc (Steven Roose)
2db1f2b Add tweakfedpegscript rpc (Steven Roose)
d6686b6 Add getsidechaininfo rpc (Steven Roose)
fb8a453 Add pegin validation utility methods (Steven Roose)
037b260 Serialize parent blocks without pegin flags (Steven Roose)
89613b8 Skip normal validation of pegin inputs (Steven Roose)
ae54d4a Add pegin input serialization (Steven Roose)
ac1eadd Add support for NullData addresses (OP_RETURN) (Steven Roose)
18ee341 Add parent address encoding (Steven Roose)
d39d440 Add mainchain rpc client (Steven Roose)
238a72b Add arguments for parent chain characteristics (Steven Roose)
2019-01-02 14:48:57 -05:00
Steven Roose
d358364a36
Integration test for pegins and pegouts 2019-01-02 18:46:07 +01:00
Steven Roose
d8885400fb Add support for signed-blocks parent chains 2019-01-02 18:46:02 +01:00
Steven Roose
b56f7da6d6 Add pegin and pegout RPC calls 2019-01-02 18:46:02 +01:00
Steven Roose
7bb9380260 Recognize pegout scripts 2019-01-02 18:46:02 +01:00
Steven Roose
4688e3eb8e Add periodic RPC recheck and invalid block recheck 2019-01-02 18:46:02 +01:00
Steven Roose
0e4e83474e Add pegin validation unit tests 2019-01-02 18:46:02 +01:00
Steven Roose
5cbb014fe4 Validation of pegin inputs 2019-01-02 18:46:02 +01:00
Steven Roose
f4adb464e8 Add spentness flag to pegin coins 2019-01-02 18:46:00 +01:00
Steven Roose
0d07d21a2e Change CCoinsMapKey to use chain-aware outpoints 2019-01-02 16:14:19 +01:00
Steven Roose
22ec499327 Add "vdata" field to createrawtransaction rpc 2019-01-02 16:14:16 +01:00
Steven Roose
2db1f2b512 Add tweakfedpegscript rpc 2019-01-02 16:14:16 +01:00
Steven Roose
d6686b640d Add getsidechaininfo rpc 2019-01-02 16:14:16 +01:00
Steven Roose
fb8a4533df Add pegin validation utility methods 2019-01-02 16:14:09 +01:00
Steven Roose
037b2604d9 Serialize parent blocks without pegin flags 2019-01-02 16:13:32 +01:00
Steven Roose
89613b89c6 Skip normal validation of pegin inputs
Special validation added in next commits.
2019-01-02 16:12:55 +01:00
Steven Roose
ae54d4ad74 Add pegin input serialization 2019-01-02 16:12:50 +01:00
Steven Roose
ac1eadd0de Add support for NullData addresses (OP_RETURN) 2019-01-02 16:12:47 +01:00
Steven Roose
18ee3417d8 Add parent address encoding 2019-01-02 16:12:47 +01:00
Steven Roose
d39d440fcf Add mainchain rpc client 2019-01-02 16:12:47 +01:00
Steven Roose
238a72bead Add arguments for parent chain characteristics 2019-01-02 16:12:42 +01:00
Steven Roose
948f968f19
Merge #478: [0.17] Signed blocks feature
ff32b17c5 elements style genesis block commits to signblockscript in CommitToArguments (Gregory Sanders)
3169d380a added blocksign functional test (Gregory Sanders)
d78f0763a Signed blocks by default for custom chains (Gregory Sanders)
8723debb3 RPC support for signed blocks, compact blocks infrastructure (Gregory Sanders)
5877da8ed Expose signed block information over RPC when active (Gregory Sanders)
0d7e0f989 Miner support for signed blocks (Gregory Sanders)
0e473228e Expose signed blocks in validation.cpp (Gregory Sanders)
cd4e55391 CProof (re)setting and validation helper functions (Gregory Sanders)
2a3dcde9a Set genesis block CProof to signblockscript if signed blocks active (Gregory Sanders)
6ad13bbbe Signed blocks have work of 1 each (Gregory Sanders)
6856bebb9 Have chainstate store CProof for each block header (Gregory Sanders)
60f70620c Define block signatures, active IFF g_signed_blocks active (Gregory Sanders)
f7c5cf7d9 Add not yet enforced chainparam arguments for signed blocks (Gregory Sanders)
7bc578a39 Add SimpleSignatureChecker, SCRIPT_NO_SIGHASH_BYTE validation flag (Gregory Sanders)
6c9144698 Expose check_pow for compact blocks, helper to get available Tx list (Gregory Sanders)

Pull request description:

  Squashed and rebased version of: https://github.com/ElementsProject/elements/pull/452 on my own repo.

  Adds `-con_signed_blocks` which enables signed block mode with `-signblockscript` defining the encumbrance, which replaces pow-based data in block headers with that script. `-con_max_block_sig_size` is a novel argument compared to `elements-0.14.1`, which caps the total size of the signature in the block header. This avoids all number of DoS concerns and simplifies the miner code.

  This also creates signed block RPCs, as well as compact block RPCs for blocksigner use.

Tree-SHA512: af2624ff8d456673c40fba283f3cdbd2559b528b87ff9b10335f5fb893ff7d7b286655c9856bb23f84b5722c7ad0091e77208c89c18a6f71b1cbd18076841071
2018-12-19 20:38:51 +01:00
Gregory Sanders
ff32b17c5d elements style genesis block commits to signblockscript in CommitToArguments 2018-12-19 11:38:43 -05:00
Gregory Sanders
3169d380a6 added blocksign functional test 2018-12-19 11:38:43 -05:00
Gregory Sanders
d78f0763a1 Signed blocks by default for custom chains 2018-12-19 11:38:43 -05:00
Gregory Sanders
8723debb3d RPC support for signed blocks, compact blocks infrastructure 2018-12-19 11:38:43 -05:00
Gregory Sanders
5877da8ed9 Expose signed block information over RPC when active 2018-12-19 11:13:51 -05:00
Gregory Sanders
0d7e0f9898 Miner support for signed blocks 2018-12-19 11:13:51 -05:00
Gregory Sanders
0e473228e0 Expose signed blocks in validation.cpp 2018-12-19 11:13:50 -05:00
Gregory Sanders
cd4e553914 CProof (re)setting and validation helper functions 2018-12-19 11:13:50 -05:00
Gregory Sanders
2a3dcde9ac Set genesis block CProof to signblockscript if signed blocks active 2018-12-19 10:38:38 -05:00
Gregory Sanders
6ad13bbbe6 Signed blocks have work of 1 each 2018-12-19 10:38:38 -05:00
Gregory Sanders
6856bebb93 Have chainstate store CProof for each block header 2018-12-19 10:38:38 -05:00
Gregory Sanders
60f70620c2 Define block signatures, active IFF g_signed_blocks active 2018-12-19 10:38:38 -05:00
Gregory Sanders
f7c5cf7d92 Add not yet enforced chainparam arguments for signed blocks 2018-12-19 10:38:38 -05:00
Gregory Sanders
7bc578a398 Add SimpleSignatureChecker, SCRIPT_NO_SIGHASH_BYTE validation flag 2018-12-18 17:26:51 -05:00
Gregory Sanders
6c91446982 Expose check_pow for compact blocks, helper to get available Tx list 2018-12-18 17:26:51 -05:00
Gregory Sanders
d1eaa44ba1
Merge #481: [0.17] Full RBF support
c00d83f Set walletrbf default to 1 (Gregory Sanders)
0853a23 Make it possible to unconditionally RBF with mempoolreplacement=fee,-optin (Luke Dashjr)
d0cccad Recognise temporary REPLACE_BY_FEE service bit (Luke Dashjr)

Pull request description:

  Setting `-mempoolreplacement=fee,-optin` will cause the node to honor any RBF replacements even if they had the opt-out flags set.

  This also sets the default for the wallet to create bip125-signaling transactions.

Tree-SHA512: 04ecc010b6255b5346357f831609702a8a33531fb21e83e061b19945b4a83afe2e5bd82b6602e04394871d9f0c074c54847ff4616930bcd2c17f3c3ddd808fae
2018-12-18 17:19:39 -05:00