Advertisement
EXTREMEXPLOIT

NAT NET NIT NOT NUT Gora ETA

Nov 20th, 2022 (edited)
748
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { createLibp2p } from 'libp2p'
  2. import { webSockets } from '@libp2p/websockets'
  3. import { webRTCStar } from '@libp2p/webrtc-star'
  4. import { noise } from '@chainsafe/libp2p-noise'
  5. import { mplex } from '@libp2p/mplex'
  6. import { bootstrap } from '@libp2p/bootstrap'
  7. import { peerIdFromString } from '@libp2p/peer-id'
  8.  
  9. document.addEventListener('DOMContentLoaded', async () => {
  10.     const wrtcStar = webRTCStar()
  11.  
  12.     // Create our libp2p node
  13.     const libp2p = await createLibp2p({
  14.         addresses: {
  15.             // Add the signaling server address, along with our PeerId to our multiaddrs list
  16.             // libp2p will automatically attempt to dial to the signaling server so that it can
  17.             // receive inbound connections from other peers
  18.             listen: [
  19.                 '/dns4/wrtc-star1.par.dwebops.pub/tcp/443/wss/p2p-webrtc-star',
  20.                 '/dns4/wrtc-star2.sjc.dwebops.pub/tcp/443/wss/p2p-webrtc-star'
  21.             ]
  22.         },
  23.         transports: [
  24.             webSockets(),
  25.             wrtcStar.transport
  26.         ],
  27.         connectionEncryption: [noise()],
  28.         streamMuxers: [mplex()],
  29.         peerDiscovery: [
  30.             wrtcStar.discovery,
  31.             bootstrap({
  32.                 list:
  33.                 [
  34.                     '/dnsaddr/bootstrap.libp2p.io/p2p/QmNnooDu7bfjPFoTZYxMNLWUQJyrVwtbZg5gBMjTezGAJN',
  35.                     '/dnsaddr/bootstrap.libp2p.io/p2p/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb',
  36.                     '/dnsaddr/bootstrap.libp2p.io/p2p/QmZa1sAxajnQjVM8WjWXoMbmPd7NsWhfKsPkErzpm9wGkp',
  37.                     '/dnsaddr/bootstrap.libp2p.io/p2p/QmQCU2EcMqAqQPR2i9bChDtGNJchTbq5TbXJJ16u19uLTa',
  38.                     '/dnsaddr/bootstrap.libp2p.io/p2p/QmcZf59bWwK5XFi76CZX8cbJ4BhTzzA3gU1ZjYZcYW3dwt'
  39.                 ]
  40.             })
  41.         ]
  42.     })
  43.  
  44.     // Listen for new peers
  45.     libp2p.addEventListener('peer:discovery', (evt) =>
  46.     {
  47.         const peer = evt.detail
  48.         console.log("Discovered Peer " + peer.id.toString())
  49.  
  50.         /*
  51.         if (!isConnectedTo(peer.id.toString()))
  52.         {
  53.             connectToPeer(peer.id.toString());
  54.         }
  55.         */
  56.  
  57.         // Attempt to connect to the peer and open a connection.
  58.         libp2p.dial(evt.detail.id).catch(err =>
  59.         {
  60.              console.error("Could not dial " + evt.detail.id)
  61.         })
  62.     })
  63.  
  64.     // Listen for new connections to peers.
  65.     libp2p.connectionManager.addEventListener('peer:connect', (evt) =>
  66.     {
  67.         const connection = evt.detail
  68.         console.log("Connected to" + connection.remotePeer.toString())
  69.     })
  70.  
  71.     // Listen for peers disconnecting.
  72.     libp2p.connectionManager.addEventListener('peer:disconnect', (evt) =>
  73.     {
  74.         const connection = evt.detail
  75.         console.log("Disconnected from " + connection.remotePeer.toString())
  76.     })
  77.  
  78.     await libp2p.start() // Initialize the libp2p node.
  79.     console.log('LibP2P Started')
  80.     console.log("Node ID" + libp2p.peerId.toString())
  81.  
  82.     // Store the Node ID in the HTML.
  83.     document.getElementById('node-id').innerHTML = 'Node ID: ' + libp2p.peerId.toString()
  84.  
  85.     window.libp2p = libp2p // Export the LibP2P node.
  86. })
  87.  
  88. function isConnectedTo(peerID)
  89. {
  90.     return libp2p.connectionManager.connections.has(peerID);
  91. }
  92.  
  93. function createPeerFromID(peerID)
  94. {
  95.     const peer = new peerIdFromString(peerID);
  96.     return peer;
  97. }
  98.  
  99. function connectToPeer(toID)
  100. {
  101.     var connectTo;
  102.     var informHTML = false;
  103.     if (toID === undefined)
  104.     {
  105.         toID = document.getElementById("peer-id").value;
  106.         connectTo = createPeerFromID(toID);
  107.         informHTML = true;
  108.     }
  109.     else
  110.     {
  111.         connectTo = createPeerFromID(toID);
  112.     }
  113.  
  114.     libp2p.dial(connectTo)
  115.     .then(() =>
  116.         {
  117.             console.log("Connected to " + toID);
  118.             if (informHTML)
  119.                 document.getElementById("connect-result").innerHTML = "Connected!";
  120.             return true;
  121.         })
  122.     .catch(err =>
  123.         {
  124.             console.error("Error Connecting to " + toID);
  125.             console.error(err);
  126.             if (informHTML)
  127.                 document.getElementById("connect-result").innerHTML = "Error Connecting!";
  128.             return false;
  129.         })
  130. }
  131.  
  132. window.isConnectedTo = isConnectedTo;
  133. window.connectToPeer = connectToPeer;
  134. window.createPeerFromID = createPeerFromID;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement