Skip to content

Commit 57a9c29

Browse files
committed
Introduce support for MSP load generation
Signed-off-by: Liran Funaro <[email protected]>
1 parent 8dc504d commit 57a9c29

32 files changed

+441
-325
lines changed

cmd/config/app_config_test.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -379,20 +379,20 @@ func TestReadConfigLoadGen(t *testing.T) {
379379
Block: workload.BlockProfile{Size: 500},
380380
Transaction: workload.TransactionProfile{
381381
ReadWriteCount: workload.NewConstantDistribution(2),
382-
Policy: &workload.PolicyProfile{
383-
ChannelID: "mychannel",
384-
NamespacePolicies: map[string]*workload.Policy{
385-
workload.DefaultGeneratedNamespaceID: {
386-
Scheme: signature.Ecdsa, Seed: 10,
387-
},
388-
committerpb.MetaNamespaceID: {
389-
Scheme: signature.Ecdsa, Seed: 11,
390-
},
382+
},
383+
Policy: workload.PolicyProfile{
384+
ChannelID: "mychannel",
385+
NamespacePolicies: map[string]*workload.Policy{
386+
workload.DefaultGeneratedNamespaceID: {
387+
Scheme: signature.Ecdsa, Seed: 10,
391388
},
392-
OrdererEndpoints: []*commontypes.OrdererEndpoint{
393-
newOrdererEndpoint("org", "orderer"),
389+
committerpb.MetaNamespaceID: {
390+
Scheme: signature.Ecdsa, Seed: 11,
394391
},
395392
},
393+
OrdererEndpoints: []*commontypes.OrdererEndpoint{
394+
newOrdererEndpoint("org", "orderer"),
395+
},
396396
},
397397
Conflicts: workload.ConflictProfile{
398398
InvalidSignatures: 0.1,

cmd/config/samples/loadgen.yaml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -48,17 +48,17 @@ load-profile:
4848
transaction:
4949
read-write-count:
5050
const: 2
51-
policy:
52-
channel-id: mychannel
53-
namespace-policies:
54-
0:
55-
scheme: ECDSA
56-
seed: 10
57-
_meta:
58-
scheme: ECDSA
59-
seed: 11
60-
orderer-endpoints:
61-
- id=0,msp-id=org,broadcast,deliver,orderer:7050
51+
policy:
52+
channel-id: mychannel
53+
namespace-policies:
54+
0:
55+
scheme: ECDSA
56+
seed: 10
57+
_meta:
58+
scheme: ECDSA
59+
seed: 11
60+
orderer-endpoints:
61+
- id=0,msp-id=org,broadcast,deliver,orderer:7050
6262
conflicts:
6363
invalid-signatures: 0.1
6464
seed: 12345

cmd/config/templates/loadgen_common.yaml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,15 @@ load-profile:
3838
read-only-count:
3939
read-write-count:
4040
const: 2
41-
policy:
42-
channel-id: {{ .Policy.ChannelID }}
43-
namespace-policies:
44-
{{ range $nsID, $element := .Policy.NamespacePolicies }}
45-
{{ $nsID }}:
46-
scheme: {{ $element.Scheme }}
47-
seed: {{ $element.Seed }}
48-
{{ end }}
49-
config-block-path: {{ .ConfigBlockPath }}
41+
policy:
42+
channel-id: {{ .Policy.ChannelID }}
43+
namespace-policies:
44+
{{ range $nsID, $element := .Policy.NamespacePolicies }}
45+
{{ $nsID }}:
46+
scheme: {{ $element.Scheme }}
47+
seed: {{ $element.Seed }}
48+
{{ end }}
49+
config-block-path: {{ .ConfigBlockPath }}
5050
query:
5151
query-size:
5252
min-invalid-keys-portion:

cmd/loadgen/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ func loadGenGenesisBlock() *cobra.Command {
100100
}
101101
cmd.SilenceUsage = true
102102

103-
block, err := workload.CreateConfigBlock(conf.LoadProfile.Transaction.Policy)
103+
block, err := workload.CreateConfigBlock(&conf.LoadProfile.Policy)
104104
if err != nil {
105105
return err
106106
}

docker/images/test_node/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ ENV SC_SIDECAR_COMMITTER_ENDPOINT=localhost:9001
2020
ENV SC_QUERY_DATABASE_ENDPOINTS=localhost:5433
2121
ENV SC_VC_DATABASE_ENDPOINTS=localhost:5433
2222
ENV SC_LOADGEN_ORDERER_CLIENT_ORDERER_CONNECTION_ENDPOINTS=localhost:7050
23-
ENV SC_LOADGEN_LOAD_PROFILE_TRANSACTION_POLICY_ORDERER_ENDPOINTS="id=0,msp-id=org,broadcast,deliver,localhost:7050"
23+
ENV SC_LOADGEN_LOAD_PROFILE_POLICY_ORDERER_ENDPOINTS="id=0,msp-id=org,broadcast,deliver,localhost:7050"
2424
ENV SC_LOADGEN_ORDERER_CLIENT_SIDECAR_CLIENT_ENDPOINT=localhost:4001
2525

2626
# Set TLS mode to none-tls.

docker/test/container_release_image_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,8 @@ func TestCommitterReleaseImagesWithTLS(t *testing.T) {
8383
v := config.NewViperWithLoadGenDefaults()
8484
c, err := config.ReadLoadGenYamlAndSetupLogging(v, filepath.Join(localConfigPath, "loadgen.yaml"))
8585
require.NoError(t, err)
86-
configBlock, err := workload.CreateConfigBlock(c.LoadProfile.Transaction.Policy)
86+
c.LoadProfile.Policy.CryptoMaterialPath = t.TempDir()
87+
configBlock, err := workload.CreateConfigBlock(&c.LoadProfile.Policy)
8788
require.NoError(t, err)
8889
require.NoError(t, configtxgen.WriteOutputBlock(configBlock, configBlockPath))
8990

integration/runner/runtime.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,9 @@ func NewRuntime(t *testing.T, conf *Config) *CommitterRuntime {
135135
LoadGenBlockLimit: conf.LoadgenBlockLimit,
136136
LoadGenWorkers: 1,
137137
Policy: &workload.PolicyProfile{
138-
ChannelID: TestChannelName,
139-
NamespacePolicies: make(map[string]*workload.Policy),
138+
ChannelID: TestChannelName,
139+
NamespacePolicies: make(map[string]*workload.Policy),
140+
CryptoMaterialPath: t.TempDir(),
140141
},
141142
Logging: &logging.DefaultConfig,
142143
},

integration/test/config_update_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,8 @@ func TestConfigUpdate(t *testing.T) {
8686
lgMetaTx := c.TxBuilder.MakeTx(metaTx)
8787

8888
c.AddOrUpdateNamespaces(t, committerpb.MetaNamespaceID)
89-
metaPolicy := c.TxBuilder.TxEndorser.Policy(committerpb.MetaNamespaceID).VerificationPolicy()
89+
verPolicies := c.TxBuilder.TxEndorser.VerificationPolicies()
90+
metaPolicy := verPolicies[committerpb.MetaNamespaceID]
9091
submitConfigBlock := func(endpoints []*commontypes.OrdererEndpoint) {
9192
ordererEnv.SubmitConfigBlock(t, &workload.ConfigBlock{
9293
ChannelID: c.SystemConfig.Policy.ChannelID,

integration/test/namespace_lifecycle_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,10 @@ func TestCreateUpdateNamespace(t *testing.T) {
2929
})
3030
c.Start(t, runner.FullTxPath)
3131

32-
policyBytesNs1, err := proto.Marshal(c.TxBuilder.TxEndorser.Policy("1").VerificationPolicy())
32+
verPolicies := c.TxBuilder.TxEndorser.VerificationPolicies()
33+
policyBytesNs1, err := proto.Marshal(verPolicies["1"])
3334
require.NoError(t, err)
34-
policyBytesNs2, err := proto.Marshal(c.TxBuilder.TxEndorser.Policy("2").VerificationPolicy())
35+
policyBytesNs2, err := proto.Marshal(verPolicies["2"])
3536
require.NoError(t, err)
3637

3738
tests := []struct {

loadgen/adapters/common.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import (
1212

1313
"github.com/cockroachdb/errors"
1414

15+
"github.com/hyperledger/fabric-protos-go-apiv2/common"
16+
1517
"github.com/hyperledger/fabric-x-committer/api/servicepb"
1618
"github.com/hyperledger/fabric-x-committer/loadgen/metrics"
1719
"github.com/hyperledger/fabric-x-committer/loadgen/workload"
@@ -23,10 +25,11 @@ import (
2325
type (
2426
// ClientResources holds client's pre-generated resources to be used by the adapters.
2527
ClientResources struct {
26-
Metrics *metrics.PerfMetrics
27-
Profile *workload.Profile
28-
Stream *workload.StreamOptions
29-
Limit *GenerateLimit
28+
Metrics *metrics.PerfMetrics
29+
Profile *workload.Profile
30+
Stream *workload.StreamOptions
31+
ConfigBlock *common.Block
32+
Limit *GenerateLimit
3033
}
3134

3235
// Phases specify the generation phases to enable.

0 commit comments

Comments
 (0)