I was thinking about something similar a few months back, and I think it could be doable. You'd need a CI service that creates reproducible builds, and a hosting service that can show what build artifact is currently loaded. You'd allow the public to view the state of the service. I think it could work with heroku or similar.
That gets me closer to: I trust the code, and I trust the hosting service (I.E. AWS), but I don't need to trust the person running the code as I can verify that it matches what's on GitHub.
In essence, a Turing-complete smart-contract blockchain is a deterministically-trustworthy compute-hosting service. It's one that has the disadvantage of all the overhead distributed auditability requires; but at least has the advantage (compared to centralized compute-hosting with remote-attestation) that it already exists and is usable right now for real-world use-cases.
(And you can also reduce the blockchain-y overhead by moving whatever backend business logic you can out of the "trust kernel" into untrusted regular machines, and then just having the "trust kernel" do the important stuff. CryptoKitties is a good example of this: the only thing their smart contract does is track who owns what kitty, because that's what people would try to dispute by forging transactions. The rest of the stuff is state in a regular centralized RDBMS, because it's dictated by the service, rather than by user input, and so is not under dispute.)
Everyone gets a copy of the code AND all the data/state, and can execute all instructions.
Problem is that it’s too slow/expensive to do anything useful.
But perhaps the killer app for blockchain is buried somewhere in this concept.
Please investigate ethereum name system(ENS) and Handshake name system.
This is a really hard problem with "solutions" that usually run counter to privacy and, you know, controlling the machine consuming your electricity. Remote Attestation has come a long way, but (at least on Linux) still in its infancy.
[0] https://next.redhat.com/2019/06/25/keylime-using-tpm-to-secu...
[2] https://www.youtube.com/watch?v=Qhr_aVBCZPw
[3] https://github.com/keylime/keylime
[4] https://www.ll.mit.edu/news/laboratory-staff-develop-new-cyb...
[5] https://github.com/tpm2-software
[6] https://www.intel.com/content/www/us/en/architecture-and-tec...
I do think the point stands though. They are names for the same technology. How it is used, and who uses it will determine what type of spin I'd put on it.
Monitoring the integrity of a trusted audio decoder in my system's kernel: DRM
Monitoring the integrity of an open source tool that I bought and paid for: remote attestation.
Both will come down to various arrangements of trusted computing enclaves, asymmetric cryptography and groups trying to bypass said arrangements.
You could probably get close by auto-deploying from GitHub Actions but you wouldn't get the main benefit of a service like that (having ops done in a clean way without having to think much about it).
Without having any experience in the field, aren't lambda functions supposed to provide something like that?
Ideally this would be a service with the same ergonomics but the outcome isn't a hosted static website but a machine (somewhere in the cloud) running whatever the user wants. "Tedious" tasks like hardening, monitoring and upgrading (and redeploys) would be handled by the service provider, as opposed to the user.
For people who like doing ops this might not sound appealing but developers (especially single devs and small teams) often just wanna focus on their app, not their ops, even more so when it comes to continous maintenance.
Addendum: I think Laravel has some of this covered in their ecosystem with tools like Forge and Envoyer. But I've never tried any of them so I can't judge.
Since then we've seen "serverless" or functions-as-a-service (FAAS) which is just smaller bits of code (down to a single javascript function) but the same concept of everything else being managed by the provider. This is AWS Lambda, Cloudflare Workers, Google Cloud Functions, etc.
The latest offerings now take a Dockerfile or container image that you build, which means you can run anything on any stack while the provider manages the rest. Google Cloud Run, AWS Fargate, Azure Container Instances, Fly.io, Zeit Now, etc.
Checkout codius.org
It's miles and leaps beyond what GitHub offers (different target I suppose).
You'd still have to code the linking to a wallet part, but that's definitely doable.
When you're both the developer and the consumer, you can certainly prove this to yourself (to five nines of confidence or so) by just setting up the hosting yourself. But we're talking about the case of a centralized backend for a multiuser service, e.g. a forum, where the users want to not have to trust the moral fibre of the person who set up the server, but merely trust that the infrastructure used in the hosting guarantees that it can't run anything other than the codebase (that they control.)
Different target, yet again.
1) I go on Github and configure a service
2) I make a wallet that people can donate to
3) I start up a virtual machine, aimed at the Github, using the wallet to pay for the time on the machine. The virtual machine host guarantees that the code at that Github is what's really running.
I can imagine lots of other things I want, too, but this is the bare minimum. I think it'd be really useful in a lot of scenarios.