Skip to content

Commit 95400fc

Browse files
authored
🔗 Merge pull request #81 from SkyPierIO/node-concurrency
Node concurrency
2 parents 9689baa + 7e8f49c commit 95400fc

31 files changed

+2752
-793
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ Skypier VPN is a decentralized VPN solution leveraging the power of `libp2p` to
6262

6363
### Prerequisites
6464

65-
- Go 1.24 or higher
65+
- Go 1.25 or higher
6666
- Git
6767

6868
### Build from sources

cmd/skypier-vpn-node/main.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ func main() {
8484
api.GET("/getConfig", utils.GetConfiguration)
8585
api.GET("/ping/:peerId", vpn.TestConnectivity(node, dht))
8686
api.GET("/connect/:peerId", vpn.Connect(node, dht))
87+
api.GET("/connections", vpn.GetConnectionsTable)
8788

8889
// Run with HTTP
8990
err := router.Run("127.0.0.1:" + strconv.FormatUint(uint64(innerConfig.Port), 10))

cmd/skypier-vpn/main.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,10 +110,11 @@ func main() {
110110
router.Use(ui.NewHandler().ServeSPA)
111111
log.Println("┌────────────────────────────────────────────────────┐")
112112
log.Printf("│ VPN UI available at http://skypier.localhost:%d/ │\n", innerConfig.Port)
113-
log.Println("└────────────────────────────────────────────────────┘\n")
113+
log.Println("└────────────────────────────────────────────────────┘")
114114

115115
// API Router
116-
api := router.Group("/api/v0")
116+
const apiVersion = "/api/v0"
117+
api := router.Group(apiVersion)
117118
api.GET("/", utils.Ok)
118119
api.GET("/id", vpn.GetLocalPeerId(node))
119120
api.GET("/me", vpn.GetLocalPeerDetails(node))
@@ -122,6 +123,7 @@ func main() {
122123
api.GET("/status", vpn.GetVPNStatus)
123124
api.GET("/nickname", utils.Nickname)
124125
api.GET("/getConfig", utils.GetConfiguration)
126+
api.GET("/connections", vpn.GetConnectionsTable)
125127
api.GET("/ping/:peerId", vpn.TestConnectivity(node, dht))
126128
api.POST("/updateConfig", utils.UpdateConfiguration)
127129
api.GET("/connect/:peerId", vpn.Connect(node, dht))
@@ -131,7 +133,7 @@ func main() {
131133

132134
// Add a route for Swagger UI if requested in the configuration
133135
if config.SwaggerEnabled {
134-
docs.SwaggerInfo.BasePath = "/api/v0"
136+
docs.SwaggerInfo.BasePath = apiVersion
135137
router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerfiles.Handler))
136138
log.Println("Swagger UI available at http://skypier.localhost:8081/swagger/index.html")
137139
}

docs/Skypier-RFC.txt

Lines changed: 344 additions & 0 deletions
Large diffs are not rendered by default.

docs/skypier_logo.svg

Lines changed: 1 addition & 0 deletions
Loading

go.mod

Lines changed: 48 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
module github.com/SkyPierIO/skypier-vpn
22

3-
go 1.24.0
3+
go 1.25.0
44

55
require (
6-
github.com/gin-contrib/cors v1.7.5
7-
github.com/gin-gonic/gin v1.10.0
6+
github.com/gin-contrib/cors v1.7.6
7+
github.com/gin-gonic/gin v1.10.1
88
github.com/libp2p/go-libp2p v0.41.1
99
github.com/libp2p/go-libp2p-kad-dht v0.31.0
1010
github.com/mbndr/figlet4go v0.0.0-20190224160619-d6cef5b186ea
11-
github.com/multiformats/go-multiaddr v0.15.0
1211
github.com/songgao/water v0.0.0-20200317203138-2b4b6d7c09d8
1312
github.com/swaggo/files/v2 v2.0.2
1413
github.com/swaggo/files/v2 v2.0.2
@@ -18,34 +17,34 @@ require (
1817
golang.org/x/time v0.11.0
1918
)
2019

21-
require github.com/ipfs/go-datastore v0.8.2 // indirect
20+
require github.com/ipfs/go-datastore v0.8.4 // indirect
2221

2322
require (
2423
github.com/KyleBanks/depth v1.2.1 // indirect
2524
github.com/benbjohnson/clock v1.3.5 // indirect
2625
github.com/beorn7/perks v1.0.1 // indirect
27-
github.com/bytedance/sonic v1.13.2 // indirect
28-
github.com/bytedance/sonic/loader v0.2.4 // indirect
26+
github.com/bytedance/sonic v1.13.3 // indirect
27+
github.com/bytedance/sonic/loader v0.3.0 // indirect
2928
github.com/cespare/xxhash/v2 v2.3.0 // indirect
3029
github.com/cloudwego/base64x v0.1.5 // indirect
3130
github.com/cloudwego/iasm v0.2.0 // indirect
3231
github.com/containerd/cgroups v1.1.0 // indirect
3332
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
34-
github.com/davecgh/go-spew v1.1.1 // indirect
3533
github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect
3634
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect
3735
github.com/docker/go-units v0.5.0 // indirect
3836
github.com/elastic/gosigar v0.14.3 // indirect
3937
github.com/flynn/noise v1.1.0 // indirect
4038
github.com/francoispqt/gojay v1.2.13 // indirect
41-
github.com/gabriel-vasile/mimetype v1.4.8 // indirect
42-
github.com/gin-contrib/sse v1.0.0 // indirect
43-
github.com/go-logr/logr v1.4.2 // indirect
39+
github.com/gabriel-vasile/mimetype v1.4.11 // indirect
40+
github.com/gin-contrib/sse v1.1.0 // indirect
41+
github.com/go-logr/logr v1.4.3 // indirect
4442
github.com/go-logr/stdr v1.2.2 // indirect
45-
github.com/go-openapi/jsonpointer v0.21.0 // indirect
46-
github.com/go-openapi/jsonreference v0.21.0 // indirect
43+
github.com/go-openapi/jsonpointer v0.22.1 // indirect
44+
github.com/go-openapi/jsonreference v0.21.3 // indirect
4745
github.com/go-openapi/spec v0.21.0 // indirect
48-
github.com/go-openapi/swag v0.23.0 // indirect
46+
github.com/go-openapi/swag v0.23.1 // indirect
47+
github.com/go-openapi/swag/jsonname v0.25.1 // indirect
4948
github.com/go-playground/locales v0.14.1 // indirect
5049
github.com/go-playground/universal-translator v0.18.1 // indirect
5150
github.com/go-playground/validator/v10 v10.26.0 // indirect
@@ -54,11 +53,9 @@ require (
5453
github.com/godbus/dbus/v5 v5.1.0 // indirect
5554
github.com/gogo/protobuf v1.3.2 // indirect
5655
github.com/google/gopacket v1.1.19 // indirect
57-
github.com/google/pprof v0.0.0-20250208200701-d0013a598941 // indirect
56+
github.com/google/pprof v0.0.0-20251007162407-5df77e3f7d1d // indirect
5857
github.com/google/uuid v1.6.0 // indirect
5958
github.com/gorilla/websocket v1.5.3 // indirect
60-
github.com/hashicorp/errwrap v1.1.0 // indirect
61-
github.com/hashicorp/go-multierror v1.1.1 // indirect
6259
github.com/hashicorp/golang-lru v1.0.2 // indirect
6360
github.com/huin/goupnp v1.3.0 // indirect
6461
github.com/ipfs/boxo v0.29.1 // indirect
@@ -68,12 +65,11 @@ require (
6865
github.com/ipld/go-ipld-prime v0.21.0 // indirect
6966
github.com/jackpal/go-nat-pmp v1.0.2 // indirect
7067
github.com/jbenet/go-temp-err-catcher v0.1.0 // indirect
71-
github.com/jbenet/goprocess v0.1.4 // indirect
7268
github.com/josharian/intern v1.0.0 // indirect
7369
github.com/json-iterator/go v1.1.12 // indirect
74-
github.com/klauspost/compress v1.18.0 // indirect
75-
github.com/klauspost/cpuid/v2 v2.2.10 // indirect
76-
github.com/koron/go-ssdp v0.0.5 // indirect
70+
github.com/klauspost/compress v1.18.1 // indirect
71+
github.com/klauspost/cpuid/v2 v2.2.11 // indirect
72+
github.com/koron/go-ssdp v0.0.6 // indirect
7773
github.com/leodido/go-urn v1.4.0 // indirect
7874
github.com/libp2p/go-buffer-pool v0.1.0 // indirect
7975
github.com/libp2p/go-cidranger v1.1.0 // indirect
@@ -83,15 +79,14 @@ require (
8379
github.com/libp2p/go-libp2p-record v0.3.1 // indirect
8480
github.com/libp2p/go-libp2p-routing-helpers v0.7.5 // indirect
8581
github.com/libp2p/go-msgio v0.3.0 // indirect
86-
github.com/libp2p/go-nat v0.2.0 // indirect
8782
github.com/libp2p/go-netroute v0.2.2 // indirect
8883
github.com/libp2p/go-reuseport v0.4.0 // indirect
8984
github.com/libp2p/go-yamux/v4 v4.0.2 // indirect
9085
github.com/libp2p/go-yamux/v5 v5.0.0 // indirect
9186
github.com/mailru/easyjson v0.9.0 // indirect
9287
github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd // indirect
9388
github.com/mattn/go-isatty v0.0.20 // indirect
94-
github.com/miekg/dns v1.1.63 // indirect
89+
github.com/miekg/dns v1.1.68 // indirect
9590
github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b // indirect
9691
github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc // indirect
9792
github.com/minio/sha256-simd v1.0.1 // indirect
@@ -100,48 +95,45 @@ require (
10095
github.com/mr-tron/base58 v1.2.0 // indirect
10196
github.com/multiformats/go-base32 v0.1.0 // indirect
10297
github.com/multiformats/go-base36 v0.2.0 // indirect
98+
github.com/multiformats/go-multiaddr v0.15.0 // indirect
10399
github.com/multiformats/go-multiaddr-dns v0.4.1 // indirect
104100
github.com/multiformats/go-multiaddr-fmt v0.1.0 // indirect
105101
github.com/multiformats/go-multibase v0.2.0 // indirect
106-
github.com/multiformats/go-multicodec v0.9.0 // indirect
102+
github.com/multiformats/go-multicodec v0.9.2 // indirect
107103
github.com/multiformats/go-multihash v0.2.3 // indirect
108-
github.com/multiformats/go-multistream v0.6.0 // indirect
104+
github.com/multiformats/go-multistream v0.6.1 // indirect
109105
github.com/multiformats/go-varint v0.0.7 // indirect
110106
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
111107
github.com/onsi/ginkgo/v2 v2.22.2 // indirect
112-
github.com/opencontainers/runtime-spec v1.2.0 // indirect
108+
github.com/opencontainers/runtime-spec v1.2.1 // indirect
113109
github.com/opentracing/opentracing-go v1.2.0 // indirect
114110
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect
115-
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
111+
github.com/pelletier/go-toml/v2 v2.2.4 // indirect
116112
github.com/pion/datachannel v1.5.10 // indirect
117113
github.com/pion/dtls/v2 v2.2.12 // indirect
118114
github.com/pion/dtls/v3 v3.0.4 // indirect
119115
github.com/pion/ice/v2 v2.3.37 // indirect
120116
github.com/pion/ice/v4 v4.0.8 // indirect
121117
github.com/pion/interceptor v0.1.37 // indirect
122118
github.com/pion/logging v0.2.3 // indirect
123-
github.com/pion/mdns v0.0.12 // indirect
124119
github.com/pion/mdns/v2 v2.0.7 // indirect
125120
github.com/pion/randutil v0.1.0 // indirect
126-
github.com/pion/rtcp v1.2.15 // indirect
127-
github.com/pion/rtp v1.8.11 // indirect
128-
github.com/pion/sctp v1.8.37 // indirect
129-
github.com/pion/sdp/v3 v3.0.10 // indirect
130-
github.com/pion/srtp/v2 v2.0.20 // indirect
131-
github.com/pion/srtp/v3 v3.0.4 // indirect
121+
github.com/pion/rtcp v1.2.16 // indirect
122+
github.com/pion/rtp v1.8.25 // indirect
123+
github.com/pion/sctp v1.8.40 // indirect
124+
github.com/pion/sdp/v3 v3.0.16 // indirect
125+
github.com/pion/srtp/v3 v3.0.8 // indirect
132126
github.com/pion/stun v0.6.1 // indirect
133-
github.com/pion/stun/v3 v3.0.0 // indirect
127+
github.com/pion/stun/v3 v3.0.1 // indirect
134128
github.com/pion/transport/v2 v2.2.10 // indirect
135129
github.com/pion/transport/v3 v3.0.7 // indirect
136-
github.com/pion/turn/v2 v2.1.6 // indirect
137130
github.com/pion/turn/v4 v4.0.0 // indirect
138131
github.com/pion/webrtc/v3 v3.3.5 // indirect
139132
github.com/pion/webrtc/v4 v4.0.10 // indirect
140133
github.com/pkg/errors v0.9.1 // indirect
141-
github.com/pmezard/go-difflib v1.0.0 // indirect
142134
github.com/polydawn/refmt v0.89.0 // indirect
143135
github.com/prometheus/client_golang v1.21.1 // indirect
144-
github.com/prometheus/client_model v0.6.1 // indirect
136+
github.com/prometheus/client_model v0.6.2 // indirect
145137
github.com/prometheus/common v0.62.0 // indirect
146138
github.com/prometheus/procfs v0.15.1 // indirect
147139
github.com/quic-go/qpack v0.5.1 // indirect
@@ -151,31 +143,31 @@ require (
151143
github.com/spaolacci/murmur3 v1.1.0 // indirect
152144
github.com/stretchr/testify v1.10.0 // indirect
153145
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
154-
github.com/ugorji/go/codec v1.2.12 // indirect
146+
github.com/ugorji/go/codec v1.3.1 // indirect
155147
github.com/vishvananda/netns v0.0.5 // indirect
156148
github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1 // indirect
157149
github.com/wlynxg/anet v0.0.5 // indirect
158-
go.opencensus.io v0.24.0 // indirect
159150
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
160-
go.opentelemetry.io/otel v1.34.0 // indirect
161-
go.opentelemetry.io/otel/metric v1.34.0 // indirect
162-
go.opentelemetry.io/otel/trace v1.34.0 // indirect
163-
go.uber.org/dig v1.18.0 // indirect
151+
go.opentelemetry.io/otel v1.38.0 // indirect
152+
go.opentelemetry.io/otel/metric v1.38.0 // indirect
153+
go.opentelemetry.io/otel/trace v1.38.0 // indirect
154+
go.uber.org/dig v1.18.2 // indirect
164155
go.uber.org/fx v1.23.0 // indirect
165-
go.uber.org/mock v0.5.0 // indirect
156+
go.uber.org/mock v0.5.2 // indirect
166157
go.uber.org/multierr v1.11.0 // indirect
167158
go.uber.org/zap v1.27.0 // indirect
168-
golang.org/x/arch v0.15.0 // indirect
169-
golang.org/x/crypto v0.36.0 // indirect
170-
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 // indirect
171-
golang.org/x/mod v0.24.0 // indirect
172-
golang.org/x/net v0.38.0 // indirect
173-
golang.org/x/sync v0.12.0 // indirect
174-
golang.org/x/sys v0.31.0 // indirect
175-
golang.org/x/text v0.23.0 // indirect
176-
golang.org/x/tools v0.31.0 // indirect
159+
golang.org/x/arch v0.18.0 // indirect
160+
golang.org/x/crypto v0.43.0 // indirect
161+
golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546 // indirect
162+
golang.org/x/mod v0.30.0 // indirect
163+
golang.org/x/net v0.46.0 // indirect
164+
golang.org/x/sync v0.18.0 // indirect
165+
golang.org/x/sys v0.38.0 // indirect
166+
golang.org/x/telemetry v0.0.0-20251111182119-bc8e575c7b54 // indirect
167+
golang.org/x/text v0.30.0 // indirect
168+
golang.org/x/tools v0.38.0 // indirect
177169
gonum.org/v1/gonum v0.15.1 // indirect
178-
google.golang.org/protobuf v1.36.6 // indirect
170+
google.golang.org/protobuf v1.36.10 // indirect
179171
gopkg.in/yaml.v3 v3.0.1 // indirect
180-
lukechampine.com/blake3 v1.4.0 // indirect
172+
lukechampine.com/blake3 v1.4.1 // indirect
181173
)

0 commit comments

Comments
 (0)