Testnet Changelog - December 24th, 2020

For those who have the test net up and running, what is it looking like? I am really curious!

4 Likes

Cool to hear it is splitting and thanks fo reporting!

How about changing default node storage capacity to something very small? Shouldn’t that trigger the “join allowed” behaviour and all the rest?

2 Likes

Exactly. More precisely I set it to a negative number (-1.0) to be sure to always trigger this behavior.~
EDIT: I misread your proposal. What I did is setting the max storage ratio to a negative value:

diff --git a/src/capacity/rate_limit.rs b/src/capacity/rate_limit.rs
index 04d930740..435d5b87c 100644
--- a/src/capacity/rate_limit.rs
+++ b/src/capacity/rate_limit.rs
@@ -12,7 +12,7 @@ use sn_data_types::{Money, PublicKey};
 
 const MAX_CHUNK_SIZE: u64 = 1_000_000;
 const MAX_SUPPLY: u64 = u32::MAX as u64 * 1_000_000_000_u64;
-const MAX_NETWORK_STORAGE_RATIO: f64 = 0.5;
+const MAX_NETWORK_STORAGE_RATIO: f64 = -1.0;
 
 /// Calculation of rate limit for writes.
 pub struct RateLimit {

Additionally I did this:

diff --git a/src/node/node_duties/network_events.rs b/src/node/node_duties/network_events.rs
index b15ef29d1..3db9d75a3 100644
--- a/src/node/node_duties/network_events.rs
+++ b/src/node/node_duties/network_events.rs
@@ -91,7 +91,7 @@ impl NetworkEvents {
                     .into();
 
                     // Switch joins_allowed off a new adult joining.
-                    let second: NodeOperation = SwitchNodeJoin(false).into();
+                    let second: NodeOperation = SwitchNodeJoin(true).into();
                     Ok(vec![first, second].into())
                 } else {
                     trace!("New node has just joined the network and is a fresh node.",);

In MemberJoined routing event.

3 Likes

Maybe in the future iterations we should have two kinds of testnets, Bones and Meat:

  • Bones would be with very small storage per node and help to find out just how the structural evolution of the network etc. goes.

  • Meat would be with large / normal sized vaults and help to see how the contect flows in and out.

Looks good… just works for me… I was trying to upload some random files to push over the 50MB limit attempting to trigger memory issue but in error spawned 1GB files instead… and it’s just working away putting them… still working but I’m expecting it will complete.

What I haven’t done as above is seen safe join add another node.

So, wonder at this:

looks perhaps like hacking at config or code that’s beyond me to guess at.

vdash as above is useful to watch the node size increase.

The try it and see is simple:

curl -so- https://sn-api.s3.amazonaws.com/install.sh | bash
safe auth install
safe node install

# or is already installed then:
safe auth update
safe node update
safe node run-baby-fleming
safe auth start
safe auth create --test-coins

safe auth unlock --self-auth

## ready to put files.

## stop with
safe node killall
safe auth stop
5 Likes

Note that I never do that, and I always compile from source.

Not every one can do this and very often the repos are not in a stable state, but its a general safety rule that I impose to myself.

2 Likes

You trust the source but not the install from the same author?
Compile and validate is a useful tactic for checking real world binaries are not tampered with but this is testnet. Unless you have an odd bespoke system that needs compile, it just strikes as extra work… I take it if it works that the compile is not a factor in testing.
Also, the point above is just to illustrate how simple it is… we need as many people prodding it as possible.

1 Like

There is a long unknown path from Maidsafe source files to the downloaded binaries. This path transits on docker containers, Github servers and AWS servers I cannot control.

I agree with this. But the complex way is my personal choice.

Sure… if you’re doing that, I wonder if it’s possible and useful to confirm the sha256 on the release pages of github like https://github.com/maidsafe/sn_api/releases/tag/v0.17.0
though those are suggested as .zip and .tar.gz - I don’t know if a compression necessarily does create the same signature from sha256 or if that’s just to validate the download.

1 Like

So, I wonder the timeline is less useful … wishing that was a tail of the errors that it seems to have counted.

One of the nodes then showing as having counted three errors… so, curious, I grep for errors but cannot see what those three errors were. What I do see is a 1000 “Error Data(DataExists)” … but I don’t know if that’s just a noting that some duplicate was being put and that counts as an error.
So, this gives no result… unclear then what vdash is counting as errors then… I’ve not studied the log to know if there’s more variety…

$ grep 'Error' ./sn_node.log | grep -v 'CmdError' | grep -v 'DataExists'

but just double checking grep and case, I found one “error” = Logic error “Currently not an Elder” :man_shrugging:

$ grep 'error' ./sn_node.log | grep -v 'CmdError' | grep -v 'DataExists'
[sn_node] INFO 2020-12-29T18:42:53.258360056+00:00 [src/node/mod.rs:229] unimplemented: Handle errors.. Logic error "Currently not an Elder"
1 Like

Try grep ERROR. It is logging error logs rather than a word in the message part of the log.

Glad you’re poking aground with vdash. It’s very raw at the moment but if you can keep a list of ideas, issues and suggestions that would be helpful.

I’m not sure what will be the most useful now, will also be the most useful once the network is live.

It could also do with a new name folks!

1 Like

Some nodes show no errors.
Some though have many instances of WriteError(ConnectionClosed(TimedOut))

[sn_node] ERROR 2020-12-29T23:31:57.463320378+00:00 [src/node/elder_duties/key_section/client/client_msg_handling.rs:209] There was an error sending client message on the stream:  WriteError(ConnectionClosed(TimedOut))

I shall sleep and see if it’s completed tomorrow regardless of those… though the 3.3GB I threw at it might prove too much.

1 Like

I don’t know the cost to implement it and it would be useful.

But AFAIK none of these commands verify the sha256 checksum:

curl -so- https://sn-api.s3.amazonaws.com/install.sh | bash
safe auth install
safe node install

# or is already installed then:
safe auth update
safe node update

Note that these commands download the compressed assets.

This is an error I get occasionally on unlocking a previously created safe and trying to upload a folder. Anyone else seen it?

Safe unlocked successfully
Authorising CLI application...
Waiting for authorising response from authd...
Safe CLI app was successfully authorised
Credentials were stored in /home/user/.safe/cli/credentials

[user@user]$ safe files put ./to-upload/ --recursive
[2020-12-29T23:48:50Z ERROR sn_client::client::transfer_actor] Error receiving SignatureShare: 
Unexpected: CmdError received: 
Transfer(TransferValidation(Unexpected("Logic error \"Key does not exist among locks.\""))) - 
ClientError::Unexpected::{"CmdError received:
Transfer(TransferValidation(Unexpected(\"Logic error \\\"Key does not exist among locks.\\\"\")))"}

I believe this would require deterministic builds (as mav was investigating on the dev forum)

3 Likes

Many Happy Returns. I think ‘May 2021’ is a hint… :shushing_face: :face_with_hand_over_mouth:

4 Likes

Just tinkering with a new unencrypted drive that is then necessarily much faster.

I can’t see that node join is working and safe networks and safe networks check doesn’t seem to show detail of “my-network” and the config file isn’t there for a simple fix for something close to

'my-network' network connection information from '~/.config/sn_cli/networks/my-network_node_connection_info.config'

So, stuck getting more than the default 11.

@happybeing I’ve only just spotted there is a [Node Log] element on vdash at the bottom as that is not apparent without the terminal being maximized… I wonder some toggle for turning off the Timeline stated to the right of [Timeline - 1 second columns][hide with T] would help trip people into seeing it… Node Log is most interesting to see. :thinking:

4 Likes

Just linking to this problem here. I have not really worked at this again yet but think I could move forward if I knew

  • where to edit *node_connection_info.config

  • how to actually use the -endpoint option. If not provided, https://localhost:33000 is assumed

Could some kind person please paste the commands used to set up a auth daemon on one LAN machine and then connect to that process from another machine on the LAN?
Cos mostly I get

➜  ~ safe auth --endpoint https://mir.wiraintld:33000 status
Sending request to authd to obtain a status report...
[2021-01-03T20:25:59Z ERROR safe] sn_cli error: [Error] AuthdClientError - Failed to establish connection with authd: [Error] ClientError - Failed to establish connection with remote QUIC endpoint: the cryptographic handshake failed: invalid certificate: UnknownIssuer

➜ ~

If I try to use a IP rather than a FQDN then I get

➜  ~ safe auth --endpoint https://192.168.100.6:33000 status
Sending request to authd to obtain a status report...
[2021-01-03T19:47:47Z ERROR safe] sn_cli error: [Error] AuthdClientError - Failed to establish connection with authd: [Error] ClientError - Failed when attempting to create a connection with remote QUIC endpoint: invalid DNS name: 192.168.100.6

I see this when tailing the sn_authd.log from mir.wiraintld (192.168.100.6)

INFO 2021-01-03T20:25:05.759122309+00:00 [sn_authd/operations.rs:144] Running authd instance from executable at "/home/willie/.safe/authd/sn_authd"
INFO 2021-01-03T20:25:05.759178741+00:00 [sn_authd/operations.rs:150] authd instance starting (PID: 17562)...
INFO 2021-01-03T20:25:05.759269325+00:00 [sn_authd/operations.rs:178] Initialising SAFE Authenticator services...
INFO 2021-01-03T20:25:05.759813946+00:00 [sn_authd/authd.rs:84] Listening on 192.168.100.6:33000
INFO 2021-01-03T20:25:59.092502673+00:00 [/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/quinn-0.6.1/src/connection.rs:228] drive; id=0
INFO 2021-01-03T20:25:59.092763739+00:00 [/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/quinn-0.6.1/src/connection.rs:228] drive; id=0
INFO 2021-01-03T20:25:59.096415035+00:00 [/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/quinn-0.6.1/src/connection.rs:228] drive; id=0
4 Likes

sn_authd has a --listen parameter that is supposed to specify the address the daemon listens to.

But I get the same error as yours, even locally.

SNAUTHD defined on my eth0 address:

ubuntu@V0:~$ grep SNAUTHD /etc/hosts
172.30.64.173 SNAUTHD

ubuntu@V0:~$ ping SNAUTHD
PING SNAUTHD (172.30.64.173) 56(84) bytes of data.
64 bytes from SNAUTHD (172.30.64.173): icmp_seq=1 ttl=64 time=0.018 ms
64 bytes from SNAUTHD (172.30.64.173): icmp_seq=2 ttl=64 time=0.039 ms
64 bytes from SNAUTHD (172.30.64.173): icmp_seq=3 ttl=64 time=0.040 ms
^C
--- SNAUTHD ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2050ms
rtt min/avg/max/mdev = 0.018/0.032/0.040/0.010 ms

Launch sn_authd and try to connect safe to it:

ubuntu@V0:~$ ./sn_authd start --listen htpps://SNAUTHD:33000
Starting SAFE Authenticator daemon (sn_authd)...
sn_authd started (PID: 10074)

ubuntu@V0:~$ ./safe auth status --endpoint https://SNAUTHD:33000
Sending request to authd to obtain a status report...
[2021-01-03T22:05:50Z ERROR safe] sn_cli error: [Error] AuthdClientError - Failed to establish connection with authd: [Error] ClientError - Failed to establish connection with remote QUIC endpoint: the cryptographic handshake failed: invalid certificate: CertNotValidForName

sn_authd log is also similar to yours:

INFO 2021-01-03T23:05:39.414947150+01:00 [sn_authd/operations.rs:144] Running authd instance from executable at "/home/ubuntu/sn_authd"
INFO 2021-01-03T23:05:39.414975050+01:00 [sn_authd/operations.rs:150] authd instance starting (PID: 10074)...
INFO 2021-01-03T23:05:39.415024650+01:00 [sn_authd/operations.rs:178] Initialising SAFE Authenticator services...
INFO 2021-01-03T23:05:39.415468046+01:00 [sn_authd/authd.rs:84] Listening on 172.30.64.173:33000
INFO 2021-01-03T23:05:50.967147197+01:00 [/home/ubuntu0/.cargo/registry/src/github.com-1ecc6299db9ec823/quinn-0.6.1/src/connection.rs:228] drive; id=0
INFO 2021-01-03T23:05:50.967210096+01:00 [/home/ubuntu0/.cargo/registry/src/github.com-1ecc6299db9ec823/quinn-0.6.1/src/connection.rs:228] drive; id=0
INFO 2021-01-03T23:05:50.967573893+01:00 [/home/ubuntu0/.cargo/registry/src/github.com-1ecc6299db9ec823/quinn-0.6.1/src/connection.rs:228] drive; id=0
2 Likes

Thats what I get for not reading the source…

@bochaco Should this not be in --help?

sn_authd 0.0.13
bochaco <gabrielviganotti@gmail.com>
SAFE Authenticator daemon subcommands

USAGE:
    sn_authd <SUBCOMMAND>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

SUBCOMMANDS:
    help       Prints this message or the help of the given subcommand(s)
    restart    Restart a running sn_authd
    start      Start the sn_authd daemon
    stop       Stop a running sn_authd
    update     Update the application to the latest available version
1 Like