@ily-validator/solc 5.1.1 → 5.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +7 -7
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var ii=Object.defineProperty;var r=(t,e)=>ii(t,"name",{value:e,configurable:!0});import"dotenv/config";import{Command as Ld}from"commander";var Mo="5.1.1";var Fo={name:"@ily-validator/solc",version:Mo,description:"Solana Validator CLI-Customized (Customized SOLV Client)",main:"dist/index.js",type:"module",repository:{type:"git",url:"git+https://github.com/ikaika1/solc.git"},keywords:["solana","validator","cli","validator-tool","Node.js","web3"],files:["dist"],types:"dist/index.d.ts",engines:{node:">=20"},author:"ELSOUL LABO B.V.",private:!1,license:"Apache-2.0",publishConfig:{access:"public",registry:"https://registry.npmjs.org"},bin:{solc:"./dist/index.js"},scripts:{test:"vitest",build:"tsup src/index.ts && npx tsx add-line.ts",prepublishOnly:"pnpm -s build",dev:"nodemon",start:"node dist/index.js"},dependencies:{"@jup-ag/api":"6.0.27","@metaplex-foundation/mpl-token-metadata":"3.2.1","@metaplex-foundation/umi":"0.9.2","@metaplex-foundation/umi-bundle-defaults":"0.9.2","@skeet-framework/utils":"1.3.11","@solana/spl-stake-pool":"1.1.5","@solana/spl-token":"0.4.8","@solana/web3.js":"1.95.4","bigint-buffer":"1.1.5","bn.js":"5.2.1",bs58:"6.0.0",chalk:"5.3.0","chalk-pipe":"6.1.0","cli-progress":"3.12.0","cli-spinner":"0.2.10","cli-table3":"0.6.5",commander:"12.1.0",dotenv:"16.4.5",inquirer:"10.2.0","node-fetch":"3.3.2",prompt:"1.3.0"},devDependencies:{"@changesets/changelog-github":"0.5.0","@changesets/cli":"2.27.7","@solana-developers/helpers":"^2.5.6","@swc/core":"1.7.21","@types/bn.js":"5.1.5","@types/cli-progress":"3.11.6","@types/cli-spinner":"0.2.3","@types/inquirer":"9.0.7","@types/node":"22.5.1","@types/node-fetch":"2.6.11","@types/prompt":"1.1.8","@typescript-eslint/eslint-plugin":"8.3.0","@typescript-eslint/parser":"8.3.0",eslint:"9.9.1","eslint-config-prettier":"9.1.0",nodemon:"3.1.7",prettier:"3.3.3",tsup:"8.2.4",typescript:"5.5.4",vite:"5.4.2","vite-tsconfig-paths":"5.0.1",vitest:"2.0.5"}};var ce=Fo.version;var Mt="https://validators.solutions";var le="solc4.config.json";var ft="identity.json",ht="unstaked-identity.json",Ho="relayer-keypair.json",li="mainnet-validator-keypair.json",mi="mainnet-vote-account-keypair.json",pi="mainnet-authority-keypair.json",di="testnet-validator-keypair.json",ui="testnet-vote-account-keypair.json",fi="testnet-authority-keypair.json",C="/home/solv",O=`${C}/${ft}`,bd=`${C}/${ht}`,K=`${C}/${li}`,me=`${C}/${mi}`,Ud=`${C}/${pi}`,P=`${C}/${di}`,Yo=`${C}/${ui}`,Md=`${C}/${fi}`,W=`${C}/solana-validator.log`,q=C+"/start-validator.sh",y="/mnt/ledger",Q="/mnt/accounts",jo="solana-validator",Jo="agave-validator",Bo="ELLB9W7ZCwRCV3FzWcCWoyKP6NjZJKArLyGtkqefnHcG";var pe=3,Go="https://api.testnet.solana.com",zo="https://api.mainnet-beta.solana.com",Wo="https://verify.validators.solutions/solc-migrate",qo="https://jup.validators.solutions/v1/jup",io;(function(t){t.SOL="SOL",t.USDC="USDC",t.elSOL="elSOL",t.JitoSOL="JitoSOL",t.mSOL="mSOL",t.bSOL="bSOL",t.EPCT="EPCT",t.JUP="JUP",t.BONK="BONK",t.JTO="JTO"})(io||(io={}));var Qo=Object.values(io),de="So11111111111111111111111111111111111111112",ue="EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",co="ELSoL1owwMWQ9foMsutweCsMKbTPVBD9pFqxQGidTaMC";var Xo="SOLV420",Zo={So11111111111111111111111111111111111111112:"4Vwkpk3DTVrTGnUQTazsgQ1wxtU9QwZTmAXDaQRHg9Ra",EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v:"J8sqx9ZEoPRqboFAXK3c1R38zm41tRNJgUn2FzyeYQDj",J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn:"HPj87TFMPZfm5nk1HmTH9a382RXn7h9oWftiFr3Xs12a",mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So:"8CX5tE9KvJ59HcoXwWf6tCZoRuz2JFSmunnbKC1ryaK9",bSo13r4TkiE4KumL71LsHTPpL2euBYLFx6h9HP3piy1:"782MdvLby3VfvKdfDYn9tX3DfNAtg7TcytNNFuepcoMH",CvB1ztJvpYQPvdPBePtRzjL4aQidjydtUz61NWgcgQtP:"BhR2L6J5q3xF1TxReXyHjaUh4MF6qV99tMsipzPAKeB",JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN:"212yg3Ev7khq4p1mESFGenF4nWefmkbC8f7mHM68j4vg",DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263:"61Ndjv9392jPRVGALdYgjjxGYa6TT6Gn2WLDSsmugE6U",jtojtomepa8beP8AuQc6eXt5FriJwfFMwQx2v2f9mCL:"2c9qVh8RQ6j2E2VdAEcCrRXMrd6g1vvPNZvAR6sbaGWo"};import{spawnSync as Ti}from"child_process";import{spawnSync as hi}from"node:child_process";var yi=r(t=>{hi(`sh -c "$(curl -sSfL https://release.anza.xyz/v${t}/install)"`,{shell:!0,stdio:"inherit"})},"installAgave"),Nt=yi;var tr="agave-validator",Si=r(()=>{try{return tr}catch(t){return console.error(t),tr}},"getSolanaCLI"),D=Si;var fe=r(async t=>{Nt(t)},"updateVersion"),lo=r(async(t,e=!1)=>{let o=D(),n=`${o} --ledger ${y} exit --max-delinquent-stake ${t} --monitor`;e&&(n=`${o} --ledger ${y} exit --max-delinquent-stake ${t}`),Ti(n,{shell:!0,stdio:"inherit"})},"monitorUpdate");import Fr from"chalk";var yt;(function(t){t.EN="en",t.JA="ja"})(yt||(yt={}));var er;(function(t){t[t.DOUBLE=0]="DOUBLE",t[t.SINGLE=1]="SINGLE"})(er||(er={}));var or;(function(t){t.SINGLE="single",t.DOUBLE="double"})(or||(or={}));var lt;(function(t){t.MAINNET="mainnet-beta",t.TESTNET="testnet"})(lt||(lt={}));var rr;(function(t){t.VALIDATOR="validator",t.RPC="rpc"})(rr||(rr={}));var nr;(function(t){t.SOLANA="solana",t.JITO="jito",t.AGAVE="agave",t.FIREDANCER="firedancer"})(nr||(nr={}));var sr;(function(t){t.CO_HOST_RELAYER="co-host-relayer",t.SEPARATED_RELAYER="separated-relayer",t.WITHOUT_RELAYER="without-relayer"})(sr||(sr={}));var ar;(function(t){t.FIREDANCER="firedancer",t.FRANKENDANCER="frankendancer"})(ar||(ar={}));var he;(function(t){t[t.TESTNET_VALIDATOR=0]="TESTNET_VALIDATOR",t[t.MAINNET_VALIDATOR=1]="MAINNET_VALIDATOR",t[t.RPC_NODE=2]="RPC_NODE"})(he||(he={}));var ye;(function(t){t.SOLANA_CLIENT="SolanaClient",t.JITO_MEV="JitoMev",t.FIREDANCER="Firedancer"})(ye||(ye={}));var lr=!1,mr=!0,M={ID:"solc",LANG:yt.EN,USERNAME:"solv",TESTNET_SOLANA_VERSION:"2.0.8",MAINNET_SOLANA_VERSION:"1.18.23",NODE_VERSION:"20.17.0",TESTNET_DELINQUENT_STAKE:5,MAINNET_DELINQUENT_STAKE:5,COMMISSION:5,SOLANA_NETWORK:"testnet",SOLV_TYPE:0,DISK_TYPES:1,IS_SETUP:!1,LANG_SETUP:!1,DEFAULT_VALIDATOR_VOTE_ACCOUNT_PUBKEY:"ELLB9W7ZCwRCV3FzWcCWoyKP6NjZJKArLyGtkqefnHcG",IS_CLIENT:!1,VALIDATOR_IPS:[],MAINNET_TYPE:"SolanaClient",LEDGER_PATH:"/mnt/ledger",STAKE_ACCOUNT:[],HARVEST_ACCOUNT:"",IS_MEV_MODE:!1,RPC_URL:"https://mainnet-beta.solana.com",KEYPAIR_PATH:"/home/solv/testnet-validator-keypair.json",DISCORD_WEBHOOK_URL:"",AUTO_UPDATE:!1,AUTO_RESTART:!1},b={ROOT:"/home/solv",AUTHORIZED_KEYS:"/home/solv/.ssh/authorized_keys"},R={ROOT:"/mnt",ACCOUNTS:"/mnt/accounts",LEDGER:"/mnt/ledger"},X={LOG:"solana-validator.log",STARTUP_SCRIPT:"start-validator.sh",CONFIG:"solc.config.json",JITO_CONFIG:"jito.config.json"},L={SOL_SERVICE:"/etc/systemd/system/solv.service",SOL_LOGROTATE:"/etc/logrotate.d/solana",SOL_SYSTEM_CONFIG21:"/etc/sysctl.d/21-solana-validator.conf",SOL_NOFILES_CONF:"/etc/security/limits.d/90-solana-nofiles.conf",SOL_SYSTEM_CONF:"/etc/systemd/system.conf",SOLANA_PATH:"/home/solv/.local/share/solana/install"},v={MAINNET_VALIDATOR_KEY:"mainnet-validator-keypair.json",MAINNET_VALIDATOR_VOTE_KEY:"mainnet-vote-account-keypair.json",MAINNET_VALITATOR_AUTHORITY_KEY:"mainnet-authority-keypair.json",TESTNET_VALIDATOR_KEY:"testnet-validator-keypair.json",TESTNET_VALIDATOR_VOTE_KEY:"testnet-vote-account-keypair.json",TESTNET_VALITATOR_AUTHORITY_KEY:"testnet-authority-keypair.json"},A=r((t=b.ROOT)=>{let e=t===b.ROOT?b.ROOT:t,o=`${e}/${v.MAINNET_VALIDATOR_KEY}`,n=`${e}/${v.MAINNET_VALIDATOR_VOTE_KEY}`,s=`${e}/${v.MAINNET_VALITATOR_AUTHORITY_KEY}`,a=`${e}/${v.TESTNET_VALIDATOR_KEY}`,i=`${e}/${v.TESTNET_VALIDATOR_VOTE_KEY}`,c=`${e}/${v.TESTNET_VALITATOR_AUTHORITY_KEY}`;return{mainnetValidatorKey:o,mainnetValidatorVoteKey:n,mainnetValidatorAuthorityKey:s,testnetValidatorKey:a,testnetValidatorVoteKey:i,testnetValidatorAuthorityKey:c}},"getAllKeyPaths"),mt=r((t=!0)=>{let e=t?`${b.ROOT}/${v.TESTNET_VALIDATOR_KEY}`:`${b.ROOT}/${v.MAINNET_VALIDATOR_KEY}`,o=t?`${b.ROOT}/${v.TESTNET_VALIDATOR_VOTE_KEY}`:`${b.ROOT}/${v.MAINNET_VALIDATOR_VOTE_KEY}`,n=`${b.ROOT}/${X.LOG}`,s=R.ACCOUNTS,a=R.LEDGER,i=`${b.ROOT}/${X.STARTUP_SCRIPT}`;return{identity:e,voteAccount:o,log:n,accounts:s,ledger:a,scriptPath:i}},"startupScriptPaths");var B="So1vW4Bm6ZURzJJHZy1JpsjoVY68z4cDgF4tTLwYMa5",mo="7tAfLKgRVd9eywSQPuMbVNd51KGkaveZQuTjapL74Fwv",pr="EiwSTx1Z2uJATDut682U7xzzquFR4UpQJUij3wSxVoSV",dr=9,Z="ELSoL1owwMWQ9foMsutweCsMKbTPVBD9pFqxQGidTaMC",ur="So11111111111111111111111111111111111111112",fr="EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",hr="CvB1ztJvpYQPvdPBePtRzjL4aQidjydtUz61NWgcgQtP",ir;(function(t){t[t.ELSOL=Z]="ELSOL",t[t.SOL=ur]="SOL",t[t.USDC=fr]="USDC",t[t.EPCT=hr]="EPCT"})(ir||(ir={}));var cr;(function(t){t.V6_BASE_URL="https://quote-api.jup.ag/v6",t.V6_QUOTE_URL="https://quote-api.jup.ag/v6/quote",t.V6_SWAP_URL="https://quote-api.jup.ag/v6/swap"})(cr||(cr={}));var eu={[ur]:9,[Z]:9,[fr]:6,[hr]:6},Se="/home/solv/currentEpoch.json",po=.5,Te="https://api.testnet.solana.com";import{spawnSync as uo}from"child_process";var yr=r(()=>{uo("pnpm add -g pnpm",{shell:!0,stdio:"inherit"});let t=M.NODE_VERSION;uo(`pnpm env use ${t} --global`,{shell:!0,stdio:"inherit"}),uo("pnpm add -g @ily-validator/solc",{shell:!0,stdio:"inherit"})},"updateSolv");var tt="3.0.1",et="2.3.8",Ft="3.0.1",H="2.3.8",Sr="2.3.8",St="2.3.8";var Tr="20.19.5";var gr="0.708.20306";var st={version:H,tag:`v${H}-jito`,commissionBps:700,relayerUrl:"http://amsterdam.mainnet.relayer.jito.wtf:8100",blockEngineUrl:"https://amsterdam.mainnet.block-engine.jito.wtf",shredReceiverAddr:"74.118.140.240:1002"},fo={Amsterdam:{BLOCK_ENGINE_URL:"https://amsterdam.mainnet.block-engine.jito.wtf",RELAYER_URL:"http://amsterdam.mainnet.relayer.jito.wtf:8100",SHRED_RECEIVER_ADDR:"74.118.140.240:1002"},Frankfurt:{BLOCK_ENGINE_URL:"https://frankfurt.mainnet.block-engine.jito.wtf",RELAYER_URL:"http://frankfurt.mainnet.relayer.jito.wtf:8100",SHRED_RECEIVER_ADDR:"145.40.93.84:1002"},NewYork:{BLOCK_ENGINE_URL:"https://ny.mainnet.block-engine.jito.wtf",RELAYER_URL:"http://ny.mainnet.relayer.jito.wtf:8100",SHRED_RECEIVER_ADDR:"141.98.216.96:1002"},Tokyo:{BLOCK_ENGINE_URL:"https://tokyo.mainnet.block-engine.jito.wtf",RELAYER_URL:"http://tokyo.mainnet.relayer.jito.wtf:8100",SHRED_RECEIVER_ADDR:"202.8.9.160:1002"},SaltLakeCity:{BLOCK_ENGINE_URL:"https://slc.mainnet.block-engine.jito.wtf",RELAYER_URL:"http://slc.mainnet.relayer.jito.wtf:8100",SHRED_RECEIVER_ADDR:"64.130.53.8:1002"}};import{spawnSync as gi}from"child_process";var ge=r((t=st.tag)=>{gi(`sh -c "$(curl -sSfL https://release.jito.wtf/${t}/install)"`,{shell:!0,stdio:"inherit"})},"jitoUpdate");import{readFile as Ei,writeFile as wi}from"fs/promises";import{homedir as Ai}from"os";var Ht=r(async t=>{let o=`${Ai()}/${X.JITO_CONFIG}`,s={...JSON.parse(await Ei(o,"utf8")),...t},a=JSON.stringify(s,null,2);await wi(o,a),console.log(`Updated ${o} with new values.`)},"updateJitoSolvConfig");import{spawnSync as Er}from"child_process";import _i from"inquirer";var wr=r((t,e=!0)=>{let o=e?"/home/solv/testnet-validator-keypair.json":"/home/solv/mainnet-validator-keypair.json",n=e?"/home/solv/testnet-vote-account-keypair.json":"/home/solv/mainnet-vote-account-keypair.json";Er(`solana config set --url ${e?"testnet":"mainnet-beta"} --keypair ${o}`,{shell:!0,stdio:"inherit"});let a=`solana vote-update-commission ${n} ${t} ${o} --keypair ${o}`;Er(a,{shell:!0,stdio:"inherit"})},"updateCommission"),Ar=r(async()=>await _i.prompt([{type:"number",name:"commission",message:"Enter new commission",default:7}]),"updateCommissionAsk");import{execAsync as Yt}from"@skeet-framework/utils";import Ni from"chalk";import Oi from"inquirer";var _r=r(async()=>{let t=await Oi.prompt([{name:"ip",type:"input",message:"Enter your IP address to allow access to RPC NODE:",default:"1.2.3.4"}]);await Yt("sudo ufw delete allow 8899/udp"),await Yt("sudo ufw delete allow 8899/tcp"),await Yt(`sudo ufw allow from ${t.ip} to any port 8899 proto tcp`),await Yt(`sudo ufw allow from ${t.ip} to any port 8899 proto udp`),await Yt("sudo ufw reload"),console.log(Ni.white("\u2714\uFE0F Firewall updated!"))},"updateFirewall");var ki=r(()=>Mo,"getSolvVersion"),Ot=ki;import{readFile as Ci,writeFile as Ii}from"fs/promises";import{existsAsync as Pi}from"@skeet-framework/utils";var ho;(function(t){t.EN="en",t.JA="ja"})(ho||(ho={}));var Pu=Object.values(ho),u;(function(t){t.MAINNET="mainnet-beta",t.TESTNET="testnet"})(u||(u={}));var Nr=Object.values(u),T;(function(t){t.RPC="rpc",t.VALIDATOR="validator"})(T||(T={}));var Or=Object.values(T),g;(function(t){t.SOLANA="solana",t.AGAVE="agave",t.JITO="jito",t.FRANKENDANCER="frankendancer",t.NONE="none"})(g||(g={}));var Lu=Object.values(g).filter(t=>t!=="none"),$;(function(t){t.AGAVE="agave",t.JITO="jito",t.NONE="none"})($||($={}));var kr=Object.values($).filter(t=>t!=="none"),ot;(function(t){t.SINGLE="single",t.DOUBLE="double"})(ot||(ot={}));var Ri={NETWORK:u.TESTNET,NODE_TYPE:T.RPC,VALIDATOR_TYPE:g.NONE,RPC_TYPE:$.AGAVE,MNT_DISK_TYPE:ot.SINGLE,TESTNET_SOLANA_VERSION:tt,MAINNET_SOLANA_VERSION:et,NODE_VERSION:Tr,TESTNET_DELINQUENT_STAKE:5,MAINNET_DELINQUENT_STAKE:5,COMMISSION:5,DEFAULT_VALIDATOR_VOTE_ACCOUNT_PUBKEY:Bo,STAKE_ACCOUNTS:[],HARVEST_ACCOUNT:"",IS_MEV_MODE:!1,RPC_URL:zo,KEYPAIR_PATH:"",DISCORD_WEBHOOK_URL:"",AUTO_UPDATE:!1,AUTO_RESTART:!1,IS_DUMMY:!1,API_KEY:""},at=Ri;import{homedir as Li}from"os";var xi=r(async()=>{let e=`${Li()}/${le}`;return await Pi(e)?JSON.parse(await Ci(e,"utf-8")):(console.log("Creating default config file at",e),await Ii(e,JSON.stringify(at,null,2)),at)},"readConfig"),I=xi;import Vi from"node-fetch";var x=r(async t=>{try{let e=await I();if(e.DISCORD_WEBHOOK_URL==="")throw new Error(`DISCORD_WEBHOOK_URL is empty
|
|
2
|
+
var ii=Object.defineProperty;var r=(t,e)=>ii(t,"name",{value:e,configurable:!0});import"dotenv/config";import{Command as Ld}from"commander";var Mo="5.1.3";var Fo={name:"@ily-validator/solc",version:Mo,description:"Solana Validator CLI-Customized (Customized SOLV Client)",main:"dist/index.js",type:"module",repository:{type:"git",url:"git+https://github.com/ikaika1/solc.git"},keywords:["solana","validator","cli","validator-tool","Node.js","web3"],files:["dist"],types:"dist/index.d.ts",engines:{node:">=20"},author:"ELSOUL LABO B.V.",private:!1,license:"Apache-2.0",publishConfig:{access:"public",registry:"https://registry.npmjs.org"},bin:{solc:"./dist/index.js"},scripts:{test:"vitest",build:"tsup src/index.ts && npx tsx add-line.ts",prepublishOnly:"pnpm -s build",dev:"nodemon",start:"node dist/index.js"},dependencies:{"@jup-ag/api":"6.0.27","@metaplex-foundation/mpl-token-metadata":"3.2.1","@metaplex-foundation/umi":"0.9.2","@metaplex-foundation/umi-bundle-defaults":"0.9.2","@skeet-framework/utils":"1.3.11","@solana/spl-stake-pool":"1.1.5","@solana/spl-token":"0.4.8","@solana/web3.js":"1.95.4","bigint-buffer":"1.1.5","bn.js":"5.2.1",bs58:"6.0.0",chalk:"5.3.0","chalk-pipe":"6.1.0","cli-progress":"3.12.0","cli-spinner":"0.2.10","cli-table3":"0.6.5",commander:"12.1.0",dotenv:"16.4.5",inquirer:"10.2.0","node-fetch":"3.3.2",prompt:"1.3.0"},devDependencies:{"@changesets/changelog-github":"0.5.0","@changesets/cli":"2.27.7","@solana-developers/helpers":"^2.5.6","@swc/core":"1.7.21","@types/bn.js":"5.1.5","@types/cli-progress":"3.11.6","@types/cli-spinner":"0.2.3","@types/inquirer":"9.0.7","@types/node":"22.5.1","@types/node-fetch":"2.6.11","@types/prompt":"1.1.8","@typescript-eslint/eslint-plugin":"8.3.0","@typescript-eslint/parser":"8.3.0",eslint:"9.9.1","eslint-config-prettier":"9.1.0",nodemon:"3.1.7",prettier:"3.3.3",tsup:"8.2.4",typescript:"5.5.4",vite:"5.4.2","vite-tsconfig-paths":"5.0.1",vitest:"2.0.5"}};var ce=Fo.version;var Mt="https://validators.solutions";var le="solc4.config.json";var ft="identity.json",ht="unstaked-identity.json",Ho="relayer-keypair.json",li="mainnet-validator-keypair.json",mi="mainnet-vote-account-keypair.json",pi="mainnet-authority-keypair.json",di="testnet-validator-keypair.json",ui="testnet-vote-account-keypair.json",fi="testnet-authority-keypair.json",C="/home/solv",O=`${C}/${ft}`,bd=`${C}/${ht}`,K=`${C}/${li}`,me=`${C}/${mi}`,Ud=`${C}/${pi}`,P=`${C}/${di}`,Yo=`${C}/${ui}`,Md=`${C}/${fi}`,W=`${C}/solana-validator.log`,q=C+"/start-validator.sh",y="/mnt/ledger",Q="/mnt/accounts",jo="solana-validator",Jo="agave-validator",Bo="ELLB9W7ZCwRCV3FzWcCWoyKP6NjZJKArLyGtkqefnHcG";var pe=3,Go="https://api.testnet.solana.com",zo="https://api.mainnet-beta.solana.com",Wo="https://verify.validators.solutions/solc-migrate",qo="https://jup.validators.solutions/v1/jup",io;(function(t){t.SOL="SOL",t.USDC="USDC",t.elSOL="elSOL",t.JitoSOL="JitoSOL",t.mSOL="mSOL",t.bSOL="bSOL",t.EPCT="EPCT",t.JUP="JUP",t.BONK="BONK",t.JTO="JTO"})(io||(io={}));var Qo=Object.values(io),de="So11111111111111111111111111111111111111112",ue="EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",co="ELSoL1owwMWQ9foMsutweCsMKbTPVBD9pFqxQGidTaMC";var Xo="SOLV420",Zo={So11111111111111111111111111111111111111112:"4Vwkpk3DTVrTGnUQTazsgQ1wxtU9QwZTmAXDaQRHg9Ra",EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v:"J8sqx9ZEoPRqboFAXK3c1R38zm41tRNJgUn2FzyeYQDj",J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn:"HPj87TFMPZfm5nk1HmTH9a382RXn7h9oWftiFr3Xs12a",mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So:"8CX5tE9KvJ59HcoXwWf6tCZoRuz2JFSmunnbKC1ryaK9",bSo13r4TkiE4KumL71LsHTPpL2euBYLFx6h9HP3piy1:"782MdvLby3VfvKdfDYn9tX3DfNAtg7TcytNNFuepcoMH",CvB1ztJvpYQPvdPBePtRzjL4aQidjydtUz61NWgcgQtP:"BhR2L6J5q3xF1TxReXyHjaUh4MF6qV99tMsipzPAKeB",JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN:"212yg3Ev7khq4p1mESFGenF4nWefmkbC8f7mHM68j4vg",DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263:"61Ndjv9392jPRVGALdYgjjxGYa6TT6Gn2WLDSsmugE6U",jtojtomepa8beP8AuQc6eXt5FriJwfFMwQx2v2f9mCL:"2c9qVh8RQ6j2E2VdAEcCrRXMrd6g1vvPNZvAR6sbaGWo"};import{spawnSync as Ti}from"child_process";import{spawnSync as hi}from"node:child_process";var yi=r(t=>{hi(`sh -c "$(curl -sSfL https://release.anza.xyz/v${t}/install)"`,{shell:!0,stdio:"inherit"})},"installAgave"),Nt=yi;var tr="agave-validator",Si=r(()=>{try{return tr}catch(t){return console.error(t),tr}},"getSolanaCLI"),D=Si;var fe=r(async t=>{Nt(t)},"updateVersion"),lo=r(async(t,e=!1)=>{let o=D(),n=`${o} --ledger ${y} exit --max-delinquent-stake ${t} --monitor`;e&&(n=`${o} --ledger ${y} exit --max-delinquent-stake ${t}`),Ti(n,{shell:!0,stdio:"inherit"})},"monitorUpdate");import Fr from"chalk";var yt;(function(t){t.EN="en",t.JA="ja"})(yt||(yt={}));var er;(function(t){t[t.DOUBLE=0]="DOUBLE",t[t.SINGLE=1]="SINGLE"})(er||(er={}));var or;(function(t){t.SINGLE="single",t.DOUBLE="double"})(or||(or={}));var lt;(function(t){t.MAINNET="mainnet-beta",t.TESTNET="testnet"})(lt||(lt={}));var rr;(function(t){t.VALIDATOR="validator",t.RPC="rpc"})(rr||(rr={}));var nr;(function(t){t.SOLANA="solana",t.JITO="jito",t.AGAVE="agave",t.FIREDANCER="firedancer"})(nr||(nr={}));var sr;(function(t){t.CO_HOST_RELAYER="co-host-relayer",t.SEPARATED_RELAYER="separated-relayer",t.WITHOUT_RELAYER="without-relayer"})(sr||(sr={}));var ar;(function(t){t.FIREDANCER="firedancer",t.FRANKENDANCER="frankendancer"})(ar||(ar={}));var he;(function(t){t[t.TESTNET_VALIDATOR=0]="TESTNET_VALIDATOR",t[t.MAINNET_VALIDATOR=1]="MAINNET_VALIDATOR",t[t.RPC_NODE=2]="RPC_NODE"})(he||(he={}));var ye;(function(t){t.SOLANA_CLIENT="SolanaClient",t.JITO_MEV="JitoMev",t.FIREDANCER="Firedancer"})(ye||(ye={}));var lr=!1,mr=!0,M={ID:"solc",LANG:yt.EN,USERNAME:"solv",TESTNET_SOLANA_VERSION:"2.0.8",MAINNET_SOLANA_VERSION:"1.18.23",NODE_VERSION:"20.17.0",TESTNET_DELINQUENT_STAKE:5,MAINNET_DELINQUENT_STAKE:5,COMMISSION:5,SOLANA_NETWORK:"testnet",SOLV_TYPE:0,DISK_TYPES:1,IS_SETUP:!1,LANG_SETUP:!1,DEFAULT_VALIDATOR_VOTE_ACCOUNT_PUBKEY:"ELLB9W7ZCwRCV3FzWcCWoyKP6NjZJKArLyGtkqefnHcG",IS_CLIENT:!1,VALIDATOR_IPS:[],MAINNET_TYPE:"SolanaClient",LEDGER_PATH:"/mnt/ledger",STAKE_ACCOUNT:[],HARVEST_ACCOUNT:"",IS_MEV_MODE:!1,RPC_URL:"https://mainnet-beta.solana.com",KEYPAIR_PATH:"/home/solv/testnet-validator-keypair.json",DISCORD_WEBHOOK_URL:"",AUTO_UPDATE:!1,AUTO_RESTART:!1},b={ROOT:"/home/solv",AUTHORIZED_KEYS:"/home/solv/.ssh/authorized_keys"},R={ROOT:"/mnt",ACCOUNTS:"/mnt/accounts",LEDGER:"/mnt/ledger"},X={LOG:"solana-validator.log",STARTUP_SCRIPT:"start-validator.sh",CONFIG:"solc.config.json",JITO_CONFIG:"jito.config.json"},L={SOL_SERVICE:"/etc/systemd/system/solv.service",SOL_LOGROTATE:"/etc/logrotate.d/solana",SOL_SYSTEM_CONFIG21:"/etc/sysctl.d/21-solana-validator.conf",SOL_NOFILES_CONF:"/etc/security/limits.d/90-solana-nofiles.conf",SOL_SYSTEM_CONF:"/etc/systemd/system.conf",SOLANA_PATH:"/home/solv/.local/share/solana/install"},v={MAINNET_VALIDATOR_KEY:"mainnet-validator-keypair.json",MAINNET_VALIDATOR_VOTE_KEY:"mainnet-vote-account-keypair.json",MAINNET_VALITATOR_AUTHORITY_KEY:"mainnet-authority-keypair.json",TESTNET_VALIDATOR_KEY:"testnet-validator-keypair.json",TESTNET_VALIDATOR_VOTE_KEY:"testnet-vote-account-keypair.json",TESTNET_VALITATOR_AUTHORITY_KEY:"testnet-authority-keypair.json"},A=r((t=b.ROOT)=>{let e=t===b.ROOT?b.ROOT:t,o=`${e}/${v.MAINNET_VALIDATOR_KEY}`,n=`${e}/${v.MAINNET_VALIDATOR_VOTE_KEY}`,s=`${e}/${v.MAINNET_VALITATOR_AUTHORITY_KEY}`,a=`${e}/${v.TESTNET_VALIDATOR_KEY}`,i=`${e}/${v.TESTNET_VALIDATOR_VOTE_KEY}`,c=`${e}/${v.TESTNET_VALITATOR_AUTHORITY_KEY}`;return{mainnetValidatorKey:o,mainnetValidatorVoteKey:n,mainnetValidatorAuthorityKey:s,testnetValidatorKey:a,testnetValidatorVoteKey:i,testnetValidatorAuthorityKey:c}},"getAllKeyPaths"),mt=r((t=!0)=>{let e=t?`${b.ROOT}/${v.TESTNET_VALIDATOR_KEY}`:`${b.ROOT}/${v.MAINNET_VALIDATOR_KEY}`,o=t?`${b.ROOT}/${v.TESTNET_VALIDATOR_VOTE_KEY}`:`${b.ROOT}/${v.MAINNET_VALIDATOR_VOTE_KEY}`,n=`${b.ROOT}/${X.LOG}`,s=R.ACCOUNTS,a=R.LEDGER,i=`${b.ROOT}/${X.STARTUP_SCRIPT}`;return{identity:e,voteAccount:o,log:n,accounts:s,ledger:a,scriptPath:i}},"startupScriptPaths");var B="So1vW4Bm6ZURzJJHZy1JpsjoVY68z4cDgF4tTLwYMa5",mo="7tAfLKgRVd9eywSQPuMbVNd51KGkaveZQuTjapL74Fwv",pr="EiwSTx1Z2uJATDut682U7xzzquFR4UpQJUij3wSxVoSV",dr=9,Z="ELSoL1owwMWQ9foMsutweCsMKbTPVBD9pFqxQGidTaMC",ur="So11111111111111111111111111111111111111112",fr="EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",hr="CvB1ztJvpYQPvdPBePtRzjL4aQidjydtUz61NWgcgQtP",ir;(function(t){t[t.ELSOL=Z]="ELSOL",t[t.SOL=ur]="SOL",t[t.USDC=fr]="USDC",t[t.EPCT=hr]="EPCT"})(ir||(ir={}));var cr;(function(t){t.V6_BASE_URL="https://quote-api.jup.ag/v6",t.V6_QUOTE_URL="https://quote-api.jup.ag/v6/quote",t.V6_SWAP_URL="https://quote-api.jup.ag/v6/swap"})(cr||(cr={}));var eu={[ur]:9,[Z]:9,[fr]:6,[hr]:6},Se="/home/solv/currentEpoch.json",po=.5,Te="https://api.testnet.solana.com";import{spawnSync as uo}from"child_process";var yr=r(()=>{uo("pnpm add -g pnpm",{shell:!0,stdio:"inherit"});let t=M.NODE_VERSION;uo(`pnpm env use ${t} --global`,{shell:!0,stdio:"inherit"}),uo("pnpm add -g @ily-validator/solc",{shell:!0,stdio:"inherit"})},"updateSolv");var tt="3.0.1",et="2.3.8",Ft="3.0.1",H="2.3.8",Sr="2.3.8",St="2.3.8";var Tr="20.19.5";var gr="0.708.20306";var st={version:H,tag:`v${H}-jito`,commissionBps:700,relayerUrl:"http://amsterdam.mainnet.relayer.jito.wtf:8100",blockEngineUrl:"https://amsterdam.mainnet.block-engine.jito.wtf",shredReceiverAddr:"74.118.140.240:1002"},fo={Amsterdam:{BLOCK_ENGINE_URL:"https://amsterdam.mainnet.block-engine.jito.wtf",RELAYER_URL:"http://amsterdam.mainnet.relayer.jito.wtf:8100",SHRED_RECEIVER_ADDR:"74.118.140.240:1002"},Frankfurt:{BLOCK_ENGINE_URL:"https://frankfurt.mainnet.block-engine.jito.wtf",RELAYER_URL:"http://frankfurt.mainnet.relayer.jito.wtf:8100",SHRED_RECEIVER_ADDR:"145.40.93.84:1002"},NewYork:{BLOCK_ENGINE_URL:"https://ny.mainnet.block-engine.jito.wtf",RELAYER_URL:"http://ny.mainnet.relayer.jito.wtf:8100",SHRED_RECEIVER_ADDR:"141.98.216.96:1002"},Tokyo:{BLOCK_ENGINE_URL:"https://tokyo.mainnet.block-engine.jito.wtf",RELAYER_URL:"http://tokyo.mainnet.relayer.jito.wtf:8100",SHRED_RECEIVER_ADDR:"202.8.9.160:1002"},SaltLakeCity:{BLOCK_ENGINE_URL:"https://slc.mainnet.block-engine.jito.wtf",RELAYER_URL:"http://slc.mainnet.relayer.jito.wtf:8100",SHRED_RECEIVER_ADDR:"64.130.53.8:1002"}};import{spawnSync as gi}from"child_process";var ge=r((t=st.tag)=>{gi(`sh -c "$(curl -sSfL https://release.jito.wtf/${t}/install)"`,{shell:!0,stdio:"inherit"})},"jitoUpdate");import{readFile as Ei,writeFile as wi}from"fs/promises";import{homedir as Ai}from"os";var Ht=r(async t=>{let o=`${Ai()}/${X.JITO_CONFIG}`,s={...JSON.parse(await Ei(o,"utf8")),...t},a=JSON.stringify(s,null,2);await wi(o,a),console.log(`Updated ${o} with new values.`)},"updateJitoSolvConfig");import{spawnSync as Er}from"child_process";import _i from"inquirer";var wr=r((t,e=!0)=>{let o=e?"/home/solv/testnet-validator-keypair.json":"/home/solv/mainnet-validator-keypair.json",n=e?"/home/solv/testnet-vote-account-keypair.json":"/home/solv/mainnet-vote-account-keypair.json";Er(`solana config set --url ${e?"testnet":"mainnet-beta"} --keypair ${o}`,{shell:!0,stdio:"inherit"});let a=`solana vote-update-commission ${n} ${t} ${o} --keypair ${o}`;Er(a,{shell:!0,stdio:"inherit"})},"updateCommission"),Ar=r(async()=>await _i.prompt([{type:"number",name:"commission",message:"Enter new commission",default:7}]),"updateCommissionAsk");import{execAsync as Yt}from"@skeet-framework/utils";import Ni from"chalk";import Oi from"inquirer";var _r=r(async()=>{let t=await Oi.prompt([{name:"ip",type:"input",message:"Enter your IP address to allow access to RPC NODE:",default:"1.2.3.4"}]);await Yt("sudo ufw delete allow 8899/udp"),await Yt("sudo ufw delete allow 8899/tcp"),await Yt(`sudo ufw allow from ${t.ip} to any port 8899 proto tcp`),await Yt(`sudo ufw allow from ${t.ip} to any port 8899 proto udp`),await Yt("sudo ufw reload"),console.log(Ni.white("\u2714\uFE0F Firewall updated!"))},"updateFirewall");var ki=r(()=>Mo,"getSolvVersion"),Ot=ki;import{readFile as Ci,writeFile as Ii}from"fs/promises";import{existsAsync as Pi}from"@skeet-framework/utils";var ho;(function(t){t.EN="en",t.JA="ja"})(ho||(ho={}));var Pu=Object.values(ho),u;(function(t){t.MAINNET="mainnet-beta",t.TESTNET="testnet"})(u||(u={}));var Nr=Object.values(u),T;(function(t){t.RPC="rpc",t.VALIDATOR="validator"})(T||(T={}));var Or=Object.values(T),g;(function(t){t.SOLANA="solana",t.AGAVE="agave",t.JITO="jito",t.FRANKENDANCER="frankendancer",t.NONE="none"})(g||(g={}));var Lu=Object.values(g).filter(t=>t!=="none"),$;(function(t){t.AGAVE="agave",t.JITO="jito",t.NONE="none"})($||($={}));var kr=Object.values($).filter(t=>t!=="none"),ot;(function(t){t.SINGLE="single",t.DOUBLE="double"})(ot||(ot={}));var Ri={NETWORK:u.TESTNET,NODE_TYPE:T.RPC,VALIDATOR_TYPE:g.NONE,RPC_TYPE:$.AGAVE,MNT_DISK_TYPE:ot.SINGLE,TESTNET_SOLANA_VERSION:tt,MAINNET_SOLANA_VERSION:et,NODE_VERSION:Tr,TESTNET_DELINQUENT_STAKE:5,MAINNET_DELINQUENT_STAKE:5,COMMISSION:5,DEFAULT_VALIDATOR_VOTE_ACCOUNT_PUBKEY:Bo,STAKE_ACCOUNTS:[],HARVEST_ACCOUNT:"",IS_MEV_MODE:!1,RPC_URL:zo,KEYPAIR_PATH:"",DISCORD_WEBHOOK_URL:"",AUTO_UPDATE:!1,AUTO_RESTART:!1,IS_DUMMY:!1,API_KEY:""},at=Ri;import{homedir as Li}from"os";var xi=r(async()=>{let e=`${Li()}/${le}`;return await Pi(e)?JSON.parse(await Ci(e,"utf-8")):(console.log("Creating default config file at",e),await Ii(e,JSON.stringify(at,null,2)),at)},"readConfig"),I=xi;import Vi from"node-fetch";var x=r(async t=>{try{let e=await I();if(e.DISCORD_WEBHOOK_URL==="")throw new Error(`DISCORD_WEBHOOK_URL is empty
|
|
3
3
|
Please set DISCORD_WEBHOOK_URL in .env`);let o={content:t,username:"\u{1FA84} Solc Notifier"};return(await Vi(e.DISCORD_WEBHOOK_URL,{method:"POST",body:JSON.stringify(o),headers:{"Content-Type":"application/json"}})).status===204}catch{return console.log({error:`Skeet sendDiscord Error - ${t}`}),!1}},"sendDiscord");import{spawnSync as Fi}from"child_process";import{Connection as vr}from"@solana/web3.js";var jt=r(async(t,e,o=!1,n=200)=>{let s={pubkey:e,isActive:!1,reason:""};try{let a=o?new vr("https://api.testnet.solana.com"):new vr(t,"confirmed"),i=await a.getVoteAccounts(),c=i.current.find(m=>m.votePubkey===e);if(!c)return i.delinquent.find(f=>f.votePubkey===e)?(s.isActive=!1,s.reason="Validator is delinquent.",s):(s.isActive=!1,s.reason="Validator is not found in both current and delinquent lists.",s);if(i=await a.getVoteAccounts(),c=i.current.find(m=>m.votePubkey===e),!c)return s.isActive=!1,s.reason="Validator is not found in the current list.",s;let l=c.lastVote,d=await a.getSlot()-l;return d>n?(s.isActive=!1,s.reason=`Validator has not voted for ${d} slots.`,s):(s.isActive=!0,s.reason="Validator is active and voting.",s)}catch(a){return console.error(a),s.isActive=!1,s.reason="Failed to check validator status.",s}},"isValidatorActive");import{spawnSync as $i}from"child_process";var E=r(t=>{let e=`solana address --keypair ${t}`,{stdout:o}=$i(e,{shell:!0,stdio:"pipe"});return o.toString().trim()},"getSolanaAddress");var Ki=r(t=>new Promise(e=>setTimeout(e,t)),"sleep"),rt=Ki;import{sendDiscord as Di}from"@skeet-framework/utils";var Rr=60,bi=r(async t=>{try{let e=t.NETWORK===u.TESTNET,{mainnetValidatorVoteKey:o,testnetValidatorVoteKey:n}=A(),a=E(e?n:o),i=await jt(t.RPC_URL,a,e),c=0;for(;!i.isActive;){if(c>=Rr){console.log("Max retries reached, exiting...");let l=`\u26A0\uFE0F Validator is not active for ${Rr} minutes!
|
|
4
4
|
Account: ${i.pubkey}
|
|
5
5
|
Reason: ${i.reason}
|
|
@@ -230,7 +230,7 @@ fs.nr_open = 1000000
|
|
|
230
230
|
systemctl kill -s USR1 solv.service
|
|
231
231
|
endscript
|
|
232
232
|
}
|
|
233
|
-
`},"logRotates");import{existsSync as Uc}from"fs";import{execSync as Mc}from"child_process";function yn(){if(console.log("Creating logrotate configuration for solana"),Uc(L.SOL_LOGROTATE))console.log("SOL_LOGROTATE_PATH already exists. Skipping logrotate configuration.");else{let t=hn();Mc(`echo "${t}" | sudo tee ${L.SOL_LOGROTATE} > /dev/null`),console.log("Logrotate configuration created.")}}r(yn,"setupLogrotate");var Fc="SOLANA_METRICS_CONFIG=host=https://metrics.solana.com:8086,db=mainnet-beta,u=mainnet-beta_write,p=password",Hc="SOLANA_METRICS_CONFIG=host=https://metrics.solana.com:8086,db=tds,u=testnet_write,p=c4fa841aa918bf8274e3e2a44d77568d9861b3ea",Yc=`/home/${M.USERNAME}/.local/share/solana/install/active_release/bin`,Sn=r((t=!0
|
|
233
|
+
`},"logRotates");import{existsSync as Uc}from"fs";import{execSync as Mc}from"child_process";function yn(){if(console.log("Creating logrotate configuration for solana"),Uc(L.SOL_LOGROTATE))console.log("SOL_LOGROTATE_PATH already exists. Skipping logrotate configuration.");else{let t=hn();Mc(`echo "${t}" | sudo tee ${L.SOL_LOGROTATE} > /dev/null`),console.log("Logrotate configuration created.")}}r(yn,"setupLogrotate");var Fc="SOLANA_METRICS_CONFIG=host=https://metrics.solana.com:8086,db=mainnet-beta,u=mainnet-beta_write,p=password",Hc="SOLANA_METRICS_CONFIG=host=https://metrics.solana.com:8086,db=tds,u=testnet_write,p=c4fa841aa918bf8274e3e2a44d77568d9861b3ea",Yc=`/home/${M.USERNAME}/.local/share/solana/install/active_release/bin`,Sn=r((t=!0)=>{let{scriptPath:e}=mt(t),o=t?Hc:Fc,n=Yc;return`[Unit]
|
|
234
234
|
Description=Solana Validator
|
|
235
235
|
After=network.target
|
|
236
236
|
StartLimitIntervalSec=0
|
|
@@ -242,13 +242,13 @@ RestartSec=1
|
|
|
242
242
|
LimitNOFILE=1000000
|
|
243
243
|
LogRateLimitIntervalSec=0
|
|
244
244
|
User=${M.USERNAME}
|
|
245
|
-
Environment=PATH=${
|
|
245
|
+
Environment=PATH=${n}
|
|
246
246
|
WorkingDirectory=${b.ROOT}
|
|
247
|
-
Environment="${
|
|
248
|
-
ExecStart=${
|
|
247
|
+
Environment="${o}"
|
|
248
|
+
ExecStart=${e}
|
|
249
249
|
|
|
250
250
|
[Install]
|
|
251
|
-
WantedBy=multi-user.target`},"solvService");import{execSync as jc}from"child_process";function Tn(t=!0
|
|
251
|
+
WantedBy=multi-user.target`},"solvService");import{execSync as jc}from"child_process";function Tn(t=!0){console.log("Creating solvService configuration for solana");let e=Sn(t);jc(`echo "${e}" | sudo tee ${L.SOL_SERVICE} > /dev/null`),console.log("solv.service configuration created.")}r(Tn,"setupSolvService");var gn=r((t=!0)=>{yn(),Tn(t),fn()},"makeServices");import{spawnSync as Ao}from"node:child_process";var En=r(t=>{try{Ce(t);let e=t.NETWORK;return e===u.TESTNET?(Ao(`solana config set --url ${e} -k ${P}`,{shell:!0,stdio:"inherit"}),Ao(`solana airdrop 1 --url ${e} -k ${P}`,{shell:!0,stdio:"inherit"})):Ao(`solana config set --url ${e} -k ${K}`,{shell:!0,stdio:"inherit"}),t.NODE_TYPE!==T.RPC&&ve(t),!0}catch(e){throw new Error(`setupKeys Error: ${e}`)}},"setupKeys");import{spawnSync as wn}from"node:child_process";var xe=r((t=!1)=>{try{if(t){let o=["aria2c -x16 -s16 --force-sequential=true","-d /mnt/ledger ","https://snapshots.avorio.network/testnet/snapshot.tar.bz2","https://snapshots.avorio.network/testnet/incremental-snapshot.tar.bz2"].join(" ");wn(o,{shell:!0,stdio:"inherit"});return}let e=["sudo apt-get update && sudo apt-get install -y aria2","&&","aria2c -x16 -s16 --force-sequential=true","-d /mnt/ledger","https://snapshots.avorio.network/mainnet-beta/snapshot.tar.bz2","https://snapshots.avorio.network/mainnet-beta/incremental-snapshot.tar.bz2"].join(" ");wn(e,{shell:!0,stdio:"inherit"})}catch(e){throw new Error(`getSnapshot Error: ${e}`)}},"getSnapshot");import{spawnSync as Jc}from"node:child_process";var Ve=r(t=>{let o=`sudo systemctl start ${t.VALIDATOR_TYPE===g.FRANKENDANCER?"frankendancer":"solv"}`;Jc(o,{shell:!0,stdio:"inherit"})},"startSolana");import{execSync as Bc}from"node:child_process";var Gc=r(()=>{try{Bc('echo "performance" | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor')}catch{}},"setupCpuGovernor"),An=Gc;import _o from"fs";import{promisify as Nn}from"util";import{execSync as _n}from"child_process";var zc=Nn(_o.readFile),Wc=Nn(_o.access),$e="/etc/sysctl.conf",qc=`# set default and maximum socket buffer sizes to 128MB
|
|
252
252
|
net.core.rmem_default=134217728
|
|
253
253
|
net.core.wmem_default=134217728
|
|
254
254
|
net.core.rmem_max=134217728
|
|
@@ -453,7 +453,7 @@ dynamic_port_range = "8100-8120"
|
|
|
453
453
|
[net]
|
|
454
454
|
provider = "xdp"`}),"configTomlMainnet"),be=al;var il=r(async()=>{G("git clone --recurse-submodules https://github.com/firedancer-io/firedancer.git",{shell:!0,stdio:"inherit"}),G(`git checkout v${gr}`,{shell:!0,stdio:"inherit",cwd:"/home/solv/firedancer"}),G("./deps.sh",{shell:!0,stdio:"inherit",cwd:"/home/solv/firedancer"}),G("make -j fdctl solana",{shell:!0,stdio:"inherit",cwd:"/home/solv/firedancer"}),G("sudo ln -s /home/solv/firedancer/build/native/gcc/bin/fdctl /usr/local/bin/fdctl",{shell:!0,stdio:"inherit"});let{filePath:t,body:e}=In();G(`echo "${e}" | sudo tee ${t} > /dev/null`,{shell:!0,stdio:"inherit"}),G(`sudo chmod +x ${t}`,{shell:!0,stdio:"inherit"}),G(`[ -s ${t} ] || sudo tee ${t} > /dev/null << 'EOF'
|
|
455
455
|
${e}
|
|
456
|
-
EOF`,{shell:!0,stdio:"inherit"});let o=Pn();G(`echo "${o.body}" | sudo tee ${o.filePath} > /dev/null`,{shell:!0,stdio:"inherit"}),G("sudo systemctl daemon-reload",{shell:!0});let s=(await I()).NETWORK===u.MAINNET?be():De();G(`echo "${s.body}" | sudo tee ${s.filePath} > /dev/null`,{shell:!0,stdio:"inherit"})},"setupFiredancer"),Ue=il;var xn=r(async(t=!1,e=!1)=>{try{t||(console.log(Ln.white("\u{1F7E2} Initializing Setup")),await I(),await Xr());let o=await I(),n=o.NETWORK===u.TESTNET;switch(ln(),e||dn(),gn(n
|
|
456
|
+
EOF`,{shell:!0,stdio:"inherit"});let o=Pn();G(`echo "${o.body}" | sudo tee ${o.filePath} > /dev/null`,{shell:!0,stdio:"inherit"}),G("sudo systemctl daemon-reload",{shell:!0});let s=(await I()).NETWORK===u.MAINNET?be():De();G(`echo "${s.body}" | sudo tee ${s.filePath} > /dev/null`,{shell:!0,stdio:"inherit"})},"setupFiredancer"),Ue=il;var xn=r(async(t=!1,e=!1)=>{try{t||(console.log(Ln.white("\u{1F7E2} Initializing Setup")),await I(),await Xr());let o=await I(),n=o.NETWORK===u.TESTNET;switch(ln(),e||dn(),gn(n),kn(),An(),await On(),En(o),Cn(o.IS_DUMMY,n),o.NODE_TYPE){case T.RPC:await en(o);break;case T.VALIDATOR:await sn(o),o.VALIDATOR_TYPE===g.FRANKENDANCER&&await Ue();break;default:throw new Error("Unknown Node Type")}un(),Jt(),o.VALIDATOR_TYPE!==g.FRANKENDANCER&&(vn(),xe(n)),Ve(o),console.log(Ln.white("\u{1F7E2} Setup Completed")),gt()}catch(o){throw new Error(`Setup Error: ${o.message}`)}},"setupV2");var Vn=r(t=>{let e="/etc/systemd/system/relayer.service",o=`# Example Systemd File for Co-Hosted Relayer
|
|
457
457
|
[Unit]
|
|
458
458
|
Description=Solana transaction relayer
|
|
459
459
|
Requires=network-online.target
|