@aztec/aztec 0.0.0-test.1 → 0.0.1-commit.b655e406
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/dest/bin/index.js +20 -12
- package/dest/cli/aztec_start_action.d.ts.map +1 -1
- package/dest/cli/aztec_start_action.js +32 -33
- package/dest/cli/aztec_start_options.d.ts +4 -2
- package/dest/cli/aztec_start_options.d.ts.map +1 -1
- package/dest/cli/aztec_start_options.js +137 -207
- package/dest/cli/cli.d.ts.map +1 -1
- package/dest/cli/cli.js +4 -0
- package/dest/cli/cmds/start_archiver.d.ts.map +1 -1
- package/dest/cli/cmds/start_archiver.js +18 -10
- package/dest/cli/cmds/start_blob_sink.d.ts.map +1 -1
- package/dest/cli/cmds/start_blob_sink.js +17 -1
- package/dest/cli/cmds/start_bot.d.ts +3 -6
- package/dest/cli/cmds/start_bot.d.ts.map +1 -1
- package/dest/cli/cmds/start_bot.js +24 -13
- package/dest/cli/cmds/start_node.d.ts +1 -1
- package/dest/cli/cmds/start_node.d.ts.map +1 -1
- package/dest/cli/cmds/start_node.js +66 -79
- package/dest/cli/cmds/start_p2p_bootstrap.d.ts.map +1 -1
- package/dest/cli/cmds/start_p2p_bootstrap.js +9 -4
- package/dest/cli/cmds/start_prover_agent.d.ts.map +1 -1
- package/dest/cli/cmds/start_prover_agent.js +31 -2
- package/dest/cli/cmds/start_prover_broker.d.ts.map +1 -1
- package/dest/cli/cmds/start_prover_broker.js +9 -3
- package/dest/cli/cmds/start_prover_node.d.ts.map +1 -1
- package/dest/cli/cmds/start_prover_node.js +43 -45
- package/dest/cli/preload_crs.d.ts +3 -0
- package/dest/cli/preload_crs.d.ts.map +1 -0
- package/dest/cli/preload_crs.js +6 -0
- package/dest/cli/release_version.d.ts +2 -0
- package/dest/cli/release_version.d.ts.map +1 -0
- package/dest/cli/release_version.js +14 -0
- package/dest/cli/util.d.ts +36 -5
- package/dest/cli/util.d.ts.map +1 -1
- package/dest/cli/util.js +198 -28
- package/dest/cli/versioning.js +3 -3
- package/dest/examples/token.js +31 -18
- package/dest/examples/util.d.ts +4 -5
- package/dest/examples/util.d.ts.map +1 -1
- package/dest/examples/util.js +5 -6
- package/dest/index.d.ts +1 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -1
- package/dest/sandbox/banana_fpc.d.ts +4 -5
- package/dest/sandbox/banana_fpc.d.ts.map +1 -1
- package/dest/sandbox/banana_fpc.js +19 -21
- package/dest/sandbox/index.d.ts +2 -3
- package/dest/sandbox/index.d.ts.map +1 -1
- package/dest/sandbox/index.js +2 -3
- package/dest/sandbox/sandbox.d.ts +25 -27
- package/dest/sandbox/sandbox.d.ts.map +1 -1
- package/dest/sandbox/sandbox.js +51 -49
- package/dest/sandbox/sponsored_fpc.d.ts +3 -5
- package/dest/sandbox/sponsored_fpc.d.ts.map +1 -1
- package/dest/sandbox/sponsored_fpc.js +10 -18
- package/dest/testing/anvil_test_watcher.d.ts +34 -0
- package/dest/testing/anvil_test_watcher.d.ts.map +1 -0
- package/dest/testing/anvil_test_watcher.js +142 -0
- package/dest/testing/cheat_codes.d.ts +43 -0
- package/dest/testing/cheat_codes.d.ts.map +1 -0
- package/dest/testing/cheat_codes.js +62 -0
- package/dest/testing/index.d.ts +4 -0
- package/dest/testing/index.d.ts.map +1 -0
- package/dest/testing/index.js +3 -0
- package/package.json +47 -41
- package/src/bin/index.ts +24 -12
- package/src/cli/aztec_start_action.ts +27 -30
- package/src/cli/aztec_start_options.ts +155 -207
- package/src/cli/cli.ts +8 -0
- package/src/cli/cmds/start_archiver.ts +19 -13
- package/src/cli/cmds/start_blob_sink.ts +27 -1
- package/src/cli/cmds/start_bot.ts +35 -12
- package/src/cli/cmds/start_node.ts +89 -84
- package/src/cli/cmds/start_p2p_bootstrap.ts +12 -4
- package/src/cli/cmds/start_prover_agent.ts +22 -2
- package/src/cli/cmds/start_prover_broker.ts +23 -3
- package/src/cli/cmds/start_prover_node.ts +53 -50
- package/src/cli/preload_crs.ts +7 -0
- package/src/cli/release_version.ts +21 -0
- package/src/cli/util.ts +208 -34
- package/src/cli/versioning.ts +3 -3
- package/src/examples/token.ts +23 -19
- package/src/examples/util.ts +6 -8
- package/src/index.ts +3 -4
- package/src/sandbox/banana_fpc.ts +20 -25
- package/src/sandbox/index.ts +5 -3
- package/src/sandbox/sandbox.ts +70 -57
- package/src/sandbox/sponsored_fpc.ts +12 -25
- package/src/testing/anvil_test_watcher.ts +164 -0
- package/src/testing/cheat_codes.ts +78 -0
- package/src/testing/index.ts +3 -0
- package/dest/cli/chain_l2_config.d.ts +0 -19
- package/dest/cli/chain_l2_config.d.ts.map +0 -1
- package/dest/cli/chain_l2_config.js +0 -56
- package/dest/cli/cmds/start_faucet.d.ts +0 -4
- package/dest/cli/cmds/start_faucet.d.ts.map +0 -1
- package/dest/cli/cmds/start_faucet.js +0 -20
- package/dest/cli/cmds/start_pxe.d.ts +0 -16
- package/dest/cli/cmds/start_pxe.d.ts.map +0 -1
- package/dest/cli/cmds/start_pxe.js +0 -95
- package/dest/cli/get_l1_config.d.ts +0 -7
- package/dest/cli/get_l1_config.d.ts.map +0 -1
- package/dest/cli/get_l1_config.js +0 -13
- package/dest/sandbox/sponsored_fee_payment_method.d.ts +0 -23
- package/dest/sandbox/sponsored_fee_payment_method.d.ts.map +0 -1
- package/dest/sandbox/sponsored_fee_payment_method.js +0 -36
- package/src/cli/chain_l2_config.ts +0 -74
- package/src/cli/cmds/start_faucet.ts +0 -34
- package/src/cli/cmds/start_pxe.ts +0 -129
- package/src/cli/get_l1_config.ts +0 -18
- package/src/sandbox/sponsored_fee_payment_method.ts +0 -46
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { type ArchiverConfig, archiverConfigMappings } from '@aztec/archiver/config';
|
|
2
|
-
import { faucetConfigMapping } from '@aztec/aztec-faucet/config';
|
|
3
2
|
import { sequencerClientConfigMappings } from '@aztec/aztec-node/config';
|
|
4
3
|
import { blobSinkConfigMappings } from '@aztec/blob-sink/server';
|
|
5
4
|
import { botConfigMappings } from '@aztec/bot/config';
|
|
5
|
+
import { l1ContractAddressesMapping, l1ContractsConfigMappings, l1ReaderConfigMappings } from '@aztec/ethereum';
|
|
6
|
+
import { getKeys } from '@aztec/foundation/collection';
|
|
6
7
|
import {
|
|
7
8
|
type ConfigMapping,
|
|
8
9
|
type EnvVar,
|
|
@@ -10,16 +11,15 @@ import {
|
|
|
10
11
|
isBooleanConfigValue,
|
|
11
12
|
omitConfigMappings,
|
|
12
13
|
} from '@aztec/foundation/config';
|
|
14
|
+
import { dataConfigMappings } from '@aztec/kv-store/config';
|
|
15
|
+
import { sharedNodeConfigMappings } from '@aztec/node-lib/config';
|
|
13
16
|
import { bootnodeConfigMappings, p2pConfigMappings } from '@aztec/p2p/config';
|
|
14
|
-
import {
|
|
15
|
-
type ProverAgentConfig,
|
|
16
|
-
type ProverBrokerConfig,
|
|
17
|
-
proverAgentConfigMappings,
|
|
18
|
-
proverBrokerConfigMappings,
|
|
19
|
-
} from '@aztec/prover-client/broker';
|
|
17
|
+
import { proverAgentConfigMappings, proverBrokerConfigMappings } from '@aztec/prover-client/broker';
|
|
20
18
|
import { proverNodeConfigMappings } from '@aztec/prover-node/config';
|
|
21
19
|
import { allPxeConfigMappings } from '@aztec/pxe/config';
|
|
20
|
+
import { chainConfigMappings } from '@aztec/stdlib/config';
|
|
22
21
|
import { telemetryClientConfigMappings } from '@aztec/telemetry-client';
|
|
22
|
+
import { worldStateConfigMappings } from '@aztec/world-state';
|
|
23
23
|
|
|
24
24
|
import { DefaultMnemonic } from '../mnemonic.js';
|
|
25
25
|
|
|
@@ -27,15 +27,18 @@ import { DefaultMnemonic } from '../mnemonic.js';
|
|
|
27
27
|
export interface AztecStartOption {
|
|
28
28
|
flag: string;
|
|
29
29
|
description: string;
|
|
30
|
-
defaultValue: any
|
|
30
|
+
defaultValue: any;
|
|
31
31
|
printDefault?: (val: any) => string;
|
|
32
|
-
|
|
32
|
+
env: EnvVar | undefined;
|
|
33
|
+
fallback?: EnvVar[];
|
|
33
34
|
parseVal?: (val: string) => any;
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
export const getOptions = (namespace: string, configMappings: Record<string, ConfigMapping>) => {
|
|
37
38
|
const options: AztecStartOption[] = [];
|
|
38
|
-
for (const [key, { env, defaultValue: def, parseEnv, description, printDefault }] of Object.entries(
|
|
39
|
+
for (const [key, { env, defaultValue: def, parseEnv, description, printDefault, fallback }] of Object.entries(
|
|
40
|
+
configMappings,
|
|
41
|
+
)) {
|
|
39
42
|
if (universalOptions.includes(key)) {
|
|
40
43
|
continue;
|
|
41
44
|
}
|
|
@@ -45,126 +48,130 @@ export const getOptions = (namespace: string, configMappings: Record<string, Con
|
|
|
45
48
|
description,
|
|
46
49
|
defaultValue: def,
|
|
47
50
|
printDefault,
|
|
48
|
-
|
|
51
|
+
env: env,
|
|
52
|
+
fallback,
|
|
49
53
|
parseVal: parseEnv,
|
|
50
54
|
});
|
|
51
55
|
}
|
|
52
56
|
return options;
|
|
53
57
|
};
|
|
54
58
|
|
|
59
|
+
const configToFlag = (flag: string, configMapping: ConfigMapping, overrideDefaultValue?: any): AztecStartOption => {
|
|
60
|
+
if (!configMapping.isBoolean) {
|
|
61
|
+
flag += ' <value>';
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const flagConfig: AztecStartOption = {
|
|
65
|
+
flag,
|
|
66
|
+
env: undefined,
|
|
67
|
+
defaultValue: undefined,
|
|
68
|
+
parseVal: configMapping.parseEnv,
|
|
69
|
+
...configMapping,
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
if (overrideDefaultValue !== undefined) {
|
|
73
|
+
flagConfig.defaultValue = overrideDefaultValue;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return flagConfig;
|
|
77
|
+
};
|
|
78
|
+
|
|
55
79
|
// These are options used by multiple modules so should be inputted once
|
|
56
|
-
export const universalOptions = [
|
|
80
|
+
export const universalOptions = [
|
|
81
|
+
'l1ConsensusHostUrls',
|
|
82
|
+
'l1ConsensusHostApiKeys',
|
|
83
|
+
'l1ConsensusHostApiKeyHeaders',
|
|
84
|
+
'p2pEnabled',
|
|
85
|
+
...getKeys(chainConfigMappings),
|
|
86
|
+
...getKeys(l1ContractsConfigMappings),
|
|
87
|
+
...getKeys(l1ContractAddressesMapping),
|
|
88
|
+
...getKeys(l1ReaderConfigMappings),
|
|
89
|
+
...getKeys(dataConfigMappings),
|
|
90
|
+
...getKeys(worldStateConfigMappings),
|
|
91
|
+
];
|
|
92
|
+
|
|
93
|
+
export const NETWORK_FLAG = 'network';
|
|
57
94
|
|
|
58
95
|
// Define categories and options
|
|
59
96
|
export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
|
|
60
|
-
|
|
97
|
+
MISC: [
|
|
61
98
|
{
|
|
62
|
-
flag:
|
|
99
|
+
flag: `--${NETWORK_FLAG} <value>`,
|
|
63
100
|
description: 'Network to run Aztec on',
|
|
64
101
|
defaultValue: undefined,
|
|
65
|
-
|
|
102
|
+
env: 'NETWORK',
|
|
66
103
|
},
|
|
104
|
+
|
|
105
|
+
configToFlag('--auto-update', sharedNodeConfigMappings.autoUpdate),
|
|
106
|
+
configToFlag('--auto-update-url', sharedNodeConfigMappings.autoUpdateUrl),
|
|
107
|
+
|
|
108
|
+
configToFlag('--sync-mode', sharedNodeConfigMappings.syncMode),
|
|
109
|
+
configToFlag('--snapshots-urls', sharedNodeConfigMappings.snapshotsUrls),
|
|
67
110
|
],
|
|
68
111
|
SANDBOX: [
|
|
69
112
|
{
|
|
70
113
|
flag: '--sandbox',
|
|
71
114
|
description: 'Starts Aztec Sandbox',
|
|
72
115
|
defaultValue: undefined,
|
|
73
|
-
|
|
116
|
+
env: undefined,
|
|
74
117
|
},
|
|
75
118
|
{
|
|
76
|
-
flag: '--sandbox.
|
|
77
|
-
description: '
|
|
78
|
-
|
|
79
|
-
|
|
119
|
+
flag: '--sandbox.l1Mnemonic <value>',
|
|
120
|
+
description: 'Mnemonic for L1 accounts. Will be used ',
|
|
121
|
+
defaultValue: DefaultMnemonic,
|
|
122
|
+
env: 'MNEMONIC',
|
|
80
123
|
},
|
|
81
124
|
{
|
|
82
|
-
flag: '--sandbox.
|
|
83
|
-
description:
|
|
84
|
-
|
|
85
|
-
|
|
125
|
+
flag: '--sandbox.deployAztecContractsSalt <value>',
|
|
126
|
+
description:
|
|
127
|
+
'Numeric salt for deploying L1 Aztec contracts before starting the sandbox. Needs mnemonic or private key to be set.',
|
|
128
|
+
env: 'DEPLOY_AZTEC_CONTRACTS_SALT',
|
|
129
|
+
defaultValue: undefined,
|
|
130
|
+
parseVal: (val: string) => (val ? parseInt(val) : undefined),
|
|
86
131
|
},
|
|
87
132
|
],
|
|
88
133
|
API: [
|
|
89
134
|
{
|
|
90
135
|
flag: '--port <value>',
|
|
91
|
-
description: 'Port to run the Aztec Services on
|
|
136
|
+
description: 'Port to run the Aztec Services on',
|
|
92
137
|
defaultValue: 8080,
|
|
93
|
-
|
|
138
|
+
env: 'AZTEC_PORT',
|
|
139
|
+
parseVal: val => parseInt(val, 10),
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
flag: '--admin-port <value>',
|
|
143
|
+
description: 'Port to run admin APIs of Aztec Services on',
|
|
144
|
+
defaultValue: 8880,
|
|
145
|
+
env: 'AZTEC_ADMIN_PORT',
|
|
94
146
|
parseVal: val => parseInt(val, 10),
|
|
95
147
|
},
|
|
96
148
|
{
|
|
97
149
|
flag: '--api-prefix <value>',
|
|
98
150
|
description: 'Prefix for API routes on any service that is started',
|
|
99
151
|
defaultValue: '',
|
|
100
|
-
|
|
152
|
+
env: 'API_PREFIX',
|
|
101
153
|
},
|
|
102
154
|
],
|
|
103
155
|
ETHEREUM: [
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
flag: '--l1-chain-id <value>',
|
|
113
|
-
description: 'The L1 chain ID',
|
|
114
|
-
defaultValue: 31337,
|
|
115
|
-
envVar: 'L1_CHAIN_ID',
|
|
116
|
-
parseVal: val => parseInt(val, 10),
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
flag: '--l1-mnemonic <value>',
|
|
120
|
-
description: 'Mnemonic for L1 accounts. Will be used if no publisher private keys are provided',
|
|
121
|
-
defaultValue: DefaultMnemonic,
|
|
122
|
-
envVar: 'MNEMONIC',
|
|
123
|
-
},
|
|
156
|
+
configToFlag('--l1-chain-id', l1ReaderConfigMappings.l1ChainId),
|
|
157
|
+
// Do not set default for CLI: keep undefined unless provided via flag or env
|
|
158
|
+
configToFlag('--l1-rpc-urls', { ...l1ReaderConfigMappings.l1RpcUrls, defaultValue: undefined }),
|
|
159
|
+
configToFlag('--l1-consensus-host-urls', blobSinkConfigMappings.l1ConsensusHostUrls),
|
|
160
|
+
configToFlag('--l1-consensus-host-api-keys', blobSinkConfigMappings.l1ConsensusHostApiKeys),
|
|
161
|
+
configToFlag('--l1-consensus-host-api-key-headers', blobSinkConfigMappings.l1ConsensusHostApiKeyHeaders),
|
|
124
162
|
],
|
|
125
|
-
'L1
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
flag: '--inbox-address <value>',
|
|
140
|
-
description: 'The deployed L1 -> L2 inbox contract address',
|
|
141
|
-
defaultValue: undefined,
|
|
142
|
-
envVar: 'INBOX_CONTRACT_ADDRESS',
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
flag: '--outbox-address <value>',
|
|
146
|
-
description: 'The deployed L2 -> L1 outbox contract address',
|
|
147
|
-
defaultValue: undefined,
|
|
148
|
-
envVar: 'OUTBOX_CONTRACT_ADDRESS',
|
|
149
|
-
},
|
|
150
|
-
{
|
|
151
|
-
flag: '--fee-juice-address <value>',
|
|
152
|
-
description: 'The deployed L1 Fee Juice contract address',
|
|
153
|
-
defaultValue: undefined,
|
|
154
|
-
envVar: 'FEE_JUICE_CONTRACT_ADDRESS',
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
flag: '--staking-asset-address <value>',
|
|
158
|
-
description: 'The deployed L1 Staking Asset contract address',
|
|
159
|
-
defaultValue: undefined,
|
|
160
|
-
envVar: 'STAKING_ASSET_CONTRACT_ADDRESS',
|
|
161
|
-
},
|
|
162
|
-
{
|
|
163
|
-
flag: '--fee-juice-portal-address <value>',
|
|
164
|
-
description: 'The deployed L1 Fee Juice portal contract address',
|
|
165
|
-
defaultValue: undefined,
|
|
166
|
-
envVar: 'FEE_JUICE_PORTAL_CONTRACT_ADDRESS',
|
|
167
|
-
},
|
|
163
|
+
'L1 CONTRACTS': [
|
|
164
|
+
configToFlag('--registry-address', l1ContractAddressesMapping.registryAddress),
|
|
165
|
+
configToFlag('--rollup-version', chainConfigMappings.rollupVersion),
|
|
166
|
+
],
|
|
167
|
+
STORAGE: [
|
|
168
|
+
configToFlag('--data-directory', dataConfigMappings.dataDirectory),
|
|
169
|
+
configToFlag('--data-store-map-size-kb', dataConfigMappings.dataStoreMapSizeKb),
|
|
170
|
+
],
|
|
171
|
+
'WORLD STATE': [
|
|
172
|
+
configToFlag('--world-state-data-directory', worldStateConfigMappings.worldStateDataDirectory),
|
|
173
|
+
configToFlag('--world-state-db-map-size-kb', worldStateConfigMappings.worldStateDbMapSizeKb),
|
|
174
|
+
configToFlag('--world-state-block-history', worldStateConfigMappings.worldStateBlockHistory),
|
|
168
175
|
],
|
|
169
176
|
// We can't easily auto-generate node options as they're parts of modules defined below
|
|
170
177
|
'AZTEC NODE': [
|
|
@@ -172,106 +179,44 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
|
|
|
172
179
|
flag: '--node',
|
|
173
180
|
description: 'Starts Aztec Node with options',
|
|
174
181
|
defaultValue: undefined,
|
|
175
|
-
|
|
176
|
-
},
|
|
177
|
-
{
|
|
178
|
-
flag: '--data-directory <value>',
|
|
179
|
-
description: 'Where to store data. If not set, will store temporarily',
|
|
180
|
-
defaultValue: undefined,
|
|
181
|
-
envVar: 'DATA_DIRECTORY',
|
|
182
|
-
},
|
|
183
|
-
{
|
|
184
|
-
flag: '--node.archiverUrl <value>',
|
|
185
|
-
description: 'URL for an archiver service',
|
|
186
|
-
defaultValue: undefined,
|
|
187
|
-
envVar: 'ARCHIVER_URL',
|
|
188
|
-
},
|
|
189
|
-
{
|
|
190
|
-
flag: '--node.deployAztecContracts',
|
|
191
|
-
description: 'Deploys L1 Aztec contracts before starting the node. Needs mnemonic or private key to be set.',
|
|
192
|
-
envVar: 'DEPLOY_AZTEC_CONTRACTS',
|
|
193
|
-
defaultValue: undefined,
|
|
194
|
-
},
|
|
195
|
-
{
|
|
196
|
-
flag: '--node.deployAztecContractsSalt <value>',
|
|
197
|
-
description:
|
|
198
|
-
'Numeric salt for deploying L1 Aztec contracts before starting the node. Needs mnemonic or private key to be set. Implies --node.deployAztecContracts.',
|
|
199
|
-
envVar: 'DEPLOY_AZTEC_CONTRACTS_SALT',
|
|
200
|
-
defaultValue: undefined,
|
|
201
|
-
parseVal: (val: string) => (val ? parseInt(val) : undefined),
|
|
182
|
+
env: undefined,
|
|
202
183
|
},
|
|
203
|
-
{
|
|
204
|
-
flag: '--node.assumeProvenThroughBlockNumber <value>',
|
|
205
|
-
description:
|
|
206
|
-
'Cheats the rollup contract into assuming every block until this one is proven. Useful for speeding up bootstraps.',
|
|
207
|
-
envVar: 'ASSUME_PROVEN_THROUGH_BLOCK_NUMBER',
|
|
208
|
-
parseVal: (val: string) => parseInt(val, 10),
|
|
209
|
-
defaultValue: 0,
|
|
210
|
-
},
|
|
211
|
-
{
|
|
212
|
-
flag: '--node.publisherPrivateKey <value>',
|
|
213
|
-
description: 'Private key of account for publishing L1 contracts',
|
|
214
|
-
defaultValue: undefined,
|
|
215
|
-
envVar: 'L1_PRIVATE_KEY',
|
|
216
|
-
},
|
|
217
|
-
{
|
|
218
|
-
flag: '--node.worldStateBlockCheckIntervalMS <value>',
|
|
219
|
-
description: 'Frequency in which to check for blocks in ms',
|
|
220
|
-
defaultValue: 100,
|
|
221
|
-
envVar: 'WS_BLOCK_CHECK_INTERVAL_MS',
|
|
222
|
-
parseVal: val => parseInt(val, 10),
|
|
223
|
-
},
|
|
224
|
-
{
|
|
225
|
-
flag: '--node.testAccounts',
|
|
226
|
-
description: 'Populate genesis state with initial fee juice for test accounts',
|
|
227
|
-
envVar: 'TEST_ACCOUNTS',
|
|
228
|
-
...booleanConfigHelper(),
|
|
229
|
-
},
|
|
230
|
-
],
|
|
231
|
-
'P2P SUBSYSTEM': [
|
|
232
|
-
{
|
|
233
|
-
flag: '--p2p-enabled',
|
|
234
|
-
description: 'Enable P2P subsystem',
|
|
235
|
-
envVar: 'P2P_ENABLED',
|
|
236
|
-
...booleanConfigHelper(),
|
|
237
|
-
},
|
|
238
|
-
...getOptions('p2p', p2pConfigMappings),
|
|
239
|
-
],
|
|
240
|
-
TELEMETRY: [...getOptions('tel', telemetryClientConfigMappings)],
|
|
241
|
-
PXE: [
|
|
242
|
-
{
|
|
243
|
-
flag: '--pxe',
|
|
244
|
-
description: 'Starts Aztec PXE with options',
|
|
245
|
-
defaultValue: undefined,
|
|
246
|
-
envVar: undefined,
|
|
247
|
-
},
|
|
248
|
-
...getOptions('pxe', allPxeConfigMappings),
|
|
249
184
|
],
|
|
250
185
|
ARCHIVER: [
|
|
251
186
|
{
|
|
252
187
|
flag: '--archiver',
|
|
253
188
|
description: 'Starts Aztec Archiver with options',
|
|
254
189
|
defaultValue: undefined,
|
|
255
|
-
|
|
190
|
+
env: undefined,
|
|
256
191
|
},
|
|
257
|
-
|
|
258
|
-
|
|
192
|
+
...getOptions(
|
|
193
|
+
'archiver',
|
|
194
|
+
omitConfigMappings(archiverConfigMappings, Object.keys(l1ContractsConfigMappings) as (keyof ArchiverConfig)[]),
|
|
195
|
+
),
|
|
259
196
|
],
|
|
260
197
|
SEQUENCER: [
|
|
261
198
|
{
|
|
262
199
|
flag: '--sequencer',
|
|
263
200
|
description: 'Starts Aztec Sequencer with options',
|
|
264
201
|
defaultValue: undefined,
|
|
265
|
-
|
|
202
|
+
env: undefined,
|
|
266
203
|
},
|
|
267
|
-
...getOptions(
|
|
204
|
+
...getOptions(
|
|
205
|
+
'sequencer',
|
|
206
|
+
omitConfigMappings(sequencerClientConfigMappings, [
|
|
207
|
+
'fakeProcessingDelayPerTxMs',
|
|
208
|
+
'skipCollectingAttestations',
|
|
209
|
+
'skipInvalidateBlockAsProposer',
|
|
210
|
+
'blobSinkMapSizeKb',
|
|
211
|
+
]),
|
|
212
|
+
),
|
|
268
213
|
],
|
|
269
|
-
|
|
214
|
+
'BLOB SINK': [
|
|
270
215
|
{
|
|
271
216
|
flag: '--blob-sink',
|
|
272
217
|
description: 'Starts Aztec Blob Sink with options',
|
|
273
218
|
defaultValue: undefined,
|
|
274
|
-
|
|
219
|
+
env: undefined,
|
|
275
220
|
},
|
|
276
221
|
...getOptions('blobSink', blobSinkConfigMappings),
|
|
277
222
|
],
|
|
@@ -280,21 +225,18 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
|
|
|
280
225
|
flag: '--prover-node',
|
|
281
226
|
description: 'Starts Aztec Prover Node with options',
|
|
282
227
|
defaultValue: undefined,
|
|
283
|
-
|
|
284
|
-
},
|
|
285
|
-
{
|
|
286
|
-
flag: '--proverNode.archiverUrl <value>',
|
|
287
|
-
description: 'URL for an archiver service',
|
|
288
|
-
defaultValue: undefined,
|
|
289
|
-
envVar: 'ARCHIVER_URL',
|
|
228
|
+
env: undefined,
|
|
290
229
|
},
|
|
291
230
|
...getOptions(
|
|
292
231
|
'proverNode',
|
|
293
232
|
omitConfigMappings(proverNodeConfigMappings, [
|
|
294
233
|
// filter out options passed separately
|
|
295
|
-
...(
|
|
296
|
-
...(
|
|
297
|
-
...(
|
|
234
|
+
...getKeys(archiverConfigMappings),
|
|
235
|
+
...getKeys(proverBrokerConfigMappings),
|
|
236
|
+
...getKeys(proverAgentConfigMappings),
|
|
237
|
+
...getKeys(p2pConfigMappings),
|
|
238
|
+
...getKeys(worldStateConfigMappings),
|
|
239
|
+
...getKeys(sharedNodeConfigMappings),
|
|
298
240
|
]),
|
|
299
241
|
),
|
|
300
242
|
],
|
|
@@ -303,7 +245,7 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
|
|
|
303
245
|
flag: '--prover-broker',
|
|
304
246
|
description: 'Starts Aztec proving job broker',
|
|
305
247
|
defaultValue: undefined,
|
|
306
|
-
|
|
248
|
+
env: undefined,
|
|
307
249
|
},
|
|
308
250
|
...getOptions(
|
|
309
251
|
'proverBroker',
|
|
@@ -316,56 +258,62 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
|
|
|
316
258
|
flag: '--prover-agent',
|
|
317
259
|
description: 'Starts Aztec Prover Agent with options',
|
|
318
260
|
defaultValue: undefined,
|
|
319
|
-
|
|
261
|
+
env: undefined,
|
|
320
262
|
},
|
|
321
263
|
...getOptions('proverAgent', proverAgentConfigMappings),
|
|
322
264
|
],
|
|
265
|
+
'P2P SUBSYSTEM': [
|
|
266
|
+
{
|
|
267
|
+
flag: '--p2p-enabled [value]',
|
|
268
|
+
description: 'Enable P2P subsystem',
|
|
269
|
+
env: 'P2P_ENABLED',
|
|
270
|
+
...booleanConfigHelper(),
|
|
271
|
+
},
|
|
272
|
+
...getOptions('p2p', p2pConfigMappings),
|
|
273
|
+
],
|
|
323
274
|
'P2P BOOTSTRAP': [
|
|
324
275
|
{
|
|
325
276
|
flag: '--p2p-bootstrap',
|
|
326
277
|
description: 'Starts Aztec P2P Bootstrap with options',
|
|
327
278
|
defaultValue: undefined,
|
|
328
|
-
|
|
279
|
+
env: undefined,
|
|
329
280
|
},
|
|
330
|
-
...getOptions(
|
|
281
|
+
...getOptions(
|
|
282
|
+
'p2pBootstrap',
|
|
283
|
+
omitConfigMappings(bootnodeConfigMappings, [
|
|
284
|
+
'p2pIp',
|
|
285
|
+
'p2pPort',
|
|
286
|
+
'peerIdPrivateKey',
|
|
287
|
+
'bootstrapNodes',
|
|
288
|
+
'listenAddress',
|
|
289
|
+
]),
|
|
290
|
+
),
|
|
331
291
|
],
|
|
292
|
+
TELEMETRY: [...getOptions('tel', telemetryClientConfigMappings)],
|
|
332
293
|
BOT: [
|
|
333
294
|
{
|
|
334
295
|
flag: '--bot',
|
|
335
296
|
description: 'Starts Aztec Bot with options',
|
|
336
297
|
defaultValue: undefined,
|
|
337
|
-
|
|
298
|
+
env: undefined,
|
|
338
299
|
},
|
|
339
300
|
...getOptions('bot', botConfigMappings),
|
|
340
301
|
],
|
|
341
|
-
|
|
302
|
+
PXE: [
|
|
342
303
|
{
|
|
343
|
-
flag: '--
|
|
344
|
-
description: 'Starts Aztec
|
|
304
|
+
flag: '--pxe',
|
|
305
|
+
description: 'Starts Aztec PXE with options',
|
|
345
306
|
defaultValue: undefined,
|
|
346
|
-
|
|
307
|
+
env: undefined,
|
|
347
308
|
},
|
|
309
|
+
...getOptions('pxe', allPxeConfigMappings),
|
|
348
310
|
],
|
|
349
|
-
|
|
311
|
+
TXE: [
|
|
350
312
|
{
|
|
351
|
-
flag: '--
|
|
352
|
-
description: 'Starts
|
|
313
|
+
flag: '--txe',
|
|
314
|
+
description: 'Starts Aztec TXE with options',
|
|
353
315
|
defaultValue: undefined,
|
|
354
|
-
|
|
355
|
-
},
|
|
356
|
-
{
|
|
357
|
-
flag: '--faucet.apiServer',
|
|
358
|
-
description: 'Starts a simple HTTP server to access the faucet',
|
|
359
|
-
defaultValue: true,
|
|
360
|
-
envVar: undefined,
|
|
361
|
-
},
|
|
362
|
-
{
|
|
363
|
-
flag: '--faucet.apiServerPort <value>',
|
|
364
|
-
description: 'The port on which to start the api server on',
|
|
365
|
-
defaultValue: 8080,
|
|
366
|
-
envVar: undefined,
|
|
367
|
-
parseVal: val => parseInt(val, 10),
|
|
316
|
+
env: undefined,
|
|
368
317
|
},
|
|
369
|
-
...getOptions('faucet', faucetConfigMapping),
|
|
370
318
|
],
|
|
371
319
|
};
|
package/src/cli/cli.ts
CHANGED
|
@@ -44,5 +44,13 @@ export function injectAztecCommands(program: Command, userLog: LogFn, debugLogge
|
|
|
44
44
|
`,
|
|
45
45
|
);
|
|
46
46
|
|
|
47
|
+
program
|
|
48
|
+
.command('preload-crs')
|
|
49
|
+
.description('Preload the points data needed for proving and verifying')
|
|
50
|
+
.action(async options => {
|
|
51
|
+
const { preloadCrs } = await import('./preload_crs.js');
|
|
52
|
+
return await preloadCrs(options, userLog, debugLogger);
|
|
53
|
+
});
|
|
54
|
+
|
|
47
55
|
return program;
|
|
48
56
|
}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import {
|
|
2
|
+
Archiver,
|
|
3
|
+
type ArchiverConfig,
|
|
4
|
+
KVArchiverDataStore,
|
|
5
|
+
archiverConfigMappings,
|
|
6
|
+
getArchiverConfigFromEnv,
|
|
7
|
+
} from '@aztec/archiver';
|
|
8
|
+
import { createLogger } from '@aztec/aztec.js/log';
|
|
9
|
+
import { type BlobSinkConfig, blobSinkConfigMapping, createBlobSinkClient } from '@aztec/blob-sink/client';
|
|
10
|
+
import { getL1Config } from '@aztec/cli/config';
|
|
4
11
|
import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
|
|
5
12
|
import { type DataStoreConfig, dataConfigMappings } from '@aztec/kv-store/config';
|
|
6
13
|
import { createStore } from '@aztec/kv-store/lmdb-v2';
|
|
7
14
|
import { ArchiverApiSchema } from '@aztec/stdlib/interfaces/server';
|
|
8
15
|
import { getConfigEnvVars as getTelemetryClientConfig, initTelemetryClient } from '@aztec/telemetry-client';
|
|
9
16
|
|
|
10
|
-
import { getL1Config } from '../get_l1_config.js';
|
|
11
17
|
import { extractRelevantOptions } from '../util.js';
|
|
12
18
|
|
|
13
19
|
export type { ArchiverConfig, DataStoreConfig };
|
|
@@ -18,35 +24,35 @@ export async function startArchiver(
|
|
|
18
24
|
signalHandlers: (() => Promise<void>)[],
|
|
19
25
|
services: NamespacedApiHandlers,
|
|
20
26
|
): Promise<{ config: ArchiverConfig & DataStoreConfig }> {
|
|
21
|
-
|
|
27
|
+
const envConfig = getArchiverConfigFromEnv();
|
|
28
|
+
const cliOptions = extractRelevantOptions<ArchiverConfig & DataStoreConfig & BlobSinkConfig>(
|
|
22
29
|
options,
|
|
23
|
-
{
|
|
24
|
-
...archiverConfigMappings,
|
|
25
|
-
...dataConfigMappings,
|
|
26
|
-
},
|
|
30
|
+
{ ...archiverConfigMappings, ...dataConfigMappings, ...blobSinkConfigMapping },
|
|
27
31
|
'archiver',
|
|
28
32
|
);
|
|
29
33
|
|
|
34
|
+
let archiverConfig = { ...envConfig, ...cliOptions };
|
|
35
|
+
archiverConfig.dataStoreMapSizeKb = archiverConfig.archiverStoreMapSizeKb ?? archiverConfig.dataStoreMapSizeKb;
|
|
36
|
+
|
|
30
37
|
if (!archiverConfig.l1Contracts.registryAddress || archiverConfig.l1Contracts.registryAddress.isZero()) {
|
|
31
38
|
throw new Error('L1 registry address is required to start an Archiver');
|
|
32
39
|
}
|
|
33
40
|
|
|
34
|
-
const { addresses, config } = await getL1Config(
|
|
41
|
+
const { addresses, config: l1Config } = await getL1Config(
|
|
35
42
|
archiverConfig.l1Contracts.registryAddress,
|
|
36
43
|
archiverConfig.l1RpcUrls,
|
|
37
44
|
archiverConfig.l1ChainId,
|
|
38
45
|
);
|
|
39
46
|
|
|
40
47
|
archiverConfig.l1Contracts = addresses;
|
|
41
|
-
archiverConfig = { ...archiverConfig, ...
|
|
48
|
+
archiverConfig = { ...archiverConfig, ...l1Config };
|
|
42
49
|
|
|
43
50
|
const storeLog = createLogger('archiver:lmdb');
|
|
44
51
|
const store = await createStore('archiver', KVArchiverDataStore.SCHEMA_VERSION, archiverConfig, storeLog);
|
|
45
52
|
const archiverStore = new KVArchiverDataStore(store, archiverConfig.maxLogs);
|
|
46
53
|
|
|
47
54
|
const telemetry = initTelemetryClient(getTelemetryClientConfig());
|
|
48
|
-
|
|
49
|
-
const blobSinkClient = createBlobSinkClient();
|
|
55
|
+
const blobSinkClient = createBlobSinkClient(archiverConfig, { logger: createLogger('archiver:blob-sink:client') });
|
|
50
56
|
const archiver = await Archiver.createAndSync(archiverConfig, archiverStore, { telemetry, blobSinkClient }, true);
|
|
51
57
|
services.archiver = [archiver, ArchiverApiSchema];
|
|
52
58
|
signalHandlers.push(archiver.stop);
|
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
createBlobSinkServer,
|
|
5
5
|
getBlobSinkConfigFromEnv,
|
|
6
6
|
} from '@aztec/blob-sink/server';
|
|
7
|
+
import { getL1Config } from '@aztec/cli/config';
|
|
7
8
|
import type { LogFn } from '@aztec/foundation/log';
|
|
8
9
|
import { getConfigEnvVars as getTelemetryClientConfig, initTelemetryClient } from '@aztec/telemetry-client';
|
|
9
10
|
|
|
@@ -17,13 +18,38 @@ export async function startBlobSink(options: any, signalHandlers: (() => Promise
|
|
|
17
18
|
process.exit(1);
|
|
18
19
|
}
|
|
19
20
|
|
|
20
|
-
|
|
21
|
+
let blobSinkConfig: BlobSinkConfig = {
|
|
21
22
|
...getBlobSinkConfigFromEnv(), // get default config from env
|
|
22
23
|
...extractRelevantOptions<BlobSinkConfig>(options, blobSinkConfigMappings, 'blobSink'), // override with command line options
|
|
23
24
|
};
|
|
24
25
|
|
|
26
|
+
if (!blobSinkConfig.l1Contracts?.registryAddress || blobSinkConfig.l1Contracts.registryAddress.isZero()) {
|
|
27
|
+
throw new Error('REGISTRY_CONTRACT_ADDRESS not set');
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
if (!blobSinkConfig.l1RpcUrls || blobSinkConfig.l1RpcUrls.length === 0) {
|
|
31
|
+
throw new Error('ETHEREUM_HOSTS not set');
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
if (typeof blobSinkConfig.l1ChainId !== 'number') {
|
|
35
|
+
throw new Error('L1_CHAIN_ID');
|
|
36
|
+
}
|
|
37
|
+
|
|
25
38
|
const telemetry = initTelemetryClient(getTelemetryClientConfig());
|
|
26
39
|
|
|
40
|
+
const { config: chainConfig, addresses } = await getL1Config(
|
|
41
|
+
blobSinkConfig.l1Contracts.registryAddress,
|
|
42
|
+
blobSinkConfig.l1RpcUrls,
|
|
43
|
+
blobSinkConfig.l1ChainId,
|
|
44
|
+
blobSinkConfig.rollupVersion,
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
blobSinkConfig = {
|
|
48
|
+
...blobSinkConfig,
|
|
49
|
+
l1Contracts: addresses,
|
|
50
|
+
...chainConfig,
|
|
51
|
+
};
|
|
52
|
+
|
|
27
53
|
const blobSink = await createBlobSinkServer(blobSinkConfig, telemetry);
|
|
28
54
|
signalHandlers.push(blobSink.stop.bind(blobSink));
|
|
29
55
|
|