Safe updown poc - A Flutter GUI

So, for those who have a network, here is my basic CLI tool…
there are many like it but this one is mine :slight_smile:




As with others, you push a button and the command is spawned to the background with &. If you close the app, it’ll still follow through, creating timestamped subfolders of ~/Downloads/SafeNetwork_Downloads with either success or the error.

It’s only expecting to work on Linux atm…
but based on flutter it has potential for any platform.

Linux download reference/safe_updown_poc.AppImage at master · davidpbrown/reference · GitHub

Andriod mobile version (frontend only) download reference/app-release.apk at master · davidpbrown/reference · GitHub

I’ve made an apk then for Android mobiles just for fun and because the design was centred on my interest in being able to make a mobile app… So, without a CLI on mobiles the apk does no thing beyond provide a nice example of what is possible!

Hopefully, the navigation should be intuative and not need a manual.
Let me know anything that is not obvious.

Enable the other features as you will; what is enabled by default should work… what is not enabled, is not what I’d like it to be yet…

If you have an idea for what is missing suggest that too… I don’t have time to do all things but its fun to try :slight_smile:

When there is another test network, I’ll take a closer look to check for differences but it should be ok…

For those more interested in how to do similar or better…

What is encouraging about technology these days, is how easy it is to spin up an idea. Before xmas I had not even heard of Flutter… so, if you have an idea, wonder that you could build an app…

The key is simple a computer with >10GB memory…
… and an idea.
… and a fair amount of copy-paste and googling … and Flutter is alive with fast solutions to every question I’ve had to make this.

search for flutter-rust-bridge and there are two good links

For presentation at least this beats my previous attempts at rust-only fltk; or Tauri+React+Rust, though Tauri was impressive for what it could do, I did get stuck with React Native dependacies mismatches… I won’t discourage those looking at Tauri, it’s likely just overcoming problems that flutter can do already and will come good. Many solutions, are better than one.

What’s the big idea?..

Beyond just being a CLI tool, there is an idea embedded in the applications element, that centres on Privacy; Security; and Freedom. In future there’s potential that apps could ping this app and become included but we all need to think about how would apps assert they will defend the users’ interests.

Certain topics will see users reasonable expect certain overlap of Privacy; Security; and Freedom. There need not be all of those all at once, and normal activity does not look to assert all of those. In our all too bipolar world, people do default to extreme perceptions and limited sense of what is possible and what is not; the environment should cater for every case but users understanding of the value and their opportunity, will only evolve over time. Apps will have a part to play in encouraging people to think differently. The Safe Network itself can only do so much.

So, I wonder:

?while Freedom might be covered off by the use of private data, where apps are allowing access to group access into that data, there is liability about the limits of Freedom. Shared data, at some point, becomes fairly the same as public data; how can users retain control over their freedom?.. choice perhaps??

?while Privacy might be covered off by the way users do not disclose their identity, it is unclear they ways that can be ensured and encouraged. Users are liable to share data that discloses their identity; how can that slippage of privacy be limited?.. should apps hold users identifiable information and there be protocols for sharing, relative to what types of activity are engaged?

?while Security might be covered off by the way assurance is provided from certain authorities and the assertions they make; how can trust be established and maintained? Will users be liable to who they trust or can they have some control over what occurs?

Obviously, there will be those who expect to push the limit on autonomy but equally users might choose to share their identity; to trust others; to limit their own freedom, whereever there is a counterpoint to those that they consider worthwhile - and in topics and activities that they do not need to do that. The underlying assertion and expectation has to be that the differences over time will encourage autonomy widely - that is, the future and individual autonomy serves many interests, least of all because it allows individuals option to react quickly to challenges.

The balance of what the applications do and what the user expects and how those differences can be checked, is interesting to think about.

The idea of absolute Privacy or Security or Freedom in certain activities, is typically not yet possible but progress should be encouraged. For example - Finance:Banking should reasonably expect Privacy but that is not possible yet… it takes a while for the normal perception to evolve… and yes, Safe DBC or SNTokens might be one instance that works to that end but there will still be other types of finance, that are not complient with that expectation.

So, the how and what applications do are listed to encouraged this thought, with topics against what users might reasonable expect and an absence then of what is likely not important on that topic… in some cases the lack of privacy; security; and freedom is inherently part of the activity.

Technology is powerful and the options are many. I’m encouraged that it’s simple to spin up ideas and play with them :slight_smile:

Let me know your thoughts and ideas to improve the app…

First one to find a bug wins a prize…


Looks nice! Also thanks for the Flutter resources, been interested in Flutter for some time now.


Do minor bugs count?

Downloads work as expected but uploads display a timeout error - even though the upload has succeeded.

What do I win?

BTW how does the Raw Xor versus Safe URL feature work?


You win first prize… more for downloading successfully as I’ve not been able to try that!

The timeout I think I set as 10secs relative to receiving some network response; on an upload perhaps that is too short if the local prep is taking a moment… larger uploads then more likely to see that… with an API likely it would be manageable. So, it’s a feature!.. but I will think on it.

Raw Xor versus Safe URL is an option to switch the target for the next upload; so, you can suggest a safe://domain and it’ll simply try to use that rather uploading to a raw xor location. In theory safe://domain.subname should work too.

There’s nothing clever tracking what assets you own already to validate that target; and it’s not repeating what the CLI will do as validation.


NRS domain creation doesn’t seem to work - not sure if it’s actually enabled yet?

1 Like

Should do… there should be a timestamped folder in ~/Downloads/SafeNetwork_Downloads/
with a log that might have captured the intent but it doesn’t log enough atm.

So, I just added an echo of the command and get for example what I would expect should work as

safe nrs register "safe://test" -l "safe://test1" > "/home/safe/Downloads/SafeNetwork_Downloads/20230212/1248_29/result" 2>> "/home/safe/Downloads/SafeNetwork_Downloads/20230212/1248_29/log" &

and a log

❰safe nrs register❱ -> new top level domain..
❰result❱ : 20230212/1248_29
topleveldomain: safe://test
islinked?: true
link: safe://test1

should be the same for not using a link too… so, good catch and not sure why it’s not working…
will check again when there’s a testnet.


Timeout was set for too many commands as 3secs!.. so, ignore the timeout message for now and expect the command issued should be completing in the background.

Just to note there’s questions still about:

  • The evolution of core functionality [auth] and [wallet] which I can’t anticipate.

  • Where the user is logged in and how that application manages their interaction with other apps.

  • The option to navigate the Safe Network: Flutter tempts Webview is available for mobiles and less simply for desktop, with a different solution then for each OS, which seems unfortunate and oddly with no fix expected any time soon. Still might be worth exploring… download and then display as webpages might be possible.


You keep us waiting! What is the first prize? :sweat_smile: