xlReg_go

The reg library for xlattice_go.

xlReg is a tool, primarily intended for use in testing, which facilitates the formation of clusters, groups of cooperating nodes.

On registration, a client (an xLattice cluster member) is issued a globally unique NodeID, a 256-bit random value. Once it has an ID, the member can create and/or join clusters.

A cluster has a maximum size set when it is created. When members join the cluster they register their two RSA public keys and one or more IP addresses. If the cluster only supports communications between members, members register only one IP address. If non-member clients are allowed to communicate with the cluster, members register a second address for that purpose. It is possible that certain applications may require additional IP addresses. (The first address is used for communications between cluster members. Any second address is used for communications between cluster members acting as servers and their clients.)

When a member has completed registration, it can retrieve the configuration data other members have registered.

The xlReg server, its clients, and the cluster members, are all XLattice nodes which means that each has

Protocols

Cluster members communicate using a common protocol based on Google's Protocol Buffers, a widely-used standard. The same protocol is used for communication with the xlReg registry and for communications with other cluster members. Communications sessions use AES keys that are unique to the session.

Project Status

The Go version of the xlReg server has been stable and in production use since May 2014, when it was split off from the xlattice_go project.

Licensing

Creative Commons License
The material on this github.io website is licensed under a Creative Commons Attribution 4.0 International License.

Project software is licensed under an MIT license. Follow the SOFTWARE LICENSE link below for more information on project software licensing.


github link to project project