Commit Graph

4901 Commits

Author SHA1 Message Date
brid
d268ae6847 drk/doc: grammar edit drk help and doc comments 2026-03-04 13:01:59 +01:00
x
2b955bfdd5 contract/money: Remove artifical limit of single token ID per transfer.
We now keep grouped accumulators for each token ID.
2026-02-25 12:25:10 +00:00
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
06ff2454fd validator/utils: minor fix in worst_fork_index() 2026-02-12 15:41:47 +02:00
skoupidi
cc782bfea2 validator: chore format comments to match style 2026-02-11 16:01:14 +02:00
skoupidi
caca412031 validator: use a single MAX_32_BYTES constant 2026-02-11 15:20:38 +02:00
skoupidi
89b4dbe4a1 validator/verification: verify block timestamp based on sync state 2026-02-11 15:18:44 +02:00
skoupidi
b4fa82cb3f validator/utils: fixed missmatched returned value in median() 2026-02-11 15:06:41 +02:00
skoupidi
de5b7699c6 validator/consensus: ensure no other competing fork exists during confirmation 2026-02-11 15:06:05 +02:00
skoupidi
e4ce356952 validator/consensus: check fork proposals are after the requested tip height before appending them in get_fork_proposals_after 2026-02-11 15:05:15 +02:00
skoupidi
8753c20c1b validator/pow: don't blindly unwrap next darkfi rx key 2026-02-11 15:04:26 +02:00
skoupidi
08adccb16c validator/consensus: minor clarification comment added in reset_forks() 2026-02-11 15:02:22 +02:00
skoupidi
eb7ee7dddc validator/consensus: bound in-memory forks with a configurable param 2026-02-11 15:01:08 +02:00
x
7c5390c899 contract/money: Implement Money::BurnV1 function
This allows provable coin burning without requiring outputs.
2026-02-10 15:03:25 +00:00
x
4607434a13 Use simplified harness API for tests 2026-02-10 14:46:27 +00:00
x
a173a5c412 contract/dao: Use simplified harness API for tests 2026-02-10 14:41:55 +00:00
x
348ea7fff1 contract/money: Use simplified harness API for tests 2026-02-10 14:41:55 +00:00
x
c17f2a650d contract/test-harness: Deduplicate Nullifier and Coin handling code 2026-02-10 14:41:55 +00:00
skoupidi
7181db089e chore: updated sled-overlay to new version 2026-02-09 18:16:37 +02:00
x
06cf1be98d validator: Use saturating arithmetic 2026-02-09 12:37:11 +00:00
skoupidi
142ac78c38 validator/consensus: log height when appending proposal 2026-02-03 20:53:54 +02:00
skoupidi
3bbe1166fa chore: updated sled-overlay to new version 2026-02-03 20:53:26 +02:00
oars
bc79cb5021 net/session/refine_session: replace unwrap with error handling 2026-02-03 20:49:59 +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
e36a6d635b validator/randomx_factory: simplified factory api to not use locks 2026-02-01 21:35:38 +02:00
skoupidi
ecefad8ac0 validator: guard everything behind a single lock 2026-02-01 19:46:43 +02:00
skoupidi
bd68f9238b darkfid/task/unknown_proposal: full refactor for cleaner code and usage of append lock while generating the reorg fork 2026-01-30 17:10:51 +02:00
skoupidi
95523adfcf darkfid: protect reorg trees from getting dropped by gc 2026-01-29 13:43:46 +02:00
x
6d09d6eb18 chore: Update quinn dependency 2026-01-28 15:11:39 +00:00
skoupidi
df6fb02d66 net/session: changed log level of timeout spammy logger 2026-01-26 23:35:42 +02:00
skoupidi
689212f6a4 darkfid: include miners templates txs when purging pending txs and remove erroneous ones from fork mempool when retrieving its unproposed ones 2026-01-24 17:51:07 +02:00
skoupidi
3b823c17bb darkfid: include miners tempaltes new trees when purging unferenced trees 2026-01-24 17:09:54 +02:00
skoupidi
7914422d8b chore: updated sled-overlay to new version 2026-01-24 16:58:57 +02:00
skoupidi
a3368c87a2 darkfid/rpc/tx: properly cleanup pending txs 2026-01-22 15:16:31 +02:00
skoupidi
22c60bee61 darkfid/task/garbage_collect: handle unreferenced sled trees 2026-01-21 14:22:52 +02:00
x
436e5fe13e net: Simplify Hosts to use a single lock 2026-01-20 09:31:52 +00:00
x
ad385200cb system: Remove obsolete thread_priority module 2026-01-20 08:43:45 +00:00
skoupidi
c8642a0e96 contract/test-harness/lib: properly initialize wallet validator 2026-01-19 21:43:24 +02:00
skoupidi
b78ca1d796 contract/test-harness/vks: updated hashes and modify inject to work over an overlay not the actual db so we ensure native zkas can be included in all genesis monotrees 2026-01-19 20:49:16 +02:00
x
9ac548af37 zkas: Correct rustdoc typo 2026-01-19 17:30:56 +00:00
x
a914be462d net/protocol: Implement ProtocolHolepunch
This is a basic NAT holepunching protocol that uses a relayer
2026-01-19 17:29:55 +00:00
skoupidi
1eebd74ff2 validator/pow: simplyfied randomx keys usage in pow module 2026-01-19 16:56:21 +02:00
skoupidi
bfd1c9f7ac blockchain/contract_store: exclude contracts zkas verifying keys from their monotree record value 2026-01-19 14:01:41 +02:00
skoupidi
830497f5c7 blockchain/contract_store: monotree handling refactor
This commit replaces the in-memory contracts states monotree with a sled one. Monotree update handling is changed to always use new changes, as contracts or their tree drops are handled via the overlay reverts. Each contract now includes its wasm as a record in its monotree, so no separate wasm monotree is needed. Native contracts zkas is also included in their monotree, locking it down from changes.
2026-01-16 17:54:26 +02:00
skoupidi
adca901174 sdk/crypto/contract_id: minor cleanup 2026-01-16 17:48:07 +02:00
x
ae3cb958ac net/settings: Support quic network profile with defaults 2026-01-16 10:00:35 +00:00
x
5d24ab3c27 net/transport/quic: Enable endpoint reuse 2026-01-15 18:49:30 +00:00
x
cb7f9e4d0c net: Implement QUIC transport based on quinn
Also deduplicate some TLS code.
2026-01-15 16:42:43 +00:00
skoupidi
89a38d0977 darkfid/rpc/tx: remove pending txs without checking consistency 2026-01-14 18:18:55 +02:00