Skip to content

Commit

Permalink
Merge pull request #88 from EpicsDAO/restart
Browse files Browse the repository at this point in the history
update version 1.18.4(testnet), 1.17.4(mainnet)
  • Loading branch information
POPPIN-FUMI authored Mar 4, 2024
2 parents 1b9a365 + 79f140b commit caa300a
Show file tree
Hide file tree
Showing 15 changed files with 117 additions and 67 deletions.
30 changes: 30 additions & 0 deletions .changeset/cold-cheetahs-perform.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
'@epics-dao/solv': patch
---

## Solana Validator Standard Update for 1.18.4(testnet), 1.17.4(mainnet)

Update solv

```
solv update
```

Check if solv version is updated

```
solv -V
3.3.2
```

Update solana and restart the node

```
solv update -b
```

You can monitor the progress of the update by running the following command

```
solv get monitor
```
2 changes: 1 addition & 1 deletion .github/workflows/solv-cli-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:
cache: 'pnpm'

- name: Install dependencies
run: pnpm solv install --frozen-lockfile
run: pnpm install

- name: Build and Add Line
run: pnpm build
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
"npm": "please_use_pnpm_instead",
"node": ">=20"
},
"packageManager": "[email protected].3",
"packageManager": "[email protected].4",
"scripts": {
"ci:version": "changeset version",
"ci:publish": "changeset publish",
Expand Down
1 change: 1 addition & 0 deletions packages/solv/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
"version": "3.3.1",
"description": "Solana Validator CLI SOLV",
"main": "dist/index.js",
"module": "dist/index.js",
"repository": "https://github.com/EpicsDAO/solv",
"keywords": [
"solana",
Expand Down
1 change: 0 additions & 1 deletion packages/solv/src/cli/restart/createSnapshot.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { MT_PATHS } from '@/config/config'
import { ConfigParams } from '@/lib/readOrCreateDefaultConfig'
import { spawnSync } from 'child_process'

Expand Down
22 changes: 5 additions & 17 deletions packages/solv/src/cli/restart/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ import { program } from '@/index'
import { ConfigParams } from '@/lib/readOrCreateDefaultConfig'
import { restartFetch } from './restartFetch'
import { restartSolv } from './restartSolv'
import inquirer from 'inquirer'
import { createSnapshot } from './createSnapshot'

type RestartOptions = {
snapshot: boolean
Expand All @@ -17,23 +15,13 @@ export const restartCommand = (solvConfig: ConfigParams) => {
.option('--snapshot', 'Restart Solana Validator with fetch snapshot', false)
.action(async (options: RestartOptions) => {
try {
const answer = await inquirer.prompt([
{
type: 'confirm',
name: 'confirm',
message:
'This will overwrite start-validator.sh file and restart the validator. Are you sure?\nThis time will take some time to create a snapshot...',
default: false,
},
])
if (!answer.confirm) {
return
}
createSnapshot(solvConfig)
if (options.snapshot) {
restartFetch(solvConfig)
await restartFetch(solvConfig)
} else {
restartSolv(solvConfig)
// TODO: Uncomment this line and update the createSnapshot function when The Solana team releases the new instructions
// Comment out for the usual restart
// createSnapshot(solvConfig)
await restartSolv(solvConfig)
}
} catch (error) {
console.log(
Expand Down
15 changes: 14 additions & 1 deletion packages/solv/src/cli/restart/restartFetch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,21 @@ import { genStartupValidatorScript } from '@/cli/setup/genStartupValidatorScript
import { ConfigParams } from '@/lib/readOrCreateDefaultConfig'
import { stopSolana } from '@/cli/stop/stopSolana'
import { startSolana } from '@/cli/start/startSolana'
import inquirer from 'inquirer'

export const restartFetch = (solvConfig: ConfigParams) => {
export const restartFetch = async (solvConfig: ConfigParams) => {
const answer = await inquirer.prompt([
{
type: 'confirm',
name: 'confirm',
message:
'This will overwrite start-validator.sh file and restart the validator. Are you sure?',
default: false,
},
])
if (!answer.confirm) {
return
}
const isJitoMev =
solvConfig.config.MAINNET_TYPE === MAINNET_TYPES.JITO_MEV ? true : false
genStartupValidatorScript(false, solvConfig.config.SOLV_TYPE, isJitoMev)
Expand Down
15 changes: 14 additions & 1 deletion packages/solv/src/cli/restart/restartSolv.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,21 @@ import { ConfigParams } from '@/lib/readOrCreateDefaultConfig'
import { genStartupValidatorScript } from '@/cli/setup/genStartupValidatorScript'
import { stopSolana } from '@/cli/stop/stopSolana'
import { startSolana } from '@/cli/start/startSolana'
import inquirer from 'inquirer'

export const restartSolv = (solvConfig: ConfigParams) => {
export const restartSolv = async (solvConfig: ConfigParams) => {
const answer = await inquirer.prompt([
{
type: 'confirm',
name: 'confirm',
message:
'This will overwrite start-validator.sh file and restart the validator. Are you sure?',
default: false,
},
])
if (!answer.confirm) {
return
}
const isJitoMev =
solvConfig.config.MAINNET_TYPE === MAINNET_TYPES.JITO_MEV ? true : false
genStartupValidatorScript(true, solvConfig.config.SOLV_TYPE, isJitoMev)
Expand Down
7 changes: 3 additions & 4 deletions packages/solv/src/cli/server/checkValidator/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,8 @@ export enum CHECK_CHOICES {
}

export const checkValidatorCommands = async (solvConfig: ConfigParams) => {
const { config, locale } = solvConfig
const { locale } = solvConfig
const { cmds, installerSub } = locale
const solvTypes = config.SOLV_TYPE
const choices = installerSub[INSTALLER_CHOICES.CHECK].map((item, index) => {
return `${index + 1}${item}`
})
Expand Down Expand Up @@ -51,11 +50,11 @@ export const checkValidatorCommands = async (solvConfig: ConfigParams) => {
console.log('Stopped Solana Validator')
break
case CHECK_CHOICES.RESTART_FETCH:
restartFetch()
await restartFetch(solvConfig)
console.log('Restarted Solana Validator with fetch snapshot')
break
case CHECK_CHOICES.RESTART_NO_FETCH:
restartSolv()
await restartSolv(solvConfig)
console.log('Restarted Solana Validator without fetch snapshot')
break
case CHECK_CHOICES.RETURN_TO_INSTALLER:
Expand Down
25 changes: 12 additions & 13 deletions packages/solv/src/cli/server/updateCmd.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
import {
CONFIG,
MAINNET_TYPES,
NETWORK_TYPES,
SOLV_TYPES,
} from '@/config/config'
import { CONFIG, MAINNET_TYPES, SOLV_TYPES } from '@/config/config'
import { jitoUpdate } from '../update/jitoUpdate'
import { monitorUpdate, updateVersion } from '../update'
import { updateSolvConfig } from '@/lib/updateSolvConfig'
import { updateJitoSolvConfig } from '@/lib/updateJitoSolvConfig'
import { ConfigParams } from '@/lib/readOrCreateDefaultConfig'

export const updateCmd = async (solvConfig: ConfigParams) => {
const version =
solvConfig.config.SOLANA_NETWORK === NETWORK_TYPES.MAINNET
? CONFIG.MAINNET_SOLANA_VERSION
: CONFIG.TESTNET_SOLANA_VERSION
const isTest =
solvConfig.config.SOLV_TYPE === SOLV_TYPES.TESTNET_VALIDATOR ? true : false
const version = isTest
? CONFIG.MAINNET_SOLANA_VERSION
: CONFIG.TESTNET_SOLANA_VERSION
const deliquentStake = isTest
? CONFIG.TESTNET_DELINQUENT_STAKE
: CONFIG.MAINNET_DELINQUENT_STAKE
if (solvConfig.config.SOLANA_VERSION === version) {
console.log('Already up to date ⭐️')
return
Expand All @@ -25,22 +24,22 @@ export const updateCmd = async (solvConfig: ConfigParams) => {
SOLANA_VERSION: version,
TESTNET_SOLANA_VERSION: version,
})
monitorUpdate(CONFIG.DELINQUENT_STAKE, true)
monitorUpdate(deliquentStake, true)
return
} else {
if (solvConfig.config.MAINNET_TYPE === MAINNET_TYPES.JITO_MEV) {
jitoUpdate()
updateSolvConfig({ SOLANA_VERSION: version })
updateJitoSolvConfig({ version, tag: `v${version}-jito` })
monitorUpdate(CONFIG.DELINQUENT_STAKE, true)
monitorUpdate(deliquentStake, true)
return
}
updateVersion(version)
updateSolvConfig({
SOLANA_VERSION: version,
MAINNET_SOLANA_VERSION: version,
})
monitorUpdate(CONFIG.DELINQUENT_STAKE, true)
monitorUpdate(deliquentStake, true)
return
}
}
21 changes: 12 additions & 9 deletions packages/solv/src/cli/update/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,13 @@ export const updateCommands = (solvConfig: ConfigParams) => {
.option('-n, --node', 'Update Node Version', false)
.option('-c, --commission', 'Update Commission', false)
.action(async (options: UpdateOptions) => {
const isTest =
solvConfig.config.SOLV_TYPE === SOLV_TYPES.TESTNET_VALIDATOR
? true
: false
const deliquentStake = isTest
? CONFIG.TESTNET_DELINQUENT_STAKE
: CONFIG.MAINNET_DELINQUENT_STAKE
if (options.monitor) {
const version =
solvConfig.config.SOLV_TYPE === SOLV_TYPES.MAINNET_VALIDATOR
Expand All @@ -48,10 +55,10 @@ export const updateCommands = (solvConfig: ConfigParams) => {
updateVersion(version)
Logger.normal(
`✔️ Monitoring Update with Max Delinquent Stake ${chalk.green(
CONFIG.DELINQUENT_STAKE,
deliquentStake,
)}`,
)
monitorUpdate(CONFIG.DELINQUENT_STAKE)
monitorUpdate(deliquentStake)
} else if (options.background) {
let version = options.version
if (
Expand All @@ -62,29 +69,25 @@ export const updateCommands = (solvConfig: ConfigParams) => {
version = JITO_CONFIG.version
jitoUpdate()
updateJitoSolvConfig({ version, tag: `v${version}-jito` })
monitorUpdate(CONFIG.DELINQUENT_STAKE, true)
monitorUpdate(deliquentStake, true)
return
}
version = CONFIG.MAINNET_SOLANA_VERSION
updateVersion(version)
monitorUpdate(CONFIG.DELINQUENT_STAKE, true)
monitorUpdate(deliquentStake, true)
return
} else {
version = CONFIG.TESTNET_SOLANA_VERSION
updateVersion(version)
updateSolvConfig({ SOLANA_VERSION: version })
Logger.normal(`✔️ Update to Solana Version ${chalk.green(version)}`)
monitorUpdate(CONFIG.DELINQUENT_STAKE, true)
monitorUpdate(deliquentStake, true)
return
}
} else if (options.node) {
nodeUpdate()
} else if (options.commission) {
const ansewr = await updateCommissionAsk()
const isTest =
solvConfig.config.SOLV_TYPE === SOLV_TYPES.TESTNET_VALIDATOR
? true
: false
updateCommission(ansewr.commission, isTest)
} else {
updateSolv()
Expand Down
3 changes: 2 additions & 1 deletion packages/solv/src/cli/update/mainnetUpdate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@ export const mainnetUpdate = async () => {
const version = CONFIG.MAINNET_SOLANA_VERSION
updateSolvConfig({
MAINNET_SOLANA_VERSION: version,
MAINNET_DELINQUENT_STAKE: CONFIG.MAINNET_DELINQUENT_STAKE,
SOLANA_VERSION: version,
})
updateVersion(version)
Logger.normal(`✔️ Update to Solana Version ${chalk.green(version)}`)
monitorUpdate(CONFIG.DELINQUENT_STAKE, true)
monitorUpdate(CONFIG.MAINNET_DELINQUENT_STAKE, true)
}
12 changes: 7 additions & 5 deletions packages/solv/src/config/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ export type CONFIG_TYPE = {
TESTNET_SOLANA_VERSION: string
MAINNET_SOLANA_VERSION: string
NODE_VERSION: string
DELINQUENT_STAKE: number
TESTNET_DELINQUENT_STAKE: number
MAINNET_DELINQUENT_STAKE: number
COMMISSION: number
SOLANA_NETWORK: NETWORK_TYPES
SOLV_TYPE: SOLV_TYPES
Expand All @@ -48,11 +49,12 @@ export type PartialConfigType = Partial<CONFIG_TYPE>
export const CONFIG: CONFIG_TYPE = {
LANG: LANGS.EN,
USERNAME: 'solv',
SOLANA_VERSION: '1.18.2',
TESTNET_SOLANA_VERSION: '1.18.2',
MAINNET_SOLANA_VERSION: '1.17.22',
SOLANA_VERSION: '1.18.4',
TESTNET_SOLANA_VERSION: '1.18.4',
MAINNET_SOLANA_VERSION: '1.17.24',
NODE_VERSION: '20.10.0',
DELINQUENT_STAKE: 8,
TESTNET_DELINQUENT_STAKE: 8,
MAINNET_DELINQUENT_STAKE: 5,
COMMISSION: 7,
SOLANA_NETWORK: NETWORK_TYPES.TESTNET,
SOLV_TYPE: SOLV_TYPES.TESTNET_VALIDATOR,
Expand Down
12 changes: 12 additions & 0 deletions packages/solv/src/lib/readOrCreateDefaultConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,17 @@ export const readOrCreateDefaultConfig = () => {
)
updateSolvConfig({ LEDGER_PATH: MT_PATHS.LEDGER })
}
if (!config.MAINNET_DELINQUENT_STAKE) {
config.MAINNET_DELINQUENT_STAKE = CONFIG.MAINNET_DELINQUENT_STAKE
updateSolvConfig({
MAINNET_DELINQUENT_STAKE: CONFIG.MAINNET_DELINQUENT_STAKE,
})
}
if (!config.TESTNET_DELINQUENT_STAKE) {
config.TESTNET_DELINQUENT_STAKE = CONFIG.TESTNET_DELINQUENT_STAKE
updateSolvConfig({
TESTNET_DELINQUENT_STAKE: CONFIG.TESTNET_DELINQUENT_STAKE,
})
}
return { config, locale } as ConfigParams
}
16 changes: 3 additions & 13 deletions packages/solv/src/template/startupScripts/startRPCNodeScript.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,23 +16,13 @@ exec solana-validator \\
--entrypoint entrypoint3.mainnet-beta.solana.com:8001 \\
--entrypoint entrypoint4.mainnet-beta.solana.com:8001 \\
--entrypoint entrypoint5.mainnet-beta.solana.com:8001 \\
--known-validator 7Np41oeYqPefeNQEHSv1UDhYrehxin3NStELsSKCT4K2 \\
--known-validator GdnSyH3YtwcxFvQrVVJMm1JhTS4QVX7MFsX56uJLUfiZ \\
--known-validator DE1bawNcRJB9rVm3buyMVfr8mBEoyyu73NBovf2oXJsJ \\
--known-validator GdnSyH3YtwcxFvQrVVJMm1JhTS4QVX7MFsX56uJLUfiZ \\
--known-validator CakcnaRDHka2gXyfbEd2d3xsvkJkqsLw2akB3zsN1D2S \\
--known-validator CMPSSdrTnRQBiBGTyFpdCc3VMNuLWYWaSkE8Zh5z6gbd \\
--known-validator 6WgdYhhGE53WrZ7ywJA15hBVkw7CRbQ8yDBBTwmBtAHN \\
--known-validator Ninja1spj6n9t5hVYgF3PdnYz2PLnkt7rvaw3firmjs \\
--known-validator C1ocKDYMCm2ooWptMMnpd5VEB2Nx4UMJgRuYofysyzcA \\
--known-validator GwHH8ciFhR8vejWCqmg8FWZUCNtubPY2esALvy5tBvji \\
--known-validator PUmpKiNnSVAZ3w4KaFX6jKSjXUNHFShGkXbERo54xjb \\
--known-validator DE1bawNcRJB9rVm3buyMVfr8mBEoyyu73NBovf2oXJsJ \\
--known-validator 6WgdYhhGE53WrZ7ywJA15hBVkw7CRbQ8yDBBTwmBtAHN \\
--known-validator 7Np41oeYqPefeNQEHSv1UDhYrehxin3NStELsSKCT4K2 \\
--known-validator GdnSyH3YtwcxFvQrVVJMm1JhTS4QVX7MFsX56uJLUfiZ \\
--known-validator CakcnaRDHka2gXyfbEd2d3xsvkJkqsLw2akB3zsN1D2S \\
--known-validator 5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on \\
--known-validator 7XSY3MrYnK8vq693Rju17bbPkCN3Z7KvvfvJx4kdrsSY \\
--known-validator Ft5fbkqNa76vnsjYNwjDZUXoTWpP7VYm3mtsaQckQADN \\
--known-validator 9QxCLckBiJc783jnMvXZubK4wH86Eqqvashtrwvcsgkv \\
--expected-genesis-hash 5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d \\
--only-known-rpc \\
--full-rpc-api \\
Expand Down

0 comments on commit caa300a

Please sign in to comment.