Yggdrasil версия 0.5 vs 0.4

Настройка, программирование, распределённые вычисления

Модераторы: Olej, bellic, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil версия 0.5 vs 0.4

Непрочитанное сообщение Olej » 30 июн 2023, 00:07

Только из-за переполнения Yggdrasil (2) + эта тема про попытки сборки из исходников сырой версии 0.5 (грядущей).

P.S. Как утверждается, сетевые протоколы версии 0.5 будут несовместимы с протоколами 0.4.7 :!:

P.P.S. Дописано позже :!: См. дату сообщений! Эта тема писалась ДО выхода в эксплуатацию Yggdrasil 0.5.0 28 октября 2023г.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil версия 0.5 vs 0.4

Непрочитанное сообщение Olej » 30 июн 2023, 00:13

Сборка из GIT-исходников самой последней редакциии ... зачатки версии 0.5

Код: Выделить всё

olej@R420:~/2023/Yggdrasil/yggdrasil-go$ pwd
/home/olej/2023/Yggdrasil/yggdrasil-go
Начальная загрузка GIT-репозитория см., например, здесь: Yggdrasil в RPM :!:

Код: Выделить всё

olej@R420:~/2023/Yggdrasil/yggdrasil-go$ git branch -a
* develop
  remotes/origin/HEAD -> origin/develop
  remotes/origin/develop
  remotes/origin/future
  remotes/origin/master
  remotes/origin/neil/multicast
  remotes/origin/neil/quic
  remotes/origin/netstack
Переключаюсь на ветку:

Код: Выделить всё

olej@R420:~/2023/Yggdrasil/yggdrasil-go$ git checkout future
Ветка «future» отслеживает внешнюю ветку «future» из «origin».
Переключились на новую ветку «future»

Код: Выделить всё

olej@R420:~/2023/Yggdrasil/yggdrasil-go$ git branch -a
  develop
* future
  remotes/origin/HEAD -> origin/develop
  remotes/origin/arc/linkfix
  remotes/origin/develop
  remotes/origin/future
  remotes/origin/master
  remotes/origin/neil/handshake
  remotes/origin/neil/multicast
  remotes/origin/neil/quic
  remotes/origin/netstack

Код: Выделить всё

olej@R420:~/2023/Yggdrasil/yggdrasil-go$ git checkout future
Уже на «future»
Ветка отстает от «origin/future» на 14 коммитов и может быть быстро перемотана.
  (используйте «git pull», чтобы обновить вашу локальную ветку)

Код: Выделить всё

olej@R420:~/2023/Yggdrasil/yggdrasil-go$ git pull
Обновление 2eda59d..7f94463
Fast-forward
 cmd/yggdrasil/main.go               |  29 +++++++
 go.mod                              |   8 ++
 go.sum                              |  49 ++++++++++++
 src/config/config.go                |   9 ++-
 src/core/api.go                     |  51 ++++++------
 src/core/link.go                    | 445 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------
 src/core/link_quic.go               |  96 ++++++++++++++++++++++
 src/core/tls.go                     |   1 +
 src/core/version.go                 |  17 +++-
 src/core/version_test.go            |   3 +-
 src/multicast/advertisement.go      |  23 ++++--
 src/multicast/advertisement_test.go |  38 +++++++++
 src/multicast/multicast.go          |  29 +++++--
 src/multicast/options.go            |   8 ++
 src/tun/tun.go                      |  21 +++--
 15 files changed, 563 insertions(+), 264 deletions(-)
 create mode 100644 src/core/link_quic.go
 create mode 100644 src/multicast/advertisement_test.go

Код: Выделить всё

olej@R420:~/2023/Yggdrasil/yggdrasil-go$ git log -1
commit 7f94463332a905a39e99c16902c74ba0de1e4513 (HEAD -> future, origin/future)
Merge: bcbabff 423fc24
Author: Arceliar <Arceliar@users.noreply.github.com>
Date:   Mon Jun 19 06:27:09 2023 -0500

    Merge pull request #1037 from yggdrasil-network/neil/quic

    QUIC interface support
Готово!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil версия 0.5 vs 0.4

Непрочитанное сообщение Olej » 30 июн 2023, 00:17

Olej писал(а):
30 июн 2023, 00:13
Готово!

Код: Выделить всё

olej@R420:~/2023/Yggdrasil/yggdrasil-go$ go version
go version go1.20rc2 linux/amd64
Компиляция и сборка:

Код: Выделить всё

olej@R420:~/2023/Yggdrasil/yggdrasil-go$ time ./build
Building: yggdrasil
go: downloading github.com/hjson/hjson-go/v4 v4.3.0
go: downloading github.com/Arceliar/phony v0.0.0-20220903101357-530938a4b13d
go: downloading golang.org/x/net v0.9.0
go: downloading golang.org/x/sys v0.7.0
go: downloading github.com/Arceliar/ironwood v0.0.0-20230521174855-fdfa6326d125
go: downloading golang.org/x/text v0.9.0
go: downloading github.com/quic-go/quic-go v0.34.0
go: downloading github.com/bits-and-blooms/bloom/v3 v3.3.1
go: downloading golang.org/x/crypto v0.8.0
go: downloading github.com/bits-and-blooms/bitset v1.5.0
go: downloading github.com/quic-go/qtls-go1-20 v0.2.2
go: downloading golang.org/x/exp v0.0.0-20221205204356-47842c84f3db
golang.org/x/text/internal/utf8internal
golang.org/x/crypto/internal/alias
github.com/yggdrasil-network/yggdrasil-go/src/version
golang.org/x/exp/constraints
golang.org/x/crypto/cryptobyte/asn1
golang.org/x/text/encoding/internal/identifier
golang.org/x/net/internal/iana
golang.org/x/crypto/salsa20/salsa
github.com/Arceliar/phony
github.com/quic-go/quic-go/internal/utils/linkedlist
golang.org/x/text/transform
golang.org/x/crypto/internal/poly1305
golang.org/x/crypto/chacha20
golang.org/x/crypto/hkdf
golang.org/x/sys/unix
golang.org/x/crypto/curve25519
golang.org/x/sys/cpu
golang.org/x/net/bpf
github.com/bits-and-blooms/bitset
github.com/hjson/hjson-go/v4
github.com/quic-go/quic-go/internal/protocol
github.com/Arceliar/ironwood/encrypted/internal/e2c
golang.org/x/crypto/cryptobyte
github.com/yggdrasil-network/yggdrasil-go/src/address
github.com/Arceliar/ironwood/types
golang.org/x/net/internal/socks
golang.org/x/text/encoding
golang.org/x/text/runes
golang.org/x/crypto/nacl/secretbox
github.com/quic-go/quic-go/quicvarint
github.com/quic-go/quic-go/internal/utils
golang.org/x/crypto/blake2b
golang.org/x/crypto/chacha20poly1305
golang.org/x/text/encoding/internal
golang.org/x/text/encoding/unicode
github.com/bits-and-blooms/bloom/v3
golang.org/x/net/proxy
github.com/Arceliar/ironwood/network
golang.org/x/crypto/nacl/box
github.com/quic-go/qtls-go1-20
github.com/yggdrasil-network/yggdrasil-go/src/config
github.com/Arceliar/ironwood/encrypted
golang.org/x/net/internal/socket
golang.zx2c4.com/wireguard/rwcancel
github.com/vishvananda/netns
github.com/vishvananda/netlink/nl
golang.org/x/net/ipv6
golang.org/x/net/ipv4
github.com/quic-go/quic-go/internal/qtls
github.com/quic-go/quic-go/internal/qerr
github.com/quic-go/quic-go/internal/flowcontrol
github.com/quic-go/quic-go/internal/wire
github.com/vishvananda/netlink
golang.zx2c4.com/wireguard/tun
golang.org/x/net/icmp
github.com/quic-go/quic-go/logging
github.com/quic-go/quic-go/internal/logutils
github.com/quic-go/quic-go/internal/congestion
github.com/quic-go/quic-go/internal/handshake
github.com/quic-go/quic-go/internal/ackhandler
github.com/quic-go/quic-go
github.com/yggdrasil-network/yggdrasil-go/src/core
github.com/yggdrasil-network/yggdrasil-go/src/ipv6rwc
github.com/yggdrasil-network/yggdrasil-go/src/admin
github.com/yggdrasil-network/yggdrasil-go/src/multicast
github.com/yggdrasil-network/yggdrasil-go/src/tun
github.com/yggdrasil-network/yggdrasil-go/cmd/yggdrasil
Building: yggdrasilctl
github.com/rivo/uniseg
encoding/csv
github.com/mattn/go-runewidth
github.com/olekukonko/tablewriter
github.com/yggdrasil-network/yggdrasil-go/cmd/yggdrasilctl

real	0m11,190s
user	0m25,764s
sys	0m4,591s
Получилось:

Код: Выделить всё

olej@R420:~/2023/Yggdrasil/yggdrasil-go$ ./yggdrasil --version
Build name: yggdrasil-future
Build version: 0.4.7-68-g7f94463

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil версия 0.5 vs 0.4

Непрочитанное сообщение Olej » 30 июн 2023, 01:10

Olej писал(а):
30 июн 2023, 00:17
Получилось:
Проверка...
Прежде всего, останавливаю предыдущую версию работающую как сервис:

Код: Выделить всё

olej@R420:~/2023/Yggdrasil/yggdrasil-go$ sudo systemctl stop yggdrasil
[sudo] пароль для olej:       

Код: Выделить всё

olej@R420:~/2023/Yggdrasil/yggdrasil-go$ systemctl status yggdrasil --no-pager --full 
○ yggdrasil.service - yggdrasil
     Loaded: loaded (/etc/systemd/system/yggdrasil.service; enabled; vendor preset: enabled)
     Active: inactive (dead) since Thu 2023-06-29 23:08:24 EEST; 2s ago
    Process: 1590 ExecStart=/usr/bin/yggdrasil -useconffile /etc/yggdrasil.conf (code=exited, status=0/SUCCESS)
   Main PID: 1590 (code=exited, status=0/SUCCESS)
        CPU: 8min 43.857s
...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil версия 0.5 vs 0.4

Непрочитанное сообщение Olej » 30 июн 2023, 01:28

Olej писал(а):
30 июн 2023, 01:10
Прежде всего, останавливаю предыдущую версию работающую как сервис:
Автогенерация конфиг-файла:

Код: Выделить всё

olej@R420:~/2023/Yggdrasil/yggdrasil-go$ sudo ./yggdrasil -genconf > ./yggdrasil.conf

Код: Выделить всё

root@R420:/home/olej/2023/Yggdrasil/yggdrasil-go# grep -v "\#" ./yggdrasil.conf | grep -v ^$ | grep Peers:
  Peers: []
  InterfacePeers: {}
Это годится для локальных пиров LAN (автопиров).
Формат конфиг-файла существенно поменялся:

Код: Выделить всё

olej@R420:~/2023/Yggdrasil/yggdrasil-go$ grep "PrivateKey" yggdrasil.conf
  PrivateKey: 67dcf9d61c9540d3f799f45aa98fd2ba6433937112059827715ddb7f48374b2fa51296b2b924115169cadedf60fbd4762e31f2a3886b5c72299cf958bc304b51

Код: Выделить всё

olej@R420:~/2023/Yggdrasil/yggdrasil-go$ grep "PublicKey" yggdrasil.conf
  AllowedPublicKeys: []
Т.е. значение PrivateKey определено, но PublicKey нет ...
Хотя PublicKey - это 2-я половина PrivateKey ... как видно потом (после запуска):

Код: Выделить всё

olej@R420:~/2023/Yggdrasil/yggdrasil-go$ sudo ./yggdrasilctl getself
Build name:             yggdrasil-future
Build version:          0.4.7-68-g7f94463
IPv6 address:           200:b5da:d29a:8db7:dd5d:2c6a:4241:3e08
IPv6 subnet:            300:b5da:d29a:8db7::/64
Routing table size:     1
Public key:             a51296b2b924115169cadedf60fbd4762e31f2a3886b5c72299cf958bc304b51

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil версия 0.5 vs 0.4

Непрочитанное сообщение Olej » 30 июн 2023, 02:09

Olej писал(а):
30 июн 2023, 01:28
Это годится для локальных пиров LAN (автопиров).

Код: Выделить всё

root@R420:/home/olej/2023/Yggdrasil/yggdrasil-go# grep -v "\#" ./yggdrasil.conf | grep -v ^$ | grep Peers:
  Peers: []
  InterfacePeers: {}
Запуск:

Код: Выделить всё

olej@R420:~/2023/Yggdrasil/yggdrasil-go$ sudo ./yggdrasil -useconffile ./yggdrasil.conf
2023/06/30 00:50:06 Build name: yggdrasil-future
2023/06/30 00:50:06 Build version: 0.4.7-68-g7f94463
2023/06/30 00:50:06 Your public key is a51296b2b924115169cadedf60fbd4762e31f2a3886b5c72299cf958bc304b51
2023/06/30 00:50:06 Your IPv6 address is 200:b5da:d29a:8db7:dd5d:2c6a:4241:3e08
2023/06/30 00:50:06 Your IPv6 subnet is 300:b5da:d29a:8db7::/64
2023/06/30 00:50:06 UNIX admin socket listening on /var/run/yggdrasil.sock
2023/06/30 00:50:06 TLS listener started on [fe80::13f5:9fe2:6393:bf4a%eno1]:40503
2023/06/30 00:50:06 TLS listener started on [fe80::9bac:3791:1b79:7237%eno2]:42879
2023/06/30 00:50:06 Interface name: tun0
2023/06/30 00:50:06 Interface IPv6: 200:b5da:d29a:8db7:dd5d:2c6a:4241:3e08/7
2023/06/30 00:50:06 Interface MTU: 65535
...

Код: Выделить всё

olej@R420:~/2023/Yggdrasil/yggdrasil-go$ sudo ./yggdrasilctl getpeers
[sudo] пароль для olej:
URI     State   Dir     IP Address      Uptime  RX      TX      Pr      Last Error

Код: Выделить всё

olej@R420:~/2023/Yggdrasil/yggdrasil-go$ sudo ./yggdrasilctl getself
Build name:             yggdrasil-future
Build version:          0.4.7-68-g7f94463
IPv6 address:           200:b5da:d29a:8db7:dd5d:2c6a:4241:3e08
IPv6 subnet:            300:b5da:d29a:8db7::/64
Routing table size:     1
Public key:             a51296b2b924115169cadedf60fbd4762e31f2a3886b5c72299cf958bc304b51
Как видно, пиры local-link прослушивают, но не подключаются:

Код: Выделить всё

olej@R420:~/2023/Yggdrasil/yggdrasil-go$ ip -6 a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 fe80::13f5:9fe2:6393:bf4a/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 fe80::9bac:3791:1b79:7237/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
10: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 65535 state UNKNOWN qlen 500
    inet6 200:b5da:d29a:8db7:dd5d:2c6a:4241:3e08/7 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::8912:5439:a622:19ce/64 scope link stable-privacy
       valid_lft forever preferred_lft forever

И интерфейс созданный естественно не коннектится:

Код: Выделить всё

olej@R420:~$ ping -c3 225:a80a:b42a:63de:fecd:96a9:b216:4f3a
PING 225:a80a:b42a:63de:fecd:96a9:b216:4f3a(225:a80a:b42a:63de:fecd:96a9:b216:4f3a) 56 data bytes

--- 225:a80a:b42a:63de:fecd:96a9:b216:4f3a ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2055ms

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil версия 0.5 vs 0.4

Непрочитанное сообщение Olej » 30 июн 2023, 02:12

Olej писал(а):
30 июн 2023, 01:28
Это годится для локальных пиров LAN (автопиров).
Теперь внешние пиры:

Код: Выделить всё

root@R420:/home/olej/2023/Yggdrasil/yggdrasil-go# grep -v "\#" ./yggdrasil.conf | grep -v ^$ | grep " Peers:" -A5
  Peers: [
    tcp://195.123.245.146:7743
    tcp://yggdrasil.su:62486
    tcp://y.zbin.eu:7743
    tcp://158.101.229.219:17002
  ]

Код: Выделить всё

  
olej@R420:~/2023/Yggdrasil/yggdrasil-go$ sudo ./yggdrasil -useconffile ./yggdrasil.conf
2023/06/30 00:58:28 Build name: yggdrasil-future
2023/06/30 00:58:28 Build version: 0.4.7-68-g7f94463
2023/06/30 00:58:28 Your public key is a51296b2b924115169cadedf60fbd4762e31f2a3886b5c72299cf958bc304b51
2023/06/30 00:58:28 Your IPv6 address is 200:b5da:d29a:8db7:dd5d:2c6a:4241:3e08
2023/06/30 00:58:28 Your IPv6 subnet is 300:b5da:d29a:8db7::/64
2023/06/30 00:58:28 UNIX admin socket listening on /var/run/yggdrasil.sock
2023/06/30 00:58:28 TLS listener started on [fe80::13f5:9fe2:6393:bf4a%eno1]:42597
2023/06/30 00:58:28 TLS listener started on [fe80::9bac:3791:1b79:7237%eno2]:34899
2023/06/30 00:58:28 Interface name: tun0
2023/06/30 00:58:28 Interface IPv6: 200:b5da:d29a:8db7:dd5d:2c6a:4241:3e08/7
2023/06/30 00:58:28 Interface MTU: 65535
...

Код: Выделить всё

olej@R420:~/2023/Yggdrasil/yggdrasil-go$ sudo ./yggdrasilctl getpeers
            URI                 State   Dir     IP Address      Uptime   RX      TX     Pr                                 Last Error
tcp://158.101.229.219:17002     Down    Out                     0s       0kb     0kb    0       3s ago: remote node incompatible version (local 0.5, remote 0.0)
tcp://195.123.245.146:7743      Down    Out                     0s       0kb     0kb    0       4s ago: remote node incompatible version (local 0.5, remote 0.0)
tcp://yggdrasil.su:62486        Down    Out                     0s       0kb     0kb    0       3s ago: remote node incompatible version (local 0.5, remote 0.0)
tcp://y.zbin.eu:7743            Down    Out                     0s       0kb     0kb    0       3s ago: remote node incompatible version (local 0.5, remote 0.0)
Пиры не подсоединились: remote node incompatible version :!:
И естественно:

Код: Выделить всё

olej@R420:~$ ping -c3 225:a80a:b42a:63de:fecd:96a9:b216:4f3a
PING 225:a80a:b42a:63de:fecd:96a9:b216:4f3a(225:a80a:b42a:63de:fecd:96a9:b216:4f3a) 56 data bytes

--- 225:a80a:b42a:63de:fecd:96a9:b216:4f3a ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2046ms

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil версия 0.5 vs 0.4

Непрочитанное сообщение Olej » 30 июн 2023, 02:14

Olej писал(а):
30 июн 2023, 02:12
И естественно
Из Telegram (https://t.me/yggdrasil_re/19258)
ufm: Не, ну future-future у мен/ работало и автопиром и руками. Я-ж именно об эту связку и проверял. А то, что 0.5 будет несовместима с 0.4 - и говорилось и ожидалось.
ufm: пока оно кроме как для "поиграться" смысла не имеет в принципе.

Ответить

Вернуться в «Сети»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 16 гостей