aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/block_processor.go23
-rw-r--r--core/vm/context.go21
2 files changed, 23 insertions, 21 deletions
diff --git a/core/block_processor.go b/core/block_processor.go
index c01b110be..748750e32 100644
--- a/core/block_processor.go
+++ b/core/block_processor.go
@@ -246,25 +246,18 @@ func (sm *BlockProcessor) processWithParent(block, parent *types.Block) (logs st
return
}
- // store the receipts
- err = putReceipts(sm.extraDb, block.Hash(), receipts)
- if err != nil {
- return nil, err
- }
-
// Sync the current block's state to the database
state.Sync()
- // This puts transactions in a extra db for rpc
- for i, tx := range block.Transactions() {
- putTx(sm.extraDb, tx, block, uint64(i))
- }
+ go func() {
+ // This puts transactions in a extra db for rpc
+ for i, tx := range block.Transactions() {
+ putTx(sm.extraDb, tx, block, uint64(i))
+ }
- receiptsRlp := receipts.RlpEncode()
- /*if len(receipts) > 0 {
- glog.V(logger.Info).Infof("Saving %v receipts, rlp len is %v\n", len(receipts), len(receiptsRlp))
- }*/
- sm.extraDb.Put(append(receiptsPre, block.Hash().Bytes()...), receiptsRlp)
+ // store the receipts
+ putReceipts(sm.extraDb, block.Hash(), receipts)
+ }()
return state.Logs(), nil
}
diff --git a/core/vm/context.go b/core/vm/context.go
index e33324b53..56e8f925a 100644
--- a/core/vm/context.go
+++ b/core/vm/context.go
@@ -26,16 +26,25 @@ type Context struct {
Args []byte
}
+var dests destinations
+
+func init() {
+ dests = make(destinations)
+}
+
// Create a new context for the given data items.
func NewContext(caller ContextRef, object ContextRef, value, gas, price *big.Int) *Context {
c := &Context{caller: caller, self: object, Args: nil}
- if parent, ok := caller.(*Context); ok {
- // Reuse JUMPDEST analysis from parent context if available.
- c.jumpdests = parent.jumpdests
- } else {
- c.jumpdests = make(destinations)
- }
+ /*
+ if parent, ok := caller.(*Context); ok {
+ // Reuse JUMPDEST analysis from parent context if available.
+ c.jumpdests = parent.jumpdests
+ } else {
+ c.jumpdests = make(destinations)
+ }
+ */
+ c.jumpdests = dests
// Gas should be a pointer so it can safely be reduced through the run
// This pointer will be off the state transition