Commit Graph

48 Commits

Author SHA1 Message Date
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
64885f1055 45-use-statistical-testing
Using statistical testing to test whether the node has failed.
2023-12-07 01:44:54 +00:00
32e7e4c7df main
Bugfix. Fixed issue where consistent hashing was not working.
2023-11-28 14:42:09 +00:00
d8e156f13f 36-add-route-path-into-route-object
Added the route path into the route object so that we can
see what meshes packets are routed across.
2023-11-27 18:55:41 +00:00
aef8b59f22 32-fix-routing
Flooding routes into other meshes a bit like BGP.
2023-11-25 03:15:58 +00:00
d1a74a7b95 32-incorporate-dns
Incorporated a DNS server. A DNS server can be run to resolve host
names.
2023-11-24 15:04:07 +00:00
4c54022f63 25-modify-code-to-use-public-api
Modify the code to use a public IP address by default if none is
specified
2023-11-22 10:41:54 +00:00
0d63cd6624 main
Adding words.txt for what words
2023-11-20 18:12:58 +00:00
95f4495b0b 21-phonetic-words-ipv6
Simple what 8 words implementation
2023-11-20 18:07:52 +00:00
330fa74ef4 IPv6 What 8 Words
what 8 words for ipv6 started
2023-11-20 15:22:32 +00:00
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
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
68db795f47 Ability to specify aliases
Ability to specify aliases that automatically append to /etc/hosts
2023-11-17 22:13:51 +00:00
f6160fe138 Adding aliases that automatically gets added 2023-11-17 19:13:20 +00:00
5f176e731f Developed a rest API 2023-11-13 10:44:14 +00:00
acbeb689b5 Prune nodes if they exceed their timeout time 2023-11-06 13:37:28 +00:00
c88012cf71 Added health system to count how many times a node
fails to conenct.
2023-11-06 09:54:06 +00:00
9454d62417 Adding stubs and writing tests 2023-11-05 18:03:58 +00:00
843caddf6b Implemented clustering betweeen nodes 2023-11-03 15:24:18 +00:00
d462d95d6d Ability for each node to set their description describing what
service they provide.
2023-11-01 11:58:10 +00:00
e56780fdd4 Added ability to query the JSON data store 2023-10-30 19:02:28 +00:00
579426e32d Tidied up code, made changes for benchmarking. 2023-10-30 16:49:02 +00:00
472718c9a3 Standardising filenames, interfacing out
for tests and modifying network device
manipulation
2023-10-28 16:38:25 +01:00
5757d81a81 Advertising routes into the mesh 2023-10-27 17:49:18 +01:00
4c6bbcffcd Interfacing out components for unit testing 2023-10-26 16:53:12 +01:00
c205be6748 Implemented the forwarding of packets between meshes 2023-10-25 18:34:38 +01:00
180f5e226c Ability to be in multiple meshes and refactored consensus 2023-10-24 16:00:46 +01:00
8e89281484 Tested with large number of nodes 2023-10-24 00:12:38 +01:00
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
c4dc984fc7 Added ability to detect if a node should be removed from the mesh. 2023-10-21 18:08:45 +01:00
976dbf2613 Automatically remove nodes from the mesh after a
certain threshold.
2023-10-20 17:35:02 +01:00
c200544cee Timer in go that syncs with random nodes in the mesh every
given time interval.
2023-10-20 12:41:06 +01:00
ec87afc235 Added sync 2023-10-10 20:14:40 +01:00
e729c5b181 CRDTs fully incorporated 2023-10-06 18:25:38 +01:00
47e260e310 Incorporated automerge 2023-10-06 11:52:51 +01:00
923ca716ec Automerge changes 2023-10-05 17:48:54 +01:00
a069b89a9a Refactored client and server and interfaced out dependencies 2023-10-02 16:03:41 +01:00
94afd68460 Implemented JWT authentication 2023-10-01 19:01:35 +01:00
c819bec63d Interfaced problem out 2023-09-29 15:00:20 +01:00
a0c20e4d11 IPV6 SLAAC 2023-09-28 16:55:37 +01:00
ea2a073875 Added ability to set interface as up 2023-09-21 18:43:29 +01:00
cfdf377567 Pseudo-random address allocation 2023-09-20 14:34:34 +01:00
dcf851a02e Ability to add peer to config 2023-09-19 23:50:44 +01:00
6e9ca4f31f Migrated to using grpc for handling rpc calls 2023-09-19 18:29:35 +01:00
86756903c7 Created join-mesh, list-meshes command 2023-09-19 13:45:49 +01:00
b679b7fb6e Added IPC handler to wgmesh 2023-09-18 17:00:43 +01:00
01238aca59 Incorporated gin server.
Each node communicates in the mesh
2023-09-18 15:52:28 +01:00
fa16480521 Commit 2023-09-18 12:59:28 +01:00