DataDebugNet [ 28/09/23 Testnet ] [Offline]

ClientImprovementNet highlighted a few areas we’ll be looking at here.

Firstly we want to be sure if removing the attempted kad-caching has helped with data-put reliability (as described in the dev update. This is our main point to dig in on for this testnet, hopefully gaining a bit more clarity via…

The new client and node builds will all automatically be logging to disk by default now. So should any issues arise during upload etc, we’ll hopefully be able to coordinate some log exchange and get a clearer picture of what’s going on.

Downloads should also be clearer/faster when they fail (as opposed to reporting at the end of the download, which could be a paiiin for large files.).

And finally, we’re also heaptracking all nodes to try and get a read on the increasing memory we’ve been seeing in the testnets.

Network Details

Node version: 0.91.3
Client version: 0.83.4
Faucet url:

We have 101 droplets running a total of 2001 nodes. One droplet has 2vcpu and 4GB of memory.

If you are a regular user, see the ‘quickstart’ section for getting up and running.

If you are a first-time user, or would like more information, see the ‘further information’ section.


If you already have safeup, you can obtain the client and node binaries:

safeup client --version 0.83.4
safeup node --version 0.91.3

Run a Node





Check local node’s reward balance

Your local node’s peer id will be printed to the terminal on startup with an example command). (You can also retrieve this from the node directory.)

safe wallet balance --peer-id="<local-node-peer-id>"

Connect to the Network as a Client


safe wallet get-faucet
safe files upload <directory-path>


safe wallet get-faucet
safe files upload <directory-path>

To do this with non-default concurrency or batch-sizes (along with SAFE_PEERS set as above):

safe files upload -c 10 --batch-size 40 <directory-path> 

10 and 40 being the integer values you want to set for each

Further Information

You can participate in the testnet either by connecting as a client or running your own node.

Connecting as a client requires the safe client binary; running a node requires the safenode binary.

Obtaining Binaries

We have a tool named safeup which is intended to make it easy to obtain the client, node, and other utility binaries.

Installing Safeup

On Linux/macOS, run the following command in your terminal:

curl -sSL | bash

On Windows, run the following command in a Powershell session (be careful to use Powershell, not cmd.exe):

iex (Invoke-RestMethod -Uri "")

On either platform, you may need to restart your shell session for safeup to become available.

Installing Binaries

After obtaining safeup, you can install binaries like so:

safeup client # get the latest version of the client
safeup client --version 0.83.4 # get a specific version

safeup node # get the latest version of the node
safeup node --version 0.91.3 # get a specific version

safeup update # update all installed components to latest versions

When participating in our testnets, it is recommended to use a specific version. In our project we release a new version of the binaries every time we merge new code. This happens frequently, so over the lifetime of a testnet, many new releases will probably occur. So for participating in this particular testnet, you may not want the latest version.

The binaries are installed to ~/.local/bin on Linux and macOS, and on Windows they go to C:\Users\<username>\safe. Windows doesn’t really have a standard location for binaries that doesn’t require elevated privileges.

The safeup tool will modify the PATH variable on Linux/macOS, or the user Path variable on Windows. The effect of this is that the installed binaries will then become available in your shell without having to refer to them with their full paths. However, if you’re installing for the first time, you may need to start a new shell session for this change to be picked up.

Running a Node

You can participate in the testnet by running your own node. At the moment, you may not be successful if you’re running the node from your home machine. This is a situation we are working on. If you run from a cloud provider like Digital Ocean or AWS, you should be able to participate.

You can run the node process like so:

# Linux/macOS

# Windows

This will output all the logs to the filesystem, with the location of logs being platform specific:

# Linux
~/.local/share/safe/node/<peer id>/logs

# macOS
/Users/<username>/Library/Application Support/safe/node/<peer id>/logs

# Windows

If you wish, you can also provide your own path:

# Linux/macOS
SN_LOG=all safenode --log-output-dest <path>

# Windows
$env:SN_LOG = "all"; safenode --log-output-dest <path>

The advantage of using the predefined data-dir location is you can run multiple nodes on one machine without having to specify your own unique path for each node and manage that overhead yourself.

Connecting as a Client

You can use the safe client binary to connect as a client and upload or download files to/from the network.

Using the Client

You’ll first need to get some Safe Network Tokens:

safe wallet get-faucet

You can now proceed to use the client, by, e.g., uploading files:

safe files upload <directory-path>

To download that same content:

safe files download

This will download the files to the default location, which is platform specific:

# Linux

# macOS
/Users/<username>/Library/Application Support/safe/client/downloaded_files

# Windows

To download to a particular file or directory:

safe file download [directory/filename] [XORURL]



If you’ve used previous versions of the network before and you find problems when running commands, you may want to consider clearing out previous data (worthless DBCs from previous runs, old logs, old keys, etc.).

# Linux
rm -rf ~/.local/share/safe

# macOS
rm -rf ~/Library/Application\ Support/safe

# Windows
rmdir /s C:\Users\<username>\AppData\Roaming\safe

If you encounter a problem running any of our binaries on Windows, it’s possible you need the Visual C++ Redistributable installed.


:exploding_head: wow just wow another testnet :partying_face:


No rest for the wicked! I’ll see if I can bin work for the day and join up.


You guys are lightning fast…!!!

In awe…


Year of the testnets continue full stream ahead.

This is really exciting to see the rate of testing. The team is creating history here.




Yay! A new testnet is here! The wait is over! :champagne:


Compared to previous Testnet, the uploads are extremely fast.
The same 393MB file was saved in 6.57" compared to 53.29" for the previous Testnet.

The download is also faster, 3 minutes in downloading this file.

:clap: :clap: :clap:


Out for lunch think there will be no desert today when we have a new testnet to kick the wheels on.


I got this error in the middle of upload:

Cannot get store cost for NetworkAddress::ChunkAddress(f9c829(11111001).. -  - f9c829ddf5bb7272938195278d35e56bd53484dffb806e3a728cc872e0c7d144) with error CouldNotSendMoney("Network Error Not enough store cost prices returned from the network to ensure a valid fee is paid.")

Are anyone’s nodes looking ok?

I started fifty with a 5s delay between each but none have and PUTS and the log shows the repeatedly:

[2023-09-28T14:46:54.952440Z INFO sn_node::log_markers] NoNetworkActivity(27s)
[2023-09-28T14:46:54.952457Z DEBUG sn_node::api] No network activity in the past 27s, performing a random get_closest query to target: NetworkAddress::PeerId( - 002030f8ba7c3b83a2c09aaadb4b7101d5f7e012218f27703766b902720c29de8d1f)
[2023-09-28T14:46:54.952573Z WARN sn_networking] Not enough peers in the k-bucket to satisfy the request
[2023-09-28T14:46:54.952582Z WARN sn_node::api] get_closest query failed after network inactivity timeout - check your connection: Could not get enough peers (5) to satisfy the request, found 1
[2023-09-28T14:46:54.952585Z INFO sn_node::log_markers] OperationFailedAfterNetworkInactivityTimeout

Looks like I’m unable to connect.

I tried first without deleting the node directory but have started again having killed all nodes and removed the node directory.

SOLVED: I had not done unset SAFE_PEERS :man_facepalming:


Yep, working fine.


Also sending and receiving CashNotes working fine!


Attempt to upload a 3MB directory of four files failed:

Total number of chunks to be stored: 15
Transfers applied locally
   0: Transfer Error Failed to send tokens due to Network Error Could not retrieve the record after storing it: a9cd0a956f59997d71f981e0452d57798eaa13127d944a5dfcfc04cd327cd2ec..
   1: Failed to send tokens due to Network Error Could not retrieve the record after storing it: a9cd0a956f59997d71f981e0452d57798eaa13127d944a5dfcfc04cd327cd2ec.


Checked version:

 safe -V
sn_cli 0.83.4

3 of 3 attempts have failed with this error so far, both for directories large and small and a single files.

SOLVED: I think deleting the safe client directory has fixed this.


Sending big love to the person who ditched SAFE_PEERS & SN_LOG=all life changing I kid you not!


Hell yeah :sunglasses:


some are off to the races but others have nothing going on, odd as the previous couple of tests it was pretty much immediate for all.


Maybe need a few more people hammering the uploads

1 Like

Loving this one. Uploads 2-2.5x faster, downloads 2-3x faster.

Strange error where upload appeared to hang with larger batch size is now gone.