ThePriceIsRightNet [14/08/23 Testnet] [Offline]

Progress Reports


  • All maidsafe nodes alive (2001) w/ healthy mem/cpu (40-70mb)
  • Averaging ~200 records each. We have some 0 record nodes and are debugging based upon those logs. Some more ideas there.
  • Payment/verification is quite buggy. This could be clients not getting a solid enough price eg. (We’re looking at different approaches here to solve this)
  • Reuploading uses old, likely invalid/underpaying proofs. We’ll just disable reusing proofs to allow reuploads to work soon.
  • Connecting is slow, we’ve a PR that helps a good bit here and will release a new client once that’s in.
  • Store cost is being updated as expected :+1:

Original Post

When last we testnetted, we were checking that we could pay a default price for data. Now we have some rudimentary price discovery in place, nodes can report a price based upon how much relevant data they have stored, and clients will choose the lowest price that should ensure a majority of nodes will accept the data.

There’s also a few other minor tweaks in:

  • fix to data distance calculations (which may have led to data loss)
  • improvements to client (we now need only 8 nodes to connect)
  • a no verify flag has been added to the CLI if folk want to test out not verifying data storage for speed, you can do so by adding -n to your cli command.

Here though we’re testing:

  • Data storage prices are paid and validated (Verification fee: is the relevant log there.)
  • Data storage cost increases as the network fills
  • Data which has been paid for remains on the network

We have not made any attempt to id rising mem reported in the past testnet, but we’ll appreciate more data there if folk are still seeing this.

Network Details

Node version: 0.88.30
Client version: 0.80.41
Faucet url:



We have 100 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.80.41
safeup node --version 0.88.30

Run a Node


export SAFE_PEERS="/ip4/"
SN_LOG=all safenode


$env:SAFE_PEERS = "/ip4/"
$env:SN_LOG = "all"; safenode

Connect to the Network


export SAFE_PEERS="/ip4/"
safe wallet get-faucet
safe files upload <directory-path>


$env:SAFE_PEERS = "/ip4/"
safe wallet get-faucet
safe files upload <directory-path>

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 --version 0.80.41 # get a specific version
safeup node --version 0.88.30 # get a specific version

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
SN_LOG=all safenode

# Windows
$env:SN_LOG = "all"; safenode

This will output all the logs in the terminal.

Sometimes it will be preferable to output the logs to file. You can do this by running the node like so:

# Linux/macOS
SN_LOG=all safenode --log-output-dest data-dir

# Windows
$env:SN_LOG = "all"; safenode --log-output-dest data-dir

The location of data-dir is 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.

To connect, you must provide another peer, in the form of a multi address. You can find one in the ‘Network Details’ section at the top.

It is recommended to set the peer using the environment variable SAFE_PEERS. You can set this variable once and it will apply for the duration of your shell session:

# Linux/macOS
export SAFE_PEERS="/ip4/"

# Windows
$env:SAFE_PEERS = "/ip4/"

NOTE: If you close and/or start a new shell session, you will be required to redefine this environment variable in the new session.

As an alternative to the environment variable, it’s also possible to use the --peer argument:

safe --peer="/ip4/" ...

However, this requires specifying the peer with each command.

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.



Youse all owe me beer – premium Czech, Hungarian or choicest weissbier only, thanks :slight_smile:


I’ll have a Trappist, tripel please…on you!


Awwww …

knocked back for NATness at the first attempt…

[2023-08-14T14:24:40.779036Z DEBUG sn_networking::event] AutoNAT outbound probe: Error { probe_id: ProbeId(0), peer: Some(PeerId("12D3KooWSFVN2qfToXpR4qLU1EABZrhqocAZmUD92AhD1gaEiEUL")), error: Response(DialError) }
[2023-08-14T14:24:40.779073Z INFO sn_networking::event] AutoNAT status changed: Unknown -> Private
[2023-08-14T14:24:40.779098Z TRACE sn_node::api] Handling NetworkEvent: Some(NatStatusChanged(Private))
[2023-08-14T14:24:40.779115Z TRACE sn_node::api] NetworkEvent loop started
[2023-08-14T14:24:40.779124Z WARN sn_node::api] NAT status is determined to be private!
[2023-08-14T14:24:40.779255Z INFO safenode] Node is stopping in 1s...
Node is stopping in 1s... Node log path: stdout
safe files upload[2023-08-14T14:24:41.427130Z DEBUG sn_logging::metrics] {"physical_cpu_threads":12,"system_cpu_usage_percent":1.4025714,"system_total_memory_mb":33553.754,"system_memory_used_mb":5673.5293,"system_memory_usage_percent":16.90878,"process":{"cpu_usage_percent":0.0,"memory_used_mb":22.675455,"bytes_read":0,"bytes_written":0,"total_mb_read":62.391296,"total_mb_written":0.008192}}
Error: We have been determined to be behind a NAT. This means we are not reachable externally by other nodes. In the future, the network will implement relays that allow us to still join the network.

I will fire up a cloud instance and try again to join a node.
Client seems OK, Here are a couple of trivial files for test downloads

Successfully stored '' to 033efbb001188c3bf34eeb23ab8af66320dd9c881ff500948e8f4ee02aa1d1af
Storing file '' of 212 bytes (1 chunk/s)..
Successfully stored '' to 21ea8c9bd9fcad40a42756e4416bf3bb8ff708ae84e846374175a09a91e86fe7
Storing file 'Dockerfile' of 570 bytes (1 chunk/s)..
Successfully stored 'Dockerfile' to 21ed679a2579a8da93b82a24b4e345c358492d091d5e935dd9f1c6e27e43a2b3
Storing file '' of 2226 bytes (1 chunk/s)..
Successfully stored '' to 2666dd20e19f197bc42c697aef7c525fd7caf535427c506a80d5b6188ccbe1a3

And there was me thinking you were more of a Guiness or Beamish chap…


Depending on the circumstances…:wink:
Few nodes running, got my 100 creds…better sleep though, see y’all later

PS wallet no.


Just saying…


Woop! :partying_face:

Cloud node running and I’m chasing the memory leak in vdash :pray:

If anyone spots new messages in their logs about storage costs etc let me know and I’ll make a note.


Wow, -n made upload really fast (suspiciously?)

If someone wants to test download:

safe files download Rockers1978.mp4 f4eff9acb8d2aecb1692b5e41d14083c50b1bd60aea41f31898c46039a705ae1

willie@gagarin:~/projects/maidsafe/safe_network$ safe files download Rockers1978.mp4 f4eff9acb8d2aecb1692b5e41d14083c50b1bd60aea41f31898c46039a705ae1
Built with git version: aba95fb / main / aba95fb
Instantiating a SAFE client...
🔗 Connected to the Network                                                                                                                                                  Downloading file "Rockers1978.mp4" with address f4eff9acb8d2aecb1692b5e41d14083c50b1bd60aea41f31898c46039a705ae1
Did not get file "Rockers1978.mp4" from the network! Network Error Record was not found locally.

This time commands work even slower than with previous testnet.
It is common to spend 1 minute of time even without starting upload or download process. (but after wait, command executes properly)
With such speed, hundreds of ? 0/8 initial peers found. messages look out of place.
Maybe it is better to show progress messages every second or so?



Downloading file “Rockers1978.mp4” with address f4eff9acb8d2aecb1692b5e41d14083c50b1bd60aea41f31898c46039a705ae1
Did not get file “Rockers1978.mp4” from the network! Network Error Record was not found locally.


try again without the -n flag?


Got this one just fine…


I am prepared to put up with such shit - temporarily


Yeah - but thats just a single chunk IIRC


Always the same error 24 on upload…

iMac-de-Imac27:bin imac27$ safe files upload /Users/imac27/Desktop/safecloset
Built with git version: aba95fb / main / aba95fb
Instantiating a SAFE client…
:link: Connected to the Network Loaded wallet from “/Users/imac27/Library/Application Support/safe/client/wallet” with balance Token(99999998580)
Preparing (chunking) files at ‘/Users/imac27/Desktop/safecloset’…
Making payment for 4 Chunks that belong to 1 file/s.
Successfully made payment of 8 for 4 records. (At a cost per record of Token(2).)
Successfully stored wallet with cached payment proofs, and new balance 99.999998572.
Successfully paid for storage and generated the proofs. They can now be sent to the storage nodes when uploading paid chunks.
Storing file ‘safecloset’ of 1295684 bytes (4 chunk/s)…
Successfully stored ‘safecloset’ to 749590e65dcad121c0cdfe127690037826133a31e8632ee27de871800be13f2d
Writing 58 bytes to “/Users/imac27/Library/Application Support/safe/client/uploaded_files/file_names_2023-08-14_15-02-10”
Error: Too many open files (os error 24)


Edit: I made a cleanup and can upload small files but bigger files give error 24 (Error: Too many open files (os error 24))


Perhaps this will help?

Or maybe you have already been there…

1 Like


Now not error 24 but others…

Failed to store all chunks of file ‘Zoiper5_5.6.1.pkg’ to all nodes in the close group: Network Error Could not retrieve the record after storing it: 5fd565a5b9596861a9ddf753f2a0ffd997cae59a34a9b59e461bba2327a28871.
Writing 65 bytes to “/Users/imac27/Library/Application Support/safe/client/uploaded_files/file_names_2023-08-14_17-41-29”


Look on the bright side - we are now seeing SAFE errors not OS errors :slight_smile:

We can maybe do something about those errors.
Do you get similar with ALL attempted up/downloads?


Just uploaded a 392MB MKV successfully. :grinning: