From 67921dfd54bd7f87944ab1078266e361437f497d Mon Sep 17 00:00:00 2001 From: Semyon Novikov Date: Thu, 20 Feb 2025 10:01:32 +0300 Subject: [PATCH] optimize eth clients & refactor --- .github/workflows/test.yml | 2 +- authutils/auth_service.go | 19 +----- authutils/auth_service_test.go | 19 +----- blockchain/blockchain.go | 40 ++++++++---- blockchain/blockchain_test.go | 64 +++++++++++++++++++ .../{ethereumClient.go => ethereum_client.go} | 12 +--- ...orginzationMetadata.go => org_metadata.go} | 0 ...nMetadata_test.go => org_metadata_test.go} | 0 ...serviceMetadata.go => service_metadata.go} | 7 +- ...adata_test.go => service_metadata_test.go} | 6 +- config/blockchain_network_config.go | 4 +- config/blockchain_network_config_test.go | 3 +- config/config.go | 2 +- .../listen_organization_metadata_changing.go | 6 ++ go.mod | 12 ++-- go.sum | 14 ++++ ipfsutils/compressed.go | 4 +- metrics/utils.go | 1 - ratelimit/{rateLimit.go => rate_limit.go} | 0 .../{rateLimit_test.go => rate_limit_test.go} | 0 token/{jwttoken.go => jwt.go} | 0 token/{jwttoken_test.go => jwt_test.go} | 0 22 files changed, 138 insertions(+), 77 deletions(-) create mode 100644 blockchain/blockchain_test.go rename blockchain/{ethereumClient.go => ethereum_client.go} (88%) rename blockchain/{orginzationMetadata.go => org_metadata.go} (100%) rename blockchain/{orginzationMetadata_test.go => org_metadata_test.go} (100%) rename blockchain/{serviceMetadata.go => service_metadata.go} (98%) rename blockchain/{serviceMetadata_test.go => service_metadata_test.go} (98%) rename ratelimit/{rateLimit.go => rate_limit.go} (100%) rename ratelimit/{rateLimit_test.go => rate_limit_test.go} (100%) rename token/{jwttoken.go => jwt.go} (100%) rename token/{jwttoken_test.go => jwt_test.go} (100%) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4ddddee0..9a0fcc05 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,7 +24,7 @@ jobs: - name: install protoc (protobuf) uses: arduino/setup-protoc@v3 with: - version: "27.2" + version: "29.3" include-pre-releases: false - name: chmod to allow run script diff --git a/authutils/auth_service.go b/authutils/auth_service.go index 581f0978..e19583cf 100755 --- a/authutils/auth_service.go +++ b/authutils/auth_service.go @@ -71,8 +71,8 @@ func GetSignerAddressFromMessage(message, signature []byte) (signer *common.Addr keyOwnerAddressFieldLog := zap.Any("keyOwnerAddress", keyOwnerAddress) zap.L().Debug("Message signature parsed", //messageFieldLog, - signatureFieldLog, - messageHashFieldLog, + //signatureFieldLog, + //messageHashFieldLog, //publicKeyFieldLog, keyOwnerAddressFieldLog) @@ -106,22 +106,9 @@ func CompareWithLatestBlockNumber(blockNumberPassed *big.Int) error { return nil } -// CheckIfTokenHasExpired Check if the block number ( date on which the token was issued is not more than 1 month) -func CheckIfTokenHasExpired(expiredBlock *big.Int) error { - currentBlockNumber, err := CurrentBlock() - if err != nil { - return err - } - - if expiredBlock.Cmp(currentBlockNumber) < 0 { - return fmt.Errorf("authentication failed as the Free Call Token passed has expired") - } - return nil -} - // CurrentBlock Get the current block number from on chain func CurrentBlock() (*big.Int, error) { - if ethHttpClient, _, err := blockchain.CreateEthereumClients(); err != nil { + if ethHttpClient, err := blockchain.CreateHTTPEthereumClient(); err != nil { return nil, err } else { defer ethHttpClient.RawClient.Close() diff --git a/authutils/auth_service_test.go b/authutils/auth_service_test.go index 21a494ce..2ed89e53 100644 --- a/authutils/auth_service_test.go +++ b/authutils/auth_service_test.go @@ -3,12 +3,10 @@ package authutils import ( "github.com/ethereum/go-ethereum/common" - "math/big" - "testing" - "time" - "github.com/singnet/snet-daemon/v5/config" "github.com/stretchr/testify/assert" + "math/big" + "testing" ) func TestCompareWithLatestBlockNumber(t *testing.T) { @@ -21,19 +19,6 @@ func TestCompareWithLatestBlockNumber(t *testing.T) { currentBlockNum, _ = CurrentBlock() err = CompareWithLatestBlockNumber(currentBlockNum.Add(currentBlockNum, big.NewInt(1))) assert.Equal(t, nil, err) - -} - -func TestCheckAllowedBlockDifferenceForToken(t *testing.T) { - config.Vip().Set(config.BlockChainNetworkSelected, "sepolia") - config.Validate() - currentBlockNum, _ := CurrentBlock() - err := CheckIfTokenHasExpired(currentBlockNum.Sub(currentBlockNum, big.NewInt(20000))) - assert.Equal(t, err.Error(), "authentication failed as the Free Call Token passed has expired") - time.Sleep(250 * time.Millisecond) // because of HTTP 429 Too Many Requests - currentBlockNum, _ = CurrentBlock() - err = CheckIfTokenHasExpired(currentBlockNum.Add(currentBlockNum, big.NewInt(20))) - assert.Equal(t, nil, err) } func TestVerifyAddress(t *testing.T) { diff --git a/blockchain/blockchain.go b/blockchain/blockchain.go index 5ce85480..ac1c82a6 100644 --- a/blockchain/blockchain.go +++ b/blockchain/blockchain.go @@ -56,18 +56,14 @@ func NewProcessor(metadata *ServiceMetadata) (Processor, error) { } // Setup ethereum client - - if ethHttpClients, ethWSClients, err := CreateEthereumClients(); err != nil { + if ethHttpClients, err := CreateEthereumClient(); err != nil { return p, errors.Wrap(err, "error creating RPC client") } else { p.rawHttpClient = ethHttpClients.RawClient p.ethHttpClient = ethHttpClients.EthClient - p.rawWSClient = ethWSClients.RawClient - p.ethWSClient = ethWSClients.EthClient } // TODO: if address is not in config, try to load it using network - //TODO: Read this from github p.escrowContractAddress = metadata.GetMpeAddress() @@ -92,6 +88,13 @@ func (processor *Processor) ReconnectToWsClient() error { zap.L().Debug("Try to reconnect to websocket client") + return processor.ConnectToWsClient() +} + +func (processor *Processor) ConnectToWsClient() error { + + zap.L().Debug("Try to connect to websocket client") + newEthWSClients, err := CreateWSEthereumClient() if err != nil { return err @@ -124,17 +127,24 @@ func (processor *Processor) GetEthWSClient() *ethclient.Client { } func (processor *Processor) CurrentBlock() (currentBlock *big.Int, err error) { - // We have to do a raw call because the standard method of ethClient.HeaderByNumber(ctx, nil) errors on - // unmarshaling the response currently. See https://github.com/ethereum/go-ethereum/issues/3230 - var currentBlockHex string - if err = processor.rawHttpClient.CallContext(context.Background(), ¤tBlockHex, "eth_blockNumber"); err != nil { + latestBlock, err := processor.ethHttpClient.BlockNumber(context.Background()) + if err != nil { zap.L().Error("error determining current block", zap.Error(err)) return nil, fmt.Errorf("error determining current block: %v", err) } + return new(big.Int).SetUint64(latestBlock), nil +} - currentBlockBytes := common.FromHex(currentBlockHex) - currentBlock = new(big.Int).SetBytes(currentBlockBytes) +func (processor *Processor) CompareWithLatestBlockNumber(blockNumberPassed *big.Int, allowedBlockChainDifference uint64) (err error) { + latestBlockNumber, err := processor.CurrentBlock() + if err != nil { + return err + } + differenceInBlockNumber := blockNumberPassed.Sub(blockNumberPassed, latestBlockNumber) + if differenceInBlockNumber.Abs(differenceInBlockNumber).Uint64() > allowedBlockChainDifference { + return fmt.Errorf("authentication failed as the signature passed has expired") + } return } @@ -145,6 +155,10 @@ func (processor *Processor) HasIdentity() bool { func (processor *Processor) Close() { processor.ethHttpClient.Close() processor.rawHttpClient.Close() - processor.ethWSClient.Close() - processor.rawWSClient.Close() + if processor.ethWSClient != nil { + processor.ethWSClient.Close() + } + if processor.rawWSClient != nil { + processor.rawWSClient.Close() + } } diff --git a/blockchain/blockchain_test.go b/blockchain/blockchain_test.go new file mode 100644 index 00000000..70c9f94a --- /dev/null +++ b/blockchain/blockchain_test.go @@ -0,0 +1,64 @@ +package blockchain + +import ( + "github.com/singnet/snet-daemon/v5/config" + "math/big" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/suite" +) + +const metadataJson = "{\n \"version\": 1,\n \"display_name\": \"semyon_dev\",\n \"encoding\": \"proto\",\n \"service_type\": \"grpc\",\n \"service_api_source\": \"ipfs://QmV9bBsLAZfXGibdU3isPwDn8SxAPkqg6YzcKamSCxnBCR\",\n \"mpe_address\": \"0x7E0aF8988DF45B824b2E0e0A87c6196897744970\",\n \"groups\": [\n {\n \"group_name\": \"default_group\",\n \"endpoints\": [\n \"http://localhost:7000\"\n ],\n \"pricing\": [\n {\n \"price_model\": \"fixed_price\",\n \"price_in_cogs\": 1,\n \"default\": true\n }\n ],\n \"group_id\": \"FtNuizEOUsVCd5f2Fij9soehtRSb58LlTePgkVnsgVI=\",\n \"free_call_signer_address\": \"0x747155e03c892B8b311B7Cfbb920664E8c6792fA\",\n \"free_calls\": 25,\n \"daemon_addresses\": [\n \"0x747155e03c892B8b311B7Cfbb920664E8c6792fA\"\n ]\n },\n {\n \"group_name\": \"not_default\",\n \"endpoints\": [\n \"http://localhost:7000\"\n ],\n \"pricing\": [\n {\n \"price_model\": \"fixed_price\",\n \"price_in_cogs\": 1,\n \"default\": true\n }\n ],\n \"group_id\": \"udN0SLIvsDdvQQe3Ltv/NwqCh7sPKdz4scYmlI7AMdE=\",\n \"free_call_signer_address\": \"0x747155e03c892B8b311B7Cfbb920664E8c6792fA\",\n \"free_calls\": 35,\n \"daemon_addresses\": [\n \"0x747155e03c892B8b311B7Cfbb920664E8c6792fA\"\n ]\n }\n ],\n \"assets\": {},\n \"media\": [],\n \"tags\": [],\n \"service_description\": {\n \"description\": \"Test service with localhost endpoint!\",\n \"url\": \"\"\n }\n}" + +// ProcessorTestSuite is a test suite for the Processor struct +type ProcessorTestSuite struct { + suite.Suite + processor *Processor +} + +// SetupSuite initializes the Ethereum client before running the tests +func (suite *ProcessorTestSuite) SetupSuite() { + config.Vip().Set(config.BlockchainEnabledKey, true) + config.Vip().Set(config.BlockChainNetworkSelected, "sepolia") + config.Validate() + srv, err := InitServiceMetaDataFromJson([]byte(metadataJson)) + if err != nil { + return + } + p, err := NewProcessor(srv) + assert.Nil(suite.T(), err) + suite.processor = &p +} + +// ✅ Test: If the block number difference is within the allowed limit → no error +func (suite *ProcessorTestSuite) TestCompareWithLatestBlockNumber_WithinLimit() { + latestBlock, err := suite.processor.CurrentBlock() + suite.Require().NoError(err, "CurrentBlock() should not return an error") + + // Simulate a block number within the allowed range (+2) + blockNumberPassed := new(big.Int).Add(latestBlock, big.NewInt(2)) + err = suite.processor.CompareWithLatestBlockNumber(blockNumberPassed, 5) + + // Expect no error + assert.NoError(suite.T(), err, "Expected no error when block difference is within the limit") +} + +// ❌ Test: If the block number difference exceeds the allowed limit → return an error +func (suite *ProcessorTestSuite) TestCompareWithLatestBlockNumber_ExceedsLimit() { + latestBlock, err := suite.processor.CurrentBlock() + suite.Require().NoError(err, "CurrentBlock() should not return an error") + + // Simulate a block number exceeding the allowed limit (+10) + blockNumberPassed := new(big.Int).Add(latestBlock, big.NewInt(10)) + err = suite.processor.CompareWithLatestBlockNumber(blockNumberPassed, 5) + + // Expect an error + assert.Error(suite.T(), err, "Expected an error when block difference exceeds the limit") + assert.Contains(suite.T(), err.Error(), "authentication failed", "Error message should indicate signature expiration") +} + +// Run the test suite +func TestProcessorTestSuite(t *testing.T) { + suite.Run(t, new(ProcessorTestSuite)) +} diff --git a/blockchain/ethereumClient.go b/blockchain/ethereum_client.go similarity index 88% rename from blockchain/ethereumClient.go rename to blockchain/ethereum_client.go index d0d797fb..d81dc9f7 100644 --- a/blockchain/ethereumClient.go +++ b/blockchain/ethereum_client.go @@ -22,18 +22,12 @@ func basicAuth(username, password string) string { return base64.StdEncoding.EncodeToString([]byte(auth)) } -func CreateEthereumClients() (*EthereumClient, *EthereumClient, error) { +func CreateEthereumClient() (*EthereumClient, error) { ethereumHttpClient, err := CreateHTTPEthereumClient() if err != nil { - return nil, nil, err + return nil, err } - - ethereumWsClient, err := CreateWSEthereumClient() - if err != nil { - return nil, nil, err - } - - return ethereumHttpClient, ethereumWsClient, nil + return ethereumHttpClient, nil } func CreateHTTPEthereumClient() (*EthereumClient, error) { diff --git a/blockchain/orginzationMetadata.go b/blockchain/org_metadata.go similarity index 100% rename from blockchain/orginzationMetadata.go rename to blockchain/org_metadata.go diff --git a/blockchain/orginzationMetadata_test.go b/blockchain/org_metadata_test.go similarity index 100% rename from blockchain/orginzationMetadata_test.go rename to blockchain/org_metadata_test.go diff --git a/blockchain/serviceMetadata.go b/blockchain/service_metadata.go similarity index 98% rename from blockchain/serviceMetadata.go rename to blockchain/service_metadata.go index 8517365e..86266ae4 100644 --- a/blockchain/serviceMetadata.go +++ b/blockchain/service_metadata.go @@ -421,8 +421,8 @@ func setDefaultPricing(metaData *ServiceMetadata) (err error) { return nil } } - err = fmt.Errorf("MetaData does not have the default pricing set ") - zap.L().Warn("Error in set default pricing", zap.Error(err)) + err = fmt.Errorf("metadata does not have the default pricing set") + zap.L().Warn("[setDefaultPricing] Error in set default pricing", zap.Error(err)) return err } @@ -432,13 +432,12 @@ func setMultiPartyEscrowAddress(metaData *ServiceMetadata) { } func setFreeCallData(metaData *ServiceMetadata) error { - if metaData.defaultGroup.FreeCalls > 0 { metaData.isfreeCallAllowed = true metaData.freeCallsAllowed = metaData.defaultGroup.FreeCalls //If the signer address is not a valid address, then return back an error if !common.IsHexAddress(metaData.defaultGroup.FreeCallSigner) { - return fmt.Errorf("MetaData does not have 'free_call_signer_address defined correctly" + errs.ErrDescURL(errs.InvalidMetadata)) + return fmt.Errorf("metadata does not have 'free_call_signer_address defined correctly") } metaData.freeCallSignerAddress = common.HexToAddress(ToChecksumAddress(metaData.defaultGroup.FreeCallSigner)) } diff --git a/blockchain/serviceMetadata_test.go b/blockchain/service_metadata_test.go similarity index 98% rename from blockchain/serviceMetadata_test.go rename to blockchain/service_metadata_test.go index 3e8a9017..9b777270 100644 --- a/blockchain/serviceMetadata_test.go +++ b/blockchain/service_metadata_test.go @@ -69,11 +69,11 @@ func TestInitServiceMetaDataFromJson(t *testing.T) { //Parse Bad JSON _, err = InitServiceMetaDataFromJson([]byte(strings.Replace(testJsonData, "0x7DF35C98f41F3Af0df1dc4c7F7D4C19a71Dd059F", "", 1))) if err != nil { - assert.Contains(t, err.Error(), "MetaData does not have 'free_call_signer_address defined correctly") + assert.Contains(t, err.Error(), "metadata does not have 'free_call_signer_address defined correctly") } _, err = InitServiceMetaDataFromJson([]byte(strings.Replace(testJsonData, "default_pricing", "dummy", 1))) if err != nil { - assert.Equal(t, err.Error(), "MetaData does not have the default pricing set ") + assert.Equal(t, err.Error(), "metadata does not have the default pricing set") } } @@ -98,7 +98,7 @@ func Test_setDefaultPricing(t *testing.T) { err := setDefaultPricing(&ServiceMetadata{}) assert.NotNil(t, err) err = setDefaultPricing(&ServiceMetadata{Groups: []OrganizationGroup{{GroupName: "default_group"}}}) - assert.Equal(t, err.Error(), "MetaData does not have the default pricing set ") + assert.Equal(t, err.Error(), "metadata does not have the default pricing set") } func Test_setGroup(t *testing.T) { diff --git a/config/blockchain_network_config.go b/config/blockchain_network_config.go index 619d9b3e..5d7abbc7 100644 --- a/config/blockchain_network_config.go +++ b/config/blockchain_network_config.go @@ -95,13 +95,13 @@ func setRegistryAddress() (err error) { // fileName, GetString(BlockChainNetworkSelected), err) //} - if err = deriveDatafromJSON(data); err != nil { + if err = deriveDataFromJSON(data); err != nil { return err } return nil } -func deriveDatafromJSON(data []byte) (err error) { +func deriveDataFromJSON(data []byte) (err error) { m := map[string]any{} err = json.Unmarshal(data, &m) if err != nil { diff --git a/config/blockchain_network_config_test.go b/config/blockchain_network_config_test.go index acaeff5e..4060fd76 100644 --- a/config/blockchain_network_config_test.go +++ b/config/blockchain_network_config_test.go @@ -117,7 +117,7 @@ func Test_setRegistryAddress(t *testing.T) { wantErr bool }{ {"11155111", false}, - {"5", false}, + {"1", false}, {"11155111_", true}, } @@ -130,7 +130,6 @@ func Test_setRegistryAddress(t *testing.T) { } }) } - } func Test_setBlockChainNetworkDetails(t *testing.T) { diff --git a/config/config.go b/config/config.go index 64d400ca..88ee9c6f 100644 --- a/config/config.go +++ b/config/config.go @@ -115,7 +115,7 @@ const ( "payment_channel_storage_client": { "connection_timeout": "0s", "request_timeout": "0s", - "hot_reload": true + "hot_reload": false }, "payment_channel_storage_server": { "id": "storage-1", diff --git a/contract_event_listener/listen_organization_metadata_changing.go b/contract_event_listener/listen_organization_metadata_changing.go index 40d5ed20..d50251db 100644 --- a/contract_event_listener/listen_organization_metadata_changing.go +++ b/contract_event_listener/listen_organization_metadata_changing.go @@ -21,6 +21,12 @@ func (l *ContractEventListener) ListenOrganizationMetadataChanging() { } ethWSClient := l.BlockchainProcessor.GetEthWSClient() + if ethWSClient == nil { + err := l.BlockchainProcessor.ConnectToWsClient() + if err != nil { + zap.L().Warn("[ListenOrganizationMetadataChanging]", zap.Error(err)) + } + } registryFilterer := blockchain.GetRegistryFilterer(ethWSClient) orgIdFilter := blockchain.MakeTopicFilterer(l.CurrentOrganizationMetaData.OrgID) diff --git a/go.mod b/go.mod index 43057742..d52a402e 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/OneOfOne/go-utils v0.0.0-20180319162427-6019ff89a94e github.com/bufbuild/protocompile v0.14.1 github.com/emicklei/proto v1.14.0 - github.com/ethereum/go-ethereum v1.15.0 + github.com/ethereum/go-ethereum v1.15.2 github.com/golang-collections/collections v0.0.0-20130729185459-604e922904d3 github.com/golang-jwt/jwt/v5 v5.2.1 github.com/gorilla/handlers v1.5.2 @@ -15,7 +15,7 @@ require ( github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 github.com/improbable-eng/grpc-web v0.15.0 github.com/ipfs/go-cid v0.5.0 - github.com/ipfs/kubo v0.33.1 + github.com/ipfs/kubo v0.33.2 github.com/magiconair/properties v1.8.9 github.com/pkg/errors v0.9.1 github.com/rs/cors v1.11.1 @@ -23,7 +23,7 @@ require ( github.com/singnet/snet-ecosystem-contracts v0.2.1 github.com/soheilhy/cmux v0.1.5 github.com/spf13/cast v1.7.1 - github.com/spf13/cobra v1.8.1 + github.com/spf13/cobra v1.9.1 github.com/spf13/pflag v1.0.6 github.com/spf13/viper v1.19.0 github.com/stretchr/testify v1.10.0 @@ -31,7 +31,7 @@ require ( go.etcd.io/etcd/server/v3 v3.5.18 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.33.0 - golang.org/x/net v0.34.0 + golang.org/x/net v0.35.0 golang.org/x/time v0.10.0 google.golang.org/grpc v1.70.0 google.golang.org/protobuf v1.36.5 @@ -62,7 +62,7 @@ require ( github.com/consensys/gnark-crypto v0.16.0 // indirect github.com/coreos/go-semver v0.3.1 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.6 // indirect github.com/crackcomm/go-gitignore v0.0.0-20241020182519-7843d2ba8fdf // indirect github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a // indirect github.com/crate-crypto/go-kzg-4844 v1.1.0 // indirect @@ -228,7 +228,7 @@ require ( github.com/spaolacci/murmur3 v1.1.0 // indirect github.com/spf13/afero v1.12.0 // indirect github.com/subosito/gotenv v1.6.0 // indirect - github.com/supranational/blst v0.3.13 // indirect + github.com/supranational/blst v0.3.14 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect diff --git a/go.sum b/go.sum index 049a9d9b..f4b45493 100644 --- a/go.sum +++ b/go.sum @@ -150,6 +150,8 @@ github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfc github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.6 h1:XJtiaUW6dEEqVuZiMTn1ldk455QWwEIsMIJlo5vtkx0= +github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/crackcomm/go-gitignore v0.0.0-20241020182519-7843d2ba8fdf h1:dwGgBWn84wUS1pVikGiruW+x5XM4amhjaZO20vCjay4= github.com/crackcomm/go-gitignore v0.0.0-20241020182519-7843d2ba8fdf/go.mod h1:p1d6YEZWvFzEh4KLyvBcVSnrfNDDvK2zfK/4x2v/4pE= github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a h1:W8mUrRp6NOVl3J+MYp5kPMoUZPp7aOYHtaua31lwRHg= @@ -202,6 +204,10 @@ github.com/ethereum/c-kzg-4844 v1.0.3 h1:IEnbOHwjixW2cTvKRUlAAUOeleV7nNM/umJR+qy github.com/ethereum/c-kzg-4844 v1.0.3/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= github.com/ethereum/go-ethereum v1.15.0 h1:LLb2jCPsbJZcB4INw+E/MgzUX5wlR6SdwXcv09/1ME4= github.com/ethereum/go-ethereum v1.15.0/go.mod h1:4q+4t48P2C03sjqGvTXix5lEOplf5dz4CTosbjt5tGs= +github.com/ethereum/go-ethereum v1.15.1 h1:ZR5hh6NXem4hNnhMIrdPFMTGHo6USTwWn47hbs6gRj4= +github.com/ethereum/go-ethereum v1.15.1/go.mod h1:wGQINJKEVUunCeoaA9C9qKMQ9GEOsEIunzzqTUO2F6Y= +github.com/ethereum/go-ethereum v1.15.2 h1:CcU13w1IXOo6FvS60JGCTVcAJ5Ik6RkWoVIvziiHdTU= +github.com/ethereum/go-ethereum v1.15.2/go.mod h1:wGQINJKEVUunCeoaA9C9qKMQ9GEOsEIunzzqTUO2F6Y= github.com/ethereum/go-verkle v0.2.2 h1:I2W0WjnrFUIzzVPwm8ykY+7pL2d4VhlsePn4j7cnFk8= github.com/ethereum/go-verkle v0.2.2/go.mod h1:M3b90YRnzqKyyzBEWJGqj8Qff4IDeXnzFw0P9bFw3uk= github.com/facebookgo/atomicfile v0.0.0-20151019160806-2de1f203e7d5 h1:BBso6MBKW8ncyZLv37o+KNyy0HrrHgfnOaGQC2qvN+A= @@ -545,6 +551,8 @@ github.com/ipfs/go-verifcid v0.0.3 h1:gmRKccqhWDocCRkC+a59g5QW7uJw5bpX9HWBevXa0z github.com/ipfs/go-verifcid v0.0.3/go.mod h1:gcCtGniVzelKrbk9ooUSX/pM3xlH73fZZJDzQJRvOUw= github.com/ipfs/kubo v0.33.1 h1:dvc1o7j//9HAKjZg1d1ODSPVxmUn5YR7Ut5JPnR+H+Q= github.com/ipfs/kubo v0.33.1/go.mod h1:qc3gVRqjx5y9mPvsEz+CO5nc1mXvy4r9Etvqga2lnMo= +github.com/ipfs/kubo v0.33.2 h1:lHB3FhXk9yFjCiYNTNLqOjlUy7WWrIFQzVvOkJg0Ohg= +github.com/ipfs/kubo v0.33.2/go.mod h1:Ie+fLMp88GbFt1K3xjG6sxfzXwoAYlYRMM/DFHtYf8I= github.com/ipld/go-car v0.6.2 h1:Hlnl3Awgnq8icK+ze3iRghk805lu8YNq3wlREDTF2qc= github.com/ipld/go-car v0.6.2/go.mod h1:oEGXdwp6bmxJCZ+rARSkDliTeYnVzv3++eXajZ+Bmr8= github.com/ipld/go-car/v2 v2.14.2 h1:9ERr7KXpCC7If0rChZLhYDlyr6Bes6yRKPJnCO3hdHY= @@ -1049,6 +1057,8 @@ github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cA github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= +github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= +github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= @@ -1081,6 +1091,8 @@ github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8 github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/supranational/blst v0.3.13 h1:AYeSxdOMacwu7FBmpfloBz5pbFXDmJL33RuwnKtmTjk= github.com/supranational/blst v0.3.13/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= +github.com/supranational/blst v0.3.14 h1:xNMoHRJOTwMn63ip6qoWJ2Ymgvj7E2b9jY2FAwY+qRo= +github.com/supranational/blst v0.3.14/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDdvS342BElfbETmL1Aiz3i2t0zfRj16Hs= github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA= @@ -1347,6 +1359,8 @@ golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= +golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8= +golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= diff --git a/ipfsutils/compressed.go b/ipfsutils/compressed.go index e7dc89f2..b0b371e3 100644 --- a/ipfsutils/compressed.go +++ b/ipfsutils/compressed.go @@ -38,12 +38,12 @@ func ReadFilesCompressed(compressedFile []byte) (protos map[string]string, err e } protos[name] = string(data) default: - err = fmt.Errorf(fmt.Sprintf("%s : %c %s %s\n", + err = fmt.Errorf("%s : %c %s %s\n", "Unknown file Type ", header.Typeflag, "in file", name, - )) + ) zap.L().Error(err.Error()) return nil, err } diff --git a/metrics/utils.go b/metrics/utils.go index 3490b1b7..ef3f2f5a 100644 --- a/metrics/utils.go +++ b/metrics/utils.go @@ -124,7 +124,6 @@ func SignMessageForMetering(req *http.Request, commonStats *CommonStats) { req.Header.Set("X-Serviceid", commonStats.ServiceID) req.Header.Set("X-Currentblocknumber", currentBlock.String()) req.Header.Set("X-Signature", b64.StdEncoding.EncodeToString(signature)) - } func getPrivateKeyForMetering() (privateKey *ecdsa.PrivateKey, err error) { diff --git a/ratelimit/rateLimit.go b/ratelimit/rate_limit.go similarity index 100% rename from ratelimit/rateLimit.go rename to ratelimit/rate_limit.go diff --git a/ratelimit/rateLimit_test.go b/ratelimit/rate_limit_test.go similarity index 100% rename from ratelimit/rateLimit_test.go rename to ratelimit/rate_limit_test.go diff --git a/token/jwttoken.go b/token/jwt.go similarity index 100% rename from token/jwttoken.go rename to token/jwt.go diff --git a/token/jwttoken_test.go b/token/jwt_test.go similarity index 100% rename from token/jwttoken_test.go rename to token/jwt_test.go