Commit Graph

110 Commits

Author SHA1 Message Date
Tim Beatham
7b939e0468 24-keepalive-holepunch
Added the ability to hole punch NAT
2023-11-21 20:42:43 +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
06542da03c main
Fixed problems with timestamp not updating
2023-11-21 13:31:34 +00:00
Tim Beatham
95f4495b0b 21-phonetic-words-ipv6
Simple what 8 words implementation
2023-11-20 18:07:52 +00:00
Tim Beatham
330fa74ef4 IPv6 What 8 Words
what 8 words for ipv6 started
2023-11-20 15:22:32 +00:00
Tim Beatham
b179cd3cf4 Hashing the WireGuard interface
Hashing the interface and using ephmeral ports so that the admin doesn't
choose an interface and port combination. An administrator can alteranatively
decide to provide port but this isn't critical.
2023-11-20 13:03:42 +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
36c264b38e 25-ability-aliases
Fixed unit tests failing
2023-11-17 22:18:53 +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
5f176e731f Developed a rest API 2023-11-13 10:44:14 +00:00
Tim Beatham
1a864b7c80 Removed interface manipulation via os.Exec into
rtnetlink calls
2023-11-07 19:48:53 +00:00
Tim Beatham
acbeb689b5 Prune nodes if they exceed their timeout time 2023-11-06 13:37:28 +00:00
Tim Beatham
bc6cd4fdd5 Modified syncer 2023-11-06 10:05:23 +00:00
Tim Beatham
c88012cf71 Added health system to count how many times a node
fails to conenct.
2023-11-06 09:54:06 +00:00
Tim Beatham
ef614f5961 Add cert dependencies 2023-11-05 18:06:24 +00:00
Tim Beatham
9454d62417 Adding stubs and writing tests 2023-11-05 18:03:58 +00:00
Tim Beatham
bb07d35dcb Unit testing the automerge library and lib functions 2023-11-05 12:13:40 +00:00
Tim Beatham
d17dce3b1e Added clustering and clean up 2023-11-03 15:26:09 +00:00
Tim Beatham
843caddf6b Implemented clustering betweeen nodes 2023-11-03 15:24:18 +00:00
Tim Beatham
8d8a13d6ff Build error forgot to add query.go 2023-11-01 13:17:58 +00:00
Tim Beatham
d462d95d6d Ability for each node to set their description describing what
service they provide.
2023-11-01 11:58:10 +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
aa3d40f82c Added JMESpath to query the state of specific
meshes.
2023-10-31 10:34:09 +00:00
Tim Beatham
e56780fdd4 Added ability to query the JSON data store 2023-10-30 19:02:28 +00:00
Tim Beatham
579426e32d Tidied up code, made changes for benchmarking. 2023-10-30 16:49:02 +00:00
Tim Beatham
472718c9a3 Standardising filenames, interfacing out
for tests and modifying network device
manipulation
2023-10-28 16:38:25 +01:00
Tim Beatham
5757d81a81 Advertising routes into the mesh 2023-10-27 17:49:18 +01:00
Tim Beatham
4c6bbcffcd Interfacing out components for unit testing 2023-10-26 16:53:12 +01:00
Tim Beatham
f1cfd52a91 Cleaning up reposistory 2023-10-25 18:36:13 +01:00
Tim Beatham
c205be6748 Implemented the forwarding of packets between meshes 2023-10-25 18:34:38 +01:00
Tim Beatham
180f5e226c Ability to be in multiple meshes and refactored consensus 2023-10-24 16:00:46 +01:00
Tim Beatham
8e89281484 Tested with large number of nodes 2023-10-24 00:12:38 +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
Tim Beatham
e729c5b181 CRDTs fully incorporated 2023-10-06 18:25:38 +01:00
Tim Beatham
47e260e310 Incorporated automerge 2023-10-06 11:52:51 +01:00
Tim Beatham
81e2d16316 Implementing CRDTs 2023-10-06 10:12:46 +01:00
Tim Beatham
923ca716ec Automerge changes 2023-10-05 17:48:54 +01:00
Tim Beatham
f191c4ff44 Added package changes 2023-10-04 17:17:53 +01:00
Tim Beatham
a069b89a9a Refactored client and server and interfaced out dependencies 2023-10-02 16:03:41 +01:00
Tim Beatham
52e5e3d33c JWT Authentication endpoint 2023-10-01 20:14:09 +01:00
Tim Beatham
94afd68460 Implemented JWT authentication 2023-10-01 19:01:35 +01:00
Tim Beatham
c819bec63d Interfaced problem out 2023-09-29 15:00:20 +01:00
Tim Beatham
a0c20e4d11 IPV6 SLAAC 2023-09-28 16:55:37 +01:00
Tim Beatham
ea2a073875 Added ability to set interface as up 2023-09-21 18:43:29 +01:00
Tim Beatham
6725a193aa Got it working with peer-to-peer network. Does not mark nodes as stale 2023-09-21 13:50:59 +01:00
Tim Beatham
d9dc0ba6b3 Added the gRPC proto file 2023-09-21 11:14:57 +01:00
Tim Beatham
91212e60cf Simple direct peer-to-peer communication 2023-09-20 19:05:29 +01:00
Tim Beatham
cfdf377567 Pseudo-random address allocation 2023-09-20 14:34:34 +01:00
Tim Beatham
dcf851a02e Ability to add peer to config 2023-09-19 23:50:44 +01:00
Tim Beatham
6e9ca4f31f Migrated to using grpc for handling rpc calls 2023-09-19 18:29:35 +01:00
Tim Beatham
86756903c7 Created join-mesh, list-meshes command 2023-09-19 13:45:49 +01:00
Tim Beatham
b679b7fb6e Added IPC handler to wgmesh 2023-09-18 17:00:43 +01:00
Tim Beatham
01238aca59 Incorporated gin server.
Each node communicates in the mesh
2023-09-18 15:52:28 +01:00
Tim Beatham
fa16480521 Commit 2023-09-18 12:59:28 +01:00