neo-project / neo-node

MIT License
229 stars 224 forks source link

neo-cli update system #808

Closed Jim8y closed 3 years ago

Jim8y commented 3 years ago

Currently, we need to manually download the new version neo-cli from GitHub to update the neo node, which is inconvenient and inefficient, especially when emergency fixes are released. In the meanwhile, Github only has full version binary available, this is redundant for an update while we only need those files that are changed.

Solution

  1. Create a patch release that only contains files that need to be overwritten or added every time a new version is released. That patch should contain a patch instruction file indicating how we should make that patch.
  2. Add a system update command to the neo-cli, enabling users to patch the system manually from the neo console.
  3. Provides an automatically update option, which is set to close by default, but that node will automatically update when a new version is available once opened by the node owner. (or even forced to stop consensus when a critical patch is released)
  4. (Optional hotpatch) Create a wrapper program to neo-cli to automatically reboot neo-cli when an update or a plugin installation happens.
Jim8y commented 3 years ago

Full binary package: 42MB Full binary folder after unzip: 95MB

For ordinary update: neo.dll + neo-vm.dll + neo-cli.dll Patch binary package: 300KB Patch after unzip: 1MB