Browse Source

darkfid2: enabled p2p nets

aggstam 3 years ago
parent
commit
ec10550a68
2 changed files with 47 additions and 20 deletions
  1. 17 17
      bin/darkfid2/darkfid_config.toml
  2. 30 3
      bin/darkfid2/src/main.rs

+ 17 - 17
bin/darkfid2/darkfid_config.toml

@@ -7,7 +7,7 @@
 ## uncommenting, or by using the command-line.
 
 # JSON-RPC listen URL
-rpc_listen = "tcp://127.0.0.1:8340"
+rpc_listen = "tcp://127.0.0.1:18340"
 
 # Participate in the consensus protocol
 consensus = false
@@ -19,30 +19,30 @@ testing_mode = false
 [sync_net]
 # P2P accept addresses the instance listens on for inbound connections
 # You can also use an IPv6 address
-inbound = ["tls://0.0.0.0:8342"]
+inbound = ["tcp+tls://0.0.0.0:8342"]
 # IPv6 version:
-#inbound = ["tls://[::]:8342"]
+#inbound = ["tcp+tls://[::]:8342"]
 # Combined:
-#inbound = ["tls://0.0.0.0:8342", "tls://[::]:8342"]
+#inbound = ["tcp+tls://0.0.0.0:8342", "tcp+tls://[::]:8342"]
 
 # P2P external addresses the instance advertises so other peers can
 # reach us and connect to us, as long as inbound addrs are configured.
 # You can also use an IPv6 address
-#external_addrs = ["tls://XXX.XXX.XXX.XXX:8342"]
+#external_addrs = ["tcp+tls://XXX.XXX.XXX.XXX:8342"]
 # IPv6 version:
-#external_addrs = ["tls://[ipv6 address here]:8342"]
+#external_addrs = ["tcp+tls://[ipv6 address here]:8342"]
 # Combined:
-#external_addrs = ["tls://XXX.XXX.XXX.XXX:8342", "tls://[ipv6 address here]:8342"]
+#external_addrs = ["tcp+tls://XXX.XXX.XXX.XXX:8342", "tcp+tls://[ipv6 address here]:8342"]
 
 # Peer nodes to manually connect to
 #peers = []
 
 # Seed nodes to connect to for peer discovery and/or adversising our
 # own external addresses
-#seeds = ["tls://lilith0.dark.fi:8342", "tls://lilith1.dark.fi:8342"]
+#seeds = ["tcp+tls://lilith0.dark.fi:8342", "tcp+tls://lilith1.dark.fi:8342"]
 
 # Whitelisted network transports for outbound connections
-#allowed_transports = ["tls"]
+allowed_transports = ["tcp+tls"]
 
 # Allow transport mixing (e.g. Tor would be allowed to connect to `tcp://`)
 #transport_mixing = true
@@ -70,30 +70,30 @@ outbound_connections = 8
 [consensus_net]
 # P2P accept addresses the instance listens on for inbound connections
 # You can also use an IPv6 address
-#inbound = ["tls://0.0.0.0:8341"]
+#inbound = ["tcp+tls://0.0.0.0:8341"]
 # IPv6 version:
-#inbound = ["tls://[::]:8341"]
+#inbound = ["tcp+tls://[::]:8341"]
 # Combined:
-#inbound = ["tls://0.0.0.0:8341", "tls://[::]:8341"]
+#inbound = ["tcp+tls://0.0.0.0:8341", "tcp+tls://[::]:8341"]
 
 # P2P external addresses the instance advertises so other peers can
 # reach us and connect to us, as long as inbound addrs are configured.
 # You can also use an IPv6 address
-#external_addrs = ["tls://XXX.XXX.XXX.XXX:8341"]
+#external_addrs = ["tcp+tls://XXX.XXX.XXX.XXX:8341"]
 # IPv6 version:
-#external_addrs = ["tls://[ipv6 address here]:8341"]
+#external_addrs = ["tcp+tls://[ipv6 address here]:8341"]
 # Combined:
-#external_addrs = ["tls://XXX.XXX.XXX.XXX:8341", "tls://[ipv6 address here]:8341"]
+#external_addrs = ["tcp+tls://XXX.XXX.XXX.XXX:8341", "tcp+tls://[ipv6 address here]:8341"]
 
 # Peer nodes to manually connect to
 #peers = []
 
 # Seed nodes to connect to for peer discovery and/or adversising our
 # own external addresses
-#seeds = ["tls://lilith0.dark.fi:8341", "tls://lilith1.dark.fi:8341"]
+#seeds = ["tcp+tls://lilith0.dark.fi:8341", "tcp+tls://lilith1.dark.fi:8341"]
 
 # Whitelisted network transports for outbound connections
-#allowed_transports = ["tls"]
+#allowed_transports = ["tcp+tls"]
 
 # Allow transport mixing (e.g. Tor would be allowed to connect to `tcp://`)
 #transport_mixing = true

+ 30 - 3
bin/darkfid2/src/main.rs

@@ -17,7 +17,7 @@
  */
 
 use async_std::{stream::StreamExt, sync::Arc};
-use log::info;
+use log::{error, info};
 use structopt_toml::{serde::Deserialize, structopt::StructOpt, StructOptToml};
 use url::Url;
 
@@ -140,7 +140,7 @@ async fn realmain(args: Args, ex: Arc<smol::Executor<'_>>) -> Result<()> {
 
     // Initialize syncing P2P network
     let sync_p2p = {
-        info!("Registering sync network P2P protocols...");
+        info!(target: "darkfid", "Registering sync network P2P protocols...");
         let p2p = P2p::new(args.sync_net.into()).await;
         let registry = p2p.protocol_registry();
 
@@ -173,7 +173,7 @@ async fn realmain(args: Args, ex: Arc<smol::Executor<'_>>) -> Result<()> {
     };
 
     // Initialize node
-    let darkfid = Darkfid::new(sync_p2p, consensus_p2p, validator).await;
+    let darkfid = Darkfid::new(sync_p2p.clone(), consensus_p2p.clone(), validator).await;
     let darkfid = Arc::new(darkfid);
     info!(target: "darkfid", "Node initialized successfully!");
 
@@ -182,9 +182,36 @@ async fn realmain(args: Args, ex: Arc<smol::Executor<'_>>) -> Result<()> {
     let _ex = ex.clone();
     ex.spawn(listen_and_serve(args.rpc_listen, darkfid.clone(), _ex)).detach();
 
+    info!(target: "darkfid", "Starting sync P2P network");
+    sync_p2p.clone().start(ex.clone()).await?;
+    let _ex = ex.clone();
+    let _sync_p2p = sync_p2p.clone();
+    ex.spawn(async move {
+        if let Err(e) = _sync_p2p.run(_ex).await {
+            error!(target: "darkfid", "Failed starting sync P2P network: {}", e);
+        }
+    })
+    .detach();
+
     // Simulate that we have synced
     darkfid.validator.write().await.synced = true;
 
+    // Consensus protocol
+    if args.consensus && darkfid.validator.write().await.synced {
+        info!("Starting consensus P2P network");
+        consensus_p2p.clone().unwrap().start(ex.clone()).await?;
+        let _ex = ex.clone();
+        let _consensus_p2p = consensus_p2p.clone();
+        ex.spawn(async move {
+            if let Err(e) = _consensus_p2p.unwrap().run(_ex).await {
+                error!("Failed starting consensus P2P network: {}", e);
+            }
+        })
+        .detach();
+    } else {
+        info!("Not starting consensus P2P network");
+    }
+
     // Signal handling for graceful termination.
     let (signals_handler, signals_task) = SignalHandler::new()?;
     signals_handler.wait_termination(signals_task).await?;