Tim Beatham
02dfd73e08
81-seperate-synchronisation-into-independent
...
- Separated synchronisation calls into independent processes
- Commented code for submission
2024-01-04 13:10:08 +00:00
Tim Beatham
1f0914e2df
bugfix-node-not-leaving
...
- Add lock when perform synchronisation on concurrent access
2024-01-04 00:23:20 +00:00
Tim Beatham
27e00196cd
main
...
- Not waiting in the waitgroup
2024-01-02 20:31:24 +00:00
Tim Beatham
dea6f1a22d
main
...
- error in code invalid check for nil
2024-01-02 20:19:34 +00:00
Tim Beatham
913de57568
main
...
- Fixed bug
2024-01-02 20:11:11 +00:00
Tim Beatham
ce829114b1
bugfix
...
- on synchornisation node is not leaving mesh
2024-01-02 19:41:20 +00:00
Tim Beatham
dbc18bddc6
74-perform-dad
...
- Performing DAD to check if IPv6 address present before adding
outselves to mesh
- Changing name from wgmesh to smegmesh
2024-01-01 23:55:50 +00:00
Tim Beatham
fd29af73e3
72-pull-rate-in-configuration
...
- Added pull rate to configuration (finally) so this can
be modified by an administrator.
2023-12-31 12:47:45 +00:00
Tim Beatham
9e1058e0f2
72-pull-rate-in-configuration
...
- Added the pull rate to the configuration file
2023-12-31 12:47:45 +00:00
Tim Beatham
6954608c32
66-ipv6-address-not-confirming-to-spec
...
- UUID is not random just a name generator needs changing to shortuuid
- When in multiple meshes there is no wait group
2023-12-30 22:24:43 +00:00
Tim Beatham
2e6aed6f93
main
...
- Fixing issue with nil pointer de-reference due to bad design of mesh
manager.
- Going forward all references to GetSelf should be depracated. It
introduces a race condition when leaving a mesh network
2023-12-30 00:44:57 +00:00
Tim Beatham
352648b7cb
main
...
- Fixed problem where connection not removed on error
2023-12-29 11:12:40 +00:00
Tim Beatham
2d5df25b1d
main
...
- If deadline exceeded error remove connection from
connection manager
2023-12-29 01:29:11 +00:00
Tim Beatham
cabe173831
main
...
Adding retry parameter
2023-12-29 01:10:26 +00:00
Tim Beatham
bf53108384
main
...
- Bugfix, fix consistent hash problem where
if failure happens then causes panic
2023-12-28 23:24:38 +00:00
Tim Beatham
ad22f04b0d
bugfix-pull-only
...
After certain period of time if no changes have
occurred then pull
2023-12-18 20:45:56 +00:00
Tim Beatham
092d9a4af5
checking-latency-for-pull-only
2023-12-17 09:44:32 +00:00
Tim Beatham
fe14f63217
53-run-commands-pre-up-and-post-down
...
- Ability to run a command pre up and post down
- Ability to be a client in one mesh and a peer in the other
- Added dev card to specify different sync rate, keepalive rate per
mesh.
2023-12-10 19:21:54 +00:00
Tim Beatham
1e263cc6a8
51-bugfix-routes-not-removing-when-withdrawn
...
- Routes are not being removed despite being withdrawn from the
configuration.
- Best path routes are not shared across interfaces
- Bug in consistent hashing wrong parameter passed caused by
refactorings.
2023-12-10 15:10:36 +00:00
Tim Beatham
815c4484ee
47-default-routing
...
Implemented default routing and improved size of gossip. Using 64 bit
hash funciton to identify vector.
2023-12-08 20:02:57 +00:00
Tim Beatham
661fb0d54c
45-use-statistical-testing
...
Keepalive is based on per mesh and not per node.
Using total ordering mechanism similar to paxos to elect a leader
if leader doesn't update it's timestamp within 3 * keepAlive then
give the leader a gravestone and elect the next leader.
Leader is bassed on lexicographically ordered public key.
2023-12-07 18:18:13 +00:00
Tim Beatham
64885f1055
45-use-statistical-testing
...
Using statistical testing to test whether the node has failed.
2023-12-07 01:44:54 +00:00
Tim Beatham
a3ceff019d
43-use-gravestones
...
Change of approach from keepalive to a noiseless protocol
2023-12-06 22:45:04 +00:00
Tim Beatham
3ef1b68ba5
BUGFIX: Hashing datastore to work out changes
...
Changed hashing implementation to work out if there are changes
in the data store
2023-11-30 15:58:26 +00:00
Tim Beatham
650901aba1
39-implement-two-phase-map
...
Implemented my own two phase map based on vector clocks
2023-11-30 02:02:38 +00:00
Tim Beatham
32e7e4c7df
main
...
Bugfix. Fixed issue where consistent hashing was not working.
2023-11-28 14:42:09 +00:00
Tim Beatham
7be11dbaa3
27-remove-client-grpc-endpoint
...
Removed a client's grpc endpoint value. Client's aren't publicly
available so there is no need for a client's gRPC endpoint.
Also changed a node ID's to their public key. A node id's public
address is an issue for mobility of clients as their endpoint
is subject to change
2023-11-24 12:07:03 +00:00
Tim Beatham
6e201ebaf5
24-keepalive-holepunch
...
Nodes acting as peers and nodes acting as clients
2023-11-21 16:42:49 +00:00
Tim Beatham
388153e706
Stubbing out WireGuard components
...
Stubbing our WireGuard components so that I can use docker/podman
network_mode=host. This is much more efficient than the docker/podman
userspace network.
2023-11-20 11:28:12 +00:00
Tim Beatham
68db795f47
Ability to specify aliases
...
Ability to specify aliases that automatically append to /etc/hosts
2023-11-17 22:13:51 +00:00
Tim Beatham
f6160fe138
Adding aliases that automatically gets added
2023-11-17 19:13:20 +00:00
Tim Beatham
1a864b7c80
Removed interface manipulation via os.Exec into
...
rtnetlink calls
2023-11-07 19:48:53 +00:00
Tim Beatham
bc6cd4fdd5
Modified syncer
2023-11-06 10:05:23 +00:00
Tim Beatham
9454d62417
Adding stubs and writing tests
2023-11-05 18:03:58 +00:00
Tim Beatham
843caddf6b
Implemented clustering betweeen nodes
2023-11-03 15:24:18 +00:00
Tim Beatham
e63edea763
Fixing an issue where packets are dropped each time
...
we change wg configuration
2023-11-01 10:39:46 +00:00
Tim Beatham
4c6bbcffcd
Interfacing out components for unit testing
2023-10-26 16:53:12 +01:00
Tim Beatham
180f5e226c
Ability to be in multiple meshes and refactored consensus
2023-10-24 16:00:46 +01:00
Tim Beatham
ef2b57047d
Bidirectional syncing
2023-10-23 18:13:08 +01:00
Tim Beatham
360f9d3c54
Few refactorings of managing the mesh and a graph
...
visualisation tool for seeing the state of a mesh.
2023-10-22 13:34:49 +01:00
Tim Beatham
c4dc984fc7
Added ability to detect if a node should be removed from the mesh.
2023-10-21 18:08:45 +01:00
Tim Beatham
976dbf2613
Automatically remove nodes from the mesh after a
...
certain threshold.
2023-10-20 17:35:02 +01:00
Tim Beatham
c200544cee
Timer in go that syncs with random nodes in the mesh every
...
given time interval.
2023-10-20 12:41:06 +01:00
Tim Beatham
ec87afc235
Added sync
2023-10-10 20:14:40 +01:00