diff options
author | Jimmy Hu <jimmy.hu@dexon.org> | 2018-12-04 14:54:28 +0800 |
---|---|---|
committer | Wei-Ning Huang <w@byzantine-lab.io> | 2019-06-12 17:27:19 +0800 |
commit | 122e398cd89925216226f8f5a194c93bf8921897 (patch) | |
tree | e324f29c4ed839fe74ec8cf476a0febf5f95a6aa /core | |
parent | 83cd58f14a2000a226f37d5bb93ce5b1af8e2927 (diff) | |
download | go-tangerine-122e398cd89925216226f8f5a194c93bf8921897.tar go-tangerine-122e398cd89925216226f8f5a194c93bf8921897.tar.gz go-tangerine-122e398cd89925216226f8f5a194c93bf8921897.tar.bz2 go-tangerine-122e398cd89925216226f8f5a194c93bf8921897.tar.lz go-tangerine-122e398cd89925216226f8f5a194c93bf8921897.tar.xz go-tangerine-122e398cd89925216226f8f5a194c93bf8921897.tar.zst go-tangerine-122e398cd89925216226f8f5a194c93bf8921897.zip |
core, dex: Timeout for prepare payload (#72)
* Timeout on prepare payload
* Leave 2 CPU for others
* Add hardLimit and softLimit to PreparePayload
Diffstat (limited to 'core')
-rw-r--r-- | core/blockchain.go | 16 | ||||
-rw-r--r-- | core/types/transaction_signing.go | 5 |
2 files changed, 13 insertions, 8 deletions
diff --git a/core/blockchain.go b/core/blockchain.go index 470f7ae28..1b3b22e5e 100644 --- a/core/blockchain.go +++ b/core/blockchain.go @@ -270,13 +270,15 @@ func (bc *BlockChain) AddConfirmedBlock(block *coreTypes.Block) error { bc.confirmedBlockInitMu.Unlock() var transactions types.Transactions - err := rlp.Decode(bytes.NewReader(block.Payload), &transactions) - if err != nil { - return err - } - _, err = types.GlobalSigCache.Add(types.NewEIP155Signer(bc.Config().ChainID), transactions) - if err != nil { - return err + if len(block.Payload) != 0 { + err := rlp.Decode(bytes.NewReader(block.Payload), &transactions) + if err != nil { + return err + } + _, err = types.GlobalSigCache.Add(types.NewEIP155Signer(bc.Config().ChainID), transactions) + if err != nil { + return err + } } addressMap := map[common.Address]struct{}{} diff --git a/core/types/transaction_signing.go b/core/types/transaction_signing.go index 99e0c7896..1a13e3e3d 100644 --- a/core/types/transaction_signing.go +++ b/core/types/transaction_signing.go @@ -60,7 +60,10 @@ type resultEntry struct { // Add adds a list of transactions into sig cache. func (c *globalSigCache) Add(signer Signer, txs Transactions) (errorTx *Transaction, err error) { - num := runtime.NumCPU() + num := runtime.NumCPU() - 2 + if num < 1 { + num = 1 + } batchSize := len(txs) / num wg := sync.WaitGroup{} wg.Add(num) |