344 Commits

Author SHA1 Message Date
G10h4ck
7e2c613054 net: add UPnP IGD NAT traversal support
Implement opt-in UPnP IGD port forwarding for P2P nodes behind NAT,
enabling inbound connections without manual router configuration.
This is gated behind the `upnp-igd` feature flag.

Changes:
- Add PortMapping trait for pluggable port-mapping protocols (UPnP, PCP, NAT-PMP...)
- Add optional oxy-upnp-igd v0.1 dependency behind `upnp-igd`
- Parse UpnpConfig (enabled, discovery_timeout, lease_duration, description,
  refresh_interval) from listener URL
- Periodically refresh external address and publish it to the P2P network
- Add UPnP-specific error handling
- Enable `upnp-igd` feature in darkirc (opt-in; not enabled by default)

Port mappings are created lazily once a gateway is discovered and are
automatically renewed. External addresses are tagged `source=upnp` and
refreshed at a configurable interval.

Signed-off-by: Gioacchino Mazzurco <gio@polymathes.cc>
Reviewed-by: grug
Reviewed-by: upgrayedd
2026-02-13 13:33:29 +02:00
skoupidi
7181db089e chore: updated sled-overlay to new version 2026-02-09 18:16:37 +02:00
skoupidi
3bbe1166fa chore: updated sled-overlay to new version 2026-02-03 20:53:26 +02:00
skoupidi
cb07f10595 chore: updated sled-overlay to new version 2026-02-02 23:20:13 +02:00
skoupidi
67a8cb3833 chore: updated sled-overlay to new version 2026-02-02 17:55:35 +02:00
skoupidi
7914422d8b chore: updated sled-overlay to new version 2026-01-24 16:58:57 +02:00
x
3aa0e3b722 zkas: Implement debug symbols in the compiled binary 2026-01-07 09:22:55 +00:00
x
4f30aae91d doc: Update book links 2026-01-02 17:28:09 +00:00
x
fcdf5ee488 chore: Update crate dependencies 2026-01-01 19:48:04 +00:00
x
ed9be657ab serial: Bring it back home 2026-01-01 19:48:04 +00:00
x
9785777642 chore: Update copyright license year
Happy 2026!
2026-01-01 11:40:45 +00:00
dasman
db41ac54f7 darkirc: reverse commitbot's push events order 2025-12-31 17:11:56 +03:00
jkds
19c1b8ffea rpc: remove p2p.set_outbound_connections method 2025-12-31 04:07:56 +01:00
jkds
b60d550a3f rpc: move set_outbound_connections from darkirc into rpc p2p handler 2025-12-30 16:52:20 +01:00
jkds
e9a1dbe800 darkirc/rpc: when we check params, just use .unwrap() to get the args after 2025-12-30 16:52:20 +01:00
jkds
d9e7a782b4 darkirc/rpc: let Some(...) = ... else { return Json err } 2025-12-30 15:12:53 +01:00
jkds
419da3f849 net: allow runtime modification of outbound connection count. adds a method to darkirc to set_outbound_connections, use the scripts ./script/node_get_info.py and ./script/node_set-connect.py to verify 2025-12-30 14:46:02 +01:00
oars
757f1d0542 bin/darkirc: DEP-0007: add network profiles to net setting section of darkirc toml configs, use the maximum outbound_connect_timeout from all the network profiles for dag sync timeout 2025-12-30 11:30:54 +03:00
oars
179211b2c7 bin,example/dchat,script: DEP-006: retrieve app_name and app_version from CARGO_PKG_NAME and CARGO_PKG_VERSION for use in net Version message 2025-12-30 11:30:54 +03:00
oars
fcf0571a1a bin: set unique magic bytes for each seprate p2p network
- add magic bytes to p2p net configs for bins
- hardcode darkirc and fud magic bytes in bin/app darkirc and fud plugins
- make lilith use the separate magic bytes for different p2p networks
2025-12-30 11:30:54 +03:00
x
add9bb596c chore: Update crate dependencies 2025-12-25 12:22:56 +00:00
skoupidi
5d47358902 chore: updated sled-overlay to new version 2025-12-24 14:01:20 +02:00
skoupidi
5d9bfe7507 chore: updated sled-overlay to new version 2025-12-22 16:09:09 +02:00
skoupidi
346a3517bd chore: updated sled-overlay to new version 2025-12-22 15:36:52 +02:00
skoupidi
82ac85872c chore: updated sled-overlay to new version 2025-12-22 14:37:17 +02:00
skoupidi
621e704115 rust: set stable toolchain and clippy chore 2025-11-24 17:03:48 +02:00
x
aa537b9e4b chore: Update crate dependencies 2025-11-24 12:12:14 +02:00
parazyd
e493f397dc chore: Update crate dependencies 2025-11-24 12:12:13 +02:00
oars
d85cf80dbf replace log imports with tracing everywhere 2025-11-07 10:15:36 +03:00
oars
ac0365cc60 Cargo.toml, Cargo.lock: change dependencies used for logging
- replace log crate with tracing,
- replace simple-log crate with tracing-subscriber and tracing-appender
- add nu-ansi-term crate as a dependency which is itself tracing-subscriber's dependency,
  inorder to write colored outputs to the terminal since we override formatting provided
  by tracing-subscriber
2025-11-07 10:15:36 +03:00
skoupidi
d0c49d24d0 chore: updated sled-overlay to new version 2025-10-24 12:58:55 +03:00
dasman
3f4f6421cb darkirc: bug fix caused panic when the message is not utf-8 (ie a charachter is more than one byte) 2025-09-04 17:06:32 +03:00
darkfi
3202d51b38 darkirc: fix Dockerfile for android builds 2025-08-15 20:04:12 +02:00
oars
01f2cd1173 bin/darkirc/irc/client: fix bug with split and join of raw IRC message in process_client resulting in replacement of multiple whitespace chars with one whitespace char in PRIVMSG message text part. this solution splits the messages into predefined parts thus keeping the message part of the PRIVMSG message as whole 2025-08-14 17:33:52 +03:00
parazyd
fda2a84034 chore: Update dependencies 2025-08-05 09:41:05 +02:00
dasman
ad3d4fb54f darkirc: bugfix where nicks were kept the same in queue despite /nick command 2025-07-11 02:48:38 +03:00
oars
0d852630eb darkirc, darkfid, taud, fud configs: add default nym socks5 proxy url 2025-07-07 13:48:17 +03:00
oars
a29f9b40a6 darkirc, darkfid, taud, damd configs: change boolean transport_mixing field to mixed_transport list 2025-07-07 13:48:11 +03:00
skoupidi
b76da20baf darkirc: chore clippy 2025-06-28 17:17:03 +03:00
parazyd
2e2de47c69 v0.5.0 release 2025-06-06 13:50:10 +02:00
parazyd
46d815ace0 chore: Update crate deps and freeze RandomX git rev 2025-05-21 15:01:54 +02:00
skoupidi
61c4b831e3 chore: updated sled-overlay to new version 2025-05-17 19:10:01 +03:00
skoupidi
ee73d63d49 chore: fmt 2025-05-11 13:17:44 +03:00
darkfi
29d613fab3 darkirc: append commit hash to --version output 2025-05-11 09:14:44 +02:00
parazyd
81f37b7b2a chore: Update crate dependencies 2025-05-03 10:35:40 +02:00
parazyd
5ba3786790 darkirc: Update Tor seed nodes 2025-04-30 12:22:26 +02:00
parazyd
dfa323d377 darkirc: Update seed nodes 2025-04-30 11:21:20 +02:00
skoupidi
c4f3b4eb11 chore: updated sled-overlay to new version 2025-04-25 14:47:40 +03:00
oars
14a1e0214d refactor: rename socks5_proxy to tor_socks5_proxy 2025-04-23 13:21:09 +03:00
oars
4aad56a780 bin: add default i2p_socks5_proxy to darkirc, darkfid, taud, fud configs and a darkirc config for setting up an i2p node 2025-04-23 13:21:09 +03:00