Take a snapshot and upload to the next testnet!
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.
Or free with 4 cores and 50gb on Oracle, just give in!
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.
It was a bug we needed to fix in that commit. It will be back
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.
New safe dog
CLI command coming. Let’s you check if replicas of a chunk exist:
I feel a wee test on a baby-fleming coming on
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…
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.
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
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
Can’t wait to hear more about this:
Whooohooo!
Yeeha !!!
now where did I put the agogometer?
More testing to come
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,
That’s your thruming reached the west end now. I can tell by all the car alarms going off down the street.