Skip to content

Commit 1f9df8f

Browse files
author
Dan Laine
authored
Remove database.Manager (#2239)
Signed-off-by: Dan Laine <daniel.laine@avalabs.org>
1 parent 8d15c22 commit 1f9df8f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+586
-1590
lines changed

api/keystore/keystore.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import (
1414
"github.com/ava-labs/avalanchego/chains/atomic"
1515
"github.com/ava-labs/avalanchego/database"
1616
"github.com/ava-labs/avalanchego/database/encdb"
17-
"github.com/ava-labs/avalanchego/database/manager"
1817
"github.com/ava-labs/avalanchego/database/prefixdb"
1918
"github.com/ava-labs/avalanchego/ids"
2019
"github.com/ava-labs/avalanchego/utils/json"
@@ -105,13 +104,12 @@ type keystore struct {
105104
bcDB database.Database
106105
}
107106

108-
func New(log logging.Logger, dbManager manager.Manager) Keystore {
109-
currentDB := dbManager.Current()
107+
func New(log logging.Logger, db database.Database) Keystore {
110108
return &keystore{
111109
log: log,
112110
usernameToPassword: make(map[string]*password.Hash),
113-
userDB: prefixdb.New(usersPrefix, currentDB.Database),
114-
bcDB: prefixdb.New(bcsPrefix, currentDB.Database),
111+
userDB: prefixdb.New(usersPrefix, db),
112+
bcDB: prefixdb.New(bcsPrefix, db),
115113
}
116114
}
117115

api/keystore/service.go

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,8 @@ import (
1010
"go.uber.org/zap"
1111

1212
"github.com/ava-labs/avalanchego/api"
13-
"github.com/ava-labs/avalanchego/database/manager"
14-
"github.com/ava-labs/avalanchego/database/memdb"
1513
"github.com/ava-labs/avalanchego/utils/formatting"
1614
"github.com/ava-labs/avalanchego/utils/logging"
17-
"github.com/ava-labs/avalanchego/version"
1815
)
1916

2017
type service struct {
@@ -115,17 +112,3 @@ func (s *service) ExportUser(_ *http.Request, args *ExportUserArgs, reply *Expor
115112
reply.Encoding = args.Encoding
116113
return nil
117114
}
118-
119-
// CreateTestKeystore returns a new keystore that can be utilized for testing
120-
func CreateTestKeystore() (Keystore, error) {
121-
dbManager, err := manager.NewManagerFromDBs([]*manager.VersionedDatabase{
122-
{
123-
Database: memdb.New(),
124-
Version: version.Semantic1_0_0,
125-
},
126-
})
127-
if err != nil {
128-
return nil, err
129-
}
130-
return New(logging.NoLog{}, dbManager), nil
131-
}

api/keystore/service_test.go

Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,10 @@ import (
1111
"github.com/stretchr/testify/require"
1212

1313
"github.com/ava-labs/avalanchego/api"
14+
"github.com/ava-labs/avalanchego/database/memdb"
1415
"github.com/ava-labs/avalanchego/ids"
1516
"github.com/ava-labs/avalanchego/utils/formatting"
17+
"github.com/ava-labs/avalanchego/utils/logging"
1618
"github.com/ava-labs/avalanchego/utils/password"
1719
)
1820

@@ -23,8 +25,7 @@ var strongPassword = "N_+=_jJ;^(<;{4,:*m6CET}'&N;83FYK.wtNpwp-Jt" // #nosec G101
2325
func TestServiceListNoUsers(t *testing.T) {
2426
require := require.New(t)
2527

26-
ks, err := CreateTestKeystore()
27-
require.NoError(err)
28+
ks := New(logging.NoLog{}, memdb.New())
2829
s := service{ks: ks.(*keystore)}
2930

3031
reply := ListUsersReply{}
@@ -35,8 +36,7 @@ func TestServiceListNoUsers(t *testing.T) {
3536
func TestServiceCreateUser(t *testing.T) {
3637
require := require.New(t)
3738

38-
ks, err := CreateTestKeystore()
39-
require.NoError(err)
39+
ks := New(logging.NoLog{}, memdb.New())
4040
s := service{ks: ks.(*keystore)}
4141

4242
{
@@ -66,8 +66,7 @@ func genStr(n int) string {
6666
func TestServiceCreateUserArgsCheck(t *testing.T) {
6767
require := require.New(t)
6868

69-
ks, err := CreateTestKeystore()
70-
require.NoError(err)
69+
ks := New(logging.NoLog{}, memdb.New())
7170
s := service{ks: ks.(*keystore)}
7271

7372
{
@@ -100,8 +99,7 @@ func TestServiceCreateUserArgsCheck(t *testing.T) {
10099
func TestServiceCreateUserWeakPassword(t *testing.T) {
101100
require := require.New(t)
102101

103-
ks, err := CreateTestKeystore()
104-
require.NoError(err)
102+
ks := New(logging.NoLog{}, memdb.New())
105103
s := service{ks: ks.(*keystore)}
106104

107105
{
@@ -117,8 +115,7 @@ func TestServiceCreateUserWeakPassword(t *testing.T) {
117115
func TestServiceCreateDuplicate(t *testing.T) {
118116
require := require.New(t)
119117

120-
ks, err := CreateTestKeystore()
121-
require.NoError(err)
118+
ks := New(logging.NoLog{}, memdb.New())
122119
s := service{ks: ks.(*keystore)}
123120

124121
{
@@ -140,12 +137,11 @@ func TestServiceCreateDuplicate(t *testing.T) {
140137
func TestServiceCreateUserNoName(t *testing.T) {
141138
require := require.New(t)
142139

143-
ks, err := CreateTestKeystore()
144-
require.NoError(err)
140+
ks := New(logging.NoLog{}, memdb.New())
145141
s := service{ks: ks.(*keystore)}
146142

147143
reply := api.EmptyReply{}
148-
err = s.CreateUser(nil, &api.UserPass{
144+
err := s.CreateUser(nil, &api.UserPass{
149145
Password: strongPassword,
150146
}, &reply)
151147
require.ErrorIs(err, errEmptyUsername)
@@ -154,8 +150,7 @@ func TestServiceCreateUserNoName(t *testing.T) {
154150
func TestServiceUseBlockchainDB(t *testing.T) {
155151
require := require.New(t)
156152

157-
ks, err := CreateTestKeystore()
158-
require.NoError(err)
153+
ks := New(logging.NoLog{}, memdb.New())
159154
s := service{ks: ks.(*keystore)}
160155

161156
{
@@ -185,8 +180,7 @@ func TestServiceExportImport(t *testing.T) {
185180

186181
encodings := []formatting.Encoding{formatting.Hex}
187182
for _, encoding := range encodings {
188-
ks, err := CreateTestKeystore()
189-
require.NoError(err)
183+
ks := New(logging.NoLog{}, memdb.New())
190184
s := service{ks: ks.(*keystore)}
191185

192186
{
@@ -212,8 +206,7 @@ func TestServiceExportImport(t *testing.T) {
212206
exportReply := ExportUserReply{}
213207
require.NoError(s.ExportUser(nil, &exportArgs, &exportReply))
214208

215-
newKS, err := CreateTestKeystore()
216-
require.NoError(err)
209+
newKS := New(logging.NoLog{}, memdb.New())
217210
newS := service{ks: newKS.(*keystore)}
218211

219212
{
@@ -324,16 +317,15 @@ func TestServiceDeleteUser(t *testing.T) {
324317
t.Run(tt.desc, func(t *testing.T) {
325318
require := require.New(t)
326319

327-
ksIntf, err := CreateTestKeystore()
328-
require.NoError(err)
320+
ksIntf := New(logging.NoLog{}, memdb.New())
329321
ks := ksIntf.(*keystore)
330322
s := service{ks: ks}
331323

332324
if tt.setup != nil {
333325
require.NoError(tt.setup(ks))
334326
}
335327
got := &api.EmptyReply{}
336-
err = s.DeleteUser(nil, tt.request, got)
328+
err := s.DeleteUser(nil, tt.request, got)
337329
require.ErrorIs(err, tt.expectedErr)
338330
if tt.expectedErr != nil {
339331
return

chains/linearizable_vm.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,12 @@ import (
77
"context"
88

99
"github.com/ava-labs/avalanchego/api/metrics"
10+
"github.com/ava-labs/avalanchego/database"
1011
"github.com/ava-labs/avalanchego/ids"
1112
"github.com/ava-labs/avalanchego/snow"
1213
"github.com/ava-labs/avalanchego/snow/engine/avalanche/vertex"
1314
"github.com/ava-labs/avalanchego/snow/engine/common"
1415
"github.com/ava-labs/avalanchego/snow/engine/snowman/block"
15-
16-
dbManager "github.com/ava-labs/avalanchego/database/manager"
1716
)
1817

1918
var (
@@ -32,7 +31,7 @@ type initializeOnLinearizeVM struct {
3231

3332
registerer metrics.OptionalGatherer
3433
ctx *snow.Context
35-
dbManager dbManager.Manager
34+
db database.Database
3635
genesisBytes []byte
3736
upgradeBytes []byte
3837
configBytes []byte
@@ -47,7 +46,7 @@ func (vm *initializeOnLinearizeVM) Linearize(ctx context.Context, stopVertexID i
4746
return vm.vmToInitialize.Initialize(
4847
ctx,
4948
vm.ctx,
50-
vm.dbManager,
49+
vm.db,
5150
vm.genesisBytes,
5251
vm.upgradeBytes,
5352
vm.configBytes,
@@ -74,7 +73,7 @@ func NewLinearizeOnInitializeVM(vm vertex.LinearizableVMWithEngine) *linearizeOn
7473
func (vm *linearizeOnInitializeVM) Initialize(
7574
ctx context.Context,
7675
_ *snow.Context,
77-
_ dbManager.Manager,
76+
_ database.Database,
7877
_ []byte,
7978
_ []byte,
8079
_ []byte,

chains/manager.go

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ import (
2323
"github.com/ava-labs/avalanchego/api/metrics"
2424
"github.com/ava-labs/avalanchego/api/server"
2525
"github.com/ava-labs/avalanchego/chains/atomic"
26+
"github.com/ava-labs/avalanchego/database"
27+
"github.com/ava-labs/avalanchego/database/meterdb"
2628
"github.com/ava-labs/avalanchego/database/prefixdb"
2729
"github.com/ava-labs/avalanchego/ids"
2830
"github.com/ava-labs/avalanchego/message"
@@ -57,7 +59,6 @@ import (
5759
"github.com/ava-labs/avalanchego/vms/proposervm"
5860
"github.com/ava-labs/avalanchego/vms/tracedvm"
5961

60-
dbManager "github.com/ava-labs/avalanchego/database/manager"
6162
timetracker "github.com/ava-labs/avalanchego/snow/networking/tracker"
6263

6364
aveng "github.com/ava-labs/avalanchego/snow/engine/avalanche"
@@ -180,7 +181,7 @@ type ManagerConfig struct {
180181
BlockAcceptorGroup snow.AcceptorGroup
181182
TxAcceptorGroup snow.AcceptorGroup
182183
VertexAcceptorGroup snow.AcceptorGroup
183-
DBManager dbManager.Manager
184+
DB database.Database
184185
MsgCreator message.OutboundMsgBuilder // message creator, shared with network
185186
Router router.Router // Routes incoming messages to the appropriate chain
186187
Net network.Network // Sends consensus messages to other validators
@@ -596,18 +597,16 @@ func (m *manager) createAvalancheChain(
596597
State: snow.Initializing,
597598
})
598599

599-
meterDBManager, err := m.DBManager.NewMeterDBManager("db", ctx.Registerer)
600+
meterDB, err := meterdb.New("db", ctx.Registerer, m.DB)
600601
if err != nil {
601602
return nil, err
602603
}
603-
prefixDBManager := meterDBManager.NewPrefixDBManager(ctx.ChainID[:])
604-
vmDBManager := prefixDBManager.NewPrefixDBManager(vmDBPrefix)
605-
606-
db := prefixDBManager.Current()
607-
vertexDB := prefixdb.New(vertexDBPrefix, db.Database)
608-
vertexBootstrappingDB := prefixdb.New(vertexBootstrappingDBPrefix, db.Database)
609-
txBootstrappingDB := prefixdb.New(txBootstrappingDBPrefix, db.Database)
610-
blockBootstrappingDB := prefixdb.New(blockBootstrappingDBPrefix, db.Database)
604+
prefixDB := prefixdb.New(ctx.ChainID[:], meterDB)
605+
vmDB := prefixdb.New(vmDBPrefix, prefixDB)
606+
vertexDB := prefixdb.New(vertexDBPrefix, prefixDB)
607+
vertexBootstrappingDB := prefixdb.New(vertexBootstrappingDBPrefix, prefixDB)
608+
txBootstrappingDB := prefixdb.New(txBootstrappingDBPrefix, prefixDB)
609+
blockBootstrappingDB := prefixdb.New(blockBootstrappingDBPrefix, prefixDB)
611610

612611
vtxBlocker, err := queue.NewWithMissing(vertexBootstrappingDB, "vtx", ctx.AvalancheRegisterer)
613612
if err != nil {
@@ -730,7 +729,7 @@ func (m *manager) createAvalancheChain(
730729
err = dagVM.Initialize(
731730
context.TODO(),
732731
ctx.Context,
733-
vmDBManager,
732+
vmDB,
734733
genesisData,
735734
chainConfig.Upgrade,
736735
chainConfig.Config,
@@ -796,7 +795,7 @@ func (m *manager) createAvalancheChain(
796795

797796
registerer: snowmanRegisterer,
798797
ctx: ctx.Context,
799-
dbManager: vmDBManager,
798+
db: vmDB,
800799
genesisBytes: genesisData,
801800
upgradeBytes: chainConfig.Upgrade,
802801
configBytes: chainConfig.Config,
@@ -1004,15 +1003,13 @@ func (m *manager) createSnowmanChain(
10041003
State: snow.Initializing,
10051004
})
10061005

1007-
meterDBManager, err := m.DBManager.NewMeterDBManager("db", ctx.Registerer)
1006+
meterDB, err := meterdb.New("db", ctx.Registerer, m.DB)
10081007
if err != nil {
10091008
return nil, err
10101009
}
1011-
prefixDBManager := meterDBManager.NewPrefixDBManager(ctx.ChainID[:])
1012-
vmDBManager := prefixDBManager.NewPrefixDBManager(vmDBPrefix)
1013-
1014-
db := prefixDBManager.Current()
1015-
bootstrappingDB := prefixdb.New(bootstrappingDB, db.Database)
1010+
prefixDB := prefixdb.New(ctx.ChainID[:], meterDB)
1011+
vmDB := prefixdb.New(vmDBPrefix, prefixDB)
1012+
bootstrappingDB := prefixdb.New(bootstrappingDB, prefixDB)
10161013

10171014
blocked, err := queue.NewWithMissing(bootstrappingDB, "block", ctx.Registerer)
10181015
if err != nil {
@@ -1145,7 +1142,7 @@ func (m *manager) createSnowmanChain(
11451142
if err := vm.Initialize(
11461143
context.TODO(),
11471144
ctx.Context,
1148-
vmDBManager,
1145+
vmDB,
11491146
genesisData,
11501147
chainConfig.Upgrade,
11511148
chainConfig.Config,

0 commit comments

Comments
 (0)