summaryrefslogtreecommitdiff
path: root/version.h
AgeCommit message (Collapse)Author
2015-11-02Decided to make this 1.1.0 (semantic versioning increment is warranted), and ↵Adam Ierymenko
add a legacy hack for older clients working with clusters.
2015-09-23Version bump, preparing for a likely 1.0.6 soon.Adam Ierymenko
2015-08-25VERSION 1.0.5: Windows and Linux (upgrade) bug fixesAdam Ierymenko
Version 1.0.5 is a very minor release. It includes a new build of the Windows device driver that supports Windows Vista and 2008 Server, and a fix to prevent an issue that could occur when updating Linux installations from old pre-1.0.3 versions to 1.0.3 or 1.0.4. It also includes a few very minor fixes and improvements to the controller code, which doesn't affect most users. This second commit just bumps version.h. :)
2015-07-23Eliminate some poorly thought out optimizations from the netconf/controller ↵Adam Ierymenko
interaction, and go ahead and bump version to 1.0.4. For a while in 1.0.3 -dev I was trying to optimize out repeated network controller requests by using a ratcheting mechanism. If the client received a network config that was indeed different from the one it had, it would respond by instantlly requesting it again. Not sure what I was thinking. It's fundamentally unsafe to respond to a message with another message of the same type -- it risks a race condition. In this case that's exactly what could happen. It just isn't worth the added complexity to avoid a tiny, tiny amount of network overhead, so I've taken this whole path out. A few extra bytes every two minutes isn't worth fretting about, but as I recall the reason for this optimization was to save CPU on the controller. This can be achieved by just caching responses in memory *there* and serving those same responses back out if they haven't changed. I think I developed that 'ratcheting' stuff before I went full time on this. It's hard to develop stuff like this without hours of sustained focus.
2015-06-03Put version back to 1.0.3.Adam Ierymenko
2015-06-03Temporarily bump version to fake 1.0.99 to test auto-update within network.Adam Ierymenko
2015-02-17Re-incorporation: ZeroTier Networks -> ZeroTier, Inc. [Delaware]Adam Ierymenko
2015-01-09Add confirmation step to new netconf, with the caveat that it will be ↵Adam Ierymenko
disabled for older netconf servers to avoid race. Also add some comments.
2015-01-05Cleanup, add tristate to config code in Network, and happy new year!Adam Ierymenko
2014-12-19VERSION 1.0.2: Experimental FreeBSD support!Adam Ierymenko
Version 1.0.2 brings experimental FreeBSD support. It has ONLY been tested on FreeBSD 10 on an x64 system, and should be considered alpha for this platform for now. This version is not going to be pushed out to the entire world via software update, and the binary version distributed for other platforms via the zerotier.com web site will remain 1.0.1 as there are no other meaningful user-facing changes. This is just an interim release to let FreeBSD users try it out. If you find bugs, please enter them on GitHub or do a pull request and fix them yourself.
2014-12-05VERSION 1.0.1Adam Ierymenko
This version is mostly a bug fix release. It fixes a bug that could cause the service to crash on Windows while running the GUI application. It also contains a number of fixes to the Linux installer and Linux support for systemd-based init systems. It also includes a minor tweak to the multicast algorithm. Version 1.0.0 sent multicasts in a deterministic order, while this version randomizes the order. The vast majority of users will notice nothing, but this may result in superior coverage for service announcements on very large networks. It's a hard variation to test, so we're releasing like this to gather information from users about the effect. Nothing will change on small networks, and ordinary multicast functions like ARP and NDP should be unaffected. The next version will likely focus on additional improvements to Microsoft Windows support, since there are several known Windows issues in need of attention. We're working on an NDIS6-based Tap driver that should address the driver issues experienced by a small number of Windows 7 users.
2014-10-05Bump version to 1.0.0, add legacy support code to Multicaster to not send ↵Adam Ierymenko
new frame to known-to-be-old peers.
2014-09-18VERSION 0.9.3: unreleased update with some fixes for Pi usersAdam Ierymenko
This version is being tagged and bagged, despite the fact that it's not going to be released and won't be merged into master until 1.0.0 is ready. It contains several Linux build fixes, a fix for a unix domain socket resource leak, and build fixes for the Raspberry Pi.
2014-08-20Version bump to 0.9.2 -- preparing for release...Adam Ierymenko
2014-07-03VERSION 0.9.1: bug fixes and experimental bridging supportAdam Ierymenko
This version fixes several bugs including an issue with networks that have EtherType filtering disabled, a file permission issue that affected non-English versions of Windows, a multicast propagation bug that caused multicasts to be dropped more often than they should be, and an issue with IP auto-configuration. It also introduces experimental support for bridging between physical and virtual networks, a much-requested and powerful ability that's been planned from the start. ZeroTier One can now replace the functionality of ordinary VPNs, link multiple offices into a single LAN, and connect virtual machine backplanes in the cloud to physical networks at home, among other things. Bridging support isn't "officially" out yet, since the web UI part is still in development. But when that is done, an official announcement will be made on the blog and users can try it out. So far bridging has only been tested under Linux with the Linux kernel's native bridging driver. YMMV on other platforms. Try it out and let us know by filing bugs at GitHub or e-mailing them to "contact@zerotier.com".
2014-05-29VERSION 0.9.0: upgrade required!Adam Ierymenko
Version 0.9.0 adds a network-wide toggle for blanket broadcast (ff:ff:ff:ff:ff:ff), contains changes for compatibility with the new web site and netconf server code, and most importantly introduces unique non-conflicting MAC address schemes on a per-virtual-network basis. The MAC address change is necessary to support bridging, which is the next major feature to be added. It's not absolutely required, but it makes sure that things work properly in the (probably very rare) case that two virtual networks happen to be directly or indirectly bridged together. The MAC change means that 0.9.0 is a required update. Clients not updating will find themselves unable to communicate with older versions. The underlying protocol is the same, but MAC address resolution and routing will not work properly. Those running binary releases will be updated automatically, while those running from source must download and rebuild. This version also fixes two minor security issues, including one involving file permissions on non-English Windows versions.
2014-04-10VERSION 0.8.2Adam Ierymenko
This version fixes a few more issues with TCP tunneling including GitHub issue #63. It also adds automatic announcement and location of peers on physical LANs (GitHub issue #56) which should greatly improve performance if you happen to be on the same LAN or WiFi network as another peer. It can take 60 seconds or so for this to occur, but it should.
2014-04-09VERSION 0.8.1Adam Ierymenko
This, quick on the heels of 0.8.0, fixes the fact that TCP tunneling was broken. :) There was a bug that only manifested in some cases, and not on my testnet. I took the opportunity to clean up some of that logic generally. I need a better testnet, but that will have to wait until we exit beta and hopefully I can earn a little bit of money off this. A better testnet will require a big beefy virtualization box or two to run hundreds to thousands of KVMs. Also fixed a tiny cosmetic issue on Windows. Other than that no changes.
2014-04-08VERSION 0.8.0Adam Ierymenko
This version introduces a major new feature requested by several users, both via the user survey and otherwise: TCP tunneling. If you are not able to communicate over UDP/9993, ZeroTier One will switch to TCP connections to ZeroTier's supernodes. This is always slower than UDP, but will allow you to communicate behind all but the most extremely restrictive firewalls. This TCP traffic travels over port 443 and looks like HTTPS (SSL) traffic (though it isn't), since that port is almost always open. This also fixes several minor bugs and attempts to improve the robustness of Windows tap driver management. Several users have reported spurious issues with the Windows tap device, though I was unable to reproduce any of these with clean VMs. (Tried Windows 7 and 8.1, both x86 and x64. No luck.) But I tried to beef up the tap code anyway in the hopes of catching it. It now tries a lot harder to make sure the tap is up and running. There was some significant under the hood refactoring in support of TCP, so this was a non-trivial change. I bumped the version to 0.8 to indicate that more and more features are being crossed off the list as we approach 1.0 and exit from beta. After this, the next major feature will be LAN announcement to find direct paths to peers on the same physical LAN. But assuming that 0.8.0 goes smoothly, I am going to divert attention to the web site. A new design is coming that is much cleaner, sharper, and easier to use. Thank you all for all your excellent feedback! We're well on the way to a killer product that makes conventional VPNs and other kludges obsolete.
2014-03-07VERSION 0.7.2: first Windows release!Adam Ierymenko
Version 0.7.2 marks the first release of ZeroTier One for Windows. Binaries will be released to a few select testers at first, then to the whole world. Installation from MSI and auto-update appear to be working. So far Windows 7 and 8 and Windows Server 2008 or newer are supported. Vista has issues so it's not supported at the moment, and may not be since nobody seems to use it (according to Google Analytics).
2014-03-05VERSION 0.7.1: installation fixes, new supernodeAdam Ierymenko
This version contains fixes to Linux installation and deployment and adds a new supernode in Tokyo, Japan. It also has a working Windows installer, though a bit more testing is going to take place before Windows binaries are actually released.
2014-02-16Boring stuff: update dates in copyrights across all files.Adam Ierymenko
2014-02-14VERSION 0.7.0: fix two bugs reported on GitHub, public binaries now in the wild!Adam Ierymenko
Version 0.7.0 commemorates public beta binaries now being in the wild for Mac and Linux platforms, though this actually happened a few days ago with 0.6.14. This version fixes two bugs. First, the Linux installer/updater now supports both systemd and regular SysV init. It will detect which your distro uses at install/update time and install the zerotier-one service accordingly. Secondly, this fixes an issue that caused the service to always show ONLINE in the GUI or 'zerotier-cli info' even if there was no net connection. The online status should be more reliably reported now.
2014-02-11VERSION 0.6.14: bug fixes, Unix device persistenceAdam Ierymenko
This version adds persistence of *nix device names (where possible), and fixes a possible crash in Topology.cpp that was introduced in a previous revision. It also adds a new supernode located in Singapore!
2014-02-04VERSION 0.6.13: small bug fix, UI workAdam Ierymenko
This is just a small bug fix and some UI work. Version bumps will be coming faster too to test auto-update.
2014-02-03VERSION 0.6.12: code cleanup in peers and IP address enumeration improvementsAdam Ierymenko
This version ties up some stuff that remains in the core before binary release. It adds support for direct interface IP enumeration on *nix systems, as well as a fix for IPv6 link-local addresses on OSX. This also contains some cleanup in Peer and some improvements to help detect and route around dead or unreachable supernodes. Getting close!
2014-01-30VERSION 0.6.11: Windows wrap-up work, NAT-t fixesAdam Ierymenko
This version fixes a minor NAT traversal issue. In the past, NAT-t links had a timeout but otherwise were preserved. This version makes them more ephemeral and invalidates them on sleep/wake or changes in network configuration or environment. This is because many NAT setups are very fragile with regard to hole punches, so the past stickiness of links caused dead links to persist too long and break connectivity between peers. This is about 75% of what needs to be done to greatly improve robustness. The other 25% involves detecting failed links or failed relays. This version is also almost done for the Windows platform, moving us even closer to binary release.
2014-01-24VERSION 0.6.10: Windows runs again!Adam Ierymenko
Not a significant release for OSS users, but this version marks a significant increase in workitude on the Windows platform. A properly and officially signed x64 driver is also included. x86 drivers and more Windows work including Qt UI are coming soon.
2014-01-17VERSION 0.6.9: more UI, installation, and packaging work...Adam Ierymenko
Another release leading up to official binary releases... not much to the core, but quite a bit of work on the UI, installation, and such. This version will build and run on OSX 10.6 while previous versions would fail due to a missing getifmaddrs() function.
2014-01-10VERSION 0.6.8: changes in preparation for binary releaseAdam Ierymenko
This version contains no significant changes to the engine itself, just to the installer, the GUI, and packaging and such. It's all stuff for prep for the big release, which is fast approaching!
2013-12-31VERSION 0.6.7: revert change for GitHub issue #20Adam Ierymenko
This will have to be thought out more. The old version worked fine 99% of the time so we'll revisit this.
2013-12-31VERSION 0.6.6: fix to path discoveryAdam Ierymenko
New versions will be coming fast and furious for a bit as bugs get fixed and testing is done in prep to the first binary release. This version fixes a problem with WAN path discovery and a possible security issue in PacketDecoder. (see previous comments)
2013-12-31VERSION 0.6.5: minor bug fix in peer connection trackingAdam Ierymenko
2013-12-30VERSION 0.6.4: fixes two GitHub issues, leading up to binary release!Adam Ierymenko
2013-12-26Bump version to 0.6.4 for testing, integrate software updater auto-check ↵Adam Ierymenko
into PacketDecoder decode path and main loop.
2013-12-12VERSION 0.6.3: moving toward binary releaseAdam Ierymenko
This version contains few changes that are visible to users building from source. It contains an almost-complete version of the Qt-based GUI in ZeroTierUI, though this is still a work in progress. It also contains the software update infrastructure, which is not yet enabled by default but does basically work. Some cleanup and dead code removal has also occurred. The next release will probably be the first binary release with auto-update and a full UI experience for Linux and Mac. Windows will follow later, as more work has to be done on the Windows port.
2013-10-28VERSION 0.6.2: Mac users should 'sudo make install-mac-tap' again.Adam Ierymenko
This version fixes a recurrent gremlin in the tap driver for Mac. If you are having this issue, you should reinstall the tap. If you're already running ZT1, shut it down (sudo killall zerotier-one) and then do: sudo kextunload /Library/Application\ Support/ZeroTier/One/tap.kext This should unload the old version. Then type 'sudo make install-mac-tap' in the ZT1 source home directory and the new version will be installed. ZT1 will load the module again when it next starts. In addition to a fix, I am now distributing tap binaries and it is no longer built in the default Makefile. This is because Apple's in the midst of some changes that have made building it somewhat difficult. Another note for Mavericks users: The first time you use ZT1, you will get a popup about unsigned kernel extensions. This will vanish once we're out of beta and have signing keys and signed drivers. Other changes in this version: * Minor improvement to Utils::getSecureRandom * Bug fixes and a small change to certificates of membership for private networks, which now appear to be working very well! * Stubbed out messages for auto-update, which will be done in-band via the ZT1 protocol. Not implemented yet.
2013-10-21Version 0.6.1: minor bug fix, DBM removalAdam Ierymenko
This version removes the peer DBM present in earlier releases. It is not necessary for regular clients and has been a source of problems. There is a long-term identity cache that can be enabled by making a directory called "iddb.d" in the home folder and restarting ZT1. This is probably something only our supernodes would need, since regular nodes can easily WHOIS peers they've forgotten about. On shutdown, the peer database is dumped to disk. It's then restored on startup. Peers that have not been used in a while are cleaned out, so this keeps this data set small. A DBM may re-appear later if it's needed, but for now it was YAGNI.
2013-10-18Bump version.h to version 0.6.0... almost there!Adam Ierymenko
2013-10-03VERSION 0.5.0 - alpha users must rebuild and restart!Adam Ierymenko
Whew. This is a big one. More of a marathon than a sprint. First, four big things: 1) This version breaks backward compatibility with all prior versions. It's in alpha, I can do that. 2) The port has changed from 8993 to 9993 to mark this change. Probably not necessary but why not? Also 8993/UDP turned out to be used by some enterprise LDAP thingy, which doesn't matter much either but again why not? 3) This version, unlike previous versions, does NOT auto-join the Earth network. Soon there will be more than one net, and not everyone is going to want to get dumped on a flat global LAN right out of the box. To join Earth use the command line interface: sudo zerotier-cli join bc8f9a8ee3000001 4) Finally, you will get a different IP on Earth. The whole cryptosystem has changed and we're not going to bother with continuity issues in alpha testing. So what's changed? See the blog: http://blog.zerotier.com/post/62991430345/alpha-zerotier-one-network-is-down-briefly The net should be up shortly after this commit. If there are any issues, 0.5.0 will be rapidly followed by 0.5.1. :-) Otherwise the next sprint will be finishing up support for private networks. Then it's off to the races with BETA, then Windows. (Decided to move into beta before Windows in all likelihood.)
2013-08-28VERSION 0.4.5Adam Ierymenko
Changes: * It now builds and runs on Windows with Visual Studio 2012. Windows is not ready for prime time yet though for several reasons, so no Windows release yet. If you're brave you can try to DIY, but the driver is not signed yet either. Windows is a work in progress still. * Networks now pull their ethernet type whitelist from the netconf master instead of having it hard-coded. (Prep for network mgmt.) * Netconf master now sends name and description of networks so this can be used to set Windows network display names. * A couple minor bug fixes here and there, nothing major. * No protocol changes that break compatibility.
2013-08-23VERSION 0.4.4: multicast cleanup, Windows port workAdam Ierymenko
In addition to a lot of Windows port work that isn't finished yet (and doesn't affect the *nix platforms at all), this version contains quite a bit of multicast cleanup and code simplification. I also pulled rate limits for now, as it seems to be causing problems. More testing on the testnet is going to be needed.
2013-08-13Version 0.4.3: fix Gentoo ip config failures and crashesAdam Ierymenko
This version fixes problems with locating the 'ip' command on Gentoo and possibly other Linux systems, and a problem that could cause a crash if EthernetTap was unable to locate one of the commands it invokes to configure IP information on tap devices. The code also now builds on Windows. It doesn't run yet, but it's a step. Windows port is in full swing.
2013-08-120.4.2: cleanup releaseAdam Ierymenko
Version 0.4.2 is largely a cleanup release. Changes are minor: * Programatically replace libcrypto's random number generator with our own (using /dev/urandom or Windows CAPI) since libcrypto's RNG likes to use uninitialized memory as one of its entropy sources. This causes massive floods of valgrind (debugger) errors during memory error profiling analysis. * Clean up some other code to eliminate valgrind errors. Valgrind now runs on Linux with only one error. This error is in EthernetTap and is a false positive.
2013-08-09Version 0.4.1 - RateLimiter for multicast, bug fixes.Adam Ierymenko
This version adds a draft of the multicast rate limiting architecture. A few minor bugs are also fixed. The Linux version builds in debug mode for now.
2013-08-070.4.0: MAJOR CHANGE TO NETWORK IDS AND NETWORK MEMBERSHIP (please upgrade!)Adam Ierymenko
In keeping with the wild west alpha phase of this software, this version is a major departure from 0.3.0 and an upgrade is required. The protocol hasn't changed much, but the system of network membership, network IDs, and network configuration bootstrapping has changed dramatically. The mechanism for network autoconfiguration is now in-band, via the ZeroTier protocol itself, rather than using an HTTP API. This simplifies the code and allows us to use a consistent system of encryption and authentication. To accomodate this change, network IDs now contain in their most significant 40 bits the ZeroTier address of a node responsible for overseeing the addressing of participating network members. The remaining bits are free, so each network controller (netconf node) can control up to 2^24 networks. The code for the netconf service is in /netconf-service, but for ordinary users there's not much need to look at it or use it. It's just there to be open source. The system for network membership tracking is also revamped. For open networks like Earth this doesn't matter, but for closed networks membership is now driven by something called a membership certificate that is signed by the controlling node in the network. There's still work to be done here, so private network support isn't fully baked yet. But public open networks work fine. Nodes still join "Earth" by default. The ID for Earth has changed from 1 to 6c92786fee000001 (hex). This means that old 0.3.0 clients and older will not be able to communicate with 0.4.0 as their network IDs will not match. The new certificate-based network membership system scales better than the old HTTP API system and will support some pretty amazing features. Stay tuned! For now just update and relaunch. You should get the same IPv4 address you had before. The second big change is zerotier-cli. Try running it as root (or after copying the auth file to the path it tells you about when you first run it) with 'help' as a command.
2013-07-130.3.0: BREAKS PROTOCOL BACKWARD COMPATIBILITYAdam Ierymenko
This version is not compatible with versions prior to 0.3.0, so 'git pull' and restart if you are following the alpha. Changes from 0.2.5: - All multicast frames are now signed by the original sender. This will permit very efficient and fault tolerant rate limitation across networks, and imposes a kind of "hash cash" cost on those who wish to flood the network by forcing them to keep regenerating new identities. - Simplified peer last unicast / last multicast accounting. - Improvements to multicast propagation algorithm to achieve better coverage with less redundant messages. - The bloated Switch class went on a diet, having packet decoding broken out into PacketDecoder and multicast propagation algorithm broken out into Multicaster. - Multicaster is implemented as a template mockable class to permit future simulations of huge scale multicast using the actual code instead of mockups in another language. - Introduced a faster non-cryptographic random source for things like multicast propagation and address choosing. - Some code cleanup, removal of outdated comments, etc.
2013-07-100.2.5 - cleaned up multicast propagation algorithm and factored it out into ↵Adam Ierymenko
Multicaster.hpp and BloomFilter.hpp
2013-07-09Version 0.2.4 - fix for EthernetTap shutdown problem, security improvements ↵Adam Ierymenko
(no known bugs fixed, just proactive work)
2013-07-080.2.3 - OSX bug fix, multicast propagation fix, no incompatible protocol changesAdam Ierymenko