Thank you @dirvine for such a prompt input on the question!
Yes it gives some ideas.
So, for others the distributed computing might be some whole other thing than the smart contracts (and I absolutely see how so), but to me they would both (potentially) be capable of solving my biggest need when developing for SAFE net: where to run the objective decision taking parts of the backend code. I did read some about kSnarkz but my math is not at the level that it permits me to readily grasp it. And besides, it seems to not be at the doorstep.
So, that lead me into the thoughts about taking some sort of short cut to enabling “backend code” running. (I guess the very notion of backend needs to be reshaped a bit with regards to this. Client side code is still client side code. Traditional backend would be, distributed code? Distributed execution of… code? Distributed/client side might do, but Network Agreed Logic, that was a good one @dirvine . NAL.)
Anyway, this NAL (network agreed logic), implemented in the app layer, I was just very naïvely imagining it as perhaps:
(and bare with my very basic understanding of SAFE net, and the resulting misunderstandings of limitations, possibilities, and reasonable approaches)
A NAL-app (the agent that @Traktion talks of?) that runs on any client that chooses to run it, will tap into repositories of code that has been submitted by app builders. So it will have a directory of datamaps, where each datamap is keeping track of all the files pertinent to the source code of a specific app.
When a node has this NAL-app (agent) enabled, it opens up for seemingly random requests from other nodes’ NAL-apps, to take some input, and run it with some part of code, and return the result. Like, run: app x, file y, with input p.
So, when some code is supposed to run, any interface for letting a user interact with it, would communicate with the local NAL-app, (which would in effect constitute this ui’s “backend”), the local NAL-app would communicate with a chosen set of nodes on the network and request the execution of some code with some data input, and by consensus choose the agreed outcome of the operation. This would be fed into subsequent code execution or stored as state in the network.
And… here comes multisig that you mentioned @dirvine. Somewhere there it would be used.
So, I am thinking here of groups, xor distance etc. would determine which nodes would be responsible for running which code. But, a very popular app would need to partition the workload not based on code file but on something else, because it would bottleneck otherwise.
Am I thinking totally wrong about this? With poor understanding, ideas you come up with tend to be really clumsy and awkward, I know that by experience