User Experience for the CLIs

Have you been able to extract all values written to the shared register?

I set up a register nickname WeeklyShopping List and had 4 participants add entries

   Running `target/release/examples/registers --user Mum --reg-nickname WeeklyShoppingList`
Starting SAFE client...
Connected to the Network!
Retrieving Register 'WeeklyShoppingList' from SAFE, as user 'Mum'
Register 'WeeklyShoppingList' not found, creating it at 5672ef.., 5000

Latest value (more than one if concurrent writes were made):
--------------
--------------

Enter new text to write onto the Register:
Milk
Writing msg (offline) to Register: 'Milk'
Syncing with SAFE in 2s...
synced!

Latest value (more than one if concurrent writes were made):
--------------
[Mum]: Milk
--------------

Enter new text to write onto the Register:
Eggs
Writing msg (offline) to Register: 'Eggs'
Syncing with SAFE in 2s...
synced!

Latest value (more than one if concurrent writes were made):
--------------
[Mum]: Eggs
--------------

Enter new text to write onto the Register:
Bread
Writing msg (offline) to Register: 'Bread'
Syncing with SAFE in 2s...
synced!

Latest value (more than one if concurrent writes were made):
--------------
[Mum]: Bread
--------------

Enter new text to write onto the Register:
Salad stuff
Writing msg (offline) to Register: 'Salad stuff'
Syncing with SAFE in 2s...
synced!

Latest value (more than one if concurrent writes were made):
--------------
[Dad]: Olives and anchovies
[Kid#1]: Fish Fingers
[Mum]: Salad stuff
--------------

Enter new text to write onto the Register:
Courgettes
Writing msg (offline) to Register: 'Courgettes'
Branches (3) detected in Register, let's merge them all...
Syncing with SAFE in 2s...
Tootsynced!
h
Latest value (more than one if concurrent writes were made):
--------------
[Mum]: Courgettes
--------------

Enter new text to write onto the Register:
Toothpaste                       
Writing msg (offline) to Register: 'Toothpaste'
Syncing with SAFE in 2s...
synced!

Latest value (more than one if concurrent writes were made):
--------------
[Mum]: Toothpaste
--------------

Enter new text to write onto the Register:
Kitchen rolls
Writing msg (offline) to Register: 'Kitchen rolls'
Syncing with SAFE in 2s...
Washsynced!

Latest value (more than one if concurrent writes were made):
--------------
[Kid#2]: Irn Bru
[Mum]: Kitchen rolls
[Kid#1]: Pink and white marshmallows
--------------

But when I try to extract the whole register I only get a ref to an address

willie@gagarin:~/projects/maidsafe/stableset_net$ cargo run --release --bin safe -- --query-register WeeklyShoppingList
    Finished release [optimized] target(s) in 0.20s
     Running `target/release/safe --query-register WeeklyShoppingList`

snip

[2023-04-15T16:59:41.870088Z INFO safenode::client::api] Got response for the req: Query(Register(Get(RegisterAddress { name: 5672ef(01010110).., tag: 3006 }))), res: Ok(Query(GetRegister(Ok(Register { authority: Key(PublicKey(0036..3192)), crdt: RegisterCrdt { address: RegisterAddress { name: 5672ef(01010110).., tag: 3006 }, data: MerkleReg { roots: {}, dag: {}, orphans: {} } }, policy: Policy { owner: Key(PublicKey(0036..3192)), permissions: {Anyone: Permissions { write: Some(true) }} } }))))
[2023-04-15T16:59:41.882452Z INFO safenode::network::event] Node discovered: "/ip4/172.18.0.1/udp/53951/quic-v1"
[2023-04-15T16:59:41.886564Z TRACE safenode::network::msg] Got response for id: RequestId(7), res: Query(GetRegister(Ok(Register { authority: Key(PublicKey(0036..3192)), crdt: RegisterCrdt { address: RegisterAddress { name: 5672ef(01010110).., tag: 3006 }, data: MerkleReg { roots: {}, dag: {}, orphans: {} } }, policy: Policy { owner: Key(PublicKey(0036..3192)), permissions: {Anyone: Permissions { write: Some(true) }} } }))) 
[2023-04-15T16:59:41.886631Z INFO safenode::client::api] Got response for the req: Query(Register(Get(RegisterAddress { name: 5672ef(01010110).., tag: 3006 }))), res: Ok(Query(GetRegister(Ok(Register { authority: Key(PublicKey(0036..3192)), crdt: RegisterCrdt { address: RegisterAddress { name: 5672ef(01010110).., tag: 3006 }, data: MerkleReg { roots: {}, dag: {}, orphans: {} } }, policy: Policy { owner: Key(PublicKey(0036..3192)), permissions: {Anyone: Permissions { write: Some(true) }} } }))))
[2023-04-15T16:59:41.886649Z TRACE safenode::client::api] Client recevied a network event PeerAdded
[2023-04-15T16:59:41.886733Z INFO safenode::client::api] Client waiting for a network event
[2023-04-15T16:59:41.892151Z TRACE safenode::network::msg] Got response for id: RequestId(5), res: Query(GetRegister(Ok(Register { authority: Key(PublicKey(0036..3192)), crdt: RegisterCrdt { address: RegisterAddress { name: 5672ef(01010110).., tag: 3006 }, data: MerkleReg { roots: {}, dag: {}, orphans: {} } }, policy: Policy { owner: Key(PublicKey(0036..3192)), permissions: {Anyone: Permissions { write: Some(true) }} } }))) 
[2023-04-15T16:59:41.892587Z INFO safenode::client::api] Got response for the req: Query(Register(Get(RegisterAddress { name: 5672ef(01010110).., tag: 3006 }))), res: Ok(Query(GetRegister(Ok(Register { authority: Key(PublicKey(0036..3192)), crdt: RegisterCrdt { address: RegisterAddress { name: 5672ef(01010110).., tag: 3006 }, data: MerkleReg { roots: {}, dag: {}, orphans: {} } }, policy: Policy { owner: Key(PublicKey(0036..3192)), permissions: {Anyone: Permissions { write: Some(true) }} } }))))
[2023-04-15T16:59:41.988736Z TRACE safenode::network::msg] Got response for id: RequestId(2), res: Query(GetRegister(Ok(Register { authority: Key(PublicKey(0036..3192)), crdt: RegisterCrdt { address: RegisterAddress { name: 5672ef(01010110).., tag: 3006 }, data: MerkleReg { roots: {}, dag: {}, orphans: {} } }, policy: Policy { owner: Key(PublicKey(0036..3192)), permissions: {Anyone: Permissions { write: Some(true) }} } }))) 
[2023-04-15T16:59:41.988796Z TRACE safenode::network::msg] Got response for id: RequestId(3), res: Query(GetRegister(Ok(Register { authority: Key(PublicKey(0036..3192)), crdt: RegisterCrdt { address: RegisterAddress { name: 5672ef(01010110).., tag: 3006 }, data: MerkleReg { roots: {}, dag: {}, orphans: {} } }, policy: Policy { owner: Key(PublicKey(0036..3192)), permissions: {Anyone: Permissions { write: Some(true) }} } }))) 
[2023-04-15T16:59:41.994975Z INFO safenode::client::api] Got response for the req: Query(Register(Get(RegisterAddress { name: 5672ef(01010110).., tag: 3006 }))), res: Ok(Query(GetRegister(Ok(Register { authority: Key(PublicKey(0036..3192)), crdt: RegisterCrdt { address: RegisterAddress { name: 5672ef(01010110).., tag: 3006 }, data: MerkleReg { roots: {}, dag: {}, orphans: {} } }, policy: Policy { owner: Key(PublicKey(0036..3192)), permissions: {Anyone: Permissions { write: Some(true) }} } }))))
[2023-04-15T16:59:41.995022Z INFO safenode::client::api] Got response for the req: Query(Register(Get(RegisterAddress { name: 5672ef(01010110).., tag: 3006 }))), res: Ok(Query(GetRegister(Ok(Register { authority: Key(PublicKey(0036..3192)), crdt: RegisterCrdt { address: RegisterAddress { name: 5672ef(01010110).., tag: 3006 }, data: MerkleReg { roots: {}, dag: {}, orphans: {} } }, policy: Policy { owner: Key(PublicKey(0036..3192)), permissions: {Anyone: Permissions { write: Some(true) }} } }))))
[2023-04-15T16:59:41.997266Z TRACE safenode::network::msg] Got response for id: RequestId(1), res: Query(GetRegister(Ok(Register { authority: Key(PublicKey(0036..3192)), crdt: RegisterCrdt { address: RegisterAddress { name: 5672ef(01010110).., tag: 3006 }, data: MerkleReg { roots: {}, dag: {}, orphans: {} } }, policy: Policy { owner: Key(PublicKey(0036..3192)), permissions: {Anyone: Permissions { write: Some(true) }} } }))) 
[2023-04-15T16:59:41.999338Z INFO safenode::client::api] Got response for the req: Query(Register(Get(RegisterAddress { name: 5672ef(01010110).., tag: 3006 }))), res: Ok(Query(GetRegister(Ok(Register { authority: Key(PublicKey(0036..3192)), crdt: RegisterCrdt { address: RegisterAddress { name: 5672ef(01010110).., tag: 3006 }, data: MerkleReg { roots: {}, dag: {}, orphans: {} } }, policy: Policy { owner: Key(PublicKey(0036..3192)), permissions: {Anyone: Permissions { write: Some(true) }} } }))))
[2023-04-15T16:59:42.002720Z TRACE safenode::network::msg] Got response for id: RequestId(6), res: Query(GetRegister(Ok(Register { authority: Key(PublicKey(0036..3192)), crdt: RegisterCrdt { address: RegisterAddress { name: 5672ef(01010110).., tag: 3006 }, data: MerkleReg { roots: {}, dag: {}, orphans: {} } }, policy: Policy { owner: Key(PublicKey(0036..3192)), permissions: {Anyone: Permissions { write: Some(true) }} } }))) 
[2023-04-15T16:59:42.002848Z INFO safenode::client::api] Got response for the req: Query(Register(Get(RegisterAddress { name: 5672ef(01010110).., tag: 3006 }))), res: Ok(Query(GetRegister(Ok(Register { authority: Key(PublicKey(0036..3192)), crdt: RegisterCrdt { address: RegisterAddress { name: 5672ef(01010110).., tag: 3006 }, data: MerkleReg { roots: {}, dag: {}, orphans: {} } }, policy: Policy { owner: Key(PublicKey(0036..3192)), permissions: {Anyone: Permissions { write: Some(true) }} } }))))
Successfully retrieved Register 'WeeklyShoppingList' from 5672ef.., 3006!

I cant see where it β€œSuccessfully retrieved Register β€˜WeeklyShoppingList’ from 5672ef…, 3006!” to, though.

Maybe thats in next weeks episode :slight_smile:

2 Likes

I have not really dug in yet. trying to get there :slight_smile:

2 Likes

Let me know - I am off to the pub :beer:

2 Likes

Its still obviously very incomplete code for now but the memory usage of the latest from GH is much improved - I can run 25 nodes and store 4Gb on a 32Gb box with no problems today. My swap is not touched at all.
Couldnt say that yesterday, nearly locked up the machine cos of memoory use if I tried to store anything of significant size. Its still all in memory for now, once that is sorted. it will be worth building for the smaller devices.
Cant find the xornames of the chunks to retreive them now though but Im sure they will reappear soon.

We have bounced back and forth with tcp/quic Libp2p has not got hole punch complete for quic, but some smaller issues with TCP. However tcp is more resource hungry and slow.

Upcoming testnet is likely quic but with no hole punch just yet as the libp2p work on that. They seem focussed so that is good.

With quic transports I expect you will run a lot more nodes. There’s a PR later today to switch back to quic

9 Likes

Just to be 100% clear ----

should those footering at home use GitHub - maidsafe/safe_network for the latest and greatest?

and GitHub - maidsafe/temp_safe_network: The Safe Network. A libp2p backed data and transfer network was just a temp placeholder to ease transition back to the safe_network label?

or do I have this completely arse for elbow?

6 Likes

Yes, this is right. We bounced around a weee bot today to get back to that name. We tried to keep the old repo to give us openai PR reviews but alas we never managed, however we are on the waitlist. That allows us to have copilot walkthrough and it walks readers line by line through any changes. Pretty cool

Anyway safe_network it is

6 Likes

Thanks David :slight_smile:

Now that does sound pretty cool. Agog.

3 Likes

I was wondering why the repo renaming, and why you weren’t just using a branch in the first place.

Nice to see the PRs still merging at such a high rate.

8 Likes

You should see the high speed conversation in slack too :smiley: :smiley: Very nice to see

10 Likes

screenshots or its a lie!!! :slight_smile:

2 Likes

Can we expect to see genesis.dbc in ~/.safe/node/local-test-network/safenode-1 soon?

2 Likes

Looks like we are transitioning to disk storage.

6 Likes

I’ve just pulled – oooerr missus

1 Like

No yet merged. Soon it seems.

2 Likes

Just wait for joshnet you two :joy:

Impatience is a virtue. :laughing: kid in a candy store here.

3 Likes

Yep - still storing in memory

No chunks to be seen yet

illie@gagarin:~/.safe/node/local-test-network$ tree
.
β”œβ”€β”€ safenode-1
β”‚   β”œβ”€β”€ safenode.log
β”‚   β”œβ”€β”€ safenode.log.20230421T131222
β”‚   β”œβ”€β”€ safenode.log.20230421T131310
β”‚   β”œβ”€β”€ safenode.log.20230421T131357
β”‚   β”œβ”€β”€ safenode.log.20230421T131454
β”‚   └── safenode.log.20230421T131552
β”œβ”€β”€ safenode-10
β”‚   β”œβ”€β”€ safenode.log
β”‚   β”œβ”€β”€ safenode.log.20230421T131219
β”‚   β”œβ”€β”€ safenode.log.20230421T131301
β”‚   β”œβ”€β”€ safenode.log.20230421T131338
β”‚   β”œβ”€β”€ safenode.log.20230421T131423
β”‚   └── safenode.log.20230421T131515
β”œβ”€β”€ safenode-11
β”‚   β”œβ”€β”€ safenode.log
β”‚   β”œβ”€β”€ safenode.log.20230421T131221
β”‚   β”œβ”€β”€ safenode.log.20230421T131302
β”‚   β”œβ”€β”€ safenode.log.20230421T131338
β”‚   β”œβ”€β”€ safenode.log.20230421T131425
β”‚   └── safenode.log.20230421T131516
β”œβ”€β”€ safenode-12
β”‚   β”œβ”€β”€ safenode.log
β”‚   β”œβ”€β”€ safenode.log.20230421T131228
β”‚   β”œβ”€β”€ safenode.log.20230421T131313
β”‚   β”œβ”€β”€ safenode.log.20230421T131400
β”‚   β”œβ”€β”€ safenode.log.20230421T131457
β”‚   └── safenode.log.20230421T131550
β”œβ”€β”€ safenode-13
β”‚   β”œβ”€β”€ safenode.log
β”‚   β”œβ”€β”€ safenode.log.20230421T131219
β”‚   β”œβ”€β”€ safenode.log.20230421T131259
β”‚   β”œβ”€β”€ safenode.log.20230421T131336
β”‚   β”œβ”€β”€ safenode.log.20230421T131419
β”‚   β”œβ”€β”€ safenode.log.20230421T131505
β”‚   └── safenode.log.20230421T131549
β”œβ”€β”€ safenode-14
β”‚   β”œβ”€β”€ safenode.log
β”‚   β”œβ”€β”€ safenode.log.20230421T131228
β”‚   β”œβ”€β”€ safenode.log.20230421T131317
β”‚   β”œβ”€β”€ safenode.log.20230421T131413
β”‚   └── safenode.log.20230421T131515
β”œβ”€β”€ safenode-15
β”‚   β”œβ”€β”€ safenode.log
β”‚   β”œβ”€β”€ safenode.log.20230421T131223
β”‚   β”œβ”€β”€ safenode.log.20230421T131305
β”‚   β”œβ”€β”€ safenode.log.20230421T131342
β”‚   β”œβ”€β”€ safenode.log.20230421T131429
β”‚   └── safenode.log.20230421T131520
β”œβ”€β”€ safenode-16
β”‚   β”œβ”€β”€ safenode.log
β”‚   β”œβ”€β”€ safenode.log.20230421T131225
β”‚   β”œβ”€β”€ safenode.log.20230421T131305
β”‚   β”œβ”€β”€ safenode.log.20230421T131343
β”‚   β”œβ”€β”€ safenode.log.20230421T131428
β”‚   └── safenode.log.20230421T131520
β”œβ”€β”€ safenode-17
β”‚   β”œβ”€β”€ safenode.log
β”‚   β”œβ”€β”€ safenode.log.20230421T131222
β”‚   β”œβ”€β”€ safenode.log.20230421T131302
β”‚   β”œβ”€β”€ safenode.log.20230421T131340
β”‚   β”œβ”€β”€ safenode.log.20230421T131421
β”‚   β”œβ”€β”€ safenode.log.20230421T131508
β”‚   └── safenode.log.20230421T131551
β”œβ”€β”€ safenode-18
β”‚   β”œβ”€β”€ safenode.log
β”‚   β”œβ”€β”€ safenode.log.20230421T131228
β”‚   β”œβ”€β”€ safenode.log.20230421T131313
β”‚   β”œβ”€β”€ safenode.log.20230421T131402
β”‚   └── safenode.log.20230421T131501
β”œβ”€β”€ safenode-19
β”‚   β”œβ”€β”€ safenode.log
β”‚   β”œβ”€β”€ safenode.log.20230421T131224
β”‚   β”œβ”€β”€ safenode.log.20230421T131305
β”‚   β”œβ”€β”€ safenode.log.20230421T131343
β”‚   β”œβ”€β”€ safenode.log.20230421T131426
β”‚   └── safenode.log.20230421T131515
β”œβ”€β”€ safenode-2
β”‚   β”œβ”€β”€ safenode.log
β”‚   β”œβ”€β”€ safenode.log.20230421T131223
β”‚   β”œβ”€β”€ safenode.log.20230421T131316
β”‚   β”œβ”€β”€ safenode.log.20230421T131409
β”‚   └── safenode.log.20230421T131511
β”œβ”€β”€ safenode-20
β”‚   β”œβ”€β”€ safenode.log
β”‚   β”œβ”€β”€ safenode.log.20230421T131226
β”‚   β”œβ”€β”€ safenode.log.20230421T131318
β”‚   β”œβ”€β”€ safenode.log.20230421T131412
β”‚   └── safenode.log.20230421T131514
β”œβ”€β”€ safenode-21
β”‚   β”œβ”€β”€ safenode.log
β”‚   β”œβ”€β”€ safenode.log.20230421T131220
β”‚   β”œβ”€β”€ safenode.log.20230421T131303
β”‚   β”œβ”€β”€ safenode.log.20230421T131342
β”‚   β”œβ”€β”€ safenode.log.20230421T131430
β”‚   └── safenode.log.20230421T131523
β”œβ”€β”€ safenode-22
β”‚   β”œβ”€β”€ safenode.log
β”‚   β”œβ”€β”€ safenode.log.20230421T131221
β”‚   β”œβ”€β”€ safenode.log.20230421T131304
β”‚   β”œβ”€β”€ safenode.log.20230421T131340
β”‚   β”œβ”€β”€ safenode.log.20230421T131427
β”‚   └── safenode.log.20230421T131518
β”œβ”€β”€ safenode-23
β”‚   β”œβ”€β”€ safenode.log
β”‚   β”œβ”€β”€ safenode.log.20230421T131221
β”‚   β”œβ”€β”€ safenode.log.20230421T131302
β”‚   β”œβ”€β”€ safenode.log.20230421T131340
β”‚   β”œβ”€β”€ safenode.log.20230421T131421
β”‚   β”œβ”€β”€ safenode.log.20230421T131509
β”‚   └── safenode.log.20230421T131552
β”œβ”€β”€ safenode-24
β”‚   β”œβ”€β”€ safenode.log
β”‚   β”œβ”€β”€ safenode.log.20230421T131216
β”‚   β”œβ”€β”€ safenode.log.20230421T131255
β”‚   β”œβ”€β”€ safenode.log.20230421T131332
β”‚   β”œβ”€β”€ safenode.log.20230421T131416
β”‚   β”œβ”€β”€ safenode.log.20230421T131501
β”‚   └── safenode.log.20230421T131547
β”œβ”€β”€ safenode-25
β”‚   β”œβ”€β”€ safenode.log
β”‚   β”œβ”€β”€ safenode.log.20230421T131229
β”‚   β”œβ”€β”€ safenode.log.20230421T131317
β”‚   β”œβ”€β”€ safenode.log.20230421T131414
β”‚   └── safenode.log.20230421T131516
β”œβ”€β”€ safenode-3
β”‚   β”œβ”€β”€ safenode.log
β”‚   β”œβ”€β”€ safenode.log.20230421T131221
β”‚   β”œβ”€β”€ safenode.log.20230421T131305
β”‚   β”œβ”€β”€ safenode.log.20230421T131345
β”‚   β”œβ”€β”€ safenode.log.20230421T131437
β”‚   └── safenode.log.20230421T131533
β”œβ”€β”€ safenode-4
β”‚   β”œβ”€β”€ safenode.log
β”‚   β”œβ”€β”€ safenode.log.20230421T131217
β”‚   β”œβ”€β”€ safenode.log.20230421T131256
β”‚   β”œβ”€β”€ safenode.log.20230421T131333
β”‚   β”œβ”€β”€ safenode.log.20230421T131418
β”‚   β”œβ”€β”€ safenode.log.20230421T131504
β”‚   └── safenode.log.20230421T131549
β”œβ”€β”€ safenode-5
β”‚   β”œβ”€β”€ safenode.log
β”‚   β”œβ”€β”€ safenode.log.20230421T131224
β”‚   β”œβ”€β”€ safenode.log.20230421T131317
β”‚   β”œβ”€β”€ safenode.log.20230421T131409
β”‚   └── safenode.log.20230421T131512
β”œβ”€β”€ safenode-6
β”‚   β”œβ”€β”€ safenode.log
β”‚   β”œβ”€β”€ safenode.log.20230421T131224
β”‚   β”œβ”€β”€ safenode.log.20230421T131317
β”‚   β”œβ”€β”€ safenode.log.20230421T131410
β”‚   └── safenode.log.20230421T131512
β”œβ”€β”€ safenode-7
β”‚   β”œβ”€β”€ safenode.log
β”‚   β”œβ”€β”€ safenode.log.20230421T131218
β”‚   β”œβ”€β”€ safenode.log.20230421T131301
β”‚   β”œβ”€β”€ safenode.log.20230421T131337
β”‚   β”œβ”€β”€ safenode.log.20230421T131423
β”‚   └── safenode.log.20230421T131515
β”œβ”€β”€ safenode-8
β”‚   β”œβ”€β”€ safenode.log
β”‚   β”œβ”€β”€ safenode.log.20230421T131218
β”‚   β”œβ”€β”€ safenode.log.20230421T131258
β”‚   β”œβ”€β”€ safenode.log.20230421T131335
β”‚   β”œβ”€β”€ safenode.log.20230421T131419
β”‚   β”œβ”€β”€ safenode.log.20230421T131505
β”‚   └── safenode.log.20230421T131549
└── safenode-9
    β”œβ”€β”€ safenode.log
    β”œβ”€β”€ safenode.log.20230421T131217
    β”œβ”€β”€ safenode.log.20230421T131255
    β”œβ”€β”€ safenode.log.20230421T131332
    β”œβ”€β”€ safenode.log.20230421T131416
    β”œβ”€β”€ safenode.log.20230421T131501
    └── safenode.log.20230421T131546

25 directories, 150 files

Premature…

2 Likes

This has the large and waiting-for-review tags so the review may take a while.

Dont wear out your F5 keys.

I was needing a new keyboard anyway…

1 Like

4 Likes