Commit graph

1487 commits

Author SHA1 Message Date
Andrew Poelstra
eebd0b7afa Merge 189c19e012 into merged_master (Bitcoin PR #15759) 2020-11-09 21:20:22 +00:00
Andrew Poelstra
9cc26a716a Merge 5b2fe5563b into merged_master (Elements PR #642)
FIXME: we disable standardness checks for the non-PAK node in the PAK tests.
This is because of a bug in Elements which causes non-PAK nodes to reject
pegouts for standardness reasons. Need to fix it after the rebase.
2020-11-09 21:20:21 +00:00
Andrew Poelstra
0003c1dd27 Merge 6e431296da into merged_master (Bitcoin PR #16745) 2020-11-09 21:20:20 +00:00
Andrew Poelstra
1f49034706 Merge adff8fe321 into merged_master (Bitcoin PR #16629) 2020-11-09 21:20:18 +00:00
Andrew Poelstra
329bba6d40 Merge 1d74693e8a into merged_master (Bitcoin PR #16555) 2020-11-09 21:20:16 +00:00
Andrew Poelstra
f7d178679f Merge 21a165325e into merged_master (Bitcoin PR #16620) 2020-11-09 21:20:15 +00:00
Andrew Poelstra
5f280a6068 Merge 1bf2ff2bf8 into merged_master (Bitcoin PR #16060) 2020-11-09 21:20:15 +00:00
Andrew Poelstra
028f2d94d1 Merge 85883a9f8e into merged_master (Bitcoin PR #16443) 2020-11-09 21:20:14 +00:00
Andrew Poelstra
d081803d89 Merge 67be6d7a17 into merged_master (Bitcoin PR #16248) 2020-11-09 21:20:14 +00:00
Andrew Poelstra
9c3480fea9 Merge 3a3d8b8357 into merged_master (Bitcoin PR #16097) 2020-11-09 21:20:11 +00:00
Andrew Poelstra
83019c2acd Merge d960d5ca99 into merged_master (Bitcoin PR #16362) 2020-11-09 21:20:08 +00:00
Andrew Poelstra
a221eb6f32 Merge 848f245d04 into merged_master (Bitcoin PR #16355) 2020-11-09 21:20:07 +00:00
Andrew Poelstra
b57516e11a Merge 24dbcf3808 into merged_master (Bitcoin PR #15891)
Disabled a test that `-acceptnonstdtxn` is disabled on mainnet, because
I couldn't figure out how to make the test jig choose mainnet.
2020-11-09 21:20:06 +00:00
Andrew Poelstra
1e58aac3d1 Merge 8f604361eb into merged_master (Bitcoin PR #16194) 2020-11-09 21:20:06 +00:00
Andrew Poelstra
15f0fb459f Merge 4882040182 into merged_master (Bitcoin PR #16291) 2020-11-09 03:58:20 +00:00
Andrew Poelstra
f7cb3a9645 Merge f373beebbc into merged_master (Bitcoin PR #16344) 2020-11-09 03:58:19 +00:00
Andrew Poelstra
62a63e4c6b Merge 8c69fae944 into merged_master (Bitcoin PR #15457) 2020-11-09 03:58:19 +00:00
Andrew Poelstra
e596f32b6f Merge 0853d8d2fd into merged_master (Bitcoin PR #16112) 2020-11-06 15:20:15 +00:00
Andrew Poelstra
83f93df4d0 Merge e2182b02b5 into merged_master (Bitcoin PR #16171) 2020-11-06 15:20:15 +00:00
Andrew Poelstra
e33ff205ee Merge 1a274bce4b into merged_master (Bitcoin PR #16205) 2020-11-06 15:20:15 +00:00
Andrew Poelstra
68d9951825 Merge d0f81a96d9 into merged_master (Bitcoin PR #16129) 2020-11-06 15:20:13 +00:00
Andrew Poelstra
54271a22ca Merge 94c7644da4 into merged_master (Elements PR #647) 2020-11-06 15:20:12 +00:00
Andrew Poelstra
cb15f46946 Merge 5d37c1bde0 into merged_master (Bitcoin PR #15976) 2020-11-06 15:20:12 +00:00
Andrew Poelstra
6a50576789 Merge 8ab4f282c0 into merged_master (Bitcoin PR #15622) 2020-10-29 22:46:15 +00:00
Andrew Poelstra
96169f79e3 Merge 7110d455eb into merged_master (Bitcoin PR #12980) 2020-10-29 19:54:46 +00:00
Andrew Poelstra
b8e90ed29c Merge df7addc4c6 into merged_master (Bitcoin PR #15990) 2020-10-29 18:38:42 +00:00
Andrew Poelstra
edf6f086a9 Merge 667a861741 into merged_master (Bitcoin PR #14364) 2020-10-29 16:46:02 +00:00
Andrew Poelstra
fbca167f8f Merge 08788ce170 into merged_master (Bitcoin PR #15890) 2020-10-29 04:40:50 +00:00
Andrew Poelstra
c91184f6c2 Merge b2a6b02161 into merged_master (Bitcoin PR #15948) 2020-10-29 02:36:55 +00:00
Andrew Poelstra
cf22dd0930 Merge 12aa2ac988 into merged_master (Bitcoin PR #15323) 2020-10-29 02:07:08 +00:00
Andrew Poelstra
44e5901b98 Merge 2c35fe6238 into merged_master (Bitcoin PR #15849) 2020-10-29 02:06:12 +00:00
Andrew Poelstra
bc1788c1d2 Merge 10852210bc into merged_master (Bitcoin PR #15877) 2020-10-29 02:04:47 +00:00
Andrew Poelstra
c4a1ce209a Merge 5873e9a3e8 into merged_master (Bitcoin PR #15919) 2020-10-29 02:04:39 +00:00
Andrew Poelstra
ad0dc00fc2 Merge 3356799ee3 into merged_master (Bitcoin PR #15778) 2020-10-28 23:22:29 +00:00
Andrew Poelstra
f4dc926a91 Merge 4bd7187da8 into merged_master (Bitcoin PR #15699) 2020-10-28 22:26:54 +00:00
Andrew Poelstra
e316ed34be Merge ae2c19f578 into merged_master (Bitcoin PR #15655) 2020-10-28 20:52:58 +00:00
Andrew Poelstra
52b8a8ee48 Merge e4beef611a into merged_master (Bitcoin PR #14121) 2020-10-28 16:46:47 +00:00
Andrew Poelstra
a8581ea138 Merge 6a135fbe5b into merged_master (Bitcoin PR #15638) 2020-10-28 03:16:57 +00:00
Andrew Poelstra
228f1a27ee Merge 5392aee64f into merged_master (Bitcoin PR #15629) 2020-10-28 03:11:10 +00:00
Andrew Poelstra
0fe213a5d9 Merge 656a15e539 into merged_master (Bitcoin PR #15620) 2020-10-28 00:35:45 +00:00
Andrew Poelstra
1e375568af Merge 2d46f1be0c into merged_master (Bitcoin PR #15118) 2020-10-27 21:52:10 +00:00
Andrew Poelstra
1b54a44e6b Merge b4fc5257b7 into merged_master (Bitcoin PR #15456) 2020-10-27 16:28:34 +00:00
fanquake
189c19e012
Merge #15759: p2p: Add 2 outbound block-relay-only connections
0ba08020c9 Disconnect peers violating blocks-only mode (Suhas Daftuar)
937eba91e1 doc: improve comments relating to block-relay-only peers (Suhas Daftuar)
430f489027 Don't relay addr messages to block-relay-only peers (Suhas Daftuar)
3a5e885306 Add 2 outbound block-relay-only connections (Suhas Daftuar)
b83f51a4bb Add comment explaining intended use of m_tx_relay (Suhas Daftuar)
e75c39cd42 Check that tx_relay is initialized before access (Suhas Daftuar)
c4aa2ba822 [refactor] Change tx_relay structure to be unique_ptr (Suhas Daftuar)
4de0dbac9b [refactor] Move tx relay state to separate structure (Suhas Daftuar)
26a93bce29 Remove unused variable (Suhas Daftuar)

Pull request description:

  Transaction relay is optimized for a combination of redundancy/robustness as well as bandwidth minimization -- as a result transaction relay leaks information that adversaries can use to infer the network topology.

  Network topology is better kept private for (at least) two reasons:

  (a) Knowledge of the network graph can make it easier to find the source IP of a given transaction.

  (b) Knowledge of the network graph could be used to split a target node or nodes from the honest network (eg by knowing which peers to attack in order to achieve a network split).

  We can eliminate the risks of (b) by separating block relay from transaction relay; inferring network connectivity from the relay of blocks/block headers is much more expensive for an adversary.

  After this commit, bitcoind will make 2 additional outbound connections that are only used for block relay. (In the future, we might consider rotating our transaction-relay peers to help limit the effects of (a).)

ACKs for top commit:
  sipa:
    ACK 0ba08020c9
  ajtowns:
    ACK 0ba08020c9 -- code review, ran tests. ran it on mainnet for a couple of days with MAX_BLOCKS_ONLY_CONNECTIONS upped from 2 to 16 and didn't observe any unexpected behaviour: it disconnected a couple of peers that tried sending inv's, and it successfully did compact block relay with some block relay peers.
  TheBlueMatt:
    re-utACK 0ba08020c9. Pointed out that stats.fRelayTxes was sometimes uninitialized for blocksonly peers (though its not a big deal and only effects RPC), which has since been fixed here. Otherwise changes are pretty trivial so looks good.
  jnewbery:
    utACK 0ba08020c9
  jamesob:
    ACK 0ba08020c9

Tree-SHA512: 4c3629434472c7dd4125253417b1be41967a508c3cfec8af5a34cad685464fbebbb6558f0f8f5c0d4463e3ffa4fa3aabd58247692cb9ab8395f4993078b9bcdf
2019-09-07 17:45:03 +08:00
Gregory Sanders
dce4cecdda Replace fedpeg template init check for pak one 2019-09-05 10:51:09 -04:00
Suhas Daftuar
3a5e885306 Add 2 outbound block-relay-only connections
Transaction relay is primarily optimized for balancing redundancy/robustness
with bandwidth minimization -- as a result transaction relay leaks information
that adversaries can use to infer the network topology.

Network topology is better kept private for (at least) two reasons:

(a) Knowledge of the network graph can make it easier to find the source IP of
a given transaction.

(b) Knowledge of the network graph could be used to split a target node or
nodes from the honest network (eg by knowing which peers to attack in order to
achieve a network split).

We can eliminate the risks of (b) by separating block relay from transaction
relay; inferring network connectivity from the relay of blocks/block headers is
much more expensive for an adversary.

After this commit, bitcoind will make 2 additional outbound connections that
are only used for block relay. (In the future, we might consider rotating our
transaction-relay peers to help limit the effects of (a).)
2019-09-04 14:58:36 -04:00
Gregory Sanders
16b87ba951 Disable PAK loading from configuration on init, disable pak test 2019-09-03 10:55:06 -04:00
MarcoFalke
fa70d199d0
util: Make util/error bilingual_str (refactor)
Translated strings should not end up in the debug log, stderr, or
returned by an RPC.

Changing the util methods in util/error to return a bilingual_str paves
the way to achieve this goal in the long term.
2019-08-28 15:52:26 -04:00
nicolas.dorier
66ad75472f
[Doc] Add documentation for the new whitelist permissions 2019-08-24 23:22:29 +09:00
Sjors Provoost
20ea9ef6ce
[doc] mention whitelist is inbound, and applies to blocksonly 2019-08-16 15:58:31 +02:00
MarcoFalke
21a165325e
Merge #16620: util: Move ResolveErrMsg to util/error
fa27c55b05 util: Move ResolveErrMsg to util/error (MarcoFalke)

Pull request description:

  Pull request https://github.com/bitcoin/bitcoin/pull/16248#discussion_r314035862 duplicated the body of this util function. The whole point of the util function is to be shared, so do that here as a fixup to #16248

ACKs for top commit:
  Sjors:
    utACK fa27c55
  ryanofsky:
    utACK fa27c55b05

Tree-SHA512: e2b25ae05082fe9d0ee94bdc7d51f801bd9f78e8fc2b141e9a313e008dbb8a77653fe876e111c802c676859c6b76c37a673d1f8cfbe7ad25607a5ffcffde19fd
2019-08-16 07:53:23 -04:00