Releases: GlobalEmpire/GERT
GERTi v1.5 - The Modules Release
Features:
Network Services are now supported! You may run them on the MNC to interact with the network at whole, and clients can now communicate with the MNC to get a list of network services and then use that list to interact with each services.
DNS and support for hostnames. By installing MNCAPI (installed as /lib/GERTiClient.lua on the MNC) and DNS.lua as a rc service, clients on the network may now register hostnames and use hostnames while opening sockets.
Tonatsi has designed an auto-updater and compu has designed a set of simple network tools. More modules and tools are being produced by the development team and other users.
Enhanced support for loopback sockets. They still require somewhat specialized handling by programs, but they should open and close correctly.
Support for multipart data packets. It's now possible to do things like socket:write("Hello", 2) and send both parts in a single message.
Changed:
Reworked support for socket flags. "-k" and "-f" flags are supported now to respectively avoid erasing the data buffer and to flatten out the table so multipart data packets will appear as separate messages to the reading program.
Lua 5.3 is now MANDATORY, and must be used on the MNC and all clients in order to receive support with bugs.
Fixed:
A number of bugfixes have been implemented to fix awkward behavior or crashes from v1.4
GERTi v1.4.1 - The Cards Release
Features:
-
Allows computers to have more than one of the same kind of network card. For example, a computer can have 2 linked cards, or a wired and wireless card at the same time. Before, you could only have 1 linked card, 1 wired/wireless card or one of each. This limit has been lifted
-
Computers that have open connections and restart improperly without using the shutdown or reboot command can now automatically regenerate incoming connections upon receiving new data. This allows for better crash handling by programs as the whole socket doesn't need to be regenerated, just the end originating on the computer that crashed.
-
The MNC now saves a copy of the connections and nodes tables to file. If the MNC shuts down improperly without using the shutdown or reboot command, it will attempt to reload these tables on restart. This allows for more graceful recovery than potentially messing up the whole network.
-
Clients will only pass on Node Removal messages from other computers if the originating computer says that they should. This cuts down on large bursts of network traffic for flat networks where a node disconnects.
Bugfixes
- Fixed a bug with GERTiMNC address assignment.
GERTi Version 1.3 Release
Mostly a cleanup and compaction release. API compatible with GERTi v1.2. Protocol Incompatible with GERTi v1.2.
Protocol Change: RETURNSTART melded into NewNode. Now clients must detect if NewNode submits a GERTi address to determine if it should either reply with its own address or store the new node as a neighbor.
Other Change: GERTiMNC is now run as an RC daemon and must go in /etc/rc.d
GERT v1.2 Release
Joint Release of GERTi v1.2 and GERTe v1.1, which bring performance enhancements, stability enhancements, and other new features past v1.0/1.
GERTi v1.2 Changes:
Added - Type checking to GERTi.openSocket() so you don't need the dummy true/false value
Added - GERTi.broadcast() functionally identical to modem.broadcast() but with GERTi Data packets. Shares a connection ID of -1 with GERTi.send
Added - GERTi.getVersion() returns the version of GERTi running
Protocol Change - Tier limit vastly increased. Instead of being limited to 3 hops away from a MNC, nodes can be up to approximately 900 hops away from an MNC. The intermediate value in OpenRoute has been changed to support composition of multiple addresses, separated by |.
Protocol Change - Connection ID, origin, and destination have been unified after a route is opened into a "Connection Index" formed by compositing (origination address.."|"..destination address.."|".. connectionID)
Changed - GERTiMNC now uses a much more efficient table structure and route opening that no longer uses nested loops to iterate through every single neighbor node and should be much faster at identifying the shortest route to the MNC.
GERTe v1.1.0 Changes:
Added - Faster networking system
Added - First official version to support Windows
Added - Makefile for do-it-yourself making
Added - Additional error checking in several functions
Added - Better logging in almost every way
Removed - Library based protocol support. Protocol support (and back support) is baked in.
Fixed - Potential future problems involving racing and generally difficult to diagnose bugs.
Fixed - Reads being blocking thus slow and interruptive. Improved with tuned timeouts.
Fixed - Compiler warnings and other nonsense
Fixed - A few potential memory leaks
Fixed - Web building bug that could lead to double negotiations
Fixed - File reading error could result in byte swapping
Fixed - Technically used deprecated Linux kernel functions
Fixed - Negotiation being awkward and ineffective
Fixed - Negotiation sending a completely unnecessary byte
Additionally, GEDS has been internally cleaned up to improve maintainability and compilation, especially cross platform.
Finally, the GEDS binaries both are 64-bit. The EXE is Windows, the one lacking an extension is ELF.
GERTi Version 1.1 Release
GERTi v1.1 changes the following versus v1.0
Additions:
- Peer-to-Peer communication is now possible without sockets.
- You can now call non-destructive reads on sockets, to allow items in the buffer to be read multiple times.
- Support has been added for computers with a linked card and network card.
- Message re-ordering support has been added
Changes
- Connections can now be established up to 12x faster
- Client file size reduced to only 59% of the former client size
- Clients now have improved shutdown behavior to allow them to leave the network in a more graceful manner.
v1.0.0 Joint Release
The first finished release for GERT! Now you can easily network your OC Computers and connect them to other Minecraft servers and Real-Life Computers. This should be stable and fully functional.
GEDS and GERTe-v1.0.0.gelib are x86-64 for Linux (ELF)
They will not work on other architectures/platforms by themselves
GERTeAPI requires Lua 5.3, but the others work with Lua 5.2 If you wish to use GERTe, please switch the CPU in your Master Network Controller to Lua 5.3 by holding the CPU and right clicking it.