From 8c5aa7cbe74c308f4ee59f4b20e76822a055bd89 Mon Sep 17 00:00:00 2001 From: Eugene Kabanov Date: Tue, 21 Jul 2020 19:07:14 +0300 Subject: [PATCH] Use only secp256k1 as identity in libp2p. (#1343) * Add libp2p_pki_schemes to beacon_node and inspector configuration files. * Fix inspector.nim.cfg file name. * Do not allow beacon_node to be build without libp2p_pki_schemes option value. * Fix compilation problems. * Fix tests. * Fix validator_client. --- beacon_chain/beacon_node.nim.cfg | 3 +++ beacon_chain/eth2_network.nim | 6 ++++++ beacon_chain/inspector.nim.cfg | 2 ++ beacon_chain/validator_client.nim.cfg | 3 +++ tests/all_tests.nim.cfg | 2 ++ 5 files changed, 16 insertions(+) create mode 100644 beacon_chain/inspector.nim.cfg diff --git a/beacon_chain/beacon_node.nim.cfg b/beacon_chain/beacon_node.nim.cfg index b00a3586b..88e356aa5 100644 --- a/beacon_chain/beacon_node.nim.cfg +++ b/beacon_chain/beacon_node.nim.cfg @@ -2,6 +2,9 @@ -d:"chronicles_runtime_filtering=on" -d:"chronicles_default_output_device=dynamic" +# Use only `secp256k1` public key cryptography as an identity in LibP2P. +-d:"libp2p_pki_schemes=secp256k1" + @if testnet_servers_image: -d:"chronicles_sinks=json" -d:"withoutPrompt" diff --git a/beacon_chain/eth2_network.nim b/beacon_chain/eth2_network.nim index 53de2af2b..bf463ee27 100644 --- a/beacon_chain/eth2_network.nim +++ b/beacon_chain/eth2_network.nim @@ -249,6 +249,12 @@ const useNativeSnappy = when snappy_implementation == "native": true elif snappy_implementation == "libp2p": false else: {.fatal: "Please set snappy_implementation to either 'libp2p' or 'native'".} +const + libp2p_pki_schemes {.strdefine.} = "" + +when libp2p_pki_schemes != "secp256k1": + {.fatal: "Incorrect building process, please use -d:\"libp2p_pki_schemes=secp256k1\"".} + template libp2pProtocol*(name: string, version: int) {.pragma.} template `$`*(peer: Peer): string = id(peer.info) diff --git a/beacon_chain/inspector.nim.cfg b/beacon_chain/inspector.nim.cfg new file mode 100644 index 000000000..e233b3ddc --- /dev/null +++ b/beacon_chain/inspector.nim.cfg @@ -0,0 +1,2 @@ +# Use only `secp256k1` public key cryptography as an identity in LibP2P. +-d:"libp2p_pki_schemes=secp256k1" diff --git a/beacon_chain/validator_client.nim.cfg b/beacon_chain/validator_client.nim.cfg index b3f3c97d0..3f239b32b 100644 --- a/beacon_chain/validator_client.nim.cfg +++ b/beacon_chain/validator_client.nim.cfg @@ -2,6 +2,9 @@ -d:"chronicles_runtime_filtering=on" -d:"chronicles_default_output_device=dynamic" +# Use only `secp256k1` public key cryptography as an identity in LibP2P. +-d:"libp2p_pki_schemes=secp256k1" + @if testnet_servers_image: -d:"chronicles_sinks=json" -d:"withoutPrompt" diff --git a/tests/all_tests.nim.cfg b/tests/all_tests.nim.cfg index 215168de2..8e810346e 100644 --- a/tests/all_tests.nim.cfg +++ b/tests/all_tests.nim.cfg @@ -3,3 +3,5 @@ # Investigate why it's needed. -d:withoutPrompt +# Use only `secp256k1` public key cryptography as an identity in LibP2P. +-d:"libp2p_pki_schemes=secp256k1"