cli: rad node example
Tests the rad node CLI subcommand. Signed-off-by: Fintan Halpenny <fintan.halpenny@gmail.com> X-Clacks-Overhead: GNU Terry Pratchett
This commit is contained in:
parent
ed985f6fe0
commit
ad63583bee
|
|
@ -0,0 +1,88 @@
|
||||||
|
The radicle node is our daemon friend that is running as a background
|
||||||
|
process. It allows us to interact with the network as well as storing
|
||||||
|
some key data that we may be interested in.
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>🚧 `rad node start` is under construction 🚧</summary>
|
||||||
|
If the node is not running we can start it by using the `rad node
|
||||||
|
start` command:
|
||||||
|
|
||||||
|
<!-- ``` -->
|
||||||
|
<!-- $ rad node start -->
|
||||||
|
<!-- ``` -->
|
||||||
|
</details>
|
||||||
|
|
||||||
|
We can confirm the status of the node at any time by using the `rad
|
||||||
|
node status` command (or just `rad node` for short):
|
||||||
|
|
||||||
|
```
|
||||||
|
$ rad node status
|
||||||
|
✓ The node is running
|
||||||
|
```
|
||||||
|
|
||||||
|
The node also allows us to connect with other nodes in the
|
||||||
|
network. For example, let's connect to a known peer using their Node
|
||||||
|
ID and their network address:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ rad node connect z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk 0.0.0.0:3679
|
||||||
|
✓ Connecting to z6Mkt67…v4N1tRk@0.0.0.0:3679...
|
||||||
|
```
|
||||||
|
|
||||||
|
The node also allows us to query data that it has access too such as
|
||||||
|
the tracking relationships and the routing table. Before we explore
|
||||||
|
those commands we'll first track a peer so that we have something to
|
||||||
|
see.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ rad track z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk --alias Bob
|
||||||
|
Establishing 🌱 tracking relationship for heartwood
|
||||||
|
|
||||||
|
✓ Tracking relationship with Bob (z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk) established
|
||||||
|
! Warning: fetch after track is not yet supported
|
||||||
|
```
|
||||||
|
|
||||||
|
Now, when we use the `rad node tracking` command we will see
|
||||||
|
information for repositories that we track -- in this case a
|
||||||
|
repository that was already created:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ rad node tracking
|
||||||
|
RID Scope Policy
|
||||||
|
--- ----- ------
|
||||||
|
rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji all track
|
||||||
|
```
|
||||||
|
|
||||||
|
This is the same as using the `--repos` flag, but if we wish to see
|
||||||
|
which nodes we are specifically tracking, then we use the `--nodes`
|
||||||
|
flag:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ rad node tracking --nodes
|
||||||
|
DID Alias Policy
|
||||||
|
--- ----- ------
|
||||||
|
did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk Bob track
|
||||||
|
```
|
||||||
|
|
||||||
|
To see the routing table we can use the `rad node routing` command and
|
||||||
|
see what Repository IDs match up with the interests of which Node
|
||||||
|
IDs. In this case, it is just our own Node ID for the project we
|
||||||
|
created.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ rad node routing
|
||||||
|
RID NID
|
||||||
|
--- ---
|
||||||
|
rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji z6MknSL…StBU8Vi
|
||||||
|
```
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>🚧 `rad node stop` is under construction 🚧</summary>
|
||||||
|
Finally, if we want to stop the daemon process from running we can
|
||||||
|
issue the `rad node stop` command:
|
||||||
|
|
||||||
|
<!-- ``` -->
|
||||||
|
<!-- $ rad node stop -->
|
||||||
|
<!-- Stopping the node... -->
|
||||||
|
<!-- ``` -->
|
||||||
|
</details>
|
||||||
|
|
@ -211,6 +211,37 @@ fn rad_id_rebase() {
|
||||||
test("examples/rad-id-rebase.md", working.path(), Some(home), []).unwrap();
|
test("examples/rad-id-rebase.md", working.path(), Some(home), []).unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn rad_node() {
|
||||||
|
logger::init(log::Level::Debug);
|
||||||
|
|
||||||
|
let mut environment = Environment::new();
|
||||||
|
let alice = environment.node("alice");
|
||||||
|
let bob = environment.node("bob");
|
||||||
|
let working = tempfile::tempdir().unwrap();
|
||||||
|
|
||||||
|
let alice = alice.spawn(Config::default());
|
||||||
|
let _bob = bob.spawn(Config::default());
|
||||||
|
|
||||||
|
fixtures::repository(working.path().join("alice"));
|
||||||
|
|
||||||
|
test(
|
||||||
|
"examples/rad-init-sync.md",
|
||||||
|
&working.path().join("alice"),
|
||||||
|
Some(&alice.home),
|
||||||
|
[],
|
||||||
|
)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
test(
|
||||||
|
"examples/rad-node.md",
|
||||||
|
working.path().join("alice"),
|
||||||
|
Some(&alice.home),
|
||||||
|
[],
|
||||||
|
)
|
||||||
|
.unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
#[ignore]
|
||||||
fn rad_patch() {
|
fn rad_patch() {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue