Commit Graph

235 Commits

Author SHA1 Message Date
Max
4cea3c31b3 node: increase packet queue size to 1000 2026-04-16 22:18:03 +01:00
Max
21b4607434 node: use a nonblocking packet queue to send packets 2026-04-16 22:18:03 +01:00
Max
720d8f22bd node: use streams bidirectionally 2026-04-16 22:18:03 +01:00
Max
91a2cd0bc4
Bump dependencies (#104)
* meta: apply follows to ndg

* flake.lock: Update

Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569?narHash=sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98%3D' (2025-06-08)
  → 'github:hercules-ci/flake-parts/3107b77cd68437b9a76194f0f7f9c55f2329ca5b?narHash=sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA%3D' (2026-04-01)
• Updated input 'hercules-ci-effects':
    'github:max-privatevoid/hercules-ci-effects/b8127446a483cfd91495037e343b592662033188?narHash=sha256-xlxgYZ0eCnr9ikQuM5VuD8rUjLdbGzSKgF2EoRKDn/8%3D' (2025-07-01)
  → 'github:max-privatevoid/hercules-ci-effects/f3a32947c119cfe0f0130ad91b37028a3dae22d1?narHash=sha256-3A2B8k6YCuzt5pT/CQEltUghtE6heSlk2tMYkg/fUWI%3D' (2026-04-15)
• Updated input 'ndg/nixpkgs':
    'https://releases.nixos.org/nixos/unstable/nixos-26.05pre972949.6201e203d095/nixexprs.tar.xz?lastModified=1775036866&narHash=sha256-ByAX1LkhCwZ94%2BKnFAmnJSMAvui7kgCxjHgUHsWAbfI%3D&rev=6201e203d09599479a3b3450ed24fa81537ebc4e' (2026-04-01)
  → follows 'nixpkgs'
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/30e2e2857ba47844aa71991daa6ed1fc678bcbb7?narHash=sha256-krGXKxvkBhnrSC/kGBmg5MyupUUT5R6IBCLEzx9jhMM%3D' (2025-06-27)
  → 'github:NixOS/nixpkgs/4bd9165a9165d7b5e33ae57f3eecbcb28fb231c9?narHash=sha256-l/iNYDZ4bGOAFQY2q8y5OAfBBtrDAaPuRQqWaFHVRXM%3D' (2026-04-14)

* go mod tidy

* go-libp2p: 0.42.0 -> 0.48.0

* go-libp2p-kad-dht: 0.33.1 -> 0.39.0

* dev: use nixfmt

* dev: reformat

* update vendorHash
2026-04-16 22:17:31 +01:00
Max
ade67e761d
Documentation refactor (#103)
* docs: switch to ndg

* flake.lock: Update

Flake lock file updates:

• Added input 'ndg':
    'github:feel-co/ndg/d678855cdd0385b1bd78adf3456d072642317d6a?narHash=sha256-gJcybEQZa5Jdh3MSgvGLqiqQFRTZ3IxQFvVIsJecbno%3D' (2026-04-14)
• Added input 'ndg/nixpkgs':
    'https://releases.nixos.org/nixos/unstable/nixos-26.05pre972949.6201e203d095/nixexprs.tar.xz?lastModified=1775036866&narHash=sha256-ByAX1LkhCwZ94%2BKnFAmnJSMAvui7kgCxjHgUHsWAbfI%3D&rev=6201e203d09599479a3b3450ed24fa81537ebc4e' (2026-04-01)
2026-04-16 21:33:58 +01:00
Max
28d48c325e
0.13.0 -> 0.13.1 (#98) 2026-03-26 00:36:58 +00:00
Max
cf2494bf31
nixos: fix default values for acl-related options (#97) 2026-03-26 01:33:25 +01:00
Max
716bd00f09
0.12.0 -> 0.13.0 (#96) 2026-03-25 18:45:00 +00:00
Roland Urbano
ed30c60c95
Implementation for basic service access control (#95)
* Added ServicesACL config

Signed-off-by: Roland Urbano <urbano.roland@gmail.com>

* Adding filter to service receiver

Signed-off-by: Roland Urbano <urbano.roland@gmail.com>

* Implemented ACL handling in ServiceNetwork

Signed-off-by: Roland Urbano <roland.urbano@nts.eu>

* Updated Schema and added parsing for acl config

Signed-off-by: Roland Urbano <urbano.roland@gmail.com>

* Updated service package and fixed ACL handling

Signed-off-by: Roland Urbano <urbano.roland@gmail.com>

* go-jsonschema: 0.16.0 -> 0.22.0

* nixos: set acls on services directly

* config: move ServicesACL to Services

* svc: simplify acl logic

* remove whitespace

* apply nixfmt

---------

Signed-off-by: Roland Urbano <urbano.roland@gmail.com>
Signed-off-by: Roland Urbano <roland.urbano@nts.eu>
Co-authored-by: Max <max@privatevoid.net>
2026-03-25 19:16:52 +01:00
Max
ff94c7869e
Better systemd-resolved integration (#93)
* dns: configure systemd-resolved to not use all the protocols we don't
support

* dns: print startup info at info log level

* dns: factor out systemd-resolved setup, downgrade errors to warning
2026-01-13 23:59:38 +01:00
Max
3a710c4bae
0.11.0 -> 0.12.0 (#91) 2025-12-12 18:01:18 +00:00
Roland Urbano
2e36bcdce6
Enhanced Logging with ipfs/go-log (#90)
* Added ipfs/go-log and updated up.go

Use ipfs/go-log over fmt.Println

Fixed more log usages with go-log

Signed-off-by: Roland Urbano <urbano.roland@gmail.com>

log: refactor log usage to provide module global logger with configurable log level

Signed-off-by: Roland Urbano <urbano.roland@gmail.com>

Refactored logger initialization for modules

Signed-off-by: Roland Urbano <urbano.roland@gmail.com>

Removed object member loggers

Signed-off-by: Roland Urbano <urbano.roland@gmail.com>

* Implemented logging with ipfs/go-log

logging: fix logger level config

Co-authored-by: Max <max@privatevoid.net>

Update svc/network.go

Co-authored-by: Max <max@privatevoid.net>

removed static info log level constant

Co-authored-by: Max <max@privatevoid.net>

Update dns/server.go

Co-authored-by: Max <max@privatevoid.net>

Update dns/server.go

Co-authored-by: Max <max@privatevoid.net>

Update rpc/server.go

Co-authored-by: Max <max@privatevoid.net>

Applied MR suggestions

Signed-off-by: Roland Urbano <urbano.roland@gmail.com>

Enhanced logging

Signed-off-by: Roland Urbano <urbano.roland@gmail.com>

* update vendorHash

* go fmt

---------

Signed-off-by: Roland Urbano <urbano.roland@gmail.com>
Co-authored-by: Max <max@privatevoid.net>
2025-12-07 19:31:49 +00:00
Max
df929520a9
rpc: try to remove socket if already exists (#89) 2025-12-05 15:14:40 +00:00
Max
e994260bdb
Node refactor (#88)
* node: extract most of the logic from cli/up.go

* node: close interface after bringing it down

* synchronize shutdowns with a WaitGroup

* p2p: use Connect instead of DialPeer

* rpc: defer Close
2025-11-30 14:28:51 +01:00
Max
8f5778dffe
0.10.2 -> 0.11.0 (#81) 2025-07-01 22:06:50 +00:00
Max
71dcc1886e
Release automation (#80)
* add hercules-ci-effects

* flake.lock: Update

Flake lock file updates:

• Added input 'hercules-ci-effects':
    'github:max-privatevoid/hercules-ci-effects/b8127446a483cfd91495037e343b592662033188?narHash=sha256-xlxgYZ0eCnr9ikQuM5VuD8rUjLdbGzSKgF2EoRKDn/8%3D' (2025-07-01)
• Added input 'hercules-ci-effects/flake-parts':
    follows 'flake-parts'
• Added input 'hercules-ci-effects/nixpkgs':
    follows 'nixpkgs'

* provide binary artifacts via github releases

* auto-tag releases from current package version
2025-07-01 23:45:12 +02:00
Max
359adb47fa
Update dependencies (#79)
* dev: fuck you, google

* flake.lock: Update

Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/506278e768c2a08bec68eb62932193e341f55c90?narHash=sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS%2Bb4tfNFCwE%3D' (2024-11-01)
  → 'github:hercules-ci/flake-parts/9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569?narHash=sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98%3D' (2025-06-08)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/6df24922a1400241dae323af55f30e4318a6ca65?narHash=sha256-dklw3AXr3OGO4/XT1Tu3Xz9n/we8GctZZ75ZWVqAVhk%3D' (2025-01-02)
  → 'github:NixOS/nixpkgs/30e2e2857ba47844aa71991daa6ed1fc678bcbb7?narHash=sha256-krGXKxvkBhnrSC/kGBmg5MyupUUT5R6IBCLEzx9jhMM%3D' (2025-06-27)

* go-libp2p: 0.38.1 -> 0.42.0

* go-libp2p-kad-dht: 0.28.0 -> 0.33.1

* update vendorHash
2025-07-01 10:31:05 +02:00
Jörg Thalheim
a5957e485f
go-libp2p: 0.37.0 -> 0.38.1 (#75) 2025-01-12 14:51:42 +00:00
Jörg Thalheim
38b30cee47
update jsonschema lib (#74) 2025-01-12 14:50:40 +00:00
Jörg Thalheim
14f36cbe29
buildGoModule: switch to structuredAttrs (#73)
* buildGoModule: switch to structuredAttrs

* update nixpkgs
2025-01-12 14:47:27 +00:00
Jörg Thalheim
fc42d2eec0
Fix various linting issues. (#68)
* remove unused vars/functions

* all constants need explicit types

See https://staticcheck.dev/docs/checks/#SA9004

* cli/up: add missing error checks

* server: fix potential race condition of chown when binding listening socket

a process waiting for the socket appear may bind before we can apply
filesystem permissions.
2024-11-17 17:20:01 +00:00
Max
83e755f445
libp2p 0.37.0 and other updates (#66)
* update go deps

go-libp2p: 0.33.2 -> 0.37.0
go-libp2p-kad-dht: 0.25.2 -> 0.28.0
go-multiaddr: 0.12.3 -> 0.14.0

* update vendorHash
2024-11-14 10:19:28 +00:00
Max
e8e8b474d9
flake.lock: Update (#65)
Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/9126214d0a59633752a136528f5f3b9aa8565b7d?narHash=sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm%2BGpZNw%3D' (2024-04-01)
  → 'github:hercules-ci/flake-parts/506278e768c2a08bec68eb62932193e341f55c90?narHash=sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS%2Bb4tfNFCwE%3D' (2024-11-01)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/7bb2ccd8cdc44c91edba16c48d2c8f331fb3d856?narHash=sha256-Drmja/f5MRHZCskS6mvzFqxEaZMeciScCTFxWVLqWEY%3D' (2024-04-25)
  → 'github:NixOS/nixpkgs/76612b17c0ce71689921ca12d9ffdc9c23ce40b2?narHash=sha256-IigrKK3vYRpUu%2BHEjPL/phrfh7Ox881er1UEsZvw9Q4%3D' (2024-11-09)
2024-11-12 08:45:32 +00:00
Max
4d8e966abc
cli: color p2p-circuit addresses gray in status output (#64) 2024-11-12 09:28:50 +01:00
Max
b54fd70812
0.10.1 -> 0.10.2 (#55) 2024-07-15 23:07:21 +00:00
Max
7975eea2f6
add vendor package with code generation output (#54) 2024-07-16 01:02:58 +02:00
Max
76a3f73a42
Build and installation docs (#47)
* README: document basic build/setup steps

* document dev setup and how the config schema works

* set up for use with direnv

* mention direnv in the dev setup docs

* README: mention developer docs

* provide some contributor infos
2024-07-15 17:51:14 +00:00
Max
565f297061
fix docs output directory (#52) 2024-07-04 16:59:59 +00:00
Max
e2e2cd7723
set meta.mainProgram (#48) 2024-06-29 12:54:10 +00:00
Max
5f1093ac88
reserve 2 relay address slots for unlimited relays (#43) 2024-06-28 14:01:38 +00:00
Gerg-L
165bac6c90
remove with lib, use lib.getExe, use runCommand (#42) 2024-06-09 19:53:04 +00:00
Max
df73583638
0.10.0 -> 0.10.1 (#40) 2024-06-05 19:35:11 +00:00
Max
64c86d5555
fix: use opt.metricsPort.value (#39) 2024-06-05 18:45:19 +00:00
Max
7bba1f9f82
set empty default value for services option (#36) 2024-06-04 14:45:37 +00:00
Max
323081fe72
fix: also transfer peer name to config struct (#35) 2024-06-02 20:17:47 +00:00
Max
bde41b6a3e
Formatting (#31)
* add Nix formatter

* nix fmt

* check that Nix and Go code is formatted correctly

* refactor flake.nix

* add formatter to devShell
2024-06-02 21:45:11 +02:00
Max
192dbfad36
0.9.0 -> 0.10.0 (#34) 2024-06-02 18:13:13 +00:00
Max
ca6c623359
NixOS module (#26)
* init NixOS module

* nixos: open firewall ports

* nixos: add ExecStopPost and ExecReload features

* nixos: expose CLI to users
2024-06-02 20:01:16 +02:00
Max
f8393c418e
Generate config struct from NixOS options (#33)
* add clan.lol jsonschema library

* move devshell definition, add go-jsonschema package

* use generated schema for config file parsing

* include schema generation in build process
2024-06-02 17:03:02 +00:00
Max
0f1d4d6810
README: mention docs website (#32) 2024-06-01 20:27:10 +00:00
Max
d97924b908
Documentation (#21)
* add documentation infrastructure

* document service network

* document automatic addressing

* document dns

* document configuration from nixos options
2024-06-01 21:09:08 +02:00
raf
121b22faf7
nix: unshittify (#30) 2024-05-28 14:45:49 +00:00
Max
106ef293ad
use any peer as a relay (#29) 2024-05-25 00:31:45 +02:00
dependabot[bot]
b90995b3c9
build(deps): bump google.golang.org/protobuf from 1.32.0 to 1.33.0 (#28)
* build(deps): bump google.golang.org/protobuf from 1.32.0 to 1.33.0

Bumps google.golang.org/protobuf from 1.32.0 to 1.33.0.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* update vendorHash

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Max <max@privatevoid.net>
2024-05-23 17:29:14 +00:00
dependabot[bot]
ced1f81c28
build(deps): bump golang.org/x/net from 0.21.0 to 0.23.0 (#27)
* build(deps): bump golang.org/x/net from 0.21.0 to 0.23.0

Bumps [golang.org/x/net](https://github.com/golang/net) from 0.21.0 to 0.23.0.
- [Commits](https://github.com/golang/net/compare/v0.21.0...v0.23.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* update vendorHash

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Max <max@privatevoid.net>
2024-05-23 17:20:45 +00:00
Max
6da857d6df
use individual service network routes (#24) 2024-05-19 01:10:44 +02:00
Max
0c8f66c404
0.8.6 -> 0.9.0 (#20) 2024-05-14 15:19:32 +00:00
Max
b32d496d21
Service Network (#15)
* implement foundation for service network

* update vendorHash

* extract MkNetID

* look up peers by NetID

* implement proxy for remote services

* support remote services (client side)

* create Proxy abstraction

* implement TCPServiceProxy

* add a wrapper to make streams implement net.Conn

* support remote services (server side)

* implement services in config

* create proxies from multiaddrs

* register services defined in config

* add description field to proxy

* resolve service hostnames
2024-05-14 17:14:42 +02:00
Max
6e14d22ab7
build with CGO_ENABLED=0 (#18) 2024-05-12 15:21:20 +02:00
Max
88705394c0
IPv6 (dual stack) (#14)
* assign and route ipv6 addresses

* dns: support A and AAAA records

* rpc: include v6 routes in route show
2024-05-11 23:04:52 +02:00