From ebcf07ccf7265786653770ce09f97097911efc2d Mon Sep 17 00:00:00 2001 From: miiu Date: Mon, 17 Feb 2025 16:39:08 +0200 Subject: [PATCH 01/10] fix linter --- data/block.go | 3 +++ go.mod | 2 +- go.sum | 4 ++-- process/elasticproc/block/blockProcessor.go | 21 +++++++++++++++++ .../elasticproc/block/blockProcessor_test.go | 23 ++++++++++++++++++- 5 files changed, 49 insertions(+), 4 deletions(-) diff --git a/data/block.go b/data/block.go index 73409f75..44084f58 100644 --- a/data/block.go +++ b/data/block.go @@ -2,6 +2,8 @@ package data import ( "time" + + "github.com/multiversx/mx-chain-core-go/data/api" ) // Block is a structure containing all the fields that need @@ -39,6 +41,7 @@ type Block struct { MaxGasLimit uint64 `json:"maxGasLimit"` ScheduledData *ScheduledData `json:"scheduledData,omitempty"` EpochStartShardsData []*EpochStartShardData `json:"epochStartShardsData,omitempty"` + PreviousHeaderProof *api.HeaderProof `json:"previousHeaderProof,omitempty"` RandSeed string `json:"randSeed,omitempty"` PrevRandSeed string `json:"prevRandSeed,omitempty"` Signature string `json:"signature,omitempty"` diff --git a/go.mod b/go.mod index 4747b259..3d2a65ac 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/gin-gonic/gin v1.10.0 github.com/google/uuid v1.6.0 github.com/multiversx/mx-chain-communication-go v1.1.1 - github.com/multiversx/mx-chain-core-go v1.2.24 + github.com/multiversx/mx-chain-core-go v1.2.25-0.20250217130858-055baa51891a github.com/multiversx/mx-chain-logger-go v1.0.15 github.com/multiversx/mx-chain-vm-common-go v1.5.16 github.com/prometheus/client_model v0.4.0 diff --git a/go.sum b/go.sum index 16275e8e..ccbdb331 100644 --- a/go.sum +++ b/go.sum @@ -253,8 +253,8 @@ github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= github.com/multiversx/mx-chain-communication-go v1.1.1 h1:y4DoQeQOJTaSUsRzczQFazf8JYQmInddypApqA3AkwM= github.com/multiversx/mx-chain-communication-go v1.1.1/go.mod h1:WK6bP4pGEHGDDna/AYRIMtl6G9OA0NByI1Lw8PmOnRM= -github.com/multiversx/mx-chain-core-go v1.2.24 h1:O0X7N9GfNVUCE9fukXA+dvfCRRjViYn88zOaE7feUog= -github.com/multiversx/mx-chain-core-go v1.2.24/go.mod h1:B5zU4MFyJezmEzCsAHE9YNULmGCm2zbPHvl9hazNxmE= +github.com/multiversx/mx-chain-core-go v1.2.25-0.20250217130858-055baa51891a h1:iX2qWuxBO3nUKfT5Vs2QGG4KqlB4SgYAv3yW7YWA3GI= +github.com/multiversx/mx-chain-core-go v1.2.25-0.20250217130858-055baa51891a/go.mod h1:B5zU4MFyJezmEzCsAHE9YNULmGCm2zbPHvl9hazNxmE= github.com/multiversx/mx-chain-crypto-go v1.2.12 h1:zWip7rpUS4CGthJxfKn5MZfMfYPjVjIiCID6uX5BSOk= github.com/multiversx/mx-chain-logger-go v1.0.15 h1:HlNdK8etyJyL9NQ+6mIXyKPEBo+wRqOwi3n+m2QIHXc= github.com/multiversx/mx-chain-logger-go v1.0.15/go.mod h1:t3PRKaWB1M+i6gUfD27KXgzLJJC+mAQiN+FLlL1yoGQ= diff --git a/process/elasticproc/block/blockProcessor.go b/process/elasticproc/block/blockProcessor.go index ca74af4b..a4c8b851 100644 --- a/process/elasticproc/block/blockProcessor.go +++ b/process/elasticproc/block/blockProcessor.go @@ -4,6 +4,7 @@ import ( "encoding/hex" "errors" "fmt" + "github.com/multiversx/mx-chain-core-go/data/api" "strconv" "time" @@ -131,9 +132,29 @@ func (bp *blockProcessor) PrepareBlockForDB(obh *outport.OutportBlockWithHeader) appendBlockDetailsFromHeaders(elasticBlock, obh.Header, obh.BlockData.Body, obh.TransactionPool) appendBlockDetailsFromIntraShardMbs(elasticBlock, obh.BlockData.IntraShardMiniBlocks, obh.TransactionPool, len(obh.Header.GetMiniBlockHeaderHandlers())) + appendPreviousHeaderProof(elasticBlock, obh.Header) + return elasticBlock, nil } +func appendPreviousHeaderProof(elasticBlock *data.Block, header coreData.HeaderHandler) { + prevHeaderProof := header.GetPreviousProof() + if prevHeaderProof == nil { + return + } + + elasticBlock.PreviousHeaderProof = &api.HeaderProof{ + PubKeysBitmap: hex.EncodeToString(prevHeaderProof.GetPubKeysBitmap()), + AggregatedSignature: hex.EncodeToString(prevHeaderProof.GetAggregatedSignature()), + HeaderHash: hex.EncodeToString(prevHeaderProof.GetHeaderHash()), + HeaderEpoch: prevHeaderProof.GetHeaderEpoch(), + HeaderNonce: prevHeaderProof.GetHeaderNonce(), + HeaderShardId: prevHeaderProof.GetHeaderShardId(), + HeaderRound: prevHeaderProof.GetHeaderRound(), + IsStartOfEpoch: prevHeaderProof.GetIsStartOfEpoch(), + } +} + func getTxsCount(header coreData.HeaderHandler) (numTxs, notarizedTxs uint32) { numTxs = header.GetTxCount() diff --git a/process/elasticproc/block/blockProcessor_test.go b/process/elasticproc/block/blockProcessor_test.go index fe568236..2831e66b 100644 --- a/process/elasticproc/block/blockProcessor_test.go +++ b/process/elasticproc/block/blockProcessor_test.go @@ -3,6 +3,7 @@ package block import ( "encoding/hex" "errors" + "github.com/multiversx/mx-chain-core-go/data/api" "math/big" "testing" @@ -258,6 +259,16 @@ func TestBlockProcessor_PrepareBlockForDBEpochStartMeta(t *testing.T) { TxCount: 120, }, }, + PreviousHeaderProof: &dataBlock.HeaderProof{ + PubKeysBitmap: []byte("bitmap"), + AggregatedSignature: []byte("sig"), + HeaderHash: []byte("hash"), + HeaderEpoch: 1, + HeaderNonce: 3, + HeaderShardId: 2, + HeaderRound: 4, + IsStartOfEpoch: true, + }, } headerBytes, _ := bp.marshalizer.Marshal(header) @@ -293,7 +304,7 @@ func TestBlockProcessor_PrepareBlockForDBEpochStartMeta(t *testing.T) { Proposer: 0, Validators: nil, PubKeyBitmap: "", - Size: 898, + Size: 1090, SizeTxs: 0, Timestamp: 0, StateRootHash: "", @@ -331,6 +342,16 @@ func TestBlockProcessor_PrepareBlockForDBEpochStartMeta(t *testing.T) { TxsHashes: []string{}, }, }, + PreviousHeaderProof: &api.HeaderProof{ + PubKeysBitmap: "6269746d6170", + AggregatedSignature: "736967", + HeaderHash: "68617368", + HeaderEpoch: 1, + HeaderNonce: 3, + HeaderShardId: 2, + HeaderRound: 4, + IsStartOfEpoch: true, + }, EpochStartShardsData: []*data.EpochStartShardData{ { ShardID: 1, From 2f879391a02a5369fd2593b49a9f5d8f016b1ea9 Mon Sep 17 00:00:00 2001 From: miiu Date: Mon, 17 Feb 2025 15:49:58 +0200 Subject: [PATCH 02/10] fix linter --- client/elasticClientCommon.go | 4 ++-- client/elasticClientScroll.go | 7 ++----- client/elasticClientScroll_test.go | 4 ++-- client/logging/customLogger.go | 5 ++--- integrationtests/utils.go | 4 ++-- process/elasticproc/transactions/serialize.go | 2 +- 6 files changed, 11 insertions(+), 15 deletions(-) diff --git a/client/elasticClientCommon.go b/client/elasticClientCommon.go index 553ca048..94b81f50 100644 --- a/client/elasticClientCommon.go +++ b/client/elasticClientCommon.go @@ -46,7 +46,7 @@ func loadResponseBody(body io.ReadCloser, dest interface{}) error { return nil } if dest == nil { - _, err := io.Copy(ioutil.Discard, body) + _, err := io.Copy(io.Discard, body) return err } @@ -56,7 +56,7 @@ func loadResponseBody(body io.ReadCloser, dest interface{}) error { func elasticDefaultErrorResponseHandler(res *esapi.Response) error { responseBody := map[string]interface{}{} - bodyBytes, err := ioutil.ReadAll(res.Body) + bodyBytes, err := io.ReadAll(res.Body) if err != nil { return fmt.Errorf("%w cannot read elastic response body bytes", err) } diff --git a/client/elasticClientScroll.go b/client/elasticClientScroll.go index 1e1c5037..5448e16c 100644 --- a/client/elasticClientScroll.go +++ b/client/elasticClientScroll.go @@ -4,7 +4,7 @@ import ( "bytes" "context" "fmt" - "io/ioutil" + "io" "net/http" "strconv" "time" @@ -23,9 +23,6 @@ func (ec *elasticClient) DoCountRequest(ctx context.Context, index string, body if err != nil { return 0, err } - if err != nil { - return 0, err - } bodyBytes, err := getBytesFromResponse(res) if err != nil { @@ -139,7 +136,7 @@ func getBytesFromResponse(res *esapi.Response) ([]byte, error) { } defer closeBody(res) - bodyBytes, err := ioutil.ReadAll(res.Body) + bodyBytes, err := io.ReadAll(res.Body) if err != nil { return nil, err } diff --git a/client/elasticClientScroll_test.go b/client/elasticClientScroll_test.go index b0fe3d7b..ab61898d 100644 --- a/client/elasticClientScroll_test.go +++ b/client/elasticClientScroll_test.go @@ -2,7 +2,7 @@ package client import ( "context" - "io/ioutil" + "io" "net/http" "net/http/httptest" "os" @@ -24,7 +24,7 @@ func TestElasticClient_DoCountRequest(t *testing.T) { jsonFile, err := os.Open("./testsData/response-count-request.json") require.Nil(t, err) - byteValue, _ := ioutil.ReadAll(jsonFile) + byteValue, _ := io.ReadAll(jsonFile) _, _ = w.Write(byteValue) } diff --git a/client/logging/customLogger.go b/client/logging/customLogger.go index a42eecdf..aa3547fb 100644 --- a/client/logging/customLogger.go +++ b/client/logging/customLogger.go @@ -2,7 +2,6 @@ package logging import ( "io" - "io/ioutil" "net/http" "time" @@ -28,10 +27,10 @@ func (cl *CustomLogger) LogRoundTrip( ) if req != nil && req.Body != nil && req.Body != http.NoBody { - reqSize, _ = io.Copy(ioutil.Discard, req.Body) + reqSize, _ = io.Copy(io.Discard, req.Body) } if res != nil && res.Body != nil && res.Body != http.NoBody { - resSize, _ = io.Copy(ioutil.Discard, res.Body) + resSize, _ = io.Copy(io.Discard, res.Body) } if err != nil { diff --git a/integrationtests/utils.go b/integrationtests/utils.go index 5fe2aaf8..39baab5e 100644 --- a/integrationtests/utils.go +++ b/integrationtests/utils.go @@ -4,7 +4,6 @@ import ( "encoding/json" "fmt" "io" - "io/ioutil" "net/http" "net/url" "os" @@ -22,6 +21,7 @@ import ( ) var ( + // nolint log = logger.GetOrCreate("integration-tests") pubKeyConverter, _ = pubkeyConverter.NewBech32PubkeyConverter(32, addressPrefix) ) @@ -93,7 +93,7 @@ func getIndexMappings(index string) (string, error) { return "", err } - body, err := ioutil.ReadAll(res.Body) + body, err := io.ReadAll(res.Body) if err != nil { return "", err } diff --git a/process/elasticproc/transactions/serialize.go b/process/elasticproc/transactions/serialize.go index 0f9b57a3..e5188fbc 100644 --- a/process/elasticproc/transactions/serialize.go +++ b/process/elasticproc/transactions/serialize.go @@ -279,7 +279,7 @@ func prepareNFTESDTTransferOrMultiESDTTransfer(marshaledTx []byte) ([]byte, erro } func isNFTTransferOrMultiTransfer(tx *data.Transaction) bool { - if len(tx.SmartContractResults) < 0 || tx.SenderShard != tx.ReceiverShard { + if tx.SenderShard != tx.ReceiverShard { return false } From 1e626a9520a48d7ddff3ced61ae0186d5e8a70e9 Mon Sep 17 00:00:00 2001 From: miiu Date: Wed, 19 Feb 2025 16:25:48 +0200 Subject: [PATCH 03/10] current proof --- data/block.go | 1 + go.mod | 2 +- go.sum | 4 +-- process/elasticproc/block/blockProcessor.go | 33 +++++++++++-------- .../elasticproc/block/blockProcessor_test.go | 20 +++++++++++ 5 files changed, 44 insertions(+), 16 deletions(-) diff --git a/data/block.go b/data/block.go index 44084f58..e2a853cd 100644 --- a/data/block.go +++ b/data/block.go @@ -41,6 +41,7 @@ type Block struct { MaxGasLimit uint64 `json:"maxGasLimit"` ScheduledData *ScheduledData `json:"scheduledData,omitempty"` EpochStartShardsData []*EpochStartShardData `json:"epochStartShardsData,omitempty"` + Proof *api.HeaderProof `json:"proof,omitempty"` PreviousHeaderProof *api.HeaderProof `json:"previousHeaderProof,omitempty"` RandSeed string `json:"randSeed,omitempty"` PrevRandSeed string `json:"prevRandSeed,omitempty"` diff --git a/go.mod b/go.mod index 3d2a65ac..892ebc48 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/gin-gonic/gin v1.10.0 github.com/google/uuid v1.6.0 github.com/multiversx/mx-chain-communication-go v1.1.1 - github.com/multiversx/mx-chain-core-go v1.2.25-0.20250217130858-055baa51891a + github.com/multiversx/mx-chain-core-go v1.2.25-0.20250219104810-75b7a8ff6bbb github.com/multiversx/mx-chain-logger-go v1.0.15 github.com/multiversx/mx-chain-vm-common-go v1.5.16 github.com/prometheus/client_model v0.4.0 diff --git a/go.sum b/go.sum index ccbdb331..f22d15e2 100644 --- a/go.sum +++ b/go.sum @@ -253,8 +253,8 @@ github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= github.com/multiversx/mx-chain-communication-go v1.1.1 h1:y4DoQeQOJTaSUsRzczQFazf8JYQmInddypApqA3AkwM= github.com/multiversx/mx-chain-communication-go v1.1.1/go.mod h1:WK6bP4pGEHGDDna/AYRIMtl6G9OA0NByI1Lw8PmOnRM= -github.com/multiversx/mx-chain-core-go v1.2.25-0.20250217130858-055baa51891a h1:iX2qWuxBO3nUKfT5Vs2QGG4KqlB4SgYAv3yW7YWA3GI= -github.com/multiversx/mx-chain-core-go v1.2.25-0.20250217130858-055baa51891a/go.mod h1:B5zU4MFyJezmEzCsAHE9YNULmGCm2zbPHvl9hazNxmE= +github.com/multiversx/mx-chain-core-go v1.2.25-0.20250219104810-75b7a8ff6bbb h1:XoFaZ3/KEaI7N0o1gqiek+2s/PlqmcvwukAT4iCvAIM= +github.com/multiversx/mx-chain-core-go v1.2.25-0.20250219104810-75b7a8ff6bbb/go.mod h1:B5zU4MFyJezmEzCsAHE9YNULmGCm2zbPHvl9hazNxmE= github.com/multiversx/mx-chain-crypto-go v1.2.12 h1:zWip7rpUS4CGthJxfKn5MZfMfYPjVjIiCID6uX5BSOk= github.com/multiversx/mx-chain-logger-go v1.0.15 h1:HlNdK8etyJyL9NQ+6mIXyKPEBo+wRqOwi3n+m2QIHXc= github.com/multiversx/mx-chain-logger-go v1.0.15/go.mod h1:t3PRKaWB1M+i6gUfD27KXgzLJJC+mAQiN+FLlL1yoGQ= diff --git a/process/elasticproc/block/blockProcessor.go b/process/elasticproc/block/blockProcessor.go index a4c8b851..b21d91be 100644 --- a/process/elasticproc/block/blockProcessor.go +++ b/process/elasticproc/block/blockProcessor.go @@ -132,26 +132,33 @@ func (bp *blockProcessor) PrepareBlockForDB(obh *outport.OutportBlockWithHeader) appendBlockDetailsFromHeaders(elasticBlock, obh.Header, obh.BlockData.Body, obh.TransactionPool) appendBlockDetailsFromIntraShardMbs(elasticBlock, obh.BlockData.IntraShardMiniBlocks, obh.TransactionPool, len(obh.Header.GetMiniBlockHeaderHandlers())) - appendPreviousHeaderProof(elasticBlock, obh.Header) + addProofs(elasticBlock, obh) return elasticBlock, nil } -func appendPreviousHeaderProof(elasticBlock *data.Block, header coreData.HeaderHandler) { - prevHeaderProof := header.GetPreviousProof() - if prevHeaderProof == nil { +func addProofs(elasticBlock *data.Block, obh *outport.OutportBlockWithHeader) { + if obh.BlockData.HeaderProof != nil { + elasticBlock.Proof = proofToAPIProof(obh.BlockData.HeaderProof) + } + + prevHeaderProof := obh.Header.GetPreviousProof() + if check.IfNilReflect(prevHeaderProof) { return } + elasticBlock.PreviousHeaderProof = proofToAPIProof(prevHeaderProof) +} - elasticBlock.PreviousHeaderProof = &api.HeaderProof{ - PubKeysBitmap: hex.EncodeToString(prevHeaderProof.GetPubKeysBitmap()), - AggregatedSignature: hex.EncodeToString(prevHeaderProof.GetAggregatedSignature()), - HeaderHash: hex.EncodeToString(prevHeaderProof.GetHeaderHash()), - HeaderEpoch: prevHeaderProof.GetHeaderEpoch(), - HeaderNonce: prevHeaderProof.GetHeaderNonce(), - HeaderShardId: prevHeaderProof.GetHeaderShardId(), - HeaderRound: prevHeaderProof.GetHeaderRound(), - IsStartOfEpoch: prevHeaderProof.GetIsStartOfEpoch(), +func proofToAPIProof(headerProof coreData.HeaderProofHandler) *api.HeaderProof { + return &api.HeaderProof{ + PubKeysBitmap: hex.EncodeToString(headerProof.GetPubKeysBitmap()), + AggregatedSignature: hex.EncodeToString(headerProof.GetAggregatedSignature()), + HeaderHash: hex.EncodeToString(headerProof.GetHeaderHash()), + HeaderEpoch: headerProof.GetHeaderEpoch(), + HeaderNonce: headerProof.GetHeaderNonce(), + HeaderShardId: headerProof.GetHeaderShardId(), + HeaderRound: headerProof.GetHeaderRound(), + IsStartOfEpoch: headerProof.GetIsStartOfEpoch(), } } diff --git a/process/elasticproc/block/blockProcessor_test.go b/process/elasticproc/block/blockProcessor_test.go index 2831e66b..d81d7678 100644 --- a/process/elasticproc/block/blockProcessor_test.go +++ b/process/elasticproc/block/blockProcessor_test.go @@ -276,6 +276,16 @@ func TestBlockProcessor_PrepareBlockForDBEpochStartMeta(t *testing.T) { Header: header, OutportBlock: &outport.OutportBlock{ BlockData: &outport.BlockData{ + HeaderProof: &dataBlock.HeaderProof{ + PubKeysBitmap: []byte("bitmap1"), + AggregatedSignature: []byte("sig1"), + HeaderHash: []byte("hash1"), + HeaderEpoch: 2, + HeaderNonce: 2, + HeaderShardId: 2, + HeaderRound: 2, + IsStartOfEpoch: false, + }, HeaderBytes: headerBytes, HeaderHash: []byte("hash"), Body: &dataBlock.Body{ @@ -342,6 +352,16 @@ func TestBlockProcessor_PrepareBlockForDBEpochStartMeta(t *testing.T) { TxsHashes: []string{}, }, }, + Proof: &api.HeaderProof{ + PubKeysBitmap: "6269746d617031", + AggregatedSignature: "73696731", + HeaderHash: "6861736831", + HeaderEpoch: 2, + HeaderNonce: 2, + HeaderShardId: 2, + HeaderRound: 2, + IsStartOfEpoch: false, + }, PreviousHeaderProof: &api.HeaderProof{ PubKeysBitmap: "6269746d6170", AggregatedSignature: "736967", From f621df61e15549b84013bf1777b1f2e73b776020 Mon Sep 17 00:00:00 2001 From: miiu Date: Thu, 6 Mar 2025 15:58:42 +0200 Subject: [PATCH 04/10] current proof --- data/block.go | 3 +- go.mod | 2 +- go.sum | 4 +- process/elasticproc/block/blockProcessor.go | 27 ++++++-------- .../elasticproc/block/blockProcessor_test.go | 37 +++++++++++-------- process/elasticproc/block/serialize_test.go | 12 +++--- .../factory/elasticProcessorFactory.go | 2 +- 7 files changed, 46 insertions(+), 41 deletions(-) diff --git a/data/block.go b/data/block.go index e2a853cd..eb2cc661 100644 --- a/data/block.go +++ b/data/block.go @@ -20,7 +20,7 @@ type Block struct { MiniBlocksDetails []*MiniBlocksDetails `json:"miniBlocksDetails,omitempty"` NotarizedBlocksHashes []string `json:"notarizedBlocksHashes"` Proposer uint64 `json:"proposer"` - Validators []uint64 `json:"validators"` + Validators []uint64 `json:"validators,omitempty"` PubKeyBitmap string `json:"pubKeyBitmap"` Size int64 `json:"size"` SizeTxs int64 `json:"sizeTxs"` @@ -51,6 +51,7 @@ type Block struct { SoftwareVersion string `json:"softwareVersion,omitempty"` ReceiptsHash string `json:"receiptsHash,omitempty"` Reserved []byte `json:"reserved,omitempty"` + LeaderBLSKey string `json:"leaderBlsKey,omitempty"` } // MiniBlocksDetails is a structure that hold information about mini-blocks execution details diff --git a/go.mod b/go.mod index 892ebc48..981b4034 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/gin-gonic/gin v1.10.0 github.com/google/uuid v1.6.0 github.com/multiversx/mx-chain-communication-go v1.1.1 - github.com/multiversx/mx-chain-core-go v1.2.25-0.20250219104810-75b7a8ff6bbb + github.com/multiversx/mx-chain-core-go v1.2.25-0.20250306125819-46a071b85ade github.com/multiversx/mx-chain-logger-go v1.0.15 github.com/multiversx/mx-chain-vm-common-go v1.5.16 github.com/prometheus/client_model v0.4.0 diff --git a/go.sum b/go.sum index f22d15e2..04e7c5b5 100644 --- a/go.sum +++ b/go.sum @@ -253,8 +253,8 @@ github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= github.com/multiversx/mx-chain-communication-go v1.1.1 h1:y4DoQeQOJTaSUsRzczQFazf8JYQmInddypApqA3AkwM= github.com/multiversx/mx-chain-communication-go v1.1.1/go.mod h1:WK6bP4pGEHGDDna/AYRIMtl6G9OA0NByI1Lw8PmOnRM= -github.com/multiversx/mx-chain-core-go v1.2.25-0.20250219104810-75b7a8ff6bbb h1:XoFaZ3/KEaI7N0o1gqiek+2s/PlqmcvwukAT4iCvAIM= -github.com/multiversx/mx-chain-core-go v1.2.25-0.20250219104810-75b7a8ff6bbb/go.mod h1:B5zU4MFyJezmEzCsAHE9YNULmGCm2zbPHvl9hazNxmE= +github.com/multiversx/mx-chain-core-go v1.2.25-0.20250306125819-46a071b85ade h1:jLSSdm/X8T2H+I9/+wHvFuS9FBbXjTfNPJYZpzDdj/I= +github.com/multiversx/mx-chain-core-go v1.2.25-0.20250306125819-46a071b85ade/go.mod h1:B5zU4MFyJezmEzCsAHE9YNULmGCm2zbPHvl9hazNxmE= github.com/multiversx/mx-chain-crypto-go v1.2.12 h1:zWip7rpUS4CGthJxfKn5MZfMfYPjVjIiCID6uX5BSOk= github.com/multiversx/mx-chain-logger-go v1.0.15 h1:HlNdK8etyJyL9NQ+6mIXyKPEBo+wRqOwi3n+m2QIHXc= github.com/multiversx/mx-chain-logger-go v1.0.15/go.mod h1:t3PRKaWB1M+i6gUfD27KXgzLJJC+mAQiN+FLlL1yoGQ= diff --git a/process/elasticproc/block/blockProcessor.go b/process/elasticproc/block/blockProcessor.go index b21d91be..ce3129b6 100644 --- a/process/elasticproc/block/blockProcessor.go +++ b/process/elasticproc/block/blockProcessor.go @@ -34,22 +34,27 @@ var ( ) type blockProcessor struct { - hasher hashing.Hasher - marshalizer marshal.Marshalizer + hasher hashing.Hasher + marshalizer marshal.Marshalizer + validatorsPubKeyConverter core.PubkeyConverter } // NewBlockProcessor will create a new instance of block processor -func NewBlockProcessor(hasher hashing.Hasher, marshalizer marshal.Marshalizer) (*blockProcessor, error) { +func NewBlockProcessor(hasher hashing.Hasher, marshalizer marshal.Marshalizer, validatorsPubKeyConverter core.PubkeyConverter) (*blockProcessor, error) { if check.IfNil(hasher) { return nil, indexer.ErrNilHasher } if check.IfNil(marshalizer) { return nil, indexer.ErrNilMarshalizer } + if check.IfNil(validatorsPubKeyConverter) { + return nil, indexer.ErrNilPubkeyConverter + } return &blockProcessor{ - hasher: hasher, - marshalizer: marshalizer, + hasher: hasher, + marshalizer: marshalizer, + validatorsPubKeyConverter: validatorsPubKeyConverter, }, nil } @@ -75,7 +80,6 @@ func (bp *blockProcessor) PrepareBlockForDB(obh *outport.OutportBlockWithHeader) sizeTxs := computeSizeOfTransactions(obh.TransactionPool) miniblocksHashes := bp.getEncodedMBSHashes(obh.BlockData.Body, obh.BlockData.IntraShardMiniBlocks) - leaderIndex := bp.getLeaderIndex(obh.SignersIndexes) numTxs, notarizedTxs := getTxsCount(obh.Header) elasticBlock := &data.Block{ @@ -86,7 +90,8 @@ func (bp *blockProcessor) PrepareBlockForDB(obh *outport.OutportBlockWithHeader) Hash: hex.EncodeToString(obh.BlockData.HeaderHash), MiniBlocksHashes: miniblocksHashes, NotarizedBlocksHashes: obh.NotarizedHeadersHashes, - Proposer: leaderIndex, + Proposer: obh.LeaderIndex, + LeaderBLSKey: hex.EncodeToString([]byte(obh.LeaderBLSKey)), Validators: obh.SignersIndexes, PubKeyBitmap: hex.EncodeToString(obh.Header.GetPubKeysBitmap()), Size: int64(blockSizeInBytes), @@ -396,14 +401,6 @@ func (bp *blockProcessor) computeBlockSize(headerBytes []byte, body *block.Body) return blockSize, nil } -func (bp *blockProcessor) getLeaderIndex(signersIndexes []uint64) uint64 { - if len(signersIndexes) > 0 { - return signersIndexes[0] - } - - return 0 -} - func computeBlockSearchOrder(header coreData.HeaderHandler) uint64 { shardIdentifier := createShardIdentifier(header.GetShardID()) stringOrder := fmt.Sprintf("1%02d%d", shardIdentifier, header.GetNonce()) diff --git a/process/elasticproc/block/blockProcessor_test.go b/process/elasticproc/block/blockProcessor_test.go index d81d7678..4aa4490a 100644 --- a/process/elasticproc/block/blockProcessor_test.go +++ b/process/elasticproc/block/blockProcessor_test.go @@ -26,27 +26,34 @@ func TestNewBlockProcessor(t *testing.T) { tests := []struct { name string - argsFunc func() (hashing.Hasher, marshal.Marshalizer) + argsFunc func() (hashing.Hasher, marshal.Marshalizer, core.PubkeyConverter) exErr error }{ { name: "NilMarshalizer", - argsFunc: func() (hashing.Hasher, marshal.Marshalizer) { - return &mock.HasherMock{}, nil + argsFunc: func() (hashing.Hasher, marshal.Marshalizer, core.PubkeyConverter) { + return &mock.HasherMock{}, nil, nil }, exErr: indexer.ErrNilMarshalizer, }, { name: "NilHasher", - argsFunc: func() (hashing.Hasher, marshal.Marshalizer) { - return nil, &mock.MarshalizerMock{} + argsFunc: func() (hashing.Hasher, marshal.Marshalizer, core.PubkeyConverter) { + return nil, &mock.MarshalizerMock{}, nil }, exErr: indexer.ErrNilHasher, }, + { + name: "NilValidatorPubKeyConverter", + argsFunc: func() (hashing.Hasher, marshal.Marshalizer, core.PubkeyConverter) { + return &mock.HasherMock{}, &mock.MarshalizerMock{}, nil + }, + exErr: indexer.ErrNilPubkeyConverter, + }, { name: "ShouldWork", - argsFunc: func() (hashing.Hasher, marshal.Marshalizer) { - return &mock.HasherMock{}, &mock.MarshalizerMock{} + argsFunc: func() (hashing.Hasher, marshal.Marshalizer, core.PubkeyConverter) { + return &mock.HasherMock{}, &mock.MarshalizerMock{}, &mock.PubkeyConverterMock{} }, exErr: nil, }, @@ -61,7 +68,7 @@ func TestNewBlockProcessor(t *testing.T) { func TestBlockProcessor_PrepareBlockForDBShouldWork(t *testing.T) { t.Parallel() - bp, _ := NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}) + bp, _ := NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}, &mock.PubkeyConverterMock{}) outportBlockWithHeader := &outport.OutportBlockWithHeader{ Header: &dataBlock.Header{ @@ -123,7 +130,7 @@ func TestBlockProcessor_PrepareBlockForDBShouldWork(t *testing.T) { func TestBlockProcessor_PrepareBlockForDBNilHeader(t *testing.T) { t.Parallel() - bp, _ := NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}) + bp, _ := NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}, &mock.PubkeyConverterMock{}) outportBlockWithHeader := &outport.OutportBlockWithHeader{} dbBlock, err := bp.PrepareBlockForDB(outportBlockWithHeader) @@ -134,7 +141,7 @@ func TestBlockProcessor_PrepareBlockForDBNilHeader(t *testing.T) { func TestBlockProcessor_PrepareBlockForDBNilBody(t *testing.T) { t.Parallel() - bp, _ := NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}) + bp, _ := NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}, &mock.PubkeyConverterMock{}) outportBlockWithHeader := &outport.OutportBlockWithHeader{ Header: &dataBlock.MetaBlock{}, @@ -155,7 +162,7 @@ func TestBlockProcessor_PrepareBlockForDBMarshalFailHeader(t *testing.T) { MarshalCalled: func(obj interface{}) ([]byte, error) { return nil, expectedErr }, - }) + }, &mock.PubkeyConverterMock{}) outportBlockWithHeader := &outport.OutportBlockWithHeader{ Header: &dataBlock.Header{}, @@ -182,7 +189,7 @@ func TestBlockProcessor_PrepareBlockForDBMarshalFailBlock(t *testing.T) { MarshalCalled: func(obj interface{}) ([]byte, error) { return nil, expectedErr }, - }) + }, &mock.PubkeyConverterMock{}) outportBlockWithHeader := &outport.OutportBlockWithHeader{ Header: &dataBlock.Header{}, @@ -204,7 +211,7 @@ func TestBlockProcessor_PrepareBlockForDBMarshalFailBlock(t *testing.T) { func TestBlockProcessor_ComputeHeaderHash(t *testing.T) { t.Parallel() - bp, _ := NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}) + bp, _ := NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}, &mock.PubkeyConverterMock{}) header := &dataBlock.Header{} hashBytes, err := bp.ComputeHeaderHash(header) @@ -215,7 +222,7 @@ func TestBlockProcessor_ComputeHeaderHash(t *testing.T) { func TestBlockProcessor_PrepareBlockForDBEpochStartMeta(t *testing.T) { t.Parallel() - bp, _ := NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}) + bp, _ := NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}, &mock.PubkeyConverterMock{}) header := &dataBlock.MetaBlock{ TxCount: 1000, @@ -405,7 +412,7 @@ func TestBlockProcessor_PrepareBlockForDBMiniBlocksDetails(t *testing.T) { t.Parallel() gogoMarshaller := &marshal.GogoProtoMarshalizer{} - bp, _ := NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}) + bp, _ := NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}, &mock.PubkeyConverterMock{}) mbhr := &dataBlock.MiniBlockHeaderReserved{ IndexOfFirstTxProcessed: 0, diff --git a/process/elasticproc/block/serialize_test.go b/process/elasticproc/block/serialize_test.go index e88fb1dc..c8146550 100644 --- a/process/elasticproc/block/serialize_test.go +++ b/process/elasticproc/block/serialize_test.go @@ -16,7 +16,7 @@ import ( func TestBlockProcessor_SerializeBlockNilElasticBlockErrors(t *testing.T) { t.Parallel() - bp, _ := NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}) + bp, _ := NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}, &mock.PubkeyConverterMock{}) err := bp.SerializeBlock(nil, nil, "") require.True(t, errors.Is(err, dataindexer.ErrNilElasticBlock)) @@ -25,20 +25,20 @@ func TestBlockProcessor_SerializeBlockNilElasticBlockErrors(t *testing.T) { func TestBlockProcessor_SerializeBlock(t *testing.T) { t.Parallel() - bp, _ := NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}) + bp, _ := NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}, &mock.PubkeyConverterMock{}) buffSlice := data.NewBufferSlice(data.DefaultMaxBulkSize) err := bp.SerializeBlock(&data.Block{Nonce: 1}, buffSlice, "blocks") require.Nil(t, err) require.Equal(t, `{ "index" : { "_index":"blocks", "_id" : "" } } -{"uuid":"","nonce":1,"round":0,"epoch":0,"miniBlocksHashes":null,"notarizedBlocksHashes":null,"proposer":0,"validators":null,"pubKeyBitmap":"","size":0,"sizeTxs":0,"timestamp":0,"stateRootHash":"","prevHash":"","shardId":0,"txCount":0,"notarizedTxsCount":0,"accumulatedFees":"","developerFees":"","epochStartBlock":false,"searchOrder":0,"gasProvided":0,"gasRefunded":0,"gasPenalized":0,"maxGasLimit":0} +{"uuid":"","nonce":1,"round":0,"epoch":0,"miniBlocksHashes":null,"notarizedBlocksHashes":null,"proposer":0,"pubKeyBitmap":"","size":0,"sizeTxs":0,"timestamp":0,"stateRootHash":"","prevHash":"","shardId":0,"txCount":0,"notarizedTxsCount":0,"accumulatedFees":"","developerFees":"","epochStartBlock":false,"searchOrder":0,"gasProvided":0,"gasRefunded":0,"gasPenalized":0,"maxGasLimit":0} `, buffSlice.Buffers()[0].String()) } func TestBlockProcessor_SerializeEpochInfoDataErrors(t *testing.T) { t.Parallel() - bp, _ := NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}) + bp, _ := NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}, &mock.PubkeyConverterMock{}) err := bp.SerializeEpochInfoData(nil, nil, "") require.Equal(t, dataindexer.ErrNilHeaderHandler, err) @@ -50,7 +50,7 @@ func TestBlockProcessor_SerializeEpochInfoDataErrors(t *testing.T) { func TestBlockProcessor_SerializeEpochInfoData(t *testing.T) { t.Parallel() - bp, _ := NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}) + bp, _ := NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}, &mock.PubkeyConverterMock{}) buffSlice := data.NewBufferSlice(data.DefaultMaxBulkSize) err := bp.SerializeEpochInfoData(&dataBlock.MetaBlock{ @@ -66,7 +66,7 @@ func TestBlockProcessor_SerializeEpochInfoData(t *testing.T) { func TestBlockProcessor_SerializeBlockEpochStartMeta(t *testing.T) { t.Parallel() - bp, _ := NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}) + bp, _ := NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}, &mock.PubkeyConverterMock{}) buffSlice := data.NewBufferSlice(data.DefaultMaxBulkSize) err := bp.SerializeBlock(&data.Block{ diff --git a/process/elasticproc/factory/elasticProcessorFactory.go b/process/elasticproc/factory/elasticProcessorFactory.go index ad865953..37ea72e0 100644 --- a/process/elasticproc/factory/elasticProcessorFactory.go +++ b/process/elasticproc/factory/elasticProcessorFactory.go @@ -66,7 +66,7 @@ func CreateElasticProcessor(arguments ArgElasticProcessorFactory) (dataindexer.E return nil, err } - blockProcHandler, err := blockProc.NewBlockProcessor(arguments.Hasher, arguments.Marshalizer) + blockProcHandler, err := blockProc.NewBlockProcessor(arguments.Hasher, arguments.Marshalizer, arguments.ValidatorPubkeyConverter) if err != nil { return nil, err } From a9aeb5121a6f45827ab3bde1279cebb08be8fe64 Mon Sep 17 00:00:00 2001 From: miiu Date: Thu, 6 Mar 2025 16:03:31 +0200 Subject: [PATCH 05/10] fix unit tests --- process/elasticproc/elasticProcessor_test.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/process/elasticproc/elasticProcessor_test.go b/process/elasticproc/elasticProcessor_test.go index 9f3311af..ac9123b9 100644 --- a/process/elasticproc/elasticProcessor_test.go +++ b/process/elasticproc/elasticProcessor_test.go @@ -62,7 +62,7 @@ func createMockElasticProcessorArgs() *ArgElasticProcessor { balanceConverter, _ := converters.NewBalanceConverter(10) acp, _ := accounts.NewAccountsProcessor(&mock.PubkeyConverterMock{}, balanceConverter) - bp, _ := block.NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}) + bp, _ := block.NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}, &mock.PubkeyConverterMock{}) mp, _ := miniblocks.NewMiniblocksProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}) vp, _ := validators.NewValidatorsProcessor(mock.NewPubkeyConverterMock(32), 0) args := logsevents.ArgsLogsAndEventsProcessor{ @@ -244,7 +244,7 @@ func TestElasticProcessor_RemoveHeader(t *testing.T) { }, } - args.BlockProc, _ = block.NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}) + args.BlockProc, _ = block.NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}, &mock.PubkeyConverterMock{}) elasticProc, err := NewElasticProcessor(args) require.NoError(t, err) @@ -329,7 +329,7 @@ func TestElasticseachDatabaseSaveHeader_RequestError(t *testing.T) { return localErr }, } - arguments.BlockProc, _ = block.NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}) + arguments.BlockProc, _ = block.NewBlockProcessor(&mock.HasherMock{}, &mock.MarshalizerMock{}, &mock.PubkeyConverterMock{}) elasticDatabase := newElasticsearchProcessor(dbWriter, arguments) err := elasticDatabase.SaveHeader(createEmptyOutportBlockWithHeader()) From 58675dd2ea38fdaa6a969ca8a9b7a6bdddedb569 Mon Sep 17 00:00:00 2001 From: miiu Date: Tue, 11 Mar 2025 10:50:08 +0200 Subject: [PATCH 06/10] fixes --- data/block.go | 2 +- process/elasticproc/block/blockProcessor.go | 4 +++- process/elasticproc/block/blockProcessor_test.go | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/data/block.go b/data/block.go index eb2cc661..39b56a7b 100644 --- a/data/block.go +++ b/data/block.go @@ -51,7 +51,7 @@ type Block struct { SoftwareVersion string `json:"softwareVersion,omitempty"` ReceiptsHash string `json:"receiptsHash,omitempty"` Reserved []byte `json:"reserved,omitempty"` - LeaderBLSKey string `json:"leaderBlsKey,omitempty"` + ProposerBlsKey string `json:"proposerBlsKey,omitempty"` } // MiniBlocksDetails is a structure that hold information about mini-blocks execution details diff --git a/process/elasticproc/block/blockProcessor.go b/process/elasticproc/block/blockProcessor.go index ce3129b6..c3b4942c 100644 --- a/process/elasticproc/block/blockProcessor.go +++ b/process/elasticproc/block/blockProcessor.go @@ -91,7 +91,7 @@ func (bp *blockProcessor) PrepareBlockForDB(obh *outport.OutportBlockWithHeader) MiniBlocksHashes: miniblocksHashes, NotarizedBlocksHashes: obh.NotarizedHeadersHashes, Proposer: obh.LeaderIndex, - LeaderBLSKey: hex.EncodeToString([]byte(obh.LeaderBLSKey)), + ProposerBlsKey: hex.EncodeToString(obh.LeaderBLSKey), Validators: obh.SignersIndexes, PubKeyBitmap: hex.EncodeToString(obh.Header.GetPubKeysBitmap()), Size: int64(blockSizeInBytes), @@ -145,6 +145,7 @@ func (bp *blockProcessor) PrepareBlockForDB(obh *outport.OutportBlockWithHeader) func addProofs(elasticBlock *data.Block, obh *outport.OutportBlockWithHeader) { if obh.BlockData.HeaderProof != nil { elasticBlock.Proof = proofToAPIProof(obh.BlockData.HeaderProof) + elasticBlock.PubKeyBitmap = elasticBlock.Proof.PubKeysBitmap } prevHeaderProof := obh.Header.GetPreviousProof() @@ -152,6 +153,7 @@ func addProofs(elasticBlock *data.Block, obh *outport.OutportBlockWithHeader) { return } elasticBlock.PreviousHeaderProof = proofToAPIProof(prevHeaderProof) + } func proofToAPIProof(headerProof coreData.HeaderProofHandler) *api.HeaderProof { diff --git a/process/elasticproc/block/blockProcessor_test.go b/process/elasticproc/block/blockProcessor_test.go index 4aa4490a..94d096c2 100644 --- a/process/elasticproc/block/blockProcessor_test.go +++ b/process/elasticproc/block/blockProcessor_test.go @@ -320,7 +320,7 @@ func TestBlockProcessor_PrepareBlockForDBEpochStartMeta(t *testing.T) { NotarizedBlocksHashes: nil, Proposer: 0, Validators: nil, - PubKeyBitmap: "", + PubKeyBitmap: "6269746d617031", Size: 1090, SizeTxs: 0, Timestamp: 0, From 23de59c199cb28e288c60a86fed141c6bbc0aa6d Mon Sep 17 00:00:00 2001 From: Sorin Stanculeanu Date: Fri, 28 Mar 2025 17:30:12 +0200 Subject: [PATCH 07/10] updated deps --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 981b4034..4ee69aea 100644 --- a/go.mod +++ b/go.mod @@ -7,8 +7,8 @@ require ( github.com/gin-contrib/cors v1.4.0 github.com/gin-gonic/gin v1.10.0 github.com/google/uuid v1.6.0 - github.com/multiversx/mx-chain-communication-go v1.1.1 - github.com/multiversx/mx-chain-core-go v1.2.25-0.20250306125819-46a071b85ade + github.com/multiversx/mx-chain-communication-go v1.2.0 + github.com/multiversx/mx-chain-core-go v1.3.0 github.com/multiversx/mx-chain-logger-go v1.0.15 github.com/multiversx/mx-chain-vm-common-go v1.5.16 github.com/prometheus/client_model v0.4.0 diff --git a/go.sum b/go.sum index 04e7c5b5..bb3e6632 100644 --- a/go.sum +++ b/go.sum @@ -251,10 +251,10 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= -github.com/multiversx/mx-chain-communication-go v1.1.1 h1:y4DoQeQOJTaSUsRzczQFazf8JYQmInddypApqA3AkwM= -github.com/multiversx/mx-chain-communication-go v1.1.1/go.mod h1:WK6bP4pGEHGDDna/AYRIMtl6G9OA0NByI1Lw8PmOnRM= -github.com/multiversx/mx-chain-core-go v1.2.25-0.20250306125819-46a071b85ade h1:jLSSdm/X8T2H+I9/+wHvFuS9FBbXjTfNPJYZpzDdj/I= -github.com/multiversx/mx-chain-core-go v1.2.25-0.20250306125819-46a071b85ade/go.mod h1:B5zU4MFyJezmEzCsAHE9YNULmGCm2zbPHvl9hazNxmE= +github.com/multiversx/mx-chain-communication-go v1.2.0 h1:0wOoLldiRbvaOPxwICbnRCqCpLqPewg8M/FMbC/0OXY= +github.com/multiversx/mx-chain-communication-go v1.2.0/go.mod h1:wS3aAwkmHbC9mlzQdvL6p7l8Rqw3vmzhj7WZW1dTveA= +github.com/multiversx/mx-chain-core-go v1.3.0 h1:GhDlvwHAhG5AabgCoGxwdtTEzVCa0KPkGAKB+BtIgQ0= +github.com/multiversx/mx-chain-core-go v1.3.0/go.mod h1:B5zU4MFyJezmEzCsAHE9YNULmGCm2zbPHvl9hazNxmE= github.com/multiversx/mx-chain-crypto-go v1.2.12 h1:zWip7rpUS4CGthJxfKn5MZfMfYPjVjIiCID6uX5BSOk= github.com/multiversx/mx-chain-logger-go v1.0.15 h1:HlNdK8etyJyL9NQ+6mIXyKPEBo+wRqOwi3n+m2QIHXc= github.com/multiversx/mx-chain-logger-go v1.0.15/go.mod h1:t3PRKaWB1M+i6gUfD27KXgzLJJC+mAQiN+FLlL1yoGQ= From 8ae6f5bb643ff0c099a4e7a9f891f9d6d55ffccc Mon Sep 17 00:00:00 2001 From: miiu Date: Thu, 3 Apr 2025 10:18:21 +0300 Subject: [PATCH 08/10] remove prev proof --- data/block.go | 1 - process/elasticproc/block/blockProcessor.go | 7 ------ .../elasticproc/block/blockProcessor_test.go | 22 +------------------ 3 files changed, 1 insertion(+), 29 deletions(-) diff --git a/data/block.go b/data/block.go index 39b56a7b..e8720aa4 100644 --- a/data/block.go +++ b/data/block.go @@ -42,7 +42,6 @@ type Block struct { ScheduledData *ScheduledData `json:"scheduledData,omitempty"` EpochStartShardsData []*EpochStartShardData `json:"epochStartShardsData,omitempty"` Proof *api.HeaderProof `json:"proof,omitempty"` - PreviousHeaderProof *api.HeaderProof `json:"previousHeaderProof,omitempty"` RandSeed string `json:"randSeed,omitempty"` PrevRandSeed string `json:"prevRandSeed,omitempty"` Signature string `json:"signature,omitempty"` diff --git a/process/elasticproc/block/blockProcessor.go b/process/elasticproc/block/blockProcessor.go index c3b4942c..5b9cbb93 100644 --- a/process/elasticproc/block/blockProcessor.go +++ b/process/elasticproc/block/blockProcessor.go @@ -147,13 +147,6 @@ func addProofs(elasticBlock *data.Block, obh *outport.OutportBlockWithHeader) { elasticBlock.Proof = proofToAPIProof(obh.BlockData.HeaderProof) elasticBlock.PubKeyBitmap = elasticBlock.Proof.PubKeysBitmap } - - prevHeaderProof := obh.Header.GetPreviousProof() - if check.IfNilReflect(prevHeaderProof) { - return - } - elasticBlock.PreviousHeaderProof = proofToAPIProof(prevHeaderProof) - } func proofToAPIProof(headerProof coreData.HeaderProofHandler) *api.HeaderProof { diff --git a/process/elasticproc/block/blockProcessor_test.go b/process/elasticproc/block/blockProcessor_test.go index 94d096c2..8ca752ec 100644 --- a/process/elasticproc/block/blockProcessor_test.go +++ b/process/elasticproc/block/blockProcessor_test.go @@ -266,16 +266,6 @@ func TestBlockProcessor_PrepareBlockForDBEpochStartMeta(t *testing.T) { TxCount: 120, }, }, - PreviousHeaderProof: &dataBlock.HeaderProof{ - PubKeysBitmap: []byte("bitmap"), - AggregatedSignature: []byte("sig"), - HeaderHash: []byte("hash"), - HeaderEpoch: 1, - HeaderNonce: 3, - HeaderShardId: 2, - HeaderRound: 4, - IsStartOfEpoch: true, - }, } headerBytes, _ := bp.marshalizer.Marshal(header) @@ -321,7 +311,7 @@ func TestBlockProcessor_PrepareBlockForDBEpochStartMeta(t *testing.T) { Proposer: 0, Validators: nil, PubKeyBitmap: "6269746d617031", - Size: 1090, + Size: 925, SizeTxs: 0, Timestamp: 0, StateRootHash: "", @@ -369,16 +359,6 @@ func TestBlockProcessor_PrepareBlockForDBEpochStartMeta(t *testing.T) { HeaderRound: 2, IsStartOfEpoch: false, }, - PreviousHeaderProof: &api.HeaderProof{ - PubKeysBitmap: "6269746d6170", - AggregatedSignature: "736967", - HeaderHash: "68617368", - HeaderEpoch: 1, - HeaderNonce: 3, - HeaderShardId: 2, - HeaderRound: 4, - IsStartOfEpoch: true, - }, EpochStartShardsData: []*data.EpochStartShardData{ { ShardID: 1, From cb94570ac1a7b8871f2da93e3a7d0cdf48412da1 Mon Sep 17 00:00:00 2001 From: miiu Date: Fri, 4 Apr 2025 10:30:03 +0300 Subject: [PATCH 09/10] remove prev proof --- go.mod | 2 +- go.sum | 4 ++-- process/elasticproc/block/blockProcessor_test.go | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 4ee69aea..a441ab52 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/gin-gonic/gin v1.10.0 github.com/google/uuid v1.6.0 github.com/multiversx/mx-chain-communication-go v1.2.0 - github.com/multiversx/mx-chain-core-go v1.3.0 + github.com/multiversx/mx-chain-core-go v1.3.1-0.20250404072410-a7e6e011c70f github.com/multiversx/mx-chain-logger-go v1.0.15 github.com/multiversx/mx-chain-vm-common-go v1.5.16 github.com/prometheus/client_model v0.4.0 diff --git a/go.sum b/go.sum index bb3e6632..80de3ec6 100644 --- a/go.sum +++ b/go.sum @@ -253,8 +253,8 @@ github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= github.com/multiversx/mx-chain-communication-go v1.2.0 h1:0wOoLldiRbvaOPxwICbnRCqCpLqPewg8M/FMbC/0OXY= github.com/multiversx/mx-chain-communication-go v1.2.0/go.mod h1:wS3aAwkmHbC9mlzQdvL6p7l8Rqw3vmzhj7WZW1dTveA= -github.com/multiversx/mx-chain-core-go v1.3.0 h1:GhDlvwHAhG5AabgCoGxwdtTEzVCa0KPkGAKB+BtIgQ0= -github.com/multiversx/mx-chain-core-go v1.3.0/go.mod h1:B5zU4MFyJezmEzCsAHE9YNULmGCm2zbPHvl9hazNxmE= +github.com/multiversx/mx-chain-core-go v1.3.1-0.20250404072410-a7e6e011c70f h1:Ma+t5PpKCsfcxGPEsW59okfEHk5Ojc0kCfcWaq21SvY= +github.com/multiversx/mx-chain-core-go v1.3.1-0.20250404072410-a7e6e011c70f/go.mod h1:B5zU4MFyJezmEzCsAHE9YNULmGCm2zbPHvl9hazNxmE= github.com/multiversx/mx-chain-crypto-go v1.2.12 h1:zWip7rpUS4CGthJxfKn5MZfMfYPjVjIiCID6uX5BSOk= github.com/multiversx/mx-chain-logger-go v1.0.15 h1:HlNdK8etyJyL9NQ+6mIXyKPEBo+wRqOwi3n+m2QIHXc= github.com/multiversx/mx-chain-logger-go v1.0.15/go.mod h1:t3PRKaWB1M+i6gUfD27KXgzLJJC+mAQiN+FLlL1yoGQ= diff --git a/process/elasticproc/block/blockProcessor_test.go b/process/elasticproc/block/blockProcessor_test.go index 8ca752ec..a4ca8a81 100644 --- a/process/elasticproc/block/blockProcessor_test.go +++ b/process/elasticproc/block/blockProcessor_test.go @@ -311,7 +311,7 @@ func TestBlockProcessor_PrepareBlockForDBEpochStartMeta(t *testing.T) { Proposer: 0, Validators: nil, PubKeyBitmap: "6269746d617031", - Size: 925, + Size: 898, SizeTxs: 0, Timestamp: 0, StateRootHash: "", From a26fb7ffa7b0083b3f88c688332336bf9a30a6a1 Mon Sep 17 00:00:00 2001 From: Sorin Stanculeanu Date: Fri, 9 May 2025 18:42:13 +0300 Subject: [PATCH 10/10] update core go --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index a441ab52..e1a24574 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/gin-gonic/gin v1.10.0 github.com/google/uuid v1.6.0 github.com/multiversx/mx-chain-communication-go v1.2.0 - github.com/multiversx/mx-chain-core-go v1.3.1-0.20250404072410-a7e6e011c70f + github.com/multiversx/mx-chain-core-go v1.3.1 github.com/multiversx/mx-chain-logger-go v1.0.15 github.com/multiversx/mx-chain-vm-common-go v1.5.16 github.com/prometheus/client_model v0.4.0 diff --git a/go.sum b/go.sum index 80de3ec6..a5313de0 100644 --- a/go.sum +++ b/go.sum @@ -253,8 +253,8 @@ github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= github.com/multiversx/mx-chain-communication-go v1.2.0 h1:0wOoLldiRbvaOPxwICbnRCqCpLqPewg8M/FMbC/0OXY= github.com/multiversx/mx-chain-communication-go v1.2.0/go.mod h1:wS3aAwkmHbC9mlzQdvL6p7l8Rqw3vmzhj7WZW1dTveA= -github.com/multiversx/mx-chain-core-go v1.3.1-0.20250404072410-a7e6e011c70f h1:Ma+t5PpKCsfcxGPEsW59okfEHk5Ojc0kCfcWaq21SvY= -github.com/multiversx/mx-chain-core-go v1.3.1-0.20250404072410-a7e6e011c70f/go.mod h1:B5zU4MFyJezmEzCsAHE9YNULmGCm2zbPHvl9hazNxmE= +github.com/multiversx/mx-chain-core-go v1.3.1 h1:r8DAkl9a9t6z38jjbtGNrz295pBeM6fwTq91TP8xX6U= +github.com/multiversx/mx-chain-core-go v1.3.1/go.mod h1:B5zU4MFyJezmEzCsAHE9YNULmGCm2zbPHvl9hazNxmE= github.com/multiversx/mx-chain-crypto-go v1.2.12 h1:zWip7rpUS4CGthJxfKn5MZfMfYPjVjIiCID6uX5BSOk= github.com/multiversx/mx-chain-logger-go v1.0.15 h1:HlNdK8etyJyL9NQ+6mIXyKPEBo+wRqOwi3n+m2QIHXc= github.com/multiversx/mx-chain-logger-go v1.0.15/go.mod h1:t3PRKaWB1M+i6gUfD27KXgzLJJC+mAQiN+FLlL1yoGQ=