vault / yggdrasil-go / v0.3.16
yggdrasil-go @ v0.3.16
integrity
- size
- 208.1 KiB
- downloaded
- last checked
- overlays
- go
- detected
- go module github.com/yggdrasil-network/yggdrasil-go
release notes
Added
- New simulation code under
cmd/yggdrasilsim(work-in-progress)
Changed
- Multi-threading in the switch
- Swich lookups happen independently for each (incoming) peer connection, instead of being funneled to a single dedicated switch worker
- Packets are queued for each (outgoing) peer connection, instead of being handled by a single dedicated switch worker
- Queue logic rewritten
- Heap structure per peer that traffic is routed to, with one FIFO queue per traffic flow
- The total size of each heap is configured automatically (we basically queue packets until we think we're blocked on a socket write)
- When adding to a full heap, the oldest packet from the largest queue is dropped
- Packets are popped from the queue in FIFO order (oldest packet from among all queues in the heap) to prevent packet reordering at the session level
- Removed global
sync.Poolof[]byte- Local
sync.Pools are used in the hot loops, but not exported, to avoid memory corruption if libraries are reused by other projects - This may increase allocations (and slightly reduce speed in CPU-bound benchmarks) when interacting with the tun/tap device, but traffic forwarded at the switch layer should be unaffected
- Local
- Upgrade dependencies
- Upgrade build to Go 1.16
Fixed
- Fixed a bug where the connection listener could exit prematurely due to resoruce exhaustion (if e.g. too many connections were opened)
- Fixed DefaultIfName for OpenBSD (
/dev/tun0->tun0) - Fixed an issue where a peer could sometimes never be added to the switch
- Fixed a goroutine leak that could occur if a peer with an open connection continued to spam additional connection attempts
download
unix · zip
curl -fL -o v0.3.16.zip https://ratatoskr.space/pkg/yggdrasil-go/v0.3.16.zip
printf '%s %s\n' 'de99d227fbe5977773a0d30743599a45ae956ae8e6201c3f3730d79ca91fb249' 'v0.3.16.zip' | sha256sum -c -
windows · zip
$url = "https://ratatoskr.space/pkg/yggdrasil-go/v0.3.16.zip"
$out = "v0.3.16.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "de99d227fbe5977773a0d30743599a45ae956ae8e6201c3f3730d79ca91fb249") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v0.3.16.tar.gz https://ratatoskr.space/pkg/yggdrasil-go/v0.3.16.tar.gz
printf '%s %s\n' 'ab7c06805fe130460d98a5c36509cbb6c0f8d8551a9b1ab3264ab0ec2da20135' 'v0.3.16.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "https://ratatoskr.space/pkg/yggdrasil-go/v0.3.16.tar.gz"
$out = "v0.3.16.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "ab7c06805fe130460d98a5c36509cbb6c0f8d8551a9b1ab3264ab0ec2da20135") { throw "sha256 mismatch" }
download via yggdrasil mesh
unix · zip
curl -fL -o v0.3.16.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/yggdrasil-go/v0.3.16.zip
printf '%s %s\n' 'de99d227fbe5977773a0d30743599a45ae956ae8e6201c3f3730d79ca91fb249' 'v0.3.16.zip' | sha256sum -c -
windows · zip
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/yggdrasil-go/v0.3.16.zip"
$out = "v0.3.16.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "de99d227fbe5977773a0d30743599a45ae956ae8e6201c3f3730d79ca91fb249") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v0.3.16.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/yggdrasil-go/v0.3.16.tar.gz
printf '%s %s\n' 'ab7c06805fe130460d98a5c36509cbb6c0f8d8551a9b1ab3264ab0ec2da20135' 'v0.3.16.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/yggdrasil-go/v0.3.16.tar.gz"
$out = "v0.3.16.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "ab7c06805fe130460d98a5c36509cbb6c0f8d8551a9b1ab3264ab0ec2da20135") { throw "sha256 mismatch" }
| artifact | format | size | hashes |
|---|---|---|---|
| v0.3.16.zip | zip | 204.5 KiB |
blake3-24 4034472af8b03dbcc3243685c272cb039c8570f980a592a9
sha256 de99d227fbe5977773a0d30743599a45ae956ae8e6201c3f3730d79ca91fb249
sha1 ce58ec8f0dcb313982f167944340f873e648fd1e
|
| v0.3.16.tar.gz | tar.gz | 161.9 KiB |
blake3-24 02fd09816d001620706d86b88d393a3a2ccf43ba0c5482a4
sha256 ab7c06805fe130460d98a5c36509cbb6c0f8d8551a9b1ab3264ab0ec2da20135
sha1 07a1de3114590fcf6f684cc5b3d39006a84b5983
|
go module archive
module zip with the module path rewritten to this mirror; fetched by go get through the
GOPROXY route
| artifact | format | size | hashes |
|---|---|---|---|
| v0.3.16.zip | zip | 207.0 KiB |
blake3-24 e64b49540b1e5d6a75d39bcf0f12bd944293e8003d97f9c8
sha256 f261ef10761c77d6a49f4861edb42d401a8133ac1f9b366f75b7cce31c143b52
sha1 1a7473c9a560943fe17261e4a044727912a03edc
|
install
bazel
http_archive(
name = "yggdrasil-go",
urls = ["https://ratatoskr.space/pkg/yggdrasil-go/v0.3.16.tar.gz"],
integrity = "sha256-q3wGgF/hMEYNmKXDZQnLtsD42FUamxqzJkqw7C2iATU=",
strip_prefix = "yggdrasil-go-v0.3.16",
)
zig
.url = "https://ratatoskr.space/pkg/yggdrasil-go/v0.3.16.tar.gz",
go
GOPROXY=https://ratatoskr.space GOSUMDB=off go get ratatoskr.space/pkg/yggdrasil-go@v0.3.16
install via yggdrasil mesh
bazel
http_archive(
name = "yggdrasil-go",
urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/yggdrasil-go/v0.3.16.tar.gz"],
integrity = "sha256-q3wGgF/hMEYNmKXDZQnLtsD42FUamxqzJkqw7C2iATU=",
strip_prefix = "yggdrasil-go-v0.3.16",
)
zig
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/yggdrasil-go/v0.3.16.tar.gz",
go
GOPROXY=http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg GOSUMDB=off GOINSECURE=14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/* go get 14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/yggdrasil-go@v0.3.16