diff options
Diffstat (limited to 'ethereum.go')
-rw-r--r-- | ethereum.go | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/ethereum.go b/ethereum.go index 2500892f0..cc3f1695b 100644 --- a/ethereum.go +++ b/ethereum.go @@ -33,7 +33,7 @@ type Ethereum struct { quit chan bool // DB interface //db *ethdb.LDBDatabase - db *ethdb.MemDatabase + db ethutil.Database // Block manager for processing new blocks and managing the block chain BlockManager *ethchain.BlockManager // The transaction pool. Transaction can be pushed on this pool @@ -52,10 +52,14 @@ type Ethereum struct { serverCaps Caps nat NAT + + // Specifies the desired amount of maximum peers + MaxPeers int } func New(caps Caps, usePnp bool) (*Ethereum, error) { - db, err := ethdb.NewMemDatabase() + db, err := ethdb.NewLDBDatabase() + //db, err := ethdb.NewMemDatabase() if err != nil { return nil, err } @@ -79,6 +83,7 @@ func New(caps Caps, usePnp bool) (*Ethereum, error) { Nonce: nonce, serverCaps: caps, nat: nat, + MaxPeers: 5, } ethereum.TxPool = ethchain.NewTxPool() ethereum.TxPool.Speaker = ethereum @@ -93,7 +98,7 @@ func New(caps Caps, usePnp bool) (*Ethereum, error) { func (s *Ethereum) AddPeer(conn net.Conn) { peer := NewPeer(conn, s, true) - if peer != nil { + if peer != nil && s.peers.Len() < s.MaxPeers { s.peers.PushBack(peer) peer.Start() } @@ -263,9 +268,10 @@ func (s *Ethereum) Stop() { close(s.quit) - s.shutdownChan <- true - s.TxPool.Stop() + s.BlockManager.Stop() + + s.shutdownChan <- true } // This function will wait for a shutdown and resumes main thread execution |