-
Notifications
You must be signed in to change notification settings - Fork 11
Sync fork repo #18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sync fork repo #18
Changes from all commits
d3770e1
f722031
2dfb660
b63b798
acc4e30
d056b51
f0eb7f1
2dbf4a4
50fc6e9
8e7460e
5652221
44912b2
37a3020
90f047f
d1639e1
5234654
f69654d
fb05db2
d42810f
c41489f
f038903
47c0680
d15d4fe
d44e4da
f9ab89c
923f340
1d5d06b
ad4fef7
410634f
9997fd1
de96297
50ae0f7
26d3279
cee4c24
311ea00
414b6ba
69e2895
554d9f3
9a4ebd1
741a31f
f186296
a0ce106
7f67637
f496431
40d773f
b571f94
31e9f13
864abe9
6f48c36
1144986
41444b0
c673c87
d6794bb
971ab6e
a06efe9
de4d3d4
9bd0122
5a73a41
e82da83
ac53ae8
8cd6941
5a871ba
2336893
cfd8eca
b10fc7a
ccaf12e
9415dea
97e1064
a3dfafa
32c0b61
d20b73e
e3e0ae3
56890f3
6b16142
94e86f0
8d4ecd9
926d8a9
4c24423
c575eec
21009d4
2981de0
7cb0364
3a9feee
3e4d876
13c0c68
5e8ef57
d96045b
3de663c
f988bd0
163785a
0357d33
b284f35
021d441
d0088a1
00569b5
a58740f
97c1b32
df92c55
b8f32f9
9043c22
3c34620
b844ef5
b095dbd
fe34377
e648693
832f2ba
b86b168
bd1ba2e
db71d5f
507cd8c
9f47c92
9f3da7f
0e60232
974d711
aeaab78
9124a5c
86e563a
68d8776
bc32ac4
de14602
1f84561
14d4914
d72dc2c
58c2b3d
34a7d90
4e4f38f
4c24721
14d0a21
9f73ac9
aa205fb
979a338
22ae136
7a56cf4
12566c4
f34be03
b153c59
33db41a
b52083f
29fcaba
b4e39fb
97fb39a
863c9bd
68a894f
43ef7cc
5d47f18
5598217
2d8c44c
a294d4a
fccea22
6e9cb08
208d696
9c50dae
f14551c
23ffb27
6a2a361
e684286
1a97dfe
c8d0862
0ef36d3
9480ec1
e493aa8
726a616
8e10bf3
ca91ddb
3bac950
d4a32b2
77255d1
4e715e4
a7f7dd0
dc2ae0a
bfff3f4
7137b78
6da7465
cf36041
a417467
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| reth-data/ |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1 @@ | ||
| GETH_HOST_DATA_DIR=./geth-data | ||
| HOST_DATA_DIR=./reth-data |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,46 +1,55 @@ | ||
| OP_GETH_GENESIS_FILE_PATH=mainnet/genesis-l2.json | ||
| OP_GETH_SEQUENCER_HTTP=https://mainnet-sequencer.base.org | ||
|
|
||
| # [optional] used to enable geth stats: | ||
| # OP_GETH_ETH_STATS=nodename:secret@host:port | ||
|
|
||
| # [required] replace with your preferred L1 (Ethereum, not Base) node RPC URL: | ||
| OP_NODE_L1_ETH_RPC=https://1rpc.io/eth | ||
|
|
||
| # [required] replace with your preferred L1 CL beacon endpoint: | ||
| OP_NODE_L1_BEACON=https://your.mainnet.beacon.node/endpoint-here | ||
|
|
||
| # auth secret used by op-geth engine API: | ||
| OP_NODE_L2_ENGINE_AUTH_RAW=688f5d737bad920bdfb2fc2f488d6b6209eebda1dae949a8de91398d932c517a | ||
|
|
||
| OP_NODE_BETA_EXTRA_NETWORKS=true | ||
| OP_NODE_L2_ENGINE_AUTH=/tmp/engine-auth-jwt | ||
| OP_NODE_L2_ENGINE_RPC=ws://geth:8551 | ||
| OP_NODE_LOG_LEVEL=info | ||
| OP_NODE_METRICS_ADDR=0.0.0.0 | ||
| OP_NODE_METRICS_ENABLED=true | ||
| OP_NODE_METRICS_PORT=7300 | ||
| OP_NODE_NETWORK=base-mainnet | ||
| OP_NODE_P2P_AGENT=base | ||
| OP_NODE_P2P_BOOTNODES=enr:-J24QNz9lbrKbN4iSmmjtnr7SjUMk4zB7f1krHZcTZx-JRKZd0kA2gjufUROD6T3sOWDVDnFJRvqBBo62zuF-hYCohOGAYiOoEyEgmlkgnY0gmlwhAPniryHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQKNVFlCxh_B-716tTs-h1vMzZkSs1FTu_OYTNjgufplG4N0Y3CCJAaDdWRwgiQG,enr:-J24QH-f1wt99sfpHy4c0QJM-NfmsIfmlLAMMcgZCUEgKG_BBYFc6FwYgaMJMQN5dsRBJApIok0jFn-9CS842lGpLmqGAYiOoDRAgmlkgnY0gmlwhLhIgb2Hb3BzdGFja4OFQgCJc2VjcDI1NmsxoQJ9FTIv8B9myn1MWaC_2lJ-sMoeCDkusCsk4BYHjjCq04N0Y3CCJAaDdWRwgiQG,enr:-J24QDXyyxvQYsd0yfsN0cRr1lZ1N11zGTplMNlW4xNEc7LkPXh0NAJ9iSOVdRO95GPYAIc6xmyoCCG6_0JxdL3a0zaGAYiOoAjFgmlkgnY0gmlwhAPckbGHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQJwoS7tzwxqXSyFL7g0JM-KWVbgvjfB8JA__T7yY_cYboN0Y3CCJAaDdWRwgiQG,enr:-J24QHmGyBwUZXIcsGYMaUqGGSl4CFdx9Tozu-vQCn5bHIQbR7On7dZbU61vYvfrJr30t0iahSqhc64J46MnUO2JvQaGAYiOoCKKgmlkgnY0gmlwhAPnCzSHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQINc4fSijfbNIiGhcgvwjsjxVFJHUstK9L1T8OTKUjgloN0Y3CCJAaDdWRwgiQG,enr:-J24QG3ypT4xSu0gjb5PABCmVxZqBjVw9ca7pvsI8jl4KATYAnxBmfkaIuEqy9sKvDHKuNCsy57WwK9wTt2aQgcaDDyGAYiOoGAXgmlkgnY0gmlwhDbGmZaHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQIeAK_--tcLEiu7HvoUlbV52MspE0uCocsx1f_rYvRenIN0Y3CCJAaDdWRwgiQG | ||
| OP_NODE_P2P_LISTEN_IP=0.0.0.0 | ||
| OP_NODE_P2P_LISTEN_TCP_PORT=9222 | ||
| OP_NODE_P2P_LISTEN_UDP_PORT=9222 | ||
| OP_NODE_ROLLUP_CONFIG=mainnet/rollup.json | ||
| OP_NODE_RPC_ADDR=0.0.0.0 | ||
| OP_NODE_RPC_PORT=8545 | ||
| OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log | ||
| OP_NODE_VERIFIER_L1_CONFS=4 | ||
| OP_NODE_ROLLUP_LOAD_PROTOCOL_VERSIONS=true | ||
|
|
||
| # OP_NODE_L1_TRUST_RPC allows for faster syncing, but should be used *only* if your L1 RPC node | ||
| # is fully trusted. It also allows op-node to work with clients such as Erigon that do not | ||
| # support storage proofs: | ||
| # OP_NODE_L1_TRUST_RPC=true | ||
|
|
||
| # SNAP SYNC | ||
| # NOTE: This feature is experimental and may lead to syncing issues, delays or difficulties as a result of inability to find peers. We recommend running a full or archive node for production purposes. | ||
| # To enable snap sync, uncomment and set the env vars below: | ||
| # OP_NODE_SYNCMODE=execution-layer | ||
| # OP_GETH_BOOTNODES=enode://87a32fd13bd596b2ffca97020e31aef4ddcc1bbd4b95bb633d16c1329f654f34049ed240a36b449fda5e5225d70fe40bc667f53c304b71f8e68fc9d448690b51@3.231.138.188:30301,enode://ca21ea8f176adb2e229ce2d700830c844af0ea941a1d8152a9513b966fe525e809c3a6c73a2c18a12b74ed6ec4380edf91662778fe0b79f6a591236e49e176f9@184.72.129.189:30301,enode://acf4507a211ba7c1e52cdf4eef62cdc3c32e7c9c47998954f7ba024026f9a6b2150cd3f0b734d9c78e507ab70d59ba61dfe5c45e1078c7ad0775fb251d7735a2@3.220.145.177:30301,enode://8a5a5006159bf079d06a04e5eceab2a1ce6e0f721875b2a9c96905336219dbe14203d38f70f3754686a6324f786c2f9852d8c0dd3adac2d080f4db35efc678c5@3.231.11.52:30301,enode://cdadbe835308ad3557f9a1de8db411da1a260a98f8421d62da90e71da66e55e98aaa8e90aa7ce01b408a54e4bd2253d701218081ded3dbe5efbbc7b41d7cef79@54.198.153.150:30301 | ||
| # OP_GETH_SYNCMODE=snap | ||
| # BASE MAINNET NODE CONFIGURATION | ||
| # ============================== | ||
|
|
||
| # NETWORK CONFIGURATION | ||
| # --------------------- | ||
| RETH_CHAIN=base | ||
| BASE_NODE_NETWORK=base | ||
|
|
||
| # BASE SEQUENCER ENDPOINTS | ||
| # ------------------------ | ||
| RETH_SEQUENCER_HTTP=https://mainnet-sequencer.base.org | ||
|
|
||
| # [REQUIRED] L1 CONFIGURATION | ||
| # --------------------------- | ||
| # Replace these values with your L1 (Ethereum) node endpoints | ||
| BASE_NODE_L1_ETH_RPC=<your-preferred-l1-rpc> | ||
| BASE_NODE_L1_BEACON=<your-preferred-l1-beacon> | ||
| BASE_NODE_L1_TRUST_RPC="false" | ||
|
|
||
| # ENGINE CONFIGURATION | ||
| # -------------------- | ||
| BASE_NODE_L2_ENGINE_RPC=ws://execution:8551 | ||
| BASE_NODE_L2_ENGINE_AUTH=/tmp/engine-auth-jwt | ||
| BASE_NODE_L2_ENGINE_AUTH_RAW=688f5d737bad920bdfb2fc2f488d6b6209eebda1dae949a8de91398d932c517a | ||
|
|
||
| # P2P CONFIGURATION | ||
| # ----------------- | ||
| BASE_NODE_P2P_LISTEN_IP=0.0.0.0 | ||
| BASE_NODE_P2P_ADVERTISE_TCP_PORT=9222 | ||
| BASE_NODE_P2P_ADVERTISE_UDP_PORT=9222 | ||
| BASE_NODE_P2P_BOOTNODES=enr:-J24QNz9lbrKbN4iSmmjtnr7SjUMk4zB7f1krHZcTZx-JRKZd0kA2gjufUROD6T3sOWDVDnFJRvqBBo62zuF-hYCohOGAYiOoEyEgmlkgnY0gmlwhAPniryHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQKNVFlCxh_B-716tTs-h1vMzZkSs1FTu_OYTNjgufplG4N0Y3CCJAaDdWRwgiQG,enr:-J24QH-f1wt99sfpHy4c0QJM-NfmsIfmlLAMMcgZCUEgKG_BBYFc6FwYgaMJMQN5dsRBJApIok0jFn-9CS842lGpLmqGAYiOoDRAgmlkgnY0gmlwhLhIgb2Hb3BzdGFja4OFQgCJc2VjcDI1NmsxoQJ9FTIv8B9myn1MWaC_2lJ-sMoeCDkusCsk4BYHjjCq04N0Y3CCJAaDdWRwgiQG,enr:-J24QDXyyxvQYsd0yfsN0cRr1lZ1N11zGTplMNlW4xNEc7LkPXh0NAJ9iSOVdRO95GPYAIc6xmyoCCG6_0JxdL3a0zaGAYiOoAjFgmlkgnY0gmlwhAPckbGHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQJwoS7tzwxqXSyFL7g0JM-KWVbgvjfB8JA__T7yY_cYboN0Y3CCJAaDdWRwgiQG,enr:-J24QHmGyBwUZXIcsGYMaUqGGSl4CFdx9Tozu-vQCn5bHIQbR7On7dZbU61vYvfrJr30t0iahSqhc64J46MnUO2JvQaGAYiOoCKKgmlkgnY0gmlwhAPnCzSHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQINc4fSijfbNIiGhcgvwjsjxVFJHUstK9L1T8OTKUjgloN0Y3CCJAaDdWRwgiQG,enr:-J24QG3ypT4xSu0gjb5PABCmVxZqBjVw9ca7pvsI8jl4KATYAnxBmfkaIuEqy9sKvDHKuNCsy57WwK9wTt2aQgcaDDyGAYiOoGAXgmlkgnY0gmlwhDbGmZaHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQIeAK_--tcLEiu7HvoUlbV52MspE0uCocsx1f_rYvRenIN0Y3CCJAaDdWRwgiQG | ||
|
|
||
| # LOGGING & MONITORING | ||
| # -------------------- | ||
| BASE_NODE_LOG_VERBOSITY=3 | ||
| BASE_NODE_LOG_FORMAT="json" | ||
| BASE_NODE_METRICS_ENABLED="true" | ||
| BASE_NODE_METRICS_ADDR=0.0.0.0 | ||
| BASE_NODE_METRICS_PORT="7300" | ||
| STATSD_ADDRESS="172.17.0.1" | ||
|
|
||
| # OPTIONAL SETTINGS | ||
| # ================= | ||
|
|
||
| # FOLLOW MODE (OPTIONAL - UNCOMMENT TO ENABLE) | ||
| # BASE_NODE_SOURCE_L2_RPC=<source-l2-rpc> | ||
|
|
||
| # FLASHBLOCKS (OPTIONAL - UNCOMMENT TO ENABLE) | ||
| # RETH_FB_WEBSOCKET_URL=wss://mainnet.flashblocks.base.org/ws | ||
|
|
||
| # PRUNING (OPTIONAL - UNCOMMENT TO ENABLE) | ||
| # NOTE: Set to any number of blocks you want, but it should be >10064 | ||
| # NOTE: The node type that was chosen when first running a node cannot be changed after the initial sync. Turning Archive into Pruned, or Pruned into Full is not supported [source](https://reth.rs/run/faq/pruning/). | ||
| # NOTE: The pruned snapshots provided are set with a distance of 1_339_200 (~31 days). | ||
| # RETH_PRUNING_ARGS="--prune.senderrecovery.distance=50000 --prune.transactionlookup.distance=50000 --prune.receipts.distance=50000 --prune.accounthistory.distance=50000 --prune.storagehistory.distance=50000 --prune.bodies.distance=50000" | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,46 +1,55 @@ | ||
| OP_GETH_GENESIS_FILE_PATH=sepolia/genesis-l2.json | ||
| OP_GETH_SEQUENCER_HTTP=https://sepolia-sequencer.base.org | ||
|
|
||
| # [optional] used to enable geth stats: | ||
| # OP_GETH_ETH_STATS=nodename:secret@host:port | ||
|
|
||
| # [required] replace with your preferred L1 (Ethereum, not Base) node RPC URL: | ||
| OP_NODE_L1_ETH_RPC=https://rpc.sepolia.org | ||
|
|
||
| # [required] replace with your preferred L1 CL beacon endpoint: | ||
| OP_NODE_L1_BEACON=https://your.sepolia.beacon.node/endpoint-here | ||
|
|
||
| # auth secret used by op-geth engine API: | ||
| OP_NODE_L2_ENGINE_AUTH_RAW=688f5d737bad920bdfb2fc2f488d6b6209eebda1dae949a8de91398d932c517a | ||
|
|
||
| OP_NODE_BETA_EXTRA_NETWORKS=true | ||
| OP_NODE_L2_ENGINE_AUTH=/tmp/engine-auth-jwt | ||
| OP_NODE_L2_ENGINE_RPC=ws://geth:8551 | ||
| OP_NODE_LOG_LEVEL=info | ||
| OP_NODE_METRICS_ADDR=0.0.0.0 | ||
| OP_NODE_METRICS_ENABLED=true | ||
| OP_NODE_METRICS_PORT=7300 | ||
| OP_NODE_NETWORK=base-sepolia | ||
| OP_NODE_P2P_AGENT=base | ||
| OP_NODE_P2P_BOOTNODES=enr:-J64QBwRIWAco7lv6jImSOjPU_W266lHXzpAS5YOh7WmgTyBZkgLgOwo_mxKJq3wz2XRbsoBItbv1dCyjIoNq67mFguGAYrTxM42gmlkgnY0gmlwhBLSsHKHb3BzdGFja4S0lAUAiXNlY3AyNTZrMaEDmoWSi8hcsRpQf2eJsNUx-sqv6fH4btmo2HsAzZFAKnKDdGNwgiQGg3VkcIIkBg,enr:-J64QFa3qMsONLGphfjEkeYyF6Jkil_jCuJmm7_a42ckZeUQGLVzrzstZNb1dgBp1GGx9bzImq5VxJLP-BaptZThGiWGAYrTytOvgmlkgnY0gmlwhGsV-zeHb3BzdGFja4S0lAUAiXNlY3AyNTZrMaEDahfSECTIS_cXyZ8IyNf4leANlZnrsMEWTkEYxf4GMCmDdGNwgiQGg3VkcIIkBg | ||
| OP_NODE_P2P_LISTEN_IP=0.0.0.0 | ||
| OP_NODE_P2P_LISTEN_TCP_PORT=9222 | ||
| OP_NODE_P2P_LISTEN_UDP_PORT=9222 | ||
| OP_NODE_ROLLUP_CONFIG=sepolia/rollup.json | ||
| OP_NODE_RPC_ADDR=0.0.0.0 | ||
| OP_NODE_RPC_PORT=8545 | ||
| OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log | ||
| OP_NODE_VERIFIER_L1_CONFS=4 | ||
| OP_NODE_ROLLUP_LOAD_PROTOCOL_VERSIONS=true | ||
|
|
||
| # OP_NODE_L1_TRUST_RPC allows for faster syncing, but should be used *only* if your L1 RPC node | ||
| # is fully trusted. It also allows op-node to work with clients such as Erigon that do not | ||
| # support storage proofs: | ||
| # OP_NODE_L1_TRUST_RPC=true | ||
|
|
||
| # SNAP SYNC | ||
| # NOTE: This feature is experimental and may lead to syncing issues, delays or difficulties as a result of inability to find peers. We recommend running a full or archive node for production purposes. | ||
| # To enable snap sync, set env vars below: | ||
| # OP_NODE_SYNCMODE=execution-layer | ||
| # OP_GETH_BOOTNODES=enode://548f715f3fc388a7c917ba644a2f16270f1ede48a5d88a4d14ea287cc916068363f3092e39936f1a3e7885198bef0e5af951f1d7b1041ce8ba4010917777e71f@18.210.176.114:30301,enode://6f10052847a966a725c9f4adf6716f9141155b99a0fb487fea3f51498f4c2a2cb8d534e680ee678f9447db85b93ff7c74562762c3714783a7233ac448603b25f@107.21.251.55:30301 | ||
| # OP_GETH_SYNCMODE=snap | ||
| # BASE SEPOLIA TESTNET NODE CONFIGURATION | ||
| # ====================================== | ||
|
|
||
| # NETWORK CONFIGURATION | ||
| # --------------------- | ||
| RETH_CHAIN=base-sepolia | ||
| BASE_NODE_NETWORK=base-sepolia | ||
|
|
||
| # BASE SEQUENCER ENDPOINTS | ||
| # ------------------------ | ||
| RETH_SEQUENCER_HTTP=https://sepolia-sequencer.base.org | ||
|
|
||
| # [REQUIRED] L1 CONFIGURATION | ||
| # --------------------------- | ||
| # Replace these values with your L1 (Ethereum) node endpoints | ||
| BASE_NODE_L1_ETH_RPC=<your-preferred-l1-rpc> | ||
| BASE_NODE_L1_BEACON=<your-preferred-l1-beacon> | ||
| BASE_NODE_L1_TRUST_RPC="false" | ||
|
|
||
| # ENGINE CONFIGURATION | ||
| # -------------------- | ||
| BASE_NODE_L2_ENGINE_RPC=http://execution:8551 | ||
| BASE_NODE_L2_ENGINE_AUTH=/tmp/engine-auth-jwt | ||
| BASE_NODE_L2_ENGINE_AUTH_RAW=688f5d737bad920bdfb2fc2f488d6b6209eebda1dae949a8de91398d932c517a | ||
|
Comment on lines
+22
to
+24
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do not ship a shared engine JWT in source control. This value becomes the auth secret for the engine API. Keeping one real token in a checked-in Suggested fix BASE_NODE_L2_ENGINE_RPC=http://execution:8551
BASE_NODE_L2_ENGINE_AUTH=/tmp/engine-auth-jwt
-BASE_NODE_L2_ENGINE_AUTH_RAW=688f5d737bad920bdfb2fc2f488d6b6209eebda1dae949a8de91398d932c517a
+# Generate a unique 32-byte hex value per deployment.
+BASE_NODE_L2_ENGINE_AUTH_RAW=<generate-unique-32-byte-hex>🧰 Tools🪛 Betterleaks (1.1.2)[high] 45-45: Detected a Generic API Key, potentially exposing access to various services and sensitive operations. (generic-api-key) 🪛 dotenv-linter (4.0.0)[warning] 44-44: [UnorderedKey] The BASE_NODE_L2_ENGINE_AUTH key should go before the BASE_NODE_L2_ENGINE_RPC key (UnorderedKey) [warning] 45-45: [UnorderedKey] The BASE_NODE_L2_ENGINE_AUTH_RAW key should go before the BASE_NODE_L2_ENGINE_RPC key (UnorderedKey) 🤖 Prompt for AI Agents |
||
|
|
||
| # P2P CONFIGURATION | ||
| # ----------------- | ||
| BASE_NODE_P2P_LISTEN_IP=0.0.0.0 | ||
| BASE_NODE_P2P_ADVERTISE_TCP_PORT=9222 | ||
| BASE_NODE_P2P_ADVERTISE_UDP_PORT=9222 | ||
| BASE_NODE_P2P_BOOTNODES=enr:-J24QNz9lbrKbN4iSmmjtnr7SjUMk4zB7f1krHZcTZx-JRKZd0kA2gjufUROD6T3sOWDVDnFJRvqBBo62zuF-hYCohOGAYiOoEyEgmlkgnY0gmlwhAPniryHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQKNVFlCxh_B-716tTs-h1vMzZkSs1FTu_OYTNjgufplG4N0Y3CCJAaDdWRwgiQG,enr:-J24QH-f1wt99sfpHy4c0QJM-NfmsIfmlLAMMcgZCUEgKG_BBYFc6FwYgaMJMQN5dsRBJApIok0jFn-9CS842lGpLmqGAYiOoDRAgmlkgnY0gmlwhLhIgb2Hb3BzdGFja4OFQgCJc2VjcDI1NmsxoQJ9FTIv8B9myn1MWaC_2lJ-sMoeCDkusCsk4BYHjjCq04N0Y3CCJAaDdWRwgiQG,enr:-J24QDXyyxvQYsd0yfsN0cRr1lZ1N11zGTplMNlW4xNEc7LkPXh0NAJ9iSOVdRO95GPYAIc6xmyoCCG6_0JxdL3a0zaGAYiOoAjFgmlkgnY0gmlwhAPckbGHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQJwoS7tzwxqXSyFL7g0JM-KWVbgvjfB8JA__T7yY_cYboN0Y3CCJAaDdWRwgiQG,enr:-J24QHmGyBwUZXIcsGYMaUqGGSl4CFdx9Tozu-vQCn5bHIQbR7On7dZbU61vYvfrJr30t0iahSqhc64J46MnUO2JvQaGAYiOoCKKgmlkgnY0gmlwhAPnCzSHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQINc4fSijfbNIiGhcgvwjsjxVFJHUstK9L1T8OTKUjgloN0Y3CCJAaDdWRwgiQG,enr:-J24QG3ypT4xSu0gjb5PABCmVxZqBjVw9ca7pvsI8jl4KATYAnxBmfkaIuEqy9sKvDHKuNCsy57WwK9wTt2aQgcaDDyGAYiOoGAXgmlkgnY0gmlwhDbGmZaHb3BzdGFja4OFQgCJc2VjcDI1NmsxoQIeAK_--tcLEiu7HvoUlbV52MspE0uCocsx1f_rYvRenIN0Y3CCJAaDdWRwgiQG | ||
|
|
||
| # LOGGING & MONITORING | ||
| # -------------------- | ||
| BASE_NODE_LOG_VERBOSITY=3 | ||
| BASE_NODE_LOG_FORMAT="json" | ||
| BASE_NODE_METRICS_ENABLED="true" | ||
| BASE_NODE_METRICS_ADDR=0.0.0.0 | ||
| BASE_NODE_METRICS_PORT="7300" | ||
| STATSD_ADDRESS="172.17.0.1" | ||
|
|
||
| # OPTIONAL SETTINGS | ||
| # ================= | ||
|
|
||
| # FOLLOW MODE (OPTIONAL - UNCOMMENT TO ENABLE) | ||
| # BASE_NODE_SOURCE_L2_RPC=<source-l2-rpc> | ||
|
|
||
| # FLASHBLOCKS (OPTIONAL - UNCOMMENT TO ENABLE) | ||
| # RETH_FB_WEBSOCKET_URL=wss://sepolia.flashblocks.base.org/ws | ||
|
|
||
| # PRUNING (OPTIONAL - UNCOMMENT TO ENABLE) | ||
| # NOTE: Set to any number of blocks you want, but it should be >10064 | ||
| # NOTE: The node type that was chosen when first running a node cannot be changed after the initial sync. Turning Archive into Pruned, or Pruned into Full is not supported [source](https://reth.rs/run/faq/pruning/). | ||
| # NOTE: The pruned snapshots provided are set with a distance of 1_339_200 (~31 days). | ||
| # RETH_PRUNING_ARGS="--prune.senderrecovery.distance=50000 --prune.transactionlookup.distance=50000 --prune.receipts.distance=50000 --prune.accounthistory.distance=50000 --prune.storagehistory.distance=50000 --prune.bodies.distance=50000" | ||
| Original file line number | Diff line number | Diff line change | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -3,42 +3,134 @@ name: Tag Docker image | |||||||||||||||
| on: | ||||||||||||||||
| push: | ||||||||||||||||
| branches: | ||||||||||||||||
| - 'main' | ||||||||||||||||
| - "main" | ||||||||||||||||
| tags: | ||||||||||||||||
| - 'v*' | ||||||||||||||||
| - "v*" | ||||||||||||||||
| workflow_dispatch: {} | ||||||||||||||||
|
|
||||||||||||||||
| env: | ||||||||||||||||
| REGISTRY: ghcr.io | ||||||||||||||||
| IMAGE_NAME: ${{ github.repository }} | ||||||||||||||||
| NAMESPACE: ghcr.io/base | ||||||||||||||||
| RETH_IMAGE_NAME: node-reth | ||||||||||||||||
|
|
||||||||||||||||
| permissions: | ||||||||||||||||
| contents: read | ||||||||||||||||
| packages: write | ||||||||||||||||
|
|
||||||||||||||||
| jobs: | ||||||||||||||||
| build: | ||||||||||||||||
| runs-on: ubuntu-latest | ||||||||||||||||
| reth: | ||||||||||||||||
| strategy: | ||||||||||||||||
| matrix: | ||||||||||||||||
| settings: | ||||||||||||||||
| - arch: linux/amd64 | ||||||||||||||||
| runs-on: ubuntu-24.04 | ||||||||||||||||
| features: jemalloc,asm-keccak,optimism | ||||||||||||||||
| - arch: linux/arm64 | ||||||||||||||||
| runs-on: ubuntu-24.04-arm | ||||||||||||||||
| features: jemalloc,optimism | ||||||||||||||||
| runs-on: ${{ matrix.settings.runs-on }} | ||||||||||||||||
| steps: | ||||||||||||||||
| - name: Harden the runner (Audit all outbound calls) | ||||||||||||||||
| uses: step-security/harden-runner@002fdce3c6a235733a90a27c80493a3241e56863 # v2.12.1 | ||||||||||||||||
| with: | ||||||||||||||||
| egress-policy: audit | ||||||||||||||||
|
|
||||||||||||||||
| - name: Checkout | ||||||||||||||||
| uses: actions/checkout@v2 | ||||||||||||||||
| uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 | ||||||||||||||||
|
Comment on lines
38
to
+39
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: cat -n .github/workflows/docker.ymlRepository: LiskHQ/lisk-node Length of output: 5513 🌐 Web query:
💡 Result: In the actions/checkout GitHub Action (including version 3.6.0), the persist-credentials parameter is a boolean input used to control whether the authentication token (or SSH key) used for the checkout is stored in the local Git configuration [1][2]. By default, persist-credentials is set to true [1][2]. When enabled, the action configures the authentication credentials in the repository's local Git settings, allowing subsequent steps in the workflow to perform authenticated Git commands (such as git push or git fetch) without needing to re-provide the token [1][2]. The action removes these credentials during the post-job cleanup phase [1][2]. Security Context and Best Practices: Because the default setting persists credentials, sensitive tokens can potentially be exposed if a workflow inadvertently archives or uploads the repository directory as an artifact, or if subsequent malicious steps in the same workflow access the local Git configuration [3][4]. To mitigate this risk, it is a recommended security practice to explicitly set persist-credentials to false if your workflow does not require further authenticated Git operations [4][5]. Note on Evolution: While the core behavior of this parameter has remained consistent across versions, recent updates to actions/checkout have improved how credentials are handled. Specifically, changes implemented after v3.6.0 (such as those in PR Citations:
🌐 Web query:
💡 Result: The term persist-credentials refers to an input setting in the GitHub Actions checkout action (actions/checkout) [1]. When enabled (which is the default behavior), it configures Git to store the authentication token in the local Git configuration, allowing subsequent steps in the workflow to perform authenticated Git operations [1]. The token is automatically removed during post-job cleanup [1]. The specific SHA f43a0e5ff2bd294095638e18286ca9a3d1956744 corresponds to a commit associated with version 3.6.0 of the actions/checkout repository [2][3]. Key points regarding persist-credentials: - Security Context: Setting persist-credentials to true has been a subject of security discussions regarding potential risks of token exposure within workflows [4][5][6]. - Recent Improvements: Recent updates, such as those implemented in PR Citations:
Disable credential persistence in the checkout step.
Suggested fix - name: Checkout
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
+ with:
+ persist-credentials: false📝 Committable suggestion
Suggested change
🧰 Tools🪛 zizmor (1.25.2)[warning] 38-39: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false (artipacked) 🤖 Prompt for AI Agents |
||||||||||||||||
|
|
||||||||||||||||
| - name: Log into the Container registry | ||||||||||||||||
| uses: docker/login-action@v3 | ||||||||||||||||
| uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0 | ||||||||||||||||
| with: | ||||||||||||||||
| registry: ${{ env.REGISTRY }} | ||||||||||||||||
| username: ${{ github.actor }} | ||||||||||||||||
| password: ${{ secrets.GITHUB_TOKEN }} | ||||||||||||||||
|
|
||||||||||||||||
| - name: Extract metadata for the Docker image | ||||||||||||||||
| id: meta | ||||||||||||||||
| uses: docker/metadata-action@v4 | ||||||||||||||||
| uses: docker/metadata-action@818d4b7b91585d195f67373fd9cb0332e31a7175 # v4.6.0 | ||||||||||||||||
| with: | ||||||||||||||||
| images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} | ||||||||||||||||
| images: | | ||||||||||||||||
| ${{ env.NAMESPACE }}/${{ env.RETH_IMAGE_NAME }} | ||||||||||||||||
|
|
||||||||||||||||
| - name: Set up Docker Buildx | ||||||||||||||||
| uses: docker/setup-buildx-action@v3 | ||||||||||||||||
| uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1 | ||||||||||||||||
|
|
||||||||||||||||
| - name: Build and push the Docker image | ||||||||||||||||
| uses: docker/build-push-action@v4 | ||||||||||||||||
| id: build | ||||||||||||||||
| uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0 | ||||||||||||||||
| with: | ||||||||||||||||
| context: . | ||||||||||||||||
| push: true | ||||||||||||||||
| tags: ${{ steps.meta.outputs.tags }} | ||||||||||||||||
| file: Dockerfile | ||||||||||||||||
| tags: ${{ env.NAMESPACE }}/${{ env.RETH_IMAGE_NAME }} | ||||||||||||||||
| labels: ${{ steps.meta.outputs.labels }} | ||||||||||||||||
| platforms: linux/amd64,linux/arm64 | ||||||||||||||||
| build-args: | | ||||||||||||||||
| FEATURES=${{ matrix.settings.features }} | ||||||||||||||||
| platforms: ${{ matrix.settings.arch }} | ||||||||||||||||
| outputs: type=image,push-by-digest=true,name-canonical=true,push=true | ||||||||||||||||
|
|
||||||||||||||||
| - name: Export digest | ||||||||||||||||
| run: | | ||||||||||||||||
| mkdir -p ${{ runner.temp }}/digests | ||||||||||||||||
| digest="${{ steps.build.outputs.digest }}" | ||||||||||||||||
| touch "${{ runner.temp }}/digests/${digest#sha256:}" | ||||||||||||||||
|
|
||||||||||||||||
| - name: Prepare | ||||||||||||||||
| run: | | ||||||||||||||||
| platform=${{ matrix.settings.arch }} | ||||||||||||||||
| echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV | ||||||||||||||||
|
|
||||||||||||||||
| - name: Upload digest | ||||||||||||||||
| uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 | ||||||||||||||||
| with: | ||||||||||||||||
| name: digests-reth-${{ env.PLATFORM_PAIR }} | ||||||||||||||||
| path: ${{ runner.temp }}/digests/* | ||||||||||||||||
| if-no-files-found: error | ||||||||||||||||
| retention-days: 1 | ||||||||||||||||
|
|
||||||||||||||||
| merge-reth: | ||||||||||||||||
| runs-on: ubuntu-latest | ||||||||||||||||
| needs: | ||||||||||||||||
| - reth | ||||||||||||||||
| steps: | ||||||||||||||||
| - name: Harden the runner (Audit all outbound calls) | ||||||||||||||||
| uses: step-security/harden-runner@002fdce3c6a235733a90a27c80493a3241e56863 # v2.12.1 | ||||||||||||||||
| with: | ||||||||||||||||
| egress-policy: audit | ||||||||||||||||
|
|
||||||||||||||||
| - name: Download digests | ||||||||||||||||
| uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 | ||||||||||||||||
| with: | ||||||||||||||||
| path: ${{ runner.temp }}/digests | ||||||||||||||||
| pattern: digests-reth-* | ||||||||||||||||
| merge-multiple: true | ||||||||||||||||
|
|
||||||||||||||||
| - name: Log into the Container registry | ||||||||||||||||
| uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0 | ||||||||||||||||
| with: | ||||||||||||||||
| registry: ${{ env.REGISTRY }} | ||||||||||||||||
| username: ${{ github.actor }} | ||||||||||||||||
| password: ${{ secrets.GITHUB_TOKEN }} | ||||||||||||||||
|
|
||||||||||||||||
| - name: Set up Docker Buildx | ||||||||||||||||
| uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1 | ||||||||||||||||
|
|
||||||||||||||||
| - name: Extract metadata for the Docker image | ||||||||||||||||
| id: meta | ||||||||||||||||
| uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0 | ||||||||||||||||
| with: | ||||||||||||||||
| images: | | ||||||||||||||||
| ${{ env.NAMESPACE }}/${{ env.RETH_IMAGE_NAME }} | ||||||||||||||||
| tags: | | ||||||||||||||||
| type=ref,event=branch | ||||||||||||||||
| type=ref,event=tag | ||||||||||||||||
| type=sha,format=long | ||||||||||||||||
|
|
||||||||||||||||
| - name: Create manifest list and push | ||||||||||||||||
| working-directory: ${{ runner.temp }}/digests | ||||||||||||||||
| run: | | ||||||||||||||||
| docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \ | ||||||||||||||||
| $(printf '${{ env.NAMESPACE }}/${{ env.RETH_IMAGE_NAME }}@sha256:%s ' *) | ||||||||||||||||
|
|
||||||||||||||||
| - name: Inspect image | ||||||||||||||||
| run: | | ||||||||||||||||
| docker buildx imagetools inspect ${{ env.NAMESPACE }}/${{ env.RETH_IMAGE_NAME }}:${{ steps.meta.outputs.version }} | ||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do not ship a fixed engine auth secret in the tracked mainnet config.
A checked-in JWT secret makes every deployment share the same engine credential unless operators remember to override it. This weakens the auth boundary for the engine API and is easy to avoid with a per-deployment secret.
Suggested fix
📝 Committable suggestion
🧰 Tools
🪛 Betterleaks (1.1.2)
[high] 45-45: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.
(generic-api-key)
🪛 dotenv-linter (4.0.0)
[warning] 45-45: [UnorderedKey] The BASE_NODE_L2_ENGINE_AUTH_RAW key should go before the BASE_NODE_L2_ENGINE_RPC key
(UnorderedKey)
🤖 Prompt for AI Agents