yggdrasil-go
closure-library
yggdrasil-go | closure-library | |
---|---|---|
23 | 5 | |
3,358 | 4,847 | |
2.1% | 0.3% | |
8.2 | 6.6 | |
13 days ago | 9 days ago | |
Go | JavaScript | |
GNU General Public License v3.0 or later | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
yggdrasil-go
-
Tinc, a GPLv2 mesh routing VPN
> The next version will make it much simpler to deploy isolated networks by using TLS roots to prevent accidental peerings.
Is that PR #1038 [1]? Any info on how to use that feature and whether it works over multicast as well?
I noticed this PR uses SHA-1 for matching fingerprints. SHA-1 has been broken for 13 years now. Is it possible to use something more secure?
> It's also worth noting that Yggdrasil doesn't have the equivalent of "peer exchange" — only directly connected peers would ever find out your public IP address. Yggdrasil will not form new peerings automatically, with the single exception being multicast-discovered nodes on the same LAN.
Right, my worry is that by having a server with a public IPv4 address and Yggdrasil running on an open port (so that my other nodes can connect to it) will allow someone to connect to it (either on purpose or accidentally) and cause my traffic to route over their node(s) and/or the public mesh.
Thanks!
[1] https://github.com/yggdrasil-network/yggdrasil-go/pull/1038
- Yggdrasil
- Release Version 0.4.7 · yggdrasil-network/yggdrasil-go · GitHub
-
Tailscale/golink: A private shortlink service for tailnets
From a purely networking perspective, there are far better solutions than tailscale.
Have a look at full mesh VPNs like:
https://github.com/cjdelisle/cjdns
https://github.com/yggdrasil-network/yggdrasil-go
https://github.com/gsliepen/tinc
https://github.com/costela/wesher
These build actual mesh networks where every node is equal and can serve as a router for other nodes to resolve difficult network topologies (where some nodes might not be connected to the internet, but do have connections to other nodes with an internet connection).
Sending data through multiple routers is also possible. They also deal with nodes disappearing and change routes accordingly.
tailscale (and similar solutions like netbird) still use a bunch of "proxy servers" for that. You can set them up on intermediate nodes, but that have to be dealt with manually (and you get two kinds of nodes).
-
The Iran Firewall: A preliminary report
The only real solution long-term is completely peer-to-peer ad-hoc networking that doesn't depend on BGP.
A few projects are in similar territory but none I've seen are working at the layer of bypassing BGP. Many are just acting as an overlay; which works to an extent. https://github.com/yggdrasil-network/yggdrasil-go
It's probably begging for a different model of the "internet" and where data lives.
My requirements:
1. Offline-first applications that sync via a pub/sub DHT of trusted peers. More details here but basically allows bypassing BGP.
-
Make the Internet Yours Again With an Instant Mesh Network
It seems like you can limit connections to your node with AllowedPublicKeys (ref).
- Was war vor 15 Jahren möglich, aber wäre heute undenkbar?
-
[Fanatical] Mindustry - 24 Hour Star Deal (83% off - $1.00 / £0.79 / €0.79)
at least on the official discord the recommended way if you don’t want to play on a public server is using yggdrasil
- Multiplayer Between Steam Owner/Non-Steam Owners
closure-library
-
For processing strings, streams in C++ can be slow
> "I recently learned that some Node.js engineers prefer stream classes when building strings, for performance reasons." Pretty much tells you everything you need to know about node js, I guess.
Google Closure Library includes a StringBuffer class. [1]
I recall it having explanatory notes, but I don't see them in the code now. JavaScript engines can optimize a string concatenating to in-place edit, if there is only one reference to the first string. The StringBuffer class keeps the reference count at one, guaranteeing this optimization is available, even if the StringBuffer itself is ever shared.
[1] https://github.com/google/closure-library/blob/master/closur...
- Closure Library Is in Maintenance Mode
-
Tailscale/golink: A private shortlink service for tailnets
This made me wonder what the oldest go-link (from inside Google) discoverable on the public internet is. So far I've found one going back to 2013 (but there should definitely be some from the mid 2000s): https://github.com/google/closure-library/blame/11ed104958a2...
(Fun fact: go-links are so critical to Google ops, that they're expected to be accessible in a "everything is down" scenario.)
-
Which Type, Currency Values In DB?
For data type I always use DECIMAL(#, 6). So 6 decimal places. This accommodates all generally agreed upon rounding standards for calculating interest, taxes, discounts, etc. So for me, something like $12.75 USD will look like 12.750000 in the database. I store the 3-letter currency code in a separate column. I know what the base value for each currency is on the code side in our framework, which has a currency library that reads a dataset that has every currency stored like this (the 'rules' key is a bitmask per Google's i18n currency.js):
- How do I find out what functions are called when a button is pressed in Chrome Console?
What are some alternatives?
Nebula - A scalable overlay networking tool with a focus on performance, simplicity and security
golink - A private shortlink service for tailnets
cjdns - An encrypted IPv6 network using public-key cryptography for address allocation and a distributed hash table for routing.
go-links - The open source go links app at the core of Trotto.
mesh-networking - :globe_with_meridians: LEGO blocks for networking, a Python library to help create and test flexible network topologies across real and simulated physical links.
wesher - wireguard overlay mesh network manager
PJON - PJON (Padded Jittering Operative Network) is an experimental, arduino-compatible, multi-master, multi-media network protocol.
go - Another Google-like Go short link service
pinecone - Peer-to-peer overlay routing for the Matrix ecosystem
ZeroTier - A Smart Ethernet Switch for Earth
ergo - An actor-based Framework with network transparency for creating event-driven architecture in Golang. Inspired by Erlang. Zero dependencies.
tailscale - The easiest, most secure way to use WireGuard and 2FA.