Project Decorum - Live Proof of Concept

Can you try re-selecting your publicID in the drop down?

I’ll look into this part of the code, see if I can find anything.

You’re right, sorry :slight_smile: I thought I had that same problem before but it was something else.

Interesting, you are using DNS’ services to emulate SDs. The long name is a SHA1 which in SD terms would be the SD key. And it points to a folder that contains a standardized file in which contents emulates the “SD” contents. Clever :wink:

3 Likes

I have three IDs: bluebird, mysite and saferoad. The latter two I had created using the SAFE DNS. I tried switching back and forth between them, in the forum dropdown menu (and reloading the page), and the only one in which I could add a comment was saferoad.

I’m guessing that most people haven’t played with the DNS function, if that is the problem.

[EDIT] In the launcher, as usual, I login as bluebird, since I have no credentials for the others two.

Probably, yeah. Is ‘saferoad’ at the top of the list?

Bluebird is at the top of the list, and is what I see displayed when I go to the forum. But when I switch to saferoad, then it is displayed, and I can add comments.

1 Like

Are we talking about 0.4.1 here (as a working launcher for this demo)?

I’m getting the same problems @nice was describing (OSX/Chrome of FF) using 0.4.1 :frowning:

Yes, 0.4.1 should work.

That’s really odd. Could you paste the exact errors you get in the console here?

Huh. So I redownlaoded the 0.4.1 for PSX and it goes now.

Still getting errors, but things are functional. No difference than that… Two different dls of 0.4.1, the one this morning works.

ACH WELL. Thanks and sorry for the false flags!

FYI, i’m still seeing errors in the console, but things are functional now! (woo!)

GET http://projectdecorum.safenet/favicon.ico 400 (Bad Request)
api.safenet/nfs/directory:1 POST http://api.safenet/nfs/directory 400 (Bad Request)
api.safenet/nfs/directory:1 POST http://api.safenet/nfs/directory 400 (Bad Request)
SAFE.js:302 GET http://api.safenet/dns/decorum/2fa005cbcdbd99a5357d84b1d2fe897b2f5db2982422…f805f167280ab191042095626c7c88185bc1c64b7bca012a474ed8e83f237709c6/%2Fdata 400 (Bad Request)getServiceFile @ SAFE.js:302prependPost @ category.htm?id=project decorum:277getNextTopic @ category.htm?id=project decorum:195(anonymous function) @ category.htm?id=project decorum:293req.onreadystatechange @ SAFE.js:318
SAFE.js:302 GET http://api.safenet/dns/decorum/3107cb801af53a03c06e7eb3b925a516400a61d6dae0…995ee7bd5e46f49c740596ba8614e95b269b88625d911176e0e8b536b8c142450d/%2Fdata 400 (Bad Request)getServiceFile @ SAFE.js:302prependPost @ category.htm?id=project decorum:277getNextTopic @ category.htm?id=project decorum:195(anonymous function) @ category.htm?id=project decorum:293req.onreadystatechange @ SAFE.js:318
1 Like

Yes, the software checks for potential replies, and when they’re not found, it spouts the error because the launcher returns that. It’s working as intended though.

1 Like

Whenever I try to post a reply on the forum, I get an error
InvalidCharacterError: String contains an invalid character
on line 347 of topic.htm

The line is
var privateKey = new Uint8Array(atob(JSON.parse(resp).privateKey).split("").map(function(c) {return c.charCodeAt(0); }));

Interesting error, I think you got unlucky with generation of your public ID’s private key, which seems to contain a special character.

I will change this at the next network wipe, because if I’d do it right now it will create a mess with existing content identity validation. I’ll see if I can soon add an option generate a new public/private key pair for a public ID, that should fix it for you. In the meantime, you could register a new public ID if you don’t mind (probably easiest to create a new SAFE login).

2 Likes

weirdly enough, I now am using 0.4.1 launcher, and I can browse and read all the various posts, categories, but it won’t let me reply or create anything.

I just hit “reply”, and nothing happens. “cancel” works, though.

Not sure how to link you with logs, the launcher is vomiting a lot of :

FfiError::DnsError → DnsError::CoreError → CoreError::GetFailure::{Structured(869c…, 5)}

D 12:30:31.186234 ??? [safe_core:…_core/src/nfs/helper/directory_helper.rs:230] Creating root configuration directory …
D 12:30:31.186480 ??? [safe_core:…/safe_core/src/dns/dns_operations/mod.rs:312] Retrieving structured data from network for “0da07f47b69eb233e62c752e4a9c7c0f0fcfe16328cb8b4b784b491ba80b9718acc389733fe4394af4cf870a82e49e33295c2d817b1aff1fb95c00e93a2bf37a” dns …
T 12:30:31.472359 Client thread [routing:…c128001ac3a9a/routing-0.11.1/src/core.rs:1015] Got response GetFailure { MessageId(737c…), RequestMessage { src: Client { client_name: 1d81…, proxy_node_name: 6fd0…, peer_id: PeerId(96c8…) }, dst: NaeManager(name: d409…), content: Get(Structured(5160…, 5), MessageId(737c…)) }, … } from NaeManager(name: d409…) to Client { client_name: 1d81…, proxy_node_name: 6fd0…, peer_id: PeerId(96c8…) }.
E 12:30:31.472591 ??? [safe_ffi:src/lib.rs:378]

it seems to repeat this quickly and without an end

The browser logs are more useful to me. CTRL+SHIFT+K for Firefox, CTRL+SHIFT+J for Chrome.

1 Like

aha ! interesting, I get the same as Onaka :

InvalidCharacterError: String contains an invalid character topic.htm:347:0

I had to make a couple new accounts before I found one that worked.
I think I may have set an already used public ID in one of the accounts, I don’t think decorum checks against its existence before creating it, which is kinda bad, but understandable for a quick proof of concept.

This is unrelated to where this topic has gone, but related to OP overall.

I’ve realized something while playing with all of this stuff, writing a few sample apps of my own and generally just learning about how to deal with this whole decentralized system and loving it. However I don’t know how well actual JS in the browser from a site is going to go over with our initial target audience. Even I, who am only moderately security conscious am wondering "How do I know he wont change this code to snag all my identities (some I want private) and offload them to his own files for logging / comparing. / analysis. You could change the code on the site do so something like that and unless we analyse the code every time, we’d never know.

All of this to say, I think developing “apps” (instead of websites where the code is downloaded each time and can change) that we can view the code, verify it, and know that yes, this is the code I’m running and it hasn’t changed would be the way to go. Websites under solo control are not so much.

Granted, those that really want to be secure can download the code and run a local copy of it I guess. I don’t know. The whole line of thinking took me down a pretty crazy “what if?” rabbit hole.

That’s the reason for deterministic builds: How do you know the code you’re running is, or is compiled from, the source code offered under the GPL? Answer: You have other people(1) who have done the necessary cross-checks to confidently state that it is the same.

(1) If you don’t want to do it yourself.

edited for clarity. (20 20 20)

In addition to what @bluebird said

SAFE APPs has one advantage over websites on the old net.

  • you keep the pointer (datamap) of the APP you know to be good. You always run that APP
  • Even if the SAFE-Site where the APP can be found, or APP store is hijacked, you still have the pointer (datamap) and you run that (version of) APP every time. You have no need to seek out the APP every time you run it, you use the pointer (datamap) you already have
  • Even if the developer changes his/her APP you still have the pointer (datamap) to the version you have been running.
  • Only after enough knowledgeable people have confirmed the new APP is “clean” do you update your pointer (datamap) and use the new version

Basically you just keep using the version that you are comfortable with. Too many websites/applications on the current web update for the worse.

EDIT: And unlike the old web server-client model, your information never leaves your computer unless either you send it or an APP sends it. So if the current version of the APP you use does not send sensitive info then the APP developer (or NSA or …) cannot change anything to start getting it if you keep using the version of the APP that desn’t send it.

Of course if the APP already send sensitive info then like the old WEB it can be farmed at any time.

3 Likes