Commit Graph

47 Commits

Author SHA1 Message Date
Alexis Sellier 15e8a96948
node: Service -> Protocol
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-09-16 20:25:51 +02:00
Alexis Sellier 1017a2bc69
node: Don't simulate transport
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-09-16 20:14:00 +02:00
Alexis Sellier 2b6e20b50c
node: Decode messages in wire layer
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-09-16 20:08:36 +02:00
Alexis Sellier a925fb0e02
node: Create `Transport` layer
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-09-16 20:08:32 +02:00
Alexis Sellier d3dd83447e
node: Rename 'hello' message to 'initialize'
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-09-15 14:05:22 +02:00
Alexis Sellier 79c89a239a
node: Implement subscriptions via bloom filter
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-09-15 13:20:59 +02:00
Alexis Sellier 38dc571f2e
node: Add verification on fetch 2022-09-14 16:01:32 +02:00
Alexis Sellier de8dcc5022
node: Start implementing gossip subscriptions
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
2022-09-13 11:58:02 +02:00
Alexis Sellier 651513c757
node: Re-think gossip messages and signing
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Slack Coder 825bd3f5e1
node: Test push/pull flow
Signed-off-by: Slack Coder <slackcoder@server.ky>
2022-09-13 10:16:05 +02:00
Alexis Sellier a70a6822e0
node: Propagate refs update
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier db6932d58c
node: Propagate ref updates
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier 9d3030a093
node: Move over to binary protocol
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier b3d3077ccc
node: Implement binary encoding for messages
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier 927f062dc9
node: Rename `ProjId` -> `Id`
Remove `UserId` type.

Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier 46ee08aaf3
node: Rename "user"
In some cases to "public key" and in other cases to "remote".

Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier 09265eb3da
node: Rename 'providers' to 'seeds' to match docs
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Slack Coder d273cd0247
node: Add track/untrack support
Signed-off-by: Slack Coder <slackcoder@server.ky>
2022-09-13 10:16:05 +02:00
Alexis Sellier ec865ee9f4
node: Improve fetch command
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier ef2d09114a
node: Implement 'fetch' command properly
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier 7be6fe3414
node: Turn remotes into an iterator
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier c3b7a6fbd7
node: Implement project retrieval
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier cd7421eb86
node: Implement signed refs
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier 14395ad873
node: Handle refs update announcement
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier ff2bd185e7
node: Handle announcement commands
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier fc30dc2668
node: Add client control socket
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier e663e8c516
node: Implement `Client`
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier 1057fb952c
node: Improve crate organization
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier 77ced78b31
node: Start sketching out node announcements
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier ad1f25b3f5
node: Add `NodeId`
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier b78bbc4ecc
node: Add support for multiple address types
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier 92f17d71c3
node: Implement auto-fetching of projects
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier 2c519f5b5f
node: Minimize inventory, fix tests
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier 45d6de80e8
node: Use `Url` type
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier f18afb793c
node: Change storage layout
Projects now have their own repos.

Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier 5e0d4653c7
node: Add timestamp to handshake
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier 90486f3051
node: Move timestamp to peer
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier e040ea5ec7
node: Don't allow timestamps with too much delta
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier 9ca982ee28
node: Use timestamps instead of sequence numbers
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:05 +02:00
Alexis Sellier 1ff8f625ff
node: Send git url during handshake
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:04 +02:00
Alexis Sellier aa28e40f67
node: Get `git::fetch` working
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:04 +02:00
Alexis Sellier 9873a36463
node: Update `Config` `Default` instance
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:04 +02:00
Alexis Sellier 9b3f5b9f3c
node: Inventory relay
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:04 +02:00
Alexis Sellier e078706cd1
node: Disconnect peer for wrong version or magic
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:04 +02:00
Alexis Sellier 38f4bb52d8
node: Start working on git-fetch
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:04 +02:00
Alexis Sellier 15eed71588
node: Send all remotes in inventory
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:04 +02:00
Alexis Sellier 789c50ee35
Minimal radicle node implementation
Signed-off-by: Alexis Sellier <self@cloudhead.io>
2022-09-13 10:16:03 +02:00