diff --git a/libp2p/libp2p.py b/libp2p/libp2p.py index 809e204e..a8f5d4b1 100644 --- a/libp2p/libp2p.py +++ b/libp2p/libp2p.py @@ -2,6 +2,7 @@ from peer.peerstore import PeerStore from network.swarm import Swarm from host.basic_host import BasicHost from transport.upgrader import TransportUpgrader +from transport.tcp.tcp import TCP from Crypto.PublicKey import RSA class Libp2p(object): @@ -26,14 +27,14 @@ class Libp2p(object): def new_node(self): - swarm = Swarm(self.idOpt, self.peerstore) + upgrader = TransportUpgrader(self.secOpt, self.transportOpt) + swarm = Swarm(self.idOpt, self.peerstore, upgrader) + tcp = TCP() + swarm.add_transport(tcp) + swarm.listen(self.transportOpts) host = BasicHost(swarm) - upgrader = TransportUpgrader(self.secOpt, self.muxerOpt) - # TODO transport upgrade + # TODO MuxedConnection currently contains all muxing logic + # TODO routing unimplemented - # TODO listen on addrs - - # TODO swarm add transports - - # TODO: return host + return host diff --git a/network/swarm.py b/network/swarm.py index 39fe2611..2e24a53d 100644 --- a/network/swarm.py +++ b/network/swarm.py @@ -88,7 +88,6 @@ class Swarm(INetwork): raw_conn = RawConnection(multiaddr_dict.host, multiaddr_dict.port, reader, writer) muxed_conn = self.upgrader.upgrade_connection(raw_conn, False) - # TODO: make generic protocols work muxed_stream, stream_id, protocol_id = muxed_conn.accept_stream() net_stream = NetStream(muxed_stream) net_stream.set_protocol(protocol_id)