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
1 changed files with 11 additions and 5 deletions

View File

@ -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