From ef2f037571c0b2eb362652f9786534f3108e8397 Mon Sep 17 00:00:00 2001 From: Jacek Sieka Date: Wed, 1 Jul 2020 13:41:40 +0200 Subject: [PATCH] bump libp2p (#1267) --- beacon_chain/beacon_node_common.nim | 1 + beacon_chain/eth2_network.nim | 6 +++--- beacon_chain/inspector.nim | 9 +++++---- beacon_chain/libp2p_json_serialization.nim | 14 +++++++++----- vendor/nim-libp2p | 2 +- 5 files changed, 19 insertions(+), 13 deletions(-) diff --git a/beacon_chain/beacon_node_common.nim b/beacon_chain/beacon_node_common.nim index f999c740d..fbeed6b14 100644 --- a/beacon_chain/beacon_node_common.nim +++ b/beacon_chain/beacon_node_common.nim @@ -28,6 +28,7 @@ type Eth2Digest = digest.Eth2Digest type RpcServer* = RpcHttpServer + KeyPair* = eth2_network.KeyPair BeaconNode* = ref object nickname*: string diff --git a/beacon_chain/eth2_network.nim b/beacon_chain/eth2_network.nim index 837ea3f65..7d617245b 100644 --- a/beacon_chain/eth2_network.nim +++ b/beacon_chain/eth2_network.nim @@ -11,7 +11,7 @@ import json_serialization, json_serialization/std/[net, options], chronos, chronicles, metrics, # TODO: create simpler to use libp2p modules that use re-exports - libp2p/[switch, standard_setup, peerinfo, peer, errors, + libp2p/[switch, standard_setup, peerinfo, errors, multiaddress, multicodec, crypto/crypto, crypto/secp, protocols/identify, protocols/protocol], libp2p/protocols/secure/[secure, secio], @@ -27,7 +27,7 @@ import export version, multiaddress, peer_pool, peerinfo, p2pProtocol, - libp2p_json_serialization, ssz_serialization, peer, results + libp2p_json_serialization, ssz_serialization, results logScope: topics = "networking" @@ -694,7 +694,7 @@ proc toPeerInfo*(r: enr.TypedRecord): PeerInfo = discard if addresses.len > 0: - return PeerInfo.init(peerId, addresses) + return PeerInfo.init(peerId.tryGet(), addresses) proc toPeerInfo(r: Option[enr.TypedRecord]): PeerInfo = if r.isSome: diff --git a/beacon_chain/inspector.nim b/beacon_chain/inspector.nim index 3a7d6cb8a..f25af1d5b 100644 --- a/beacon_chain/inspector.nim +++ b/beacon_chain/inspector.nim @@ -6,8 +6,7 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import sequtils, strutils, os, tables, options import confutils, chronicles, chronos -import libp2p/[switch, standard_setup, multiaddress, multicodec, - peer, peerinfo, peer] +import libp2p/[switch, standard_setup, multiaddress, multicodec, peerinfo] import libp2p/crypto/crypto as lcrypto import libp2p/crypto/secp as lsecp import eth/p2p/discoveryv5/enr as enr @@ -294,7 +293,9 @@ proc init*(p: typedesc[PeerInfo], ## Initialize PeerInfo using address which includes PeerID. if IPFS.match(maddr): let peerid = ? protoAddress(? maddr[2]) - result = ok(PeerInfo.init(PeerID.init(peerid), [(? maddr[0]) & (? maddr[1])])) + result = ok(PeerInfo.init( + ? (PeerID.init(peerid).mapErr(proc (v: cstring): string = $v)), + [(? maddr[0]) & (? maddr[1])])) proc init*(p: typedesc[PeerInfo], enraddr: enr.Record): StrRes[PeerInfo] = @@ -326,7 +327,7 @@ proc init*(p: typedesc[PeerInfo], let ma = (? MultiAddress.init(multiCodec("ip6"), trec.ip6.get())) & (? MultiAddress.init(multiCodec("udp"), trec.udp6.get())) mas.add(ma) - result = ok PeerInfo.init(peerid, mas) + result = ok PeerInfo.init(peerid.tryGet(), mas) except CatchableError as exc: warn "Error", errMsg = exc.msg, record = enraddr.toUri() diff --git a/beacon_chain/libp2p_json_serialization.nim b/beacon_chain/libp2p_json_serialization.nim index 11477728e..d6199451d 100644 --- a/beacon_chain/libp2p_json_serialization.nim +++ b/beacon_chain/libp2p_json_serialization.nim @@ -5,15 +5,19 @@ proc writeValue*(writer: var JsonWriter, value: PeerID) {.inline.} = writer.writeValue value.pretty proc readValue*(reader: var JsonReader, value: var PeerID) {.inline.} = - value = PeerID.init reader.readValue(string) + let res = PeerID.init reader.readValue(string) + if res.isOk: + value = res.get() + else: + raiseUnexpectedValue(reader, $res.error) proc writeValue*(writer: var JsonWriter, value: MultiAddress) {.inline.} = writer.writeValue $value proc readValue*(reader: var JsonReader, value: var MultiAddress) {.inline.} = - let addressRes = MultiAddress.init reader.readValue(string) - if addressRes.isOk: - value = addressRes.value + let res = MultiAddress.init reader.readValue(string) + if res.isOk: + value = res.value else: - raiseUnexpectedValue(reader, "Invalid MultiAddress value") + raiseUnexpectedValue(reader, $res.error) diff --git a/vendor/nim-libp2p b/vendor/nim-libp2p index c788a6a3c..b49c619ca 160000 --- a/vendor/nim-libp2p +++ b/vendor/nim-libp2p @@ -1 +1 @@ -Subproject commit c788a6a3c0ca614be4c67cc566aee6877da0250b +Subproject commit b49c619ca851ec6e832243b633efee4c57af5e40