[Status: offline] SAFE Network Testnet - Vaults from home with IGD - Iteration 2

Thanks to the great effort and participation in the recent Vaults from home testnet iteration 1, we were able to identify some issues and areas for improvement in terms of network performance and memory usage of the Vault binary. Today we are happy to announce iteration 2 of the new and improved Vaults from home testnet.

As with the previous iteration, today’s release includes a single section network of ten nodes that are deployed on DigitalOcean. Seven of these are the initial bootstrap nodes to join the network, hence they are the Elders. The remaining nodes are two Adults and one Infant. See the Further Information section at the bottom of this post for an explanation of Elder, Adult and Infant nodes.

As a user you can run a Vault that will join the section, will eventually be promoted to an Adult, and then given the responsibility of holding Immutable Data chunks. The Vault uses the IGD protocol to forward the internal port number on your computer to an external port on the router. This will allow the other nodes to seamlessly communicate with your running vault. As vaults running from home may go offline, we need to ensure that a minimum number of copies of each Immutable Data chunk is always available on the network. The Vault binary released today includes a data recovery mechanism to maintain this copy count.

What’s new

We have changed the way signature accumulation is done in Vaults. Previously, Routing handled the signature accumulation internally with some additional information that is limited to the internals of Routing. Because of this, Vaults could not make use of the BLS signature aggregation that was already being done. We have refactored the implementation in such a way that the Vault handles the accumulation of the signatures for client messages, instead of Routing.

With the Vault handling signature aggregation instead of Routing, we can now make use of the aggregated signature to validate responses against their associated request to ensure that the request was approved by the section. This removes the need for caching requests and ahead of time responses in memory, significantly reducing memory utilisation of the Vaults.

This iteration of the testnet also includes a change that delegates the responsibility of duplicating data (when a data holder leaves the network) to the node that would be responsible for the new copy. This removes a significant amount of processing that was previously performed by Elders.

Sequence data type

A new data type has been implemented and included in this iteration of the testnet. As most of you will know, we’ve been working on transitioning our native SAFE data types to become CRDTs (Conflict-free Replicated Data Type). We’ve started by migrating our previous AppendOnlyData to a new data type called Sequence, which is implemented as a CRDT.

From a user’s point of view, there is no change to the APIs and CLI commands we’ve been exposing so far - the CLI commands to create and manipulate FilesContainers & NRS Maps are all the same, although they are now stored on the network as Sequence data.

Nevertheless, there are a couple of new commands supported by the CLI to create public and private Sequence data on the network with any type of raw data, as well as append new items to it once stored using its XOR-URL, e.g.:

$ safe seq store "my initial note"
Public Sequence stored at: "safe://hnyyyyp3yb3dczuaaiwx1mb5491xir4kz1hex3d1pc34oxwicy7scm3x4ybfo"

$ safe cat safe://hnyyyyp3yb3dczuaaiwx1mb5491xir4kz1hex3d1pc34oxwicy7scm3x4ybfo
Public Sequence (version 0) at "safe://hnyyyyp3yb3dczuaaiwx1mb5491xir4kz1hex3d1pc34oxwicy7scm3x4ybfo":
my initial note

A new section in the CLI User Guide has been added with more detailed information about this new safe seq store command, and several others, so we definitely recommend you take a look at it to fully understand the different functionality offered by them.

What it doesn’t do

As discussed above, this iteration of the testnet is solely focused on fixing the issues identified in iteration 1, which we released on 11th June. Some notable limitations which we highlighted with the previous iteration remain:

  • Section splits have not been implemented.
    If the single section network we are running breaches its size limit then we may need to restart it. There isn’t an exact number of nodes which will trigger a split, this depends on how the nodes on the shared network are prefixed and so divided into subsections, with node churn making prefix members vary. We can say for certain that the minimum number of nodes that could trigger a split is 1000. We have increased this value to delay the section split in this testnet iteration.

  • If your router does not (correctly) support the IGD protocol, you will not be able to take part in this testnet iteration.
    Don’t worry, we have solutions for you but would like to save them for a future iteration of the testnet so we can concentrate today on ensuring that our improvements are effective, our IGD solution works as expected, and to get a general overview of how many participants out there actually have routers with working IGD. If your router does not correctly support IGD then you will see the message below in your vault logs

    Automatic Port forwarding Failed. Check if UPnP is enabled in your router's settings and try again.    Note that not all routers are supported in this testnet. Visit https://forum.autonomi.community for more information.
    

    If you do not see this exact message in your vault logs, leave your vault running. In the previous iteration, we saw several instances of log messages such as Could not send the IGD response: sending on a disconnected channel - "SendError(..)" which could be interpreted by some as IGD failing, but this is not the case and your vault should eventually start contributing to the network.

Instructions for updating and joining as a Node

You can bootstrap to the network using the nodes running on DigitalOcean as hardcoded contacts, then watch the logs as your vault joins the network, progresses to Adult status, and plays its part in hosting Immutable Data Chunks. Of course, you will also be able to create an account on this network, log in, upload data, create keys and wallets, and all the other commands described in the CLI User Guide. This guide will take you through connecting to the shared section started by MaidSafe, but of course it can be applied to connecting to any shared section, hosted by anyone.

To connect you should first make sure that your CLI, Authenticator daemon and Vault are all updated to today’s latest releases. If you already have a version of each of these installed, you can update as follows:

$ safe update
$ safe auth update
$ safe vault update

If you need to install these fresh then you will find instructions for each in our user guide:

You now need the network configuration containing the details of a hardcoded contact that will bootstrap you to the shared section. We store and update these connection details on S3 for you to easily point your configuration to. If you have connected to this or previous iterations of our shared section then you may already have a shared-section network profile saved on your machine. You can confirm this and update it to the latest configuration we have posted using safe networks check:

$ safe networks check
Checking current setup network connection information...
Fetching 'my-network' network connection information from '~/.config/safe-cli/networks/my-network_vault_connection_info.config' ...
Fetching 'shared-section' network connection information from 'https://safe-vault-config.s3.eu-west-2.amazonaws.com/shared-section/vault_connection_info.config' ...

'shared-section' network matched. Current set network connection information at '~/.config/safe_vault/vault_connection_info.config' matches 'shared-section' network as per current config

If you don’t have a configuration in your results which points to the exact S3 location listed in the results above, you can add using safe networks add:

$ safe networks add shared-section https://safe-vault-config.s3.eu-west-2.amazonaws.com/shared-section/vault_connection_info.config
Network 'shared-section' was added to the list

Now you need to ensure you are set to use this shared-section configuration that we have updated/added, we can use safe networks switch shared-section for this:

$ safe networks switch shared-section
Switching to 'shared-section' network...
Fetching 'shared-section' network connection information from 'https://safe-vault-config.s3.eu-west-2.amazonaws.com/shared-section/vault_connection_info.config' ...
Successfully switched to 'shared-section' network in your system!
If you need write access to the 'shared-section' network, you'll need to restart authd, login and re-authorise the CLI again

We now have our CLI, Authenticator daemon and Vault components up-to-date, and we have the latest hardcoded contact details to bootstrap to the shared section so everything is in place and we’re ready to launch our vault and add it as a node. This is achieved using safe vault join as follows. Note that you need to set the RUST_LOG environment variable before starting your vault to prevent the logs from being too verbose.

## for Linux and Mac OS
$ export RUST_LOG=safe=trace
## Windows (command prompt)
$ set RUST_LOG=trace
## Windows (powershell)
$ $env:RUST_LOG="safe=trace"

And then start the vault with:

$ safe vault join
Creating '/Users/maidsafe/.safe/vault/local-vault' folder
Storing vaults' generated data at /Users/maidsafe/.safe/vault/local-vault
Starting a vault to join a SAFE network...
Launching with vault executable from: /Users/maidsafe/.safe/vault/safe_vault
Node started with hardcoded contact: 161.35.36.185:12000
Launching vault...
Vault logs are being stored at: /Users/maidsafe/.safe/vault/local-vault/safe_vault.log

Your vault will now launch and attempt to connect to the shared network. You can keep an eye on its progress via its logs, which can be found at ~/.safe/vault/local-vault/safe_vault.log.

Do I need to run a vault to participate?

The highlight and primary aim of this release is to be able to run a vault from your own home (IGD dependent) and watch as it plays a part in a wider network, but you do not need to run a vault in order to participate in the shared section testing. Whether you are running a vault or not, you can still connect to the network as a client and do everything you could do on the previous single section networks that you may have ran from home or that MaidSafe hosted and you connected to. See the CLI User Guide for a comprehensive list of available commands and instructions on how to use them.

Further Information

What is IGD?

IGD is short for Internet Gateway Device Standardized Device Control Protocol. As most people running vaults from home will be behind a router, IGD allows us to automatically map the port that your vault runs on, and so seamlessly allows data to flow in and out of your vault. Without correctly functioning IGD, a user would need to manually set up this port forwarding on their router.

Wikipedia entry

Incorrectly Functioning IGD

Many routers that claim to support IGD through Universal Plug and Play (UPnP) actually do not implement it properly and so will not connect to this version of the testnet - your log file will display this message:
Automatic Port forwarding Failed. Check if UPnP is enabled in your router's settings and try again. Note that not all routers are supported in this testnet. Visit https://forum.autonomi.community for more information.

If you do not see this exact message in your vault logs, leave your vault running. We have seen instances of log messages such as Could not send the IGD response: sending on a disconnected channel - "SendError(..)" which could be interpreted by some as IGD failing, but this is not the case and your vault should eventually start contributing to the network.

If your router has a UPnP option in its settings, please ensure it is enabled. If it still doesn’t connect to the shared section, with the logs reporting the same Automatic Port forwarding Failed, then sit tight and skip this particular iteration of the testnet. We would like to isolate those with IGD correctly implemented at first, fix any issues resulting from them, then open up to allow others to enable manual port forwarding and join in. We don’t anticipate there will be a lengthy delay before an iteration which includes manual port forwarding is made available.

Where are my vault logs?

When you launch your vault you should see the location of your log file printed on screen - this will be ~/.safe/vault/local-vault/safe_vault.log. You can tail your logs with a command such as tail -f ~/.safe/vault/local-vault/safe_vault.log

What are Elder, Adult and Infant nodes in the SAFE Network?

These terms are related to Node Ageing. Node age means that as vaults prove themselves over exponentially long periods of time (age) then they grow older by 1. Each time they age they will be moved to a different section (for security, and of course once multi-section networks are operational) and take on a new name.

Many people will run a vault briefly and that is great, but we don’t want the network to do much work with unknown new vaults. We call these Infants and as infants we don’t ask much of them, but we do monitor that they are there. We don’t remember Infants so they cause no lasting network footprint when they restart. We intentionally don’t record infant information to save network resources.

As an Infant does some work and hangs around long enough it will be promoted to Adult by increasing its age by 1 and relocated to a new section (in a multi-section network) .

The 7 oldest vaults in a section are the most trusted, we call these Elders and they make the decisions, provide network (section) authority, and decide what Adults will store what data. The Elders are the controllers of the section and the only vaults in a section that communicate with other sections. We can consider Adults as the disk space of the Elder group.

For more information on Node Ageing in the SAFE Network, have a read of the SAFE Network Primer section on it.

Where can I report any issues found?

The ant colony is only as strong as its worker ants, and you are the backbone of this colony. Please let us know if you come across any issues in your testing. You can do so by reporting these issues in the comments on this topic’s thread. We will monitor and investigate these as soon as we can.

58 Likes

Amazing, thank you! This is much appreciate it because the IGD Held me back the last test network. Exciting times!

11 Likes

Just awesome! Thank you for the hard work!

10 Likes

Oh snap! Dreams do come true, haha. Can’t wait to play. Thank you to everyone @maidsafe for your dedication!

11 Likes

Jippy :crazy_face: thx for the hardwork Maidsafe devs

7 Likes

Once you have started the vault you can monitor progress using tail -f <your-vault-file> with <your-vault-file> as printed when you started the vault. Here’s my log so far:

Running safe-vault v0.25.1
==========================
INFO 2020-07-16T17:08:25.309932317+01:00 [src/vault.rs:135] Initializing new Vault as Infant
INFO 2020-07-16T17:08:28.584690163+01:00 [src/bin/safe_vault.rs:156] Vault connection info: "82.132.215.129:24082"
DEBUG 2020-07-16T17:08:31.884143054+01:00 [src/vault.rs:325] Received routing event: Connected(First)
TRACE 2020-07-16T17:08:31.884198698+01:00 [src/chunk_store/mod.rs:93] Creating ChunkStore at /home/mrh/.safe/vault/local-vault/chunks/immutable
INFO 2020-07-16T17:08:31.884366931+01:00 [src/vault.rs:401] Section has accepted the vault.
12 Likes

INFO 2020-07-16T12:18:53.944173878-04:00 [src/vault.rs:401] Section has accepted the vault.

:boom: :love_you_gesture:
thankfully it is not osteoporosis :smile:

12 Likes

Sorry @Michael_Hills, if your router doesn’t correctly support IGD then you wouldn’t be able to join the section from home just yet.

This testnet iteration still concentrates on those who have IGD working correctly, and fixes some issues found in the 1st iteration.

We will get to non-IGD asap, just need to ensure that all works fine as is before taking that next step :slight_smile:

9 Likes

I got error… I can’t use the vault with my router; so, just trying the obvious but creating account seems to fail… is it user error?

So, from clean slate, roughly was just doing as

$ wget -qO- https://safe-api.s3.amazonaws.com/install.sh | bash
$ safe networks add shared-section https://safe-vault-config.s3.eu-west-2.amazonaws.com/shared-section/vault_connection_info.config
$ safe networks switch shared-section
$ safe auth install
$ safe auth start
$ safe auth create-acc --test-coins
Passphrase: 
Password: 
Creating a SafeKey with test-coins...
[2020-07-16T16:25:49Z ERROR safe_core::connection_manager::connection_group] Unexpected error: Custom("invalid value: integer `2145938290`, expected variant index 0 <= i < 2")
[2020-07-16T16:25:49Z ERROR safe_core::connection_manager::connection_group] Unexpected error: Custom("invalid value: integer `2145938290`, expected variant index 0 <= i < 2")
[2020-07-16T16:25:49Z ERROR safe_core::connection_manager::connection_group] Unexpected error: Custom("invalid value: integer `2145938290`, expected variant index 0 <= i < 2")
[2020-07-16T16:25:49Z ERROR safe_core::connection_manager::connection_group] Unexpected error: Custom("invalid value: integer `2145938290`, expected variant index 0 <= i < 2")
[2020-07-16T16:25:49Z ERROR safe_core::connection_manager::connection_group] Unexpected error: Custom("invalid value: integer `2145938290`, expected variant index 0 <= i < 2")
[2020-07-16T16:25:49Z ERROR safe_core::connection_manager::connection_group] Unexpected error: Custom("invalid value: integer `2145938290`, expected variant index 0 <= i < 2")
[2020-07-16T16:25:49Z ERROR safe_core::connection_manager::connection_group] Unexpected error: Custom("invalid value: integer `2145938290`, expected variant index 0 <= i < 2")
1 Like

Make sure you are running latest version of safe-cli with $ safe -V, it should be v0.15.0.

4 Likes

INFO 2020-07-16T17:31:57.437537347+01:00 [src/vault.rs:401] Section has accepted the vault.

5 Likes

ah… yes I see v14

I’d used the install script from

https://github.com/maidsafe/safe-api/blob/master/safe-cli/README.md#linux-and-mac

5 Likes

So, this worked now as v15

$ wget -qO- https://safe-api.s3.amazonaws.com/install.sh | bash
$ safe networks add shared-section https://safe-vault-config.s3.eu-west-2.amazonaws.com/shared-section/vault_connection_info.config
$ safe networks switch shared-section
$ safe auth install
$ safe auth start
$ safe update
$ safe auth create-acc --test-coins

:partying_face:

6 Likes

Thanks, just fixed it so it installs latest one (v0.15.0).

7 Likes

Is there a compatible safe browser yet?
Can I see the wonderous stuff I am uploading in all its CSS clever-dickness?

1 Like

So, I’m logged into auth with the usual auth allow done… and logged in shows from auth status.

I can’t see why this is occurring from recursive (yes, the folder in that location does exist will simple files as previously worked)

$ safe files put --recursive “./hello”
[2020-07-16T16:43:01Z ERROR safe] safe-cli error: [Error] FileSystemError - Couldn’t read metadata from source path (‘./hello’): No such file or directory (os error 2)

and the single file upload attempt, gets no response

safe files put ./index.html

?

$ safe networks check
Checking current setup network connection information...
Fetching 'shared-section' network connection information from 'https://safe-vault-config.s3.eu-west-2.amazonaws.com/shared-section/vault_connection_info.config' ...

'shared-section' network matched. Current set network connection information at '/home/safe/.config/safe_vault/vault_connection_info.config' matches 'shared-section' network as per current config
$ safe auth status
Sending request to authd to obtain a status report...
+------------------------------------------+--------+
| SAFE Authenticator status                |        |
+------------------------------------------+--------+
| Authenticator daemon version             | 0.0.11 |
+------------------------------------------+--------+
| Logged in to a SAFE account?             | Yes    |
+------------------------------------------+--------+
| Number of pending authorisation requests | 0      |
+------------------------------------------+--------+
| Number of notifications subscribers      | 0      |
+------------------------------------------+--------+
2 Likes

I’ve updated everything on both my home machine (laptop using mobile hotspot) and cloud server. Both Ubuntu 18 or 19.

The vault runs fine it seems on both! :partying_face:

However, I can’t create an account with either.
Laptop on mobile hotspot:

safe -V
[2020-07-16T16:56:21Z DEBUG safe] Starting SAFE CLI...
safe-cli 0.15.0
safe auth --version
[2020-07-16T16:57:21Z DEBUG safe] Starting SAFE CLI...
safe-auth 0.15.0

UPDATE: Cloud server seems not to have updated, so I’ll look into that. Have to be tomorrow now.

Here’s the output from the cloud server:

safe auth create-acc --test-coins
[2020-07-16T16:27:57Z DEBUG safe] Starting SAFE CLI...
[2020-07-16T16:27:57Z DEBUG safe::cli] Processing command: CmdArgs { cmd: Some(Auth { cmd: Some(Create { config_file_str: None, sk: None, test_coins: true }) }), output_fmt: None, output_json: false, dry: false, xorurl_base: None, endpoint: None }
[2020-07-16T16:27:57Z DEBUG safe_api::api::authd_client::authd_client_api] Creating new authd client for endpoint https://localhost:33000
Passphrase: 
Password: 
Creating a SafeKey with test-coins...
[2020-07-16T16:29:19Z INFO  safe_api::api::app::safe_client_libs] Creating test SafeKey with 1000.110000000 test coins
[2020-07-16T16:29:19Z TRACE safe_core::client] Create test balance of 1000.110000000 for FullId { keypair: Keypair::Bls(..), public_id: Client(PublicKey::Bls(a8c324..)) }
[2020-07-16T16:29:19Z TRACE safe_core::config_handler] Not available: /home/safe/.config/safe_core/safe_core.config
[2020-07-16T16:29:19Z TRACE safe_core::config_handler] Reading: /home/safe/.config/safe_vault/vault_connection_info.config
[2020-07-16T16:29:19Z TRACE safe_core::connection_manager] Trying to bootstrap with group Client(PublicKey::Bls(a8c324..))
[2020-07-16T16:29:19Z TRACE safe_core::connection_manager::connection_group] Bootstrapped; SocketAddr: V4(167.99.202.233:12000)
[2020-07-16T16:29:19Z TRACE safe_core::connection_manager::connection_group] 0: Sent user message
[2020-07-16T16:29:19Z TRACE safe_core::connection_manager::connection_group] HandshakeResponse::Join, transitioning to Joining state ([(45237f.., V4(167.172.58.252:12000)), (616a4d.., V4(68.183.44.106:12000)), (79aac9.., V4(157.245.40.147:12000)), (97e462.., V4(167.99.202.233:12000)), (c4c927.., V4(104.248.161.123:12000)), (e329e5.., V4(64.227.32.207:12000)), (f28280.., V4(165.22.117.39:12000))])
[2020-07-16T16:29:19Z TRACE safe_core::connection_manager::connection_group] 0: Recvd connection failure for 167.99.202.233:12000, Connection cancelled
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 0: Sent user message
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] Got the challenge from V4(167.99.202.233:12000)
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 0: Sent user message
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] Got the challenge from V4(64.227.32.207:12000)
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 0: Sent user message
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] Got the challenge from V4(157.245.40.147:12000)
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 0: Sent user message
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] Got the challenge from V4(104.248.161.123:12000)
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 0: Sent user message
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 0: Sent user message
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 0: Sent user message
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] Got the challenge from V4(165.22.117.39:12000)
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] Got the challenge from V4(167.172.58.252:12000)
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] Got the challenge from V4(68.183.44.106:12000)
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] Sending message MessageId(91b2c8..)
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 0: Sent user message
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 0: Sent user message
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 0: Sent user message
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 0: Sent user message
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 0: Sent user message
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 0: Sent user message
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 0: Sent user message
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 0: Sent user message
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 0: Sent user message
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 0: Sent user message
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 0: Sent user message
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 0: Sent user message
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 0: Sent user message
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 0: Sent user message
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 64.227.32.207:12000: Message: [ 02 00 00 00..e8 00 00 00 ].
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] Got transaction notification: Notification(Transaction { id: 16769704666305158498, amount: 1000.110000000 })
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 64.227.32.207:12000: Message: [ 01 00 00 00..78 da 0b c1 ].
[2020-07-16T16:29:20Z ERROR safe_core::connection_manager::connection_group] Unexpected error: Custom("invalid value: integer `1465146722`, expected variant index 0 <= i < 2")
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 167.99.202.233:12000: Message: [ 02 00 00 00..e8 00 00 00 ].
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] Got transaction notification: Notification(Transaction { id: 16769704666305158498, amount: 1000.110000000 })
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 167.99.202.233:12000: Message: [ 01 00 00 00..78 da 0b c1 ].
[2020-07-16T16:29:20Z ERROR safe_core::connection_manager::connection_group] Unexpected error: Custom("invalid value: integer `1465146722`, expected variant index 0 <= i < 2")
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 157.245.40.147:12000: Message: [ 02 00 00 00..e8 00 00 00 ].
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] Got transaction notification: Notification(Transaction { id: 16769704666305158498, amount: 1000.110000000 })
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 157.245.40.147:12000: Message: [ 01 00 00 00..78 da 0b c1 ].
[2020-07-16T16:29:20Z ERROR safe_core::connection_manager::connection_group] Unexpected error: Custom("invalid value: integer `1465146722`, expected variant index 0 <= i < 2")
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 165.22.117.39:12000: Message: [ 02 00 00 00..e8 00 00 00 ].
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] Got transaction notification: Notification(Transaction { id: 16769704666305158498, amount: 1000.110000000 })
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 165.22.117.39:12000: Message: [ 01 00 00 00..78 da 0b c1 ].
[2020-07-16T16:29:20Z ERROR safe_core::connection_manager::connection_group] Unexpected error: Custom("invalid value: integer `1465146722`, expected variant index 0 <= i < 2")
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 104.248.161.123:12000: Message: [ 02 00 00 00..e8 00 00 00 ].
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] Got transaction notification: Notification(Transaction { id: 16769704666305158498, amount: 1000.110000000 })
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 104.248.161.123:12000: Message: [ 01 00 00 00..78 da 0b c1 ].
[2020-07-16T16:29:20Z ERROR safe_core::connection_manager::connection_group] Unexpected error: Custom("invalid value: integer `1465146722`, expected variant index 0 <= i < 2")
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 167.172.58.252:12000: Message: [ 02 00 00 00..e8 00 00 00 ].
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] Got transaction notification: Notification(Transaction { id: 16769704666305158498, amount: 1000.110000000 })
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 167.172.58.252:12000: Message: [ 01 00 00 00..78 da 0b c1 ].
[2020-07-16T16:29:20Z ERROR safe_core::connection_manager::connection_group] Unexpected error: Custom("invalid value: integer `1465146722`, expected variant index 0 <= i < 2")
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 68.183.44.106:12000: Message: [ 02 00 00 00..e8 00 00 00 ].
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] Got transaction notification: Notification(Transaction { id: 16769704666305158498, amount: 1000.110000000 })
[2020-07-16T16:29:20Z TRACE safe_core::connection_manager::connection_group] 68.183.44.106:12000: Message: [ 01 00 00 00..78 da 0b c1 ].
[2020-07-16T16:29:20Z ERROR safe_core::connection_manager::connection_group] Unexpected error: Custom("invalid value: integer `1465146722`, expected variant index 0 <= i < 2")

[2020-07-16T16:32:20Z TRACE safe_core::connection_manager] Disconnecting group Client(PublicKey::Bls(a8c324..))
[2020-07-16T16:32:20Z TRACE safe_core::connection_manager::connection_group] 0: Terminating connection
[2020-07-16T16:32:20Z TRACE safe_core::connection_manager::connection_group] 0: Successfully disconnected
[2020-07-16T16:32:20Z TRACE safe_core::connection_manager::connection_group] 0: Recvd connection failure for 165.22.117.39:12000, Connection cancelled
[2020-07-16T16:32:20Z TRACE safe_core::connection_manager::connection_group] 0: Recvd connection failure for 167.172.58.252:12000, Connection cancelled
[2020-07-16T16:32:20Z TRACE safe_core::connection_manager::connection_group] 0: Recvd connection failure for 68.183.44.106:12000, Connection cancelled
[2020-07-16T16:32:20Z TRACE safe_core::connection_manager::connection_group] 0: Recvd connection failure for 167.99.202.233:12000, Connection cancelled
[2020-07-16T16:32:20Z TRACE safe_core::connection_manager::connection_group] 0: Recvd connection failure for 157.245.40.147:12000, Connection cancelled
[2020-07-16T16:32:20Z TRACE safe_core::connection_manager::connection_group] 0: Recvd connection failure for 104.248.161.123:12000, Connection cancelled
[2020-07-16T16:32:20Z TRACE safe_core::connection_manager] Dropped ConnectionManager - terminating gracefully
[2020-07-16T16:32:20Z TRACE safe_api::api::authd_client::authd_client_api] SafeAuthdClient instance being dropped...
[2020-07-16T16:32:20Z ERROR safe] safe-cli error: [Error] NetDataError - Failed to allocate test coins: RequestTimeout - CoreError::RequestTimeout

And similar from the laptop over mobile hotspot:

safe auth create-acc --test-coins
[2020-07-16T16:32:24Z DEBUG safe] Starting SAFE CLI...
[2020-07-16T16:32:24Z DEBUG safe::cli] Processing command: CmdArgs { cmd: Some(Auth { cmd: Some(Create { config_file_str: None, sk: None, test_coins: true }) }), output_fmt: None, output_json: false, dry: false, xorurl_base: None, endpoint: None }
[2020-07-16T16:32:24Z DEBUG safe_api::api::authd_client::authd_client_api] Creating new authd client for endpoint https://localhost:33000
Passphrase: 
Password: 
Creating a SafeKey with test-coins...
[2020-07-16T16:32:36Z INFO  safe_api::api::app::safe_client] Creating test SafeKey with 1000.110000000 test coins
[2020-07-16T16:32:36Z TRACE safe_core::client] Create test balance of 1000.110000000 for FullId { keypair: Keypair::Bls(..), public_id: Client(PublicKey::Bls(8ec4f3..)) }
[2020-07-16T16:32:36Z TRACE safe_core::config_handler] Not available: /home/mrh/.config/safe_core/safe_core.config
[2020-07-16T16:32:36Z TRACE safe_core::config_handler] Reading: /home/mrh/.config/safe_vault/vault_connection_info.config
[2020-07-16T16:32:36Z TRACE safe_core::connection_manager] Trying to bootstrap with group Client(PublicKey::Bls(8ec4f3..))
[2020-07-16T16:32:36Z TRACE safe_core::connection_manager::connection_group] Bootstrapped; SocketAddr: V4(167.99.202.233:12000)
[2020-07-16T16:32:36Z TRACE safe_core::connection_manager::connection_group] 0: Sent user message
[2020-07-16T16:33:06Z TRACE safe_core::client] Error connecting to network! Retrying... (1)
[2020-07-16T16:33:06Z TRACE safe_core::connection_manager] Dropped ConnectionManager - terminating gracefully
[2020-07-16T16:33:06Z TRACE safe_core::connection_manager::connection_group] Gracefully terminating quic-p2p event loop
[2020-07-16T16:33:06Z TRACE safe_core::connection_manager] Trying to bootstrap with group Client(PublicKey::Bls(8ec4f3..))
[2020-07-16T16:33:06Z TRACE safe_core::connection_manager::connection_group] Bootstrapped; SocketAddr: V4(167.99.202.233:12000)
[2020-07-16T16:33:06Z TRACE safe_core::connection_manager::connection_group] 1: Sent user message
[2020-07-16T16:33:06Z TRACE safe_core::connection_manager::connection_group] HandshakeResponse::Join, transitioning to Joining state ([(45237f.., V4(167.172.58.252:12000)), (616a4d.., V4(68.183.44.106:12000)), (79aac9.., V4(157.245.40.147:12000)), (97e462.., V4(167.99.202.233:12000)), (c4c927.., V4(104.248.161.123:12000)), (e329e5.., V4(64.227.32.207:12000)), (f28280.., V4(165.22.117.39:12000))])
[2020-07-16T16:33:06Z TRACE safe_core::connection_manager::connection_group] 1: Recvd connection failure for 167.99.202.233:12000, Connection cancelled
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 1: Sent user message
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] Got the challenge from V4(167.172.58.252:12000)
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 1: Sent user message
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] Got the challenge from V4(68.183.44.106:12000)
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 1: Sent user message
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] Got the challenge from V4(167.99.202.233:12000)
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 1: Sent user message
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] Got the challenge from V4(104.248.161.123:12000)
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 1: Sent user message
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] Got the challenge from V4(157.245.40.147:12000)
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 1: Sent user message
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] Got the challenge from V4(64.227.32.207:12000)
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 1: Sent user message
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 1: Sent user message
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 1: Sent user message
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 1: Sent user message
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 1: Sent user message
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 1: Sent user message
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 1: Sent user message
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] Got the challenge from V4(165.22.117.39:12000)
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] Sending message MessageId(7ac4db..)
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 1: Sent user message
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 1: Sent user message
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 1: Sent user message
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 1: Sent user message
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 1: Sent user message
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 1: Sent user message
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 1: Sent user message
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 1: Sent user message
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 64.227.32.207:12000: Message: [ 02 00 00 00..e8 00 00 00 ].
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] Got transaction notification: Notification(Transaction { id: 1003955633677385920, amount: 1000.110000000 })
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 64.227.32.207:12000: Message: [ 01 00 00 00..01 86 d1 b0 ].
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] Response from: V4(64.227.32.207:12000), msg_id: MessageId(7ac4db..), resp: Response::Transaction(Success)
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::response_manager] Handling response for msg_id: MessageId(7ac4db..), resp: Response::Transaction(Success)
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::response_manager] Response vote map looks like: {Response::Transaction(Success): 1}
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 68.183.44.106:12000: Message: [ 02 00 00 00..e8 00 00 00 ].
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] Got transaction notification: Notification(Transaction { id: 1003955633677385920, amount: 1000.110000000 })
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 68.183.44.106:12000: Message: [ 01 00 00 00..01 86 d1 b0 ].
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] Response from: V4(68.183.44.106:12000), msg_id: MessageId(7ac4db..), resp: Response::Transaction(Success)
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::response_manager] Handling response for msg_id: MessageId(7ac4db..), resp: Response::Transaction(Success)
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::response_manager] Increasing vote count to 2
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::response_manager] Response vote map looks like: {Response::Transaction(Success): 2}
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 104.248.161.123:12000: Message: [ 02 00 00 00..e8 00 00 00 ].
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] Got transaction notification: Notification(Transaction { id: 1003955633677385920, amount: 1000.110000000 })
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 167.99.202.233:12000: Message: [ 02 00 00 00..e8 00 00 00 ].
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] Got transaction notification: Notification(Transaction { id: 1003955633677385920, amount: 1000.110000000 })
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 167.99.202.233:12000: Message: [ 01 00 00 00..01 86 d1 b0 ].
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] Response from: V4(167.99.202.233:12000), msg_id: MessageId(7ac4db..), resp: Response::Transaction(Success)
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::response_manager] Handling response for msg_id: MessageId(7ac4db..), resp: Response::Transaction(Success)
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::response_manager] Increasing vote count to 3
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::response_manager] Response vote map looks like: {Response::Transaction(Success): 3}
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 104.248.161.123:12000: Message: [ 01 00 00 00..01 86 d1 b0 ].
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] Response from: V4(104.248.161.123:12000), msg_id: MessageId(7ac4db..), resp: Response::Transaction(Success)
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::response_manager] Handling response for msg_id: MessageId(7ac4db..), resp: Response::Transaction(Success)
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::response_manager] Increasing vote count to 4
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::response_manager] Response vote map looks like: {Response::Transaction(Success): 4}
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::response_manager] Response request, votes met the required threshold.
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 165.22.117.39:12000: Message: [ 02 00 00 00..e8 00 00 00 ].
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] Got transaction notification: Notification(Transaction { id: 1003955633677385920, amount: 1000.110000000 })
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 165.22.117.39:12000: Message: [ 01 00 00 00..01 86 d1 b0 ].
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] Response from: V4(165.22.117.39:12000), msg_id: MessageId(7ac4db..), resp: Response::Transaction(Success)
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::response_manager] Handling response for msg_id: MessageId(7ac4db..), resp: Response::Transaction(Success)
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::response_manager] No request found for message ID MessageId(7ac4db..)
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager] Disconnecting group Client(PublicKey::Bls(8ec4f3..))
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 1: Terminating connection
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 1: Successfully disconnected
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] 1: Recvd connection failure for 68.183.44.106:12000, Connection cancelled
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager] Dropped ConnectionManager - terminating gracefully
[2020-07-16T16:33:07Z TRACE safe_api::api::app::xorurl] Set version: None
Sending account creation request to authd...
[2020-07-16T16:33:07Z DEBUG safe_api::api::authd_client::authd_client_api] Attempting to create a SAFE account on remote authd...
[2020-07-16T16:33:07Z INFO  safe_api::api::common] Sending 'create-acc' request to SAFE Authenticator on https://localhost:33000 ...
[2020-07-16T16:33:07Z TRACE safe_core::connection_manager::connection_group] Gracefully terminating quic-p2p event loop
[2020-07-16T16:35:07Z TRACE safe_api::api::authd_client::authd_client_api] SafeAuthdClient instance being dropped...
[2020-07-16T16:35:07Z ERROR safe] safe-cli error: [Error] AuthdClientError - Failed to establish connection with authd: [Error] ClientError - Failed to establish connection with remote QUIC endpoint: timed out
5 Likes

Have you got v15?

$ safe -V
safe-cli 0.15.0

if not then just
$ safe update

Seems there’s a DNS issue I need to fix on the cloud server:

safe update
[2020-07-16T16:58:23Z DEBUG safe] Starting SAFE CLI...
[2020-07-16T16:58:23Z DEBUG safe::cli] Processing command: CmdArgs { cmd: Some(Update), output_fmt: None, output_json: false, dry: false, xorurl_base: None, endpoint: None }
[2020-07-16T16:58:23Z ERROR safe] safe-cli error: Error performing update: ReqwestError: error sending request for url (https://api.github.com/repos/maidsafe/safe-cli/releases): error trying to connect: dns error: failed to lookup address information: Temporary failure in name resolution
3 Likes

IGD issue, you’ve only gone and forced me to spin up a digital ocean droplet guys… I couldn’t join last time!

:rofl: :rofl: :rofl:

Using a fresh ubuntu-20-04-x64 image with the following commands,

wget -qO- https://safe-api.s3.amazonaws.com/install.sh | bash
source .bashrc
safe update
safe auth install
safe auth update
safe vault install
safe vault update
safe networks add shared-section https://safe-vault-config.s3.eu-west-2.amazonaws.com/shared-section/vault_connection_info.config
safe networks switch shared-section
safe networks check
export RUST_LOG=safe=trace
safe vault join

Gets me on to the test networks!!!

WOWOWOWOWOWO :tada: :tada: :tada: :drum: :drum: :+1:

INFO 2020-07-16T16:55:50.193721763+00:00 [src/bin/safe_vault.rs:114]

Running safe-vault v0.25.1
==========================
INFO 2020-07-16T16:56:00.361122447+00:00 [src/vault.rs:135] Initializing new 
Vault as Infant
INFO 2020-07-16T16:56:03.416646560+00:00 [src/bin/safe_vault.rs:156] Vault 
connection info: "161.35.87.14:12000"
DEBUG 2020-07-16T16:56:05.840286579+00:00 [src/vault.rs:325] Received routing  
event: Connected(First)
TRACE 2020-07-16T16:56:05.840827990+00:00 [src/chunk_store/mod.rs:93] 
Creating ChunkStore at /home/zoki/.safe/vault/local-vault/chunks/immutable
INFO 2020-07-16T16:56:05.842990167+00:00 [src/vault.rs:401] Section has 
accepted the vault.

edit… log filling up niceley, over 250 lines.

Here is a random copy paste.

INFO 2020-07-16T17:06:51.347739919+00:00 [src/data_handler/idata_holder.rs:72] 7c11e7..: Sender Section(Prefix(01111001101010101100100101111110)) asked us to store Immutable data at: Pub(d5c8ec..). Result: Ok(())
TRACE 2020-07-16T17:06:51.347772866+00:00 [src/vault.rs:628] Node(7c11e7..) handle action RespondToOurDataHandlers { rpc: Response { response: Response::Mutation(Success), requester: App(PublicKey::Bls(89c741..), owner: PublicKey::Bls(850907..)), message_id: MessageId(d44964..), refund: None, proof: Some((Request::PutIData, Signature(13f4..1ee8))) } }
INFO 2020-07-16T17:06:51.351095391+00:00 [src/vault.rs:697] Responded to our data handlers with: Response { response: Response::Mutation(Success), requester: App(PublicKey::Bls(89c741..), owner: PublicKey::Bls(850907..)), message_id: MessageId(d44964..), refund: None, proof: Some((Request::PutIData, Signature(13f4..1ee8))) }
DEBUG 2020-07-16T17:06:51.353160933+00:00 [src/vault.rs:325] Received routing event: MessageReceived { content: "000000..", src: Node(c4c927..), dst: Node(d6f66a..) }
INFO 2020-07-16T17:06:51.353179605+00:00 [src/vault.rs:364] Received message: 000..6af
 Sent from Node(c4c927..) to Node(d6f66a..)
DEBUG 2020-07-16T17:06:51.357009506+00:00 [src/vault.rs:525] Got Request::PutIData from App(PublicKey::Bls(89c741..), owner: PublicKey::Bls(850907..))
INFO 2020-07-16T17:06:51.357030212+00:00 [src/vault.rs:550] d6f66a..: Accumulating signatures for MessageId(d44964..)
INFO 2020-07-16T17:06:51.366147776+00:00 [src/vault.rs:444] Already accumlated request with MessageId(d44964..)
DEBUG 2020-07-16T17:06:51.366185137+00:00 [src/vault.rs:325] Received routing event: MessageReceived { content: "000000..", src: Node(616a4d..), dst: Node(d6f66a..) }
INFO 2020-07-16T17:06:51.366195762+00:00 [src/vault.rs:364] Received message: 000..6c4
 Sent from Node(616a4d..) to Node(d6f66a..)
DEBUG 2020-07-16T17:06:51.370888377+00:00 [src/vault.rs:525] Got Request::PutIData from App(PublicKey::Bls(89c741..), owner: PublicKey::Bls(850907..))
INFO 2020-07-16T17:06:51.370912245+00:00 [src/vault.rs:550] d6f66a..: Accumulating signatures for MessageId(d44964..)
INFO 2020-07-16T17:06:51.378654516+00:00 [src/vault.rs:444] Already accumlated request with MessageId(d44964..)
8 Likes