Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Releases/v2.0.0 #33

Merged
merged 34 commits into from
Sep 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
fcced07
feat: Github Migration (#1146)
yohanelly95 Oct 12, 2023
8f486d3
Update develop.yml (#1148)
SkandaBhat Oct 12, 2023
2ae4f4f
Update develop.yml (#1149)
SkandaBhat Oct 12, 2023
d7826c1
Update develop.yml
SkandaBhat Oct 12, 2023
952594e
Update develop.yml
SkandaBhat Oct 12, 2023
dbd5950
Update develop.yml
SkandaBhat Oct 12, 2023
6aef029
Fix go mod tidy
Oct 12, 2023
37e0b63
Replaced curve instance elliptic.P256() with crypto.S256() (#1150)
Yashk767 Oct 13, 2023
f1d7d35
fix: Update Dockerfile with version bumps (#1152)
yohanelly95 Oct 13, 2023
211182d
Feature/v1.1.0 (#1154)
SkandaBhat Oct 18, 2023
768f265
feat: Publish to Dockerhub on every merge to develop and release (#1…
yohanelly95 Oct 23, 2023
7dbcc88
Set version meta to empty string (#1159)
Yashk767 Oct 25, 2023
ab83868
Yash/raz 528 npm run build all fails with new update chainid script (…
Yashk767 Oct 26, 2023
917d46a
Merge branch 'main' into develop
Oct 26, 2023
aea43d5
fix: update branch pattern (#1162)
SkandaBhat Oct 26, 2023
0dc7960
fix: conversion of hex to decimal (#1167)
Yashk767 Nov 28, 2023
703aec5
fix: conversion of hex to decimal (#1167) (#1169)
Yashk767 Dec 11, 2023
3bf2914
feat: added support for job returning results in hex array (#1174)
Yashk767 Dec 20, 2023
d076432
refactor: used hash of url and body as a cache key (#1176)
Yashk767 Jan 5, 2024
2bab695
fix: conversion of hex to decimal (#1167) (#1169) (#1178)
Yashk767 Jan 15, 2024
d8a72ec
chore: merge releases/v1.1.0 into develop
Yashk767 Jan 15, 2024
0362b02
chore: merge releases/v1.1.0 into develop
Yashk767 Jan 16, 2024
8aac72a
release: v1.1.1-dev (#1190)
Yashk767 Feb 21, 2024
2fd96c8
fix: incorrect state error for shorter epoch length (#1192)
Yashk767 Mar 1, 2024
5ae7e15
revert: fetching jobs/collections from cache (#1198)
Yashk767 Mar 22, 2024
e210cf5
revert: median concurrency changes (#1213)
Yashk767 Jun 13, 2024
f619148
feat: added support for APIs responding in json array (#1216)
Yashk767 Jul 2, 2024
89d1552
chore: merge updates from main to develop branch
Yashk767 Aug 7, 2024
12d57a1
chore: merge v1.1.0-patch.1 release changes from main into develop
Yashk767 Aug 9, 2024
07cf9fe
chore: merge feature/v1.2.0 dev release to develop (#1224)
Yashk767 Aug 9, 2024
7f77a9f
refactor: requested changes in refactoring and default values for v1.…
Yashk767 Sep 3, 2024
2f574aa
chore: merge main to develop post v1.2.0 release
Yashk767 Sep 16, 2024
54371f1
chore: merge feature/v2.0.0 to develop (#1242)
Yashk767 Sep 16, 2024
de3287a
chore: merge develop to releases/v2.0.0
Yashk767 Sep 17, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: "18"
node-version: "20"
- name: Setup Go
uses: actions/setup-go@v2
with:
Expand Down Expand Up @@ -85,7 +85,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: "18"
node-version: "20"

- name: Setup Go
uses: actions/setup-go@v2
Expand Down Expand Up @@ -136,7 +136,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: "18"
node-version: "20"

- name: Setup Go
uses: actions/setup-go@v2
Expand Down Expand Up @@ -194,7 +194,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: "18"
node-version: "20"

- name: Download Artifacts AMD
uses: actions/download-artifact@v3
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/develop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: "18"
node-version: "20"
- name: Setup Go
uses: actions/setup-go@v2
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: "18"
node-version: "20"
- name: Setup Go
uses: actions/setup-go@v2
with:
Expand Down
20 changes: 10 additions & 10 deletions addresses/mainnet.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
{
"Governance": "0xAc40E8dA38B5a381008059a38bb9bf45f0D3C4e2",
"BlockManager": "0x11aB70d78f1Dd2c3F967180d8A64858Db03A0aBa",
"CollectionManager": "0x367962d1462C568A0dDd0e2448311469451bF5a3",
"StakeManager": "0xe0bC695203d9C9f379bcdE9260B9F71B64B85298",
"RewardManager": "0x301779E4c95f951D2E17B4c3EdDC717551df2EBb",
"VoteManager": "0x641BAD0641eB5B94B19568C0a22a55AEbDAF1870",
"Delegator": "0xC74745eA5a3fac1864FAcd8f48d72C21A4ab883D",
"RAZOR": "0xcbf70914Fae03B3acB91E953De60CfDAaCA8145f",
"StakedTokenFactory": "0xEffA78888Dc1b6033286E5dF9b170bc5223178AB",
"RandomNoManager": "0xC6eF45F5Add040800D30FE6dEe01b4EBC4BfC467"
"Governance": "0x4a33c6f8CEc5a8D8A5Dca2ec43bc0f78f132d31b",
"BlockManager": "0x2B28f0C3c74ADf9c5C6B3e1a998Ed37BDfF64f53",
"CollectionManager": "0xFe8627C79E85447c3ea643F388613D5E69C8Ca4a",
"StakeManager": "0xC5d2795324B40475F99739017DeA9eD946008006",
"RewardManager": "0x161F55f7019B67D24E05D0f018cc7f9ba2cdFC22",
"VoteManager": "0xeDA9a9c1F7E36cB2F90f902dF06acE880EC18e83",
"Delegator": "0x7e325b078Cee5De7795672EE59b7Cd7DF4e7a79b",
"RAZOR": "0xCA46B70cA3c510Ce9D0c43D25817032e2F5354c0",
"StakedTokenFactory": "0x24f11293993f71CAcA17bD182F3351E5c46910c5",
"RandomNoManager": "0x59AE1bE01C74ABCBb4AE0c24CCF9C30d7f638A0F"
}
21 changes: 10 additions & 11 deletions addresses/testnet.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
{
"Governance": "0x0b9CC11E7f7D3D4f9bBc0cCaB85b73B96C322c78",
"BlockManager": "0x076df1c2d81C40D30DF115Ab68A13251fBD3FFA4",
"CollectionManager": "0x83f4D7ad6dD366c3F04Af45a1437c77636b03388",
"StakeManager": "0xf99a873a6afdF1b24388ac02ea0f1CFE3c70A80b",
"RewardManager": "0x522d2A51639332388dA4788DF59fB4E598278fAd",
"VoteManager": "0x2399D4d92b4D8762971605d0bC9597F780852CC4",
"Delegator": "0x81c72fB60d19Bfc3A0adDfE394501150d290cd66",
"RAZOR": "0x504C6635af1e7E6fdc586c8A89973783b9281A77",
"StakedTokenFactory": "0xf271bd91104946Cb8e43BC0e83423ed073ab136e",
"RandomNoManager": "0x2dc9E4663675c933f78D97cDD44463ee9C43144c",
"DelegatorV2": "0x4e9E5AE58Fb6d7Ca5b79A196b8d0FCF7CA15C100"
"Governance": "0x0C91e21D91510A1e95cd3507474c0ac1F620389d",
"BlockManager": "0x1eB1aD4C24cf2CA2027C05a28e78A117fDACD9F9",
"CollectionManager": "0xAFC593871Ab8EE89fd79B2ebd9F1f502268732b9",
"StakeManager": "0x7ce95141358FeF127d3F79f7a5C21C6c2afa1cA3",
"RewardManager": "0xbaa2e7509AdB5762f33064Ad762dF1136184Ef7D",
"VoteManager": "0x57a996015D831F6f4818ff962ffE405b6c6d4B21",
"Delegator": "0x63F82745aBe00c43a71ff2A48E65B281f72Bb54D",
"RAZOR": "0x91d07a181e2Fb787204Ae82B28c69e278C05ac70",
"StakedTokenFactory": "0x047f5865e666DCc278ad3bd8de8503D35d5278Ea",
"RandomNoManager": "0x3A6bbfBBe24F5F5D20F6a7265A0F602d155C2471"
}
65 changes: 26 additions & 39 deletions cache/cache.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,53 +11,17 @@ type cachedData struct {
}

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{
// NewLocalCache creates a new LocalCache instance
func NewLocalCache() *LocalCache {
return &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()
Expand All @@ -80,3 +44,26 @@ func (lc *LocalCache) Read(url string) ([]byte, bool) {

return cacheData.Result, true
}

// ClearAll deletes all entries in the cache
func (lc *LocalCache) ClearAll() {
lc.mu.Lock()
defer lc.mu.Unlock()

for key := range lc.URLs {
delete(lc.URLs, key)
}
}

// Cleanup removes expired cache entries
func (lc *LocalCache) Cleanup() {
lc.mu.Lock()
defer lc.mu.Unlock()

for url, data := range lc.URLs {
// Remove expired data after the expireAtTimestamp is passed
if data.expireAtTimestamp <= time.Now().Unix() {
delete(lc.URLs, url)
}
}
}
4 changes: 4 additions & 0 deletions cmd/cmd-utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ func (*UtilsStruct) GetEpochAndState(client *ethclient.Client) (uint32, int64, e
if err != nil {
return 0, 0, err
}
err = ValidateBufferPercentLimit(client, bufferPercent)
if err != nil {
return 0, 0, err
}
latestHeader, err := clientUtils.GetLatestBlockWithRetry(client)
if err != nil {
log.Error("Error in fetching block: ", err)
Expand Down
31 changes: 31 additions & 0 deletions cmd/cmd-utils_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ func TestGetEpochAndState(t *testing.T) {
latestHeaderErr error
bufferPercent int32
bufferPercentErr error
stateBuffer uint64
stateBufferErr error
state int64
stateErr error
stateName string
Expand All @@ -37,6 +39,7 @@ func TestGetEpochAndState(t *testing.T) {
epoch: 4,
latestHeader: &Types.Header{},
bufferPercent: 20,
stateBuffer: 5,
state: 0,
stateName: "commit",
},
Expand All @@ -50,6 +53,7 @@ func TestGetEpochAndState(t *testing.T) {
epochErr: errors.New("epoch error"),
latestHeader: &Types.Header{},
bufferPercent: 20,
stateBuffer: 5,
state: 0,
stateName: "commit",
},
Expand All @@ -76,6 +80,7 @@ func TestGetEpochAndState(t *testing.T) {
epoch: 4,
latestHeader: &Types.Header{},
bufferPercent: 20,
stateBuffer: 5,
stateErr: errors.New("state error"),
},
wantEpoch: 0,
Expand All @@ -88,20 +93,46 @@ func TestGetEpochAndState(t *testing.T) {
epoch: 4,
latestHeaderErr: errors.New("header error"),
bufferPercent: 20,
stateBuffer: 5,
state: 0,
stateName: "commit",
},
wantEpoch: 0,
wantState: 0,
wantErr: errors.New("header error"),
},
{
name: "Test 6: When validating buffer percent limit fails",
args: args{
epoch: 4,
latestHeader: &Types.Header{},
bufferPercent: 50,
stateBuffer: 10,
},
wantEpoch: 0,
wantState: 0,
wantErr: errors.New("buffer percent exceeds limit"),
},
{
name: "Test 7: When there is an error in validating buffer percent limit",
args: args{
epoch: 4,
latestHeader: &Types.Header{},
bufferPercent: 50,
stateBufferErr: errors.New("state buffer error"),
},
wantEpoch: 0,
wantState: 0,
wantErr: errors.New("state buffer error"),
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
SetUpMockInterfaces()

utilsMock.On("GetEpoch", mock.AnythingOfType("*ethclient.Client")).Return(tt.args.epoch, tt.args.epochErr)
cmdUtilsMock.On("GetBufferPercent").Return(tt.args.bufferPercent, tt.args.bufferPercentErr)
utilsMock.On("GetStateBuffer", mock.Anything).Return(tt.args.stateBuffer, tt.args.stateBufferErr)
clientUtilsMock.On("GetLatestBlockWithRetry", mock.Anything).Return(tt.args.latestHeader, tt.args.latestHeaderErr)
utilsMock.On("GetBufferedState", mock.Anything, mock.Anything, mock.Anything).Return(tt.args.state, tt.args.stateErr)

Expand Down
12 changes: 3 additions & 9 deletions cmd/commit.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,13 @@ package cmd
import (
"encoding/hex"
"errors"
Types "github.com/ethereum/go-ethereum/core/types"
"math/big"
"razor/cache"
"razor/core"
"razor/core/types"
"razor/pkg/bindings"
"razor/utils"
"sync"
"time"

Types "github.com/ethereum/go-ethereum/core/types"

"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/ethclient"
Expand Down Expand Up @@ -79,8 +76,8 @@ func (*UtilsStruct) HandleCommitState(client *ethclient.Client, epoch uint32, se

var wg sync.WaitGroup

log.Debug("Creating a local cache which will store API result and expire at the end of commit state")
commitParams.LocalCache = cache.NewLocalCache(time.Second * time.Duration(core.StateLength))
// Clean up any expired API results cache data before performing the commit
commitParams.LocalCache.Cleanup()

log.Debug("Iterating over all the collections...")
for i := 0; i < int(numActiveCollections); i++ {
Expand Down Expand Up @@ -129,7 +126,6 @@ func (*UtilsStruct) HandleCommitState(client *ethclient.Client, epoch uint32, se
if err != nil {
// Returning the first error from the error channel
log.Error("Error in getting collection data: ", err)
commitParams.LocalCache.StopCleanup()
return types.CommitData{}, err
}
}
Expand All @@ -139,8 +135,6 @@ func (*UtilsStruct) HandleCommitState(client *ethclient.Client, epoch uint32, se
log.Debug("HandleCommitState: SeqAllottedCollections: ", seqAllottedCollections)
log.Debug("HandleCommitState: Leaves: ", leavesOfTree)

commitParams.LocalCache.StopCleanup()

return types.CommitData{
AssignedCollections: assignedCollections,
SeqAllottedCollections: seqAllottedCollections,
Expand Down
5 changes: 2 additions & 3 deletions cmd/commit_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ import (
"razor/utils"
"reflect"
"testing"
"time"
)

func TestCommit(t *testing.T) {
Expand Down Expand Up @@ -226,7 +225,7 @@ func TestHandleCommitState(t *testing.T) {
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
localCache := cache.NewLocalCache(time.Second * 10)
localCache := cache.NewLocalCache()
commitParams := &types.CommitParams{
LocalCache: localCache,
}
Expand Down Expand Up @@ -396,7 +395,7 @@ func BenchmarkHandleCommitState(b *testing.B) {
for _, v := range table {
b.Run(fmt.Sprintf("Number_Of_Active_Collections%d", v.numActiveCollections), func(b *testing.B) {
for i := 0; i < b.N; i++ {
localCache := cache.NewLocalCache(time.Second * 10)
localCache := cache.NewLocalCache()
commitParams := &types.CommitParams{
LocalCache: localCache,
}
Expand Down
Loading
Loading