Skip to content

New Release Process

WhoSoup edited this page Sep 21, 2020 · 6 revisions

Follow these steps to release a new version of factomd:

Local testing

  • Run the full test suit ./test.sh full
  • Run factomd locally with a short blocktime factomd -network=LOCAL -blktime=60. Open the dashboard and confirm blocks are advancing.

Generating Release Candidate (RC) images

  • Generate a new RC image by tagging a specific commit. The tag should have the format vX.Y.Z-rc1. Increment the RC number for every batch of fixes.
  • Images are made available on Docker Hub in this repo: https://hub.docker.com/r/factominc/factomd

Testnet testing

  • Deploy RC image on a follower and verify it follows blocks and minutes.
  • Execute factom.js API test suite against that node (basic verification of API capabilities).
  • Deploy RC image on a few authority set nodes (at least 1 audit and 1 leader). Verify they follow blocks and minutes and that the leader doesn't get demoted.
  • Apply baseline load on the network (5 EPS/s) and monitor upgraded nodes are still file.
  • Deploy RC image to 100% of the authority set. Monitor elections, ask operators to report any abnormalities.
  • Voluntarily trigger an election by turning off a leader node and monitor the election.
  • Apply baseline load on the network (5 EPS/s) and monitor elections.
  • Perform a load test against the network.

Release to mainnet

Clone this wiki locally