Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions abci/example/kvstore/kvstore.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ import (
"encoding/binary"
"encoding/json"
"fmt"
"github.com/ava-labs/avalanchego/database/memdb"

dbm "github.com/tendermint/tm-db"

"github.com/ava-labs/avalanchego/database"
"github.com/consideritdone/landslidecore/abci/example/code"
"github.com/consideritdone/landslidecore/abci/types"
"github.com/consideritdone/landslidecore/version"
Expand All @@ -21,16 +21,16 @@ var (
)

type State struct {
db dbm.DB
db database.Database
Size int64 `json:"size"`
Height int64 `json:"height"`
AppHash []byte `json:"app_hash"`
}

func loadState(db dbm.DB) State {
func loadState(database database.Database) State {
var state State
state.db = db
stateBytes, err := db.Get(stateKey)
state.db = database
stateBytes, err := database.Get(stateKey)
if err != nil {
panic(err)
}
Expand All @@ -49,7 +49,7 @@ func saveState(state State) {
if err != nil {
panic(err)
}
err = state.db.Set(stateKey, stateBytes)
err = state.db.Put(stateKey, stateBytes)
if err != nil {
panic(err)
}
Expand All @@ -71,7 +71,7 @@ type Application struct {
}

func NewApplication() *Application {
state := loadState(dbm.NewMemDB())
state := loadState(memdb.New())
return &Application{state: state}
}

Expand All @@ -95,7 +95,7 @@ func (app *Application) DeliverTx(req types.RequestDeliverTx) types.ResponseDeli
key, value = req.Tx, req.Tx
}

err := app.state.db.Set(prefixKey(key), value)
err := app.state.db.Put(prefixKey(key), value)
if err != nil {
panic(err)
}
Expand Down
19 changes: 9 additions & 10 deletions abci/example/kvstore/persistent_kvstore.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@ import (
"bytes"
"encoding/base64"
"fmt"
"github.com/ava-labs/avalanchego/database/leveldb"
"github.com/ava-labs/avalanchego/utils/logging"
"github.com/prometheus/client_golang/prometheus"
"strconv"
"strings"

dbm "github.com/tendermint/tm-db"

"github.com/consideritdone/landslidecore/abci/example/code"
"github.com/consideritdone/landslidecore/abci/types"
cryptoenc "github.com/consideritdone/landslidecore/crypto/encoding"
Expand Down Expand Up @@ -37,7 +38,8 @@ type PersistentKVStoreApplication struct {

func NewPersistentKVStoreApplication(dbDir string) *PersistentKVStoreApplication {
name := "kvstore"
db, err := dbm.NewGoLevelDB(name, dbDir)
logger := logging.NewLogger(name)
db, err := leveldb.New(dbDir, []byte{}, logger, name, prometheus.NewRegistry())
if err != nil {
panic(err)
}
Expand Down Expand Up @@ -174,11 +176,8 @@ func (app *PersistentKVStoreApplication) ApplySnapshotChunk(
// update validators

func (app *PersistentKVStoreApplication) Validators() (validators []types.ValidatorUpdate) {
itr, err := app.app.state.db.Iterator(nil, nil)
if err != nil {
panic(err)
}
for ; itr.Valid(); itr.Next() {
itr := app.app.state.db.NewIterator()
for ; itr.Error() == nil && len(itr.Key()) > 0; itr.Next() {
if isValidatorTx(itr.Key()) {
validator := new(types.ValidatorUpdate)
err := types.ReadMessage(bytes.NewBuffer(itr.Value()), validator)
Expand All @@ -188,7 +187,7 @@ func (app *PersistentKVStoreApplication) Validators() (validators []types.Valida
validators = append(validators, *validator)
}
}
if err = itr.Error(); err != nil {
if err := itr.Error(); err != nil {
panic(err)
}
return
Expand Down Expand Up @@ -273,7 +272,7 @@ func (app *PersistentKVStoreApplication) updateValidator(v types.ValidatorUpdate
Code: code.CodeTypeEncodingError,
Log: fmt.Sprintf("Error encoding validator: %v", err)}
}
if err = app.app.state.db.Set(key, value.Bytes()); err != nil {
if err = app.app.state.db.Put(key, value.Bytes()); err != nil {
panic(err)
}
app.valAddrToPubKeyMap[string(pubkey.Address())] = v.PubKey
Expand Down
9 changes: 4 additions & 5 deletions blockchain/v0/reactor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package v0

import (
"fmt"
"github.com/ava-labs/avalanchego/database/memdb"
"os"
"sort"
"testing"
Expand All @@ -10,8 +11,6 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"

dbm "github.com/tendermint/tm-db"

abci "github.com/consideritdone/landslidecore/abci/types"
cfg "github.com/consideritdone/landslidecore/config"
"github.com/consideritdone/landslidecore/libs/log"
Expand Down Expand Up @@ -68,8 +67,8 @@ func newBlockchainReactor(
panic(fmt.Errorf("error start app: %w", err))
}

blockDB := dbm.NewMemDB()
stateDB := dbm.NewMemDB()
blockDB := memdb.New()
stateDB := memdb.New()
stateStore := sm.NewStore(stateDB)
blockStore := store.NewBlockStore(blockDB)

Expand All @@ -82,7 +81,7 @@ func newBlockchainReactor(
// NOTE we have to create and commit the blocks first because
// pool.height is determined from the store.
fastSync := true
db := dbm.NewMemDB()
db := memdb.New()
stateStore = sm.NewStore(db)
blockExec := sm.NewBlockExecutor(stateStore, log.TestingLogger(), proxyApp.Consensus(),
mock.Mempool{}, sm.EmptyEvidencePool{})
Expand Down
9 changes: 4 additions & 5 deletions blockchain/v1/reactor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package v1

import (
"fmt"
"github.com/ava-labs/avalanchego/database/memdb"
"os"
"sort"
"sync"
Expand All @@ -11,8 +12,6 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"

dbm "github.com/tendermint/tm-db"

abci "github.com/consideritdone/landslidecore/abci/types"
cfg "github.com/consideritdone/landslidecore/config"
"github.com/consideritdone/landslidecore/libs/log"
Expand Down Expand Up @@ -100,8 +99,8 @@ func newBlockchainReactor(
panic(fmt.Errorf("error start app: %w", err))
}

blockDB := dbm.NewMemDB()
stateDB := dbm.NewMemDB()
blockDB := memdb.New()
stateDB := memdb.New()
stateStore := sm.NewStore(stateDB)
blockStore := store.NewBlockStore(blockDB)

Expand All @@ -114,7 +113,7 @@ func newBlockchainReactor(
// NOTE we have to create and commit the blocks first because
// pool.height is determined from the store.
fastSync := true
db := dbm.NewMemDB()
db := memdb.New()
stateStore = sm.NewStore(db)
blockExec := sm.NewBlockExecutor(stateStore, log.TestingLogger(), proxyApp.Consensus(),
mock.Mempool{}, sm.EmptyEvidencePool{})
Expand Down
14 changes: 6 additions & 8 deletions blockchain/v2/reactor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,6 @@ import (
"testing"
"time"

"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
dbm "github.com/tendermint/tm-db"

abci "github.com/consideritdone/landslidecore/abci/types"
"github.com/consideritdone/landslidecore/behaviour"
bc "github.com/consideritdone/landslidecore/blockchain"
Expand All @@ -28,6 +24,8 @@ import (
"github.com/consideritdone/landslidecore/store"
"github.com/consideritdone/landslidecore/types"
tmtime "github.com/consideritdone/landslidecore/types/time"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)

type mockPeer struct {
Expand Down Expand Up @@ -158,7 +156,7 @@ func newTestReactor(p testReactorParams) *BlockchainReactor {
if err != nil {
panic(fmt.Errorf("error start app: %w", err))
}
db := dbm.NewMemDB()
db := memdb.New()
stateStore := sm.NewStore(db)
appl = sm.NewBlockExecutor(stateStore, p.logger, proxyApp.Consensus(), mock.Mempool{}, sm.EmptyEvidencePool{})
if err = stateStore.Save(state); err != nil {
Expand Down Expand Up @@ -502,15 +500,15 @@ func newReactorStore(
panic(fmt.Errorf("error start app: %w", err))
}

stateDB := dbm.NewMemDB()
blockStore := store.NewBlockStore(dbm.NewMemDB())
stateDB := memdb.New()
blockStore := store.NewBlockStore(memdb.New())
stateStore := sm.NewStore(stateDB)
state, err := stateStore.LoadFromDBOrGenesisDoc(genDoc)
if err != nil {
panic(fmt.Errorf("error constructing state from genesis file: %w", err))
}

db := dbm.NewMemDB()
db := memdb.New()
stateStore = sm.NewStore(db)
blockExec := sm.NewBlockExecutor(stateStore, log.TestingLogger(), proxyApp.Consensus(),
mock.Mempool{}, sm.EmptyEvidencePool{})
Expand Down
18 changes: 11 additions & 7 deletions cmd/tendermint/commands/light.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ import (
"context"
"errors"
"fmt"
"github.com/ava-labs/avalanchego/database"
"github.com/ava-labs/avalanchego/database/leveldb"
"github.com/ava-labs/avalanchego/utils/logging"
"github.com/prometheus/client_golang/prometheus"
"net/http"
"os"
"path/filepath"
Expand All @@ -13,8 +17,6 @@ import (

"github.com/spf13/cobra"

dbm "github.com/tendermint/tm-db"

"github.com/consideritdone/landslidecore/libs/log"
tmmath "github.com/consideritdone/landslidecore/libs/math"
tmos "github.com/consideritdone/landslidecore/libs/os"
Expand Down Expand Up @@ -119,7 +121,9 @@ func runProxy(cmd *cobra.Command, args []string) error {
witnessesAddrs = strings.Split(witnessAddrsJoined, ",")
}

db, err := dbm.NewGoLevelDB("light-client-db", home)
dbName := "light-client-db"
dbLogger := logging.NewLogger(dbName)
db, err := leveldb.New(home, []byte{}, dbLogger, dbName, prometheus.NewRegistry())
if err != nil {
return fmt.Errorf("can't create a db: %w", err)
}
Expand Down Expand Up @@ -231,7 +235,7 @@ func runProxy(cmd *cobra.Command, args []string) error {
return nil
}

func checkForExistingProviders(db dbm.DB) (string, []string, error) {
func checkForExistingProviders(db database.Database) (string, []string, error) {
primaryBytes, err := db.Get(primaryKey)
if err != nil {
return "", []string{""}, err
Expand All @@ -244,12 +248,12 @@ func checkForExistingProviders(db dbm.DB) (string, []string, error) {
return string(primaryBytes), witnessesAddrs, nil
}

func saveProviders(db dbm.DB, primaryAddr, witnessesAddrs string) error {
err := db.Set(primaryKey, []byte(primaryAddr))
func saveProviders(db database.Database, primaryAddr, witnessesAddrs string) error {
err := db.Put(primaryKey, []byte(primaryAddr))
if err != nil {
return fmt.Errorf("failed to save primary provider: %w", err)
}
err = db.Set(witnessesKey, []byte(witnessesAddrs))
err = db.Put(witnessesKey, []byte(witnessesAddrs))
if err != nil {
return fmt.Errorf("failed to save witness providers: %w", err)
}
Expand Down
23 changes: 13 additions & 10 deletions cmd/tendermint/commands/rollback.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,18 @@ package commands

import (
"fmt"
"github.com/ava-labs/avalanchego/database"

"github.com/spf13/cobra"

dbm "github.com/tendermint/tm-db"

cfg "github.com/consideritdone/landslidecore/config"
landslidedb "github.com/consideritdone/landslidecore/database"
"github.com/consideritdone/landslidecore/state"
"github.com/consideritdone/landslidecore/store"
)

type dbCreator func(name string, dir string) (database.Database, error)

var RollbackStateCmd = &cobra.Command{
Use: "rollback",
Short: "rollback tendermint state by one height",
Expand Down Expand Up @@ -53,20 +55,21 @@ func RollbackState(config *cfg.Config) (int64, []byte, error) {
}

func loadStateAndBlockStore(config *cfg.Config) (*store.BlockStore, state.Store, error) {
dbType := dbm.BackendType(config.DBBackend)

// Get BlockStore
blockStoreDB, err := dbm.NewDB("blockstore", dbType, config.DBDir())
blockStoreDBName := "blockstore"
blockStoreDB, err := landslidedb.NewDB(blockStoreDBName, config.DBBackend, config.DBDir())
if err != nil {
return nil, nil, err
}
blockStore := store.NewBlockStore(blockStoreDB)

// Get StateStore
stateDB, err := dbm.NewDB("state", dbType, config.DBDir())
stateDBName := "state"
stateDB, err := landslidedb.NewDB(stateDBName, config.DBBackend, config.DBDir())
if err != nil {
return nil, nil, err
}

// Get BlockStore
blockStore := store.NewBlockStore(blockStoreDB)

// Get StateStore
stateStore := state.NewStore(stateDB)

return blockStore, stateStore, nil
Expand Down
8 changes: 3 additions & 5 deletions consensus/byzantine_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"

dbm "github.com/tendermint/tm-db"

abcicli "github.com/consideritdone/landslidecore/abci/client"
abci "github.com/consideritdone/landslidecore/abci/types"
"github.com/consideritdone/landslidecore/evidence"
Expand Down Expand Up @@ -45,7 +43,7 @@ func TestByzantinePrevoteEquivocation(t *testing.T) {

for i := 0; i < nValidators; i++ {
logger := consensusLogger().With("test", "byzantine", "validator", i)
stateDB := dbm.NewMemDB() // each state needs its own db
stateDB := memdb.New() // each state needs its own db
stateStore := sm.NewStore(stateDB)
state, _ := stateStore.LoadFromDBOrGenesisDoc(genDoc)
thisConfig := ResetConfig(fmt.Sprintf("%s_%d", testName, i))
Expand All @@ -55,7 +53,7 @@ func TestByzantinePrevoteEquivocation(t *testing.T) {
vals := types.TM2PB.ValidatorUpdates(state.Validators)
app.InitChain(abci.RequestInitChain{Validators: vals})

blockDB := dbm.NewMemDB()
blockDB := memdb.New()
blockStore := store.NewBlockStore(blockDB)

// one for mempool, one for consensus
Expand All @@ -71,7 +69,7 @@ func TestByzantinePrevoteEquivocation(t *testing.T) {
}

// Make a full instance of the evidence pool
evidenceDB := dbm.NewMemDB()
evidenceDB := memdb.New()
evpool, err := evidence.NewPool(evidenceDB, stateStore, blockStore)
require.NoError(t, err)
evpool.SetLogger(logger.With("module", "evidence"))
Expand Down
Loading