@blinklabs/dingo 0.7.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/{bin/dingo → dingo} +0 -0
- package/dingo.yaml.example +53 -0
- package/package.json +2 -2
- package/.github/CODEOWNERS +0 -5
- package/.github/assets/dingo-ate-my-blockchain.png +0 -0
- package/.github/assets/dingo-illustration.png +0 -0
- package/.github/assets/dingo-logo-with-text-horizontal.png +0 -0
- package/.github/assets/dingo-logo-with-text.png +0 -0
- package/.github/dependabot.yml +0 -19
- package/.github/dingo-20241210.png +0 -0
- package/.github/dingo.md +0 -56
- package/.github/workflows/ci-docker.yml +0 -36
- package/.github/workflows/conventional-commits.yml +0 -17
- package/.github/workflows/go-test.yml +0 -29
- package/.github/workflows/golangci-lint.yml +0 -23
- package/.github/workflows/publish.yml +0 -207
- package/Dockerfile +0 -25
- package/Makefile +0 -53
- package/blockfetch.go +0 -144
- package/chain/chain.go +0 -504
- package/chain/chain_test.go +0 -468
- package/chain/errors.go +0 -80
- package/chain/event.go +0 -33
- package/chain/iter.go +0 -64
- package/chainsync/chainsync.go +0 -97
- package/chainsync.go +0 -223
- package/cmd/dingo/load.go +0 -52
- package/cmd/dingo/main.go +0 -118
- package/cmd/dingo/serve.go +0 -49
- package/config/cardano/node.go +0 -192
- package/config/cardano/node_test.go +0 -85
- package/config/cardano/preview/README.md +0 -4
- package/config/cardano/preview/alonzo-genesis.json +0 -196
- package/config/cardano/preview/byron-genesis.json +0 -117
- package/config/cardano/preview/config.json +0 -114
- package/config/cardano/preview/conway-genesis.json +0 -297
- package/config/cardano/preview/shelley-genesis.json +0 -68
- package/config.go +0 -245
- package/connmanager/connection_manager.go +0 -105
- package/connmanager/connection_manager_test.go +0 -185
- package/connmanager/event.go +0 -37
- package/connmanager/listener.go +0 -140
- package/connmanager/outbound.go +0 -93
- package/connmanager/socket.go +0 -55
- package/connmanager/unix.go +0 -78
- package/custom-p2p-topology.json +0 -24
- package/custom-p2p-topology.json.backup +0 -24
- package/custom-p2p-topology.json.mainnet +0 -37
- package/database/account.go +0 -180
- package/database/block.go +0 -362
- package/database/certs.go +0 -53
- package/database/commit_timestamp.go +0 -77
- package/database/database.go +0 -118
- package/database/database_test.go +0 -62
- package/database/drep.go +0 -47
- package/database/epoch.go +0 -121
- package/database/immutable/chunk.go +0 -182
- package/database/immutable/immutable.go +0 -350
- package/database/immutable/immutable_test.go +0 -59
- package/database/immutable/primary.go +0 -106
- package/database/immutable/secondary.go +0 -103
- package/database/immutable/testdata/08893.chunk +0 -0
- package/database/immutable/testdata/08893.primary +0 -0
- package/database/immutable/testdata/08893.secondary +0 -0
- package/database/immutable/testdata/08894.chunk +0 -0
- package/database/immutable/testdata/08894.primary +0 -0
- package/database/immutable/testdata/08894.secondary +0 -0
- package/database/immutable/testdata/README.md +0 -4
- package/database/plugin/blob/badger/commit_timestamp.go +0 -50
- package/database/plugin/blob/badger/database.go +0 -152
- package/database/plugin/blob/badger/logger.go +0 -63
- package/database/plugin/blob/badger/metrics.go +0 -98
- package/database/plugin/blob/blob.go +0 -19
- package/database/plugin/blob/store.go +0 -40
- package/database/plugin/log.go +0 -27
- package/database/plugin/metadata/metadata.go +0 -19
- package/database/plugin/metadata/sqlite/account.go +0 -313
- package/database/plugin/metadata/sqlite/certs.go +0 -58
- package/database/plugin/metadata/sqlite/commit_timestamp.go +0 -68
- package/database/plugin/metadata/sqlite/database.go +0 -218
- package/database/plugin/metadata/sqlite/drep.go +0 -140
- package/database/plugin/metadata/sqlite/epoch.go +0 -120
- package/database/plugin/metadata/sqlite/models/account.go +0 -118
- package/database/plugin/metadata/sqlite/models/auth_committee_hot.go +0 -26
- package/database/plugin/metadata/sqlite/models/drep.go +0 -52
- package/database/plugin/metadata/sqlite/models/epoch.go +0 -31
- package/database/plugin/metadata/sqlite/models/models.go +0 -46
- package/database/plugin/metadata/sqlite/models/pool.go +0 -97
- package/database/plugin/metadata/sqlite/models/pparam_update.go +0 -27
- package/database/plugin/metadata/sqlite/models/pparams.go +0 -27
- package/database/plugin/metadata/sqlite/models/resign_committee_cold.go +0 -27
- package/database/plugin/metadata/sqlite/models/stake_vote_delegation.go +0 -27
- package/database/plugin/metadata/sqlite/models/tip.go +0 -26
- package/database/plugin/metadata/sqlite/models/update_drep.go +0 -27
- package/database/plugin/metadata/sqlite/models/utxo.go +0 -30
- package/database/plugin/metadata/sqlite/models/vote_delegation.go +0 -26
- package/database/plugin/metadata/sqlite/models/vote_registration_delegation.go +0 -15
- package/database/plugin/metadata/sqlite/pool.go +0 -240
- package/database/plugin/metadata/sqlite/pparams.go +0 -110
- package/database/plugin/metadata/sqlite/tip.go +0 -83
- package/database/plugin/metadata/sqlite/utxo.go +0 -292
- package/database/plugin/metadata/store.go +0 -198
- package/database/plugin/option.go +0 -190
- package/database/plugin/plugin.go +0 -20
- package/database/plugin/register.go +0 -118
- package/database/pparams.go +0 -145
- package/database/tip.go +0 -45
- package/database/txn.go +0 -147
- package/database/types/types.go +0 -74
- package/database/types/types_test.go +0 -83
- package/database/utxo.go +0 -263
- package/dist/artifacts.json +0 -1
- package/dist/checksums.txt +0 -22
- package/dist/config.yaml +0 -253
- package/dist/dingo-0.5.0-SNAPSHOT-d9431e4.tar.gz +0 -0
- package/dist/dingo-0.5.0-SNAPSHOT-d9431e4.tar.gz.sbom.json +0 -1
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_darwin_arm64.tar.gz +0 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_darwin_arm64.tar.gz.sbom.json +0 -1
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_darwin_x86_64.tar.gz +0 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_darwin_x86_64.tar.gz.sbom.json +0 -1
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_amd64.apk +0 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_amd64.apk.sbom.json +0 -1
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_amd64.deb +0 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_amd64.deb.sbom.json +0 -1
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_amd64.rpm +0 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_amd64.rpm.sbom.json +0 -1
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.apk +0 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.apk.sbom.json +0 -1
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.deb +0 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.deb.sbom.json +0 -1
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.rpm +0 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.rpm.sbom.json +0 -1
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.tar.gz +0 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_arm64.tar.gz.sbom.json +0 -1
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_x86_64.tar.gz +0 -0
- package/dist/dingo_0.5.0-SNAPSHOT-d9431e4_linux_x86_64.tar.gz.sbom.json +0 -1
- package/dist/dingo_darwin_amd64_v1/dingo +0 -0
- package/dist/dingo_darwin_arm64_v8.0/dingo +0 -0
- package/dist/dingo_linux_amd64_v1/dingo +0 -0
- package/dist/dingo_linux_arm64_v8.0/dingo +0 -0
- package/dist/homebrew/dingo.rb +0 -51
- package/dist/metadata.json +0 -1
- package/event/event.go +0 -141
- package/event/event_test.go +0 -115
- package/event/metrics.go +0 -44
- package/go.mod +0 -98
- package/go.sum +0 -358
- package/internal/config/config.go +0 -145
- package/internal/config/config_test.go +0 -118
- package/internal/node/load.go +0 -149
- package/internal/node/node.go +0 -176
- package/internal/version/version.go +0 -33
- package/ledger/certs.go +0 -164
- package/ledger/chainsync.go +0 -504
- package/ledger/delta.go +0 -99
- package/ledger/eras/allegra.go +0 -154
- package/ledger/eras/alonzo.go +0 -156
- package/ledger/eras/babbage.go +0 -154
- package/ledger/eras/byron.go +0 -42
- package/ledger/eras/conway.go +0 -166
- package/ledger/eras/eras.go +0 -44
- package/ledger/eras/mary.go +0 -154
- package/ledger/eras/shelley.go +0 -164
- package/ledger/error.go +0 -19
- package/ledger/event.go +0 -50
- package/ledger/metrics.go +0 -53
- package/ledger/queries.go +0 -258
- package/ledger/slot.go +0 -127
- package/ledger/slot_test.go +0 -147
- package/ledger/state.go +0 -821
- package/ledger/view.go +0 -73
- package/localstatequery.go +0 -50
- package/localtxmonitor.go +0 -44
- package/localtxsubmission.go +0 -52
- package/mempool/consumer.go +0 -98
- package/mempool/mempool.go +0 -322
- package/node.go +0 -320
- package/peergov/event.go +0 -27
- package/peergov/peer.go +0 -67
- package/peergov/peergov.go +0 -290
- package/peersharing.go +0 -70
- package/preview-local-topology.json +0 -23
- package/topology/topology.go +0 -69
- package/topology/topology_test.go +0 -179
- package/tracing.go +0 -65
- package/txsubmission.go +0 -233
- package/utxorpc/query.go +0 -311
- package/utxorpc/submit.go +0 -395
- package/utxorpc/sync.go +0 -276
- package/utxorpc/utxorpc.go +0 -166
- package/utxorpc/watch.go +0 -310
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
// Copyright 2025 Blink Labs Software
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
|
-
|
|
15
|
-
package badger
|
|
16
|
-
|
|
17
|
-
import (
|
|
18
|
-
"errors"
|
|
19
|
-
"fmt"
|
|
20
|
-
"io"
|
|
21
|
-
"io/fs"
|
|
22
|
-
"log/slog"
|
|
23
|
-
"os"
|
|
24
|
-
"path/filepath"
|
|
25
|
-
"time"
|
|
26
|
-
|
|
27
|
-
"github.com/blinklabs-io/dingo/database/plugin"
|
|
28
|
-
badger "github.com/dgraph-io/badger/v4"
|
|
29
|
-
)
|
|
30
|
-
|
|
31
|
-
// Register plugin
|
|
32
|
-
func init() {
|
|
33
|
-
plugin.Register(
|
|
34
|
-
plugin.PluginEntry{
|
|
35
|
-
Type: plugin.PluginTypeMetadata,
|
|
36
|
-
Name: "sqlite",
|
|
37
|
-
},
|
|
38
|
-
)
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// BlobStoreBadger stores all data in badger. Data may not be persisted
|
|
42
|
-
type BlobStoreBadger struct {
|
|
43
|
-
dataDir string
|
|
44
|
-
db *badger.DB
|
|
45
|
-
logger *slog.Logger
|
|
46
|
-
gcEnabled bool
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
// New creates a new database
|
|
50
|
-
func New(
|
|
51
|
-
dataDir string,
|
|
52
|
-
logger *slog.Logger,
|
|
53
|
-
) (*BlobStoreBadger, error) {
|
|
54
|
-
var blobDb *badger.DB
|
|
55
|
-
var err error
|
|
56
|
-
db := &BlobStoreBadger{
|
|
57
|
-
dataDir: dataDir,
|
|
58
|
-
logger: logger,
|
|
59
|
-
}
|
|
60
|
-
if dataDir == "" {
|
|
61
|
-
// No dataDir, use in-memory config
|
|
62
|
-
badgerOpts := badger.DefaultOptions("").
|
|
63
|
-
WithLogger(NewBadgerLogger(logger)).
|
|
64
|
-
// The default INFO logging is a bit verbose
|
|
65
|
-
WithLoggingLevel(badger.WARNING).
|
|
66
|
-
WithInMemory(true)
|
|
67
|
-
blobDb, err = badger.Open(badgerOpts)
|
|
68
|
-
if err != nil {
|
|
69
|
-
return nil, err
|
|
70
|
-
}
|
|
71
|
-
} else {
|
|
72
|
-
// Make sure that we can read data dir, and create if it doesn't exist
|
|
73
|
-
if _, err := os.Stat(dataDir); err != nil {
|
|
74
|
-
if !errors.Is(err, fs.ErrNotExist) {
|
|
75
|
-
return nil, fmt.Errorf("failed to read data dir: %w", err)
|
|
76
|
-
}
|
|
77
|
-
// Create data directory
|
|
78
|
-
if err := os.MkdirAll(dataDir, fs.ModePerm); err != nil {
|
|
79
|
-
return nil, fmt.Errorf("failed to create data dir: %w", err)
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
blobDir := filepath.Join(
|
|
83
|
-
dataDir,
|
|
84
|
-
"blob",
|
|
85
|
-
)
|
|
86
|
-
// Run GC periodically
|
|
87
|
-
db.gcEnabled = true
|
|
88
|
-
badgerOpts := badger.DefaultOptions(blobDir).
|
|
89
|
-
WithLogger(NewBadgerLogger(logger)).
|
|
90
|
-
// The default INFO logging is a bit verbose
|
|
91
|
-
WithLoggingLevel(badger.WARNING)
|
|
92
|
-
blobDb, err = badger.Open(badgerOpts)
|
|
93
|
-
if err != nil {
|
|
94
|
-
return nil, err
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
db.db = blobDb
|
|
98
|
-
if err := db.init(); err != nil {
|
|
99
|
-
return db, err
|
|
100
|
-
}
|
|
101
|
-
return db, nil
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
func (d *BlobStoreBadger) init() error {
|
|
105
|
-
if d.logger == nil {
|
|
106
|
-
// Create logger to throw away logs
|
|
107
|
-
// We do this so we don't have to add guards around every log operation
|
|
108
|
-
d.logger = slog.New(slog.NewJSONHandler(io.Discard, nil))
|
|
109
|
-
}
|
|
110
|
-
// Configure metrics
|
|
111
|
-
d.registerBlobMetrics()
|
|
112
|
-
// Configure GC
|
|
113
|
-
if d.gcEnabled {
|
|
114
|
-
go d.blobGc(time.NewTicker(5 * time.Minute))
|
|
115
|
-
}
|
|
116
|
-
return nil
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
func (d *BlobStoreBadger) blobGc(t *time.Ticker) {
|
|
120
|
-
for range t.C {
|
|
121
|
-
again:
|
|
122
|
-
err := d.DB().RunValueLogGC(0.5)
|
|
123
|
-
if err != nil {
|
|
124
|
-
// Log any actual errors
|
|
125
|
-
if !errors.Is(err, badger.ErrNoRewrite) {
|
|
126
|
-
d.logger.Warn(
|
|
127
|
-
fmt.Sprintf("blob DB: GC failure: %s", err),
|
|
128
|
-
"component", "database",
|
|
129
|
-
)
|
|
130
|
-
}
|
|
131
|
-
} else {
|
|
132
|
-
// Run it again if it just ran successfully
|
|
133
|
-
goto again
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
// Close gets the database handle from our BlobStore and closes it
|
|
139
|
-
func (d *BlobStoreBadger) Close() error {
|
|
140
|
-
db := d.DB()
|
|
141
|
-
return db.Close()
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
// DB returns the database handle
|
|
145
|
-
func (d *BlobStoreBadger) DB() *badger.DB {
|
|
146
|
-
return d.db
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
// NewTransaction creates a new badger transaction
|
|
150
|
-
func (d *BlobStoreBadger) NewTransaction(update bool) *badger.Txn {
|
|
151
|
-
return d.DB().NewTransaction(update)
|
|
152
|
-
}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
// Copyright 2025 Blink Labs Software
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
|
-
|
|
15
|
-
package badger
|
|
16
|
-
|
|
17
|
-
import (
|
|
18
|
-
"fmt"
|
|
19
|
-
"io"
|
|
20
|
-
"log/slog"
|
|
21
|
-
)
|
|
22
|
-
|
|
23
|
-
// BadgerLogger is a wrapper type to give our logger the expected interface
|
|
24
|
-
type BadgerLogger struct {
|
|
25
|
-
logger *slog.Logger
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
func NewBadgerLogger(logger *slog.Logger) *BadgerLogger {
|
|
29
|
-
if logger == nil {
|
|
30
|
-
// Create logger to throw away logs
|
|
31
|
-
// We do this so we don't have to add guards around every log operation
|
|
32
|
-
logger = slog.New(slog.NewJSONHandler(io.Discard, nil))
|
|
33
|
-
}
|
|
34
|
-
return &BadgerLogger{logger: logger}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
func (b *BadgerLogger) Infof(msg string, args ...any) {
|
|
38
|
-
b.logger.Info(
|
|
39
|
-
fmt.Sprintf(msg, args...),
|
|
40
|
-
"component", "database",
|
|
41
|
-
)
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
func (b *BadgerLogger) Warningf(msg string, args ...any) {
|
|
45
|
-
b.logger.Warn(
|
|
46
|
-
fmt.Sprintf(msg, args...),
|
|
47
|
-
"component", "database",
|
|
48
|
-
)
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
func (b *BadgerLogger) Debugf(msg string, args ...any) {
|
|
52
|
-
b.logger.Debug(
|
|
53
|
-
fmt.Sprintf(msg, args...),
|
|
54
|
-
"component", "database",
|
|
55
|
-
)
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
func (b *BadgerLogger) Errorf(msg string, args ...any) {
|
|
59
|
-
b.logger.Error(
|
|
60
|
-
fmt.Sprintf(msg, args...),
|
|
61
|
-
"component", "database",
|
|
62
|
-
)
|
|
63
|
-
}
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
// Copyright 2024 Blink Labs Software
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
|
-
|
|
15
|
-
package badger
|
|
16
|
-
|
|
17
|
-
import (
|
|
18
|
-
"github.com/prometheus/client_golang/prometheus"
|
|
19
|
-
"github.com/prometheus/client_golang/prometheus/collectors"
|
|
20
|
-
)
|
|
21
|
-
|
|
22
|
-
const (
|
|
23
|
-
badgerMetricNamePrefix = "database_blob_"
|
|
24
|
-
)
|
|
25
|
-
|
|
26
|
-
func (d *BlobStoreBadger) registerBlobMetrics() {
|
|
27
|
-
// Badger exposes metrics via expvar, so we need to set up some translation
|
|
28
|
-
collector := collectors.NewExpvarCollector(
|
|
29
|
-
map[string]*prometheus.Desc{
|
|
30
|
-
// This list of metrics is derived from the metrics defined here:
|
|
31
|
-
// https://github.com/dgraph-io/badger/blob/v4.2.0/y/metrics.go#L78-L107
|
|
32
|
-
"badger_read_num_vlog": prometheus.NewDesc(
|
|
33
|
-
badgerMetricNamePrefix+"read_num_vlog", "", nil, nil,
|
|
34
|
-
),
|
|
35
|
-
"badger_read_bytes_vlog": prometheus.NewDesc(
|
|
36
|
-
badgerMetricNamePrefix+"read_bytes_vlog", "", nil, nil,
|
|
37
|
-
),
|
|
38
|
-
"badger_write_num_vlog": prometheus.NewDesc(
|
|
39
|
-
badgerMetricNamePrefix+"write_num_vlog", "", nil, nil,
|
|
40
|
-
),
|
|
41
|
-
"badger_write_bytes_vlog": prometheus.NewDesc(
|
|
42
|
-
badgerMetricNamePrefix+"write_bytes_vlog", "", nil, nil,
|
|
43
|
-
),
|
|
44
|
-
"badger_read_bytes_lsm": prometheus.NewDesc(
|
|
45
|
-
badgerMetricNamePrefix+"read_bytes_lsm", "", nil, nil,
|
|
46
|
-
),
|
|
47
|
-
"badger_write_bytes_l0": prometheus.NewDesc(
|
|
48
|
-
badgerMetricNamePrefix+"write_bytes_l0", "", nil, nil,
|
|
49
|
-
),
|
|
50
|
-
"badger_write_bytes_compaction": prometheus.NewDesc(
|
|
51
|
-
badgerMetricNamePrefix+"write_bytes_compaction", "", nil, nil,
|
|
52
|
-
),
|
|
53
|
-
"badger_get_num_lsm": prometheus.NewDesc(
|
|
54
|
-
badgerMetricNamePrefix+"get_num_lsm", "", nil, nil,
|
|
55
|
-
),
|
|
56
|
-
"badger_hit_num_lsm_bloom_filter": prometheus.NewDesc(
|
|
57
|
-
badgerMetricNamePrefix+"hit_num_lsm_bloom_filter", "", nil, nil,
|
|
58
|
-
),
|
|
59
|
-
"badger_get_num_memtable": prometheus.NewDesc(
|
|
60
|
-
badgerMetricNamePrefix+"get_num_memtable", "", nil, nil,
|
|
61
|
-
),
|
|
62
|
-
"badger_get_num_user": prometheus.NewDesc(
|
|
63
|
-
badgerMetricNamePrefix+"get_num_user", "", nil, nil,
|
|
64
|
-
),
|
|
65
|
-
"badger_put_num_user": prometheus.NewDesc(
|
|
66
|
-
badgerMetricNamePrefix+"put_num_user", "", nil, nil,
|
|
67
|
-
),
|
|
68
|
-
"badger_write_bytes_user": prometheus.NewDesc(
|
|
69
|
-
badgerMetricNamePrefix+"write_bytes_user", "", nil, nil,
|
|
70
|
-
),
|
|
71
|
-
"badger_get_with_result_num_user": prometheus.NewDesc(
|
|
72
|
-
badgerMetricNamePrefix+"get_with_result_num_user", "", nil, nil,
|
|
73
|
-
),
|
|
74
|
-
"badger_iterator_num_user": prometheus.NewDesc(
|
|
75
|
-
badgerMetricNamePrefix+"iterator_num_user", "", nil, nil,
|
|
76
|
-
),
|
|
77
|
-
"badger_size_bytes_lsm": prometheus.NewDesc(
|
|
78
|
-
badgerMetricNamePrefix+"size_bytes_lsm", "", nil, nil,
|
|
79
|
-
),
|
|
80
|
-
"badger_size_bytes_vlog": prometheus.NewDesc(
|
|
81
|
-
badgerMetricNamePrefix+"size_bytes_vlog", "", nil, nil,
|
|
82
|
-
),
|
|
83
|
-
"badger_write_pending_num_memtable": prometheus.NewDesc(
|
|
84
|
-
badgerMetricNamePrefix+"write_pending_num_memtable",
|
|
85
|
-
"",
|
|
86
|
-
nil,
|
|
87
|
-
nil,
|
|
88
|
-
),
|
|
89
|
-
"badger_compaction_current_num_lsm": prometheus.NewDesc(
|
|
90
|
-
badgerMetricNamePrefix+"compaction_current_num_lsm",
|
|
91
|
-
"",
|
|
92
|
-
nil,
|
|
93
|
-
nil,
|
|
94
|
-
),
|
|
95
|
-
},
|
|
96
|
-
)
|
|
97
|
-
prometheus.MustRegister(collector)
|
|
98
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
// Copyright 2025 Blink Labs Software
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
|
-
|
|
15
|
-
package blob
|
|
16
|
-
|
|
17
|
-
import (
|
|
18
|
-
_ "github.com/blinklabs-io/dingo/database/plugin/blob/badger"
|
|
19
|
-
)
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
// Copyright 2025 Blink Labs Software
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
|
-
|
|
15
|
-
package blob
|
|
16
|
-
|
|
17
|
-
import (
|
|
18
|
-
"log/slog"
|
|
19
|
-
|
|
20
|
-
badgerPlugin "github.com/blinklabs-io/dingo/database/plugin/blob/badger"
|
|
21
|
-
badger "github.com/dgraph-io/badger/v4"
|
|
22
|
-
)
|
|
23
|
-
|
|
24
|
-
type BlobStore interface {
|
|
25
|
-
// matches badger.DB
|
|
26
|
-
Close() error
|
|
27
|
-
NewTransaction(bool) *badger.Txn
|
|
28
|
-
|
|
29
|
-
// Our specific functions
|
|
30
|
-
GetCommitTimestamp() (int64, error)
|
|
31
|
-
SetCommitTimestamp(*badger.Txn, int64) error
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// For now, this always returns a badger plugin
|
|
35
|
-
func New(
|
|
36
|
-
pluginName, dataDir string,
|
|
37
|
-
logger *slog.Logger,
|
|
38
|
-
) (BlobStore, error) {
|
|
39
|
-
return badgerPlugin.New(dataDir, logger)
|
|
40
|
-
}
|
package/database/plugin/log.go
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
// Copyright 2025 Blink Labs Software
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
|
-
|
|
15
|
-
package plugin
|
|
16
|
-
|
|
17
|
-
// Logger provides a logging interface for plugins.
|
|
18
|
-
type Logger interface {
|
|
19
|
-
Info(string, ...any)
|
|
20
|
-
Warn(string, ...any)
|
|
21
|
-
Debug(string, ...any)
|
|
22
|
-
Error(string, ...any)
|
|
23
|
-
|
|
24
|
-
// Deprecated
|
|
25
|
-
// Fatal(string, ...any) in favor of Error
|
|
26
|
-
// With slog Fatal is replaced with Error and os.Exit(1)
|
|
27
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
// Copyright 2025 Blink Labs Software
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
|
-
|
|
15
|
-
package metadata
|
|
16
|
-
|
|
17
|
-
import (
|
|
18
|
-
_ "github.com/blinklabs-io/dingo/database/plugin/metadata/sqlite"
|
|
19
|
-
)
|