aboutsummaryrefslogtreecommitdiffstats
path: root/eth
diff options
context:
space:
mode:
Diffstat (limited to 'eth')
-rw-r--r--eth/backend.go17
-rw-r--r--eth/protocol.go15
2 files changed, 26 insertions, 6 deletions
diff --git a/eth/backend.go b/eth/backend.go
index 6b60af1f1..c7a5b233f 100644
--- a/eth/backend.go
+++ b/eth/backend.go
@@ -195,7 +195,7 @@ func New(config *Config) (*Ethereum, error) {
eth.chainManager = core.NewChainManager(blockDb, stateDb, eth.EventMux())
eth.pow = ethash.New(eth.chainManager)
- eth.txPool = core.NewTxPool(eth.EventMux())
+ eth.txPool = core.NewTxPool(eth.EventMux(), eth.chainManager.State)
eth.blockProcessor = core.NewBlockProcessor(stateDb, extraDb, eth.pow, eth.txPool, eth.chainManager, eth.EventMux())
eth.chainManager.SetProcessor(eth.blockProcessor)
eth.whisper = whisper.New()
@@ -436,6 +436,21 @@ func (self *Ethereum) txBroadcastLoop() {
for obj := range self.txSub.Chan() {
event := obj.(core.TxPreEvent)
self.net.Broadcast("eth", TxMsg, []*types.Transaction{event.Tx})
+ self.syncAccounts(event.Tx)
+ }
+}
+
+// keep accounts synced up
+func (self *Ethereum) syncAccounts(tx *types.Transaction) {
+ from, err := tx.From()
+ if err != nil {
+ return
+ }
+
+ if self.accountManager.HasAccount(from.Bytes()) {
+ if self.chainManager.TxState().GetNonce(from) < tx.Nonce() {
+ self.chainManager.TxState().SetNonce(from, tx.Nonce())
+ }
}
}
diff --git a/eth/protocol.go b/eth/protocol.go
index 09355cfcd..878038f74 100644
--- a/eth/protocol.go
+++ b/eth/protocol.go
@@ -8,6 +8,7 @@ import (
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/errs"
"github.com/ethereum/go-ethereum/logger"
+ "github.com/ethereum/go-ethereum/logger/glog"
"github.com/ethereum/go-ethereum/p2p"
"github.com/ethereum/go-ethereum/rlp"
)
@@ -366,7 +367,8 @@ func (self *ethProtocol) requestBlocks(hashes []common.Hash) error {
func (self *ethProtocol) protoError(code int, format string, params ...interface{}) (err *errs.Error) {
err = self.errors.New(code, format, params...)
- err.Log(self.peer.Logger)
+ //err.Log(self.peer.Logger)
+ err.Log(glog.V(logger.Info))
return
}
@@ -382,8 +384,11 @@ func (self *ethProtocol) sendStatus() error {
}
func (self *ethProtocol) protoErrorDisconnect(err *errs.Error) {
- err.Log(self.peer.Logger)
- if err.Fatal() {
- self.peer.Disconnect(p2p.DiscSubprotocolError)
- }
+ //err.Log(self.peer.Logger)
+ err.Log(glog.V(logger.Info))
+ /*
+ if err.Fatal() {
+ self.peer.Disconnect(p2p.DiscSubprotocolError)
+ }
+ */
}