import trio
import os
from py_ipfs_lite.config import Config
from py_ipfs_lite.peer import Peer
from libp2p.peer.peerinfo import info_from_p2p_addr
from multiaddr import Multiaddr

async def main():
    config = Config(blockstore_path=".py_ipfs_lite_test_conn/blocks")
    peer = Peer(config)
    await peer.start()
    try:
        # connect to a bootstrap node
        addr = Multiaddr("/ip4/104.131.131.82/tcp/4001/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ")
        info = info_from_p2p_addr(addr)
        await peer.host.connect(info)
        
        # let's wait a bit for connection and stats
        await trio.sleep(3)
        
        # print stats
        stats = list(peer.connection_tracker.stats.values())
        for s in stats:
            print("Peer:", s.peer_id)
            print("Security:", s.security)
            print("Muxer:", s.muxer)
            print("Transport:", s.transport)
    finally:
        await peer.close()

trio.run(main)
