Pre-Dev-Update Thread! Yay! :D

Take a snapshot and upload to the next testnet!

1 Like

It may be that most of us will need to use cloud servers for the next wee while. The Hetzner CX11 is 4 euro/month and is adequate for put/get as it is. Add a 50Gb volume for when it is in use as a node. Delete the server(s) as soon as the testnet is done and restore as required from a snapshot and you can make 20 euro credit with Hetzer last a long time.

3 Likes

Or free with 4 cores and 50gb on Oracle, just give in! :wink:

6 Likes

understood I correctly that problem is in public ip adress/routers? It can be solved without buy new router or public ip…?

… turn around in events.

7 Likes

It was a bug we needed to fix in that commit. It will be back :smiley: :smiley:

9 Likes

Aye, was sadly blocking a testnet. But since this testnet you cannot join with nodes anyway, we’ve reverted for now until we can get it stable.

8 Likes

New safe dog CLI command coming. Let’s you check if replicas of a chunk exist:

12 Likes

I feel a wee test on a baby-fleming coming on :slight_smile:

from safe dog --help

-r, --replicas <REPLICAS>
        Query all the data replicas matching the given indexes to check they hold a copy of the
        content. E.g. -r0 -r2 will query replicas at index 0 and 2. The network sorts nodes
        (data replicas) in a section by comparing the data's name with nodes' names, it's a
        measure of "closeness to the data" in XOR-namespace. The index of a node in such list is
        what it's referred as a data replica index. At least the first 'data_copy_count' nodes
        should hold this data, more may well hold it too

I may need to read this several times…

10 Likes

So got the following when playing with this new -r flag. Shows replicas 0, 1, 2 and 3 exist OK and that testing for replica 4 gives the expected error.

willie@gagarin:~$ safe files put ~/yarn.lock 
FilesContainer created at: "safe://hyryyryib1cioghtwgcpafsrrgjo9azx4cncp47jp5e38jmcpt81ipyo5tynra?v=h4y7fnmix3sdpg1jppydd9pxjam59sritadnwrbd3rp3baw6fwejo"
+---+------------------------+--------------------------------------------------------------------+
| + | /home/willie/yarn.lock | safe://hyryyyyj1t6qk37fqc4ki5tw8g5p1oup3p4ezceoa888cdb43wwh75enp7w |
+---+------------------------+--------------------------------------------------------------------+
willie@gagarin:~$ safe dog safe://hyryyyyj1t6qk37fqc4ki5tw8g5p1oup3p4ezceoa888cdb43wwh75enp7w

== URL resolution step 1 ==
Resolved from: safe://hyryyyyj1t6qk37fqc4ki5tw8g5p1oup3p4ezceoa888cdb43wwh75enp7w
= File =
XOR-URL: safe://hyryyyyj1t6qk37fqc4ki5tw8g5p1oup3p4ezceoa888cdb43wwh75enp7w
XOR name: 0x328f9cacf4ae66955dc68736db284db96e9176221839cec18759a539dda04ded
Native data type: PublicFile
Media type: Unknown

willie@gagarin:~$ safe dog -r 0 safe://hyryyyyj1t6qk37fqc4ki5tw8g5p1oup3p4ezceoa888cdb43wwh75enp7w

== URL resolution step 1 ==
Resolved from: safe://hyryyyyj1t6qk37fqc4ki5tw8g5p1oup3p4ezceoa888cdb43wwh75enp7w
= File =
XOR-URL: safe://hyryyyyj1t6qk37fqc4ki5tw8g5p1oup3p4ezceoa888cdb43wwh75enp7w
XOR name: 0x328f9cacf4ae66955dc68736db284db96e9176221839cec18759a539dda04ded
Native data type: PublicFile
Media type: Unknown

== Checking data replicas of resolved content ==
XOR-URL: safe://hyryyyyj1t6qk37fqc4ki5tw8g5p1oup3p4ezceoa888cdb43wwh75enp7w
Replicas indexes queried: [0]
Content composed of 1 chunk/s:
= Chunk at XOR name 0x328f9cacf4ae66955dc68736db284db96e9176221839cec18759a539dda04ded =
Replica #0: Ok!


willie@gagarin:~$ safe dog -r 1 safe://hyryyyyj1t6qk37fqc4ki5tw8g5p1oup3p4ezceoa888cdb43wwh75enp7w

== URL resolution step 1 ==
Resolved from: safe://hyryyyyj1t6qk37fqc4ki5tw8g5p1oup3p4ezceoa888cdb43wwh75enp7w
= File =
XOR-URL: safe://hyryyyyj1t6qk37fqc4ki5tw8g5p1oup3p4ezceoa888cdb43wwh75enp7w
XOR name: 0x328f9cacf4ae66955dc68736db284db96e9176221839cec18759a539dda04ded
Native data type: PublicFile
Media type: Unknown

== Checking data replicas of resolved content ==
XOR-URL: safe://hyryyyyj1t6qk37fqc4ki5tw8g5p1oup3p4ezceoa888cdb43wwh75enp7w
Replicas indexes queried: [1]
Content composed of 1 chunk/s:
= Chunk at XOR name 0x328f9cacf4ae66955dc68736db284db96e9176221839cec18759a539dda04ded =
Replica #1: Ok!


willie@gagarin:~$ safe dog -r 2 safe://hyryyyyj1t6qk37fqc4ki5tw8g5p1oup3p4ezceoa888cdb43wwh75enp7w

== URL resolution step 1 ==
Resolved from: safe://hyryyyyj1t6qk37fqc4ki5tw8g5p1oup3p4ezceoa888cdb43wwh75enp7w
= File =
XOR-URL: safe://hyryyyyj1t6qk37fqc4ki5tw8g5p1oup3p4ezceoa888cdb43wwh75enp7w
XOR name: 0x328f9cacf4ae66955dc68736db284db96e9176221839cec18759a539dda04ded
Native data type: PublicFile
Media type: Unknown

== Checking data replicas of resolved content ==
XOR-URL: safe://hyryyyyj1t6qk37fqc4ki5tw8g5p1oup3p4ezceoa888cdb43wwh75enp7w
Replicas indexes queried: [2]
Content composed of 1 chunk/s:
= Chunk at XOR name 0x328f9cacf4ae66955dc68736db284db96e9176221839cec18759a539dda04ded =
Replica #2: Ok!


willie@gagarin:~$ safe dog -r 3 safe://hyryyyyj1t6qk37fqc4ki5tw8g5p1oup3p4ezceoa888cdb43wwh75enp7w

== URL resolution step 1 ==
Resolved from: safe://hyryyyyj1t6qk37fqc4ki5tw8g5p1oup3p4ezceoa888cdb43wwh75enp7w
= File =
XOR-URL: safe://hyryyyyj1t6qk37fqc4ki5tw8g5p1oup3p4ezceoa888cdb43wwh75enp7w
XOR name: 0x328f9cacf4ae66955dc68736db284db96e9176221839cec18759a539dda04ded
Native data type: PublicFile
Media type: Unknown

== Checking data replicas of resolved content ==
XOR-URL: safe://hyryyyyj1t6qk37fqc4ki5tw8g5p1oup3p4ezceoa888cdb43wwh75enp7w
Replicas indexes queried: [3]
Content composed of 1 chunk/s:
= Chunk at XOR name 0x328f9cacf4ae66955dc68736db284db96e9176221839cec18759a539dda04ded =
Replica #3: Ok!


willie@gagarin:~$ safe dog -r 4 safe://hyryyyyj1t6qk37fqc4ki5tw8g5p1oup3p4ezceoa888cdb43wwh75enp7w

== URL resolution step 1 ==
Resolved from: safe://hyryyyyj1t6qk37fqc4ki5tw8g5p1oup3p4ezceoa888cdb43wwh75enp7w
= File =
XOR-URL: safe://hyryyyyj1t6qk37fqc4ki5tw8g5p1oup3p4ezceoa888cdb43wwh75enp7w
XOR name: 0x328f9cacf4ae66955dc68736db284db96e9176221839cec18759a539dda04ded
Native data type: PublicFile
Media type: Unknown

== Checking data replicas of resolved content ==
XOR-URL: safe://hyryyyyj1t6qk37fqc4ki5tw8g5p1oup3p4ezceoa888cdb43wwh75enp7w
Replicas indexes queried: [4]
Content composed of 1 chunk/s:
= Chunk at XOR name 0x328f9cacf4ae66955dc68736db284db96e9176221839cec18759a539dda04ded =
Replica #4: Error received from the network: InsufficientNodeCount { prefix: Prefix(), expected: 5, found: 4 }

Is InsufficientNodeCount really the correct phrase to use in this error message?

EDIT: yes it is - silly me.

8 Likes

It might not be. That’s more about there not being enough nodes to store data. I would have thought youd get a 'DataNotFound` error here. cc @bochaco can you cast an :eyes: :bowing_man:

1 Like

Technically its correct - there was an InsufficientNodeCount to provide the replica (#4) that I requested safe dog -r 4 but Im sure we could come up with a more helpful error msg.

I had to read the --help a few times to convince myself it was factually correct

1 Like

Can’t wait to hear more about this:

9 Likes

That’s this one: Update 24 November, 2022

8 Likes

Also, congratulations to @Anselme for the “PR number matches the current year” event :tada:

10 Likes

Whooohooo! :raised_hands::joy:

9 Likes

Yeeha !!!

now where did I put the agogometer?

15 Likes

More testing to come :100:

13 Likes

Dragged the agogometer round to my mates garage and hooked it to the 3-phase for his hoists cos 240V is just not going to be enough.

A dull thrum is heard from here all the way to the city centre,

5 Likes

That’s your thruming reached the west end now. I can tell by all the car alarms going off down the street.

1 Like