fork of radicle with Git LFS support, backed by IPFS
Go to file
Alexis Sellier aacacf872f
cob: Use `EntryId` as the operation identifier
By introducing a small limitation: only allowing entries in the change
graph to be addressable, instead of individual operations; we
drastically simplify the CRDT implementation.

There are four advantages:

1. Op ids are just regular SHA-1s
2. There's no need for relative IDs, ops never refer to other ops within the
   same commit
3. There's no need for a nonce, since commits can't collide, and neither can op IDs
4. `OpId` can just be an alias of `EntryId`

The disadvantage of course, is that we have to be mindful of how we
create op transactions, since each transaction creates an addressable
unit. For example, we must not include multiple patch revisions in the
same transaction.
2023-03-09 17:08:56 +01:00
.github/workflows ci: Deploy built container images 2023-02-14 20:34:55 +01:00
.nix Rust 1.67 2023-02-04 19:30:29 +01:00
radicle cob: Use `EntryId` as the operation identifier 2023-03-09 17:08:56 +01:00
radicle-cli cob: Use `EntryId` as the operation identifier 2023-03-09 17:08:56 +01:00
radicle-cli-test cli: Simplify & improve CLI output 2023-02-27 17:10:52 +01:00
radicle-cob cob: Use `EntryId` as the operation identifier 2023-03-09 17:08:56 +01:00
radicle-crdt crdt: Implement `GSet` type, based on `GMap` 2023-02-27 17:11:48 +01:00
radicle-crypto cob: Use hashes for operation ids 2023-02-27 17:11:48 +01:00
radicle-dag Rust 1.67 2023-02-04 19:30:29 +01:00
radicle-httpd cob: Use `EntryId` as the operation identifier 2023-03-09 17:08:56 +01:00
radicle-node node: Bind control socket immediately 2023-03-09 16:31:49 +01:00
radicle-remote-helper remote-helper: Tell the user we're announcing refs 2023-03-06 15:39:35 +01:00
radicle-ssh Update to Rust 1.65 2022-11-05 12:47:26 +01:00
radicle-term cli: Update `inquire` crate 2023-03-07 10:39:45 +01:00
radicle-tools cli: Improve `patch` command 2023-03-08 20:23:49 +01:00
.dockerignore Dockerize services 2022-12-14 17:15:40 +01:00
.env.seed Track peers by default on the seed server 2023-03-01 13:00:34 +01:00
.gitignore Initial commit 2022-09-13 10:13:13 +02:00
CONTRIBUTING.md Add licenses and contributor information 2022-11-16 12:26:12 +01:00
Cargo.lock cob: Use `EntryId` as the operation identifier 2023-03-09 17:08:56 +01:00
Cargo.toml Initialize `radicle-term` crate 2023-03-06 10:22:50 +01:00
DCO Add licenses and contributor information 2022-11-16 12:26:12 +01:00
LICENSE-APACHE Add licenses and contributor information 2022-11-16 12:26:12 +01:00
LICENSE-MIT Add licenses and contributor information 2022-11-16 12:26:12 +01:00
README.md README: Add install instructions 2023-01-12 13:15:37 +01:00
build.rs Rust 1.67 2023-02-04 19:30:29 +01:00
docker-compose.yml Track peers by default on the seed server 2023-03-01 13:00:34 +01:00
rust-toolchain Rust 1.67 2023-02-04 19:30:29 +01:00

README.md

❤️🪵

Radicle Heartwood Protocol & Stack

Heartwood is in the early development phase and is not yet ready for use.

Installation

# Command line tools
$ cargo install --locked --path ./radicle-cli

# The radicle node
$ cargo install --locked --path ./radicle-node

# Git tool to support the 'rad://' remote scheme
$ cargo install --locked --path ./radicle-remote-helper