From 4c0549ca0a5283294c28abd68b8929e6c17a3bd6 Mon Sep 17 00:00:00 2001 From: Ruoxin Date: Mon, 24 Apr 2023 14:52:25 +0800 Subject: [PATCH 1/2] feat: modify batch config --- config/pier.toml | 4 ++-- internal/repo/config.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/config/pier.toml b/config/pier.toml index ee8bc466..f4d0d2fa 100755 --- a/config/pier.toml +++ b/config/pier.toml @@ -61,5 +61,5 @@ title = "Pier" enable_tss = false [batch] - enable_batch = true - batch_size = 10 \ No newline at end of file + enable_batch = false + batch_size = 7 \ No newline at end of file diff --git a/internal/repo/config.go b/internal/repo/config.go index 018baecb..461f1e87 100644 --- a/internal/repo/config.go +++ b/internal/repo/config.go @@ -192,7 +192,7 @@ func DefaultConfig() *Config { }, Batch: Batch{ EnableBatch: false, - BatchSize: 10, + BatchSize: 7, }, } } From 6b15104166c073c263bef3801c367b842b2c87c8 Mon Sep 17 00:00:00 2001 From: Ruoxin Date: Tue, 25 Apr 2023 16:51:35 +0800 Subject: [PATCH 2/2] feat: add pier batch config for bxh adapter --- internal/adapt/appchain_adapter/adapter.go | 10 +++- .../adapt/appchain_adapter/adapter_test.go | 3 +- internal/adapt/bxh_adapter/adapter.go | 6 +- internal/adapt/bxh_adapter/adapter_test.go | 20 ++++--- internal/app/pier.go | 55 +------------------ internal/repo/packrd/packed-packr.go | 2 +- 6 files changed, 29 insertions(+), 67 deletions(-) diff --git a/internal/adapt/appchain_adapter/adapter.go b/internal/adapt/appchain_adapter/adapter.go index f64f4672..700e85ab 100644 --- a/internal/adapt/appchain_adapter/adapter.go +++ b/internal/adapt/appchain_adapter/adapter.go @@ -202,8 +202,13 @@ func (a *AppchainAdapter) SendIBTP(ibtp *pb.IBTP) error { _, _, serviceID := ibtp.ParseTo() a.logger.WithFields(logrus.Fields{ - "ibtp": ibtp.ID(), - "typ": ibtp.Type, + "from": ibtp.From, + "index": ibtp.Index, + "serviceID": serviceID, + "type": ibtp.Type, + "content": content, + "proof": proof, + "encrypted": pd.Encrypted, }).Info("start submit ibtp") res, err = a.client.SubmitIBTP(ibtp.From, ibtp.Index, serviceID, ibtp.Type, content, proof, pd.Encrypted) } else { @@ -233,6 +238,7 @@ func (a *AppchainAdapter) SendIBTP(ibtp *pb.IBTP) error { a.logger.WithFields(logrus.Fields{ "ibtp": ibtp.ID(), "typ": ibtp.Type, + "res": result, }).Info("start submit receipt") res, err = a.client.SubmitReceipt(ibtp.To, ibtp.Index, serviceID, ibtp.Type, result, proof) } diff --git a/internal/adapt/appchain_adapter/adapter_test.go b/internal/adapt/appchain_adapter/adapter_test.go index 3e6125b6..8ee462b0 100644 --- a/internal/adapt/appchain_adapter/adapter_test.go +++ b/internal/adapt/appchain_adapter/adapter_test.go @@ -9,10 +9,9 @@ import ( "testing" "time" + "github.com/hashicorp/go-plugin" "github.com/meshplus/pier/internal/adapt" "github.com/meshplus/pier/internal/repo" - - "github.com/hashicorp/go-plugin" "github.com/stretchr/testify/require" "github.com/golang/mock/gomock" diff --git a/internal/adapt/bxh_adapter/adapter.go b/internal/adapt/bxh_adapter/adapter.go index a7bfd8cf..882eb986 100644 --- a/internal/adapt/bxh_adapter/adapter.go +++ b/internal/adapt/bxh_adapter/adapter.go @@ -56,6 +56,7 @@ type BxhAdapter struct { tss *repo.TSS goPool *utils.GoPool checker checker.Checker + isBatch bool } func (b *BxhAdapter) GetServiceIDList() ([]string, error) { @@ -131,7 +132,7 @@ func (b *BxhAdapter) SendUpdatedMeta(_ []byte) error { // New creates instance of WrapperSyncer given agent interacting with bitxhub, // validators addresses of bitxhub and local storage -func New(mode, appchainId string, client rpcx.Client, logger logrus.FieldLogger, tss *repo.TSS, nonce uint64) (*BxhAdapter, error) { +func New(mode, appchainId string, config *repo.Config, client rpcx.Client, logger logrus.FieldLogger, tss *repo.TSS, nonce uint64) (*BxhAdapter, error) { bxhID, err := client.GetChainID() if err != nil { return nil, fmt.Errorf("new bxh adapter err: %w", err) @@ -151,6 +152,7 @@ func New(mode, appchainId string, client rpcx.Client, logger logrus.FieldLogger, tss: tss, nonce: nonce, goPool: utils.NewGoPool(goroutinesSize), + isBatch: config.Batch.EnableBatch, } ba.checker = checker.NewRelayChecker(nil, ba.appchainId, fmt.Sprintf("%d", ba.bxhID), ba.logger) @@ -631,7 +633,7 @@ func (b *BxhAdapter) handleInterchainTxWrapper(w *pb.InterchainTxWrapper, i int) } b.logger.WithFields(logrus.Fields{"ID": ibtp.ID(), "index": ibtp.Index, "elapse": time.Since(current)}).Debug("[3.1] receive multi sign") ibtp.Proof = retProof - if tx.IsBatch && b.mode == repo.RelayMode { + if tx.IsBatch && b.mode == repo.RelayMode && b.isBatch { ibtp.Extra = []byte("1") b.logger.Info("get batch ibtp") } diff --git a/internal/adapt/bxh_adapter/adapter_test.go b/internal/adapt/bxh_adapter/adapter_test.go index b7d1a2e6..6fdaeb2e 100644 --- a/internal/adapt/bxh_adapter/adapter_test.go +++ b/internal/adapt/bxh_adapter/adapter_test.go @@ -686,23 +686,29 @@ func prepare(t *testing.T) (*BxhAdapter, *BxhAdapter, *BxhAdapter, *mock_client. client := mock_client.NewMockClient(mockCtl) client.EXPECT().GetChainID().Return(uint64(bxhId1), nil).AnyTimes() - config := &repo.Config{} - config.Mode.Type = repo.RelayMode - config.TSS = &repo.TSS{ - EnableTSS: false, + config := &repo.Config{ + Mode: repo.Mode{ + Type: repo.RelayMode, + }, + TSS: &repo.TSS{ + EnableTSS: false, + }, + Batch: repo.Batch{ + EnableBatch: false, + }, } - relayAdapter1, err := New(repo.RelayMode, "", + relayAdapter1, err := New(repo.RelayMode, "", config, client, log.NewWithModule("adapter"), config.TSS, 0, ) require.Nil(t, err) - relayAdapter2, err := New(repo.RelayMode, "", + relayAdapter2, err := New(repo.RelayMode, "", config, client, log.NewWithModule("adapter"), config.TSS, 0, ) require.Nil(t, err) - unionAdapter, err := New(repo.UnionMode, defaultUnionPierId, + unionAdapter, err := New(repo.UnionMode, defaultUnionPierId, config, client, log.NewWithModule("adapter"), config.TSS, 0, ) require.Nil(t, err) diff --git a/internal/app/pier.go b/internal/app/pier.go index 332b0806..a25b811a 100755 --- a/internal/app/pier.go +++ b/internal/app/pier.go @@ -44,57 +44,6 @@ type Pier struct { logger logrus.FieldLogger } -func NewUnionPier(repoRoot string, config *repo.Config) (*Pier, error) { - logger := loggers.Logger(loggers.App) - privateKey, err := repo.LoadPrivateKey(repoRoot) - if err != nil { - return nil, fmt.Errorf("repo load key: %w", err) - } - - client, err := newBitXHubClient(logger, privateKey, config) - if err != nil { - return nil, fmt.Errorf("create bitxhub client: %w", err) - } - - bxhAdapter, err := bxh_adapter.New(repo.UnionMode, DEFAULT_UNION_PIER_ID, client, loggers.Logger(loggers.Syncer), config.TSS, 0) - if err != nil { - return nil, fmt.Errorf("new bitxhub adapter: %w", err) - } - - nodePrivKey, err := repo.LoadNodePrivateKey(repoRoot) - if err != nil { - return nil, fmt.Errorf("repo load node key: %w", err) - } - - peerManager, err := peermgr.New(config, nodePrivKey, privateKey, config.Mode.Union.Providers, loggers.Logger(loggers.PeerMgr)) - if err != nil { - return nil, fmt.Errorf("peerMgr create: %w", err) - } - - unionAdapt, err := union_adapter.New(peerManager, bxhAdapter, loggers.Logger(loggers.Union)) - if err != nil { - return nil, fmt.Errorf("new union adapter: %w", err) - } - - ex, err := exchanger.New(repo.UnionMode, "", bxhAdapter.ID(), - exchanger.WithSrcAdapt(bxhAdapter), - exchanger.WithDestAdapt(unionAdapt), - exchanger.WithLogger(loggers.Logger(loggers.Exchanger))) - if err != nil { - return nil, fmt.Errorf("exchanger create: %w", err) - } - - ctx, cancel := context.WithCancel(context.Background()) - return &Pier{ - privateKey: privateKey, - exchanger: ex, - logger: logger, - ctx: ctx, - cancel: cancel, - config: config, - }, nil -} - // Start starts three main components of pier app func (pier *Pier) Start() error { if err := pier.pierHA.Start(); err != nil { @@ -169,7 +118,7 @@ func NewPier(repoRoot string, config *repo.Config) (*Pier, error) { addr, _ := privateKey.PublicKey().Address() nonce, _ := client.GetPendingNonceByAccount(addr.String()) - bxhAdapter, err := bxh_adapter.New(repo.RelayMode, appchainAdapter.ID(), client, loggers.Logger(loggers.Syncer), config.TSS, nonce) + bxhAdapter, err := bxh_adapter.New(repo.RelayMode, appchainAdapter.ID(), config, client, loggers.Logger(loggers.Syncer), config.TSS, nonce) if err != nil { return nil, fmt.Errorf("new bxh adapter: %w", err) } @@ -208,7 +157,7 @@ func NewPier(repoRoot string, config *repo.Config) (*Pier, error) { return nil, fmt.Errorf("create bitxhub client: %w", err) } - bxhAdapter, err := bxh_adapter.New(repo.UnionMode, DEFAULT_UNION_PIER_ID, client, loggers.Logger(loggers.Syncer), config.TSS, 0) + bxhAdapter, err := bxh_adapter.New(repo.UnionMode, DEFAULT_UNION_PIER_ID, config, client, loggers.Logger(loggers.Syncer), config.TSS, 0) if err != nil { return nil, fmt.Errorf("new bitxhub adapter: %w", err) } diff --git a/internal/repo/packrd/packed-packr.go b/internal/repo/packrd/packed-packr.go index 042f2ca9..f34e5e5b 100644 --- a/internal/repo/packrd/packed-packr.go +++ b/internal/repo/packrd/packed-packr.go @@ -16,7 +16,7 @@ var _ = func() error { const gk = "9db24db4809ea7d579ee29ba8dba439e" g := packr.New(gk, "") hgr, err := resolver.NewHexGzip(map[string]string{ - "0e79b6e7320dd46367cfcbbe96d0f2d7": "1f8b08000000000000ffb4543f8fdb3e0cddfd2904ffd6437ef15d7243810ced7463c702c1415064da262a8b2a25a5493f7da13f492f76d76ee17b241ff548276030200ea2fd8ac06dd31c1d71786f8410620ac18983d8edf6bb5d069c631a0ab2df37cdd1d058320d9cc1a42668076a33d42327c0d0e80b30a001abe6ace5107863682c0c43d2945a1903a96850c643eebe99a98f068a8872283df039e77c5052cee949a195f3b8604e97491a0cf088c205740cc44b544fca8ecbe633595ce53a005eab31c5b02ce768609de97f2a9e17d0d5ea65718f0c3a48d52bb76a1c2d92fd3b75f763c536c799faea66b8baec0b8351d756fc27f28fa72a2a888b4429d964b2aea1efd98b8338b686b43213f9f0e975bbedbaf6492ca0e735f4b286766d9d0867a018a4c119431aadab97f32312c7e4d773d92a86cb144f12fb9cf4b27fad1bb4ea6440d23094e70756d6cfe83d92bd5f554a1cd969e9888cf4f82b99d0bd961da83348a7c294fab6f5e5c58f32e1a8fc7dbaed653feca1db6eabab9b6cd73fb6c8319db187dcbc6b9aa3071d1943dd4c352018fff05ca535782f3570c83359eaa1dba43009a5e8f9217a798876257affd8ea3b5c934589de38c673f13f18af55c25381ff5f8d60f5b554675ed33c9395b7ff802f18bebdc553bacab7cfeff563eb33e5d18e061273bbe5c2978d0fea7483ebe768e28869c5edfdf40b74d3b5038eb59251a7bec1fb47cffc1fcf9ae349053d3df0191107113816533370bf9fedef000000ffffab0f0d2d46050000", + "0e79b6e7320dd46367cfcbbe96d0f2d7": "1f8b08000000000000ffb4543d8fdb300cddfd2b04773da4f15d72050adcd04e37762c101c0459a66da2b2a852729af4d717fa487ab6bb760bdf23f9a8473a018301f122ea6f085c57d5c91187b74a0821c6109c781187c3f1704880734c7d468ec7aa3a191a72a6813398d8046d4f75823ae408181a7c067a3460d594b41c02ef0c0d9961889a522b632016f5ca7848dd771375b3812ca21c4a0f7c4e39ef9494737a5468e534ac98f6324a830196285c40cf81788dea51d961dd7c228b9b5c07c05b35a639accb7936b0cdf4bf144f2be86af5bab843061da4ea94db349e2d92fd3775f763c356a789bae266b8bae40b8351d75a7c10e9c7431115c4592297ec1259d6d075ecc58b38d586b43223f9f0f979bf6f9afa41aca0c72df4b4850e75990827a03948831386385a532ee7e74c3c47bf1ef356315cc6b995d8a5a4a7e373d9a055ad01497d9f9f1f58593fa1f748f67e55317160a7a52332d2e3ef6842f39c77a0ce209d0a63ec5b9797673ff28483f2f7e9f697637f8466bf2faeee925dffd922c774c60e52f3a6aa4e1ef4cc18ca668a01c1f8c57395d6e0bdd4c021cd64a9836617c32814a3c745f4b4880e397a7bdfea075ca34591de39c673f63f18af55c46381ffa806b0fa9aab13af699ac8cadb7fc0570cdf5fe7365ee5eb97b7f2b17589f268070391b9dd72e6f3c67bd5dee0f2399a79c0b8e2fa7efa19bae9da1e8752c9a863dfe0fdd233ffd7b3ead4aaa0c7059f9085ab09b91dd0a73f010000ffff35a514ee46050000", "198b71a4cc9bef49a87bfef3e01ebff9": "1f8b08000000000000ff9c934d73aa3c1480f7fc8a77efbc53445b717117271f60688306500c3b04254628b6f536c8afbf63adbd9db9bb669579727272e63939ff5f16a23e0bffc3344a98c73024f4835a9c317cd01883de566018828a1168d19043eb63fce2c77c3c45c03167bee2e2cd6021c94a089f9a80249a461607d787e19262c459daa83a6e6ab5698a8e26b04055b8425024982ab569ca3cf7a7431eb9865c9304d464bd55ce823a5b0b43aa1b2c55e647e76c1df65c7c0547d4c89e6b6138818ef6105d93b789850feabef05767e92895a7e38e12985f0fdf126407c7d253ac4cd9b74b3cc14d702c67aa2d53f6db92ced83054845c839913da71b234614ffb54550bae61c4098c780f264c60c49330e7cccfbfbbb06e327eeac2bac9f8890bd24368dd64a083f79ca5f77a9b50c1617cada6e333d1d4764ad550eabf1cbe714b6a9471c47d74bef61c2afad57f30740636034413ac071cdaf76dfca6e327ff757476bd7b468be2c982ddb35b4e5f1b339a87ce583e847dfbb29a38c9e0f0be5e4ceaa0d683c946c9203aade7236fbf20e838dc7962333c9db54cd0cefa2cab2486a23b23e8e5371ef555dc2c5e524cc0475574d9c3a7e8925e633d0e1c59b073cda3916415d91a6161580b95a7a97e227b92be964b736405ef9679978a78c5e3495ee197763c16c51c782db9b17025d9639bb15edb97d7492cc0441553106c330447231d7492eb47c74d73bbea03372ca647ad4e6b67e9b5c5a4a82db9af0dec298c9a077b7b9642dfa17d4c327770c836cb60eee0c9d99ee5c9b03361a9e30c798afdb23ee69086e4dfd9fc130000ffff6670c500b8030000", "5e3c62419b9f1afc30f52a43c8e144ca": "1f8b08000000000000ff8ccd514e86201c00f0774ec138800891da830f3a5dceb626b6ca703e68ba648df54f603a4edf017af94ef01b47d0db61a709ed3fd6599ce391500d82329e467114478cba4fa0e28e330a1c289910e815e79848a3caa17b32e58b15f79d0f4b075ebd25322828a4f95573568436699ee5f070b63b41e8768affa31653b1efb0daabd7f379f974e90fb7555fef4c3b3f78e8b3c726a979fd5a341f82a0bf000000ffff523d8797d5000000", "dae69935f753db84f4ae142281e4fb7d": "1f8b08000000000000ffb4965b93aa48b6c7dff914ebbc9cd31d7b8bc93dd9a72bce492e2a2a58086ae9ccc37049042f805c44fdf41368edee8a9e9879eb8ca80a7265ae1fff7f2e58a22f1cc7d47dd3f805bd86f42b33180c189d564d966451d05088d220cb194050ff18ea6fba33f4fcb7dd74387f9bec868bb7c9bda4d573cb70b17a33eca1eebc9d8a2838a545dd0ce939c84e248e2b5ad76f71d004675aa7ff9ffe9ec346390300d95f431ef44333c79603bab9f4ad91a513df7c4619dbb28cf4a0ebe42ceaba6ba0863317958cdb894f1c6d7fbca4c76cac764823ee6a440c5d4b0d736e93e398702b534b6d9d719178d31f64aaed9db546f636399533dbad3bdddd1a6bd79d18646a6d0ea66f6be63349df77336f72ea761fd343301e954c78f883a8779dbe34d1cd3c10f705b46d7d73bb6ef9511d8cd5476c98275bb7c7ba77197b562818ae3965c872bbd98d4768bbe14e119f92e00b3dcca443782074d4a1bb6d9837dbdf76f68374b6310d9e31dfbc315f83b63536bfc81f9bddd4f0bf2a249dbe39165f2c4736438e69602fedce7c25cd0c525af4433b4567a7d86e4eed17e0dc2053d3f74dcfd6c81348ba6eca8463f5b0dddc8a507090edad3aabdb4e67c5ce4aaf9143dca3364a77c7edc7320d37eb47606ac557f8fcecb47d1935ebf0e792992342163a7131e9d7f5fd4c27ae49aeabd5329f6efdbb76a7e5bd9daff82e662eb59f384ddcdca5f9e8d0a5ed869f4e2faddb7cbbd0f5e2a2de65299fe5d510dfb8d832c59df4386f523e2cfd471cfbf2cc6a98533ae71ed3edf03112ca707d58d55ef63e4fbcd1f23a71b353b3dad5e56c3fce0e433f54ada198de95ebf5aa4a49225f155d38ee99cbe8bc7adc8ae56a9c9df8f7628af1f56e64cd302a3ccdda5ffca5ea1679dbccb9a5b56fab2af0a3f164fe5e2e2fa3f6bd68af2b0607b683e30d7f3c5c36dfb65d9ddfa272fd41f7c6d828d523cef8cc88bad21ec93ace95ec242a0b3cdf9c895d46be92d7ef2133d3b29a7ed88fd4a9cb0657df8ac6547cd491c49f39d67add9ac7cb909bb83b6df5dee469e94f97e6c4e28e1fc22e6f446a1d997d6719c4259a4dd0d74754d3dc1521a2a511579ba36576596e347f4fc701dab479647ae15eeeee82d20acc7d3323a1fd31762f19d91b818ca2139e28ebc5c1db9bfbd14869a92d5e2c65bc9785e6625eb7ae9d4c75259be73bd4de4e8f1913ccba74b4f6756db588bb25b79956dbc34275caeb7e29598fa927ee358bf7b2db2499e50669d4e3466a4f4d70fca6378e64cc774c846ef625b80fa39df8de0805bacf6f5b735a4daee9cea2e3729bd69abbc9f7e7e9ece6af8378e28dedf032fb5016dfb24720960613ca95b07ae0c9fcc417a3733ef4b9505aa66d6b7b4a9cb9d21d4f1ece72eb6bf1c3395be3e23adeecd1d8d5fc9d5bad76a93c651429690fd2378338557b4043dbdf5dc696c2cdcb8ba1b8e76a7692acec9bae1df3edeefd639e7fecbb61354e3fcc579b331de35f9b5cffe7d1ea4a2b88fee8e84cdd86071a356f7f49d3cdeabaa5d55fc3eefd380544a78ce6cd574ba013c8fb0ca869defcf4ecd37309337aff01a66e4cbec3072f499cfa1d784980306bead7f9787348833caed3e048210d6aa8681003276209c27b436b08f218ba2a6b1a9a83809457f4a58576dfc19f7b576ee879f3abf01df4ac4c690559fdbca539587a64404c8fe3f160acdb036f427849fea9af6cc35316c191defb041e89b897c578346a2b0a4b9ad37dd16441931539581ed46d5916554363462fce657f4e5991ff0067e1988c792b83fccbdc2980ccdf1df889a0716f74e07d26f53fbaf05e154d111527801f2f132cff8c7f7a803efe9f5cf43b3e8103cbf801e64851054ec5d8e46555c7922223cdd4341d098acaabaace7122d60562624e4426e14606272aa2a40b23448828f1ca9f8083a8b9bd84da41ddd06af0ac24c2a6caa19182b0acf358c498c3238c10d10dcd940d8446a62411acca1cc6ba61983ce638096b9c8e784321a2847959c532674a5824c28898ba267348d3255517b13212f8d709f8730fea971068b2e8489b9790fe0b090620234814e0158813c011a818140ea830103128087815e404241984b0bfc01200fc83fd1f96652feca4fcb558ff6fc17ed2b89ec6c9c025a022c0214821a82244024468a08ac045a0c610c74039c0020809081100b02ccbfe8dfd39feefb74f1adfd39204a2105401380e44b19f4a0aa8f14050405500c780292011280f9c0ae14f9ac16e58e593f749139e4e1350a4de662841120342108640e9200c7a8391dc07431e78ae270714008af613b36659f6bf7ea7894f6d12086a6f10f320ab9004a024a02a8348eaad8909480878042881388218f7da5496cd9e2617eff08736e9b30a084180405020c120a9bd23311e4811600510062af74b98875005417c568155d82d6bff9ded2f58f19326f734217a960c43c2411c42f4d443b981aa8212f4259010840802dc4fb10000bfad31cbb20b967db0effdbf4f9ad2d378b9bf2f46fdb1f014680428045919c0bf1dfffd3ab53df37a0b9aa06ac0cfcef4077032924455e6d5cf67333bd3a26d9e6fa7c22304bfd434faf5b9b4a65596dca1a24d5be51015719f8dfb0da704ea6c9fd3f86bd37c7eeaff330000ffff6a1e3a0f020c0000",