Switched over to leveldb instead of memdb

This commit is contained in:
obscuren 2014-02-08 21:02:09 +01:00
parent 04c00f40f0
commit 1f7b13ff4e

View File

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