decred.org/dcrdex@v1.0.5/tatanka/db/db.go (about)

     1  // This code is available on the terms of the project LICENSE.md file,
     2  // also available online at https://blueoakcouncil.org/license/1.0.0.
     3  
     4  package db
     5  
     6  import (
     7  	"fmt"
     8  	"os"
     9  	"path/filepath"
    10  
    11  	"decred.org/dcrdex/dex"
    12  )
    13  
    14  type DB struct {
    15  	log dex.Logger
    16  	// peerDB       KeyValueDB
    17  	reputationDB KeyValueDB
    18  	bondsDB      KeyValueDB
    19  }
    20  
    21  func New(dir string, log dex.Logger) (*DB, error) {
    22  	if err := os.MkdirAll(dir, 0755); err != nil {
    23  		return nil, fmt.Errorf("error creating db dir: %w", err)
    24  	}
    25  	// peerDB, err := NewFileDB(filepath.Join(dir, "peers.db"), log.SubLogger("PEER.DB"))
    26  	// if err != nil {
    27  	// 	return nil, fmt.Errorf("error opening peer DB: %w", err)
    28  	// }
    29  	reputationDB, err := NewFileDB(filepath.Join(dir, "reputation.db"), log.SubLogger("REP.DB"))
    30  	if err != nil {
    31  		return nil, fmt.Errorf("error opening reputation DB: %w", err)
    32  	}
    33  	bondsDB, err := NewFileDB(filepath.Join(dir, "bonds.db"), log.SubLogger("BONDS.DB"))
    34  	if err != nil {
    35  		return nil, fmt.Errorf("error opening bonds db: %w", err)
    36  	}
    37  	return &DB{
    38  		log: log,
    39  		// peerDB:       peerDB,
    40  		reputationDB: reputationDB,
    41  		bondsDB:      bondsDB,
    42  	}, nil
    43  }