Skip to content

Commit

Permalink
Releasing 1.0.6 (#1102)
Browse files Browse the repository at this point in the history
* v1.2.0 (#965)

* Hotfix-logImprovements (#952)

* Set up blocknumber and epoch in logs

* updated blocknumber and epoch logger info in every command

* Hotfix-getDataFromAPI (#951)

* Changed numm of retry attempts

* removed redundant retry attempts

* corrected tests

* changed http timeout and logged time elapsed to fetch data (#954)

* Updated version (#960)

* Updated version

* updated version to v1.2.0

* version update (#972)

* Merged `v1.3.0-alpha` into `v1.0.5` (#973)

* Merged `v1` into `v1.3.0-aplha` with hotfixes (#966)

* Hotfix-proposed data (#913)

* Updated propose data global variables correctly

* Fixed tests

* Returned correct waitForBlockCompletion error

* coverage increase

* GetLocalData returns type types.ProposeFileData

* fixed benchmark

* Fetched Last proposed from contracts (#917)

* fetched getLastProposedEpoch from contracts and tests for it

* typo fix

* V1 propose hotfix (#918)

* Change propose.go to get sorted proposed block ids.
* Fix sorted proposed block issue.

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* allow stakers to addStake < minSafeRazor (#928)

* Call claimStakerReward only if there reward to claim (#926)

* Make contract call only if there is commission to claim

* Add tests for claimCommission file

* update check

* Hotfix-giveSorted (#921)

* ResetDispute only done after FinalizeDispute

* Fixed tests

* Update README (#931)

* Update README

* Update logs path

* Fix home dir path

* Add logs to vote.go and commit.go

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Add logs for dispute and propose.

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Fix tests.

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Suppress unneccessary error logs. (#935)

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* changed http timeout to 30 sec (#943)

* saving commit data only after successfull commit (#947)

* Added password flag (#946)

* added password flag

* README updated

* Hotfix-giveSorted (new implementation) (#953)

* GiveSorted linear recursion

* Added backupNode flag

* Compilation success for tests

* Fixed tests

* removed recusrsion, called giveSorted linearly

* fixed tests

* Added leafId to giveSortedLeafIds[] on successful giveSorted

* Hotfix-sortedProposedBlocks (#957)

* Shuffled copied slice instead of original slice

* returned error from giveSorted when len(sortedValues)=0

* Fixed dispute tests

* Changed pending nonce at to nonce at. (#948)

* Changed pending nonce at to nonce at.
* Update mockery

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Hotfix -RPCTimeout (#955)

* Added a generic function with timeout for contract calls

* Moved generic function to utils and implemented to all contract getter calls

* Implemented timeout for contract setter functions

* rpc timeout custom error

* type asserting structs from contract mappings

* Shifted timeout to constants

* passed timeout in int in constants.go

* Added rpcTimeout as config

* Removed errorIndex paramter from CheckIfAnyError()

* Function renamed

* Fixed tests

* Unrequired change

* Added backup node info in readme (#963)

* Passed a initialized varible instead of nil value as a parameter

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shekhar Gaur <65169767+shekhar2807@users.noreply.github.com>
Co-authored-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shyam Patel <shyampkira@gmail.com>
Co-authored-by: Raj Kharvar <rajkharvar1808@gmail.com>
Co-authored-by: Skanda Bhat <bhat.skanda.m@gmail.com>

* Updated `v1.3.0` branch to staging parameters for v1.3.0-alpha version (#967)

* Updated contract addresses and chainId to staging

* Updated razor-go version to v1.3.0-alpha

* Fixed `CheckIfAnyError()` on RPCTimeout. (#974)

* Added errorIndexInReturnedValues as a parameter in  function

* Fixed comparios of error data type from returned values

* Added a check if config key is present in yaml file before fetching value (#975)

* Added default values for config parameters

* Checked if config key is present in yaml file before fetching

* Fixed tests

* returned default values uniformly

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shekhar Gaur <65169767+shekhar2807@users.noreply.github.com>
Co-authored-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shyam Patel <shyampkira@gmail.com>
Co-authored-by: Raj Kharvar <rajkharvar1808@gmail.com>
Co-authored-by: Skanda Bhat <bhat.skanda.m@gmail.com>

* updated version to v1.0.5-alpha (#978)

* Reduced wait for block completion to 1 second (#984)

* changed tolerance flag type to uint32 (#983)

* Removed ethBalanceCheck (#982)

* Moved constant values to constants.go (#987)

* moved gasLimitMultiplier as constant in constants.go

* Moved path.go strings to constants.go

* Replaced common.Hash{0x00} with core.NilHash

* Update geth version to v1.10.25 and updated depreciated bindings (#985)

* Updated geth version

* Updated depriciated bindings

* updated go.sum to fix tests

* Replaced errors package

* Validate contract calls (Changes from v1-audit) (#981)

* Added retry mechanism for fetchBalance

* Added ETA for unlockWithdraw

* Added check of staker is slashed for stake

* Added valid ERC20 check for addresses

* Changed name from IsValidErc20Address to IsValidAddress

* Functions Refactor (#989)

* changed state name to Buffer instead of -1

* CalculateBlockNumberAtEpochBeginning cleanup

* Renamed functions in array.go

* ApproveUnstake sends StakerTokenAddress instead of StakerStruct

* Returned error from getMerkleTree()

* Returned error from getMerkleRoot()

* Removed unused functions

* Added tree is nil condition in GetMerkleRoot()

* fixed BenchmarkGenerateTreeRevealData

* Code CleanUp (Issues from v1-audit) (#990)

* Renamed getDelayedState to getBufferedState

* remove uint64 from block time

* Renamed handleRevealState to CheckForLastCommitted

* CalculateBlockNumberAtEpochBeginning renamed to EstimateBlockNumberAtEpochBeginning

* Renamed claimStakeReward to ClaimStakerReward

* Renamed GetStatesAllowed to GetFormattedStateNames

* GetSalt clean up

* changed int64 to uint64 in constants

* Used block.Time directly instead of blockTime variable

* Txn hash made consistent in logging

* remove redundant uint64 typecast from GetEpoch()

* Rename coinContract to erc20contract

* Updated mocks after renaming coinContract to erc20Contract

* Removed redundant code in logger.go

* Removed space from xhtml job result (#991)

* Log changes from v1-audit (#994)

* Renamed eth balance to sFuel balance

* used log.Info instead of fmt.Println for contractAddresses

* Added do not mopdify note in constants.go

* Added a warning for low ethBalance

* replaced path.join with filepath.join (#992)

* Removed redundant cmd/utilsInterface (#997)

* Removed UtilsInterface in cmd package

* Compilation successful for tests

* replaced utils.UtilsInterface with razorUtils

* Included CheckAmountAndBalance in utils/utilsInterface

* Fixed tests

* Fixed benchmark

* Fixed MakeBlock benchmark

* Moved waitForAppropriateState after epoch check (#1008)

* Implemented timeout for logger on fetching blockNumber (#1009)

* Implemented timeout for logger on fethcing blockNumber

* Added comments

* updated dockerfile and readme for non-root user (#1014)

* Moved Lumberjack constants to config (#1011)

* Added logFile parameters to config

* Initialised logger with getting parameters from config

* Added logFile paramters in config set up script

* Added config as a parameter in AssignLogFile()

* Fixed tests

* Avoided passing nil types.Configurations{]

* Passed types.Configuations{} for setConfig

* updated readme for expose metric and running cmd in background (#1015)

* Cached API Response (#1016)

* Added cache package containing caching utils

* Used cache to get data from API

* Fixed tests

* Fixed test

* minor fixes

* removed unwanted test

* Added condition to fetch value only if the key is present in json (#1028)

* Added support for Post Requests (#1020)

* Added POST request support

* datasource URL struct support

* Updated createJob command and new format for assets.json file

* Fixed tests

* Fixed URlStruct in test

* Removed unwanted comment

* Backwards compatible

* Removed unwanted logs

* Merge `v1.0.5`into `v1.0.6` (#1031)

* Changes Requested in v1.0.5 Review (#1006)

* updated logs and readMe for v1.0.5

* Canges string formater for errors to %v

* Inserted Logs in the entire codebase (#1018)

* Inserted Logs

* Corrected logs

* Modified lumberJack constants

* V1.0.5-alpha-patch1 Ready (#1022)

* Merge `v1.0.4` release to main branch  (#977)

* v1.2.0 (#965)

* Hotfix-logImprovements (#952)

* Set up blocknumber and epoch in logs

* updated blocknumber and epoch logger info in every command

* Hotfix-getDataFromAPI (#951)

* Changed numm of retry attempts

* removed redundant retry attempts

* corrected tests

* changed http timeout and logged time elapsed to fetch data (#954)

* Updated version (#960)

* Updated version

* updated version to v1.2.0

* version update (#972)

* Updated user in dockerfile (#1012)

* updating user in dockerfile

* updating readme for non-root user

* Log corrections

* updated release

* Revert "Updated user in dockerfile (#1012)" (#1021)

This reverts commit 7f95edbdc1c2963077805a9da6b0b5aa7e4c0f22.

Co-authored-by: Shrikant upadhyay <shrikant1997upadhyay@gmail.com>

* Calculated blockNumber in a separate go-routine for logging (#1025)

* Cached block number in logger

* Revert "Cached block number in logger"

This reverts commit 760e3adf38f106bd444ef2d64494565d9bd6dae1.

* Added block/block.go for calculating latestBlock in a seperate goroutine

* Fetched block number from block package

* log corrections

* Increased max size of file to 182MB (#1027)

* renamed variable correctly

Co-authored-by: Shrikant upadhyay <shrikant1997upadhyay@gmail.com>

* Refactor utilsInterface (#1024)

* FileUtils, GasUtils, ClientUtils

* Added test_utils.go to initialiase all the mocked interface

* test_utils.go support for all tests

* Initialised new utils interfaces

* Fetched v1.0.5 updates to v1.0.6 (#1045)

* Fetched the updated changes from v1.0.5

* Staging deployement parameters (#1046)

* Added http timeout as a config parameter (#1055)

* added http timeout as a config parameter

* Fixed and Added tests

* added httpTimeout in config

* Added logFile config parameters to readMe

* Fixed comments

* Fetched API key from env file (#1048)

* Added dot env file utils

* Fetched API key from .env file when required

* updated dependencies

* Changed API key regex

* Added name field in customJob struct

* Replaced content-type field with headers in dataSourceURLStruct

* Updated post request creation

* picked API Regex from constants.go

* Removed unwanted field from header

* returned error as well from GetkeywordAndAPIKey

* replaces regexp.Match() with strings.Contains()

* support for headers in GET requests

* Refactored GetDataFromAPI

* Added processRequest retry constants

* Added condition to check if there was a value in previous block (#1056)

* Merge `v1.0.4` release to main branch  (#977)

* v1.2.0 (#965)

* Hotfix-logImprovements (#952)

* Set up blocknumber and epoch in logs

* updated blocknumber and epoch logger info in every command

* Hotfix-getDataFromAPI (#951)

* Changed numm of retry attempts

* removed redundant retry attempts

* corrected tests

* changed http timeout and logged time elapsed to fetch data (#954)

* Updated version (#960)

* Updated version

* updated version to v1.2.0

* version update (#972)

* Updated user in dockerfile (#1012)

* updating user in dockerfile

* updating readme for non-root user

* Revert "Updated user in dockerfile (#1012)" (#1021)

This reverts commit 7f95edbdc1c2963077805a9da6b0b5aa7e4c0f22.

* Merge v1.0.5 to main (#1038)

* v1.2.0 (#965)

* Hotfix-logImprovements (#952)

* Set up blocknumber and epoch in logs

* updated blocknumber and epoch logger info in every command

* Hotfix-getDataFromAPI (#951)

* Changed numm of retry attempts

* removed redundant retry attempts

* corrected tests

* changed http timeout and logged time elapsed to fetch data (#954)

* Updated version (#960)

* Updated version

* updated version to v1.2.0

* version update (#972)

* Merged `v1.3.0-alpha` into `v1.0.5` (#973)

* Merged `v1` into `v1.3.0-aplha` with hotfixes (#966)

* Hotfix-proposed data (#913)

* Updated propose data global variables correctly

* Fixed tests

* Returned correct waitForBlockCompletion error

* coverage increase

* GetLocalData returns type types.ProposeFileData

* fixed benchmark

* Fetched Last proposed from contracts (#917)

* fetched getLastProposedEpoch from contracts and tests for it

* typo fix

* V1 propose hotfix (#918)

* Change propose.go to get sorted proposed block ids.
* Fix sorted proposed block issue.

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* allow stakers to addStake < minSafeRazor (#928)

* Call claimStakerReward only if there reward to claim (#926)

* Make contract call only if there is commission to claim

* Add tests for claimCommission file

* update check

* Hotfix-giveSorted (#921)

* ResetDispute only done after FinalizeDispute

* Fixed tests

* Update README (#931)

* Update README

* Update logs path

* Fix home dir path

* Add logs to vote.go and commit.go

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Add logs for dispute and propose.

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Fix tests.

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Suppress unneccessary error logs. (#935)

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* changed http timeout to 30 sec (#943)

* saving commit data only after successfull commit (#947)

* Added password flag (#946)

* added password flag

* README updated

* Hotfix-giveSorted (new implementation) (#953)

* GiveSorted linear recursion

* Added backupNode flag

* Compilation success for tests

* Fixed tests

* removed recusrsion, called giveSorted linearly

* fixed tests

* Added leafId to giveSortedLeafIds[] on successful giveSorted

* Hotfix-sortedProposedBlocks (#957)

* Shuffled copied slice instead of original slice

* returned error from giveSorted when len(sortedValues)=0

* Fixed dispute tests

* Changed pending nonce at to nonce at. (#948)

* Changed pending nonce at to nonce at.
* Update mockery

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Hotfix -RPCTimeout (#955)

* Added a generic function with timeout for contract calls

* Moved generic function to utils and implemented to all contract getter calls

* Implemented timeout for contract setter functions

* rpc timeout custom error

* type asserting structs from contract mappings

* Shifted timeout to constants

* passed timeout in int in constants.go

* Added rpcTimeout as config

* Removed errorIndex paramter from CheckIfAnyError()

* Function renamed

* Fixed tests

* Unrequired change

* Added backup node info in readme (#963)

* Passed a initialized varible instead of nil value as a parameter

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shekhar Gaur <65169767+shekhar2807@users.noreply.github.com>
Co-authored-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shyam Patel <shyampkira@gmail.com>
Co-authored-by: Raj Kharvar <rajkharvar1808@gmail.com>
Co-authored-by: Skanda Bhat <bhat.skanda.m@gmail.com>

* Updated `v1.3.0` branch to staging parameters for v1.3.0-alpha version (#967)

* Updated contract addresses and chainId to staging

* Updated razor-go version to v1.3.0-alpha

* Fixed `CheckIfAnyError()` on RPCTimeout. (#974)

* Added errorIndexInReturnedValues as a parameter in  function

* Fixed comparios of error data type from returned values

* Added a check if config key is present in yaml file before fetching value (#975)

* Added default values for config parameters

* Checked if config key is present in yaml file before fetching

* Fixed tests

* returned default values uniformly

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shekhar Gaur <65169767+shekhar2807@users.noreply.github.com>
Co-authored-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shyam Patel <shyampkira@gmail.com>
Co-authored-by: Raj Kharvar <rajkharvar1808@gmail.com>
Co-authored-by: Skanda Bhat <bhat.skanda.m@gmail.com>

* updated version to v1.0.5-alpha (#978)

* Changes Requested in v1.0.5 Review (#1006)

* updated logs and readMe for v1.0.5

* Canges string formater for errors to %v

* Inserted Logs in the entire codebase (#1018)

* Inserted Logs

* Corrected logs

* Modified lumberJack constants

* V1.0.5-alpha-patch1 Ready (#1022)

* Merge `v1.0.4` release to main branch  (#977)

* v1.2.0 (#965)

* Hotfix-logImprovements (#952)

* Set up blocknumber and epoch in logs

* updated blocknumber and epoch logger info in every command

* Hotfix-getDataFromAPI (#951)

* Changed numm of retry attempts

* removed redundant retry attempts

* corrected tests

* changed http timeout and logged time elapsed to fetch data (#954)

* Updated version (#960)

* Updated version

* updated version to v1.2.0

* version update (#972)

* Updated user in dockerfile (#1012)

* updating user in dockerfile

* updating readme for non-root user

* Log corrections

* updated release

* Revert "Updated user in dockerfile (#1012)" (#1021)

This reverts commit 7f95edbdc1c2963077805a9da6b0b5aa7e4c0f22.

Co-authored-by: Shrikant upadhyay <shrikant1997upadhyay@gmail.com>

* Calculated blockNumber in a separate go-routine for logging (#1025)

* Cached block number in logger

* Revert "Cached block number in logger"

This reverts commit 760e3adf38f106bd444ef2d64494565d9bd6dae1.

* Added block/block.go for calculating latestBlock in a seperate goroutine

* Fetched block number from block package

* log corrections

* Increased max size of file to 182MB (#1027)

* V1.0.5 beta ready (#1032)

* Production support

* Updated release version

* Updated maxSize of log file to 200MB

* Added mutex lock in blockNumber calculation (#1035)

* Merge `v1.0.4` release to main branch  (#977)

* v1.2.0 (#965)

* Hotfix-logImprovements (#952)

* Set up blocknumber and epoch in logs

* updated blocknumber and epoch logger info in every command

* Hotfix-getDataFromAPI (#951)

* Changed numm of retry attempts

* removed redundant retry attempts

* corrected tests

* changed http timeout and logged time elapsed to fetch data (#954)

* Updated version (#960)

* Updated version

* updated version to v1.2.0

* version update (#972)

* Updated user in dockerfile (#1012)

* updating user in dockerfile

* updating readme for non-root user

* Revert "Updated user in dockerfile (#1012)" (#1021)

This reverts commit 7f95edbdc1c2963077805a9da6b0b5aa7e4c0f22.

* Added mutex lock in blockNumber calculation

* Added new staging addresses and chainId

* updated version

Co-authored-by: Shrikant upadhyay <shrikant1997upadhyay@gmail.com>

* v1.0.5-beta-patch1 (#1037)

* Updated depolyment paramters to prod

* updated version to v1.0.5-beta-patch1

* Updated version to v1.0.5 (#1033)

* Made v1.0.5 branch in sync with main branch (#1039)

* Merge `v1.0.4` release to main branch  (#977)

* v1.2.0 (#965)

* Hotfix-logImprovements (#952)

* Set up blocknumber and epoch in logs

* updated blocknumber and epoch logger info in every command

* Hotfix-getDataFromAPI (#951)

* Changed numm of retry attempts

* removed redundant retry attempts

* corrected tests

* changed http timeout and logged time elapsed to fetch data (#954)

* Updated version (#960)

* Updated version

* updated version to v1.2.0

* version update (#972)

* Updated user in dockerfile (#1012)

* updating user in dockerfile

* updating readme for non-root user

* Revert "Updated user in dockerfile (#1012)" (#1021)

This reverts commit 7f95edbdc1c2963077805a9da6b0b5aa7e4c0f22.

Co-authored-by: Shrikant upadhyay <shrikant1997upadhyay@gmail.com>

* Deleted password file (#1040)

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shekhar Gaur <65169767+shekhar2807@users.noreply.github.com>
Co-authored-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shyam Patel <shyampkira@gmail.com>
Co-authored-by: Raj Kharvar <rajkharvar1808@gmail.com>
Co-authored-by: Skanda Bhat <bhat.skanda.m@gmail.com>
Co-authored-by: Shrikant upadhyay <shrikant1997upadhyay@gmail.com>

* Releases/v1.0.5 (#1043)

* v1.2.0 (#965)

* Hotfix-logImprovements (#952)

* Set up blocknumber and epoch in logs

* updated blocknumber and epoch logger info in every command

* Hotfix-getDataFromAPI (#951)

* Changed numm of retry attempts

* removed redundant retry attempts

* corrected tests

* changed http timeout and logged time elapsed to fetch data (#954)

* Updated version (#960)

* Updated version

* updated version to v1.2.0

* version update (#972)

* Merged `v1.3.0-alpha` into `v1.0.5` (#973)

* Merged `v1` into `v1.3.0-aplha` with hotfixes (#966)

* Hotfix-proposed data (#913)

* Updated propose data global variables correctly

* Fixed tests

* Returned correct waitForBlockCompletion error

* coverage increase

* GetLocalData returns type types.ProposeFileData

* fixed benchmark

* Fetched Last proposed from contracts (#917)

* fetched getLastProposedEpoch from contracts and tests for it

* typo fix

* V1 propose hotfix (#918)

* Change propose.go to get sorted proposed block ids.
* Fix sorted proposed block issue.

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* allow stakers to addStake < minSafeRazor (#928)

* Call claimStakerReward only if there reward to claim (#926)

* Make contract call only if there is commission to claim

* Add tests for claimCommission file

* update check

* Hotfix-giveSorted (#921)

* ResetDispute only done after FinalizeDispute

* Fixed tests

* Update README (#931)

* Update README

* Update logs path

* Fix home dir path

* Add logs to vote.go and commit.go

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Add logs for dispute and propose.

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Fix tests.

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Suppress unneccessary error logs. (#935)

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* changed http timeout to 30 sec (#943)

* saving commit data only after successfull commit (#947)

* Added password flag (#946)

* added password flag

* README updated

* Hotfix-giveSorted (new implementation) (#953)

* GiveSorted linear recursion

* Added backupNode flag

* Compilation success for tests

* Fixed tests

* removed recusrsion, called giveSorted linearly

* fixed tests

* Added leafId to giveSortedLeafIds[] on successful giveSorted

* Hotfix-sortedProposedBlocks (#957)

* Shuffled copied slice instead of original slice

* returned error from giveSorted when len(sortedValues)=0

* Fixed dispute tests

* Changed pending nonce at to nonce at. (#948)

* Changed pending nonce at to nonce at.
* Update mockery

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Hotfix -RPCTimeout (#955)

* Added a generic function with timeout for contract calls

* Moved generic function to utils and implemented to all contract getter calls

* Implemented timeout for contract setter functions

* rpc timeout custom error

* type asserting structs from contract mappings

* Shifted timeout to constants

* passed timeout in int in constants.go

* Added rpcTimeout as config

* Removed errorIndex paramter from CheckIfAnyError()

* Function renamed

* Fixed tests

* Unrequired change

* Added backup node info in readme (#963)

* Passed a initialized varible instead of nil value as a parameter

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shekhar Gaur <65169767+shekhar2807@users.noreply.github.com>
Co-authored-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shyam Patel <shyampkira@gmail.com>
Co-authored-by: Raj Kharvar <rajkharvar1808@gmail.com>
Co-authored-by: Skanda Bhat <bhat.skanda.m@gmail.com>

* Updated `v1.3.0` branch to staging parameters for v1.3.0-alpha version (#967)

* Updated contract addresses and chainId to staging

* Updated razor-go version to v1.3.0-alpha

* Fixed `CheckIfAnyError()` on RPCTimeout. (#974)

* Added errorIndexInReturnedValues as a parameter in  function

* Fixed comparios of error data type from returned values

* Added a check if config key is present in yaml file before fetching value (#975)

* Added default values for config parameters

* Checked if config key is present in yaml file before fetching

* Fixed tests

* returned default values uniformly

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shekhar Gaur <65169767+shekhar2807@users.noreply.github.com>
Co-authored-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shyam Patel <shyampkira@gmail.com>
Co-authored-by: Raj Kharvar <rajkharvar1808@gmail.com>
Co-authored-by: Skanda Bhat <bhat.skanda.m@gmail.com>

* updated version to v1.0.5-alpha (#978)

* Changes Requested in v1.0.5 Review (#1006)

* updated logs and readMe for v1.0.5

* Canges string formater for errors to %v

* Inserted Logs in the entire codebase (#1018)

* Inserted Logs

* Corrected logs

* Modified lumberJack constants

* V1.0.5-alpha-patch1 Ready (#1022)

* Merge `v1.0.4` release to main branch  (#977)

* v1.2.0 (#965)

* Hotfix-logImprovements (#952)

* Set up blocknumber and epoch in logs

* updated blocknumber and epoch logger info in every command

* Hotfix-getDataFromAPI (#951)

* Changed numm of retry attempts

* removed redundant retry attempts

* corrected tests

* changed http timeout and logged time elapsed to fetch data (#954)

* Updated version (#960)

* Updated version

* updated version to v1.2.0

* version update (#972)

* Updated user in dockerfile (#1012)

* updating user in dockerfile

* updating readme for non-root user

* Log corrections

* updated release

* Revert "Updated user in dockerfile (#1012)" (#1021)

This reverts commit 7f95edbdc1c2963077805a9da6b0b5aa7e4c0f22.

Co-authored-by: Shrikant upadhyay <shrikant1997upadhyay@gmail.com>

* Calculated blockNumber in a separate go-routine for logging (#1025)

* Cached block number in logger

* Revert "Cached block number in logger"

This reverts commit 760e3adf38f106bd444ef2d64494565d9bd6dae1.

* Added block/block.go for calculating latestBlock in a seperate goroutine

* Fetched block number from block package

* log corrections

* Increased max size of file to 182MB (#1027)

* V1.0.5 beta ready (#1032)

* Production support

* Updated release version

* Updated maxSize of log file to 200MB

* Added mutex lock in blockNumber calculation (#1035)

* Merge `v1.0.4` release to main branch  (#977)

* v1.2.0 (#965)

* Hotfix-logImprovements (#952)

* Set up blocknumber and epoch in logs

* updated blocknumber and epoch logger info in every command

* Hotfix-getDataFromAPI (#951)

* Changed numm of retry attempts

* removed redundant retry attempts

* corrected tests

* changed http timeout and logged time elapsed to fetch data (#954)

* Updated version (#960)

* Updated version

* updated version to v1.2.0

* version update (#972)

* Updated user in dockerfile (#1012)

* updating user in dockerfile

* updating readme for non-root user

* Revert "Updated user in dockerfile (#1012)" (#1021)

This reverts commit 7f95edbdc1c2963077805a9da6b0b5aa7e4c0f22.

* Added mutex lock in blockNumber calculation

* Added new staging addresses and chainId

* updated version

Co-authored-by: Shrikant upadhyay <shrikant1997upadhyay@gmail.com>

* v1.0.5-beta-patch1 (#1037)

* Updated depolyment paramters to prod

* updated version to v1.0.5-beta-patch1

* Updated version to v1.0.5 (#1033)

* Made v1.0.5 branch in sync with main branch (#1039)

* Merge `v1.0.4` release to main branch  (#977)

* v1.2.0 (#965)

* Hotfix-logImprovements (#952)

* Set up blocknumber and epoch in logs

* updated blocknumber and epoch logger info in every command

* Hotfix-getDataFromAPI (#951)

* Changed numm of retry attempts

* removed redundant retry attempts

* corrected tests

* changed http timeout and logged time elapsed to fetch data (#954)

* Updated version (#960)

* Updated version

* updated version to v1.2.0

* version update (#972)

* Updated user in dockerfile (#1012)

* updating user in dockerfile

* updating readme for non-root user

* Revert "Updated user in dockerfile (#1012)" (#1021)

This reverts commit 7f95edbdc1c2963077805a9da6b0b5aa7e4c0f22.

Co-authored-by: Shrikant upadhyay <shrikant1997upadhyay@gmail.com>

* Deleted password file (#1040)

* Added sleep time to reduce amount of RPC calls to get blockNumber (#1042)

add sleep after client call to get blockNumber

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Yashk767 <76935991+Yashk767@users.noreply.github.com>
Co-authored-by: Shekhar Gaur <65169767+shekhar2807@users.noreply.github.com>
Co-authored-by: Shyam Patel <shyampkira@gmail.com>
Co-authored-by: Raj Kharvar <rajkharvar1808@gmail.com>
Co-authored-by: Skanda Bhat <bhat.skanda.m@gmail.com>
Co-authored-by: Shrikant upadhyay <shrikant1997upadhyay@gmail.com>
Co-authored-by: YashK <yash.kurlekar2017@gmail.com>

* updated CI for dockerhub token. (#1052)

* added condition to check if there was a value in previous block

* changed error messaged

---------

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shrikant upadhyay <shrikant1997upadhyay@gmail.com>
Co-authored-by: Shekhar Gaur <65169767+shekhar2807@users.noreply.github.com>
Co-authored-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shyam Patel <shyampkira@gmail.com>
Co-authored-by: Raj Kharvar <rajkharvar1808@gmail.com>
Co-authored-by: Skanda Bhat <bhat.skanda.m@gmail.com>

* Checked password is correct at the immediate start of command (#1069)

* Added function CheckPassword()

* Checked password at immediate start of command

* Added CheckPassword in UtilsInterface

* fixed tests

* Fetch `main` branch into `v1.0.6` (#1076)

* Merge `v1.0.4` release to main branch  (#977)

* v1.2.0 (#965)

* Hotfix-logImprovements (#952)

* Set up blocknumber and epoch in logs

* updated blocknumber and epoch logger info in every command

* Hotfix-getDataFromAPI (#951)

* Changed numm of retry attempts

* removed redundant retry attempts

* corrected tests

* changed http timeout and logged time elapsed to fetch data (#954)

* Updated version (#960)

* Updated version

* updated version to v1.2.0

* version update (#972)

* Updated user in dockerfile (#1012)

* updating user in dockerfile

* updating readme for non-root user

* Revert "Updated user in dockerfile (#1012)" (#1021)

This reverts commit 7f95edbdc1c2963077805a9da6b0b5aa7e4c0f22.

* Merge v1.0.5 to main (#1038)

* v1.2.0 (#965)

* Hotfix-logImprovements (#952)

* Set up blocknumber and epoch in logs

* updated blocknumber and epoch logger info in every command

* Hotfix-getDataFromAPI (#951)

* Changed numm of retry attempts

* removed redundant retry attempts

* corrected tests

* changed http timeout and logged time elapsed to fetch data (#954)

* Updated version (#960)

* Updated version

* updated version to v1.2.0

* version update (#972)

* Merged `v1.3.0-alpha` into `v1.0.5` (#973)

* Merged `v1` into `v1.3.0-aplha` with hotfixes (#966)

* Hotfix-proposed data (#913)

* Updated propose data global variables correctly

* Fixed tests

* Returned correct waitForBlockCompletion error

* coverage increase

* GetLocalData returns type types.ProposeFileData

* fixed benchmark

* Fetched Last proposed from contracts (#917)

* fetched getLastProposedEpoch from contracts and tests for it

* typo fix

* V1 propose hotfix (#918)

* Change propose.go to get sorted proposed block ids.
* Fix sorted proposed block issue.

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* allow stakers to addStake < minSafeRazor (#928)

* Call claimStakerReward only if there reward to claim (#926)

* Make contract call only if there is commission to claim

* Add tests for claimCommission file

* update check

* Hotfix-giveSorted (#921)

* ResetDispute only done after FinalizeDispute

* Fixed tests

* Update README (#931)

* Update README

* Update logs path

* Fix home dir path

* Add logs to vote.go and commit.go

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Add logs for dispute and propose.

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Fix tests.

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Suppress unneccessary error logs. (#935)

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* changed http timeout to 30 sec (#943)

* saving commit data only after successfull commit (#947)

* Added password flag (#946)

* added password flag

* README updated

* Hotfix-giveSorted (new implementation) (#953)

* GiveSorted linear recursion

* Added backupNode flag

* Compilation success for tests

* Fixed tests

* removed recusrsion, called giveSorted linearly

* fixed tests

* Added leafId to giveSortedLeafIds[] on successful giveSorted

* Hotfix-sortedProposedBlocks (#957)

* Shuffled copied slice instead of original slice

* returned error from giveSorted when len(sortedValues)=0

* Fixed dispute tests

* Changed pending nonce at to nonce at. (#948)

* Changed pending nonce at to nonce at.
* Update mockery

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Hotfix -RPCTimeout (#955)

* Added a generic function with timeout for contract calls

* Moved generic function to utils and implemented to all contract getter calls

* Implemented timeout for contract setter functions

* rpc timeout custom error

* type asserting structs from contract mappings

* Shifted timeout to constants

* passed timeout in int in constants.go

* Added rpcTimeout as config

* Removed errorIndex paramter from CheckIfAnyError()

* Function renamed

* Fixed tests

* Unrequired change

* Added backup node info in readme (#963)

* Passed a initialized varible instead of nil value as a parameter

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shekhar Gaur <65169767+shekhar2807@users.noreply.github.com>
Co-authored-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shyam Patel <shyampkira@gmail.com>
Co-authored-by: Raj Kharvar <rajkharvar1808@gmail.com>
Co-authored-by: Skanda Bhat <bhat.skanda.m@gmail.com>

* Updated `v1.3.0` branch to staging parameters for v1.3.0-alpha version (#967)

* Updated contract addresses and chainId to staging

* Updated razor-go version to v1.3.0-alpha

* Fixed `CheckIfAnyError()` on RPCTimeout. (#974)

* Added errorIndexInReturnedValues as a parameter in  function

* Fixed comparios of error data type from returned values

* Added a check if config key is present in yaml file before fetching value (#975)

* Added default values for config parameters

* Checked if config key is present in yaml file before fetching

* Fixed tests

* returned default values uniformly

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shekhar Gaur <65169767+shekhar2807@users.noreply.github.com>
Co-authored-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shyam Patel <shyampkira@gmail.com>
Co-authored-by: Raj Kharvar <rajkharvar1808@gmail.com>
Co-authored-by: Skanda Bhat <bhat.skanda.m@gmail.com>

* updated version to v1.0.5-alpha (#978)

* Changes Requested in v1.0.5 Review (#1006)

* updated logs and readMe for v1.0.5

* Canges string formater for errors to %v

* Inserted Logs in the entire codebase (#1018)

* Inserted Logs

* Corrected logs

* Modified lumberJack constants

* V1.0.5-alpha-patch1 Ready (#1022)

* Merge `v1.0.4` release to main branch  (#977)

* v1.2.0 (#965)

* Hotfix-logImprovements (#952)

* Set up blocknumber and epoch in logs

* updated blocknumber and epoch logger info in every command

* Hotfix-getDataFromAPI (#951)

* Changed numm of retry attempts

* removed redundant retry attempts

* corrected tests

* changed http timeout and logged time elapsed to fetch data (#954)

* Updated version (#960)

* Updated version

* updated version to v1.2.0

* version update (#972)

* Updated user in dockerfile (#1012)

* updating user in dockerfile

* updating readme for non-root user

* Log corrections

* updated release

* Revert "Updated user in dockerfile (#1012)" (#1021)

This reverts commit 7f95edbdc1c2963077805a9da6b0b5aa7e4c0f22.

Co-authored-by: Shrikant upadhyay <shrikant1997upadhyay@gmail.com>

* Calculated blockNumber in a separate go-routine for logging (#1025)

* Cached block number in logger

* Revert "Cached block number in logger"

This reverts commit 760e3adf38f106bd444ef2d64494565d9bd6dae1.

* Added block/block.go for calculating latestBlock in a seperate goroutine

* Fetched block number from block package

* log corrections

* Increased max size of file to 182MB (#1027)

* V1.0.5 beta ready (#1032)

* Production support

* Updated release version

* Updated maxSize of log file to 200MB

* Added mutex lock in blockNumber calculation (#1035)

* Merge `v1.0.4` release to main branch  (#977)

* v1.2.0 (#965)

* Hotfix-logImprovements (#952)

* Set up blocknumber and epoch in logs

* updated blocknumber and epoch logger info in every command

* Hotfix-getDataFromAPI (#951)

* Changed numm of retry attempts

* removed redundant retry attempts

* corrected tests

* changed http timeout and logged time elapsed to fetch data (#954)

* Updated version (#960)

* Updated version

* updated version to v1.2.0

* version update (#972)

* Updated user in dockerfile (#1012)

* updating user in dockerfile

* updating readme for non-root user

* Revert "Updated user in dockerfile (#1012)" (#1021)

This reverts commit 7f95edbdc1c2963077805a9da6b0b5aa7e4c0f22.

* Added mutex lock in blockNumber calculation

* Added new staging addresses and chainId

* updated version

Co-authored-by: Shrikant upadhyay <shrikant1997upadhyay@gmail.com>

* v1.0.5-beta-patch1 (#1037)

* Updated depolyment paramters to prod

* updated version to v1.0.5-beta-patch1

* Updated version to v1.0.5 (#1033)

* Made v1.0.5 branch in sync with main branch (#1039)

* Merge `v1.0.4` release to main branch  (#977)

* v1.2.0 (#965)

* Hotfix-logImprovements (#952)

* Set up blocknumber and epoch in logs

* updated blocknumber and epoch logger info in every command

* Hotfix-getDataFromAPI (#951)

* Changed numm of retry attempts

* removed redundant retry attempts

* corrected tests

* changed http timeout and logged time elapsed to fetch data (#954)

* Updated version (#960)

* Updated version

* updated version to v1.2.0

* version update (#972)

* Updated user in dockerfile (#1012)

* updating user in dockerfile

* updating readme for non-root user

* Revert "Updated user in dockerfile (#1012)" (#1021)

This reverts commit 7f95edbdc1c2963077805a9da6b0b5aa7e4c0f22.

Co-authored-by: Shrikant upadhyay <shrikant1997upadhyay@gmail.com>

* Deleted password file (#1040)

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shekhar Gaur <65169767+shekhar2807@users.noreply.github.com>
Co-authored-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shyam Patel <shyampkira@gmail.com>
Co-authored-by: Raj Kharvar <rajkharvar1808@gmail.com>
Co-authored-by: Skanda Bhat <bhat.skanda.m@gmail.com>
Co-authored-by: Shrikant upadhyay <shrikant1997upadhyay@gmail.com>

* Releases/v1.0.5 (#1043)

* v1.2.0 (#965)

* Hotfix-logImprovements (#952)

* Set up blocknumber and epoch in logs

* updated blocknumber and epoch logger info in every command

* Hotfix-getDataFromAPI (#951)

* Changed numm of retry attempts

* removed redundant retry attempts

* corrected tests

* changed http timeout and logged time elapsed to fetch data (#954)

* Updated version (#960)

* Updated version

* updated version to v1.2.0

* version update (#972)

* Merged `v1.3.0-alpha` into `v1.0.5` (#973)

* Merged `v1` into `v1.3.0-aplha` with hotfixes (#966)

* Hotfix-proposed data (#913)

* Updated propose data global variables correctly

* Fixed tests

* Returned correct waitForBlockCompletion error

* coverage increase

* GetLocalData returns type types.ProposeFileData

* fixed benchmark

* Fetched Last proposed from contracts (#917)

* fetched getLastProposedEpoch from contracts and tests for it

* typo fix

* V1 propose hotfix (#918)

* Change propose.go to get sorted proposed block ids.
* Fix sorted proposed block issue.

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* allow stakers to addStake < minSafeRazor (#928)

* Call claimStakerReward only if there reward to claim (#926)

* Make contract call only if there is commission to claim

* Add tests for claimCommission file

* update check

* Hotfix-giveSorted (#921)

* ResetDispute only done after FinalizeDispute

* Fixed tests

* Update README (#931)

* Update README

* Update logs path

* Fix home dir path

* Add logs to vote.go and commit.go

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Add logs for dispute and propose.

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Fix tests.

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Suppress unneccessary error logs. (#935)

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* changed http timeout to 30 sec (#943)

* saving commit data only after successfull commit (#947)

* Added password flag (#946)

* added password flag

* README updated

* Hotfix-giveSorted (new implementation) (#953)

* GiveSorted linear recursion

* Added backupNode flag

* Compilation success for tests

* Fixed tests

* removed recusrsion, called giveSorted linearly

* fixed tests

* Added leafId to giveSortedLeafIds[] on successful giveSorted

* Hotfix-sortedProposedBlocks (#957)

* Shuffled copied slice instead of original slice

* returned error from giveSorted when len(sortedValues)=0

* Fixed dispute tests

* Changed pending nonce at to nonce at. (#948)

* Changed pending nonce at to nonce at.
* Update mockery

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Hotfix -RPCTimeout (#955)

* Added a generic function with timeout for contract calls

* Moved generic function to utils and implemented to all contract getter calls

* Implemented timeout for contract setter functions

* rpc timeout custom error

* type asserting structs from contract mappings

* Shifted timeout to constants

* passed timeout in int in constants.go

* Added rpcTimeout as config

* Removed errorIndex paramter from CheckIfAnyError()

* Function renamed

* Fixed tests

* Unrequired change

* Added backup node info in readme (#963)

* Passed a initialized varible instead of nil value as a parameter

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shekhar Gaur <65169767+shekhar2807@users.noreply.github.com>
Co-authored-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shyam Patel <shyampkira@gmail.com>
Co-authored-by: Raj Kharvar <rajkharvar1808@gmail.com>
Co-authored-by: Skanda Bhat <bhat.skanda.m@gmail.com>

* Updated `v1.3.0` branch to staging parameters for v1.3.0-alpha version (#967)

* Updated contract addresses and chainId to staging

* Updated razor-go version to v1.3.0-alpha

* Fixed `CheckIfAnyError()` on RPCTimeout. (#974)

* Added errorIndexInReturnedValues as a parameter in  function

* Fixed comparios of error data type from returned values

* Added a check if config key is present in yaml file before fetching value (#975)

* Added default values for config parameters

* Checked if config key is present in yaml file before fetching

* Fixed tests

* returned default values uniformly

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shekhar Gaur <65169767+shekhar2807@users.noreply.github.com>
Co-authored-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shyam Patel <shyampkira@gmail.com>
Co-authored-by: Raj Kharvar <rajkharvar1808@gmail.com>
Co-authored-by: Skanda Bhat <bhat.skanda.m@gmail.com>

* updated version to v1.0.5-alpha (#978)

* Changes Requested in v1.0.5 Review (#1006)

* updated logs and readMe for v1.0.5

* Canges string formater for errors to %v

* Inserted Logs in the entire codebase (#1018)

* Inserted Logs

* Corrected logs

* Modified lumberJack constants

* V1.0.5-alpha-patch1 Ready (#1022)

* Merge `v1.0.4` release to main branch  (#977)

* v1.2.0 (#965)

* Hotfix-logImprovements (#952)

* Set up blocknumber and epoch in logs

* updated blocknumber and epoch logger info in every command

* Hotfix-getDataFromAPI (#951)

* Changed numm of retry attempts

* removed redundant retry attempts

* corrected tests

* changed http timeout and logged time elapsed to fetch data (#954)

* Updated version (#960)

* Updated version

* updated version to v1.2.0

* version update (#972)

* Updated user in dockerfile (#1012)

* updating user in dockerfile

* updating readme for non-root user

* Log corrections

* updated release

* Revert "Updated user in dockerfile (#1012)" (#1021)

This reverts commit 7f95edbdc1c2963077805a9da6b0b5aa7e4c0f22.

Co-authored-by: Shrikant upadhyay <shrikant1997upadhyay@gmail.com>

* Calculated blockNumber in a separate go-routine for logging (#1025)

* Cached block number in logger

* Revert "Cached block number in logger"

This reverts commit 760e3adf38f106bd444ef2d64494565d9bd6dae1.

* Added block/block.go for calculating latestBlock in a seperate goroutine

* Fetched block number from block package

* log corrections

* Increased max size of file to 182MB (#1027)

* V1.0.5 beta ready (#1032)

* Production support

* Updated release version

* Updated maxSize of log file to 200MB

* Added mutex lock in blockNumber calculation (#1035)

* Merge `v1.0.4` release to main branch  (#977)

* v1.2.0 (#965)

* Hotfix-logImprovements (#952)

* Set up blocknumber and epoch in logs

* updated blocknumber and epoch logger info in every command

* Hotfix-getDataFromAPI (#951)

* Changed numm of retry attempts

* removed redundant retry attempts

* corrected tests

* changed http timeout and logged time elapsed to fetch data (#954)

* Updated version (#960)

* Updated version

* updated version to v1.2.0

* version update (#972)

* Updated user in dockerfile (#1012)

* updating user in dockerfile

* updating readme for non-root user

* Revert "Updated user in dockerfile (#1012)" (#1021)

This reverts commit 7f95edbdc1c2963077805a9da6b0b5aa7e4c0f22.

* Added mutex lock in blockNumber calculation

* Added new staging addresses and chainId

* updated version

Co-authored-by: Shrikant upadhyay <shrikant1997upadhyay@gmail.com>

* v1.0.5-beta-patch1 (#1037)

* Updated depolyment paramters to prod

* updated version to v1.0.5-beta-patch1

* Updated version to v1.0.5 (#1033)

* Made v1.0.5 branch in sync with main branch (#1039)

* Merge `v1.0.4` release to main branch  (#977)

* v1.2.0 (#965)

* Hotfix-logImprovements (#952)

* Set up blocknumber and epoch in logs

* updated blocknumber and epoch logger info in every command

* Hotfix-getDataFromAPI (#951)

* Changed numm of retry attempts

* removed redundant retry attempts

* corrected tests

* changed http timeout and logged time elapsed to fetch data (#954)

* Updated version (#960)

* Updated version

* updated version to v1.2.0

* version update (#972)

* Updated user in dockerfile (#1012)

* updating user in dockerfile

* updating readme for non-root user

* Revert "Updated user in dockerfile (#1012)" (#1021)

This reverts commit 7f95edbdc1c2963077805a9da6b0b5aa7e4c0f22.

Co-authored-by: Shrikant upadhyay <shrikant1997upadhyay@gmail.com>

* Deleted password file (#1040)

* Added sleep time to reduce amount of RPC calls to get blockNumber (#1042)

add sleep after client call to get blockNumber

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Yashk767 <76935991+Yashk767@users.noreply.github.com>
Co-authored-by: Shekhar Gaur <65169767+shekhar2807@users.noreply.github.com>
Co-authored-by: Shyam Patel <shyampkira@gmail.com>
Co-authored-by: Raj Kharvar <rajkharvar1808@gmail.com>
Co-authored-by: Skanda Bhat <bhat.skanda.m@gmail.com>
Co-authored-by: Shrikant upadhyay <shrikant1997upadhyay@gmail.com>
Co-authored-by: YashK <yash.kurlekar2017@gmail.com>

* updated CI for dockerhub token. (#1052)

* updated CI for tests (#1075)

* updated CI for tests

* removed docker from test ci

* Merge `v1.0.5-patch2` to main  (#1073)

* v1.2.0 (#965)

* Hotfix-logImprovements (#952)

* Set up blocknumber and epoch in logs

* updated blocknumber and epoch logger info in every command

* Hotfix-getDataFromAPI (#951)

* Changed numm of retry attempts

* removed redundant retry attempts

* corrected tests

* changed http timeout and logged time elapsed to fetch data (#954)

* Updated version (#960)

* Updated version

* updated version to v1.2.0

* version update (#972)

* Merged `v1.3.0-alpha` into `v1.0.5` (#973)

* Merged `v1` into `v1.3.0-aplha` with hotfixes (#966)

* Hotfix-proposed data (#913)

* Updated propose data global variables correctly

* Fixed tests

* Returned correct waitForBlockCompletion error

* coverage increase

* GetLocalData returns type types.ProposeFileData

* fixed benchmark

* Fetched Last proposed from contracts (#917)

* fetched getLastProposedEpoch from contracts and tests for it

* typo fix

* V1 propose hotfix (#918)

* Change propose.go to get sorted proposed block ids.
* Fix sorted proposed block issue.

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* allow stakers to addStake < minSafeRazor (#928)

* Call claimStakerReward only if there reward to claim (#926)

* Make contract call only if there is commission to claim

* Add tests for claimCommission file

* update check

* Hotfix-giveSorted (#921)

* ResetDispute only done after FinalizeDispute

* Fixed tests

* Update README (#931)

* Update README

* Update logs path

* Fix home dir path

* Add logs to vote.go and commit.go

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Add logs for dispute and propose.

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Fix tests.

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Suppress unneccessary error logs. (#935)

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* changed http timeout to 30 sec (#943)

* saving commit data only after successfull commit (#947)

* Added password flag (#946)

* added password flag

* README updated

* Hotfix-giveSorted (new implementation) (#953)

* GiveSorted linear recursion

* Added backupNode flag

* Compilation success for tests

* Fixed tests

* removed recusrsion, called giveSorted linearly

* fixed tests

* Added leafId to giveSortedLeafIds[] on successful giveSorted

* Hotfix-sortedProposedBlocks (#957)

* Shuffled copied slice instead of original slice

* returned error from giveSorted when len(sortedValues)=0

* Fixed dispute tests

* Changed pending nonce at to nonce at. (#948)

* Changed pending nonce at to nonce at.
* Update mockery

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Hotfix -RPCTimeout (#955)

* Added a generic function with timeout for contract calls

* Moved generic function to utils and implemented to all contract getter calls

* Implemented timeout for contract setter functions

* rpc timeout custom error

* type asserting structs from contract mappings

* Shifted timeout to constants

* passed timeout in int in constants.go

* Added rpcTimeout as config

* Removed errorIndex paramter from CheckIfAnyError()

* Function renamed

* Fixed tests

* Unrequired change

* Added backup node info in readme (#963)

* Passed a initialized varible instead of nil value as a parameter

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shekhar Gaur <65169767+shekhar2807@users.noreply.github.com>
Co-authored-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shyam Patel <shyampkira@gmail.com>
Co-authored-by: Raj Kharvar <rajkharvar1808@gmail.com>
Co-authored-by: Skanda Bhat <bhat.skanda.m@gmail.com>

* Updated `v1.3.0` branch to staging parameters for v1.3.0-alpha version (#967)

* Updated contract addresses and chainId to staging

* Updated razor-go version to v1.3.0-alpha

* Fixed `CheckIfAnyError()` on RPCTimeout. (#974)

* Added errorIndexInReturnedValues as a parameter in  function

* Fixed comparios of error data type from returned values

* Added a check if config key is present in yaml file before fetching value (#975)

* Added default values for config parameters

* Checked if config key is present in yaml file before fetching

* Fixed tests

* returned default values uniformly

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shekhar Gaur <65169767+shekhar2807@users.noreply.github.com>
Co-authored-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shyam Patel <shyampkira@gmail.com>
Co-authored-by: Raj Kharvar <rajkharvar1808@gmail.com>
Co-authored-by: Skanda Bhat <bhat.skanda.m@gmail.com>

* updated version to v1.0.5-alpha (#978)

* Changes Requested in v1.0.5 Review (#1006)

* updated logs and readMe for v1.0.5

* Canges string formater for errors to %v

* Inserted Logs in the entire codebase (#1018)

* Inserted Logs

* Corrected logs

* Modified lumberJack constants

* V1.0.5-alpha-patch1 Ready (#1022)

* Merge `v1.0.4` release to main branch  (#977)

* v1.2.0 (#965)

* Hotfix-logImprovements (#952)

* Set up blocknumber and epoch in logs

* updated blocknumber and epoch logger info in every command

* Hotfix-getDataFromAPI (#951)

* Changed numm of retry attempts

* removed redundant retry attempts

* corrected tests

* changed http timeout and logged time elapsed to fetch data (#954)

* Updated version (#960)

* Updated version

* updated version to v1.2.0

* version update (#972)

* Updated user in dockerfile (#1012)

* updating user in dockerfile

* updating readme for non-root user

* Log corrections

* updated release

* Revert "Updated user in dockerfile (#1012)" (#1021)

This reverts commit 7f95edbdc1c2963077805a9da6b0b5aa7e4c0f22.

Co-authored-by: Shrikant upadhyay <shrikant1997upadhyay@gmail.com>

* Calculated blockNumber in a separate go-routine for logging (#1025)

* Cached block number in logger

* Revert "Cached block number in logger"

This reverts commit 760e3adf38f106bd444ef2d64494565d9bd6dae1.

* Added block/block.go for calculating latestBlock in a seperate goroutine

* Fetched block number from block package

* log corrections

* Increased max size of file to 182MB (#1027)

* V1.0.5 beta ready (#1032)

* Production support

* Updated release version

* Updated maxSize of log file to 200MB

* Added mutex lock in blockNumber calculation (#1035)

* Merge `v1.0.4` release to main branch  (#977)

* v1.2.0 (#965)

* Hotfix-logImprovements (#952)

* Set up blocknumber and epoch in logs

* updated blocknumber and epoch logger info in every command

* Hotfix-getDataFromAPI (#951)

* Changed numm of retry attempts

* removed redundant retry attempts

* corrected tests

* changed http timeout and logged time elapsed to fetch data (#954)

* Updated version (#960)

* Updated version

* updated version to v1.2.0

* version update (#972)

* Updated user in dockerfile (#1012)

* updating user in dockerfile

* updating readme for non-root user

* Revert "Updated user in dockerfile (#1012)" (#1021)

This reverts commit 7f95edbdc1c2963077805a9da6b0b5aa7e4c0f22.

* Added mutex lock in blockNumber calculation

* Added new staging addresses and chainId

* updated version

Co-authored-by: Shrikant upadhyay <shrikant1997upadhyay@gmail.com>

* v1.0.5-beta-patch1 (#1037)

* Updated depolyment paramters to prod

* updated version to v1.0.5-beta-patch1

* Updated version to v1.0.5 (#1033)

* Made v1.0.5 branch in sync with main branch (#1039)

* Merge `v1.0.4` release to main branch  (#977)

* v1.2.0 (#965)

* Hotfix-logImprovements (#952)

* Set up blocknumber and epoch in logs

* updated blocknumber and epoch logger info in every command

* Hotfix-getDataFromAPI (#951)

* Changed numm of retry attempts

* removed redundant retry attempts

* corrected tests

* changed http timeout and logged time elapsed to fetch data (#954)

* Updated version (#960)

* Updated version

* updated version to v1.2.0

* version update (#972)

* Updated user in dockerfile (#1012)

* updating user in dockerfile

* updating readme for non-root user

* Revert "Updated user in dockerfile (#1012)" (#1021)

This reverts commit 7f95edbdc1c2963077805a9da6b0b5aa7e4c0f22.

Co-authored-by: Shrikant upadhyay <shrikant1997upadhyay@gmail.com>

* Deleted password file (#1040)

* Added sleep time to reduce amount of RPC calls to get blockNumber (#1042)

add sleep after client call to get blockNumber

* Merge `V1.0.5-gasLimitFix` to `releases/v1.0.5` (#1062)

* Hardcoded gas limit for reveal (#1060)

* Updated version to v1.0.5-patch2 (#1061)

* Added gasLimit to override as a config parameter (#1063)

* Added gasLimitOverride config parameter

* Taking the gas limit value from config if present

* Added tests

* Added default gas limit override value

* Added gas limit overridr in readMe

* Updated deployment parameters to staging for `v1.0.5-patch2-alpha` (#1065)

* Updated deployment parameters to staging

* updated version

* Updated to v1.0.5-patch2-beta (#1066)

* Updated version to v1.0.5-patch2-beta

* Updated deployement parameters to prod

* Updated version to `v1.0.5-patch2` release (#1067)

* Merge v1.0.5 to main (#1038)

* v1.2.0 (#965)

* Hotfix-logImprovements (#952)

* Set up blocknumber and epoch in logs

* updated blocknumber and epoch logger info in every command

* Hotfix-getDataFromAPI (#951)

* Changed numm of retry attempts

* removed redundant retry attempts

* corrected tests

* changed http timeout and logged time elapsed to fetch data (#954)

* Updated version (#960)

* Updated version

* updated version to v1.2.0

* version update (#972)

* Merged `v1.3.0-alpha` into `v1.0.5` (#973)

* Merged `v1` into `v1.3.0-aplha` with hotfixes (#966)

* Hotfix-proposed data (#913)

* Updated propose data global variables correctly

* Fixed tests

* Returned correct waitForBlockCompletion error

* coverage increase

* GetLocalData returns type types.ProposeFileData

* fixed benchmark

* Fetched Last proposed from contracts (#917)

* fetched getLastProposedEpoch from contracts and tests for it

* typo fix

* V1 propose hotfix (#918)

* Change propose.go to get sorted proposed block ids.
* Fix sorted proposed block issue.

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* allow stakers to addStake < minSafeRazor (#928)

* Call claimStakerReward only if there reward to claim (#926)

* Make contract call only if there is commission to claim

* Add tests for claimCommission file

* update check

* Hotfix-giveSorted (#921)

* ResetDispute only done after FinalizeDispute

* Fixed tests

* Update README (#931)

* Update README

* Update logs path

* Fix home dir path

* Add logs to vote.go and commit.go

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Add logs for dispute and propose.

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Fix tests.

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Suppress unneccessary error logs. (#935)

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* changed http timeout to 30 sec (#943)

* saving commit data only after successfull commit (#947)

* Added password flag (#946)

* added password flag

* README updated

* Hotfix-giveSorted (new implementation) (#953)

* GiveSorted linear recursion

* Added backupNode flag

* Compilation success for tests

* Fixed tests

* removed recusrsion, called giveSorted linearly

* fixed tests

* Added leafId to giveSortedLeafIds[] on successful giveSorted

* Hotfix-sortedProposedBlocks (#957)

* Shuffled copied slice instead of original slice

* returned error from giveSorted when len(sortedValues)=0

* Fixed dispute tests

* Changed pending nonce at to nonce at. (#948)

* Changed pending nonce at to nonce at.
* Update mockery

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>

* Hotfix -RPCTimeout (#955)

* Added a generic function with timeout for contract calls

* Moved generic function to utils and implemented to all contract getter calls

* Implemented timeout for contract setter functions

* rpc timeout custom error

* type asserting structs from contract mappings

* Shifted timeout to constants

* passed timeout in int in constants.go

* Added rpcTimeout as config

* Removed errorIndex paramter from CheckIfAnyError()

* Function renamed

* Fixed tests

* Unrequired change

* Added backup node info in readme (#963)

* Passed a initialized varible instead of nil value as a parameter

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shekhar Gaur <65169767+shekhar2807@users.noreply.github.com>
Co-authored-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shyam Patel <shyampkira@gmail.com>
Co-authored-by: Raj Kharvar <rajkharvar1808@gmail.com>
Co-authored-by: Skanda Bhat <bhat.skanda.m@gmail.com>

* Updated `v1.3.0` branch to staging parameters for v1.3.0-alpha version (#967)

* Updated contract addresses and chainId to staging

* Updated razor-go version to v1.3.0-alpha

* Fixed `CheckIfAnyError()` on RPCTimeout. (#974)

* Added errorIndexInReturnedValues as a parameter in  function

* Fixed comparios of error data type from returned values

* Added a check if config key is present in yaml file before fetching value (#975)

* Added default values for config parameters

* Checked if config key is present in yaml file before fetching

* Fixed tests

* returned default values uniformly

Signed-off-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shekhar Gaur <65169767+shekhar2807@users.noreply.github.com>
Co-authored-by: Ashish Kumar Mishra <ashish10677@gmail.com>
Co-authored-by: Shyam Patel <shyampkira@gmail.com>
Co-authored-by: Raj Kharvar <rajkharvar1808@gmail.com>
Co-authored-by: Skanda Bhat <bhat.skanda.m@gmail.com>

* updated version to v1.0.5-alpha (#978)

* Changes Requested in v1.0.5 Review (#1006)

* updated logs and readMe for v1.0.5

* Canges string formater for errors to %v

* Inserted Logs in the entire codebase (#1018)

* Inserted Logs

* Corrected logs

* Modified lumberJack constants

* V1.0.5-alpha-patc…
  • Loading branch information
9 people committed Jul 31, 2023
1 parent 67ec890 commit 052915a
Show file tree
Hide file tree
Showing 120 changed files with 4,102 additions and 3,821 deletions.
125 changes: 90 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,33 +93,38 @@ Go to the `build/bin` directory where the razor binary is generated.
There are a set of parameters that are configurable. These include:

- Provider: The RPC URL of the provider you are using to connect to the blockchain.
- Alternate Provider: This is the secondary RPC URL of the provider used to connect to the blockchain if the primary one is not working.
- Gas Multiplier: The value with which the gas price will be multiplied while sending every transaction.
- Buffer Size: Buffer size determines, out of all blocks in a state, in how many blocks the voting or any other operation can be performed.
- Wait Time: This is the number of seconds the system will wait while voting.
- Gas Price: The value of gas price if you want to set manually. If you don't provide any value or simply keep it to 1, the razor client will automatically calculate the optimum gas price and send it.
- Log Level: Normally debug logs are not logged into the log file. But if you want you can set `logLevel` to `debug` and fetch the debug logs.
- Gas Limit: The value with which the gas limit will be multiplied while sending every transaction.
- Gas Limit Override: This value would be used as a gas limit for all the transactions instead of estimating for each transaction.
- Gas Limit Override: This value would be used as a gas limit for all the transactions instead of estimating for each transaction.
- RPC Timeout: This is the threshold number of seconds after which any contract and client calls will time out.
- HTTP Timeout: This is the threshold number of seconds after which an HTTP request for a job will time out.
- Maximum size of log file: This is the maximum size of log file in MB
- Maximum number of backups of log file: This is the maximum number of old log files to retain.
- Maximum age of log file: This is the maximum number of days to retain old log files.

The config is set while the build is generated, but if you need to change any of the above parameter, you can use the `setConfig` command.

razor cli

```
$ ./razor setConfig --provider <rpc_provider> --gasmultiplier <multiplier_value> --buffer <buffer_percentage> --wait <wait_for_n_blocks> --gasprice <gas_price> --logLevel <debug_or_info> --gasLimit <gas_limit_multiplier> --rpcTimeout <rpc_timeout>
$ ./razor setConfig --provider <rpc_provider> --gasmultiplier <multiplier_value> --buffer <buffer_percentage> --wait <wait_for_n_blocks> --gasprice <gas_price> --logLevel <debug_or_info> --gasLimit <gas_limit_multiplier> --rpcTimeout <rpc_timeout> --httpTimeout <http_timeout> --logFileMaxSize <file_max_size> --logFileMaxBackups <file_max_backups> --logFileMaxAge <file_max_age>
```

docker

```
docker exec -it razor-go razor setConfig --provider <rpc_provider> --gasmultiplier <multiplier_value> --buffer <buffer_percentage> --wait <wait_for_n_blocks> --gasprice <gas_price> --logLevel <debug_or_info> --gasLimit <gas_limit_multiplier> --rpcTimeout <rpc_timeout>
docker exec -it razor-go razor setConfig --provider <rpc_provider> --alternateProvider <alternate_rpc_provider> --gasmultiplier <multiplier_value> --buffer <buffer_percentage> --wait <wait_for_n_blocks> --gasprice <gas_price> --logLevel <debug_or_info> --gasLimit <gas_limit_multiplier> --rpcTimeout <rpc_timeout> --httpTimeout <http_timeout> --logFileMaxSize <file_max_size> --logFileMaxBackups <file_max_backups> --logFileMaxAge <file_max_age>
```

Example:

```
$ ./razor setConfig --provider https://mainnet.skalenodes.com/v1/turbulent-unique-scheat --gasmultiplier 1 --buffer 20 --wait 30 --gasprice 0 --logLevel debug --gasLimit 2 --rpcTimeout 10
$ ./razor setConfig --provider https://mainnet.skalenodes.com/v1/turbulent-unique-scheat --alternateProvider https://ce2m-skale.chainode.tech:10200/ --gasmultiplier 1 --buffer 20 --wait 30 --gasprice 0 --logLevel debug --gasLimit 2 --rpcTimeout 10 --httpTimeout 10 --logFileMaxSize 200 --logFileMaxBackups 52 --logFileMaxAge 365
```

Other than setting these parameters in the config, you can use different values of these parameters in different command. Just add the same flag to any command you want to use and the new config changes will appear for that command.
Expand Down Expand Up @@ -352,12 +357,14 @@ docker
docker exec -it razor-go razor vote --address <address>
```

run vote command in background
> **Note**: _To run vote command in background you can use `tmux` for that._
>
> 1. Run: `tmux new -s razor-go`
> 2. Run vote command
> 3. To exit from tmux session: press `ctrl+b`, release those keys and press `d`
> 4. To list your session: `tmux ls`
> 5. To attach Session back: `tmux attach-session -t razor-go`
```
docker exec -it -d razor-go razor vote --address <address> --password /root/.razor/<file_name>
```
>**_NOTE:_** To run command with password flag with the help of docker, password file should present in $HOME/.razor/ directory

Example:

Expand Down Expand Up @@ -693,33 +700,29 @@ Note : _All the commands have an additional --password flag that you can provide

Expose Prometheus-based metrics for monitoring

Example:

razor cli

Without TLS
#### Without TLS

```
$ ./razor setConfig --exposeMetrics 2112
```

With TLS
#### With TLS

```
$ ./razor setConfig --exposeMetrics 2112 --certFile /cert/file/path/certfile.crt --certKey key/file/path/keyfile.key
```

docker

```
# Create docker network
docker network create razor_network
#### Expose Metrics without TLS

# Expose Metrics without TLS
```
docker exec -it razor-go razor setConfig --exposeMetrics 2112
```

#### Expose Metrics with TLS

# Expose Metrics with TLS
```
docker exec -it razor-go razor setConfig --exposeMetrics 2112 --certFile /cert/file/path/certfile.crt --certKey key/file/path/keyfile.key
```

Expand All @@ -734,18 +737,70 @@ cd monitoring

- If your staker is running via binary, then

1. In `./configs/prometheus.yml`, replace `"razor-go:2112"` with `"<private/public address of host>:2112"`
1. In `./configs/prometheus.yml`, replace `"razor-go:2112"` with `"<private/public address of host>:2112"`

- For alerting you can add webhook in `./configs/alertmanager.yml`, replace `http://127.0.0.1:5001/` with your webhook URL. This will send you an alert in every 5min if metrics stops.

- If you are running multiple stakers and want to monitor via single grafana dashboard
1. You need to update `./config/prometheus.yml`, add new target block where `job_name: "razor-go"`
```
- targets: ["<second-host-address>:2112"]
labels:
staker: "<staker-name>"
```
2. Restart vmagent service `docker-compose restart vmagent`

1. You need to update `./config/prometheus.yml`, add new target block where `job_name: "razor-go"`
```
- targets: ["<second-host-address>:2112"]
labels:
staker: "<staker-name>"
```
2. Restart vmagent service `docker-compose restart vmagent`
#### Start monitoring stack
- You can spin all agents at once via

```
docker-compose up -d
```
Can check the status of each service via
```
docker-compose ps
```

- You can open grafana at `<private/public address of host>:3000`, and get
1. Can checkout `Razor` dashboard to monitor your staker.
2. Insight of host metrics at `Node Exporter Full` dashboard.
3. Containers Insight at `Docker and OS metrics ( cadvisor, node_exporter )` dashboard.
4. Can monitor alerts at `Alertmanager` dashboard.

>**_NOTE:_** Configure firewall for port `3000` on your host to access grafana.
#### Troubleshoot Alerting

1. In `docker-compose.yml` uncomment ports for `alertmanager` and `vmalert`.
2. Configure firewall to allow access to ports `8880` and `9093`.

3. Check you get alerts on vmalert via `http://<host_address>:8880/vmalert/alerts`. vmalert is configured to scrap in every 2min.

4. If you see alert in vmalert then look into alertmanager `http://<host_address>:9093/#/alerts?`, if you see alerts in there but you didn't get one then probably you need to check your weebhook.

#### Configuration

Clone repo and setup monitoring and alerting using Prometheus/Grafana

```
git clone https://github.com/razor-network/monitoring.git
cd monitoring
```

- If your staker is running via binary, then

1. In `./configs/prometheus.yml`, replace `"razor-go:2112"` with `"<private/public address of host>:2112"`

- For alerting you can add webhook in `./configs/alertmanager.yml`, replace `http://127.0.0.1:5001/` with your webhook URL. This will send you an alert in every 5min if metrics stops.

- If you are running multiple stakers and want to monitor via single grafana dashboard
1. You need to update `./config/prometheus.yml`, add new target block where `job_name: "razor-go"`
```
- targets: ["<second-host-address>:2112"]
labels:
staker: "<staker-name>"
```
2. Restart vmagent service `docker-compose restart vmagent`

#### Start monitoring stack

Expand All @@ -762,10 +817,10 @@ cd monitoring
```

- You can open grafana at `<private/public address of host>:3000`, and get
1. Can checkout `Razor` dashboard to monitor your staker.
2. Insight of host metrics at `Node Exporter Full` dashboard.
3. Containers Insight at `Docker and OS metrics ( cadvisor, node_exporter )` dashboard.
4. Can monitor alerts at `Alertmanager` dashboard.
1. Can checkout `Razor` dashboard to monitor your staker.
2. Insight of host metrics at `Node Exporter Full` dashboard.
3. Containers Insight at `Docker and OS metrics ( cadvisor, node_exporter )` dashboard.
4. Can monitor alerts at `Alertmanager` dashboard.

> **_NOTE:_** Configure firewall for port `3000` on your host to access grafana.
Expand All @@ -785,7 +840,7 @@ You can override the existing job and also add your custom jobs by adding `asset

Shown below is an example of how your `assets.json` file should be -

```
``` json
{
"assets": {
"collection": {
Expand Down Expand Up @@ -951,7 +1006,7 @@ $ ./razor contractAddresses

9. To Start **Voting**,

1. Provide password through **CLI**
1. Provide password through **CLI**

```bash
# Run process in foreground and provide password through cli
Expand Down
7 changes: 4 additions & 3 deletions block/block.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@ package block

import (
"context"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/ethclient"
"github.com/sirupsen/logrus"
"razor/core"
"sync"
"time"

"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/ethclient"
"github.com/sirupsen/logrus"
)

var latestBlock *types.Header
Expand Down
93 changes: 93 additions & 0 deletions cache/cache.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
package cache

import (
"errors"
"sync"
"time"
)

var (
errDataNotInCache = errors.New("data not present in cache")
)

type cachedData struct {
Result []byte
expireAtTimestamp int64
}

type LocalCache struct {
stop chan struct{}

wg sync.WaitGroup
mu sync.RWMutex
URLs map[string]cachedData //URLs
}

func NewLocalCache(cleanupInterval time.Duration) *LocalCache {
lc := &LocalCache{
URLs: make(map[string]cachedData),
stop: make(chan struct{}),
}

lc.wg.Add(1)
go func(cleanupInterval time.Duration) {
defer lc.wg.Done()
lc.cleanupLoop(cleanupInterval)
}(cleanupInterval)

return lc
}

func (lc *LocalCache) cleanupLoop(interval time.Duration) {
t := time.NewTicker(interval)
defer t.Stop()

for {
select {
case <-lc.stop:
return
case <-t.C:
lc.mu.Lock()
for url, cu := range lc.URLs {
if cu.expireAtTimestamp <= time.Now().Unix() {
delete(lc.URLs, url)
}
}
lc.mu.Unlock()
}
}
}

func (lc *LocalCache) StopCleanup() {
close(lc.stop)
lc.wg.Wait()
}

func (lc *LocalCache) Update(data []byte, url string, expireAtTimestamp int64) {
lc.mu.Lock()
defer lc.mu.Unlock()

lc.URLs[url] = cachedData{
Result: data,
expireAtTimestamp: expireAtTimestamp,
}
}

func (lc *LocalCache) Read(url string) ([]byte, error) {
lc.mu.RLock()
defer lc.mu.RUnlock()

cacheData, ok := lc.URLs[url]
if !ok {
return []byte{}, errDataNotInCache
}

return cacheData.Result, nil
}

func (lc *LocalCache) Delete(url string) {
lc.mu.Lock()
defer lc.mu.Unlock()

delete(lc.URLs, url)
}
63 changes: 63 additions & 0 deletions client/alternateClient.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package client

import (
"github.com/ethereum/go-ethereum/ethclient"
"razor/logger"
"reflect"
"time"
)

var (
log = logger.NewLogger()
alternateClientStruct AlternateClientStruct
)

type AlternateClientStruct struct {
switchToAlternateClient bool
alternateProvider string
}

func StartTimerForAlternateClient(switchClientAfterTime uint64) {
log.Infof("StartTimerForAlternateClient: Alternate client will be switched back to primary client in %v seconds!", switchClientAfterTime)
time.Sleep(time.Duration(switchClientAfterTime) * time.Second)
log.Info("Switching back to primary RPC..")
SetSwitchToAlternateClientStatus(false)
}

//ReplaceClientWithAlternateClient will replace the primary client(client from primary RPC) with secondary client which would be created using alternate RPC
func ReplaceClientWithAlternateClient(arguments []reflect.Value) []reflect.Value {
clientDataType := reflect.TypeOf((*ethclient.Client)(nil)).Elem()
for i := range arguments {
argument := arguments[i]
argumentDataType := reflect.TypeOf(argument.Interface()).Elem()
if argumentDataType != nil {
if argumentDataType == clientDataType {
alternateProvider := GetAlternateProvider()
alternateClient, dialErr := ethclient.Dial(alternateProvider)
if dialErr != nil {
log.Errorf("Error in connecting using alternate RPC %v: %v", alternateProvider, dialErr)
return arguments
}
arguments[i] = reflect.ValueOf(alternateClient)
return arguments
}
}
}
return arguments
}

func GetSwitchToAlternateClientStatus() bool {
return alternateClientStruct.switchToAlternateClient
}

func SetSwitchToAlternateClientStatus(status bool) {
alternateClientStruct.switchToAlternateClient = status
}

func GetAlternateProvider() string {
return alternateClientStruct.alternateProvider
}

func SetAlternateProvider(alternateProvider string) {
alternateClientStruct.alternateProvider = alternateProvider
}
Loading

0 comments on commit 052915a

Please sign in to comment.