aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorPéter Szilágyi <peterke@gmail.com>2015-09-29 00:27:31 +0800
committerPéter Szilágyi <peterke@gmail.com>2015-10-19 15:03:09 +0800
commitf186b390182da7af368e7a5a1e9eff8d690b7414 (patch)
treefeb1410fe848dae9eed22c585bc0ebaab713f5a1 /core
parentc33cc382b3561ca91871111933f81653bfd8532f (diff)
downloaddexon-f186b390182da7af368e7a5a1e9eff8d690b7414.tar.gz
dexon-f186b390182da7af368e7a5a1e9eff8d690b7414.tar.zst
dexon-f186b390182da7af368e7a5a1e9eff8d690b7414.zip
eth/downloader: add fast and light sync strategies
Diffstat (limited to 'core')
-rw-r--r--core/transaction_util.go11
-rw-r--r--core/types/block.go10
2 files changed, 10 insertions, 11 deletions
diff --git a/core/transaction_util.go b/core/transaction_util.go
index d55ed14da..9a82ec4dc 100644
--- a/core/transaction_util.go
+++ b/core/transaction_util.go
@@ -140,13 +140,12 @@ func GetBlockReceipts(db ethdb.Database, hash common.Hash) types.Receipts {
if len(data) == 0 {
return nil
}
-
- var receipts types.Receipts
- err := rlp.DecodeBytes(data, &receipts)
- if err != nil {
- glog.V(logger.Core).Infoln("GetReceiptse err", err)
+ receipts := new(types.Receipts)
+ if err := rlp.DecodeBytes(data, receipts); err != nil {
+ glog.V(logger.Error).Infof("invalid receipt array RLP for hash %x: %v", hash, err)
+ return nil
}
- return receipts
+ return *receipts
}
// PutBlockReceipts stores the block's transactions associated receipts
diff --git a/core/types/block.go b/core/types/block.go
index f7baa2175..c4377ffa1 100644
--- a/core/types/block.go
+++ b/core/types/block.go
@@ -172,8 +172,8 @@ type storageblock struct {
}
var (
- emptyRootHash = DeriveSha(Transactions{})
- emptyUncleHash = CalcUncleHash(nil)
+ EmptyRootHash = DeriveSha(Transactions{})
+ EmptyUncleHash = CalcUncleHash(nil)
)
// NewBlock creates a new block. The input data is copied,
@@ -188,7 +188,7 @@ func NewBlock(header *Header, txs []*Transaction, uncles []*Header, receipts []*
// TODO: panic if len(txs) != len(receipts)
if len(txs) == 0 {
- b.header.TxHash = emptyRootHash
+ b.header.TxHash = EmptyRootHash
} else {
b.header.TxHash = DeriveSha(Transactions(txs))
b.transactions = make(Transactions, len(txs))
@@ -196,7 +196,7 @@ func NewBlock(header *Header, txs []*Transaction, uncles []*Header, receipts []*
}
if len(receipts) == 0 {
- b.header.ReceiptHash = emptyRootHash
+ b.header.ReceiptHash = EmptyRootHash
} else {
b.header.ReceiptHash = DeriveSha(Receipts(receipts))
b.header.Bloom = CreateBloom(receipts)
@@ -205,7 +205,7 @@ func NewBlock(header *Header, txs []*Transaction, uncles []*Header, receipts []*
}
if len(uncles) == 0 {
- b.header.UncleHash = emptyUncleHash
+ b.header.UncleHash = EmptyUncleHash
} else {
b.header.UncleHash = CalcUncleHash(uncles)
b.uncles = make([]*Header, len(uncles))