Open yourheropaul opened 6 years ago
going to do some poc
The first part of this (the binary updating itself) is working. I'm moving this to the next milestone for the other parts.
@yourheropaul
Can we just RUN an update
on docker start?
@jmatosp: That's a good first step, but it would be idea if the binary could (optionally) auto-update itself while running and then exit, and the docker image could restart it. Then we'd have truly automated live updates for those who want them.
Now that we have cross-compiled, versional releases of the client based on GitHub releases, it seems like we're pretty close to being able to automatically update the client when a new version becomes available.
There is a solid Go package for accomplishing the actual binary replacement based on GH releases, which is compatible with the pattern we're using. There's also https://github.com/jpillora/overseer.
Behaviour
Since there are (or will be) two recommended ways of running the client - as a native binary and via docker - there are to general flavours to auto-updating:
Native binary:
Docker image:
Restrictions
Legal
For legal reasons, we cannot administer the network. That means:
Network config
We will run multiple networks (live net, master testnet, internal testnet) which also need to automatically update. That means clients must be able to pick the appropriate binaries -- not just the latest ones.
Other possible implications