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. |
||
|---|---|---|
| .github/workflows | ||
| .nix | ||
| radicle | ||
| radicle-cli | ||
| radicle-cli-test | ||
| radicle-cob | ||
| radicle-crdt | ||
| radicle-crypto | ||
| radicle-dag | ||
| radicle-httpd | ||
| radicle-node | ||
| radicle-remote-helper | ||
| radicle-ssh | ||
| radicle-term | ||
| radicle-tools | ||
| .dockerignore | ||
| .env.seed | ||
| .gitignore | ||
| CONTRIBUTING.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| DCO | ||
| LICENSE-APACHE | ||
| LICENSE-MIT | ||
| README.md | ||
| build.rs | ||
| docker-compose.yml | ||
| rust-toolchain | ||
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