Skip to content

Commit d76fba7

Browse files
Switch to new db config
Signed-off-by: Alexandros Filios <[email protected]>
1 parent f2ba897 commit d76fba7

Some content is hidden

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

61 files changed

+363
-496
lines changed

docs/core-token.md

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -91,24 +91,10 @@ token:
9191
# The databases can be instantiated in isolation, a different backend for each db, or with a shared backend, depending on the driver used.
9292
# In the following example, we have all databases using the same backed but tokendb.
9393

94-
# shared db configuration. The `unity` driver is used as provider.
95-
db:
96-
persistence:
97-
# configuration for the unity db driver. It uses sql as backend. See also https://github.com/hyperledger-labs/fabric-smart-client/blob/main/docs/core-fabric.md
98-
type: unity
99-
opts:
100-
driver: sqlite
101-
maxOpenConns: 20 # optional: max open read connections to the database. Defaults to unlimited. See https://go.dev/doc/database/manage-connections.
102-
maxIdleConns: 20 # optional: max idle read connections to the database. Defaults to 2.
103-
maxIdleTime: 30s # optional: max duration a connection can be idle before it is closed. Defaults to 1 minute.
104-
dataSource: /some/path/unitydb
105-
# optional separate configuration for ttxdb, tokendb, auditdb, and identitydb
94+
# optional separate configuration for ttxdb, tokendb, tokenlockdb, auditdb, and identitydb
95+
# otherwise they default to 'default', if it is defined
10696
tokendb:
107-
persistence:
108-
type: sql
109-
opts:
110-
driver: sqlite
111-
dataSource: /some/path/tokendb
97+
persistence: my_token_persistence
11298

11399
services:
114100
# This section contains network specific configuration

docs/services/storage.md

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,7 @@ token:
4242
namespace: tns # the name of the channel's namespace this TMS refers to, if applicable
4343
# db specific driver
4444
tokendb:
45-
persistence:
46-
type: sql
47-
opts:
48-
driver: sqlite
49-
dataSource: /some/path/tokendb
45+
persistence: my_token_persistence
5046
```
5147
5248
* **Shared Backend:** Alternatively, a single backend system can be shared by all databases, offering a more streamlined approach for deployments with simpler requirements.
@@ -57,15 +53,6 @@ token:
5753
network: default # the name of the network this TMS refers to (Fabric, Orion, etc)
5854
channel: testchannel # the name of the network's channel this TMS refers to, if applicable
5955
namespace: tns # the name of the channel's namespace this TMS refers to, if applicable
60-
61-
# shared db configuration. The `unity` driver is used as provider.
62-
db:
63-
persistence:
64-
# configuration for the unity db driver. It uses sql as backend
65-
type: unity
66-
opts:
67-
driver: sqlite
68-
dataSource: /some/path/unitydb
6956
```
7057
7158
The specific driver used by the application will ultimately determine the available deployment options.

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ require (
99
github.com/gin-gonic/gin v1.10.0
1010
github.com/gobuffalo/packr/v2 v2.7.1
1111
github.com/hashicorp/go-uuid v1.0.3
12-
github.com/hyperledger-labs/fabric-smart-client v0.4.1-0.20250421121846-c73bf391298f
12+
github.com/hyperledger-labs/fabric-smart-client v0.4.1-0.20250424082942-4426380254a6
1313
github.com/hyperledger-labs/orion-sdk-go v0.2.10
1414
github.com/hyperledger-labs/orion-server v0.2.10
1515
github.com/hyperledger/fabric v1.4.0-rc1.0.20230405174026-695dd57e01c2

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1073,8 +1073,8 @@ github.com/hidal-go/hidalgo v0.0.0-20201109092204-05749a6d73df/go.mod h1:bPkrxDl
10731073
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
10741074
github.com/huin/goupnp v1.3.0 h1:UvLUlWDNpoUdYzb2TCn+MuTWtcjXKSza2n6CBdQ0xXc=
10751075
github.com/huin/goupnp v1.3.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8=
1076-
github.com/hyperledger-labs/fabric-smart-client v0.4.1-0.20250421121846-c73bf391298f h1:LZrqQqepg3eiIgGcypcowr54gEj3V5gU6pOHFCFxq74=
1077-
github.com/hyperledger-labs/fabric-smart-client v0.4.1-0.20250421121846-c73bf391298f/go.mod h1:0uk7mRq5G1JTb0txPR2PL4TQZntcFZjhRpXZvmrajOs=
1076+
github.com/hyperledger-labs/fabric-smart-client v0.4.1-0.20250424082942-4426380254a6 h1:i9KY2d2QvduzkHorhmlv1GctRb+gYbxGpP6FPSGU2Xo=
1077+
github.com/hyperledger-labs/fabric-smart-client v0.4.1-0.20250424082942-4426380254a6/go.mod h1:0uk7mRq5G1JTb0txPR2PL4TQZntcFZjhRpXZvmrajOs=
10781078
github.com/hyperledger-labs/orion-sdk-go v0.2.10 h1:lFgWgxyvngIhWnIqymYGBmtmq9D6uC5d0uLG9cbyh5s=
10791079
github.com/hyperledger-labs/orion-sdk-go v0.2.10/go.mod h1:iN2xZB964AqwVJwL+EnwPOs8z1EkMEbbIg/qYeC7gDY=
10801080
github.com/hyperledger-labs/orion-server v0.2.10 h1:G4zbQEL5Egk0Oj+TwHCZWdTOLDBHOjaAEvYOT4G7ozw=

integration/nwo/token/common/options.go

Lines changed: 0 additions & 23 deletions
This file was deleted.

integration/nwo/token/common/utils.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,28 @@ import (
1010
"os"
1111
"path"
1212

13+
"github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fsc/node"
1314
"github.com/hyperledger-labs/fabric-token-sdk/token/services/logging"
1415
)
1516

1617
var logger = logging.MustGetLogger("token-sdk.integration.token.common")
1718

19+
const (
20+
TokenKey = "tkn"
21+
IdentityKey = "idty"
22+
TokenLockKey = "tknlk"
23+
OwnerTransactionKey = "owntx"
24+
AuditTransactionKey = "audtx"
25+
)
26+
27+
var AllPrefixes = []node.PersistenceKey{
28+
TokenKey,
29+
IdentityKey,
30+
TokenLockKey,
31+
OwnerTransactionKey,
32+
AuditTransactionKey,
33+
}
34+
1835
const (
1936
FabricBinsPathEnvKey = "FAB_BINS"
2037
fabricCaClientCMD = "fabric-ca-client"

integration/nwo/token/fabric/fabric.go

Lines changed: 14 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import (
1717
api2 "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/api"
1818
"github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fsc"
1919
sfcnode "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fsc/node"
20-
sql2 "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/db/driver/sql"
20+
"github.com/hyperledger-labs/fabric-smart-client/platform/view/services/db/driver"
2121
common2 "github.com/hyperledger-labs/fabric-token-sdk/integration/nwo/token/common"
2222
"github.com/hyperledger-labs/fabric-token-sdk/integration/nwo/token/generators"
2323
"github.com/hyperledger-labs/fabric-token-sdk/integration/nwo/token/generators/dlog"
@@ -125,24 +125,21 @@ func (p *NetworkHandler) GenerateExtension(tms *topology2.TMS, node *sfcnode.Nod
125125
Expect(os.MkdirAll(p.AuditDBSQLDataSourceDir(uniqueName), 0775)).ToNot(HaveOccurred(), "failed to create [%s]", p.AuditDBSQLDataSourceDir(uniqueName))
126126
Expect(os.MkdirAll(p.IdentityDBSQLDataSourceDir(uniqueName), 0775)).ToNot(HaveOccurred(), "failed to create [%s]", p.IdentityDBSQLDataSourceDir(uniqueName))
127127

128-
persistence := node.Options.GetPersistence("token")
129-
if persistence == nil {
130-
persistence = &sfcnode.SQLOpts{DriverType: sql2.SQLite}
131-
}
128+
persistenceNames := fsc.GetPersistenceNames(node.Options, common2.AllPrefixes...)
132129

133130
t, err := template.New("peer").Funcs(template.FuncMap{
134-
"TMSID": func() string { return tms.TmsID() },
135-
"TMS": func() *topology2.TMS { return tms },
136-
"Wallets": func() *topology2.Wallets { return p.GetEntry(tms).Wallets[node.Name] },
137-
"SQLDriver": func() string { return string(persistence.DriverType) },
138-
"SQLDataSource": func() string { return p.dataSource(*persistence, p.TTXDBSQLDataSourceDir(uniqueName), tms) },
139-
"TokensSQLDriver": func() string { return string(persistence.DriverType) },
140-
"TokensSQLDataSource": func() string { return p.dataSource(*persistence, p.TokensDBSQLDataSourceDir(uniqueName), tms) },
141-
"Endorsement": func() bool { return IsFSCEndorsementEnabled(tms) },
142-
"Endorsers": func() []string { return Endorsers(tms) },
143-
"EndorserID": func() string { return "" },
144-
"Endorser": func() bool { return topology2.ToOptions(node.Options).Endorser() },
145-
"OnlyUnity": func() bool { return common2.IsOnlyUnity(tms) },
131+
"TMSID": func() string { return tms.TmsID() },
132+
"TMS": func() *topology2.TMS { return tms },
133+
"Wallets": func() *topology2.Wallets { return p.GetEntry(tms).Wallets[node.Name] },
134+
"TokenPersistence": func() driver.PersistenceName { return persistenceNames[common2.TokenKey] },
135+
"IdentityPersistence": func() driver.PersistenceName { return persistenceNames[common2.IdentityKey] },
136+
"TokenLockPersistence": func() driver.PersistenceName { return persistenceNames[common2.TokenLockKey] },
137+
"AuditTxPersistence": func() driver.PersistenceName { return persistenceNames[common2.AuditTransactionKey] },
138+
"OwnerTxPersistence": func() driver.PersistenceName { return persistenceNames[common2.OwnerTransactionKey] },
139+
"Endorsement": func() bool { return IsFSCEndorsementEnabled(tms) },
140+
"Endorsers": func() []string { return Endorsers(tms) },
141+
"EndorserID": func() string { return "" },
142+
"Endorser": func() bool { return topology2.ToOptions(node.Options).Endorser() },
146143
}).Parse(Extension)
147144
Expect(err).NotTo(HaveOccurred())
148145

@@ -153,16 +150,6 @@ func (p *NetworkHandler) GenerateExtension(tms *topology2.TMS, node *sfcnode.Nod
153150
return ext.String()
154151
}
155152

156-
func (p *NetworkHandler) dataSource(persistence sfcnode.SQLOpts, sourceDir string, tms *topology2.TMS) string {
157-
switch persistence.DriverType {
158-
case sql2.SQLite:
159-
return p.DBPath(sourceDir, tms)
160-
case sql2.Postgres:
161-
return persistence.DataSource
162-
}
163-
panic("unknown driver type")
164-
}
165-
166153
func (p *NetworkHandler) PostRun(load bool, tms *topology2.TMS) {
167154
if !load {
168155
// Start the CA, if available

integration/nwo/token/fabric/template.go

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -37,23 +37,17 @@ token:
3737
endorsers: {{ range Endorsers }}
3838
- {{ . }}{{ end }}
3939
{{ end }}
40-
db:
41-
persistence:
42-
type: unity
43-
opts:
44-
driver: {{ SQLDriver }}
45-
maxOpenConns: 200
46-
dataSource: {{ SQLDataSource }}
47-
{{ if not OnlyUnity }}
40+
4841
tokendb:
49-
persistence:
50-
type: sql
51-
opts:
52-
tablePrefix: tokens
53-
driver: {{ TokensSQLDriver }}
54-
maxOpenConns: 200
55-
dataSource: {{ TokensSQLDataSource }}
56-
{{ end }}
42+
persistence: {{ TokenPersistence }}
43+
identitydb:
44+
persistence: {{ IdentityPersistence }}
45+
tokenlockdb:
46+
persistence: {{ TokenLockPersistence }}
47+
auditdb:
48+
persistence: {{ AuditTxPersistence }}
49+
ttxdb:
50+
persistence: {{ OwnerTxPersistence }}
5751
{{ if Wallets }}
5852
# Wallets associated with this TMS
5953
wallets:

integration/nwo/token/orion/orion.go

Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import (
2020
sfcnode "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fsc/node"
2121
orion2 "github.com/hyperledger-labs/fabric-smart-client/integration/nwo/orion"
2222
"github.com/hyperledger-labs/fabric-smart-client/pkg/utils/errors"
23-
sql2 "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/db/driver/sql"
23+
"github.com/hyperledger-labs/fabric-smart-client/platform/view/services/db/driver"
2424
common2 "github.com/hyperledger-labs/fabric-token-sdk/integration/nwo/token/common"
2525
"github.com/hyperledger-labs/fabric-token-sdk/integration/nwo/token/generators"
2626
"github.com/hyperledger-labs/fabric-token-sdk/integration/nwo/token/generators/dlog"
@@ -154,10 +154,7 @@ func (p *NetworkHandler) GenerateExtension(tms *topology2.TMS, node *sfcnode.Nod
154154
Expect(os.MkdirAll(p.AuditDBSQLDataSourceDir(uniqueName), 0775)).ToNot(HaveOccurred(), "failed to create [%s]", p.AuditDBSQLDataSourceDir(uniqueName))
155155
Expect(os.MkdirAll(p.IdentityDBSQLDataSourceDir(uniqueName), 0775)).ToNot(HaveOccurred(), "failed to create [%s]", p.IdentityDBSQLDataSourceDir(uniqueName))
156156

157-
persistence := node.Options.GetPersistence("token")
158-
if persistence == nil {
159-
persistence = &sfcnode.SQLOpts{DriverType: sql2.SQLite}
160-
}
157+
persistenceNames := fsc.GetPersistenceNames(node.Options, common2.AllPrefixes...)
161158

162159
t, err := template.New("peer").Funcs(template.FuncMap{
163160
"IsCustodian": func() bool {
@@ -170,14 +167,14 @@ func (p *NetworkHandler) GenerateExtension(tms *topology2.TMS, node *sfcnode.Nod
170167
"CustodianID": func() string {
171168
return tms.BackendParams[Custodian].(string)
172169
},
173-
"TMSID": func() string { return tms.ID() },
174-
"TMS": func() *topology2.TMS { return tms },
175-
"Wallets": func() *topology2.Wallets { return p.GetEntry(tms).Wallets[node.Name] },
176-
"SQLDriver": func() string { return string(persistence.DriverType) },
177-
"SQLDataSource": func() string { return p.dataSource(*persistence, p.TTXDBSQLDataSourceDir(uniqueName), tms) },
178-
"TokensSQLDriver": func() string { return string(persistence.DriverType) },
179-
"TokensSQLDataSource": func() string { return p.dataSource(*persistence, p.TokensDBSQLDataSourceDir(uniqueName), tms) },
180-
"OnlyUnity": func() bool { return common2.IsOnlyUnity(tms) },
170+
"TMSID": func() string { return tms.ID() },
171+
"TMS": func() *topology2.TMS { return tms },
172+
"Wallets": func() *topology2.Wallets { return p.GetEntry(tms).Wallets[node.Name] },
173+
"TokenPersistence": func() driver.PersistenceName { return persistenceNames[common2.TokenKey] },
174+
"IdentityPersistence": func() driver.PersistenceName { return persistenceNames[common2.IdentityKey] },
175+
"TokenLockPersistence": func() driver.PersistenceName { return persistenceNames[common2.TokenLockKey] },
176+
"AuditTxPersistence": func() driver.PersistenceName { return persistenceNames[common2.AuditTransactionKey] },
177+
"OwnerTxPersistence": func() driver.PersistenceName { return persistenceNames[common2.OwnerTransactionKey] },
181178
}).Parse(Extension)
182179
Expect(err).NotTo(HaveOccurred())
183180

@@ -188,16 +185,6 @@ func (p *NetworkHandler) GenerateExtension(tms *topology2.TMS, node *sfcnode.Nod
188185
return ext.String()
189186
}
190187

191-
func (p *NetworkHandler) dataSource(persistence sfcnode.SQLOpts, sourceDir string, tms *topology2.TMS) string {
192-
switch persistence.DriverType {
193-
case sql2.SQLite:
194-
return p.DBPath(sourceDir, tms)
195-
case sql2.Postgres:
196-
return persistence.DataSource
197-
}
198-
panic("unknown driver type")
199-
}
200-
201188
func (p *NetworkHandler) PostRun(load bool, tms *topology2.TMS) {
202189
if load {
203190
return

integration/nwo/token/orion/template.go

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,23 +29,16 @@ token:
2929
{{ if TMS.Certifiers }} interactive:
3030
ids: {{ range TMS.Certifiers }}
3131
- {{ . }}{{ end }}{{ end }}
32-
db:
33-
persistence:
34-
type: unity
35-
opts:
36-
driver: {{ SQLDriver }}
37-
maxOpenConns: 200
38-
dataSource: {{ SQLDataSource }}
39-
{{ if not OnlyUnity }}
4032
tokendb:
41-
persistence:
42-
type: sql
43-
opts:
44-
tablePrefix: tokens
45-
driver: {{ TokensSQLDriver }}
46-
maxOpenConns: 200
47-
dataSource: {{ TokensSQLDataSource }}
48-
{{ end }}
33+
persistence: {{ TokenPersistence }}
34+
identitydb:
35+
persistence: {{ IdentityPersistence }}
36+
tokenlockdb:
37+
persistence: {{ TokenLockPersistence }}
38+
auditdb:
39+
persistence: {{ AuditTxPersistence }}
40+
ttxdb:
41+
persistence: {{ OwnerTxPersistence }}
4942
{{ if Wallets }}
5043
# Wallets associated with this TMS
5144
wallets:

integration/token/common/sdk/identity/provider.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ package identity
88

99
import (
1010
"github.com/hyperledger-labs/fabric-token-sdk/token"
11+
"github.com/hyperledger-labs/fabric-token-sdk/token/services/db/driver"
1112
"github.com/hyperledger-labs/fabric-token-sdk/token/services/identity"
1213
"github.com/hyperledger-labs/fabric-token-sdk/token/services/identity/storage/kvs"
1314
)
@@ -20,11 +21,11 @@ func NewKVSStorageProvider(kvs kvs.KVS) *KVSStorageProvider {
2021
return &KVSStorageProvider{kvs: kvs}
2122
}
2223

23-
func (s *KVSStorageProvider) WalletDB(tmsID token.TMSID) (identity.WalletDB, error) {
24+
func (s *KVSStorageProvider) WalletDB(tmsID token.TMSID) (driver.WalletStore, error) {
2425
return kvs.NewWalletDB(s.kvs, tmsID), nil
2526
}
2627

27-
func (s *KVSStorageProvider) IdentityDB(tmsID token.TMSID) (identity.IdentityDB, error) {
28+
func (s *KVSStorageProvider) IdentityDB(tmsID token.TMSID) (driver.IdentityStore, error) {
2829
return kvs.NewIdentityDB(s.kvs, tmsID), nil
2930
}
3031

integration/token/common/topology.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ type Opts struct {
4040
WebEnabled bool
4141
Monitoring bool
4242
TokenSelector string
43-
OnlyUnity bool
4443
FSCBasedEndorsement bool
4544
ExtraTMSs []TMSOpts
4645
FinalityType config.ManagerType

integration/token/fungible/dlog/dlog_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,6 @@ func newTestSuite(commType fsc.P2PCommunicationType, mask int, factor int, token
141141
ReplicationOpts: opts,
142142
FSCBasedEndorsement: mask&WithEndorsers > 0,
143143
// FSCLogSpec: "token-sdk=debug:fabric-sdk=debug:info",
144-
OnlyUnity: true,
145144
TokenSelector: tokenSelector,
146145
},
147146
))

integration/token/fungible/dloghsm/dlog_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ func newTestSuite(commType fsc.P2PCommunicationType, mask int, factor int, names
5858
SDKs: []api.SDK{&fdlog.SDK{}},
5959
// FSCLogSpec: "token-sdk=debug:fabric-sdk=debug:info",
6060
ReplicationOpts: opts,
61-
OnlyUnity: true,
6261
},
6362
))
6463
return ts, selector

integration/token/fungible/fabtoken/fabtoken_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ func newTestSuite(commType fsc.P2PCommunicationType, factor int, names ...string
6767
ReplicationOpts: opts,
6868
WebEnabled: true, // Needed for the Remote Wallet with websockets
6969
// FSCLogSpec: "token-sdk=debug:fabric-sdk=debug:info",
70-
OnlyUnity: true,
7170
},
7271
))
7372
return ts, selector

integration/token/fungible/odlog/dlog_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ func newTestSuite(commType fsc.P2PCommunicationType, factor int, names ...string
3939
SDKs: []api.SDK{&odlog.SDK{}},
4040
FSCLogSpec: "token-sdk=debug:fabric-sdk=debug:info",
4141
ReplicationOpts: opts,
42-
OnlyUnity: true,
4342
},
4443
))
4544
return ts, selector

integration/token/fungible/ofabtoken/fabtoken_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ func newTestSuite(commType fsc.P2PCommunicationType, factor int, names ...string
3838
DefaultTMSOpts: common.TMSOpts{TokenSDKDriver: "fabtoken", Aries: true},
3939
SDKs: []api.SDK{&ofabtoken.SDK{}},
4040
ReplicationOpts: opts,
41-
OnlyUnity: true,
4241
},
4342
))
4443
return ts, selector

0 commit comments

Comments
 (0)