Skip to content

Golden Hash Generation

Mathew Ruberg edited this page Jun 26, 2024 · 7 revisions

Steps to generate golden hash on Windows

ⓘ All the commands below assume you are not on an airgapped machine. If you are, you must download Gradle locally and add it to your path. Then, replace ./gradlew.bat with gradle.bat in all following commands.

Grab a fresh copy of the source

Download a fresh copy of the repo from github. There are two ways to do this.

Github .zip

If it's a release, download the Source Code zip from the release

If it's a tag or branch, select the tab or branch, then hit the green "Code" button, then hit "Download ZIP"

image

Extract the source code to any location on your filesystem.

Git Clone

Do not use git clone or any other git tooling unless you are confident that your git preserves the Unix line endings. Ensure your git preserves unix line endings in the Command Prompt by typing git config --get core.autocrlf. You should see false. If you see true or input, change git config to preserve unix line endings by typing git config core.autocrlf false

ⓘ Line endings are invisible characters in all source files. When computing the hash of RCTab files in later steps, line endings must match in order to get the correct Golden Hash.

⚠️ Opening any RCTab files in a text editor or running the program can inadvertently change line endings! Do not open RCTab or any of its files before computing the golden hash.

Clear all potentially cached files

Ensure you have a clean starting point. Delete the following folders if they exist

  • ./build directory in the source folder
  • ~/.m2
  • ~/.gradle

~ stands for your user folder. For example, c:\Users\yourUserName in Windows, and /Users/username on Mac. Windows users can type echo %USERPROFILE% into the command prompt to find their user folder.

./ stands for the path that you cloned the repo or extracted the zip into.

Double-check versions

In the extracted rcv source directory, run ./gradlew.bat --version and ensure you're using the correct java and gradle version for the corresponding RCTab version.

RCTab Version Java Version Gradle version
1.3.0 17.0.2+8 7.5.1
1.3.1 17.0.2+8 7.5.1
1.3.2 17.0.2+8 7.5.1
2.0.0 20.0.1+9 8.1.1

Create the zip package

In the extracted rcv source directory, run ./gradlew.bat jlinkZip. This will create the rcv.zip file in the .\build folder. Do not open it!

Run sha-of-zip.bat

On Windows command prompt or Powershell, run:

.\.github\actions\sha-of-zip.bat .\build\rcv.zip 512

On Mac or Linux terminals, run:

./.github/actions/sha-of-zip.bat <OS> ./build/rcv.zip 512

Where <OS> is either Linux or Mac.

Confirm output

Windows v1.3.2 b6fb9f096e2740b7860d87bcb0f92c6daace0a4d51537b7c706b9b73b74f6a2207df544bc3b070eebd6e38bbc487bc842d229e638b09a024d17214e431615bfb