惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
Lohrmann on Cybersecurity
S
Secure Thoughts
I
Intezer
Forbes - Security
Forbes - Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
H
Help Net Security
IT之家
IT之家
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
宝玉的分享
宝玉的分享
S
Securelist
T
The Exploit Database - CXSecurity.com
博客园 - 叶小钗
Security Latest
Security Latest
The Cloudflare Blog
Jina AI
Jina AI
T
Tenable Blog
J
Java Code Geeks
G
GRAHAM CLULEY
C
CERT Recently Published Vulnerability Notes
SecWiki News
SecWiki News
AI
AI
博客园 - 聂微东
S
Schneier on Security
博客园_首页
爱范儿
爱范儿
有赞技术团队
有赞技术团队
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园 - 【当耐特】
T
Threatpost
Security Archives - TechRepublic
Security Archives - TechRepublic
Help Net Security
Help Net Security
酷 壳 – CoolShell
酷 壳 – CoolShell
Recent Announcements
Recent Announcements
W
WeLiveSecurity
M
MIT News - Artificial intelligence
H
Hackread – Cybersecurity News, Data Breaches, AI and More
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
Last Week in AI
Last Week in AI
T
Threat Research - Cisco Blogs
S
Security Affairs
T
Tor Project blog
T
Tailwind CSS Blog
N
News | PayPal Newsroom
C
CXSECURITY Database RSS Feed - CXSecurity.com
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
The Register - Security
The Register - Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security

Yggdrasil Network

Upcoming v0.5 Release Upcoming v0.5 Release v0.4 Pre-release Benchmarks v0.4 Pre-release Benchmarks Preparing for Yggdrasil v0.4 Preparing for Yggdrasil v0.4 Release v0.3.13 Release v0.3.13 Acting out Acting out Meshing using Apple Wireless Direct Link (AWDL) Meshing using Apple Wireless Direct Link (AWDL) Version 0.3.6 Practical peering Practical peering History of the World Tree, Part I History of the World Tree, Part I Announcing Yggdrasil Network v0.3 Announcing Yggdrasil Network v0.3
Version 0.3.6
Neil Alexander · 2019-08-03 · via Yggdrasil Network

3 August 2019 by Neil Alexander

New release!

It’s been nearly five months since we released version 0.3.5 of Yggdrasil. In that time we’ve seen the node count rise to over 400 nodes on the public network at times (over 80% of which are running the latest released version) and we’ve gained valuable insight to the kinds of challenges that our users have. We’ve worked to fix a number of bugs and to improve Yggdrasil.

In terms of lines of code changed, version 0.3.6 is the biggest release of Yggdrasil to date, with several thousands of lines of code affected. It represents a massive refactoring exercise in which we’ve broken up and modularised the code, dividing core Yggdrasil functionality, TUN/TAP, admin socket and multicast features into their own respective Go packages.

Fixes

Most of the user-facing changes in this release are fairly minimal, however some bugs have been corrected. A complete list is available in the changelog.

Highlights include peers now being added correctly even when one or more configured peers are unavailable or unreachable. Multicast interfaces are also being evaluated more frequently now, which can help if an interface becomes available or goes down after Yggdrasil has already started.

A number of bugs have been fixed in the TUN/TAP and IP-specific code, including problems that affected ICMPv6 and Neighbour Discovery in TAP mode specifically. This helps reliability on platforms where TAP mode is used more commonly, e.g. on BSD platforms or on Windows, although this also improves TAP support on Linux too.

Refactoring and API

Around the previous release, it became obvious to us that our codebase was turning into a monolith. We had pretty much all of the necessary behaviour in a single yggdrasil package to run a single node, but this made our codebase inflexible and difficult to maintain and extend. It also meant that Yggdrasil was virtually impossible to integrate into other applications.

Our refactoring efforts in version 0.3.6 mean that our codebase is now easier to manage and to understand. It also includes the first taste of our API! The API makes it possible to take the Yggdrasil core, drop it into your own Go application and use the Yggdrasil network as a fully end-to-end encrypted and distributed transport layer. We’ve also moved all of the IP-specific code into the TUN/TAP module, which means that Yggdrasil’s core now provides a completely protocol-agnostic transport.

Documentation on how to use the API to integrate Yggdrasil into your own applications will follow soon—watch this space! In the meantime, godoc can be used to examine our new API functions.

Please note though that API functions are not yet finalised and may be subject to change in future versions. Yggdrasil is still alpha-grade software at this point so all of the usual warnings apply.

Platform Support

We enjoy great support from our community in bringing and packaging Yggdrasil on new platforms. Since the release of version 0.3.5, the following third-party packages have cropped up, and we are very grateful to the maintainers:

We expect that any third-party packages which have not yet been updated for v0.3.6 will be updated soon!

We are aware of a few outstanding issues with Windows, which are largely related to one or two bugs in the Water library which we use for TUN/TAP support. We are hoping to address these problems with the maintainer of this library soon. Using Yggdrasil in router-only mode does work as expected, but some bugs when using the TAP adapter still remain. In the meantime, we’d certainly welcome any assistance in maintaining the Windows port of Yggdrasil.

The iOS build has been largely neglected due to API changes, although hopefully a new TestFlight build for version 0.3.6 will be available before too long.

Upgrading

We recommend that all Yggdrasil users always run the latest version of the code wherever possible, so please upgrade as soon as it is convenient. New downloads are available from our Builds page and Neil’s S3 repositories are up-to-date for Debian and EdgeRouter installs.

If you have installed through a package manager, you should be able to upgrade in-place as soon as the new packages are available. On macOS, you can simply install the new .pkg from the builds page over the top of the old one. On Windows, and on any installation where the binary was installed by hand, you can simply replace the yggdrasil and yggdrasilctl binaries with the newly released builds.

Building from source is simple if you have Git and Go 1.11 or later installed:

git clone https://github.com/yggdrasil-network/yggdrasil-go
cd yggdrasil-go
./build

Feedback

We always welcome feedback, so please do feel free to join us either in our Matrix channel or on IRC in #yggdrasil on Freenode. You can also raise bug reports and issues in our GitHub repository.