Skip to content

Commit c5fffb8

Browse files
Majority fork protection (#565)
* require exact source and target epochs match in attestation * remove unused variables from testing utils * remove unused parameters from testutils * change from expected attestation to expected source and target epoch * add test for unmatched source epoch * revert name change for TestWrongBeaconVote * fix phase 0 and generate jsons * value check looks at checkpoints * wip * fix tests * fix errors and generate * fix final tests * add final tests * add to all tests and json files * add missing jsons * fix test * 3 tests commented * generate jsons * remove unneeded test function --------- Co-authored-by: Gal Rogozinski <[email protected]>
1 parent 65def99 commit c5fffb8

File tree

70 files changed

+6132
-83
lines changed

Some content is hidden

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

70 files changed

+6132
-83
lines changed

qbft/messages_encoding.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ssv/spectest/all_tests.go

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,19 @@ import (
44
"github.com/ssvlabs/ssv-spec/ssv/spectest/tests"
55
committeemultipleduty "github.com/ssvlabs/ssv-spec/ssv/spectest/tests/committee/multipleduty"
66
committeesingleduty "github.com/ssvlabs/ssv-spec/ssv/spectest/tests/committee/singleduty"
7+
"github.com/ssvlabs/ssv-spec/ssv/spectest/tests/dutyexe"
8+
"github.com/ssvlabs/ssv-spec/ssv/spectest/tests/partialsigcontainer"
79
"github.com/ssvlabs/ssv-spec/ssv/spectest/tests/runner"
810
"github.com/ssvlabs/ssv-spec/ssv/spectest/tests/runner/consensus"
11+
runnerconstruction "github.com/ssvlabs/ssv-spec/ssv/spectest/tests/runner/construction"
912
"github.com/ssvlabs/ssv-spec/ssv/spectest/tests/runner/duties/newduty"
1013
"github.com/ssvlabs/ssv-spec/ssv/spectest/tests/runner/duties/proposer"
1114
"github.com/ssvlabs/ssv-spec/ssv/spectest/tests/runner/duties/synccommitteeaggregator"
1215
"github.com/ssvlabs/ssv-spec/ssv/spectest/tests/runner/postconsensus"
1316
"github.com/ssvlabs/ssv-spec/ssv/spectest/tests/runner/preconsensus"
1417
"github.com/ssvlabs/ssv-spec/ssv/spectest/tests/valcheck/valcheckattestations"
1518
"github.com/ssvlabs/ssv-spec/ssv/spectest/tests/valcheck/valcheckduty"
19+
"github.com/ssvlabs/ssv-spec/ssv/spectest/tests/valcheck/valcheckproposer"
1620
)
1721

1822
var AllTests = []tests.TestF{
@@ -164,25 +168,28 @@ var AllTests = []tests.TestF{
164168
valcheckduty.FarFutureDutySlot,
165169

166170
valcheckattestations.Slashable,
167-
// valcheckattestations.SourceHigherThanTarget,
168-
// valcheckattestations.FarFutureTarget,
169-
// valcheckattestations.BeaconVoteDataNil,
170-
// valcheckattestations.Valid,
171-
// valcheckattestations.MinoritySlashable,
172-
// valcheckattestations.MajoritySlashable,
173-
// valcheckattestations.ValidNonSlashableSlot,
171+
valcheckattestations.SourceHigherThanTarget,
172+
valcheckattestations.UnmatchedTargetEpoch,
173+
valcheckattestations.UnmatchedSourceEpoch,
174+
valcheckattestations.UnmatchedTargetRoot,
175+
valcheckattestations.UnmatchedSourceRoot,
176+
valcheckattestations.BeaconVoteDataNil,
177+
valcheckattestations.Valid,
178+
valcheckattestations.MinoritySlashable,
179+
valcheckattestations.MajoritySlashable,
180+
valcheckattestations.ValidNonSlashableSlot,
174181

175-
// valcheckproposer.BlindedBlock,
182+
valcheckproposer.BlindedBlock,
176183

177-
// dutyexe.WrongDutyRole,
178-
// dutyexe.WrongDutyPubKey,
184+
dutyexe.WrongDutyRole,
185+
dutyexe.WrongDutyPubKey,
179186
// partialsigcontainer.OneSignature,
180-
// partialsigcontainer.Quorum,
187+
partialsigcontainer.Quorum,
181188
// partialsigcontainer.Duplicate,
182-
// partialsigcontainer.DuplicateQuorum,
189+
partialsigcontainer.DuplicateQuorum,
183190
// partialsigcontainer.Invalid,
184191

185-
// runnerconstruction.OneShare,
186-
// runnerconstruction.NoShares,
187-
// runnerconstruction.ManyShares,
192+
runnerconstruction.OneShare,
193+
runnerconstruction.NoShares,
194+
runnerconstruction.ManyShares,
188195
}
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
{
2+
"BaseRunner": {
3+
"State": {
4+
"PreConsensusContainer": {
5+
"Signatures": {},
6+
"Quorum": 3
7+
},
8+
"PostConsensusContainer": {
9+
"Signatures": {},
10+
"Quorum": 3
11+
},
12+
"RunningInstance": null,
13+
"DecidedValue": null,
14+
"Finished": false,
15+
"ValidatorDuty": {
16+
"Type": 1,
17+
"PubKey": "0x8e80066551a81b318258709edaf7dd1f63cd686a0e4db8b29bbb7acfe65608677af5a527d9448ee47835485e02b50bc0",
18+
"Slot": "7424012",
19+
"ValidatorIndex": "1",
20+
"CommitteeIndex": 22,
21+
"CommitteeLength": 128,
22+
"CommitteesAtSlot": 36,
23+
"ValidatorCommitteeIndex": 11,
24+
"ValidatorSyncCommitteeIndices": null
25+
}
26+
},
27+
"Share": {
28+
"1": {
29+
"Committee": [
30+
{
31+
"SharePubKey": "l9lKgR1kSTYFKp0tSs1kcYl0z2eNvv0mcyTI6fjnA0pKa32HeeJ6AZU4w8Qlw+Xn",
32+
"Signer": 1
33+
},
34+
{
35+
"SharePubKey": "przr4wl9dBcbQMcSoDHOsDcds9PEAs8s5pG5Eg87q3XU1W36DzdZFUSZm/GMU1Pt",
36+
"Signer": 2
37+
},
38+
{
39+
"SharePubKey": "gJDgt2ZqRezF1O90GKyZ8J5sskQCn+pqCn/Mvp7gi8U53g36Zr5rq8hJPdmd0amN",
40+
"Signer": 3
41+
},
42+
{
43+
"SharePubKey": "p8CidrcKXuM5XH1tJlXtYFKKolLU0h7KX8xSI+UMxCvRaLKAq3q1MXNU3d/PPfnk",
44+
"Signer": 4
45+
}
46+
],
47+
"DomainType": [
48+
0,
49+
0,
50+
3,
51+
1
52+
],
53+
"FeeRecipientAddress": "535953b5a6040074948cf185eaa7d2abbd66808f",
54+
"Graffiti": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
55+
"SharePubKey": "l9lKgR1kSTYFKp0tSs1kcYl0z2eNvv0mcyTI6fjnA0pKa32HeeJ6AZU4w8Qlw+Xn",
56+
"ValidatorIndex": "1",
57+
"ValidatorPubKey": "8e80066551a81b318258709edaf7dd1f63cd686a0e4db8b29bbb7acfe65608677af5a527d9448ee47835485e02b50bc0"
58+
}
59+
},
60+
"QBFTController": {
61+
"Identifier": "AAADAQEAAACOgAZlUagbMYJYcJ7a990fY81oag5NuLKbu3rP5lYIZ3r1pSfZRI7keDVIXgK1C8A=",
62+
"Height": 0,
63+
"StoredInstances": [],
64+
"CommitteeMember": {
65+
"OperatorID": 1,
66+
"CommitteeID": "cf97adeedb59e05bfd73a2b4c2a8885708c4f4f70c84c64b27120e72ab733b72",
67+
"SSVOperatorPubKey": "LS0tLS1CRUdJTiBSU0EgUFVCTElDIEtFWS0tLS0tCk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBeU16MmIrS1pKSXpCelJad3RwYnkKTHYvZzdZNFBGTDhGVGI0Y0Y0cVhzRVh4Smh1MGxHSmhUMFlZWUN4WUNhdk1aZjUwTlFETzRRQ2RlM2xzb0VZQgphdzBlZnRrWE5pMkxYL3h3aWozY044NTZkMkdvMGhZZjJCRVYySkUzb3pkU1NyNWNoaS9hVHYxM2w4YU1ZY2pXCjA4bHlBemxBVXozWGd2UmlkVktteHhoakFQRVRmM1BtcHV3aGFvM1luL3dMOFJSNk9BakNFUjRLN1JjLzV2bksKanZCaDU3bFNRZjdZRk9kV2ZnbEhjTWNYZndVNStldmFFbVJhaW9vYXpTQnkwMUtvMlJEQnBGL3VFNzdzZGYxQwo2NVRRSnZvS3kyRjBKUWJ2ME9RVFNqVzBDUHcwaFMydk96Qk5VK3ZBRUVYNHdxQmp6M1grUER1OUxid0E1NFdtClVRSURBUUFCCi0tLS0tRU5EIFJTQSBQVUJMSUMgS0VZLS0tLS0K",
68+
"FaultyNodes": 1,
69+
"Committee": [
70+
{
71+
"OperatorID": 1,
72+
"SSVOperatorPubKey": "LS0tLS1CRUdJTiBSU0EgUFVCTElDIEtFWS0tLS0tCk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBeU16MmIrS1pKSXpCelJad3RwYnkKTHYvZzdZNFBGTDhGVGI0Y0Y0cVhzRVh4Smh1MGxHSmhUMFlZWUN4WUNhdk1aZjUwTlFETzRRQ2RlM2xzb0VZQgphdzBlZnRrWE5pMkxYL3h3aWozY044NTZkMkdvMGhZZjJCRVYySkUzb3pkU1NyNWNoaS9hVHYxM2w4YU1ZY2pXCjA4bHlBemxBVXozWGd2UmlkVktteHhoakFQRVRmM1BtcHV3aGFvM1luL3dMOFJSNk9BakNFUjRLN1JjLzV2bksKanZCaDU3bFNRZjdZRk9kV2ZnbEhjTWNYZndVNStldmFFbVJhaW9vYXpTQnkwMUtvMlJEQnBGL3VFNzdzZGYxQwo2NVRRSnZvS3kyRjBKUWJ2ME9RVFNqVzBDUHcwaFMydk96Qk5VK3ZBRUVYNHdxQmp6M1grUER1OUxid0E1NFdtClVRSURBUUFCCi0tLS0tRU5EIFJTQSBQVUJMSUMgS0VZLS0tLS0K"
73+
},
74+
{
75+
"OperatorID": 2,
76+
"SSVOperatorPubKey": "LS0tLS1CRUdJTiBSU0EgUFVCTElDIEtFWS0tLS0tCk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbVlaUDJHRzRxM1ZSUmFpZG1nbWEKT0N3eno4OEdUTDIvdHM0c3gyZk1hSkJ3dDJtY1JwR1NKTHVNQWgrUUpFSWhFUGNXYVNicllVYTdOZUg2VHZSdwp1TUlRdldzT3hzRUNmTzZndmZiTGhNeERyaGZrRmc2R3pNZ0pZQm1VUXVxRUlwYklXZitRVzJoQ0ViQjN1R3Y4CnFpMDdpSTBTTzB6OEtjZnhCVUJXNmtxNkRJdHozbEo2Z1ZOTjdTNFRBblZkS2o2NjBuR2JuSENlOVJQMzRma3IKVEtuUTBHb0NEOHh2RTE3U1dsWThHcmFzRGxJbDUxcWJSRGx2RXJJS3QvRHFBbllkZk4rL1BLekxJMkxlUGNjSApRdVdKalA5UXZZTWhrci9VVmdyMGM4Ums3bmt2YXprYmtrS2JreGVUMkp3OC9WN2gveWE0aDhZb1B6MkJLd05RCmNRSURBUUFCCi0tLS0tRU5EIFJTQSBQVUJMSUMgS0VZLS0tLS0K"
77+
},
78+
{
79+
"OperatorID": 3,
80+
"SSVOperatorPubKey": "LS0tLS1CRUdJTiBSU0EgUFVCTElDIEtFWS0tLS0tCk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBdG9pRlRVcUpwTDg0eHZoTUZTQU8KWUFxYkVZaXpEQlBsL2xNMmMxOEtzRzlJQVNEU3piTmZ4R25jMnBDMzdqanI3aDNibFN4RU5ZU0tPWVZIVzJOMgpxOGJ6TEJ1MDZrSzBnenNWRERKTU5jOGpwVnFOK0VJclBsSWpOWUwybXA1Wk5uYXp5YVdBYVZWa05ZeU1hYWpJCkF6VHlyWis2d3VvUVJvaXV6U2dsdTBSNmV1V1FaZThDY2lFVDFaRHJDMFJpaG4rYklCbzNlN3YwekZBZXczUXcKVTNJbEZvanp0SjVyaitKZmx5UWFVaS96VEN5OXFUUG5XV0ZBenRHWjZGZS8wM3VoVk4wczhXWnd0MnkxVjFiaQpIWUFQWXo2MmZpdENWNDRZcmt6RU9tSVNnUm4zVW9qT3prOHZORlltY0NSNDFMMncvbzE3UjBEM0xnOG54QzZNCkpRSURBUUFCCi0tLS0tRU5EIFJTQSBQVUJMSUMgS0VZLS0tLS0K"
81+
},
82+
{
83+
"OperatorID": 4,
84+
"SSVOperatorPubKey": "LS0tLS1CRUdJTiBSU0EgUFVCTElDIEtFWS0tLS0tCk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcVFYenEvNlh0VkVmSlRaL3YxUHcKa3pTa05SWGJwQy80MWE5TFNRdnNra0lDZEcyZEd3K1FhZ2tOVllwdktRc1Izd0F4QmZEb1FxZE1vRXY4R2g5eApCYVphZjZrTFdrbmFWWVlOSmVXbjZiRWlEbVhqVllETXE1ZGhsOW9kOVVoSzRFWVQ4cklmNWFsZnlFYTkrV3M5Cm9lQUxTMjFjVlBwUlBvYlFIeHNYOHhvOXVRQ3JMeE9xYzRFVzgyODVLajV2blFsZnBHRzIxV0ZCZmJIR1I0WGEKK2FtT2ZUS1BsUkxsZVZVTXp3WCs3cGVHSi81SDNqcExGbCtvRmFyMkMvWURIL0VKejArTnE2R0ptNzFpSjdNYwoxK2MwUDZGT2F5NlpxWitaRGo5ZHBKZC9tYnFZenkzcks2YlBvOE52TkVZSFNKZk9SRDRLak5NSXM0UzF5cHhaCkl3SURBUUFCCi0tLS0tRU5EIFJTQSBQVUJMSUMgS0VZLS0tLS0K"
85+
}
86+
],
87+
"DomainType": "00000301"
88+
}
89+
},
90+
"BeaconNetwork": "now_test_network",
91+
"RunnerRoleType": 1
92+
}
93+
}
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
{
2+
"BaseRunner": {
3+
"State": {
4+
"PreConsensusContainer": {
5+
"Signatures": {},
6+
"Quorum": 3
7+
},
8+
"PostConsensusContainer": {
9+
"Signatures": {},
10+
"Quorum": 3
11+
},
12+
"RunningInstance": null,
13+
"DecidedValue": null,
14+
"Finished": false,
15+
"ValidatorDuty": {
16+
"Type": 1,
17+
"PubKey": "0x8e80066551a81b318258709edaf7dd1f63cd686a0e4db8b29bbb7acfe65608677af5a527d9448ee47835485e02b50bc0",
18+
"Slot": "12",
19+
"ValidatorIndex": "1",
20+
"CommitteeIndex": 22,
21+
"CommitteeLength": 128,
22+
"CommitteesAtSlot": 36,
23+
"ValidatorCommitteeIndex": 11,
24+
"ValidatorSyncCommitteeIndices": null
25+
}
26+
},
27+
"Share": {
28+
"1": {
29+
"Committee": [
30+
{
31+
"SharePubKey": "l9lKgR1kSTYFKp0tSs1kcYl0z2eNvv0mcyTI6fjnA0pKa32HeeJ6AZU4w8Qlw+Xn",
32+
"Signer": 1
33+
},
34+
{
35+
"SharePubKey": "przr4wl9dBcbQMcSoDHOsDcds9PEAs8s5pG5Eg87q3XU1W36DzdZFUSZm/GMU1Pt",
36+
"Signer": 2
37+
},
38+
{
39+
"SharePubKey": "gJDgt2ZqRezF1O90GKyZ8J5sskQCn+pqCn/Mvp7gi8U53g36Zr5rq8hJPdmd0amN",
40+
"Signer": 3
41+
},
42+
{
43+
"SharePubKey": "p8CidrcKXuM5XH1tJlXtYFKKolLU0h7KX8xSI+UMxCvRaLKAq3q1MXNU3d/PPfnk",
44+
"Signer": 4
45+
}
46+
],
47+
"DomainType": [
48+
0,
49+
0,
50+
3,
51+
1
52+
],
53+
"FeeRecipientAddress": "535953b5a6040074948cf185eaa7d2abbd66808f",
54+
"Graffiti": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
55+
"SharePubKey": "l9lKgR1kSTYFKp0tSs1kcYl0z2eNvv0mcyTI6fjnA0pKa32HeeJ6AZU4w8Qlw+Xn",
56+
"ValidatorIndex": "1",
57+
"ValidatorPubKey": "8e80066551a81b318258709edaf7dd1f63cd686a0e4db8b29bbb7acfe65608677af5a527d9448ee47835485e02b50bc0"
58+
}
59+
},
60+
"QBFTController": {
61+
"Identifier": "AAADAQEAAACOgAZlUagbMYJYcJ7a990fY81oag5NuLKbu3rP5lYIZ3r1pSfZRI7keDVIXgK1C8A=",
62+
"Height": 0,
63+
"StoredInstances": [],
64+
"CommitteeMember": {
65+
"OperatorID": 1,
66+
"CommitteeID": "cf97adeedb59e05bfd73a2b4c2a8885708c4f4f70c84c64b27120e72ab733b72",
67+
"SSVOperatorPubKey": "LS0tLS1CRUdJTiBSU0EgUFVCTElDIEtFWS0tLS0tCk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBeU16MmIrS1pKSXpCelJad3RwYnkKTHYvZzdZNFBGTDhGVGI0Y0Y0cVhzRVh4Smh1MGxHSmhUMFlZWUN4WUNhdk1aZjUwTlFETzRRQ2RlM2xzb0VZQgphdzBlZnRrWE5pMkxYL3h3aWozY044NTZkMkdvMGhZZjJCRVYySkUzb3pkU1NyNWNoaS9hVHYxM2w4YU1ZY2pXCjA4bHlBemxBVXozWGd2UmlkVktteHhoakFQRVRmM1BtcHV3aGFvM1luL3dMOFJSNk9BakNFUjRLN1JjLzV2bksKanZCaDU3bFNRZjdZRk9kV2ZnbEhjTWNYZndVNStldmFFbVJhaW9vYXpTQnkwMUtvMlJEQnBGL3VFNzdzZGYxQwo2NVRRSnZvS3kyRjBKUWJ2ME9RVFNqVzBDUHcwaFMydk96Qk5VK3ZBRUVYNHdxQmp6M1grUER1OUxid0E1NFdtClVRSURBUUFCCi0tLS0tRU5EIFJTQSBQVUJMSUMgS0VZLS0tLS0K",
68+
"FaultyNodes": 1,
69+
"Committee": [
70+
{
71+
"OperatorID": 1,
72+
"SSVOperatorPubKey": "LS0tLS1CRUdJTiBSU0EgUFVCTElDIEtFWS0tLS0tCk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBeU16MmIrS1pKSXpCelJad3RwYnkKTHYvZzdZNFBGTDhGVGI0Y0Y0cVhzRVh4Smh1MGxHSmhUMFlZWUN4WUNhdk1aZjUwTlFETzRRQ2RlM2xzb0VZQgphdzBlZnRrWE5pMkxYL3h3aWozY044NTZkMkdvMGhZZjJCRVYySkUzb3pkU1NyNWNoaS9hVHYxM2w4YU1ZY2pXCjA4bHlBemxBVXozWGd2UmlkVktteHhoakFQRVRmM1BtcHV3aGFvM1luL3dMOFJSNk9BakNFUjRLN1JjLzV2bksKanZCaDU3bFNRZjdZRk9kV2ZnbEhjTWNYZndVNStldmFFbVJhaW9vYXpTQnkwMUtvMlJEQnBGL3VFNzdzZGYxQwo2NVRRSnZvS3kyRjBKUWJ2ME9RVFNqVzBDUHcwaFMydk96Qk5VK3ZBRUVYNHdxQmp6M1grUER1OUxid0E1NFdtClVRSURBUUFCCi0tLS0tRU5EIFJTQSBQVUJMSUMgS0VZLS0tLS0K"
73+
},
74+
{
75+
"OperatorID": 2,
76+
"SSVOperatorPubKey": "LS0tLS1CRUdJTiBSU0EgUFVCTElDIEtFWS0tLS0tCk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbVlaUDJHRzRxM1ZSUmFpZG1nbWEKT0N3eno4OEdUTDIvdHM0c3gyZk1hSkJ3dDJtY1JwR1NKTHVNQWgrUUpFSWhFUGNXYVNicllVYTdOZUg2VHZSdwp1TUlRdldzT3hzRUNmTzZndmZiTGhNeERyaGZrRmc2R3pNZ0pZQm1VUXVxRUlwYklXZitRVzJoQ0ViQjN1R3Y4CnFpMDdpSTBTTzB6OEtjZnhCVUJXNmtxNkRJdHozbEo2Z1ZOTjdTNFRBblZkS2o2NjBuR2JuSENlOVJQMzRma3IKVEtuUTBHb0NEOHh2RTE3U1dsWThHcmFzRGxJbDUxcWJSRGx2RXJJS3QvRHFBbllkZk4rL1BLekxJMkxlUGNjSApRdVdKalA5UXZZTWhrci9VVmdyMGM4Ums3bmt2YXprYmtrS2JreGVUMkp3OC9WN2gveWE0aDhZb1B6MkJLd05RCmNRSURBUUFCCi0tLS0tRU5EIFJTQSBQVUJMSUMgS0VZLS0tLS0K"
77+
},
78+
{
79+
"OperatorID": 3,
80+
"SSVOperatorPubKey": "LS0tLS1CRUdJTiBSU0EgUFVCTElDIEtFWS0tLS0tCk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBdG9pRlRVcUpwTDg0eHZoTUZTQU8KWUFxYkVZaXpEQlBsL2xNMmMxOEtzRzlJQVNEU3piTmZ4R25jMnBDMzdqanI3aDNibFN4RU5ZU0tPWVZIVzJOMgpxOGJ6TEJ1MDZrSzBnenNWRERKTU5jOGpwVnFOK0VJclBsSWpOWUwybXA1Wk5uYXp5YVdBYVZWa05ZeU1hYWpJCkF6VHlyWis2d3VvUVJvaXV6U2dsdTBSNmV1V1FaZThDY2lFVDFaRHJDMFJpaG4rYklCbzNlN3YwekZBZXczUXcKVTNJbEZvanp0SjVyaitKZmx5UWFVaS96VEN5OXFUUG5XV0ZBenRHWjZGZS8wM3VoVk4wczhXWnd0MnkxVjFiaQpIWUFQWXo2MmZpdENWNDRZcmt6RU9tSVNnUm4zVW9qT3prOHZORlltY0NSNDFMMncvbzE3UjBEM0xnOG54QzZNCkpRSURBUUFCCi0tLS0tRU5EIFJTQSBQVUJMSUMgS0VZLS0tLS0K"
81+
},
82+
{
83+
"OperatorID": 4,
84+
"SSVOperatorPubKey": "LS0tLS1CRUdJTiBSU0EgUFVCTElDIEtFWS0tLS0tCk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcVFYenEvNlh0VkVmSlRaL3YxUHcKa3pTa05SWGJwQy80MWE5TFNRdnNra0lDZEcyZEd3K1FhZ2tOVllwdktRc1Izd0F4QmZEb1FxZE1vRXY4R2g5eApCYVphZjZrTFdrbmFWWVlOSmVXbjZiRWlEbVhqVllETXE1ZGhsOW9kOVVoSzRFWVQ4cklmNWFsZnlFYTkrV3M5Cm9lQUxTMjFjVlBwUlBvYlFIeHNYOHhvOXVRQ3JMeE9xYzRFVzgyODVLajV2blFsZnBHRzIxV0ZCZmJIR1I0WGEKK2FtT2ZUS1BsUkxsZVZVTXp3WCs3cGVHSi81SDNqcExGbCtvRmFyMkMvWURIL0VKejArTnE2R0ptNzFpSjdNYwoxK2MwUDZGT2F5NlpxWitaRGo5ZHBKZC9tYnFZenkzcks2YlBvOE52TkVZSFNKZk9SRDRLak5NSXM0UzF5cHhaCkl3SURBUUFCCi0tLS0tRU5EIFJTQSBQVUJMSUMgS0VZLS0tLS0K"
85+
}
86+
],
87+
"DomainType": "00000301"
88+
}
89+
},
90+
"BeaconNetwork": "now_test_network",
91+
"RunnerRoleType": 1
92+
}
93+
}

0 commit comments

Comments
 (0)