Compare commits
604 Commits
jules_wip_
...
vibe
| Author | SHA1 | Date | |
|---|---|---|---|
| 5f85d6b5a4 | |||
| ec2fb6c883 | |||
| d28342683c | |||
| 52d7ec6d40 | |||
| 6917005776 | |||
| 63b720f1e9 | |||
| db681b5a74 | |||
| 42a91a5bac | |||
| 8dfdaf3548 | |||
| 98e1c88293 | |||
| 5c0fb760cc | |||
| 004476216e | |||
| eee0a4092d | |||
| 662ecbfe5c | |||
|
|
32b09c75f4 | ||
| e4dfd2f4ab | |||
|
|
541f985686 | ||
|
|
79d135c8bc | ||
|
|
db9b33fe89 | ||
|
|
eedcc5642e | ||
|
|
fc02491f69 | ||
|
|
e71237963a | ||
|
|
d870dccd8d | ||
|
|
f72af4022d | ||
|
|
5e65e6d147 | ||
|
|
52ae79c775 | ||
|
|
1dae8221d6 | ||
|
|
0912ec794e | ||
| ee98772660 | |||
|
|
9c285b6004 | ||
|
|
521b5709b1 | ||
|
|
e3dcadfb7c | ||
|
|
624b1da9a6 | ||
|
|
e9bd0dd120 | ||
|
|
c02425462b | ||
|
|
234664593a | ||
|
|
f70add2811 | ||
|
|
8c4c4da978 | ||
|
|
4916f4d62d | ||
|
|
66a8748a8d | ||
|
|
76268600c8 | ||
|
|
47cb694887 | ||
| a24f8ed258 | |||
|
|
87d2ab96eb | ||
|
|
164afcc244 | ||
|
|
c8f11d8490 | ||
|
|
3c36671481 | ||
|
|
3aa1ea9718 | ||
|
|
2cdaa2ca11 | ||
|
|
6c249bf321 | ||
|
|
da88241a33 | ||
|
|
a1cb2455a1 | ||
|
|
adef3f5a99 | ||
|
|
a6c2542cbf | ||
|
|
5cff27d93b | ||
|
|
85f24b1d2f | ||
|
|
760798416f | ||
|
|
44882c072a | ||
|
|
3d4ac86453 | ||
|
|
ae22c0080c | ||
|
|
80224eb627 | ||
|
|
774408aae1 | ||
| 3115055079 | |||
|
|
611e97751b | ||
|
|
06bfc888c9 | ||
|
|
575b7133bb | ||
|
|
099958b848 | ||
|
|
39ff5152da | ||
|
|
af32f59d48 | ||
|
|
42ccb7aa2d | ||
|
|
34e7fb6abf | ||
|
|
c690c74d30 | ||
|
|
6c44963b74 | ||
|
|
a71b92079a | ||
|
|
42daff3853 | ||
|
|
354bfe0530 | ||
|
|
b35b3cd568 | ||
|
|
c5ab00f29c | ||
|
|
5808945ef1 | ||
|
|
73830df4a8 | ||
|
|
7a35a9fcd5 | ||
| f8112122e0 | |||
|
|
4ef3d5c55f | ||
|
|
8e7c8057bd | ||
|
|
8d29690279 | ||
|
|
e3350eae72 | ||
|
|
4b1de78b84 | ||
|
|
25c2f8c101 | ||
|
|
f282b2173f | ||
|
|
74716312d0 | ||
|
|
578d558d3f | ||
|
|
a2db47caf5 | ||
|
|
0bd645a05d | ||
|
|
782087b89a | ||
|
|
845a1eb088 | ||
|
|
3c5db8da34 | ||
|
|
f1ed7cc835 | ||
|
|
3e5c44d728 | ||
|
|
f9b5c59452 | ||
|
|
eb46b13d5c | ||
|
|
51af4d44fe | ||
|
|
e92805056a | ||
|
|
5bd83eed3d | ||
|
|
dd18b750fe | ||
|
|
359b064938 | ||
|
|
90a2cf6114 | ||
|
|
8a317d7578 | ||
|
|
1f5c59c887 | ||
|
|
cc66cde43c | ||
|
|
06340d5b16 | ||
|
|
90ddaee53c | ||
|
|
0b7cfc32a8 | ||
|
|
9bde9731fc | ||
|
|
3a8180482b | ||
|
|
0d38493c9e | ||
|
|
773bed911a | ||
|
|
7765dd160f | ||
|
|
00c9c53cc8 | ||
| 21c826baf5 | |||
|
|
8c04689484 | ||
|
|
e3a5eb5c54 | ||
|
|
2ec4bcf1a6 | ||
|
|
9ab679ace3 | ||
|
|
12a9d63adb | ||
|
|
36ed7d2c3d | ||
|
|
bb4469f32e | ||
|
|
eed62c45f2 | ||
|
|
6469e2cd92 | ||
|
|
cfe0b50ae1 | ||
|
|
5ac31610f7 | ||
|
|
5784bee792 | ||
|
|
870b658616 | ||
|
|
f918cd2701 | ||
|
|
84362b482c | ||
|
|
557b81666b | ||
|
|
a6884fde5e | ||
|
|
5461ba5d0e | ||
|
|
47044e36e5 | ||
|
|
61c0ac3a78 | ||
|
|
6abfe26712 | ||
|
|
ce10d304c0 | ||
|
|
0e699e3bd4 | ||
|
|
70928ab425 | ||
|
|
4f6aed41d7 | ||
|
|
40d66741c2 | ||
|
|
ad54a39126 | ||
|
|
6569ab8c60 | ||
|
|
ca66310c2e | ||
|
|
a7b03c6a39 | ||
|
|
2b63352ccb | ||
|
|
dabc284553 | ||
|
|
8d67597789 | ||
|
|
cc4671bfc7 | ||
|
|
2f24e061d5 | ||
|
|
2a553fefaf | ||
|
|
ebb0be5de0 | ||
|
|
ac354edec5 | ||
|
|
94de26a009 | ||
|
|
e3b8405a1f | ||
|
|
6aa46ef0ec | ||
|
|
65609ea813 | ||
|
|
06f9d5f797 | ||
|
|
98228d9b21 | ||
|
|
e433d44a93 | ||
|
|
0acfbf88fa | ||
|
|
5d8a498e2e | ||
|
|
24a6217cb5 | ||
|
|
928989ec32 | ||
|
|
d5c0eafc4d | ||
|
|
7d326fe2fd | ||
|
|
2fd8f76502 | ||
|
|
adac66a6d5 | ||
|
|
22ac74508c | ||
|
|
917e8884dc | ||
|
|
9c0ad6e0af | ||
|
|
a9ab0fb87b | ||
|
|
9c5ef7a936 | ||
|
|
3402a29dc7 | ||
|
|
723b98b72b | ||
|
|
9ec7ffdbe9 | ||
|
|
97a62142d6 | ||
|
|
81e631e52b | ||
|
|
2334846ce6 | ||
|
|
5d46133b2d | ||
|
|
0b3cf5eb38 | ||
|
|
752be20f18 | ||
|
|
f8141ad062 | ||
|
|
d93cc9e180 | ||
|
|
00462e4e98 | ||
|
|
ac8eb850ec | ||
|
|
047dc313e8 | ||
|
|
81a7bc8c27 | ||
|
|
a9ca87086a | ||
|
|
d90d5695a9 | ||
|
|
0426ad632a | ||
|
|
94131eafa9 | ||
|
|
aad2f1481f | ||
|
|
ffaa3ea015 | ||
|
|
81fa49bbd0 | ||
|
|
1f0fe14900 | ||
|
|
351c3e970c | ||
|
|
5ae09fed1b | ||
|
|
5acf3dfeb6 | ||
|
|
6e10ccdb85 | ||
|
|
c5112ce640 | ||
|
|
1f7435956e | ||
|
|
f65bfb7c59 | ||
|
|
f1d93eca01 | ||
|
|
5c3dffe980 | ||
|
|
2af99cc1d8 | ||
|
|
ff3be25ae1 | ||
|
|
4a1e72152c | ||
|
|
566df06116 | ||
|
|
46b8cbb2ee | ||
|
|
8cecd86a90 | ||
|
|
e8109f7cfa | ||
|
|
c57e55080c | ||
|
|
e35a91a253 | ||
|
|
b6929f52fe | ||
|
|
bd894ff300 | ||
|
|
072900d5c3 | ||
|
|
fbdbeb4670 | ||
|
|
2fe5cdd242 | ||
|
|
fe095e1076 | ||
|
|
9c3c2849c0 | ||
|
|
572238029c | ||
|
|
baf906832e | ||
|
|
219aec45f3 | ||
|
|
abc00d0540 | ||
|
|
f371c7fc1c | ||
|
|
39eed6c8d0 | ||
|
|
1becf90135 | ||
|
|
d3025d9688 | ||
|
|
68f1a762ce | ||
|
|
f9ee270dca | ||
|
|
600b67f100 | ||
|
|
484142ab4e | ||
|
|
52d17f5fd3 | ||
|
|
f7fd21dbfb | ||
|
|
55b97c0cde | ||
|
|
369827fbf4 | ||
|
|
6dad2a1a14 | ||
|
|
dfb64093d0 | ||
|
|
738c501435 | ||
|
|
fbfb7e3a7a | ||
|
|
99ce6fe3ba | ||
|
|
4ba31a8605 | ||
|
|
ae47b37638 | ||
|
|
352331d780 | ||
|
|
b58820e838 | ||
|
|
b657e2a38b | ||
|
|
d75be6b2e3 | ||
|
|
b6cf97dbc6 | ||
|
|
9446c3c841 | ||
|
|
db89e1915d | ||
|
|
335b9e3803 | ||
|
|
720767408a | ||
|
|
a2999e128d | ||
|
|
45fddae546 | ||
|
|
027136d24a | ||
|
|
8d6ceb6794 | ||
|
|
78bb1f32a4 | ||
|
|
aab7dd3d38 | ||
|
|
e62db7c3ac | ||
|
|
d531b62abb | ||
|
|
edb2bdc699 | ||
|
|
3a5fe0e8a2 | ||
|
|
ab3beca238 | ||
|
|
22ec19fbaa | ||
|
|
59ed9bdd78 | ||
|
|
f73a6c6cc9 | ||
|
|
4427c7ae7c | ||
|
|
e7066fcd72 | ||
|
|
e573daddad | ||
|
|
4e7768f85f | ||
|
|
9c04d278b0 | ||
|
|
a1a28a06d4 | ||
|
|
9548fbb023 | ||
|
|
ac194cbe7a | ||
|
|
11ff167922 | ||
|
|
925276e1c8 | ||
|
|
208ac156d8 | ||
|
|
b39d371667 | ||
|
|
dda3abdbd3 | ||
|
|
1d025c0089 | ||
|
|
8a64c46feb | ||
|
|
3c5b22ba78 | ||
|
|
0ca2a12308 | ||
|
|
f2118d633d | ||
|
|
3d09889143 | ||
|
|
aa515ad157 | ||
|
|
563bc83234 | ||
|
|
0323b8f709 | ||
|
|
d4509f4d15 | ||
|
|
a09187e07b | ||
|
|
6e07163fee | ||
|
|
11a67d32c7 | ||
|
|
8549223fae | ||
|
|
ac327fc35f | ||
|
|
f54affaf2b | ||
|
|
5c14a9a307 | ||
|
|
b621df03e3 | ||
|
|
26f5f93ffa | ||
|
|
2b19378190 | ||
|
|
f84a5554e5 | ||
|
|
342c5a1063 | ||
|
|
8d47152669 | ||
|
|
676af5b65b | ||
|
|
d3ea98851f | ||
|
|
94dab10398 | ||
|
|
25a4650b9e | ||
|
|
b21dc9ddc5 | ||
|
|
3cabecc2cf | ||
|
|
cd9974cb77 | ||
|
|
a2019f40c5 | ||
|
|
4aa517c2a0 | ||
|
|
c55094d1db | ||
|
|
a40ba7f29f | ||
|
|
84f3752b63 | ||
|
|
5c07facbb8 | ||
|
|
ad80bc06dd | ||
|
|
e708cca8cf | ||
|
|
9f27dfd1eb | ||
|
|
29a1923f90 | ||
|
|
2ba1988ad9 | ||
|
|
b88fad9de5 | ||
|
|
bfcaf9d378 | ||
|
|
8ed605c6ec | ||
|
|
026dd3fe19 | ||
|
|
18acb97a9c | ||
|
|
9446a4e3b0 | ||
|
|
e2ba9b36ea | ||
|
|
c8df0a0ecb | ||
|
|
4e19cc4166 | ||
|
|
8f01bc65d1 | ||
|
|
972b40630f | ||
|
|
736fa43bab | ||
|
|
14fa2f463f | ||
|
|
a839e48c68 | ||
|
|
437efffa1d | ||
|
|
7cca5e6e8a | ||
|
|
1a730d708d | ||
|
|
d293255e64 | ||
|
|
62c944d197 | ||
|
|
b7679d6297 | ||
|
|
b4c6e9628c | ||
|
|
0f17a89913 | ||
|
|
c174a9b48a | ||
|
|
47b67b8457 | ||
|
|
1fc9974623 | ||
|
|
67713ba396 | ||
|
|
5d331e5e18 | ||
|
|
116719f98c | ||
|
|
3be1ddb0aa | ||
|
|
94e9659685 | ||
|
|
8fa22aeba7 | ||
|
|
9ed7b3cb60 | ||
|
|
e96e8c29dd | ||
|
|
6131b0e669 | ||
|
|
f2b5faecb0 | ||
|
|
f3a00a7fdc | ||
|
|
ee2aaff6ed | ||
|
|
7e49678556 | ||
|
|
aa27ecf449 | ||
|
|
20762bf38d | ||
|
|
1c78e0d0cd | ||
|
|
a06ef7134b | ||
|
|
55eaf6712d | ||
|
|
51ad84767e | ||
|
|
a2a9e0e6ad | ||
|
|
b53baac1e3 | ||
|
|
c7f2bbee11 | ||
|
|
2a28290bbd | ||
|
|
5a3bd61d69 | ||
|
|
a53f281edb | ||
|
|
f13afc1b7f | ||
|
|
0e365389e0 | ||
|
|
fe5cfb3c67 | ||
|
|
6ab4f6b69b | ||
|
|
a1beda8723 | ||
|
|
d57d2bf5e1 | ||
|
|
5dddb8155f | ||
|
|
5697e7530f | ||
|
|
0e140d672a | ||
|
|
e5280c89c9 | ||
|
|
ee6d61f35a | ||
|
|
46c41bbdb6 | ||
|
|
23f7047083 | ||
|
|
f0949f4e52 | ||
|
|
695ae7b69f | ||
|
|
516d9174c6 | ||
|
|
70fdc31b7a | ||
|
|
6a6365b1cd | ||
|
|
3f5366ee26 | ||
|
|
57f38ae975 | ||
|
|
3f042b168a | ||
|
|
0dd7fecc40 | ||
|
|
781ce60757 | ||
|
|
13067d50dc | ||
|
|
f83542b0e8 | ||
|
|
8f88b5030a | ||
|
|
a4f4de6999 | ||
|
|
c67a4aea6b | ||
|
|
8556bbcee7 | ||
|
|
07587e99d6 | ||
|
|
0f0ff380dc | ||
|
|
a9d7f428e9 | ||
|
|
7a651c6be7 | ||
|
|
17423f64d9 | ||
|
|
1b9835745b | ||
|
|
918b7f546a | ||
|
|
d260954486 | ||
|
|
1b44c6e07c | ||
|
|
0a522bcb07 | ||
|
|
8fdede234a | ||
|
|
411c1d12a5 | ||
|
|
8ec2673626 | ||
|
|
7dff68b46f | ||
|
|
9d3d5a1444 | ||
|
|
a90a2df025 | ||
|
|
b56f1d95fd | ||
|
|
cdea0ea21d | ||
|
|
9ecd5ffee8 | ||
|
|
484b096882 | ||
|
|
7485d62095 | ||
|
|
51b3696e37 | ||
|
|
e0b644cf9a | ||
|
|
d1ced15d1d | ||
|
|
1709e0eb12 | ||
|
|
112d8baae8 | ||
|
|
01b630ef6c | ||
|
|
abda0c9ff7 | ||
|
|
a4e58b10a3 | ||
|
|
cf23aea82e | ||
|
|
75d8f2cb94 | ||
|
|
9d2e5a9444 | ||
|
|
28b49aceba | ||
|
|
5588075961 | ||
|
|
a83630ec7e | ||
|
|
0c8e3a10ba | ||
|
|
b0709ec289 | ||
|
|
84474286e5 | ||
|
|
47b531f83f | ||
|
|
a332445329 | ||
|
|
68aa5c73f8 | ||
|
|
9448d5b50e | ||
|
|
d35f94db80 | ||
|
|
c70dc219c9 | ||
|
|
aa4ce588c4 | ||
|
|
cd0d26ff40 | ||
|
|
92af861c05 | ||
|
|
bfae1db6b8 | ||
|
|
6c66a4c2f4 | ||
|
|
f885f2f820 | ||
|
|
17ffaa8731 | ||
|
|
2d1ea37364 | ||
|
|
3b8b30a3b9 | ||
|
|
35dec193bb | ||
|
|
39e48fdfd0 | ||
|
|
d1c7bb53fd | ||
|
|
2ed184cb68 | ||
|
|
6abf4b2a00 | ||
|
|
c484bbe293 | ||
|
|
4f70eb18f5 | ||
|
|
b818df5d03 | ||
|
|
b7589c6d80 | ||
|
|
4a90d75098 | ||
|
|
33b6ada9e5 | ||
|
|
254ee96fa1 | ||
|
|
e0792ea61f | ||
|
|
474266a03f | ||
|
|
c800c8512e | ||
|
|
4da8d4444d | ||
|
|
8161d096d7 | ||
|
|
9c39f7ac1d | ||
|
|
04db729cb7 | ||
|
|
b6b09dfc0c | ||
|
|
2c2e3dfe36 | ||
|
|
25a66982fc | ||
|
|
0ebe442e3f | ||
|
|
5b31086356 | ||
|
|
a8de36eefd | ||
|
|
029ac0e01d | ||
|
|
abdddf4a50 | ||
|
|
51ba55d300 | ||
|
|
2d570187df | ||
|
|
fb643e9d33 | ||
|
|
253d885f8a | ||
|
|
6771a5144f | ||
|
|
da146cf056 | ||
|
|
f54f12fa90 | ||
|
|
6af3e85ab4 | ||
|
|
efe7856da0 | ||
|
|
dedaa56772 | ||
|
|
c345ff78db | ||
|
|
0f5daff12e | ||
|
|
8d8e8fcb14 | ||
|
|
c493ba0485 | ||
|
|
09b2b664e9 | ||
|
|
b1f1bf0193 | ||
|
|
6ca1cd32ac | ||
|
|
879542665b | ||
|
|
7f333ff5c6 | ||
|
|
20487eb941 | ||
|
|
0f5e128466 | ||
|
|
df54c73348 | ||
|
|
940de9d354 | ||
|
|
734ce300d5 | ||
|
|
45a5cedca2 | ||
|
|
629a75930c | ||
|
|
e0c02802ef | ||
|
|
37372f8ebb | ||
|
|
a38f2c68cd | ||
|
|
e843ac2fb7 | ||
|
|
5a8ec581b2 | ||
|
|
e54c417deb | ||
|
|
6c63b34a20 | ||
|
|
0f546890ef | ||
|
|
4369e3d96c | ||
|
|
81978d477d | ||
|
|
26ce9f952f | ||
|
|
83be6078c2 | ||
|
|
c40dcd4e11 | ||
|
|
a166b5ecfb | ||
|
|
a28d17bcf4 | ||
|
|
6b89e0318e | ||
|
|
9b619cb611 | ||
|
|
650924976f | ||
|
|
e467904304 | ||
|
|
7bbc5eecb9 | ||
|
|
8986887888 | ||
|
|
4b83e6c7ef | ||
|
|
608191b995 | ||
|
|
ec8c059640 | ||
|
|
5ee3d84647 | ||
|
|
35289ed90e | ||
|
|
b06ef4db7b | ||
|
|
cb3c7bc28e | ||
|
|
e18ef7a1ea | ||
|
|
9d7e701a89 | ||
|
|
37721b64d1 | ||
|
|
747a387ef8 | ||
|
|
31b175c61a | ||
|
|
577ce53232 | ||
|
|
a0791ccea6 | ||
|
|
220db93c1c | ||
|
|
f28baca470 | ||
|
|
48f0ea5c0a | ||
|
|
fcd7b58ff8 | ||
|
|
2531d8d36f | ||
|
|
429881f3ba | ||
|
|
c8b36cf375 | ||
|
|
ce21871e30 | ||
|
|
25995cbca0 | ||
|
|
aae606a794 | ||
|
|
9cdc73b298 | ||
|
|
a610057600 | ||
|
|
eb50b33aa3 | ||
|
|
6f830e77cd | ||
|
|
9b4988d58a | ||
|
|
8b75dd9bd7 | ||
|
|
9ef4a1f02d | ||
|
|
1d11e27cda | ||
|
|
3d13e30a5a | ||
|
|
338eaa3da6 | ||
|
|
061671bcc3 | ||
|
|
40d5ad9750 | ||
|
|
e046526ce9 | ||
|
|
a454a57ff9 | ||
|
|
d8659d1040 | ||
|
|
46ede89ece | ||
|
|
f826f6d2c3 | ||
|
|
2388b23daa | ||
|
|
d07c317d02 | ||
|
|
ac4b83fd44 | ||
|
|
cef8eff6f5 | ||
|
|
8ac43fdbac | ||
|
|
fcdee01608 | ||
|
|
c37c53f4f9 | ||
|
|
7f97cfe09a | ||
|
|
55ab8cbd51 | ||
|
|
62928caa7a | ||
|
|
367a1890e8 | ||
|
|
542aa60b23 | ||
|
|
f6b2aa2206 | ||
|
|
39eed22e98 | ||
|
|
6eb5518a2d | ||
|
|
6858e94734 | ||
|
|
82e094faf8 | ||
|
|
6a10227e87 | ||
|
|
502f01a301 | ||
|
|
7ab01cd5dd | ||
|
|
f2b2643c5f | ||
|
|
7f99a93745 | ||
|
|
22273b1951 | ||
|
|
ac39985f03 | ||
|
|
91109e7a94 | ||
|
|
7b129c628b | ||
|
|
368db703c4 | ||
|
|
c02c7468a8 | ||
|
|
99bc61a018 | ||
|
|
7aa2439a42 | ||
|
|
24e1a430eb | ||
|
|
382db5bee1 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1 +1,2 @@
|
||||
.env
|
||||
peer-backups/
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
abstract/external-node/abstract-mainnet-external-node-pruned.yml
|
||||
@@ -1 +0,0 @@
|
||||
abstract/external-node/abstract-testnet-external-node-pruned.yml
|
||||
@@ -29,8 +29,8 @@ x-logging-defaults: &logging-defaults
|
||||
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||
|
||||
services:
|
||||
abstract-mainnet-archive-client:
|
||||
image: ${ABSTRACT_EXTERNAL_NODE_IMAGE:-matterlabs/external-node}:${ABSTRACT_MAINNET_EXTERNAL_NODE_VERSION:-v27.5.7}
|
||||
abstract-mainnet-archive:
|
||||
image: ${ABSTRACT_EXTERNAL_NODE_IMAGE:-matterlabs/external-node}:${ABSTRACT_MAINNET_EXTERNAL_NODE_VERSION:-v29.7.0}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -61,7 +61,7 @@ services:
|
||||
- EN_L1_CHAIN_ID=1
|
||||
- EN_L2_CHAIN_ID=2741
|
||||
- EN_MAIN_NODE_URL=https://api.mainnet.abs.xyz
|
||||
- EN_MAX_RESPONSE_BODY_SIZE_MB=30
|
||||
- EN_MAX_RESPONSE_BODY_SIZE_MB=25
|
||||
- EN_MAX_RESPONSE_BODY_SIZE_OVERRIDES_MB=eth_getLogs=100,eth_getBlockReceipts=None
|
||||
- EN_MERKLE_TREE_PATH=./db/ext-node/lightweight
|
||||
- EN_PROMETHEUS_PORT=3322
|
||||
@@ -83,35 +83,24 @@ services:
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=false
|
||||
|
||||
abstract-mainnet-archive:
|
||||
image: nginx
|
||||
expose:
|
||||
- '80'
|
||||
environment:
|
||||
PROXY_HOST: abstract-mainnet-archive-client
|
||||
RPC_PATH: ''
|
||||
RPC_PORT: 8545
|
||||
WS_PATH: ''
|
||||
WS_PORT: 8546
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- abstract-mainnet-archive-client
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ./nginx-proxy:/etc/nginx/templates
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=false
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.abstract-mainnet-external-node-archive-stripprefix.stripprefix.prefixes=/abstract-mainnet-archive
|
||||
- traefik.http.services.abstract-mainnet-external-node-archive.loadbalancer.server.port=80
|
||||
- traefik.http.services.abstract-mainnet-external-node-archive.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.abstract-mainnet-external-node-archive.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.abstract-mainnet-external-node-archive.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.abstract-mainnet-external-node-archive.rule=Host(`$DOMAIN`) && (Path(`/abstract-mainnet-archive`) || Path(`/abstract-mainnet-archive/`))}
|
||||
- ${NO_SSL:+traefik.http.routers.abstract-mainnet-external-node-archive.rule=Path(`/abstract-mainnet-archive`) || Path(`/abstract-mainnet-archive/`)}
|
||||
- traefik.http.routers.abstract-mainnet-external-node-archive.middlewares=abstract-mainnet-external-node-archive-stripprefix, ipallowlist
|
||||
- traefik.http.routers.abstract-mainnet-external-node-archive.priority=50 # gets any request that is not GET with UPGRADE header
|
||||
- traefik.http.routers.abstract-mainnet-external-node-archive-ws.priority=100 # answers GET requests first
|
||||
- traefik.http.services.abstract-mainnet-external-node-archive-ws.loadbalancer.server.port=8546
|
||||
- traefik.http.routers.abstract-mainnet-external-node-archive-ws.service=abstract-mainnet-external-node-archive-ws
|
||||
- traefik.http.routers.abstract-mainnet-external-node-archive.service=abstract-mainnet-external-node-archive
|
||||
- ${NO_SSL:-traefik.http.routers.abstract-mainnet-external-node-archive-ws.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.abstract-mainnet-external-node-archive-ws.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.abstract-mainnet-external-node-archive-ws.rule=Host(`$DOMAIN`) && (Path(`/abstract-mainnet-archive`) || Path(`/abstract-mainnet-archive/`)) && Headers(`Upgrade`, `websocket`)}
|
||||
- ${NO_SSL:+traefik.http.routers.abstract-mainnet-external-node-archive-ws.rule=(Path(`/abstract-mainnet-archive`) || Path(`/abstract-mainnet-archive/`)) && Headers(`Upgrade`, `websocket`)}
|
||||
- traefik.http.routers.abstract-mainnet-external-node-archive-ws.middlewares=abstract-mainnet-external-node-archive-stripprefix, ipallowlist
|
||||
|
||||
abstract-mainnet-archive-db:
|
||||
image: postgres:14
|
||||
|
||||
@@ -29,8 +29,8 @@ x-logging-defaults: &logging-defaults
|
||||
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||
|
||||
services:
|
||||
abstract-mainnet-client:
|
||||
image: ${ABSTRACT_EXTERNAL_NODE_IMAGE:-matterlabs/external-node}:${ABSTRACT_MAINNET_EXTERNAL_NODE_VERSION:-v27.5.7}
|
||||
abstract-mainnet:
|
||||
image: ${ABSTRACT_EXTERNAL_NODE_IMAGE:-matterlabs/external-node}:${ABSTRACT_MAINNET_EXTERNAL_NODE_VERSION:-v29.7.0}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -61,7 +61,7 @@ services:
|
||||
- EN_L1_CHAIN_ID=1
|
||||
- EN_L2_CHAIN_ID=2741
|
||||
- EN_MAIN_NODE_URL=https://api.mainnet.abs.xyz
|
||||
- EN_MAX_RESPONSE_BODY_SIZE_MB=30
|
||||
- EN_MAX_RESPONSE_BODY_SIZE_MB=25
|
||||
- EN_MAX_RESPONSE_BODY_SIZE_OVERRIDES_MB=eth_getLogs=100,eth_getBlockReceipts=None
|
||||
- EN_MERKLE_TREE_PATH=./db/ext-node/lightweight
|
||||
- EN_PROMETHEUS_PORT=3322
|
||||
@@ -83,35 +83,24 @@ services:
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=false
|
||||
|
||||
abstract-mainnet:
|
||||
image: nginx
|
||||
expose:
|
||||
- '80'
|
||||
environment:
|
||||
PROXY_HOST: abstract-mainnet-client
|
||||
RPC_PATH: ''
|
||||
RPC_PORT: 8545
|
||||
WS_PATH: ''
|
||||
WS_PORT: 8546
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- abstract-mainnet-client
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ./nginx-proxy:/etc/nginx/templates
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=false
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.abstract-mainnet-external-node-pruned-stripprefix.stripprefix.prefixes=/abstract-mainnet
|
||||
- traefik.http.services.abstract-mainnet-external-node-pruned.loadbalancer.server.port=80
|
||||
- traefik.http.services.abstract-mainnet-external-node-pruned.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.abstract-mainnet-external-node-pruned.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.abstract-mainnet-external-node-pruned.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.abstract-mainnet-external-node-pruned.rule=Host(`$DOMAIN`) && (Path(`/abstract-mainnet`) || Path(`/abstract-mainnet/`))}
|
||||
- ${NO_SSL:+traefik.http.routers.abstract-mainnet-external-node-pruned.rule=Path(`/abstract-mainnet`) || Path(`/abstract-mainnet/`)}
|
||||
- traefik.http.routers.abstract-mainnet-external-node-pruned.middlewares=abstract-mainnet-external-node-pruned-stripprefix, ipallowlist
|
||||
- traefik.http.routers.abstract-mainnet-external-node-pruned.priority=50 # gets any request that is not GET with UPGRADE header
|
||||
- traefik.http.routers.abstract-mainnet-external-node-pruned-ws.priority=100 # answers GET requests first
|
||||
- traefik.http.services.abstract-mainnet-external-node-pruned-ws.loadbalancer.server.port=8546
|
||||
- traefik.http.routers.abstract-mainnet-external-node-pruned-ws.service=abstract-mainnet-external-node-pruned-ws
|
||||
- traefik.http.routers.abstract-mainnet-external-node-pruned.service=abstract-mainnet-external-node-pruned
|
||||
- ${NO_SSL:-traefik.http.routers.abstract-mainnet-external-node-pruned-ws.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.abstract-mainnet-external-node-pruned-ws.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.abstract-mainnet-external-node-pruned-ws.rule=Host(`$DOMAIN`) && (Path(`/abstract-mainnet`) || Path(`/abstract-mainnet/`)) && Headers(`Upgrade`, `websocket`)}
|
||||
- ${NO_SSL:+traefik.http.routers.abstract-mainnet-external-node-pruned-ws.rule=(Path(`/abstract-mainnet`) || Path(`/abstract-mainnet/`)) && Headers(`Upgrade`, `websocket`)}
|
||||
- traefik.http.routers.abstract-mainnet-external-node-pruned-ws.middlewares=abstract-mainnet-external-node-pruned-stripprefix, ipallowlist
|
||||
|
||||
abstract-mainnet-db:
|
||||
image: postgres:14
|
||||
|
||||
@@ -29,8 +29,8 @@ x-logging-defaults: &logging-defaults
|
||||
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||
|
||||
services:
|
||||
abstract-testnet-archive-client:
|
||||
image: ${ABSTRACT_EXTERNAL_NODE_IMAGE:-matterlabs/external-node}:${ABSTRACT_TESTNET_EXTERNAL_NODE_VERSION:-v28.2.1}
|
||||
abstract-testnet-archive:
|
||||
image: ${ABSTRACT_EXTERNAL_NODE_IMAGE:-matterlabs/external-node}:${ABSTRACT_TESTNET_EXTERNAL_NODE_VERSION:-v29.7.0}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -61,7 +61,7 @@ services:
|
||||
- EN_L1_CHAIN_ID=11155111
|
||||
- EN_L2_CHAIN_ID=11124
|
||||
- EN_MAIN_NODE_URL=https://api.testnet.abs.xyz
|
||||
- EN_MAX_RESPONSE_BODY_SIZE_MB=30
|
||||
- EN_MAX_RESPONSE_BODY_SIZE_MB=25
|
||||
- EN_MAX_RESPONSE_BODY_SIZE_OVERRIDES_MB=eth_getLogs=100,eth_getBlockReceipts=None
|
||||
- EN_MERKLE_TREE_PATH=./db/ext-node/lightweight
|
||||
- EN_PROMETHEUS_PORT=3322
|
||||
@@ -83,35 +83,24 @@ services:
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=false
|
||||
|
||||
abstract-testnet-archive:
|
||||
image: nginx
|
||||
expose:
|
||||
- '80'
|
||||
environment:
|
||||
PROXY_HOST: abstract-testnet-archive-client
|
||||
RPC_PATH: ''
|
||||
RPC_PORT: 8545
|
||||
WS_PATH: ''
|
||||
WS_PORT: 8546
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- abstract-testnet-archive-client
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ./nginx-proxy:/etc/nginx/templates
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=false
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.abstract-testnet-external-node-archive-stripprefix.stripprefix.prefixes=/abstract-testnet-archive
|
||||
- traefik.http.services.abstract-testnet-external-node-archive.loadbalancer.server.port=80
|
||||
- traefik.http.services.abstract-testnet-external-node-archive.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.abstract-testnet-external-node-archive.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.abstract-testnet-external-node-archive.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.abstract-testnet-external-node-archive.rule=Host(`$DOMAIN`) && (Path(`/abstract-testnet-archive`) || Path(`/abstract-testnet-archive/`))}
|
||||
- ${NO_SSL:+traefik.http.routers.abstract-testnet-external-node-archive.rule=Path(`/abstract-testnet-archive`) || Path(`/abstract-testnet-archive/`)}
|
||||
- traefik.http.routers.abstract-testnet-external-node-archive.middlewares=abstract-testnet-external-node-archive-stripprefix, ipallowlist
|
||||
- traefik.http.routers.abstract-testnet-external-node-archive.priority=50 # gets any request that is not GET with UPGRADE header
|
||||
- traefik.http.routers.abstract-testnet-external-node-archive-ws.priority=100 # answers GET requests first
|
||||
- traefik.http.services.abstract-testnet-external-node-archive-ws.loadbalancer.server.port=8546
|
||||
- traefik.http.routers.abstract-testnet-external-node-archive-ws.service=abstract-testnet-external-node-archive-ws
|
||||
- traefik.http.routers.abstract-testnet-external-node-archive.service=abstract-testnet-external-node-archive
|
||||
- ${NO_SSL:-traefik.http.routers.abstract-testnet-external-node-archive-ws.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.abstract-testnet-external-node-archive-ws.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.abstract-testnet-external-node-archive-ws.rule=Host(`$DOMAIN`) && (Path(`/abstract-testnet-archive`) || Path(`/abstract-testnet-archive/`)) && Headers(`Upgrade`, `websocket`)}
|
||||
- ${NO_SSL:+traefik.http.routers.abstract-testnet-external-node-archive-ws.rule=(Path(`/abstract-testnet-archive`) || Path(`/abstract-testnet-archive/`)) && Headers(`Upgrade`, `websocket`)}
|
||||
- traefik.http.routers.abstract-testnet-external-node-archive-ws.middlewares=abstract-testnet-external-node-archive-stripprefix, ipallowlist
|
||||
|
||||
abstract-testnet-archive-db:
|
||||
image: postgres:14
|
||||
|
||||
@@ -29,8 +29,8 @@ x-logging-defaults: &logging-defaults
|
||||
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||
|
||||
services:
|
||||
abstract-testnet-client:
|
||||
image: ${ABSTRACT_EXTERNAL_NODE_IMAGE:-matterlabs/external-node}:${ABSTRACT_TESTNET_EXTERNAL_NODE_VERSION:-v28.2.1}
|
||||
abstract-testnet:
|
||||
image: ${ABSTRACT_EXTERNAL_NODE_IMAGE:-matterlabs/external-node}:${ABSTRACT_TESTNET_EXTERNAL_NODE_VERSION:-v29.7.0}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -61,7 +61,7 @@ services:
|
||||
- EN_L1_CHAIN_ID=11155111
|
||||
- EN_L2_CHAIN_ID=11124
|
||||
- EN_MAIN_NODE_URL=https://api.testnet.abs.xyz
|
||||
- EN_MAX_RESPONSE_BODY_SIZE_MB=30
|
||||
- EN_MAX_RESPONSE_BODY_SIZE_MB=25
|
||||
- EN_MAX_RESPONSE_BODY_SIZE_OVERRIDES_MB=eth_getLogs=100,eth_getBlockReceipts=None
|
||||
- EN_MERKLE_TREE_PATH=./db/ext-node/lightweight
|
||||
- EN_PROMETHEUS_PORT=3322
|
||||
@@ -83,35 +83,24 @@ services:
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=false
|
||||
|
||||
abstract-testnet:
|
||||
image: nginx
|
||||
expose:
|
||||
- '80'
|
||||
environment:
|
||||
PROXY_HOST: abstract-testnet-client
|
||||
RPC_PATH: ''
|
||||
RPC_PORT: 8545
|
||||
WS_PATH: ''
|
||||
WS_PORT: 8546
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- abstract-testnet-client
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ./nginx-proxy:/etc/nginx/templates
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=false
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.abstract-testnet-external-node-pruned-stripprefix.stripprefix.prefixes=/abstract-testnet
|
||||
- traefik.http.services.abstract-testnet-external-node-pruned.loadbalancer.server.port=80
|
||||
- traefik.http.services.abstract-testnet-external-node-pruned.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.abstract-testnet-external-node-pruned.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.abstract-testnet-external-node-pruned.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.abstract-testnet-external-node-pruned.rule=Host(`$DOMAIN`) && (Path(`/abstract-testnet`) || Path(`/abstract-testnet/`))}
|
||||
- ${NO_SSL:+traefik.http.routers.abstract-testnet-external-node-pruned.rule=Path(`/abstract-testnet`) || Path(`/abstract-testnet/`)}
|
||||
- traefik.http.routers.abstract-testnet-external-node-pruned.middlewares=abstract-testnet-external-node-pruned-stripprefix, ipallowlist
|
||||
- traefik.http.routers.abstract-testnet-external-node-pruned.priority=50 # gets any request that is not GET with UPGRADE header
|
||||
- traefik.http.routers.abstract-testnet-external-node-pruned-ws.priority=100 # answers GET requests first
|
||||
- traefik.http.services.abstract-testnet-external-node-pruned-ws.loadbalancer.server.port=8546
|
||||
- traefik.http.routers.abstract-testnet-external-node-pruned-ws.service=abstract-testnet-external-node-pruned-ws
|
||||
- traefik.http.routers.abstract-testnet-external-node-pruned.service=abstract-testnet-external-node-pruned
|
||||
- ${NO_SSL:-traefik.http.routers.abstract-testnet-external-node-pruned-ws.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.abstract-testnet-external-node-pruned-ws.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.abstract-testnet-external-node-pruned-ws.rule=Host(`$DOMAIN`) && (Path(`/abstract-testnet`) || Path(`/abstract-testnet/`)) && Headers(`Upgrade`, `websocket`)}
|
||||
- ${NO_SSL:+traefik.http.routers.abstract-testnet-external-node-pruned-ws.rule=(Path(`/abstract-testnet`) || Path(`/abstract-testnet/`)) && Headers(`Upgrade`, `websocket`)}
|
||||
- traefik.http.routers.abstract-testnet-external-node-pruned-ws.middlewares=abstract-testnet-external-node-pruned-stripprefix, ipallowlist
|
||||
|
||||
abstract-testnet-db:
|
||||
image: postgres:14
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
arb/nitro/alephzero-mainnet-nitro-archive-pebble-hash.yml
|
||||
@@ -1 +0,0 @@
|
||||
arb/nitro/alephzero-mainnet-nitro-pruned-pebble-path.yml
|
||||
@@ -1 +0,0 @@
|
||||
arb/nitro/alephzero-sepolia-nitro-archive-leveldb-hash.yml
|
||||
@@ -1 +0,0 @@
|
||||
arb/nitro/alephzero-sepolia-nitro-pruned-pebble-path.yml
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
arbitrum-one-arbnode-archive:
|
||||
image: ${ARBITRUM_ARBNODE_IMAGE:-offchainlabs/arb-node}:${ARBITRUM_ONE_ARBNODE_VERSION:-v1.4.5-e97c1a4}
|
||||
image: ${ARBITRUM_ARBNODE_IMAGE:-offchainlabs/arb-node}:${ARBITRUM_ONE_ARBNODE_VERSION:-v1.4.6-551a39b3}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
|
||||
166
arb/nitro-erigon/arbitrum-sepolia-nitro-erigon-archive-trace.yml
Normal file
166
arb/nitro-erigon/arbitrum-sepolia-nitro-erigon-archive-trace.yml
Normal file
@@ -0,0 +1,166 @@
|
||||
---
|
||||
x-logging-defaults: &logging-defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
# Usage:
|
||||
#
|
||||
# mkdir rpc && cd rpc
|
||||
#
|
||||
# git init
|
||||
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
|
||||
# git fetch origin vibe
|
||||
# git checkout origin/vibe
|
||||
#
|
||||
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
|
||||
#
|
||||
# env
|
||||
# ...
|
||||
# IP=$(curl ipinfo.io/ip)
|
||||
# DOMAIN=${IP}.traefik.me
|
||||
# COMPOSE_FILE=base.yml:rpc.yml:arb/nitro-erigon/arbitrum-sepolia-nitro-erigon-archive-trace.yml
|
||||
#
|
||||
# docker compose up -d
|
||||
#
|
||||
# curl -X POST https://${IP}.traefik.me/arbitrum-sepolia-nitro-erigon-archive \
|
||||
# -H "Content-Type: application/json" \
|
||||
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||
|
||||
services:
|
||||
arbitrum-sepolia-nitro-erigon-archive:
|
||||
image: ${ARBITRUM_NITRO_ERIGON_IMAGE:-erigontech/nitro-erigon}:${ARBITRUM_SEPOLIA_NITRO_ERIGON_VERSION:-main-1a9771c}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
# net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
user: root
|
||||
ports:
|
||||
- 11387:11387
|
||||
- 11387:11387/udp
|
||||
- 31387:31387
|
||||
- 31387:31387/udp
|
||||
- 36387:36387
|
||||
- 36387:36387/udp
|
||||
expose:
|
||||
- 8545
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=arb-sepolia
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --http
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin,ots
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --l2rpc=${ARBITRUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --maxpeers=50
|
||||
- --metrics
|
||||
- --metrics.addr=0.0.0.0
|
||||
- --metrics.port=6060
|
||||
- --nat=extip:${IP}
|
||||
- --p2p.allowed-ports=31387
|
||||
- --p2p.allowed-ports=36387
|
||||
- --port=11387
|
||||
- --prune.mode=archive
|
||||
- --rpc.evmtimeout=${ARBITRUM_SEPOLIA_NITRO_ERIGON_ARCHIVE_TRACE_EVMTIMEOUT:-5m0s}
|
||||
- --rpc.gascap=6000000000
|
||||
- --rpc.overlay.getlogstimeout=${ARBITRUM_SEPOLIA_NITRO_ERIGON_ARCHIVE_TRACE_GETLOGSTIMEOUT:-5m0s}
|
||||
- --rpc.overlay.replayblocktimeout=${ARBITRUM_SEPOLIA_NITRO_ERIGON_ARCHIVE_TRACE_REPLAYBLOCKTIMEOUT:-10s}
|
||||
- --rpc.returndata.limit=10000000
|
||||
- --sync.loop.block.limit=100000
|
||||
- --torrent.port=26387
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${ARBITRUM_SEPOLIA_NITRO_ERIGON_ARCHIVE_TRACE_DATA:-arbitrum-sepolia-nitro-erigon-archive-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=true
|
||||
- prometheus-scrape.port=6060
|
||||
- prometheus-scrape.path=/debug/metrics/prometheus
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.arbitrum-sepolia-nitro-erigon-archive-trace-stripprefix.stripprefix.prefixes=/arbitrum-sepolia-nitro-erigon-archive
|
||||
- traefik.http.services.arbitrum-sepolia-nitro-erigon-archive-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-sepolia-nitro-erigon-archive-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-sepolia-nitro-erigon-archive-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-sepolia-nitro-erigon-archive-trace.rule=Host(`$DOMAIN`) && (Path(`/arbitrum-sepolia-nitro-erigon-archive`) || Path(`/arbitrum-sepolia-nitro-erigon-archive/`))}
|
||||
- ${NO_SSL:+traefik.http.routers.arbitrum-sepolia-nitro-erigon-archive-trace.rule=Path(`/arbitrum-sepolia-nitro-erigon-archive`) || Path(`/arbitrum-sepolia-nitro-erigon-archive/`)}
|
||||
- traefik.http.routers.arbitrum-sepolia-nitro-erigon-archive-trace.middlewares=arbitrum-sepolia-nitro-erigon-archive-trace-stripprefix, ipallowlist
|
||||
shm_size: 2gb
|
||||
|
||||
volumes:
|
||||
arbitrum-sepolia-nitro-erigon-archive-trace:
|
||||
|
||||
x-upstreams:
|
||||
- id: $${ID}
|
||||
labels:
|
||||
provider: $${PROVIDER}
|
||||
connection:
|
||||
generic:
|
||||
rpc:
|
||||
url: $${RPC_URL}
|
||||
ws:
|
||||
frameSize: 20Mb
|
||||
msgSize: 50Mb
|
||||
url: $${WS_URL}
|
||||
chain: arbitrum-sepolia
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
- name: txpool_content # TODO: should be disabled for rollup nodes
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
# non standard erigon only
|
||||
- name: eth_getBlockReceipts
|
||||
- name: eth_protocolVersion
|
||||
- name: eth_callMany
|
||||
- name: eth_callBundle
|
||||
- name: debug_accountAt
|
||||
- name: debug_traceCallMany
|
||||
- name: erigon_getHeaderByHash
|
||||
- name: erigon_getBlockReceiptsByBlockHash
|
||||
- name: erigon_getHeaderByNumber
|
||||
- name: erigon_getLogsByHash
|
||||
- name: erigon_forks
|
||||
- name: erigon_getBlockByTimestamp
|
||||
- name: erigon_BlockNumber
|
||||
- name: erigon_getLatestLogs
|
||||
- name: ots_getInternalOperations
|
||||
- name: ots_hasCode
|
||||
- name: ots_getTransactionError
|
||||
- name: ots_traceTransaction
|
||||
- name: ots_getBlockDetails
|
||||
- name: ots_getBlockDetailsByHash
|
||||
- name: ots_getBlockTransactions
|
||||
- name: ots_searchTransactionsBefore
|
||||
- name: ots_searchTransactionsAfter
|
||||
- name: ots_getTransactionBySenderAndNonce
|
||||
- name: ots_getContractCreator
|
||||
...
|
||||
167
arb/nitro-erigon/arbitrum-sepolia-nitro-erigon-minimal-trace.yml
Normal file
167
arb/nitro-erigon/arbitrum-sepolia-nitro-erigon-minimal-trace.yml
Normal file
@@ -0,0 +1,167 @@
|
||||
---
|
||||
x-logging-defaults: &logging-defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
# Usage:
|
||||
#
|
||||
# mkdir rpc && cd rpc
|
||||
#
|
||||
# git init
|
||||
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
|
||||
# git fetch origin vibe
|
||||
# git checkout origin/vibe
|
||||
#
|
||||
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
|
||||
#
|
||||
# env
|
||||
# ...
|
||||
# IP=$(curl ipinfo.io/ip)
|
||||
# DOMAIN=${IP}.traefik.me
|
||||
# COMPOSE_FILE=base.yml:rpc.yml:arb/nitro-erigon/arbitrum-sepolia-nitro-erigon-minimal-trace.yml
|
||||
#
|
||||
# docker compose up -d
|
||||
#
|
||||
# curl -X POST https://${IP}.traefik.me/arbitrum-sepolia-nitro-erigon-minimal \
|
||||
# -H "Content-Type: application/json" \
|
||||
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||
|
||||
services:
|
||||
arbitrum-sepolia-nitro-erigon-minimal:
|
||||
image: ${ARBITRUM_NITRO_ERIGON_IMAGE:-erigontech/nitro-erigon}:${ARBITRUM_SEPOLIA_NITRO_ERIGON_VERSION:-main-1a9771c}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
# net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
user: root
|
||||
ports:
|
||||
- 12072:12072
|
||||
- 12072:12072/udp
|
||||
- 32072:32072
|
||||
- 32072:32072/udp
|
||||
- 37072:37072
|
||||
- 37072:37072/udp
|
||||
expose:
|
||||
- 8545
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=arb-sepolia
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --http
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin,ots
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --l2rpc=${ARBITRUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --maxpeers=50
|
||||
- --metrics
|
||||
- --metrics.addr=0.0.0.0
|
||||
- --metrics.port=6060
|
||||
- --nat=extip:${IP}
|
||||
- --p2p.allowed-ports=32072
|
||||
- --p2p.allowed-ports=37072
|
||||
- --persist.receipts=false
|
||||
- --port=12072
|
||||
- --prune.mode=minimal
|
||||
- --rpc.evmtimeout=${ARBITRUM_SEPOLIA_NITRO_ERIGON_MINIMAL_TRACE_EVMTIMEOUT:-5m0s}
|
||||
- --rpc.gascap=6000000000
|
||||
- --rpc.overlay.getlogstimeout=${ARBITRUM_SEPOLIA_NITRO_ERIGON_MINIMAL_TRACE_GETLOGSTIMEOUT:-5m0s}
|
||||
- --rpc.overlay.replayblocktimeout=${ARBITRUM_SEPOLIA_NITRO_ERIGON_MINIMAL_TRACE_REPLAYBLOCKTIMEOUT:-10s}
|
||||
- --rpc.returndata.limit=10000000
|
||||
- --sync.loop.block.limit=100000
|
||||
- --torrent.port=27072
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${ARBITRUM_SEPOLIA_NITRO_ERIGON_MINIMAL_TRACE_DATA:-arbitrum-sepolia-nitro-erigon-minimal-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=true
|
||||
- prometheus-scrape.port=6060
|
||||
- prometheus-scrape.path=/debug/metrics/prometheus
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.arbitrum-sepolia-nitro-erigon-minimal-trace-stripprefix.stripprefix.prefixes=/arbitrum-sepolia-nitro-erigon-minimal
|
||||
- traefik.http.services.arbitrum-sepolia-nitro-erigon-minimal-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-sepolia-nitro-erigon-minimal-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-sepolia-nitro-erigon-minimal-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-sepolia-nitro-erigon-minimal-trace.rule=Host(`$DOMAIN`) && (Path(`/arbitrum-sepolia-nitro-erigon-minimal`) || Path(`/arbitrum-sepolia-nitro-erigon-minimal/`))}
|
||||
- ${NO_SSL:+traefik.http.routers.arbitrum-sepolia-nitro-erigon-minimal-trace.rule=Path(`/arbitrum-sepolia-nitro-erigon-minimal`) || Path(`/arbitrum-sepolia-nitro-erigon-minimal/`)}
|
||||
- traefik.http.routers.arbitrum-sepolia-nitro-erigon-minimal-trace.middlewares=arbitrum-sepolia-nitro-erigon-minimal-trace-stripprefix, ipallowlist
|
||||
shm_size: 2gb
|
||||
|
||||
volumes:
|
||||
arbitrum-sepolia-nitro-erigon-minimal-trace:
|
||||
|
||||
x-upstreams:
|
||||
- id: $${ID}
|
||||
labels:
|
||||
provider: $${PROVIDER}
|
||||
connection:
|
||||
generic:
|
||||
rpc:
|
||||
url: $${RPC_URL}
|
||||
ws:
|
||||
frameSize: 20Mb
|
||||
msgSize: 50Mb
|
||||
url: $${WS_URL}
|
||||
chain: arbitrum-sepolia
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
- name: txpool_content # TODO: should be disabled for rollup nodes
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
# non standard erigon only
|
||||
- name: eth_getBlockReceipts
|
||||
- name: eth_protocolVersion
|
||||
- name: eth_callMany
|
||||
- name: eth_callBundle
|
||||
- name: debug_accountAt
|
||||
- name: debug_traceCallMany
|
||||
- name: erigon_getHeaderByHash
|
||||
- name: erigon_getBlockReceiptsByBlockHash
|
||||
- name: erigon_getHeaderByNumber
|
||||
- name: erigon_getLogsByHash
|
||||
- name: erigon_forks
|
||||
- name: erigon_getBlockByTimestamp
|
||||
- name: erigon_BlockNumber
|
||||
- name: erigon_getLatestLogs
|
||||
- name: ots_getInternalOperations
|
||||
- name: ots_hasCode
|
||||
- name: ots_getTransactionError
|
||||
- name: ots_traceTransaction
|
||||
- name: ots_getBlockDetails
|
||||
- name: ots_getBlockDetailsByHash
|
||||
- name: ots_getBlockTransactions
|
||||
- name: ots_searchTransactionsBefore
|
||||
- name: ots_searchTransactionsAfter
|
||||
- name: ots_getTransactionBySenderAndNonce
|
||||
- name: ots_getContractCreator
|
||||
...
|
||||
167
arb/nitro-erigon/arbitrum-sepolia-nitro-erigon-pruned-trace.yml
Normal file
167
arb/nitro-erigon/arbitrum-sepolia-nitro-erigon-pruned-trace.yml
Normal file
@@ -0,0 +1,167 @@
|
||||
---
|
||||
x-logging-defaults: &logging-defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
# Usage:
|
||||
#
|
||||
# mkdir rpc && cd rpc
|
||||
#
|
||||
# git init
|
||||
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
|
||||
# git fetch origin vibe
|
||||
# git checkout origin/vibe
|
||||
#
|
||||
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
|
||||
#
|
||||
# env
|
||||
# ...
|
||||
# IP=$(curl ipinfo.io/ip)
|
||||
# DOMAIN=${IP}.traefik.me
|
||||
# COMPOSE_FILE=base.yml:rpc.yml:arb/nitro-erigon/arbitrum-sepolia-nitro-erigon-pruned-trace.yml
|
||||
#
|
||||
# docker compose up -d
|
||||
#
|
||||
# curl -X POST https://${IP}.traefik.me/arbitrum-sepolia-nitro-erigon \
|
||||
# -H "Content-Type: application/json" \
|
||||
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||
|
||||
services:
|
||||
arbitrum-sepolia-nitro-erigon:
|
||||
image: ${ARBITRUM_NITRO_ERIGON_IMAGE:-erigontech/nitro-erigon}:${ARBITRUM_SEPOLIA_NITRO_ERIGON_VERSION:-main-1a9771c}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
# net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
user: root
|
||||
ports:
|
||||
- 13369:13369
|
||||
- 13369:13369/udp
|
||||
- 33369:33369
|
||||
- 33369:33369/udp
|
||||
- 38369:38369
|
||||
- 38369:38369/udp
|
||||
expose:
|
||||
- 8545
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --chain=arb-sepolia
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --http
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin,ots
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --l2rpc=${ARBITRUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --maxpeers=50
|
||||
- --metrics
|
||||
- --metrics.addr=0.0.0.0
|
||||
- --metrics.port=6060
|
||||
- --nat=extip:${IP}
|
||||
- --p2p.allowed-ports=33369
|
||||
- --p2p.allowed-ports=38369
|
||||
- --persist.receipts=false
|
||||
- --port=13369
|
||||
- --prune.mode=full
|
||||
- --rpc.evmtimeout=${ARBITRUM_SEPOLIA_NITRO_ERIGON_PRUNED_TRACE_EVMTIMEOUT:-5m0s}
|
||||
- --rpc.gascap=6000000000
|
||||
- --rpc.overlay.getlogstimeout=${ARBITRUM_SEPOLIA_NITRO_ERIGON_PRUNED_TRACE_GETLOGSTIMEOUT:-5m0s}
|
||||
- --rpc.overlay.replayblocktimeout=${ARBITRUM_SEPOLIA_NITRO_ERIGON_PRUNED_TRACE_REPLAYBLOCKTIMEOUT:-10s}
|
||||
- --rpc.returndata.limit=10000000
|
||||
- --sync.loop.block.limit=100000
|
||||
- --torrent.port=28369
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${ARBITRUM_SEPOLIA_NITRO_ERIGON_PRUNED_TRACE_DATA:-arbitrum-sepolia-nitro-erigon-pruned-trace}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=true
|
||||
- prometheus-scrape.port=6060
|
||||
- prometheus-scrape.path=/debug/metrics/prometheus
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.arbitrum-sepolia-nitro-erigon-pruned-trace-stripprefix.stripprefix.prefixes=/arbitrum-sepolia-nitro-erigon
|
||||
- traefik.http.services.arbitrum-sepolia-nitro-erigon-pruned-trace.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-sepolia-nitro-erigon-pruned-trace.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-sepolia-nitro-erigon-pruned-trace.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-sepolia-nitro-erigon-pruned-trace.rule=Host(`$DOMAIN`) && (Path(`/arbitrum-sepolia-nitro-erigon`) || Path(`/arbitrum-sepolia-nitro-erigon/`))}
|
||||
- ${NO_SSL:+traefik.http.routers.arbitrum-sepolia-nitro-erigon-pruned-trace.rule=Path(`/arbitrum-sepolia-nitro-erigon`) || Path(`/arbitrum-sepolia-nitro-erigon/`)}
|
||||
- traefik.http.routers.arbitrum-sepolia-nitro-erigon-pruned-trace.middlewares=arbitrum-sepolia-nitro-erigon-pruned-trace-stripprefix, ipallowlist
|
||||
shm_size: 2gb
|
||||
|
||||
volumes:
|
||||
arbitrum-sepolia-nitro-erigon-pruned-trace:
|
||||
|
||||
x-upstreams:
|
||||
- id: $${ID}
|
||||
labels:
|
||||
provider: $${PROVIDER}
|
||||
connection:
|
||||
generic:
|
||||
rpc:
|
||||
url: $${RPC_URL}
|
||||
ws:
|
||||
frameSize: 20Mb
|
||||
msgSize: 50Mb
|
||||
url: $${WS_URL}
|
||||
chain: arbitrum-sepolia
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
- name: txpool_content # TODO: should be disabled for rollup nodes
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
# non standard erigon only
|
||||
- name: eth_getBlockReceipts
|
||||
- name: eth_protocolVersion
|
||||
- name: eth_callMany
|
||||
- name: eth_callBundle
|
||||
- name: debug_accountAt
|
||||
- name: debug_traceCallMany
|
||||
- name: erigon_getHeaderByHash
|
||||
- name: erigon_getBlockReceiptsByBlockHash
|
||||
- name: erigon_getHeaderByNumber
|
||||
- name: erigon_getLogsByHash
|
||||
- name: erigon_forks
|
||||
- name: erigon_getBlockByTimestamp
|
||||
- name: erigon_BlockNumber
|
||||
- name: erigon_getLatestLogs
|
||||
- name: ots_getInternalOperations
|
||||
- name: ots_hasCode
|
||||
- name: ots_getTransactionError
|
||||
- name: ots_traceTransaction
|
||||
- name: ots_getBlockDetails
|
||||
- name: ots_getBlockDetailsByHash
|
||||
- name: ots_getBlockTransactions
|
||||
- name: ots_searchTransactionsBefore
|
||||
- name: ots_searchTransactionsAfter
|
||||
- name: ots_getTransactionBySenderAndNonce
|
||||
- name: ots_getContractCreator
|
||||
...
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
alephzero-mainnet-archive:
|
||||
image: ${ALEPHZERO_NITRO_IMAGE:-offchainlabs/nitro-node}:${ALEPHZERO_MAINNET_NITRO_VERSION:-v3.6.4-28199cd}
|
||||
image: ${ALEPHZERO_NITRO_IMAGE:-offchainlabs/nitro-node}:${ALEPHZERO_MAINNET_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -50,19 +50,24 @@ services:
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.archive=true
|
||||
- --execution.caching.database-cache=${ALEPHZERO_MAINNET_NITRO_ARCHIVE_PEBBLE_HASH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${ALEPHZERO_MAINNET_NITRO_ARCHIVE_PEBBLE_HASH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.trie-clean-cache=${ALEPHZERO_MAINNET_NITRO_ARCHIVE_PEBBLE_HASH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${ALEPHZERO_MAINNET_NITRO_ARCHIVE_PEBBLE_HASH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.forwarding-target=https://rpc.alephzero.raas.gelato.cloud
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.rpc.log-history=0
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.download-path=/tmp
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.da-provider.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
alephzero-mainnet:
|
||||
image: ${ALEPHZERO_NITRO_IMAGE:-offchainlabs/nitro-node}:${ALEPHZERO_MAINNET_NITRO_VERSION:-v3.6.4-28199cd}
|
||||
image: ${ALEPHZERO_NITRO_IMAGE:-offchainlabs/nitro-node}:${ALEPHZERO_MAINNET_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -49,21 +49,25 @@ services:
|
||||
- 8545
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.archive=false
|
||||
- --execution.caching.archive=${ALEPHZERO_MAINNET_ARCHIVE_DB:-false}
|
||||
- --execution.caching.database-cache=${ALEPHZERO_MAINNET_NITRO_PRUNED_PEBBLE_PATH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${ALEPHZERO_MAINNET_NITRO_PRUNED_PEBBLE_PATH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.state-scheme=path
|
||||
- --execution.caching.trie-clean-cache=${ALEPHZERO_MAINNET_NITRO_PRUNED_PEBBLE_PATH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${ALEPHZERO_MAINNET_NITRO_PRUNED_PEBBLE_PATH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.forwarding-target=https://rpc.alephzero.raas.gelato.cloud
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.download-path=/tmp
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.da-provider.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
alephzero-sepolia-archive:
|
||||
image: ${ALEPHZERO_NITRO_IMAGE:-offchainlabs/nitro-node}:${ALEPHZERO_SEPOLIA_NITRO_VERSION:-v3.6.4-28199cd}
|
||||
image: ${ALEPHZERO_NITRO_IMAGE:-offchainlabs/nitro-node}:${ALEPHZERO_SEPOLIA_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -50,19 +50,24 @@ services:
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.archive=true
|
||||
- --execution.caching.database-cache=${ALEPHZERO_SEPOLIA_NITRO_ARCHIVE_PEBBLE_HASH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${ALEPHZERO_SEPOLIA_NITRO_ARCHIVE_PEBBLE_HASH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.trie-clean-cache=${ALEPHZERO_SEPOLIA_NITRO_ARCHIVE_PEBBLE_HASH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${ALEPHZERO_SEPOLIA_NITRO_ARCHIVE_PEBBLE_HASH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.forwarding-target=https://rpc.alephzero-testnet.gelato.digital
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.rpc.log-history=0
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.download-path=/tmp
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.da-provider.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
alephzero-sepolia:
|
||||
image: ${ALEPHZERO_NITRO_IMAGE:-offchainlabs/nitro-node}:${ALEPHZERO_SEPOLIA_NITRO_VERSION:-v3.6.4-28199cd}
|
||||
image: ${ALEPHZERO_NITRO_IMAGE:-offchainlabs/nitro-node}:${ALEPHZERO_SEPOLIA_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -49,21 +49,25 @@ services:
|
||||
- 8545
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.archive=false
|
||||
- --execution.caching.archive=${ALEPHZERO_SEPOLIA_ARCHIVE_DB:-false}
|
||||
- --execution.caching.database-cache=${ALEPHZERO_SEPOLIA_NITRO_PRUNED_PEBBLE_PATH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${ALEPHZERO_SEPOLIA_NITRO_PRUNED_PEBBLE_PATH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.state-scheme=path
|
||||
- --execution.caching.trie-clean-cache=${ALEPHZERO_SEPOLIA_NITRO_PRUNED_PEBBLE_PATH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${ALEPHZERO_SEPOLIA_NITRO_PRUNED_PEBBLE_PATH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.forwarding-target=https://rpc.alephzero-testnet.gelato.digital
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.download-path=/tmp
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.da-provider.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
arbitrum-nova-archive:
|
||||
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_NOVA_NITRO_VERSION:-v3.6.4-28199cd}
|
||||
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_NOVA_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -50,15 +50,18 @@ services:
|
||||
command:
|
||||
- --chain.id=42170
|
||||
- --execution.caching.archive=true
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.database-cache=${ARBITRUM_NOVA_NITRO_ARCHIVE_LEVELDB_HASH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${ARBITRUM_NOVA_NITRO_ARCHIVE_LEVELDB_HASH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.trie-clean-cache=${ARBITRUM_NOVA_NITRO_ARCHIVE_LEVELDB_HASH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${ARBITRUM_NOVA_NITRO_ARCHIVE_LEVELDB_HASH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.rpc.log-history=0
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.download-path=/tmp
|
||||
- --init.latest=archive
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
---
|
||||
x-logging-defaults: &logging-defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
# Usage:
|
||||
#
|
||||
@@ -15,17 +20,17 @@
|
||||
# ...
|
||||
# IP=$(curl ipinfo.io/ip)
|
||||
# DOMAIN=${IP}.traefik.me
|
||||
# COMPOSE_FILE=base.yml:rpc.yml:arb/nitro/arbitrum-one-nitro-archive-leveldb-hash--benchmark.yml
|
||||
# COMPOSE_FILE=base.yml:rpc.yml:arb/nitro/arbitrum-nova-nitro-pruned-pebble-hash.yml
|
||||
#
|
||||
# docker compose up -d
|
||||
#
|
||||
# curl -X POST https://${IP}.traefik.me/arbitrum-one-archive \
|
||||
# curl -X POST https://${IP}.traefik.me/arbitrum-nova \
|
||||
# -H "Content-Type: application/json" \
|
||||
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||
|
||||
services:
|
||||
arbitrum-one-archive:
|
||||
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_ONE_NITRO_VERSION:-v3.5.5-90ee45c}
|
||||
arbitrum-nova:
|
||||
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_NOVA_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -43,24 +48,31 @@ services:
|
||||
expose:
|
||||
- 8545
|
||||
command:
|
||||
- --chain.id=42161
|
||||
- --execution.caching.archive=true
|
||||
- --execution.caching.state-scheme=hash
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --chain.id=42170
|
||||
- --execution.caching.archive=${ARBITRUM_NOVA_ARCHIVE_DB:-false}
|
||||
- --execution.caching.database-cache=${ARBITRUM_NOVA_NITRO_PRUNED_PEBBLE_HASH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${ARBITRUM_NOVA_NITRO_PRUNED_PEBBLE_HASH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.trie-clean-cache=${ARBITRUM_NOVA_NITRO_PRUNED_PEBBLE_HASH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${ARBITRUM_NOVA_NITRO_PRUNED_PEBBLE_HASH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.rpc.log-history=0
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.latest=archive
|
||||
- --init.prune=full
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --persistent.chain=/root/.arbitrum/arbitrum-one-archive
|
||||
- --persistent.db-engine=leveldb
|
||||
- --persistent.chain=/root/.arbitrum/arbitrum-nova
|
||||
- --persistent.db-engine=pebble
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
- --ws.port=8545
|
||||
@@ -69,38 +81,25 @@ services:
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${ARBITRUM_ONE_NITRO_ARCHIVE_LEVELDB_HASH_DATA:-arbitrum-one-nitro-archive-leveldb-hash}:/root/.arbitrum
|
||||
- ./tmp/arbitrum-one-archive:/tmp
|
||||
- ${ARBITRUM_NOVA_NITRO_PRUNED_PEBBLE_HASH_DATA:-arbitrum-nova-nitro-pruned-pebble-hash}:/root/.arbitrum
|
||||
- ./tmp/arbitrum-nova:/tmp
|
||||
- /slowdisk:/slowdisk
|
||||
|
||||
arbitrum-one-archive-benchmark:
|
||||
build:
|
||||
context: ./benchmark-proxy
|
||||
dockerfile: Dockerfile
|
||||
expose:
|
||||
- '8545'
|
||||
environment:
|
||||
- ENABLE_DETAILED_LOGS=${BENCHMARK_PROXY_VERBOSE:-false}
|
||||
- LISTEN_ADDR=:8545
|
||||
- PRIMARY_BACKEND=http://arbitrum-one-archive:8545
|
||||
- SUMMARY_INTERVAL=60
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- arbitrum-one-archive
|
||||
networks:
|
||||
- chains
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=true
|
||||
- prometheus-scrape.port=6070
|
||||
- prometheus-scrape.path=/debug/metrics/prometheus
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.arbitrum-one-nitro-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/arbitrum-one-archive
|
||||
- traefik.http.services.arbitrum-one-nitro-archive-leveldb-hash.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-one-nitro-archive-leveldb-hash.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-one-nitro-archive-leveldb-hash.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-one-nitro-archive-leveldb-hash.rule=Host(`$DOMAIN`) && (Path(`/arbitrum-one-archive`) || Path(`/arbitrum-one-archive/`))}
|
||||
- ${NO_SSL:+traefik.http.routers.arbitrum-one-nitro-archive-leveldb-hash.rule=Path(`/arbitrum-one-archive`) || Path(`/arbitrum-one-archive/`)}
|
||||
- traefik.http.routers.arbitrum-one-nitro-archive-leveldb-hash.middlewares=arbitrum-one-nitro-archive-leveldb-hash-stripprefix, ipallowlist
|
||||
- traefik.http.middlewares.arbitrum-nova-nitro-pruned-pebble-hash-stripprefix.stripprefix.prefixes=/arbitrum-nova
|
||||
- traefik.http.services.arbitrum-nova-nitro-pruned-pebble-hash.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-nova-nitro-pruned-pebble-hash.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-nova-nitro-pruned-pebble-hash.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-nova-nitro-pruned-pebble-hash.rule=Host(`$DOMAIN`) && (Path(`/arbitrum-nova`) || Path(`/arbitrum-nova/`))}
|
||||
- ${NO_SSL:+traefik.http.routers.arbitrum-nova-nitro-pruned-pebble-hash.rule=Path(`/arbitrum-nova`) || Path(`/arbitrum-nova/`)}
|
||||
- traefik.http.routers.arbitrum-nova-nitro-pruned-pebble-hash.middlewares=arbitrum-nova-nitro-pruned-pebble-hash-stripprefix, ipallowlist
|
||||
|
||||
volumes:
|
||||
arbitrum-one-nitro-archive-leveldb-hash:
|
||||
arbitrum-nova-nitro-pruned-pebble-hash:
|
||||
|
||||
x-upstreams:
|
||||
- id: $${ID}
|
||||
@@ -114,7 +113,7 @@ x-upstreams:
|
||||
frameSize: 20Mb
|
||||
msgSize: 50Mb
|
||||
url: $${WS_URL}
|
||||
chain: arbitrum
|
||||
chain: arbitrum-nova
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
arbitrum-nova:
|
||||
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_NOVA_NITRO_VERSION:-v3.6.4-28199cd}
|
||||
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_NOVA_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -49,16 +49,19 @@ services:
|
||||
- 8545
|
||||
command:
|
||||
- --chain.id=42170
|
||||
- --execution.caching.archive=false
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=${ARBITRUM_NOVA_ARCHIVE_DB:-false}
|
||||
- --execution.caching.database-cache=${ARBITRUM_NOVA_NITRO_PRUNED_PEBBLE_HASH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${ARBITRUM_NOVA_NITRO_PRUNED_PEBBLE_HASH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.trie-clean-cache=${ARBITRUM_NOVA_NITRO_PRUNED_PEBBLE_HASH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${ARBITRUM_NOVA_NITRO_PRUNED_PEBBLE_HASH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.rpc.log-history=0
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.download-path=/tmp
|
||||
- --init.latest=pruned
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
|
||||
181
arb/nitro/arbitrum-one-nitro-archive-erigon.yml
Normal file
181
arb/nitro/arbitrum-one-nitro-archive-erigon.yml
Normal file
@@ -0,0 +1,181 @@
|
||||
---
|
||||
x-logging-defaults: &logging-defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
# Usage:
|
||||
#
|
||||
# mkdir rpc && cd rpc
|
||||
#
|
||||
# git init
|
||||
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
|
||||
# git fetch origin vibe
|
||||
# git checkout origin/vibe
|
||||
#
|
||||
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
|
||||
#
|
||||
# env
|
||||
# ...
|
||||
# IP=$(curl ipinfo.io/ip)
|
||||
# DOMAIN=${IP}.traefik.me
|
||||
# COMPOSE_FILE=base.yml:rpc.yml:arb/nitro/arbitrum-one-nitro-archive-erigon.yml
|
||||
#
|
||||
# docker compose up -d
|
||||
#
|
||||
# curl -X POST https://${IP}.traefik.me/arbitrum-one-nitro-archive-erigon \
|
||||
# -H "Content-Type: application/json" \
|
||||
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||
|
||||
services:
|
||||
arbitrum-one-archive-erigon:
|
||||
image: ${ARBITRUM_NITRO_IMAGE:-erigontech/nitro-erigon}:${ARBITRUM_ONE_NITRO_VERSION:-main-de68b93}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
# net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
memlock: -1 # Disable memory locking limits (for in-memory DBs like MDBX)
|
||||
user: root
|
||||
ports:
|
||||
- 21789:21789
|
||||
- 21789:21789/udp
|
||||
- 27891:27891
|
||||
- 27891:27891/udp
|
||||
- 38917:38917
|
||||
- 38917:38917/udp
|
||||
- 43123:43123
|
||||
- 43123:43123/udp
|
||||
- 49231:49231
|
||||
- 49231:49231/udp
|
||||
expose:
|
||||
- 8545
|
||||
- 5555
|
||||
entrypoint: [erigon]
|
||||
command:
|
||||
- --datadir=/root/.local/share/erigon
|
||||
- --http
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,erigon,web3,net,debug,trace,txpool,admin,ots
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --maxpeers=50
|
||||
- --metrics
|
||||
- --metrics.addr=0.0.0.0
|
||||
- --metrics.port=6060
|
||||
- --nat=extip:${IP}
|
||||
- --p2p.allowed-ports=43123
|
||||
- --p2p.allowed-ports=49231
|
||||
- --port=21789
|
||||
- --prune.mode=archive
|
||||
- --l2rpc="http://arbitrum-one-archive:8545"
|
||||
- --torrent.download.rate=${ARBITRUM_ONE_NITRO_ARCHIVE_ERIGON_MAX_DOWNLOAD_RATE:-1000mb}
|
||||
- --torrent.port=38917
|
||||
- --ws
|
||||
- --ws.port=8545
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${ARBITRUM_ONE_NITRO_ARCHIVE_ERIGON_DATA:-arbitrum-one-nitro-archive-erigon}:/root/.local/share/erigon
|
||||
- /slowdisk:/slowdisk
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=true
|
||||
- prometheus-scrape.port=6060
|
||||
- prometheus-scrape.path=/debug/metrics/prometheus
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.arbitrum-one-nitro-archive-erigon-stripprefix.stripprefix.prefixes=/arbitrum-one-nitro-archive-erigon
|
||||
- traefik.http.services.arbitrum-one-nitro-archive-erigon.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-one-nitro-archive-erigon.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-one-nitro-archive-erigon.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-one-nitro-archive-erigon.rule=Host(`$DOMAIN`) && (Path(`/arbitrum-one-nitro-archive-erigon`) || Path(`/arbitrum-one-nitro-archive-erigon/`))}
|
||||
- ${NO_SSL:+traefik.http.routers.arbitrum-one-nitro-archive-erigon.rule=Path(`/arbitrum-one-nitro-archive-erigon`) || Path(`/arbitrum-one-nitro-archive-erigon/`)}
|
||||
- traefik.http.routers.arbitrum-one-nitro-archive-erigon.middlewares=arbitrum-one-nitro-archive-erigon-stripprefix, ipallowlist
|
||||
- traefik.http.routers.arbitrum-one-nitro-archive-erigon.service=arbitrum-one-nitro-archive-erigon
|
||||
- traefik.http.routers.arbitrum-one-nitro-archive-erigon-node.service=arbitrum-one-nitro-archive-erigon-node
|
||||
- traefik.http.services.arbitrum-one-nitro-archive-erigon-node.loadbalancer.server.port=5555
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-one-nitro-archive-erigon-node.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-one-nitro-archive-erigon-node.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-one-nitro-archive-erigon-node.rule=Host(`$DOMAIN`) && PathPrefix(`/arbitrum-one-nitro-archive-erigon/eth`)}
|
||||
- ${NO_SSL:+traefik.http.routers.arbitrum-one-nitro-archive-erigon-node.rule=PathPrefix(`/arbitrum-one-nitro-archive-erigon/eth`)}
|
||||
- traefik.http.routers.arbitrum-one-nitro-archive-erigon-node.middlewares=arbitrum-one-nitro-archive-erigon-stripprefix, ipallowlist
|
||||
shm_size: 2gb
|
||||
|
||||
volumes:
|
||||
arbitrum-one-nitro-archive-erigon:
|
||||
|
||||
x-upstreams:
|
||||
- id: $${ID}
|
||||
labels:
|
||||
provider: $${PROVIDER}
|
||||
connection:
|
||||
generic:
|
||||
rpc:
|
||||
url: $${RPC_URL}
|
||||
ws:
|
||||
frameSize: 20Mb
|
||||
msgSize: 50Mb
|
||||
url: $${WS_URL}
|
||||
chain: arbitrum-one
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
- trace
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
- name: txpool_content # TODO: should be disabled for rollup nodes
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
# non standard erigon only
|
||||
- name: eth_getBlockReceipts
|
||||
- name: eth_protocolVersion
|
||||
- name: eth_callMany
|
||||
- name: eth_callBundle
|
||||
- name: debug_accountAt
|
||||
- name: debug_traceCallMany
|
||||
- name: erigon_getHeaderByHash
|
||||
- name: erigon_getBlockReceiptsByBlockHash
|
||||
- name: erigon_getHeaderByNumber
|
||||
- name: erigon_getLogsByHash
|
||||
- name: erigon_forks
|
||||
- name: erigon_getBlockByTimestamp
|
||||
- name: erigon_BlockNumber
|
||||
- name: erigon_getLatestLogs
|
||||
- name: ots_getInternalOperations
|
||||
- name: ots_hasCode
|
||||
- name: ots_getTransactionError
|
||||
- name: ots_traceTransaction
|
||||
- name: ots_getBlockDetails
|
||||
- name: ots_getBlockDetailsByHash
|
||||
- name: ots_getBlockTransactions
|
||||
- name: ots_searchTransactionsBefore
|
||||
- name: ots_searchTransactionsAfter
|
||||
- name: ots_getTransactionBySenderAndNonce
|
||||
- name: ots_getContractCreator
|
||||
- id: $${ID}-beacon-chain
|
||||
chain: eth-beacon-chain
|
||||
labels:
|
||||
provider: $${PROVIDER}-beacon-chain
|
||||
connection:
|
||||
generic:
|
||||
rpc:
|
||||
url: $${RPC_URL}
|
||||
...
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
arbitrum-one-archive:
|
||||
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_ONE_NITRO_VERSION:-v3.6.4-28199cd}
|
||||
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_ONE_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -50,16 +50,19 @@ services:
|
||||
command:
|
||||
- --chain.id=42161
|
||||
- --execution.caching.archive=true
|
||||
- --execution.caching.database-cache=${ARBITRUM_ONE_NITRO_ARCHIVE_LEVELDB_HASH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${ARBITRUM_ONE_NITRO_ARCHIVE_LEVELDB_HASH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.trie-clean-cache=${ARBITRUM_ONE_NITRO_ARCHIVE_LEVELDB_HASH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${ARBITRUM_ONE_NITRO_ARCHIVE_LEVELDB_HASH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.rpc.classic-redirect=http://arbitrum-one-arbnode-archive:8545
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.rpc.log-history=0
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.download-path=/tmp
|
||||
- --init.latest=archive
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
@@ -95,7 +98,7 @@ services:
|
||||
- traefik.http.routers.arbitrum-one-nitro-archive-leveldb-hash.middlewares=arbitrum-one-nitro-archive-leveldb-hash-stripprefix, ipallowlist
|
||||
|
||||
arbitrum-one-arbnode-archive:
|
||||
image: ${ARBITRUM_ARBNODE_IMAGE:-offchainlabs/arb-node}:${ARBITRUM_ONE_ARBNODE_VERSION:-v1.4.5-e97c1a4}
|
||||
image: ${ARBITRUM_ARBNODE_IMAGE:-offchainlabs/arb-node}:${ARBITRUM_ONE_ARBNODE_VERSION:-v1.4.6-551a39b3}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
arbitrum-one-archive:
|
||||
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_ONE_NITRO_VERSION:-v3.6.4-28199cd}
|
||||
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_ONE_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -50,16 +50,19 @@ services:
|
||||
command:
|
||||
- --chain.id=42161
|
||||
- --execution.caching.archive=true
|
||||
- --execution.caching.database-cache=${ARBITRUM_ONE_NITRO_ARCHIVE_PEBBLE_HASH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${ARBITRUM_ONE_NITRO_ARCHIVE_PEBBLE_HASH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.trie-clean-cache=${ARBITRUM_ONE_NITRO_ARCHIVE_PEBBLE_HASH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${ARBITRUM_ONE_NITRO_ARCHIVE_PEBBLE_HASH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.rpc.classic-redirect=http://arbitrum-one-arbnode-archive:8545
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.rpc.log-history=0
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.download-path=/tmp
|
||||
- --init.latest=archive
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
@@ -96,7 +99,7 @@ services:
|
||||
- traefik.http.routers.arbitrum-one-nitro-archive-pebble-hash.middlewares=arbitrum-one-nitro-archive-pebble-hash-stripprefix, ipallowlist
|
||||
|
||||
arbitrum-one-arbnode-archive:
|
||||
image: ${ARBITRUM_ARBNODE_IMAGE:-offchainlabs/arb-node}:${ARBITRUM_ONE_ARBNODE_VERSION:-v1.4.5-e97c1a4}
|
||||
image: ${ARBITRUM_ARBNODE_IMAGE:-offchainlabs/arb-node}:${ARBITRUM_ONE_ARBNODE_VERSION:-v1.4.6-551a39b3}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
|
||||
@@ -0,0 +1,205 @@
|
||||
---
|
||||
x-logging-defaults: &logging-defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
# Usage:
|
||||
#
|
||||
# mkdir rpc && cd rpc
|
||||
#
|
||||
# git init
|
||||
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
|
||||
# git fetch origin vibe
|
||||
# git checkout origin/vibe
|
||||
#
|
||||
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
|
||||
#
|
||||
# env
|
||||
# ...
|
||||
# IP=$(curl ipinfo.io/ip)
|
||||
# DOMAIN=${IP}.traefik.me
|
||||
# COMPOSE_FILE=base.yml:rpc.yml:arb/nitro/arbitrum-one-nitro-pruned-pebble-hash--fireeth.yml
|
||||
#
|
||||
# docker compose up -d
|
||||
#
|
||||
# curl -X POST https://${IP}.traefik.me/arbitrum-one \
|
||||
# -H "Content-Type: application/json" \
|
||||
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||
|
||||
services:
|
||||
arbitrum-one:
|
||||
image: ${ARBITRUM_FIREETH_IMAGE:-ghcr.io/streamingfast/go-ethereum}:${ARBITRUM_ONE_FIREETH_VERSION:-v2.12.4-nitro-nitro-v3.6.7-fh3.0}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
# net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
user: root
|
||||
expose:
|
||||
- 8545
|
||||
entrypoint: [sh, -c, exec fireeth start reader-node --log-to-file=false --reader-node-arguments "$*", _]
|
||||
command:
|
||||
- --chain.id=42161
|
||||
- --execution.caching.archive=${ARBITRUM_ONE_ARCHIVE_DB:-false}
|
||||
- --execution.caching.database-cache=${ARBITRUM_ONE_NITRO_PRUNED_PEBBLE_HASH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${ARBITRUM_ONE_NITRO_PRUNED_PEBBLE_HASH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.trie-clean-cache=${ARBITRUM_ONE_NITRO_PRUNED_PEBBLE_HASH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${ARBITRUM_ONE_NITRO_PRUNED_PEBBLE_HASH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.rpc.log-history=0
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.prune=full
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --persistent.chain=/root/.arbitrum/arbitrum-one
|
||||
- --persistent.db-engine=pebble
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
- --ws.port=8545
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${ARBITRUM_ONE_FIREETH_DATA:-arbitrum-one-fireeth}:/app/firehose-data
|
||||
- ${ARBITRUM_ONE_NITRO_PRUNED_PEBBLE_HASH_DATA:-arbitrum-one-nitro-pruned-pebble-hash}:/root/.arbitrum
|
||||
- ./tmp/arbitrum-one:/tmp
|
||||
- /slowdisk:/slowdisk
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=true
|
||||
- prometheus-scrape.port=6070
|
||||
- prometheus-scrape.path=/debug/metrics/prometheus
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.arbitrum-one-nitro-pruned-pebble-hash-stripprefix.stripprefix.prefixes=/arbitrum-one
|
||||
- traefik.http.services.arbitrum-one-nitro-pruned-pebble-hash.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash.rule=Host(`$DOMAIN`) && (Path(`/arbitrum-one`) || Path(`/arbitrum-one/`))}
|
||||
- ${NO_SSL:+traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash.rule=Path(`/arbitrum-one`) || Path(`/arbitrum-one/`)}
|
||||
- traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash.middlewares=arbitrum-one-nitro-pruned-pebble-hash-stripprefix, ipallowlist
|
||||
|
||||
arbitrum-one-firehose:
|
||||
image: ${ARBITRUM_FIREETH_IMAGE:-ghcr.io/streamingfast/go-ethereum}:${ARBITRUM_ONE_FIREETH_VERSION:-v2.12.4-nitro-nitro-v3.6.7-fh3.0}
|
||||
expose:
|
||||
- 10015
|
||||
- 10014
|
||||
environment:
|
||||
- ${ARBITRUM_ONE_FIREETH_BLOCKS_STORE:-/app/firehose-data/storage/merged-blocks}
|
||||
entrypoint: [sh, -c, exec fireeth --config-file="" --log-to-file=false start firehose index-builder relayer merger $@, _]
|
||||
command:
|
||||
- --firehose-rate-limit-bucket-fill-rate=${ARBITRUM_ONE_FIREHOSE_RATE_LIMIT_BUCKET_FILL_RATE:-1s}
|
||||
- --firehose-rate-limit-bucket-size=${ARBITRUM_ONE_FIREHOSE_RATE_LIMIT_BUCKET_SIZE:-200}
|
||||
- --log-to-file=false
|
||||
- --relayer-source=arbitrum-one:10010
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- arbitrum-one
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${ARBITRUM_ONE_FIREETH_DATA:-arbitrum-one-fireeth}:/app/firehose-data
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=false
|
||||
- traefik.enable=true
|
||||
- traefik.http.services.arbitrum-one-nitro-pruned-pebble-hash-firehose.loadbalancer.server.scheme=h2c
|
||||
- traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash-firehose.service=arbitrum-one-nitro-pruned-pebble-hash-firehose
|
||||
- traefik.http.services.arbitrum-one-nitro-pruned-pebble-hash-firehose.loadbalancer.server.port=10015
|
||||
- traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash-firehose.entrypoints=grpc
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash-firehose.tls.certresolver=myresolver}
|
||||
- traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash-firehose.rule=Host(`arbitrum-one-firehose.${DOMAIN}`)
|
||||
- traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash-firehose.middlewares=ipallowlist
|
||||
|
||||
arbitrum-one-events:
|
||||
image: ${ARBITRUM_FIREETH_IMAGE:-ghcr.io/streamingfast/go-ethereum}:${ARBITRUM_ONE_FIREETH_VERSION:-v2.12.4-nitro-nitro-v3.6.7-fh3.0}
|
||||
expose:
|
||||
- 10016
|
||||
entrypoint: [sh, -c, exec fireeth --config-file="" --log-to-file=false start substreams-tier1 substreams-tier2 $@, _]
|
||||
command:
|
||||
- --common-live-blocks-addr=arbitrum-one-firehose:10014
|
||||
- --log-to-file=false
|
||||
- --substreams-block-execution-timeout=${ARBITRUM_ONE_SUBSTREAMS_BLOCK_EXECUTION_TIMEOUT:-3m0s}
|
||||
- --substreams-rpc-endpoints=${ARBITRUM_ONE_EXECUTION_ARCHIVE_RPC}
|
||||
- --substreams-tier1-max-subrequests=${ARBITRUM_ONE_SUBSTREAMS_TIER1_MAX_SUBREQUESTS:-4}
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- arbitrum-one
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${ARBITRUM_ONE_FIREETH_DATA:-arbitrum-one-fireeth}:/app/firehose-data
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.services.arbitrum-one-nitro-pruned-pebble-hash-events.loadbalancer.server.scheme=h2c
|
||||
- traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash-events.service=arbitrum-one-nitro-pruned-pebble-hash-events
|
||||
- traefik.http.services.arbitrum-one-nitro-pruned-pebble-hash-events.loadbalancer.server.port=10016
|
||||
- traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash-events.entrypoints=grpc
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash-events.tls.certresolver=myresolver}
|
||||
- traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash-events.rule=Host(`arbitrum-one-events.${DOMAIN}`)
|
||||
- traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash-events.middlewares=ipallowlist
|
||||
|
||||
volumes:
|
||||
arbitrum-one-nitro-pruned-pebble-hash:
|
||||
arbitrum-one-nitro-pruned-pebble-hash_fireeth:
|
||||
|
||||
x-upstreams:
|
||||
- id: $${ID}
|
||||
labels:
|
||||
provider: $${PROVIDER}
|
||||
connection:
|
||||
generic:
|
||||
rpc:
|
||||
url: $${RPC_URL}
|
||||
ws:
|
||||
frameSize: 20Mb
|
||||
msgSize: 50Mb
|
||||
url: $${WS_URL}
|
||||
chain: arbitrum
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
- name: txpool_content # TODO: should be disabled for rollup nodes
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
...
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
arbitrum-one:
|
||||
image: ${ARBITRUM_FIREETH_IMAGE:-ghcr.io/streamingfast/firehose-ethereum}:${ARBITRUM_ONE_FIREETH_VERSION:-v2.11.7-nitro-nitro-v3.5.5-fh3.0}
|
||||
image: ${ARBITRUM_FIREETH_IMAGE:-ghcr.io/streamingfast/go-ethereum}:${ARBITRUM_ONE_FIREETH_VERSION:-v2.12.4-nitro-nitro-v3.6.7-fh3.0}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -50,16 +50,19 @@ services:
|
||||
entrypoint: [sh, -c, exec fireeth start reader-node --log-to-file=false --reader-node-arguments "$*", _]
|
||||
command:
|
||||
- --chain.id=42161
|
||||
- --execution.caching.archive=false
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=${ARBITRUM_ONE_ARCHIVE_DB:-false}
|
||||
- --execution.caching.database-cache=${ARBITRUM_ONE_NITRO_PRUNED_PEBBLE_HASH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${ARBITRUM_ONE_NITRO_PRUNED_PEBBLE_HASH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.trie-clean-cache=${ARBITRUM_ONE_NITRO_PRUNED_PEBBLE_HASH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${ARBITRUM_ONE_NITRO_PRUNED_PEBBLE_HASH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.rpc.log-history=0
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.download-path=/tmp
|
||||
- --init.latest=pruned
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
@@ -97,7 +100,7 @@ services:
|
||||
- traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash.middlewares=arbitrum-one-nitro-pruned-pebble-hash-stripprefix, ipallowlist
|
||||
|
||||
arbitrum-one-firehose:
|
||||
image: ${ARBITRUM_FIREETH_IMAGE:-ghcr.io/streamingfast/firehose-ethereum}:${ARBITRUM_ONE_FIREETH_VERSION:-v2.11.7-nitro-nitro-v3.5.5-fh3.0}
|
||||
image: ${ARBITRUM_FIREETH_IMAGE:-ghcr.io/streamingfast/go-ethereum}:${ARBITRUM_ONE_FIREETH_VERSION:-v2.12.4-nitro-nitro-v3.6.7-fh3.0}
|
||||
expose:
|
||||
- 10015
|
||||
- 10014
|
||||
@@ -129,7 +132,7 @@ services:
|
||||
- traefik.http.routers.arbitrum-one-nitro-pruned-pebble-hash-firehose.middlewares=ipallowlist
|
||||
|
||||
arbitrum-one-events:
|
||||
image: ${ARBITRUM_FIREETH_IMAGE:-ghcr.io/streamingfast/firehose-ethereum}:${ARBITRUM_ONE_FIREETH_VERSION:-v2.11.7-nitro-nitro-v3.5.5-fh3.0}
|
||||
image: ${ARBITRUM_FIREETH_IMAGE:-ghcr.io/streamingfast/go-ethereum}:${ARBITRUM_ONE_FIREETH_VERSION:-v2.12.4-nitro-nitro-v3.6.7-fh3.0}
|
||||
expose:
|
||||
- 10016
|
||||
entrypoint: [sh, -c, exec fireeth --config-file="" --log-to-file=false start substreams-tier1 substreams-tier2 $@, _]
|
||||
|
||||
@@ -20,7 +20,7 @@ x-logging-defaults: &logging-defaults
|
||||
# ...
|
||||
# IP=$(curl ipinfo.io/ip)
|
||||
# DOMAIN=${IP}.traefik.me
|
||||
# COMPOSE_FILE=base.yml:rpc.yml:arb/nitro/arbitrum-one-nitro-pruned-pebble-hash--benchmark.yml
|
||||
# COMPOSE_FILE=base.yml:rpc.yml:arb/nitro/arbitrum-one-nitro-pruned-pebble-hash.yml
|
||||
#
|
||||
# docker compose up -d
|
||||
#
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
arbitrum-one:
|
||||
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_ONE_NITRO_VERSION:-v3.6.4-28199cd}
|
||||
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_ONE_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -49,16 +49,20 @@ services:
|
||||
- 8545
|
||||
command:
|
||||
- --chain.id=42161
|
||||
- --execution.caching.archive=false
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=${ARBITRUM_ONE_ARCHIVE_DB:-false}
|
||||
- --execution.caching.database-cache=${ARBITRUM_ONE_NITRO_PRUNED_PEBBLE_HASH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${ARBITRUM_ONE_NITRO_PRUNED_PEBBLE_HASH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.trie-clean-cache=${ARBITRUM_ONE_NITRO_PRUNED_PEBBLE_HASH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${ARBITRUM_ONE_NITRO_PRUNED_PEBBLE_HASH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.rpc.log-history=0
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.download-path=/tmp
|
||||
- --init.latest=pruned
|
||||
- --init.prune=full
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
@@ -85,26 +89,6 @@ services:
|
||||
- prometheus-scrape.enabled=true
|
||||
- prometheus-scrape.port=6070
|
||||
- prometheus-scrape.path=/debug/metrics/prometheus
|
||||
|
||||
arbitrum-one-benchmark:
|
||||
build:
|
||||
context: ./benchmark-proxy
|
||||
dockerfile: Dockerfile
|
||||
expose:
|
||||
- '8545'
|
||||
environment:
|
||||
- ENABLE_DETAILED_LOGS=${BENCHMARK_PROXY_VERBOSE:-false}
|
||||
- LISTEN_ADDR=:8545
|
||||
- PRIMARY_BACKEND=http://arbitrum-one:8545
|
||||
- SUMMARY_INTERVAL=60
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- arbitrum-one
|
||||
networks:
|
||||
- chains
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=false
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.arbitrum-one-nitro-pruned-pebble-hash-stripprefix.stripprefix.prefixes=/arbitrum-one
|
||||
- traefik.http.services.arbitrum-one-nitro-pruned-pebble-hash.loadbalancer.server.port=8545
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
arbitrum-one:
|
||||
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_ONE_NITRO_VERSION:-v3.6.4-28199cd}
|
||||
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_ONE_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -49,16 +49,19 @@ services:
|
||||
- 8545
|
||||
command:
|
||||
- --chain.id=42161
|
||||
- --execution.caching.archive=false
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=${ARBITRUM_ONE_ARCHIVE_DB:-false}
|
||||
- --execution.caching.database-cache=${ARBITRUM_ONE_NITRO_PRUNED_PEBBLE_HASH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${ARBITRUM_ONE_NITRO_PRUNED_PEBBLE_HASH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.trie-clean-cache=${ARBITRUM_ONE_NITRO_PRUNED_PEBBLE_HASH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${ARBITRUM_ONE_NITRO_PRUNED_PEBBLE_HASH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.rpc.log-history=0
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.download-path=/tmp
|
||||
- --init.latest=pruned
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
arbitrum-sepolia-archive:
|
||||
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_SEPOLIA_NITRO_VERSION:-v3.6.4-28199cd}
|
||||
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_SEPOLIA_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -50,15 +50,18 @@ services:
|
||||
command:
|
||||
- --chain.id=421614
|
||||
- --execution.caching.archive=true
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.database-cache=${ARBITRUM_SEPOLIA_NITRO_ARCHIVE_PEBBLE_HASH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${ARBITRUM_SEPOLIA_NITRO_ARCHIVE_PEBBLE_HASH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.trie-clean-cache=${ARBITRUM_SEPOLIA_NITRO_ARCHIVE_PEBBLE_HASH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${ARBITRUM_SEPOLIA_NITRO_ARCHIVE_PEBBLE_HASH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.rpc.log-history=0
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.download-path=/tmp
|
||||
- --init.latest=archive
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
|
||||
141
arb/nitro/arbitrum-sepolia-nitro-pruned-pebble-hash.prune.yml
Normal file
141
arb/nitro/arbitrum-sepolia-nitro-pruned-pebble-hash.prune.yml
Normal file
@@ -0,0 +1,141 @@
|
||||
---
|
||||
x-logging-defaults: &logging-defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
# Usage:
|
||||
#
|
||||
# mkdir rpc && cd rpc
|
||||
#
|
||||
# git init
|
||||
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
|
||||
# git fetch origin vibe
|
||||
# git checkout origin/vibe
|
||||
#
|
||||
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
|
||||
#
|
||||
# env
|
||||
# ...
|
||||
# IP=$(curl ipinfo.io/ip)
|
||||
# DOMAIN=${IP}.traefik.me
|
||||
# COMPOSE_FILE=base.yml:rpc.yml:arb/nitro/arbitrum-sepolia-nitro-pruned-pebble-hash.yml
|
||||
#
|
||||
# docker compose up -d
|
||||
#
|
||||
# curl -X POST https://${IP}.traefik.me/arbitrum-sepolia \
|
||||
# -H "Content-Type: application/json" \
|
||||
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||
|
||||
services:
|
||||
arbitrum-sepolia:
|
||||
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_SEPOLIA_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
# net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
user: root
|
||||
expose:
|
||||
- 8545
|
||||
command:
|
||||
- --chain.id=421614
|
||||
- --execution.caching.archive=${ARBITRUM_SEPOLIA_ARCHIVE_DB:-false}
|
||||
- --execution.caching.database-cache=${ARBITRUM_SEPOLIA_NITRO_PRUNED_PEBBLE_HASH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${ARBITRUM_SEPOLIA_NITRO_PRUNED_PEBBLE_HASH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.trie-clean-cache=${ARBITRUM_SEPOLIA_NITRO_PRUNED_PEBBLE_HASH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${ARBITRUM_SEPOLIA_NITRO_PRUNED_PEBBLE_HASH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.rpc.log-history=0
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.prune=full
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
- --parent-chain.connection.url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --persistent.chain=/root/.arbitrum/arbitrum-sepolia
|
||||
- --persistent.db-engine=pebble
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
- --ws.port=8545
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${ARBITRUM_SEPOLIA_NITRO_PRUNED_PEBBLE_HASH_DATA:-arbitrum-sepolia-nitro-pruned-pebble-hash}:/root/.arbitrum
|
||||
- ./tmp/arbitrum-sepolia:/tmp
|
||||
- /slowdisk:/slowdisk
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=true
|
||||
- prometheus-scrape.port=6070
|
||||
- prometheus-scrape.path=/debug/metrics/prometheus
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.arbitrum-sepolia-nitro-pruned-pebble-hash-stripprefix.stripprefix.prefixes=/arbitrum-sepolia
|
||||
- traefik.http.services.arbitrum-sepolia-nitro-pruned-pebble-hash.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-sepolia-nitro-pruned-pebble-hash.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-sepolia-nitro-pruned-pebble-hash.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.arbitrum-sepolia-nitro-pruned-pebble-hash.rule=Host(`$DOMAIN`) && (Path(`/arbitrum-sepolia`) || Path(`/arbitrum-sepolia/`))}
|
||||
- ${NO_SSL:+traefik.http.routers.arbitrum-sepolia-nitro-pruned-pebble-hash.rule=Path(`/arbitrum-sepolia`) || Path(`/arbitrum-sepolia/`)}
|
||||
- traefik.http.routers.arbitrum-sepolia-nitro-pruned-pebble-hash.middlewares=arbitrum-sepolia-nitro-pruned-pebble-hash-stripprefix, ipallowlist
|
||||
|
||||
volumes:
|
||||
arbitrum-sepolia-nitro-pruned-pebble-hash:
|
||||
|
||||
x-upstreams:
|
||||
- id: $${ID}
|
||||
labels:
|
||||
provider: $${PROVIDER}
|
||||
connection:
|
||||
generic:
|
||||
rpc:
|
||||
url: $${RPC_URL}
|
||||
ws:
|
||||
frameSize: 20Mb
|
||||
msgSize: 50Mb
|
||||
url: $${WS_URL}
|
||||
chain: arbitrum-sepolia
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
- name: txpool_content # TODO: should be disabled for rollup nodes
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
...
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
arbitrum-sepolia:
|
||||
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_SEPOLIA_NITRO_VERSION:-v3.6.4-28199cd}
|
||||
image: ${ARBITRUM_NITRO_IMAGE:-offchainlabs/nitro-node}:${ARBITRUM_SEPOLIA_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -49,16 +49,19 @@ services:
|
||||
- 8545
|
||||
command:
|
||||
- --chain.id=421614
|
||||
- --execution.caching.archive=false
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.caching.archive=${ARBITRUM_SEPOLIA_ARCHIVE_DB:-false}
|
||||
- --execution.caching.database-cache=${ARBITRUM_SEPOLIA_NITRO_PRUNED_PEBBLE_HASH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${ARBITRUM_SEPOLIA_NITRO_PRUNED_PEBBLE_HASH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.trie-clean-cache=${ARBITRUM_SEPOLIA_NITRO_PRUNED_PEBBLE_HASH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${ARBITRUM_SEPOLIA_NITRO_PRUNED_PEBBLE_HASH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.rpc.log-history=0
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.download-path=/tmp
|
||||
- --init.latest=pruned
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
connext-sepolia-archive:
|
||||
image: ${CONNEXT_NITRO_IMAGE:-offchainlabs/nitro-node}:${CONNEXT_SEPOLIA_NITRO_VERSION:-v3.6.4-28199cd}
|
||||
image: ${CONNEXT_NITRO_IMAGE:-offchainlabs/nitro-node}:${CONNEXT_SEPOLIA_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -50,19 +50,24 @@ services:
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.archive=true
|
||||
- --execution.caching.database-cache=${CONNEXT_SEPOLIA_NITRO_ARCHIVE_LEVELDB_HASH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${CONNEXT_SEPOLIA_NITRO_ARCHIVE_LEVELDB_HASH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.trie-clean-cache=${CONNEXT_SEPOLIA_NITRO_ARCHIVE_LEVELDB_HASH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${CONNEXT_SEPOLIA_NITRO_ARCHIVE_LEVELDB_HASH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.forwarding-target=https://rpc.connext-sepolia.gelato.digital
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.rpc.log-history=0
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.download-path=/tmp
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.da-provider.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
connext-sepolia:
|
||||
image: ${CONNEXT_NITRO_IMAGE:-offchainlabs/nitro-node}:${CONNEXT_SEPOLIA_NITRO_VERSION:-v3.6.4-28199cd}
|
||||
image: ${CONNEXT_NITRO_IMAGE:-offchainlabs/nitro-node}:${CONNEXT_SEPOLIA_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -49,21 +49,25 @@ services:
|
||||
- 8545
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.archive=false
|
||||
- --execution.caching.archive=${CONNEXT_SEPOLIA_ARCHIVE_DB:-false}
|
||||
- --execution.caching.database-cache=${CONNEXT_SEPOLIA_NITRO_PRUNED_PEBBLE_PATH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${CONNEXT_SEPOLIA_NITRO_PRUNED_PEBBLE_PATH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.state-scheme=path
|
||||
- --execution.caching.trie-clean-cache=${CONNEXT_SEPOLIA_NITRO_PRUNED_PEBBLE_PATH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${CONNEXT_SEPOLIA_NITRO_PRUNED_PEBBLE_PATH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.forwarding-target=https://rpc.connext-sepolia.gelato.digital
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.download-path=/tmp
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.da-provider.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
everclear-mainnet-archive:
|
||||
image: ${EVERCLEAR_NITRO_IMAGE:-offchainlabs/nitro-node}:${EVERCLEAR_MAINNET_NITRO_VERSION:-v3.6.4-28199cd}
|
||||
image: ${EVERCLEAR_NITRO_IMAGE:-offchainlabs/nitro-node}:${EVERCLEAR_MAINNET_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -50,19 +50,24 @@ services:
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.archive=true
|
||||
- --execution.caching.database-cache=${EVERCLEAR_MAINNET_NITRO_ARCHIVE_LEVELDB_HASH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${EVERCLEAR_MAINNET_NITRO_ARCHIVE_LEVELDB_HASH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.trie-clean-cache=${EVERCLEAR_MAINNET_NITRO_ARCHIVE_LEVELDB_HASH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${EVERCLEAR_MAINNET_NITRO_ARCHIVE_LEVELDB_HASH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.forwarding-target=https://rpc.everclear.raas.gelato.cloud
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.rpc.log-history=0
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.download-path=/tmp
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.da-provider.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
everclear-mainnet:
|
||||
image: ${EVERCLEAR_NITRO_IMAGE:-offchainlabs/nitro-node}:${EVERCLEAR_MAINNET_NITRO_VERSION:-v3.6.4-28199cd}
|
||||
image: ${EVERCLEAR_NITRO_IMAGE:-offchainlabs/nitro-node}:${EVERCLEAR_MAINNET_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -49,21 +49,25 @@ services:
|
||||
- 8545
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.archive=false
|
||||
- --execution.caching.archive=${EVERCLEAR_MAINNET_ARCHIVE_DB:-false}
|
||||
- --execution.caching.database-cache=${EVERCLEAR_MAINNET_NITRO_PRUNED_PEBBLE_PATH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${EVERCLEAR_MAINNET_NITRO_PRUNED_PEBBLE_PATH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.state-scheme=path
|
||||
- --execution.caching.trie-clean-cache=${EVERCLEAR_MAINNET_NITRO_PRUNED_PEBBLE_PATH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${EVERCLEAR_MAINNET_NITRO_PRUNED_PEBBLE_PATH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.forwarding-target=https://rpc.everclear.raas.gelato.cloud
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.download-path=/tmp
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.da-provider.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
opencampuscodex-sepolia-archive:
|
||||
image: ${OPENCAMPUSCODEX_NITRO_IMAGE:-offchainlabs/nitro-node}:${OPENCAMPUSCODEX_SEPOLIA_NITRO_VERSION:-v3.6.4-28199cd}
|
||||
image: ${OPENCAMPUSCODEX_NITRO_IMAGE:-offchainlabs/nitro-node}:${OPENCAMPUSCODEX_SEPOLIA_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -50,19 +50,24 @@ services:
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.archive=true
|
||||
- --execution.caching.database-cache=${OPENCAMPUSCODEX_SEPOLIA_NITRO_ARCHIVE_LEVELDB_HASH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${OPENCAMPUSCODEX_SEPOLIA_NITRO_ARCHIVE_LEVELDB_HASH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.trie-clean-cache=${OPENCAMPUSCODEX_SEPOLIA_NITRO_ARCHIVE_LEVELDB_HASH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${OPENCAMPUSCODEX_SEPOLIA_NITRO_ARCHIVE_LEVELDB_HASH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.forwarding-target=https://rpc.open-campus-codex.gelato.digital
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.rpc.log-history=0
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.download-path=/tmp
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.da-provider.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.parent-chain-node-url=${ARBITRUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
opencampuscodex-sepolia:
|
||||
image: ${OPENCAMPUSCODEX_NITRO_IMAGE:-offchainlabs/nitro-node}:${OPENCAMPUSCODEX_SEPOLIA_NITRO_VERSION:-v3.6.4-28199cd}
|
||||
image: ${OPENCAMPUSCODEX_NITRO_IMAGE:-offchainlabs/nitro-node}:${OPENCAMPUSCODEX_SEPOLIA_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -49,21 +49,25 @@ services:
|
||||
- 8545
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.archive=false
|
||||
- --execution.caching.archive=${OPENCAMPUSCODEX_SEPOLIA_ARCHIVE_DB:-false}
|
||||
- --execution.caching.database-cache=${OPENCAMPUSCODEX_SEPOLIA_NITRO_PRUNED_PEBBLE_PATH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${OPENCAMPUSCODEX_SEPOLIA_NITRO_PRUNED_PEBBLE_PATH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.state-scheme=path
|
||||
- --execution.caching.trie-clean-cache=${OPENCAMPUSCODEX_SEPOLIA_NITRO_PRUNED_PEBBLE_PATH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${OPENCAMPUSCODEX_SEPOLIA_NITRO_PRUNED_PEBBLE_PATH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.forwarding-target=https://rpc.open-campus-codex.gelato.digital
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.download-path=/tmp
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.da-provider.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.parent-chain-node-url=${ARBITRUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
playblock-mainnet-archive:
|
||||
image: ${PLAYBLOCK_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLAYBLOCK_MAINNET_NITRO_VERSION:-v3.6.4-28199cd}
|
||||
image: ${PLAYBLOCK_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLAYBLOCK_MAINNET_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -50,19 +50,24 @@ services:
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.archive=true
|
||||
- --execution.caching.database-cache=${PLAYBLOCK_MAINNET_NITRO_ARCHIVE_LEVELDB_HASH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${PLAYBLOCK_MAINNET_NITRO_ARCHIVE_LEVELDB_HASH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.trie-clean-cache=${PLAYBLOCK_MAINNET_NITRO_ARCHIVE_LEVELDB_HASH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${PLAYBLOCK_MAINNET_NITRO_ARCHIVE_LEVELDB_HASH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.forwarding-target=https://rpc.playblock.io
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.rpc.log-history=0
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.download-path=/tmp
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.da-provider.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.parent-chain-node-url=${ARBITRUM_NOVA_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
playblock-mainnet:
|
||||
image: ${PLAYBLOCK_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLAYBLOCK_MAINNET_NITRO_VERSION:-v3.6.4-28199cd}
|
||||
image: ${PLAYBLOCK_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLAYBLOCK_MAINNET_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -49,21 +49,25 @@ services:
|
||||
- 8545
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.archive=false
|
||||
- --execution.caching.archive=${PLAYBLOCK_MAINNET_ARCHIVE_DB:-false}
|
||||
- --execution.caching.database-cache=${PLAYBLOCK_MAINNET_NITRO_PRUNED_PEBBLE_PATH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${PLAYBLOCK_MAINNET_NITRO_PRUNED_PEBBLE_PATH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.state-scheme=path
|
||||
- --execution.caching.trie-clean-cache=${PLAYBLOCK_MAINNET_NITRO_PRUNED_PEBBLE_PATH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${PLAYBLOCK_MAINNET_NITRO_PRUNED_PEBBLE_PATH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.forwarding-target=https://rpc.playblock.io
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.download-path=/tmp
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.da-provider.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.parent-chain-node-url=${ARBITRUM_NOVA_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
|
||||
147
arb/nitro/plume-mainnet-nitro-archive-leveldb-hash.yml
Normal file
147
arb/nitro/plume-mainnet-nitro-archive-leveldb-hash.yml
Normal file
@@ -0,0 +1,147 @@
|
||||
---
|
||||
x-logging-defaults: &logging-defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
# Usage:
|
||||
#
|
||||
# mkdir rpc && cd rpc
|
||||
#
|
||||
# git init
|
||||
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
|
||||
# git fetch origin vibe
|
||||
# git checkout origin/vibe
|
||||
#
|
||||
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
|
||||
#
|
||||
# env
|
||||
# ...
|
||||
# IP=$(curl ipinfo.io/ip)
|
||||
# DOMAIN=${IP}.traefik.me
|
||||
# COMPOSE_FILE=base.yml:rpc.yml:arb/nitro/plume-mainnet-nitro-archive-leveldb-hash.yml
|
||||
#
|
||||
# docker compose up -d
|
||||
#
|
||||
# curl -X POST https://${IP}.traefik.me/plume-mainnet-archive \
|
||||
# -H "Content-Type: application/json" \
|
||||
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||
|
||||
services:
|
||||
plume-mainnet-archive:
|
||||
image: ${PLUME_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLUME_MAINNET_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
# net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
user: root
|
||||
expose:
|
||||
- 8545
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.archive=true
|
||||
- --execution.caching.database-cache=${PLUME_MAINNET_NITRO_ARCHIVE_LEVELDB_HASH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${PLUME_MAINNET_NITRO_ARCHIVE_LEVELDB_HASH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.trie-clean-cache=${PLUME_MAINNET_NITRO_ARCHIVE_LEVELDB_HASH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${PLUME_MAINNET_NITRO_ARCHIVE_LEVELDB_HASH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.forwarding-target=https://rpc.plume.org
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.rpc.log-history=0
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.da-provider.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
- --node.data-availability.rest-aggregator.urls=https://das-plume-mainnet-1.t.conduit.xyz
|
||||
- --node.data-availability.sequencer-inbox-address=0x85eC1b9138a8b9659A51e2b51bb0861901040b59
|
||||
- --node.feed.input.url=wss://relay-plume-mainnet-1.t.conduit.xyz
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --persistent.chain=/root/.arbitrum/plume-mainnet-archive
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
- --ws.port=8545
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${PLUME_MAINNET_NITRO_ARCHIVE_LEVELDB_HASH_DATA:-plume-mainnet-nitro-archive-leveldb-hash}:/root/.arbitrum
|
||||
- ./arb/plume/mainnet:/config
|
||||
- /slowdisk:/slowdisk
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=true
|
||||
- prometheus-scrape.port=6070
|
||||
- prometheus-scrape.path=/debug/metrics/prometheus
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.plume-mainnet-nitro-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/plume-mainnet-archive
|
||||
- traefik.http.services.plume-mainnet-nitro-archive-leveldb-hash.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.plume-mainnet-nitro-archive-leveldb-hash.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.plume-mainnet-nitro-archive-leveldb-hash.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.plume-mainnet-nitro-archive-leveldb-hash.rule=Host(`$DOMAIN`) && (Path(`/plume-mainnet-archive`) || Path(`/plume-mainnet-archive/`))}
|
||||
- ${NO_SSL:+traefik.http.routers.plume-mainnet-nitro-archive-leveldb-hash.rule=Path(`/plume-mainnet-archive`) || Path(`/plume-mainnet-archive/`)}
|
||||
- traefik.http.routers.plume-mainnet-nitro-archive-leveldb-hash.middlewares=plume-mainnet-nitro-archive-leveldb-hash-stripprefix, ipallowlist
|
||||
|
||||
volumes:
|
||||
plume-mainnet-nitro-archive-leveldb-hash:
|
||||
|
||||
x-upstreams:
|
||||
- id: $${ID}
|
||||
labels:
|
||||
provider: $${PROVIDER}
|
||||
connection:
|
||||
generic:
|
||||
rpc:
|
||||
url: $${RPC_URL}
|
||||
ws:
|
||||
frameSize: 20Mb
|
||||
msgSize: 50Mb
|
||||
url: $${WS_URL}
|
||||
chain: plume
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
- name: txpool_content # TODO: should be disabled for rollup nodes
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
...
|
||||
150
arb/nitro/plume-mainnet-nitro-pruned-pebble-path.yml
Normal file
150
arb/nitro/plume-mainnet-nitro-pruned-pebble-path.yml
Normal file
@@ -0,0 +1,150 @@
|
||||
---
|
||||
x-logging-defaults: &logging-defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
# Usage:
|
||||
#
|
||||
# mkdir rpc && cd rpc
|
||||
#
|
||||
# git init
|
||||
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
|
||||
# git fetch origin vibe
|
||||
# git checkout origin/vibe
|
||||
#
|
||||
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
|
||||
#
|
||||
# env
|
||||
# ...
|
||||
# IP=$(curl ipinfo.io/ip)
|
||||
# DOMAIN=${IP}.traefik.me
|
||||
# COMPOSE_FILE=base.yml:rpc.yml:arb/nitro/plume-mainnet-nitro-pruned-pebble-path.yml
|
||||
#
|
||||
# docker compose up -d
|
||||
#
|
||||
# curl -X POST https://${IP}.traefik.me/plume-mainnet \
|
||||
# -H "Content-Type: application/json" \
|
||||
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||
|
||||
services:
|
||||
plume-mainnet:
|
||||
image: ${PLUME_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLUME_MAINNET_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
# net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
user: root
|
||||
expose:
|
||||
- 8545
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.archive=${PLUME_MAINNET_ARCHIVE_DB:-false}
|
||||
- --execution.caching.database-cache=${PLUME_MAINNET_NITRO_PRUNED_PEBBLE_PATH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${PLUME_MAINNET_NITRO_PRUNED_PEBBLE_PATH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.state-scheme=path
|
||||
- --execution.caching.trie-clean-cache=${PLUME_MAINNET_NITRO_PRUNED_PEBBLE_PATH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${PLUME_MAINNET_NITRO_PRUNED_PEBBLE_PATH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.forwarding-target=https://rpc.plume.org
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.da-provider.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
- --node.data-availability.rest-aggregator.urls=https://das-plume-mainnet-1.t.conduit.xyz
|
||||
- --node.data-availability.sequencer-inbox-address=0x85eC1b9138a8b9659A51e2b51bb0861901040b59
|
||||
- --node.feed.input.url=wss://relay-plume-mainnet-1.t.conduit.xyz
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_MAINNET_BEACON_REST}
|
||||
- --parent-chain.connection.url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --persistent.chain=/root/.arbitrum/plume-mainnet
|
||||
- --persistent.db-engine=pebble
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
- --ws.port=8545
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${PLUME_MAINNET_NITRO_PRUNED_PEBBLE_PATH_DATA:-plume-mainnet-nitro-pruned-pebble-path}:/root/.arbitrum
|
||||
- ./arb/plume/mainnet:/config
|
||||
- /slowdisk:/slowdisk
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=true
|
||||
- prometheus-scrape.port=6070
|
||||
- prometheus-scrape.path=/debug/metrics/prometheus
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.plume-mainnet-nitro-pruned-pebble-path-stripprefix.stripprefix.prefixes=/plume-mainnet
|
||||
- traefik.http.services.plume-mainnet-nitro-pruned-pebble-path.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.plume-mainnet-nitro-pruned-pebble-path.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.plume-mainnet-nitro-pruned-pebble-path.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.plume-mainnet-nitro-pruned-pebble-path.rule=Host(`$DOMAIN`) && (Path(`/plume-mainnet`) || Path(`/plume-mainnet/`))}
|
||||
- ${NO_SSL:+traefik.http.routers.plume-mainnet-nitro-pruned-pebble-path.rule=Path(`/plume-mainnet`) || Path(`/plume-mainnet/`)}
|
||||
- traefik.http.routers.plume-mainnet-nitro-pruned-pebble-path.middlewares=plume-mainnet-nitro-pruned-pebble-path-stripprefix, ipallowlist
|
||||
|
||||
volumes:
|
||||
plume-mainnet-nitro-pruned-pebble-path:
|
||||
|
||||
x-upstreams:
|
||||
- id: $${ID}
|
||||
labels:
|
||||
provider: $${PROVIDER}
|
||||
connection:
|
||||
generic:
|
||||
rpc:
|
||||
url: $${RPC_URL}
|
||||
ws:
|
||||
frameSize: 20Mb
|
||||
msgSize: 50Mb
|
||||
url: $${WS_URL}
|
||||
chain: plume
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
methods:
|
||||
disabled:
|
||||
# not compatible with path state scheme
|
||||
- name: debug_traceBlockByHash
|
||||
enabled:
|
||||
- name: txpool_content # TODO: should be disabled for rollup nodes
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
...
|
||||
147
arb/nitro/plume-testnet-nitro-archive-leveldb-hash.yml
Normal file
147
arb/nitro/plume-testnet-nitro-archive-leveldb-hash.yml
Normal file
@@ -0,0 +1,147 @@
|
||||
---
|
||||
x-logging-defaults: &logging-defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
# Usage:
|
||||
#
|
||||
# mkdir rpc && cd rpc
|
||||
#
|
||||
# git init
|
||||
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
|
||||
# git fetch origin vibe
|
||||
# git checkout origin/vibe
|
||||
#
|
||||
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
|
||||
#
|
||||
# env
|
||||
# ...
|
||||
# IP=$(curl ipinfo.io/ip)
|
||||
# DOMAIN=${IP}.traefik.me
|
||||
# COMPOSE_FILE=base.yml:rpc.yml:arb/nitro/plume-testnet-nitro-archive-leveldb-hash.yml
|
||||
#
|
||||
# docker compose up -d
|
||||
#
|
||||
# curl -X POST https://${IP}.traefik.me/plume-testnet-archive \
|
||||
# -H "Content-Type: application/json" \
|
||||
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||
|
||||
services:
|
||||
plume-testnet-archive:
|
||||
image: ${PLUME_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLUME_TESTNET_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
# net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
user: root
|
||||
expose:
|
||||
- 8545
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.archive=true
|
||||
- --execution.caching.database-cache=${PLUME_TESTNET_NITRO_ARCHIVE_LEVELDB_HASH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${PLUME_TESTNET_NITRO_ARCHIVE_LEVELDB_HASH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.trie-clean-cache=${PLUME_TESTNET_NITRO_ARCHIVE_LEVELDB_HASH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${PLUME_TESTNET_NITRO_ARCHIVE_LEVELDB_HASH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.forwarding-target=https://testnet-rpc.plume.org
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.rpc.log-history=0
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.da-provider.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
- --node.data-availability.rest-aggregator.urls=https://das-plume-testnet-1.t.conduit.xyz
|
||||
- --node.data-availability.sequencer-inbox-address=0xbCa991f1831bE1F1E7e5576d5F84A645e70F3E4d
|
||||
- --node.feed.input.url=wss://relay-plume-testnet-1.t.conduit.xyz
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
- --parent-chain.connection.url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --persistent.chain=/root/.arbitrum/plume-testnet-archive
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
- --ws.port=8545
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${PLUME_TESTNET_NITRO_ARCHIVE_LEVELDB_HASH_DATA:-plume-testnet-nitro-archive-leveldb-hash}:/root/.arbitrum
|
||||
- ./arb/plume/testnet:/config
|
||||
- /slowdisk:/slowdisk
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=true
|
||||
- prometheus-scrape.port=6070
|
||||
- prometheus-scrape.path=/debug/metrics/prometheus
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.plume-testnet-nitro-archive-leveldb-hash-stripprefix.stripprefix.prefixes=/plume-testnet-archive
|
||||
- traefik.http.services.plume-testnet-nitro-archive-leveldb-hash.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.plume-testnet-nitro-archive-leveldb-hash.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.plume-testnet-nitro-archive-leveldb-hash.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.plume-testnet-nitro-archive-leveldb-hash.rule=Host(`$DOMAIN`) && (Path(`/plume-testnet-archive`) || Path(`/plume-testnet-archive/`))}
|
||||
- ${NO_SSL:+traefik.http.routers.plume-testnet-nitro-archive-leveldb-hash.rule=Path(`/plume-testnet-archive`) || Path(`/plume-testnet-archive/`)}
|
||||
- traefik.http.routers.plume-testnet-nitro-archive-leveldb-hash.middlewares=plume-testnet-nitro-archive-leveldb-hash-stripprefix, ipallowlist
|
||||
|
||||
volumes:
|
||||
plume-testnet-nitro-archive-leveldb-hash:
|
||||
|
||||
x-upstreams:
|
||||
- id: $${ID}
|
||||
labels:
|
||||
provider: $${PROVIDER}
|
||||
connection:
|
||||
generic:
|
||||
rpc:
|
||||
url: $${RPC_URL}
|
||||
ws:
|
||||
frameSize: 20Mb
|
||||
msgSize: 50Mb
|
||||
url: $${WS_URL}
|
||||
chain: plume-testnet
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
- name: txpool_content # TODO: should be disabled for rollup nodes
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
...
|
||||
150
arb/nitro/plume-testnet-nitro-pruned-pebble-path.yml
Normal file
150
arb/nitro/plume-testnet-nitro-pruned-pebble-path.yml
Normal file
@@ -0,0 +1,150 @@
|
||||
---
|
||||
x-logging-defaults: &logging-defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
# Usage:
|
||||
#
|
||||
# mkdir rpc && cd rpc
|
||||
#
|
||||
# git init
|
||||
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
|
||||
# git fetch origin vibe
|
||||
# git checkout origin/vibe
|
||||
#
|
||||
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
|
||||
#
|
||||
# env
|
||||
# ...
|
||||
# IP=$(curl ipinfo.io/ip)
|
||||
# DOMAIN=${IP}.traefik.me
|
||||
# COMPOSE_FILE=base.yml:rpc.yml:arb/nitro/plume-testnet-nitro-pruned-pebble-path.yml
|
||||
#
|
||||
# docker compose up -d
|
||||
#
|
||||
# curl -X POST https://${IP}.traefik.me/plume-testnet \
|
||||
# -H "Content-Type: application/json" \
|
||||
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||
|
||||
services:
|
||||
plume-testnet:
|
||||
image: ${PLUME_NITRO_IMAGE:-offchainlabs/nitro-node}:${PLUME_TESTNET_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
# net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
user: root
|
||||
expose:
|
||||
- 8545
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.archive=${PLUME_TESTNET_ARCHIVE_DB:-false}
|
||||
- --execution.caching.database-cache=${PLUME_TESTNET_NITRO_PRUNED_PEBBLE_PATH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${PLUME_TESTNET_NITRO_PRUNED_PEBBLE_PATH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.state-scheme=path
|
||||
- --execution.caching.trie-clean-cache=${PLUME_TESTNET_NITRO_PRUNED_PEBBLE_PATH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${PLUME_TESTNET_NITRO_PRUNED_PEBBLE_PATH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.forwarding-target=https://testnet-rpc.plume.org
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.da-provider.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
- --node.data-availability.rest-aggregator.urls=https://das-plume-testnet-1.t.conduit.xyz
|
||||
- --node.data-availability.sequencer-inbox-address=0xbCa991f1831bE1F1E7e5576d5F84A645e70F3E4d
|
||||
- --node.feed.input.url=wss://relay-plume-testnet-1.t.conduit.xyz
|
||||
- --node.sequencer=false
|
||||
- --node.staker.enable=false
|
||||
- --parent-chain.blob-client.beacon-url=${ETHEREUM_SEPOLIA_BEACON_REST}
|
||||
- --parent-chain.connection.url=${ETHEREUM_SEPOLIA_EXECUTION_RPC}
|
||||
- --persistent.chain=/root/.arbitrum/plume-testnet
|
||||
- --persistent.db-engine=pebble
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.origins=*
|
||||
- --ws.port=8545
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${PLUME_TESTNET_NITRO_PRUNED_PEBBLE_PATH_DATA:-plume-testnet-nitro-pruned-pebble-path}:/root/.arbitrum
|
||||
- ./arb/plume/testnet:/config
|
||||
- /slowdisk:/slowdisk
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=true
|
||||
- prometheus-scrape.port=6070
|
||||
- prometheus-scrape.path=/debug/metrics/prometheus
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.plume-testnet-nitro-pruned-pebble-path-stripprefix.stripprefix.prefixes=/plume-testnet
|
||||
- traefik.http.services.plume-testnet-nitro-pruned-pebble-path.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.plume-testnet-nitro-pruned-pebble-path.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.plume-testnet-nitro-pruned-pebble-path.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.plume-testnet-nitro-pruned-pebble-path.rule=Host(`$DOMAIN`) && (Path(`/plume-testnet`) || Path(`/plume-testnet/`))}
|
||||
- ${NO_SSL:+traefik.http.routers.plume-testnet-nitro-pruned-pebble-path.rule=Path(`/plume-testnet`) || Path(`/plume-testnet/`)}
|
||||
- traefik.http.routers.plume-testnet-nitro-pruned-pebble-path.middlewares=plume-testnet-nitro-pruned-pebble-path-stripprefix, ipallowlist
|
||||
|
||||
volumes:
|
||||
plume-testnet-nitro-pruned-pebble-path:
|
||||
|
||||
x-upstreams:
|
||||
- id: $${ID}
|
||||
labels:
|
||||
provider: $${PROVIDER}
|
||||
connection:
|
||||
generic:
|
||||
rpc:
|
||||
url: $${RPC_URL}
|
||||
ws:
|
||||
frameSize: 20Mb
|
||||
msgSize: 50Mb
|
||||
url: $${WS_URL}
|
||||
chain: plume-testnet
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
methods:
|
||||
disabled:
|
||||
# not compatible with path state scheme
|
||||
- name: debug_traceBlockByHash
|
||||
enabled:
|
||||
- name: txpool_content # TODO: should be disabled for rollup nodes
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
...
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
real-mainnet-archive:
|
||||
image: ${REAL_NITRO_IMAGE:-offchainlabs/nitro-node}:${REAL_MAINNET_NITRO_VERSION:-v3.6.4-28199cd}
|
||||
image: ${REAL_NITRO_IMAGE:-offchainlabs/nitro-node}:${REAL_MAINNET_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -50,19 +50,24 @@ services:
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.archive=true
|
||||
- --execution.caching.database-cache=${REAL_MAINNET_NITRO_ARCHIVE_LEVELDB_HASH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${REAL_MAINNET_NITRO_ARCHIVE_LEVELDB_HASH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.trie-clean-cache=${REAL_MAINNET_NITRO_ARCHIVE_LEVELDB_HASH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${REAL_MAINNET_NITRO_ARCHIVE_LEVELDB_HASH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.forwarding-target=https://rpc.realforreal.gelato.digital
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.rpc.log-history=0
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.download-path=/tmp
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.da-provider.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
real-mainnet-archive:
|
||||
image: ${REAL_NITRO_IMAGE:-offchainlabs/nitro-node}:${REAL_MAINNET_NITRO_VERSION:-v3.6.4-28199cd}
|
||||
image: ${REAL_NITRO_IMAGE:-offchainlabs/nitro-node}:${REAL_MAINNET_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -50,19 +50,24 @@ services:
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.archive=true
|
||||
- --execution.caching.database-cache=${REAL_MAINNET_NITRO_ARCHIVE_PEBBLE_HASH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${REAL_MAINNET_NITRO_ARCHIVE_PEBBLE_HASH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.trie-clean-cache=${REAL_MAINNET_NITRO_ARCHIVE_PEBBLE_HASH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${REAL_MAINNET_NITRO_ARCHIVE_PEBBLE_HASH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.forwarding-target=https://rpc.realforreal.gelato.digital
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.rpc.log-history=0
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.download-path=/tmp
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.da-provider.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
real-mainnet:
|
||||
image: ${REAL_NITRO_IMAGE:-offchainlabs/nitro-node}:${REAL_MAINNET_NITRO_VERSION:-v3.6.4-28199cd}
|
||||
image: ${REAL_NITRO_IMAGE:-offchainlabs/nitro-node}:${REAL_MAINNET_NITRO_VERSION:-v3.9.5-66e42c4}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -49,21 +49,25 @@ services:
|
||||
- 8545
|
||||
command:
|
||||
- --conf.file=/config/baseConfig.json
|
||||
- --execution.caching.archive=false
|
||||
- --execution.caching.archive=${REAL_MAINNET_ARCHIVE_DB:-false}
|
||||
- --execution.caching.database-cache=${REAL_MAINNET_NITRO_PRUNED_PEBBLE_PATH_DATABASE_CACHE:-2048}
|
||||
- --execution.caching.snapshot-cache=${REAL_MAINNET_NITRO_PRUNED_PEBBLE_PATH_SNAPSHOT_CACHE:-400}
|
||||
- --execution.caching.state-scheme=path
|
||||
- --execution.caching.trie-clean-cache=${REAL_MAINNET_NITRO_PRUNED_PEBBLE_PATH_TRIE_CLEAN_CACHE:-600}
|
||||
- --execution.caching.trie-dirty-cache=${REAL_MAINNET_NITRO_PRUNED_PEBBLE_PATH_TRIE_DIRTY_CACHE:-1024}
|
||||
- --execution.forwarding-target=https://rpc.realforreal.gelato.digital
|
||||
- --execution.rpc.gas-cap=600000000
|
||||
- --execution.rpc.gas-cap=5500000000
|
||||
- --execution.sequencer.enable=false
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,arb,txpool,debug
|
||||
- --http.corsdomain=*
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --init.download-path=/tmp
|
||||
- --metrics
|
||||
- --metrics-server.addr=0.0.0.0
|
||||
- --metrics-server.port=6070
|
||||
- --node.batch-poster.enable=false
|
||||
- --node.da-provider.enable=false
|
||||
- --node.data-availability.enable=true
|
||||
- --node.data-availability.parent-chain-node-url=${ETHEREUM_MAINNET_EXECUTION_RPC}
|
||||
- --node.data-availability.rest-aggregator.enable=true
|
||||
|
||||
5
arb/plume/mainnet/baseConfig.json
Normal file
5
arb/plume/mainnet/baseConfig.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"chain": {
|
||||
"info-json": "[{\"chain-id\":98866,\"parent-chain-id\":1,\"chain-name\":\"conduit-orbit-deployer\",\"chain-config\":{\"chainId\":98866,\"homesteadBlock\":0,\"daoForkBlock\":null,\"daoForkSupport\":true,\"eip150Block\":0,\"eip150Hash\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"eip155Block\":0,\"eip158Block\":0,\"byzantiumBlock\":0,\"constantinopleBlock\":0,\"petersburgBlock\":0,\"istanbulBlock\":0,\"muirGlacierBlock\":0,\"berlinBlock\":0,\"londonBlock\":0,\"clique\":{\"period\":0,\"epoch\":0},\"arbitrum\":{\"EnableArbOS\":true,\"AllowDebugPrecompiles\":false,\"DataAvailabilityCommittee\":true,\"InitialArbOSVersion\":32,\"InitialChainOwner\":\"0x5Ec32984332eaB190cA431545664320259D755d8\",\"GenesisBlockNum\":0}},\"rollup\":{\"bridge\":\"0x35381f63091926750F43b2A7401B083263aDEF83\",\"inbox\":\"0x943fc691242291B74B105e8D19bd9E5DC2fcBa1D\",\"sequencer-inbox\":\"0x85eC1b9138a8b9659A51e2b51bb0861901040b59\",\"rollup\":\"0x35c60Cc77b0A8bf6F938B11bd3E9D319a876c2aC\",\"validator-utils\":\"0x84eA2523b271029FFAeB58fc6E6F1435a280db44\",\"validator-wallet-creator\":\"0x0A5eC2286bB15893d5b8f320aAbc823B2186BA09\",\"deployed-at\":21887008}}]"
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
arb/nitro/arbitrum-nova-nitro-pruned-pebble-hash.yml
|
||||
@@ -1 +0,0 @@
|
||||
arb/nitro/alephzero-mainnet-nitro-archive-leveldb-hash.yml
|
||||
@@ -1 +0,0 @@
|
||||
arb/nitro/arbitrum-one-nitro-pruned-pebble-hash.yml
|
||||
@@ -1 +0,0 @@
|
||||
arb/nitro/arbitrum-sepolia-nitro-archive-pebble-hash.yml
|
||||
@@ -1 +0,0 @@
|
||||
arb/nitro/arbitrum-sepolia-nitro-pruned-pebble-hash.yml
|
||||
@@ -1 +0,0 @@
|
||||
arb/nitro/arbitrum-sepolia-nitro-pruned-pebble-hash.yml
|
||||
@@ -1 +0,0 @@
|
||||
avalanche/go/avalanche-fuji-go-pruned-pebbledb.yml
|
||||
@@ -1 +0,0 @@
|
||||
avalanche/go/avalanche-mainnet-go-archive-leveldb.yml
|
||||
@@ -1 +0,0 @@
|
||||
avalanche/go/avalanche-mainnet-go-pruned-pebbledb.yml
|
||||
@@ -1,4 +0,0 @@
|
||||
{
|
||||
"state-sync-enabled": false,
|
||||
"pruning-enabled": false
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
{
|
||||
"snowman-api-enabled": false,
|
||||
"coreth-admin-api-enabled": false,
|
||||
"coreth-admin-api-dir": "",
|
||||
"eth-apis": [
|
||||
"public-eth",
|
||||
"public-eth-filter",
|
||||
"net",
|
||||
"web3",
|
||||
"internal-public-eth",
|
||||
"internal-public-blockchain",
|
||||
"internal-public-transaction-pool",
|
||||
"internal-public-account"
|
||||
],
|
||||
"continuous-profiler-dir": "",
|
||||
"continuous-profiler-frequency": 900000000000,
|
||||
"continuous-profiler-max-files": 5,
|
||||
"rpc-gas-cap": 50000000,
|
||||
"rpc-tx-fee-cap": 100,
|
||||
"preimages-enabled": false,
|
||||
"pruning-enabled": true,
|
||||
"snapshot-async": true,
|
||||
"snapshot-verification-enabled": false,
|
||||
"metrics-enabled": false,
|
||||
"metrics-expensive-enabled": false,
|
||||
"local-txs-enabled": false,
|
||||
"api-max-duration": 0,
|
||||
"ws-cpu-refill-rate": 0,
|
||||
"ws-cpu-max-stored": 0,
|
||||
"api-max-blocks-per-request": 0,
|
||||
"allow-unfinalized-queries": false,
|
||||
"allow-unprotected-txs": false,
|
||||
"keystore-directory": "",
|
||||
"keystore-external-signer": "",
|
||||
"keystore-insecure-unlock-allowed": false,
|
||||
"remote-tx-gossip-only-enabled": false,
|
||||
"tx-regossip-frequency": 60000000000,
|
||||
"tx-regossip-max-size": 15,
|
||||
"log-level": "debug",
|
||||
"offline-pruning-enabled": false,
|
||||
"offline-pruning-bloom-filter-size": 512,
|
||||
"offline-pruning-data-directory": ""
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"state-sync-enabled": true,
|
||||
"pruning-enabled": true,
|
||||
"offline-pruning-enabled": true,
|
||||
"offline-pruning-data-directory": "/root/.avalanchego/offline-pruning"
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"state-sync-enabled": true,
|
||||
"pruning-enabled": true,
|
||||
"offline-pruning-enabled": false,
|
||||
"offline-pruning-data-directory": "/root/.avalanchego/offline-pruning",
|
||||
"rpc-gas-cap": 600000000
|
||||
}
|
||||
@@ -1,4 +1,6 @@
|
||||
{
|
||||
"state-sync-enabled": false,
|
||||
"pruning-enabled": false
|
||||
"pruning-enabled": false,
|
||||
"rpc-gas-cap": 2500000000,
|
||||
"eth-rpc-gas-limit": 2500000000
|
||||
}
|
||||
|
||||
4
avalanche/fuji/pruned/C/config.json
Normal file
4
avalanche/fuji/pruned/C/config.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"rpc-gas-cap": 2500000000,
|
||||
"eth-rpc-gas-limit": 2500000000
|
||||
}
|
||||
@@ -29,8 +29,8 @@ x-logging-defaults: &logging-defaults
|
||||
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||
|
||||
services:
|
||||
avalanche-fuji-archive-client:
|
||||
image: ${AVALANCHE_GO_IMAGE:-avaplatform/avalanchego}:${AVALANCHE_FUJI_GO_VERSION:-v1.13.0-fuji}
|
||||
avalanche-fuji-archive:
|
||||
image: ${AVALANCHE_GO_IMAGE:-avaplatform/avalanchego}:${AVALANCHE_FUJI_GO_VERSION:-v1.14.1}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -50,7 +50,6 @@ services:
|
||||
- 10046:10046/udp
|
||||
expose:
|
||||
- 9650
|
||||
- 9650
|
||||
entrypoint: [/avalanchego/build/avalanchego]
|
||||
command:
|
||||
- --chain-config-dir=/config/archive
|
||||
@@ -71,35 +70,26 @@ services:
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=false
|
||||
|
||||
avalanche-fuji-archive:
|
||||
image: nginx
|
||||
expose:
|
||||
- '80'
|
||||
environment:
|
||||
PROXY_HOST: avalanche-fuji-archive-client
|
||||
RPC_PATH: /ext/bc/C/rpc
|
||||
RPC_PORT: 9650
|
||||
WS_PATH: /ext/bc/C/ws
|
||||
WS_PORT: 9650
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- avalanche-fuji-archive-client
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ./nginx-proxy:/etc/nginx/templates
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=false
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.avalanche-fuji-go-archive-leveldb-set-path.replacepath.path=/ext/bc/C/rpc
|
||||
- traefik.http.middlewares.avalanche-fuji-go-archive-leveldb-stripprefix.stripprefix.prefixes=/avalanche-fuji-archive
|
||||
- traefik.http.services.avalanche-fuji-go-archive-leveldb.loadbalancer.server.port=80
|
||||
- traefik.http.services.avalanche-fuji-go-archive-leveldb.loadbalancer.server.port=9650
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-fuji-go-archive-leveldb.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-fuji-go-archive-leveldb.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-fuji-go-archive-leveldb.rule=Host(`$DOMAIN`) && (Path(`/avalanche-fuji-archive`) || Path(`/avalanche-fuji-archive/`))}
|
||||
- ${NO_SSL:+traefik.http.routers.avalanche-fuji-go-archive-leveldb.rule=Path(`/avalanche-fuji-archive`) || Path(`/avalanche-fuji-archive/`)}
|
||||
- traefik.http.routers.avalanche-fuji-go-archive-leveldb.middlewares=avalanche-fuji-go-archive-leveldb-stripprefix, ipallowlist
|
||||
- traefik.http.routers.avalanche-fuji-go-archive-leveldb.middlewares=avalanche-fuji-go-archive-leveldb-stripprefix, avalanche-fuji-go-archive-leveldb-set-path, ipallowlist
|
||||
- traefik.http.routers.avalanche-fuji-go-archive-leveldb.priority=50 # gets any request that is not GET with UPGRADE header
|
||||
- traefik.http.routers.avalanche-fuji-go-archive-leveldb-ws.priority=100 # answers GET requests first
|
||||
- traefik.http.middlewares.avalanche-fuji-go-archive-leveldb-set-ws-path.replacepath.path=/ext/bc/C/ws
|
||||
- traefik.http.services.avalanche-fuji-go-archive-leveldb-ws.loadbalancer.server.port=9650
|
||||
- traefik.http.routers.avalanche-fuji-go-archive-leveldb-ws.service=avalanche-fuji-go-archive-leveldb-ws
|
||||
- traefik.http.routers.avalanche-fuji-go-archive-leveldb.service=avalanche-fuji-go-archive-leveldb
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-fuji-go-archive-leveldb-ws.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-fuji-go-archive-leveldb-ws.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-fuji-go-archive-leveldb-ws.rule=Host(`$DOMAIN`) && (Path(`/avalanche-fuji-archive`) || Path(`/avalanche-fuji-archive/`)) && Headers(`Upgrade`, `websocket`)}
|
||||
- ${NO_SSL:+traefik.http.routers.avalanche-fuji-go-archive-leveldb-ws.rule=(Path(`/avalanche-fuji-archive`) || Path(`/avalanche-fuji-archive/`)) && Headers(`Upgrade`, `websocket`)}
|
||||
- traefik.http.routers.avalanche-fuji-go-archive-leveldb-ws.middlewares=avalanche-fuji-go-archive-leveldb-stripprefix, avalanche-fuji-go-archive-leveldb-set-ws-path, ipallowlist
|
||||
|
||||
volumes:
|
||||
avalanche-fuji-go-archive-leveldb:
|
||||
|
||||
118
avalanche/go/avalanche-fuji-go-pruned-leveldb.yml
Normal file
118
avalanche/go/avalanche-fuji-go-pruned-leveldb.yml
Normal file
@@ -0,0 +1,118 @@
|
||||
---
|
||||
x-logging-defaults: &logging-defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
# Usage:
|
||||
#
|
||||
# mkdir rpc && cd rpc
|
||||
#
|
||||
# git init
|
||||
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
|
||||
# git fetch origin vibe
|
||||
# git checkout origin/vibe
|
||||
#
|
||||
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
|
||||
#
|
||||
# env
|
||||
# ...
|
||||
# IP=$(curl ipinfo.io/ip)
|
||||
# DOMAIN=${IP}.traefik.me
|
||||
# COMPOSE_FILE=base.yml:rpc.yml:avalanche/go/avalanche-fuji-go-pruned-leveldb.yml
|
||||
#
|
||||
# docker compose up -d
|
||||
#
|
||||
# curl -X POST https://${IP}.traefik.me/avalanche-fuji \
|
||||
# -H "Content-Type: application/json" \
|
||||
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||
|
||||
services:
|
||||
avalanche-fuji:
|
||||
image: ${AVALANCHE_GO_IMAGE:-avaplatform/avalanchego}:${AVALANCHE_FUJI_GO_VERSION:-v1.14.1}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
# net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
user: root
|
||||
ports:
|
||||
- 12059:12059
|
||||
- 12059:12059/udp
|
||||
expose:
|
||||
- 9650
|
||||
entrypoint: [/avalanchego/build/avalanchego]
|
||||
command:
|
||||
- --chain-config-dir=/config/pruned
|
||||
- --db-type=leveldb
|
||||
- --http-allowed-hosts=*
|
||||
- --http-host=
|
||||
- --network-id=fuji
|
||||
- --public-ip=${IP}
|
||||
- --staking-port=12059
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${AVALANCHE_FUJI_GO_PRUNED_LEVELDB_DATA:-avalanche-fuji-go-pruned-leveldb}:/root/.avalanchego
|
||||
- ./avalanche/fuji:/config
|
||||
- /slowdisk:/slowdisk
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=false
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.avalanche-fuji-go-pruned-leveldb-set-path.replacepath.path=/ext/bc/C/rpc
|
||||
- traefik.http.middlewares.avalanche-fuji-go-pruned-leveldb-stripprefix.stripprefix.prefixes=/avalanche-fuji
|
||||
- traefik.http.services.avalanche-fuji-go-pruned-leveldb.loadbalancer.server.port=9650
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-fuji-go-pruned-leveldb.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-fuji-go-pruned-leveldb.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-fuji-go-pruned-leveldb.rule=Host(`$DOMAIN`) && (Path(`/avalanche-fuji`) || Path(`/avalanche-fuji/`))}
|
||||
- ${NO_SSL:+traefik.http.routers.avalanche-fuji-go-pruned-leveldb.rule=Path(`/avalanche-fuji`) || Path(`/avalanche-fuji/`)}
|
||||
- traefik.http.routers.avalanche-fuji-go-pruned-leveldb.middlewares=avalanche-fuji-go-pruned-leveldb-stripprefix, avalanche-fuji-go-pruned-leveldb-set-path, ipallowlist
|
||||
- traefik.http.routers.avalanche-fuji-go-pruned-leveldb.priority=50 # gets any request that is not GET with UPGRADE header
|
||||
- traefik.http.routers.avalanche-fuji-go-pruned-leveldb-ws.priority=100 # answers GET requests first
|
||||
- traefik.http.middlewares.avalanche-fuji-go-pruned-leveldb-set-ws-path.replacepath.path=/ext/bc/C/ws
|
||||
- traefik.http.services.avalanche-fuji-go-pruned-leveldb-ws.loadbalancer.server.port=9650
|
||||
- traefik.http.routers.avalanche-fuji-go-pruned-leveldb-ws.service=avalanche-fuji-go-pruned-leveldb-ws
|
||||
- traefik.http.routers.avalanche-fuji-go-pruned-leveldb.service=avalanche-fuji-go-pruned-leveldb
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-fuji-go-pruned-leveldb-ws.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-fuji-go-pruned-leveldb-ws.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-fuji-go-pruned-leveldb-ws.rule=Host(`$DOMAIN`) && (Path(`/avalanche-fuji`) || Path(`/avalanche-fuji/`)) && Headers(`Upgrade`, `websocket`)}
|
||||
- ${NO_SSL:+traefik.http.routers.avalanche-fuji-go-pruned-leveldb-ws.rule=(Path(`/avalanche-fuji`) || Path(`/avalanche-fuji/`)) && Headers(`Upgrade`, `websocket`)}
|
||||
- traefik.http.routers.avalanche-fuji-go-pruned-leveldb-ws.middlewares=avalanche-fuji-go-pruned-leveldb-stripprefix, avalanche-fuji-go-pruned-leveldb-set-ws-path, ipallowlist
|
||||
|
||||
volumes:
|
||||
avalanche-fuji-go-pruned-leveldb:
|
||||
|
||||
x-upstreams:
|
||||
- id: $${ID}
|
||||
labels:
|
||||
provider: $${PROVIDER}
|
||||
connection:
|
||||
generic:
|
||||
rpc:
|
||||
url: $${RPC_URL}
|
||||
ws:
|
||||
frameSize: 20Mb
|
||||
msgSize: 50Mb
|
||||
url: $${WS_URL}
|
||||
chain: avalanche
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
- name: txpool_content # TODO: should be disabled for rollup nodes
|
||||
...
|
||||
@@ -29,8 +29,8 @@ x-logging-defaults: &logging-defaults
|
||||
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||
|
||||
services:
|
||||
avalanche-fuji-client:
|
||||
image: ${AVALANCHE_GO_IMAGE:-avaplatform/avalanchego}:${AVALANCHE_FUJI_GO_VERSION:-v1.13.0-fuji}
|
||||
avalanche-fuji:
|
||||
image: ${AVALANCHE_GO_IMAGE:-avaplatform/avalanchego}:${AVALANCHE_FUJI_GO_VERSION:-v1.14.1}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -50,7 +50,6 @@ services:
|
||||
- 10350:10350/udp
|
||||
expose:
|
||||
- 9650
|
||||
- 9650
|
||||
entrypoint: [/avalanchego/build/avalanchego]
|
||||
command:
|
||||
- --chain-config-dir=/config/pruned
|
||||
@@ -71,35 +70,26 @@ services:
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=false
|
||||
|
||||
avalanche-fuji:
|
||||
image: nginx
|
||||
expose:
|
||||
- '80'
|
||||
environment:
|
||||
PROXY_HOST: avalanche-fuji-client
|
||||
RPC_PATH: /ext/bc/C/rpc
|
||||
RPC_PORT: 9650
|
||||
WS_PATH: /ext/bc/C/ws
|
||||
WS_PORT: 9650
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- avalanche-fuji-client
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ./nginx-proxy:/etc/nginx/templates
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=false
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.avalanche-fuji-go-pruned-pebbledb-set-path.replacepath.path=/ext/bc/C/rpc
|
||||
- traefik.http.middlewares.avalanche-fuji-go-pruned-pebbledb-stripprefix.stripprefix.prefixes=/avalanche-fuji
|
||||
- traefik.http.services.avalanche-fuji-go-pruned-pebbledb.loadbalancer.server.port=80
|
||||
- traefik.http.services.avalanche-fuji-go-pruned-pebbledb.loadbalancer.server.port=9650
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-fuji-go-pruned-pebbledb.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-fuji-go-pruned-pebbledb.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-fuji-go-pruned-pebbledb.rule=Host(`$DOMAIN`) && (Path(`/avalanche-fuji`) || Path(`/avalanche-fuji/`))}
|
||||
- ${NO_SSL:+traefik.http.routers.avalanche-fuji-go-pruned-pebbledb.rule=Path(`/avalanche-fuji`) || Path(`/avalanche-fuji/`)}
|
||||
- traefik.http.routers.avalanche-fuji-go-pruned-pebbledb.middlewares=avalanche-fuji-go-pruned-pebbledb-stripprefix, ipallowlist
|
||||
- traefik.http.routers.avalanche-fuji-go-pruned-pebbledb.middlewares=avalanche-fuji-go-pruned-pebbledb-stripprefix, avalanche-fuji-go-pruned-pebbledb-set-path, ipallowlist
|
||||
- traefik.http.routers.avalanche-fuji-go-pruned-pebbledb.priority=50 # gets any request that is not GET with UPGRADE header
|
||||
- traefik.http.routers.avalanche-fuji-go-pruned-pebbledb-ws.priority=100 # answers GET requests first
|
||||
- traefik.http.middlewares.avalanche-fuji-go-pruned-pebbledb-set-ws-path.replacepath.path=/ext/bc/C/ws
|
||||
- traefik.http.services.avalanche-fuji-go-pruned-pebbledb-ws.loadbalancer.server.port=9650
|
||||
- traefik.http.routers.avalanche-fuji-go-pruned-pebbledb-ws.service=avalanche-fuji-go-pruned-pebbledb-ws
|
||||
- traefik.http.routers.avalanche-fuji-go-pruned-pebbledb.service=avalanche-fuji-go-pruned-pebbledb
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-fuji-go-pruned-pebbledb-ws.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-fuji-go-pruned-pebbledb-ws.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-fuji-go-pruned-pebbledb-ws.rule=Host(`$DOMAIN`) && (Path(`/avalanche-fuji`) || Path(`/avalanche-fuji/`)) && Headers(`Upgrade`, `websocket`)}
|
||||
- ${NO_SSL:+traefik.http.routers.avalanche-fuji-go-pruned-pebbledb-ws.rule=(Path(`/avalanche-fuji`) || Path(`/avalanche-fuji/`)) && Headers(`Upgrade`, `websocket`)}
|
||||
- traefik.http.routers.avalanche-fuji-go-pruned-pebbledb-ws.middlewares=avalanche-fuji-go-pruned-pebbledb-stripprefix, avalanche-fuji-go-pruned-pebbledb-set-ws-path, ipallowlist
|
||||
|
||||
volumes:
|
||||
avalanche-fuji-go-pruned-pebbledb:
|
||||
|
||||
@@ -29,8 +29,8 @@ x-logging-defaults: &logging-defaults
|
||||
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||
|
||||
services:
|
||||
avalanche-mainnet-archive-client:
|
||||
image: ${AVALANCHE_GO_IMAGE:-avaplatform/avalanchego}:${AVALANCHE_MAINNET_GO_VERSION:-v1.13.0}
|
||||
avalanche-mainnet-archive:
|
||||
image: ${AVALANCHE_GO_IMAGE:-avaplatform/avalanchego}:${AVALANCHE_MAINNET_GO_VERSION:-v1.14.1}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -50,7 +50,6 @@ services:
|
||||
- 12934:12934/udp
|
||||
expose:
|
||||
- 9650
|
||||
- 9650
|
||||
entrypoint: [/avalanchego/build/avalanchego]
|
||||
command:
|
||||
- --chain-config-dir=/config/archive
|
||||
@@ -71,35 +70,26 @@ services:
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=false
|
||||
|
||||
avalanche-mainnet-archive:
|
||||
image: nginx
|
||||
expose:
|
||||
- '80'
|
||||
environment:
|
||||
PROXY_HOST: avalanche-mainnet-archive-client
|
||||
RPC_PATH: /ext/bc/C/rpc
|
||||
RPC_PORT: 9650
|
||||
WS_PATH: /ext/bc/C/ws
|
||||
WS_PORT: 9650
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- avalanche-mainnet-archive-client
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ./nginx-proxy:/etc/nginx/templates
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=false
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.avalanche-mainnet-go-archive-leveldb-set-path.replacepath.path=/ext/bc/C/rpc
|
||||
- traefik.http.middlewares.avalanche-mainnet-go-archive-leveldb-stripprefix.stripprefix.prefixes=/avalanche-mainnet-archive
|
||||
- traefik.http.services.avalanche-mainnet-go-archive-leveldb.loadbalancer.server.port=80
|
||||
- traefik.http.services.avalanche-mainnet-go-archive-leveldb.loadbalancer.server.port=9650
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-mainnet-go-archive-leveldb.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-mainnet-go-archive-leveldb.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-mainnet-go-archive-leveldb.rule=Host(`$DOMAIN`) && (Path(`/avalanche-mainnet-archive`) || Path(`/avalanche-mainnet-archive/`))}
|
||||
- ${NO_SSL:+traefik.http.routers.avalanche-mainnet-go-archive-leveldb.rule=Path(`/avalanche-mainnet-archive`) || Path(`/avalanche-mainnet-archive/`)}
|
||||
- traefik.http.routers.avalanche-mainnet-go-archive-leveldb.middlewares=avalanche-mainnet-go-archive-leveldb-stripprefix, ipallowlist
|
||||
- traefik.http.routers.avalanche-mainnet-go-archive-leveldb.middlewares=avalanche-mainnet-go-archive-leveldb-stripprefix, avalanche-mainnet-go-archive-leveldb-set-path, ipallowlist
|
||||
- traefik.http.routers.avalanche-mainnet-go-archive-leveldb.priority=50 # gets any request that is not GET with UPGRADE header
|
||||
- traefik.http.routers.avalanche-mainnet-go-archive-leveldb-ws.priority=100 # answers GET requests first
|
||||
- traefik.http.middlewares.avalanche-mainnet-go-archive-leveldb-set-ws-path.replacepath.path=/ext/bc/C/ws
|
||||
- traefik.http.services.avalanche-mainnet-go-archive-leveldb-ws.loadbalancer.server.port=9650
|
||||
- traefik.http.routers.avalanche-mainnet-go-archive-leveldb-ws.service=avalanche-mainnet-go-archive-leveldb-ws
|
||||
- traefik.http.routers.avalanche-mainnet-go-archive-leveldb.service=avalanche-mainnet-go-archive-leveldb
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-mainnet-go-archive-leveldb-ws.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-mainnet-go-archive-leveldb-ws.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-mainnet-go-archive-leveldb-ws.rule=Host(`$DOMAIN`) && (Path(`/avalanche-mainnet-archive`) || Path(`/avalanche-mainnet-archive/`)) && Headers(`Upgrade`, `websocket`)}
|
||||
- ${NO_SSL:+traefik.http.routers.avalanche-mainnet-go-archive-leveldb-ws.rule=(Path(`/avalanche-mainnet-archive`) || Path(`/avalanche-mainnet-archive/`)) && Headers(`Upgrade`, `websocket`)}
|
||||
- traefik.http.routers.avalanche-mainnet-go-archive-leveldb-ws.middlewares=avalanche-mainnet-go-archive-leveldb-stripprefix, avalanche-mainnet-go-archive-leveldb-set-ws-path, ipallowlist
|
||||
|
||||
volumes:
|
||||
avalanche-mainnet-go-archive-leveldb:
|
||||
|
||||
118
avalanche/go/avalanche-mainnet-go-pruned-leveldb.yml
Normal file
118
avalanche/go/avalanche-mainnet-go-pruned-leveldb.yml
Normal file
@@ -0,0 +1,118 @@
|
||||
---
|
||||
x-logging-defaults: &logging-defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
# Usage:
|
||||
#
|
||||
# mkdir rpc && cd rpc
|
||||
#
|
||||
# git init
|
||||
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
|
||||
# git fetch origin vibe
|
||||
# git checkout origin/vibe
|
||||
#
|
||||
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
|
||||
#
|
||||
# env
|
||||
# ...
|
||||
# IP=$(curl ipinfo.io/ip)
|
||||
# DOMAIN=${IP}.traefik.me
|
||||
# COMPOSE_FILE=base.yml:rpc.yml:avalanche/go/avalanche-mainnet-go-pruned-leveldb.yml
|
||||
#
|
||||
# docker compose up -d
|
||||
#
|
||||
# curl -X POST https://${IP}.traefik.me/avalanche-mainnet \
|
||||
# -H "Content-Type: application/json" \
|
||||
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||
|
||||
services:
|
||||
avalanche-mainnet:
|
||||
image: ${AVALANCHE_GO_IMAGE:-avaplatform/avalanchego}:${AVALANCHE_MAINNET_GO_VERSION:-v1.14.1}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
# net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
user: root
|
||||
ports:
|
||||
- 12757:12757
|
||||
- 12757:12757/udp
|
||||
expose:
|
||||
- 9650
|
||||
entrypoint: [/avalanchego/build/avalanchego]
|
||||
command:
|
||||
- --chain-config-dir=/config/pruned
|
||||
- --db-type=leveldb
|
||||
- --http-allowed-hosts=*
|
||||
- --http-host=
|
||||
- --network-id=mainnet
|
||||
- --public-ip=${IP}
|
||||
- --staking-port=12757
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${AVALANCHE_MAINNET_GO_PRUNED_LEVELDB_DATA:-avalanche-mainnet-go-pruned-leveldb}:/root/.avalanchego
|
||||
- ./avalanche/mainnet:/config
|
||||
- /slowdisk:/slowdisk
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=false
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.avalanche-mainnet-go-pruned-leveldb-set-path.replacepath.path=/ext/bc/C/rpc
|
||||
- traefik.http.middlewares.avalanche-mainnet-go-pruned-leveldb-stripprefix.stripprefix.prefixes=/avalanche-mainnet
|
||||
- traefik.http.services.avalanche-mainnet-go-pruned-leveldb.loadbalancer.server.port=9650
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-mainnet-go-pruned-leveldb.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-mainnet-go-pruned-leveldb.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-mainnet-go-pruned-leveldb.rule=Host(`$DOMAIN`) && (Path(`/avalanche-mainnet`) || Path(`/avalanche-mainnet/`))}
|
||||
- ${NO_SSL:+traefik.http.routers.avalanche-mainnet-go-pruned-leveldb.rule=Path(`/avalanche-mainnet`) || Path(`/avalanche-mainnet/`)}
|
||||
- traefik.http.routers.avalanche-mainnet-go-pruned-leveldb.middlewares=avalanche-mainnet-go-pruned-leveldb-stripprefix, avalanche-mainnet-go-pruned-leveldb-set-path, ipallowlist
|
||||
- traefik.http.routers.avalanche-mainnet-go-pruned-leveldb.priority=50 # gets any request that is not GET with UPGRADE header
|
||||
- traefik.http.routers.avalanche-mainnet-go-pruned-leveldb-ws.priority=100 # answers GET requests first
|
||||
- traefik.http.middlewares.avalanche-mainnet-go-pruned-leveldb-set-ws-path.replacepath.path=/ext/bc/C/ws
|
||||
- traefik.http.services.avalanche-mainnet-go-pruned-leveldb-ws.loadbalancer.server.port=9650
|
||||
- traefik.http.routers.avalanche-mainnet-go-pruned-leveldb-ws.service=avalanche-mainnet-go-pruned-leveldb-ws
|
||||
- traefik.http.routers.avalanche-mainnet-go-pruned-leveldb.service=avalanche-mainnet-go-pruned-leveldb
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-mainnet-go-pruned-leveldb-ws.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-mainnet-go-pruned-leveldb-ws.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-mainnet-go-pruned-leveldb-ws.rule=Host(`$DOMAIN`) && (Path(`/avalanche-mainnet`) || Path(`/avalanche-mainnet/`)) && Headers(`Upgrade`, `websocket`)}
|
||||
- ${NO_SSL:+traefik.http.routers.avalanche-mainnet-go-pruned-leveldb-ws.rule=(Path(`/avalanche-mainnet`) || Path(`/avalanche-mainnet/`)) && Headers(`Upgrade`, `websocket`)}
|
||||
- traefik.http.routers.avalanche-mainnet-go-pruned-leveldb-ws.middlewares=avalanche-mainnet-go-pruned-leveldb-stripprefix, avalanche-mainnet-go-pruned-leveldb-set-ws-path, ipallowlist
|
||||
|
||||
volumes:
|
||||
avalanche-mainnet-go-pruned-leveldb:
|
||||
|
||||
x-upstreams:
|
||||
- id: $${ID}
|
||||
labels:
|
||||
provider: $${PROVIDER}
|
||||
connection:
|
||||
generic:
|
||||
rpc:
|
||||
url: $${RPC_URL}
|
||||
ws:
|
||||
frameSize: 20Mb
|
||||
msgSize: 50Mb
|
||||
url: $${WS_URL}
|
||||
chain: avalanche
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
methods:
|
||||
disabled:
|
||||
enabled:
|
||||
- name: txpool_content # TODO: should be disabled for rollup nodes
|
||||
...
|
||||
@@ -29,8 +29,8 @@ x-logging-defaults: &logging-defaults
|
||||
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||
|
||||
services:
|
||||
avalanche-mainnet-client:
|
||||
image: ${AVALANCHE_GO_IMAGE:-avaplatform/avalanchego}:${AVALANCHE_MAINNET_GO_VERSION:-v1.13.0}
|
||||
avalanche-mainnet:
|
||||
image: ${AVALANCHE_GO_IMAGE:-avaplatform/avalanchego}:${AVALANCHE_MAINNET_GO_VERSION:-v1.14.1}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -50,7 +50,6 @@ services:
|
||||
- 11929:11929/udp
|
||||
expose:
|
||||
- 9650
|
||||
- 9650
|
||||
entrypoint: [/avalanchego/build/avalanchego]
|
||||
command:
|
||||
- --chain-config-dir=/config/pruned
|
||||
@@ -71,35 +70,26 @@ services:
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=false
|
||||
|
||||
avalanche-mainnet:
|
||||
image: nginx
|
||||
expose:
|
||||
- '80'
|
||||
environment:
|
||||
PROXY_HOST: avalanche-mainnet-client
|
||||
RPC_PATH: /ext/bc/C/rpc
|
||||
RPC_PORT: 9650
|
||||
WS_PATH: /ext/bc/C/ws
|
||||
WS_PORT: 9650
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- avalanche-mainnet-client
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ./nginx-proxy:/etc/nginx/templates
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=false
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.avalanche-mainnet-go-pruned-pebbledb-set-path.replacepath.path=/ext/bc/C/rpc
|
||||
- traefik.http.middlewares.avalanche-mainnet-go-pruned-pebbledb-stripprefix.stripprefix.prefixes=/avalanche-mainnet
|
||||
- traefik.http.services.avalanche-mainnet-go-pruned-pebbledb.loadbalancer.server.port=80
|
||||
- traefik.http.services.avalanche-mainnet-go-pruned-pebbledb.loadbalancer.server.port=9650
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-mainnet-go-pruned-pebbledb.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-mainnet-go-pruned-pebbledb.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-mainnet-go-pruned-pebbledb.rule=Host(`$DOMAIN`) && (Path(`/avalanche-mainnet`) || Path(`/avalanche-mainnet/`))}
|
||||
- ${NO_SSL:+traefik.http.routers.avalanche-mainnet-go-pruned-pebbledb.rule=Path(`/avalanche-mainnet`) || Path(`/avalanche-mainnet/`)}
|
||||
- traefik.http.routers.avalanche-mainnet-go-pruned-pebbledb.middlewares=avalanche-mainnet-go-pruned-pebbledb-stripprefix, ipallowlist
|
||||
- traefik.http.routers.avalanche-mainnet-go-pruned-pebbledb.middlewares=avalanche-mainnet-go-pruned-pebbledb-stripprefix, avalanche-mainnet-go-pruned-pebbledb-set-path, ipallowlist
|
||||
- traefik.http.routers.avalanche-mainnet-go-pruned-pebbledb.priority=50 # gets any request that is not GET with UPGRADE header
|
||||
- traefik.http.routers.avalanche-mainnet-go-pruned-pebbledb-ws.priority=100 # answers GET requests first
|
||||
- traefik.http.middlewares.avalanche-mainnet-go-pruned-pebbledb-set-ws-path.replacepath.path=/ext/bc/C/ws
|
||||
- traefik.http.services.avalanche-mainnet-go-pruned-pebbledb-ws.loadbalancer.server.port=9650
|
||||
- traefik.http.routers.avalanche-mainnet-go-pruned-pebbledb-ws.service=avalanche-mainnet-go-pruned-pebbledb-ws
|
||||
- traefik.http.routers.avalanche-mainnet-go-pruned-pebbledb.service=avalanche-mainnet-go-pruned-pebbledb
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-mainnet-go-pruned-pebbledb-ws.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-mainnet-go-pruned-pebbledb-ws.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.avalanche-mainnet-go-pruned-pebbledb-ws.rule=Host(`$DOMAIN`) && (Path(`/avalanche-mainnet`) || Path(`/avalanche-mainnet/`)) && Headers(`Upgrade`, `websocket`)}
|
||||
- ${NO_SSL:+traefik.http.routers.avalanche-mainnet-go-pruned-pebbledb-ws.rule=(Path(`/avalanche-mainnet`) || Path(`/avalanche-mainnet/`)) && Headers(`Upgrade`, `websocket`)}
|
||||
- traefik.http.routers.avalanche-mainnet-go-pruned-pebbledb-ws.middlewares=avalanche-mainnet-go-pruned-pebbledb-stripprefix, avalanche-mainnet-go-pruned-pebbledb-set-ws-path, ipallowlist
|
||||
|
||||
volumes:
|
||||
avalanche-mainnet-go-pruned-pebbledb:
|
||||
|
||||
21
avalanche/mainnet/pruned/C/config.json
Normal file
21
avalanche/mainnet/pruned/C/config.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"snowman-api-enabled": false,
|
||||
"coreth-admin-api-enabled": false,
|
||||
"net-api-enabled": true,
|
||||
"rpc-gas-cap": 2500000000,
|
||||
"rpc-tx-fee-cap": 100,
|
||||
"eth-rpc-gas-limit": 2500000000,
|
||||
"eth-api-enabled": true,
|
||||
"personal-api-enabled": false,
|
||||
"tx-pool-api-enabled": false,
|
||||
"debug-api-enabled": false,
|
||||
"web3-api-enabled": true,
|
||||
"local-txs-enabled": false,
|
||||
"pruning-enabled": true,
|
||||
"api-max-duration": 0,
|
||||
"api-max-blocks-per-request": 0,
|
||||
"allow-unfinalized-queries": false,
|
||||
"log-level": "info",
|
||||
"state-sync-enabled": false,
|
||||
"state-sync-skip-resume": true
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
BASEPATH="$(dirname "$0")"
|
||||
backup_dir="/backup"
|
||||
|
||||
if [[ -n $2 ]]; then
|
||||
@@ -11,6 +12,36 @@ else
|
||||
fi
|
||||
fi
|
||||
|
||||
# Function to generate metadata for a single volume
|
||||
generate_volume_metadata() {
|
||||
local volume_key=$1
|
||||
local source_folder=$2
|
||||
local metadata_file=$3
|
||||
|
||||
prefix="/var/lib/docker/volumes/rpc_$volume_key"
|
||||
static_file_list="$BASEPATH/static-file-path-list.txt"
|
||||
|
||||
# Initialize metadata file
|
||||
echo "Static file paths and sizes for volume: rpc_$volume_key" > "$metadata_file"
|
||||
echo "Generated: $(date)" >> "$metadata_file"
|
||||
echo "" >> "$metadata_file"
|
||||
|
||||
# Check each static file path
|
||||
if [[ -f "$static_file_list" ]]; then
|
||||
while IFS= read -r path; do
|
||||
# Check if the path exists
|
||||
if [[ -e "$prefix/_data/$path" ]]; then
|
||||
# Get the size
|
||||
size=$(du -sL "$prefix/_data/$path" 2>/dev/null | awk '{print $1}')
|
||||
# Format size in human-readable format
|
||||
size_formatted=$(echo "$(( size * 1024 ))" | numfmt --to=iec --suffix=B --format="%.2f")
|
||||
# Write to metadata file
|
||||
echo "$size_formatted $path" >> "$metadata_file"
|
||||
fi
|
||||
done < "$static_file_list"
|
||||
fi
|
||||
}
|
||||
|
||||
# Read the JSON input and extract the list of keys
|
||||
keys=$(cat /root/rpc/$1.yml | yaml2json - | jq '.volumes' | jq -r 'keys[]')
|
||||
|
||||
@@ -37,15 +68,37 @@ for key in $keys; do
|
||||
|
||||
folder_size_gb=$(printf "%.0f" "$folder_size")
|
||||
|
||||
target_file="rpc_$key-$(date +'%Y-%m-%d-%H-%M-%S')-${folder_size_gb}G.tar.zst"
|
||||
timestamp=$(date +'%Y-%m-%d-%H-%M-%S')
|
||||
target_file="rpc_$key-${timestamp}-${folder_size_gb}G.tar.zst"
|
||||
metadata_file_name="rpc_$key-${timestamp}-${folder_size_gb}G.txt"
|
||||
|
||||
#echo "$target_file"
|
||||
|
||||
if [[ -n $2 ]]; then
|
||||
# Upload volume archive
|
||||
tar -cf - --dereference "$source_folder" | pv -pterb -s $(du -sb "$source_folder" | awk '{print $1}') | zstd | curl -X PUT --upload-file - "$2/null/uploading-$target_file"
|
||||
curl -X MOVE -H "Destination: /null/$target_file" "$2/null/uploading-$target_file"
|
||||
|
||||
# Generate and upload metadata file
|
||||
echo "Generating metadata for volume: rpc_$key"
|
||||
temp_metadata="/tmp/$metadata_file_name"
|
||||
generate_volume_metadata "$key" "$source_folder" "$temp_metadata"
|
||||
curl -X PUT --upload-file "$temp_metadata" "$2/null/$metadata_file_name"
|
||||
rm -f "$temp_metadata"
|
||||
else
|
||||
# Create volume archive
|
||||
tar -cf - --dereference "$source_folder" | pv -pterb -s $(du -sb "$source_folder" | awk '{print $1}') | zstd -o "/backup/uploading-$target_file"
|
||||
mv "/backup/uploading-$target_file" "/backup/$target_file"
|
||||
|
||||
# Generate metadata file
|
||||
echo "Generating metadata for volume: rpc_$key"
|
||||
generate_volume_metadata "$key" "$source_folder" "/backup/$metadata_file_name"
|
||||
fi
|
||||
done
|
||||
|
||||
# Run show-size.sh to display overall summary
|
||||
echo ""
|
||||
echo "=== Overall Size Summary ==="
|
||||
if [[ -f "$BASEPATH/show-size.sh" ]]; then
|
||||
"$BASEPATH/show-size.sh" "$1" 2>&1
|
||||
fi
|
||||
|
||||
377
backup-peers.sh
Executable file
377
backup-peers.sh
Executable file
@@ -0,0 +1,377 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Script to backup peers from all running nodes
|
||||
# Can be run as a cronjob to periodically backup peer lists
|
||||
# Usage: ./backup-peers.sh [backup-directory] [--verbose]
|
||||
|
||||
BASEPATH="$(dirname "$0")"
|
||||
source $BASEPATH/.env
|
||||
|
||||
# Parse arguments
|
||||
VERBOSE=false
|
||||
BACKUP_DIR=""
|
||||
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
--verbose|-v)
|
||||
VERBOSE=true
|
||||
;;
|
||||
--help|-h)
|
||||
echo "Usage: $0 [backup-directory] [--verbose|-v]"
|
||||
echo ""
|
||||
echo " backup-directory: Optional. Directory to store backups (default: ./peer-backups)"
|
||||
echo " --verbose, -v: Enable verbose output"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
if [ -z "$BACKUP_DIR" ] && [[ ! "$arg" =~ ^- ]]; then
|
||||
BACKUP_DIR="$arg"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Default backup directory if not provided
|
||||
if [ -z "$BACKUP_DIR" ]; then
|
||||
BACKUP_DIR="$BASEPATH/peer-backups"
|
||||
fi
|
||||
|
||||
# Create backup directory if it doesn't exist
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
|
||||
# Timestamp for this backup run
|
||||
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
||||
|
||||
# Blacklist for compose files (same as show-status.sh)
|
||||
blacklist=(
|
||||
"drpc.yml" "drpc-free.yml" "drpc-home.yml" # dshackles
|
||||
"arbitrum-one-mainnet-arbnode-archive-trace.yml" # always behind and no reference rpc
|
||||
"ethereum-beacon-mainnet-lighthouse-pruned-blobs" # can't handle beacon rest api yet
|
||||
"rpc.yml" "monitoring.yml" "ftp.yml" "backup-http.yml" "base.yml" # no rpcs
|
||||
)
|
||||
|
||||
# Path blacklist (read from file if it exists)
|
||||
path_blacklist=()
|
||||
if [ -f "$BASEPATH/path-blacklist.txt" ]; then
|
||||
while IFS= read -r line; do
|
||||
if [ -n "$line" ]; then
|
||||
path_blacklist+=("$line")
|
||||
fi
|
||||
done < "$BASEPATH/path-blacklist.txt"
|
||||
fi
|
||||
|
||||
# Protocol and domain settings
|
||||
if [ -n "$NO_SSL" ]; then
|
||||
PROTO="http"
|
||||
DOMAIN="${DOMAIN:-0.0.0.0}"
|
||||
else
|
||||
PROTO="https"
|
||||
# For HTTPS, DOMAIN should be set
|
||||
if [ -z "$DOMAIN" ]; then
|
||||
echo "Error: DOMAIN variable not found in $BASEPATH/.env" >&2
|
||||
echo "Please set DOMAIN in your .env file" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Function to extract RPC paths from a compose file
|
||||
extract_rpc_paths() {
|
||||
local compose_file="$1"
|
||||
local full_path="$BASEPATH/${compose_file}"
|
||||
|
||||
if [ ! -f "$full_path" ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Extract paths using grep (same method as peer-count.sh)
|
||||
# Try Perl regex first, fallback to extended regex if -P is not supported
|
||||
pathlist=$(cat "$full_path" | grep -oP "stripprefix\.prefixes.*?/\K[^\"]+" 2>/dev/null)
|
||||
if [ $? -ne 0 ] || [ -z "$pathlist" ]; then
|
||||
# Fallback for systems without Perl regex support
|
||||
pathlist=$(cat "$full_path" | grep -oE "stripprefix\.prefixes[^:]*:.*?/([^\"]+)" 2>/dev/null | sed -E 's/.*\/([^"]+)/\1/' | grep -v '^$')
|
||||
fi
|
||||
|
||||
if [ -z "$pathlist" ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo "$pathlist"
|
||||
}
|
||||
|
||||
# Function to check if a path should be included
|
||||
should_include_path() {
|
||||
local path="$1"
|
||||
|
||||
# Always exclude paths ending with /node (consensus client endpoints)
|
||||
if [[ "$path" =~ /node$ ]]; then
|
||||
if [ "$VERBOSE" = true ]; then
|
||||
echo " Path $path excluded: ends with /node"
|
||||
fi
|
||||
return 1
|
||||
fi
|
||||
|
||||
for word in "${path_blacklist[@]}"; do
|
||||
# Unescape the pattern (handle \-node -> -node)
|
||||
pattern=$(echo "$word" | sed 's/\\-/-/g')
|
||||
# Use -- to prevent grep from interpreting pattern as options
|
||||
if echo "$path" | grep -qE -- "$pattern"; then
|
||||
if [ "$VERBOSE" = true ]; then
|
||||
echo " Path $path matches blacklist pattern: $word"
|
||||
fi
|
||||
return 1
|
||||
fi
|
||||
done
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
# Function to backup peers from a single RPC endpoint
|
||||
backup_peers_from_path() {
|
||||
local compose_file="$1"
|
||||
local path="$2"
|
||||
local compose_name="${compose_file%.yml}"
|
||||
|
||||
# Sanitize compose name and path for filename
|
||||
local safe_compose_name=$(echo "$compose_name" | sed 's/[^a-zA-Z0-9_-]/_/g')
|
||||
local safe_path=$(echo "$path" | sed 's|[^a-zA-Z0-9_-]|_|g')
|
||||
|
||||
# Ensure path starts with /
|
||||
if [[ ! "$path" =~ ^/ ]]; then
|
||||
path="/$path"
|
||||
fi
|
||||
|
||||
local RPC_URL="${PROTO}://${DOMAIN}${path}"
|
||||
|
||||
# Try admin_peers first (returns detailed peer info)
|
||||
response=$(curl --ipv4 -L -s -X POST "$RPC_URL" \
|
||||
-H "Content-Type: application/json" \
|
||||
--data '{"jsonrpc":"2.0","method":"admin_peers","params":[],"id":1}' \
|
||||
--max-time 10 2>/dev/null)
|
||||
|
||||
# Check for curl errors
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "✗ Failed to connect to $compose_file ($path): curl error"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Check if we got a valid response
|
||||
if echo "$response" | jq -e '.result' > /dev/null 2>&1; then
|
||||
peer_count=$(echo "$response" | jq -r '.result | length')
|
||||
|
||||
if [ "$peer_count" -gt 0 ]; then
|
||||
# Extract enodes
|
||||
enodes=$(echo "$response" | jq -r '.result[].enode' 2>/dev/null | grep -v '^$' | grep -v '^null$')
|
||||
|
||||
if [ -n "$enodes" ]; then
|
||||
# Create backup file
|
||||
local backup_file="$BACKUP_DIR/${safe_compose_name}__${safe_path}__${TIMESTAMP}.json"
|
||||
|
||||
# Create JSON structure with metadata
|
||||
{
|
||||
echo "{"
|
||||
echo " \"compose_file\": \"$compose_file\","
|
||||
echo " \"rpc_path\": \"$path\","
|
||||
echo " \"rpc_url\": \"$RPC_URL\","
|
||||
echo " \"timestamp\": \"$TIMESTAMP\","
|
||||
echo " \"peer_count\": $peer_count,"
|
||||
echo " \"peers\": ["
|
||||
|
||||
# Write enodes as JSON array
|
||||
first=true
|
||||
while IFS= read -r enode; do
|
||||
if [ -z "$enode" ] || [ "$enode" = "null" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
if [ "$first" = true ]; then
|
||||
first=false
|
||||
else
|
||||
echo ","
|
||||
fi
|
||||
|
||||
# Escape the enode string for JSON
|
||||
escaped_enode=$(echo "$enode" | sed 's/\\/\\\\/g' | sed 's/"/\\"/g')
|
||||
echo -n " \"$escaped_enode\""
|
||||
done <<< "$enodes"
|
||||
|
||||
echo ""
|
||||
echo " ]"
|
||||
echo "}"
|
||||
} > "$backup_file"
|
||||
|
||||
# Also create a simple text file with just enodes (one per line) for easy playback
|
||||
local backup_txt_file="$BACKUP_DIR/${safe_compose_name}__${safe_path}__${TIMESTAMP}.txt"
|
||||
echo "$enodes" > "$backup_txt_file"
|
||||
|
||||
# Extract just the filename for display
|
||||
backup_filename=$(basename "$backup_file" 2>/dev/null || echo "${backup_file##*/}")
|
||||
echo "✓ Backed up $peer_count peer(s) from $compose_file ($path) to $backup_filename"
|
||||
return 0
|
||||
fi
|
||||
else
|
||||
if [ "$VERBOSE" = true ]; then
|
||||
echo "⚠ No peers found for $compose_file ($path)"
|
||||
fi
|
||||
return 2 # Return 2 for "no peers" (not a failure, just nothing to backup)
|
||||
fi
|
||||
else
|
||||
# Check if this is a method not found error (consensus client or admin API disabled)
|
||||
error_code=$(echo "$response" | jq -r '.error.code // empty' 2>/dev/null)
|
||||
error_message=$(echo "$response" | jq -r '.error.message // empty' 2>/dev/null)
|
||||
|
||||
if [ -n "$error_code" ] && [ "$error_code" != "null" ]; then
|
||||
# Check if it's a method not found error (likely consensus client)
|
||||
if [ "$error_code" = "-32601" ] || [ "$error_code" = "32601" ]; then
|
||||
# Method not found - likely consensus client, skip silently
|
||||
return 1
|
||||
else
|
||||
# Other error
|
||||
echo "✗ $compose_file ($path): RPC error $error_code - ${error_message:-unknown error}"
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Try net_peerCount as fallback (but we can't get enodes from this)
|
||||
response=$(curl --ipv4 -L -s -X POST "$RPC_URL" \
|
||||
-H "Content-Type: application/json" \
|
||||
--data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}' \
|
||||
--max-time 10 2>/dev/null)
|
||||
|
||||
if echo "$response" | jq -e '.result' > /dev/null 2>&1; then
|
||||
hex_value=$(echo "$response" | jq -r '.result')
|
||||
# Convert hex to decimal (net_peerCount returns hex like "0x10")
|
||||
peer_count=$((hex_value))
|
||||
if [ "$peer_count" -gt 0 ]; then
|
||||
echo "⚠ $compose_file ($path) has $peer_count peer(s) but admin_peers not available (cannot backup enodes)"
|
||||
else
|
||||
echo "⚠ $compose_file ($path): no peers connected"
|
||||
fi
|
||||
else
|
||||
# Couldn't get peer count either
|
||||
if [ -z "$response" ]; then
|
||||
echo "✗ $compose_file ($path): no response from RPC endpoint"
|
||||
else
|
||||
echo "✗ $compose_file ($path): RPC endpoint not accessible or invalid"
|
||||
fi
|
||||
fi
|
||||
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Main execution
|
||||
if [ -z "$COMPOSE_FILE" ]; then
|
||||
echo "Error: COMPOSE_FILE not found in $BASEPATH/.env" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Split COMPOSE_FILE by colon
|
||||
IFS=':' read -ra parts <<< "$COMPOSE_FILE"
|
||||
|
||||
total_backed_up=0
|
||||
total_failed=0
|
||||
total_skipped=0
|
||||
total_no_peers=0
|
||||
|
||||
echo "Starting peer backup at $(date)"
|
||||
echo "Backup directory: $BACKUP_DIR"
|
||||
echo "COMPOSE_FILE contains: ${#parts[@]} compose file(s)"
|
||||
echo ""
|
||||
|
||||
# Process each compose file
|
||||
for part in "${parts[@]}"; do
|
||||
# Handle compose file name - part might already have .yml or might not
|
||||
if [[ "$part" == *.yml ]]; then
|
||||
compose_file="$part"
|
||||
else
|
||||
compose_file="${part}.yml"
|
||||
fi
|
||||
|
||||
# Check if file exists
|
||||
if [ ! -f "$BASEPATH/$compose_file" ]; then
|
||||
echo "⚠ Skipping $compose_file: file not found"
|
||||
total_skipped=$((total_skipped + 1))
|
||||
continue
|
||||
fi
|
||||
|
||||
# Check blacklist
|
||||
include=true
|
||||
for word in "${blacklist[@]}"; do
|
||||
# Use -- to prevent grep from interpreting pattern as options
|
||||
if echo "$compose_file" | grep -qE -- "$word"; then
|
||||
include=false
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$include" = false ]; then
|
||||
total_skipped=$((total_skipped + 1))
|
||||
continue
|
||||
fi
|
||||
|
||||
# Extract RPC paths from compose file
|
||||
paths=$(extract_rpc_paths "$compose_file")
|
||||
|
||||
if [ -z "$paths" ]; then
|
||||
echo "⚠ Skipping $compose_file: no RPC paths found"
|
||||
total_skipped=$((total_skipped + 1))
|
||||
continue
|
||||
fi
|
||||
|
||||
# Process each path
|
||||
path_found=false
|
||||
# Use while loop with read to safely handle paths with spaces or special characters
|
||||
while IFS= read -r path || [ -n "$path" ]; do
|
||||
# Skip empty paths
|
||||
if [ -z "$path" ]; then
|
||||
continue
|
||||
fi
|
||||
# Check path blacklist
|
||||
if should_include_path "$path"; then
|
||||
path_found=true
|
||||
backup_peers_from_path "$compose_file" "$path"
|
||||
exit_code=$?
|
||||
if [ $exit_code -eq 0 ]; then
|
||||
total_backed_up=$((total_backed_up + 1))
|
||||
elif [ $exit_code -eq 2 ]; then
|
||||
# No peers (not a failure)
|
||||
total_no_peers=$((total_no_peers + 1))
|
||||
else
|
||||
total_failed=$((total_failed + 1))
|
||||
fi
|
||||
else
|
||||
if [ "$VERBOSE" = true ]; then
|
||||
echo "⚠ Skipping path $path from $compose_file: blacklisted"
|
||||
fi
|
||||
fi
|
||||
done <<< "$paths"
|
||||
|
||||
if [ "$path_found" = false ]; then
|
||||
total_skipped=$((total_skipped + 1))
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "Backup Summary"
|
||||
echo "=========================================="
|
||||
echo "Total nodes backed up: $total_backed_up"
|
||||
if [ $total_no_peers -gt 0 ]; then
|
||||
echo "Total nodes with no peers: $total_no_peers"
|
||||
fi
|
||||
echo "Total nodes failed: $total_failed"
|
||||
echo "Total nodes skipped: $total_skipped"
|
||||
echo "Backup directory: $BACKUP_DIR"
|
||||
echo "Completed at $(date)"
|
||||
echo ""
|
||||
|
||||
# Optional: Clean up old backups (keep last 30 days)
|
||||
if [ -n "$CLEANUP_OLD_BACKUPS" ] && [ "$CLEANUP_OLD_BACKUPS" = "true" ]; then
|
||||
echo "Cleaning up backups older than 30 days..."
|
||||
find "$BACKUP_DIR" -name "*.json" -type f -mtime +30 -delete
|
||||
find "$BACKUP_DIR" -name "*.txt" -type f -mtime +30 -delete
|
||||
echo "Cleanup complete"
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
op/erigon/base-mainnet-op-erigon-archive-trace.yml
|
||||
@@ -1 +0,0 @@
|
||||
op/reth/base-mainnet-op-reth-archive-trace.yml
|
||||
@@ -1 +0,0 @@
|
||||
op/reth/base-mainnet-op-reth-pruned-trace.yml
|
||||
@@ -1 +0,0 @@
|
||||
op/geth/base-mainnet-op-geth-pruned-pebble-path.yml
|
||||
@@ -1 +0,0 @@
|
||||
op/reth/base-sepolia-op-reth-pruned-trace.yml
|
||||
@@ -1 +0,0 @@
|
||||
op/geth/base-sepolia-op-geth-pruned-pebble-path.yml
|
||||
@@ -1,27 +0,0 @@
|
||||
# Build stage
|
||||
FROM golang:1.21-alpine AS builder
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Initialize Go modules if not already done
|
||||
RUN go mod init benchmark-proxy
|
||||
|
||||
# Add the dependency before building
|
||||
RUN go get github.com/gorilla/websocket
|
||||
|
||||
# Copy source code
|
||||
COPY . .
|
||||
|
||||
# Build the application with CGO disabled for a static binary
|
||||
RUN CGO_ENABLED=0 go build -ldflags="-s -w" -o benchmark-proxy main.go
|
||||
|
||||
# Runtime stage (if you're using a multi-stage build)
|
||||
FROM alpine:latest
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Copy the binary from the build stage
|
||||
COPY --from=builder /app/benchmark-proxy .
|
||||
|
||||
# Run the application
|
||||
ENTRYPOINT ["./benchmark-proxy"]
|
||||
@@ -1,7 +0,0 @@
|
||||
module benchmark-proxy
|
||||
|
||||
go 1.21
|
||||
|
||||
require github.com/gorilla/websocket v1.5.1
|
||||
|
||||
require golang.org/x/net v0.17.0 // indirect
|
||||
@@ -1,4 +0,0 @@
|
||||
github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY=
|
||||
github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY=
|
||||
golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM=
|
||||
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1 +0,0 @@
|
||||
berachain/reth/berachain-bartio-reth-archive-trace.yml
|
||||
@@ -1 +0,0 @@
|
||||
berachain/reth/berachain-bepolia-reth-archive-trace.yml
|
||||
@@ -1 +0,0 @@
|
||||
berachain/reth/berachain-mainnet-reth-archive-trace.yml
|
||||
@@ -1 +0,0 @@
|
||||
berachain/reth/berachain-mainnet-reth-pruned-trace.yml
|
||||
185
berachain/geth/berachain-bepolia-geth-pruned-pebble-path.yml
Normal file
185
berachain/geth/berachain-bepolia-geth-pruned-pebble-path.yml
Normal file
@@ -0,0 +1,185 @@
|
||||
---
|
||||
x-logging-defaults: &logging-defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
# Usage:
|
||||
#
|
||||
# mkdir rpc && cd rpc
|
||||
#
|
||||
# git init
|
||||
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
|
||||
# git fetch origin vibe
|
||||
# git checkout origin/vibe
|
||||
#
|
||||
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
|
||||
#
|
||||
# env
|
||||
# ...
|
||||
# IP=$(curl ipinfo.io/ip)
|
||||
# DOMAIN=${IP}.traefik.me
|
||||
# COMPOSE_FILE=base.yml:rpc.yml:berachain/geth/berachain-bepolia-geth-pruned-pebble-path.yml
|
||||
#
|
||||
# docker compose up -d
|
||||
#
|
||||
# curl -X POST https://${IP}.traefik.me/berachain-bepolia-geth \
|
||||
# -H "Content-Type: application/json" \
|
||||
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||
|
||||
services:
|
||||
berachain-bepolia-geth:
|
||||
image: ${BERACHAIN_GETH_IMAGE:-ghcr.io/berachain/bera-geth}:${BERACHAIN_BEPOLIA_GETH_VERSION:-v1.011607.0}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
# net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
user: root
|
||||
ports:
|
||||
- 14888:14888
|
||||
- 14888:14888/udp
|
||||
expose:
|
||||
- 8545
|
||||
- 6060
|
||||
- 8551
|
||||
environment:
|
||||
- CHAINID=80069
|
||||
- CHAINNAME=bepolia
|
||||
- CHAIN_SPEC=testnet
|
||||
- GETH_BOOTNODES=enode://879752877fe08e483eba228b7544ff2de4a90e8ddaa59f122dfbc5c3689ea3030a0bfe4532d6a411a936dadce84e7a89086dca39dc39b9119603d87469010d9e@34.152.29.103:30303,enode://11f28864a15162c66b4b23d20b91fe08fda1d541df778d8db33be72558e80489a785d3fcc870926d10b7a6b848c7c6319bc215481319e527ce54ac139c2f44dc@34.118.159.247:30303,enode://47f41b9ab5a45e880a78330d2ae3f95a61f5cb41f203bbc9c9ff0e37778fc6c7fd46a6ee103e65ac36df8c024075a33f535a03cd8d800800c27fa2699fa0182b@34.47.28.251:30303,enode://fe6d2429b582de7daf387c6e5436f05d9185965267b72b8b6b4924125b50afdad765a820213d73d2afbfe64a721160a1a94750b4874ed97ccbe97c51443d1c42@34.95.21.165:30303,enode://1273d68cb5a884630aff8c35a30f643ad739461a5f7c8d2d691dc65547d5ad023829e1b6bf128edddd032047cb5c13e9dcd0f93a5de4aa5b958cef5970541863@34.159.207.112:30303,enode://fac9c2a0f719ec0ebc9021e88ad32eb7c05f4f351993dab6e4c86ae3ef5a47cade21749281263221c2b5583437893f957ac282858fd8a00f75f9a495eb53ae4e@34.141.54.42:30303,enode://5c0d582c19ea9f19928cfd6b7e156372d051b5720f67a444c38b671b8119bb097abfd1e4b868a389ab4a65bb9b405ef837df0ae195c0f32a33c61c39ca54e8ab@34.107.71.151:30303,enode://59aec227e87f4cd7c0a24c6cb0f870ef77abcc0c6d640f5a536c597a206b3505f7963f6459c265952b7bed3c3f260edf8a1412bbdb05f0e59d6bd612dc4bf077@34.141.48.88:30303,enode://281e3927839de398cb571279b324b6251d92c8de79263648f24dd4e451499a7fb336354bd4b7dc616e439f804cdd518fe49789f20b060c6426020de2c1cb285a@35.240.139.2:30303,enode://ae3f2e3f2caffc82aa0a5f5c6036def3d0be046b9245651b61567b4743c3c4937c08cb075d4ac543b163045942028384f3ef93bb25f7d500b644a2aab78f6b46@34.87.140.47:30303,enode://59e79f22bbf1645c60666ba6c17c54845080473df80711807fb3a4fbefc26278f78c43fa44ea6e52db38c57f1fccf6caa2de7589ca6cce8e161c3120e7a8d0d8@35.198.214.183:30303,enode://91d6e1878f5ab434a36625ac9017b792179324d42f4650a8dcc38774578d7ffb68882ec56861155e738eb62a7365b8463bd26886523f60edcfbf6137b43b9b65@35.240.234.137:30303,enode://f55dc8bac635b9c3b9fad688e3200c6b0744e2930d8d8a8e91d1effc0cd91b0547da3eac6d8d1431f0dd130ccc20f3c856fc90e32002bfc1e27d3286eef8c570@34.47.125.153:30303,enode://13da5e4ff1ab3481966f8d83309d8bd898ef5fa56355da57e683bdcc26b4c205be40341c87236934610d0c0bdddf11f6cef495966bba0092465839b8942bc54c@34.47.93.104:30303,enode://c2d43cba3380df975e78befc7294fe07a042eab1c2b743bdf436274b884bcdd0ef218821ff24732ff2106bf796964ada13dbeb42e27756f2491710be402fce59@34.64.123.223:30303,enode://f5b93e79932028a30bacb1b1cd7e7d42b30fe69640c0081bb51e29483bfe715c698dfcf50a309f208743c0ef07884afa39d0c96c6e56a8e58ce7ff1181fdffa0@34.22.89.170:30303
|
||||
command:
|
||||
- --bootnodes=enode://879752877fe08e483eba228b7544ff2de4a90e8ddaa59f122dfbc5c3689ea3030a0bfe4532d6a411a936dadce84e7a89086dca39dc39b9119603d87469010d9e@34.152.29.103:30303,enode://11f28864a15162c66b4b23d20b91fe08fda1d541df778d8db33be72558e80489a785d3fcc870926d10b7a6b848c7c6319bc215481319e527ce54ac139c2f44dc@34.118.159.247:30303,enode://47f41b9ab5a45e880a78330d2ae3f95a61f5cb41f203bbc9c9ff0e37778fc6c7fd46a6ee103e65ac36df8c024075a33f535a03cd8d800800c27fa2699fa0182b@34.47.28.251:30303,enode://fe6d2429b582de7daf387c6e5436f05d9185965267b72b8b6b4924125b50afdad765a820213d73d2afbfe64a721160a1a94750b4874ed97ccbe97c51443d1c42@34.95.21.165:30303,enode://1273d68cb5a884630aff8c35a30f643ad739461a5f7c8d2d691dc65547d5ad023829e1b6bf128edddd032047cb5c13e9dcd0f93a5de4aa5b958cef5970541863@34.159.207.112:30303,enode://fac9c2a0f719ec0ebc9021e88ad32eb7c05f4f351993dab6e4c86ae3ef5a47cade21749281263221c2b5583437893f957ac282858fd8a00f75f9a495eb53ae4e@34.141.54.42:30303,enode://5c0d582c19ea9f19928cfd6b7e156372d051b5720f67a444c38b671b8119bb097abfd1e4b868a389ab4a65bb9b405ef837df0ae195c0f32a33c61c39ca54e8ab@34.107.71.151:30303,enode://59aec227e87f4cd7c0a24c6cb0f870ef77abcc0c6d640f5a536c597a206b3505f7963f6459c265952b7bed3c3f260edf8a1412bbdb05f0e59d6bd612dc4bf077@34.141.48.88:30303,enode://281e3927839de398cb571279b324b6251d92c8de79263648f24dd4e451499a7fb336354bd4b7dc616e439f804cdd518fe49789f20b060c6426020de2c1cb285a@35.240.139.2:30303,enode://ae3f2e3f2caffc82aa0a5f5c6036def3d0be046b9245651b61567b4743c3c4937c08cb075d4ac543b163045942028384f3ef93bb25f7d500b644a2aab78f6b46@34.87.140.47:30303,enode://59e79f22bbf1645c60666ba6c17c54845080473df80711807fb3a4fbefc26278f78c43fa44ea6e52db38c57f1fccf6caa2de7589ca6cce8e161c3120e7a8d0d8@35.198.214.183:30303,enode://91d6e1878f5ab434a36625ac9017b792179324d42f4650a8dcc38774578d7ffb68882ec56861155e738eb62a7365b8463bd26886523f60edcfbf6137b43b9b65@35.240.234.137:30303,enode://f55dc8bac635b9c3b9fad688e3200c6b0744e2930d8d8a8e91d1effc0cd91b0547da3eac6d8d1431f0dd130ccc20f3c856fc90e32002bfc1e27d3286eef8c570@34.47.125.153:30303,enode://13da5e4ff1ab3481966f8d83309d8bd898ef5fa56355da57e683bdcc26b4c205be40341c87236934610d0c0bdddf11f6cef495966bba0092465839b8942bc54c@34.47.93.104:30303,enode://c2d43cba3380df975e78befc7294fe07a042eab1c2b743bdf436274b884bcdd0ef218821ff24732ff2106bf796964ada13dbeb42e27756f2491710be402fce59@34.64.123.223:30303,enode://f5b93e79932028a30bacb1b1cd7e7d42b30fe69640c0081bb51e29483bfe715c698dfcf50a309f208743c0ef07884afa39d0c96c6e56a8e58ce7ff1181fdffa0@34.22.89.170:30303
|
||||
- --datadir=/root/.ethereum
|
||||
- --db.engine=pebble
|
||||
- --gcmode=full
|
||||
- --maxpeers=50
|
||||
- --metrics
|
||||
- --metrics.addr=0.0.0.0
|
||||
- --metrics.port=6060
|
||||
- --nat=extip:${IP}
|
||||
- --port=14888
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.txfeecap=0
|
||||
- --state.scheme=path
|
||||
- --syncmode=snap
|
||||
- --http
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,debug,admin,txpool,engine
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.api=eth,net,web3,debug,admin,txpool,engine
|
||||
- --ws.origins=*
|
||||
- --ws.port=8545
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --authrpc.vhosts=*
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${BERACHAIN_BEPOLIA_GETH_PRUNED_PEBBLE_PATH_DATA:-berachain-bepolia-geth-pruned-pebble-path}:/root/.ethereum
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
- /slowdisk:/slowdisk
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=true
|
||||
- prometheus-scrape.port=6060
|
||||
- prometheus-scrape.path=/debug/metrics/prometheus
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.berachain-bepolia-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/berachain-bepolia-geth
|
||||
- traefik.http.services.berachain-bepolia-geth-pruned-pebble-path.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.berachain-bepolia-geth-pruned-pebble-path.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.berachain-bepolia-geth-pruned-pebble-path.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.berachain-bepolia-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && (Path(`/berachain-bepolia-geth`) || Path(`/berachain-bepolia-geth/`))}
|
||||
- ${NO_SSL:+traefik.http.routers.berachain-bepolia-geth-pruned-pebble-path.rule=Path(`/berachain-bepolia-geth`) || Path(`/berachain-bepolia-geth/`)}
|
||||
- traefik.http.routers.berachain-bepolia-geth-pruned-pebble-path.middlewares=berachain-bepolia-geth-pruned-pebble-path-stripprefix, ipallowlist
|
||||
|
||||
berachain-bepolia-geth-node:
|
||||
build:
|
||||
context: ./berachain
|
||||
dockerfile: beacon-kit.Dockerfile
|
||||
args:
|
||||
BEACONKIT_VERSION: ${BERACHAIN_BEPOLIA_BEACON_KIT_VERSION:-v1.3.4}
|
||||
BEACONKIT_IMAGE: ${BERACHAIN_BEPOLIA_BEACON_KIT_IMAGE:-ghcr.io/berachain/beacon-kit}
|
||||
ports:
|
||||
- 19888:19888
|
||||
- 19888:19888/udp
|
||||
environment:
|
||||
- AUTH_RPC=http://berachain-bepolia-geth:8551
|
||||
- CHAINID=80069
|
||||
- CHAINNAME=bepolia
|
||||
- CHAIN_SPEC=testnet
|
||||
- IP=${IP}
|
||||
- MONIKER=d${DOMAIN:-local}
|
||||
- P2P_PORT=19888
|
||||
- PERSISTENT_PEERS=${BERACHAIN_BEPOLIA_BEACON_KIT_PEERS:-6d3a988ad84e02c37249b78628dbaf344784ea1a@108.129.86.179:30175,73ab55f52534c394f769b3a89d22eb349f053f3b@54.155.2.82:26656,7c4df69bc100d0eff84eefcf294f91c7aadebfd2@150.136.10.166:26656,b74208a6bcd76b6d06d4f308f1dd6c7b6d0a9f29@129.213.43.186:26656,233133cf27dd844af9b78e89625f001864bcfc92@57.129.73.89:32001,3d254fc9ed08346aedb71ccdf90bea67f7cbd00b@144.217.189.120:26656,e726816f42831689eab9378d5d577f1d06d25716@134.65.195.117:36656,f14545716ceeafba11f6ecd64d8d77aaf16d40c0@150.136.41.96:26656,737a435f2cb00c1e7b945cc52d7864eb7b70b992@185.242.112.107:16347,7724febbb335af74669fd8d8a88d37401c657386@129.213.27.223:26656,8bac4ade15a1d2f8665b62c71bf9d27112dbbbd6@40.160.22.31:26656,a3f5727fa125cdcd247b893f267f406c3f7d44a5@15.204.104.159:26656,79dee163a6ddedf2cb1edd0cbcbb26722c0e7f86@148.113.216.106:26656,d1251c410183c5357161a4a1812f35144e9db560@150.136.211.15:26656,a5ccf1b754651ec080dabc7e065d078ab2bc83bb@34.152.4.236:26656,0f3c31b2cef708275ad846fce4f30a8e0fbceecc@150.136.220.194:26656,a5f001d5e032caf46b81bf5d067b190ebf519f28@150.136.149.242:26656,55747a55410a3dbda9479d4cbb0a57016e1a4587@34.126.82.251:26656,5bb0cf7aab12a40ca920f84eddb9485b9d9284e1@23.227.222.185:37557,33b7a034787d7dbe95044ec140a34bba691b7310@3.252.67.180:30175,986f47732f3297c746d995696bb632a8735e2f30@82.197.183.13:26656,83983b76ba834110c4fe03b63d59f317b9c837c2@34.159.191.94:26656,76c1693781b9070d96f8cd640bc46d29e694fef5@74.15.24.112:21001,9805ae8ca90374c4cc3a0b1ba1d32a541e5da0c6@87.246.108.86:30715,068d83eb15836cd1777b06442e3c52d5e9bd3a99@164.152.161.131:37557,8a5908219e7a566acb7fbad157b37c32f2ff7e92@217.22.153.180:26656,e2f056e84cad629dfb7e7b0ca82060f0f5d45363@38.18.230.23:16347,e82aa9e1c41397cfc92f9af24a0cf5b3f1839dcd@91.198.59.11:27756,b82d334d16385c16148c6852ed956abcdae03b5e@38.114.121.59:16347,6da7d1e06161238fe5855eea0710dcd71ef00535@40.160.22.37:26656,e5f97876c7a3d39013b2eef291ca5670ef595b30@66.70.164.133:26656,c8ac56bc9045c720a4dbc541598e5b1a76ec7e6e@134.65.194.144:37557,b8c2dc40585e32c28c69d8c14818c9828d76709a@65.108.98.89:26656,e1b058e5cfa2b836ddaa496b10911da62dcf182e@169.155.168.156:36656,e93fbb087acb7c0f8ca850a796310bb745b510b6@23.227.222.131:36656,9989f4bb3e3b6975f7d056aaf150e7f10f046344@34.47.86.5:26656,6ea643a1bdf026460769f3e89e2bd213d610281f@44.246.151.147:26656,b442414dda8fa23e893b8ea703ebf01ce0655e14@162.19.240.10:26656}
|
||||
- SEEDS=${BERACHAIN_BEPOLIA_BEACON_KIT_SEEDS:-9aa463497679e18a8a6ddc5e8503071255ce3844@34.47.83.64:26656,52b8bfb58c1d60774dd55310b24740569587ef5e@34.64.49.76:26656,1c8aa4af80684c29904a09044ffafba2e1814a30@34.64.211.6:26656,9989f4bb3e3b6975f7d056aaf150e7f10f046344@34.64.76.252:26656,30ebf8be0523a060b6b2baca1095abc92cca5caa@34.124.255.167:26656,55747a55410a3dbda9479d4cbb0a57016e1a4587@34.143.242.236:26656,f833e6317680a4dec3e2c6a11c8f4361bcff0c89@34.142.137.107:26656,65d3fb4f953532a9cc1f3a9417831419a7847ad8@34.143.221.131:26656,27d1edaed99a711a3f2862cc95c6361bc8c08cb9@34.159.202.238:26656,e56e965bd53832d47cf2f7cc2b7118c20c0c5b19@34.89.234.189:26656,f0f1a94a45f894be013ba16ebac09426aeadfe3b@34.159.175.241:26656,58b349f2d3f2206798aae4f8d87141f095095503@34.159.220.160:26656,d095b955e4ee6e48d6ed821179d8de87725f2ed7@35.203.95.212:26656,9499000274a522d85f91dbdac26945bbe2a144ba@35.234.244.49:26656,33ad9c7b2fa9cf0c5425d26af9a2af9d75600a9c@35.203.75.59:26656,a5ccf1b754651ec080dabc7e065d078ab2bc83bb@34.95.45.160:26656}
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${BERACHAIN_BEPOLIA_GETH_PRUNED_PEBBLE_PATH__BEACON_KIT_DATA:-berachain-bepolia-geth-pruned-pebble-path_beacon-kit}:/root/.beacond/data
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
- berachain-bepolia-geth-pruned-pebble-path_config:/root/.beacond/config
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=false
|
||||
|
||||
volumes:
|
||||
berachain-bepolia-geth-pruned-pebble-path:
|
||||
berachain-bepolia-geth-pruned-pebble-path_beacon-kit:
|
||||
berachain-bepolia-geth-pruned-pebble-path_config:
|
||||
|
||||
x-upstreams:
|
||||
- id: $${ID}
|
||||
labels:
|
||||
provider: $${PROVIDER}
|
||||
connection:
|
||||
generic:
|
||||
rpc:
|
||||
url: $${RPC_URL}
|
||||
ws:
|
||||
frameSize: 20Mb
|
||||
msgSize: 50Mb
|
||||
url: $${WS_URL}
|
||||
chain: berachain-bepolia
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
methods:
|
||||
disabled:
|
||||
# not compatible with path state scheme
|
||||
- name: debug_traceBlockByHash
|
||||
enabled:
|
||||
- name: txpool_content # TODO: should be disabled for rollup nodes
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
...
|
||||
183
berachain/geth/berachain-mainnet-geth-pruned-pebble-path.yml
Normal file
183
berachain/geth/berachain-mainnet-geth-pruned-pebble-path.yml
Normal file
@@ -0,0 +1,183 @@
|
||||
---
|
||||
x-logging-defaults: &logging-defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
# Usage:
|
||||
#
|
||||
# mkdir rpc && cd rpc
|
||||
#
|
||||
# git init
|
||||
# git remote add origin https://github.com/StakeSquid/ethereum-rpc-docker.git
|
||||
# git fetch origin vibe
|
||||
# git checkout origin/vibe
|
||||
#
|
||||
# docker run --rm alpine sh -c "printf '0x'; head -c32 /dev/urandom | xxd -p -c 64" > .jwtsecret
|
||||
#
|
||||
# env
|
||||
# ...
|
||||
# IP=$(curl ipinfo.io/ip)
|
||||
# DOMAIN=${IP}.traefik.me
|
||||
# COMPOSE_FILE=base.yml:rpc.yml:berachain/geth/berachain-mainnet-geth-pruned-pebble-path.yml
|
||||
#
|
||||
# docker compose up -d
|
||||
#
|
||||
# curl -X POST https://${IP}.traefik.me/berachain-mainnet-geth \
|
||||
# -H "Content-Type: application/json" \
|
||||
# --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||
|
||||
services:
|
||||
berachain-mainnet-geth:
|
||||
image: ${BERACHAIN_GETH_IMAGE:-ghcr.io/berachain/bera-geth}:${BERACHAIN_MAINNET_GETH_VERSION:-v1.011607.0}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
net.ipv4.tcp_no_metrics_save: 1 # Disable metrics cache
|
||||
net.ipv4.tcp_rmem: 4096 87380 16777216 # Increase TCP read buffers
|
||||
net.ipv4.tcp_wmem: 4096 87380 16777216 # Increase TCP write buffers
|
||||
net.core.somaxconn: 32768 # Higher connection queue
|
||||
# Memory/Connection Management
|
||||
# net.core.netdev_max_backlog: 50000 # Increase network buffer
|
||||
net.ipv4.tcp_max_syn_backlog: 30000 # More SYN requests
|
||||
net.ipv4.tcp_max_tw_buckets: 2000000 # Allow more TIME_WAIT sockets
|
||||
ulimits:
|
||||
nofile: 1048576 # Max open files (for RPC/WS connections)
|
||||
user: root
|
||||
ports:
|
||||
- 11562:11562
|
||||
- 11562:11562/udp
|
||||
expose:
|
||||
- 8545
|
||||
- 6060
|
||||
- 8551
|
||||
environment:
|
||||
- CHAINID=80094
|
||||
- CHAINNAME=mainnet
|
||||
- CHAIN_SPEC=mainnet
|
||||
- GETH_BOOTNODES=enode://0c5a4a3c0e81fce2974e4d317d88df783731183d534325e32e0fdf8f4b119d7889fa254d3a38890606ec300d744e2aa9c87099a4a032f5c94efe53f3fcdfecfe@34.64.176.79:30303,enode://b6a3137d3a36ef37c4d31843775a9dc293f41bcbde33b6309c80b1771b6634827cd188285136a57474427bd8845adc2f6fe2e0b106bd58d14795b08910b9c326@34.64.181.70:30303,enode://0b6633300614bc2b9749aee0cace7a091ec5348762aee7b1d195f7616d03a9409019d9bef336624bab72e0d069cd4cf0b0de6fbbf53f04f6b6e4c5b39c6bdca6@34.64.39.31:30303,enode://552b001abebb5805fcd734ad367cd05d9078d18f23ec598d7165460fadcfc51116ad95c418f7ea9a141aa8cbc496c8bea3322b67a5de0d3380f11aab1a797513@34.64.183.158:30303,enode://5b037f66099d5ded86eb7e1619f6d06ceb15609e8cc345ced22a4772b06178004e1490a3cd32fd1222789de4c6e4021c2d648a3d750f6d5323e64b771bbd8de7@34.87.142.180:30303,enode://846db253c53753d3ea1197aec296306dc84c25f3afdf142b65cb0fe0f984de55072daa3bbf05a9aea046a38a2292403137b6eafefd5646fcf62120b74e3b898d@34.142.170.110:30303,enode://64b7f6ee9bcd942ad4949c70f2077627f078a057dfd930e6e904e12643d8952f5ae87c91e24559765393f244a72c9d5c011d7d5176e59191d38f315db85a20f5@34.126.161.16:30303,enode://cf4d19bfb8ec507427ec882bac0bac85a0c8c9ddaa0ec91b773bb614e5e09d107cd9fbe323b96f62f31c493f8f42cc5495c18b87c08560c5dea1dfd25256dcf6@35.247.162.2:30303,enode://bb7e44178543431feac8f0ee3827056b7b84d8235b802a8bdbbcd4939dab7f7dd2579ff577a38b002bb0139792af67abd2dd5c9f4f85b8da6e914fa76dca82bc@35.198.150.35:30303,enode://8fef1f5df45e7b31be00a21e1da5665d5a5f5bf4c379086b843f03eade941bdd157f08c95b31880c492577edb9a9b185df7191eaebf54ab06d5bd683b289f3af@34.107.7.241:30303,enode://ce9c87cfe089f6811d26c96913fa3ec10b938d9017fc6246684c74a33679ee34ceca9447180fb509e37bf2b706c2877a82085d34bfd83b5b520ee1288b0fc32f@35.198.109.49:30303,enode://713657eb6a53feadcbc47e634ad557326a51eb6818a3e19a00a8111492f50a666ccbf2f5d334d247ecf941e68d242ef5c3b812b63c44d381ef11f79c2cdb45c7@34.141.15.100:30303,enode://d071fa740e063ce1bb9cdc2b7937baeff6dc4000f91588d730a731c38a6ff0d4015814812c160fab8695e46f74b9b618735368ea2f16db4d785f16d29b3fb7b0@35.203.2.210:30303,enode://ffc452fe451a2e5f89fe634744aea334d92dcd30d881b76209d2db7dbf4b7ee047e7c69a5bb1633764d987a7441d9c4bc57ccdbfd6442a2f860bf953bc89a9b9@34.152.50.224:30303,enode://da94328302a1d1422209d1916744e90b6095a48b2340dcec39b22002c098bb4d58a880dab98eb26edf03fa4705d1b62f99a8c5c14e6666e4726b6d3066d8a4d7@34.95.61.106:30303,enode://19c7671a4844699b481e81a5bcfe7bafc7fefa953c16ebbe1951b1046371e73839e9058de6b7d3c934318fe7e7233dde3621c1c1018eb8b294ea3d4516147150@35.203.82.137:30303
|
||||
command:
|
||||
- --bootnodes=enode://0c5a4a3c0e81fce2974e4d317d88df783731183d534325e32e0fdf8f4b119d7889fa254d3a38890606ec300d744e2aa9c87099a4a032f5c94efe53f3fcdfecfe@34.64.176.79:30303,enode://b6a3137d3a36ef37c4d31843775a9dc293f41bcbde33b6309c80b1771b6634827cd188285136a57474427bd8845adc2f6fe2e0b106bd58d14795b08910b9c326@34.64.181.70:30303,enode://0b6633300614bc2b9749aee0cace7a091ec5348762aee7b1d195f7616d03a9409019d9bef336624bab72e0d069cd4cf0b0de6fbbf53f04f6b6e4c5b39c6bdca6@34.64.39.31:30303,enode://552b001abebb5805fcd734ad367cd05d9078d18f23ec598d7165460fadcfc51116ad95c418f7ea9a141aa8cbc496c8bea3322b67a5de0d3380f11aab1a797513@34.64.183.158:30303,enode://5b037f66099d5ded86eb7e1619f6d06ceb15609e8cc345ced22a4772b06178004e1490a3cd32fd1222789de4c6e4021c2d648a3d750f6d5323e64b771bbd8de7@34.87.142.180:30303,enode://846db253c53753d3ea1197aec296306dc84c25f3afdf142b65cb0fe0f984de55072daa3bbf05a9aea046a38a2292403137b6eafefd5646fcf62120b74e3b898d@34.142.170.110:30303,enode://64b7f6ee9bcd942ad4949c70f2077627f078a057dfd930e6e904e12643d8952f5ae87c91e24559765393f244a72c9d5c011d7d5176e59191d38f315db85a20f5@34.126.161.16:30303,enode://cf4d19bfb8ec507427ec882bac0bac85a0c8c9ddaa0ec91b773bb614e5e09d107cd9fbe323b96f62f31c493f8f42cc5495c18b87c08560c5dea1dfd25256dcf6@35.247.162.2:30303,enode://bb7e44178543431feac8f0ee3827056b7b84d8235b802a8bdbbcd4939dab7f7dd2579ff577a38b002bb0139792af67abd2dd5c9f4f85b8da6e914fa76dca82bc@35.198.150.35:30303,enode://8fef1f5df45e7b31be00a21e1da5665d5a5f5bf4c379086b843f03eade941bdd157f08c95b31880c492577edb9a9b185df7191eaebf54ab06d5bd683b289f3af@34.107.7.241:30303,enode://ce9c87cfe089f6811d26c96913fa3ec10b938d9017fc6246684c74a33679ee34ceca9447180fb509e37bf2b706c2877a82085d34bfd83b5b520ee1288b0fc32f@35.198.109.49:30303,enode://713657eb6a53feadcbc47e634ad557326a51eb6818a3e19a00a8111492f50a666ccbf2f5d334d247ecf941e68d242ef5c3b812b63c44d381ef11f79c2cdb45c7@34.141.15.100:30303,enode://d071fa740e063ce1bb9cdc2b7937baeff6dc4000f91588d730a731c38a6ff0d4015814812c160fab8695e46f74b9b618735368ea2f16db4d785f16d29b3fb7b0@35.203.2.210:30303,enode://ffc452fe451a2e5f89fe634744aea334d92dcd30d881b76209d2db7dbf4b7ee047e7c69a5bb1633764d987a7441d9c4bc57ccdbfd6442a2f860bf953bc89a9b9@34.152.50.224:30303,enode://da94328302a1d1422209d1916744e90b6095a48b2340dcec39b22002c098bb4d58a880dab98eb26edf03fa4705d1b62f99a8c5c14e6666e4726b6d3066d8a4d7@34.95.61.106:30303,enode://19c7671a4844699b481e81a5bcfe7bafc7fefa953c16ebbe1951b1046371e73839e9058de6b7d3c934318fe7e7233dde3621c1c1018eb8b294ea3d4516147150@35.203.82.137:30303
|
||||
- --datadir=/root/.ethereum
|
||||
- --db.engine=pebble
|
||||
- --gcmode=full
|
||||
- --maxpeers=50
|
||||
- --metrics
|
||||
- --metrics.addr=0.0.0.0
|
||||
- --metrics.port=6060
|
||||
- --nat=extip:${IP}
|
||||
- --port=11562
|
||||
- --rpc.gascap=600000000
|
||||
- --rpc.txfeecap=0
|
||||
- --state.scheme=path
|
||||
- --syncmode=snap
|
||||
- --http
|
||||
- --http.addr=0.0.0.0
|
||||
- --http.api=eth,net,web3,debug,admin,txpool,engine
|
||||
- --http.port=8545
|
||||
- --http.vhosts=*
|
||||
- --ws
|
||||
- --ws.addr=0.0.0.0
|
||||
- --ws.api=eth,net,web3,debug,admin,txpool,engine
|
||||
- --ws.origins=*
|
||||
- --ws.port=8545
|
||||
- --authrpc.addr=0.0.0.0
|
||||
- --authrpc.jwtsecret=/jwtsecret
|
||||
- --authrpc.vhosts=*
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5m
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${BERACHAIN_MAINNET_GETH_PRUNED_PEBBLE_PATH_DATA:-berachain-mainnet-geth-pruned-pebble-path}:/root/.ethereum
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
- /slowdisk:/slowdisk
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=true
|
||||
- prometheus-scrape.port=6060
|
||||
- prometheus-scrape.path=/debug/metrics/prometheus
|
||||
- traefik.enable=true
|
||||
- traefik.http.middlewares.berachain-mainnet-geth-pruned-pebble-path-stripprefix.stripprefix.prefixes=/berachain-mainnet-geth
|
||||
- traefik.http.services.berachain-mainnet-geth-pruned-pebble-path.loadbalancer.server.port=8545
|
||||
- ${NO_SSL:-traefik.http.routers.berachain-mainnet-geth-pruned-pebble-path.entrypoints=websecure}
|
||||
- ${NO_SSL:-traefik.http.routers.berachain-mainnet-geth-pruned-pebble-path.tls.certresolver=myresolver}
|
||||
- ${NO_SSL:-traefik.http.routers.berachain-mainnet-geth-pruned-pebble-path.rule=Host(`$DOMAIN`) && (Path(`/berachain-mainnet-geth`) || Path(`/berachain-mainnet-geth/`))}
|
||||
- ${NO_SSL:+traefik.http.routers.berachain-mainnet-geth-pruned-pebble-path.rule=Path(`/berachain-mainnet-geth`) || Path(`/berachain-mainnet-geth/`)}
|
||||
- traefik.http.routers.berachain-mainnet-geth-pruned-pebble-path.middlewares=berachain-mainnet-geth-pruned-pebble-path-stripprefix, ipallowlist
|
||||
|
||||
berachain-mainnet-geth-node:
|
||||
build:
|
||||
context: ./berachain
|
||||
dockerfile: beacon-kit.Dockerfile
|
||||
args:
|
||||
BEACONKIT_VERSION: ${BERACHAIN_MAINNET_BEACON_KIT_VERSION:-v1.3.4}
|
||||
BEACONKIT_IMAGE: ${BERACHAIN_MAINNET_BEACON_KIT_IMAGE:-ghcr.io/berachain/beacon-kit}
|
||||
ports:
|
||||
- 16562:16562
|
||||
- 16562:16562/udp
|
||||
environment:
|
||||
- AUTH_RPC=http://berachain-mainnet-geth:8551
|
||||
- CHAINID=80094
|
||||
- CHAINNAME=mainnet
|
||||
- CHAIN_SPEC=mainnet
|
||||
- IP=${IP}
|
||||
- MONIKER=d${DOMAIN:-local}
|
||||
- P2P_PORT=16562
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${BERACHAIN_MAINNET_GETH_PRUNED_PEBBLE_PATH__BEACON_KIT_DATA:-berachain-mainnet-geth-pruned-pebble-path_beacon-kit}:/root/.beacond/data
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
- berachain-mainnet-geth-pruned-pebble-path_config:/root/.beacond/config
|
||||
logging: *logging-defaults
|
||||
labels:
|
||||
- prometheus-scrape.enabled=false
|
||||
|
||||
volumes:
|
||||
berachain-mainnet-geth-pruned-pebble-path:
|
||||
berachain-mainnet-geth-pruned-pebble-path_beacon-kit:
|
||||
berachain-mainnet-geth-pruned-pebble-path_config:
|
||||
|
||||
x-upstreams:
|
||||
- id: $${ID}
|
||||
labels:
|
||||
provider: $${PROVIDER}
|
||||
connection:
|
||||
generic:
|
||||
rpc:
|
||||
url: $${RPC_URL}
|
||||
ws:
|
||||
frameSize: 20Mb
|
||||
msgSize: 50Mb
|
||||
url: $${WS_URL}
|
||||
chain: berachain
|
||||
method-groups:
|
||||
enabled:
|
||||
- debug
|
||||
- filter
|
||||
methods:
|
||||
disabled:
|
||||
# not compatible with path state scheme
|
||||
- name: debug_traceBlockByHash
|
||||
enabled:
|
||||
- name: txpool_content # TODO: should be disabled for rollup nodes
|
||||
# standard geth only
|
||||
- name: debug_getRawBlock
|
||||
- name: debug_getRawTransaction
|
||||
- name: debug_getRawReceipts
|
||||
- name: debug_getRawHeader
|
||||
- name: debug_getBadBlocks
|
||||
# non standard geth only slightly dangerous
|
||||
- name: debug_intermediateRoots
|
||||
- name: debug_dumpBlock
|
||||
# standard geth and erigon
|
||||
- name: debug_accountRange
|
||||
- name: debug_getModifiedAccountsByNumber
|
||||
- name: debug_getModifiedAccountsByHash
|
||||
# non standard geth and erigon
|
||||
- name: eth_getRawTransactionByHash
|
||||
- name: eth_getRawTransactionByBlockHashAndIndex
|
||||
...
|
||||
@@ -14,6 +14,27 @@ x-logging-defaults: &logging-defaults
|
||||
# if that file is found then the init script will merge them into any configured seeds from the environment variable.
|
||||
# If the environment variable is empty and the file is found then the init script will use the seeds from the config.toml file that was
|
||||
# downloaded in initialization from the repo above.
|
||||
#
|
||||
# something wild that appeared to me was that I had to delete /var/lib/docker/volumes/rpc_berachain-bepolia-reth-archive-trace_config/_data/genesis.json
|
||||
# after a fork of the chain to trigger a redownload of the genesis.json file and init of the node datadir.
|
||||
#
|
||||
# also it may be necessary to update the static peers and bootnodes from the repository to get it going again.
|
||||
#
|
||||
# frequently reth complains about never seeing a beacon client pushing for new blocks to sync to while the beacon client
|
||||
# complains about reth being synching and it can't push new block hashes. force-recreate helps.
|
||||
#
|
||||
# this is honestly the most flaky constructs of all of the chains in this repository. they expect you to run their refrence setup
|
||||
# and git pull to update and if something doesn't work to get a new chaindata snapshot.
|
||||
#
|
||||
# sometimes the genesis has to be updated and is a parameter to the reth node
|
||||
# force-recreate on chain fork would do the trick I guess...
|
||||
#
|
||||
# don't forget to docker compose build from time to time...
|
||||
#
|
||||
# ETH_GENESIS_URL="https://raw.githubusercontent.com/berachain/beacon-kit/main/testing/networks/$CHAINID/eth-genesis.json"
|
||||
# curl -sL "$ETH_GENESIS_URL" -o "$CONFIG_DIR/eth-genesis.json"
|
||||
#
|
||||
# something like this needs to be done sometimes when there is a fork of the chain somehow. may or may not be automated.
|
||||
|
||||
# Usage:
|
||||
#
|
||||
@@ -40,7 +61,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
berachain-bartio-reth:
|
||||
image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${BERACHAIN_BARTIO_RETH_VERSION:-v1.4.3}
|
||||
image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/berachain/bera-reth}:${BERACHAIN_BARTIO_RETH_VERSION:-v1.3.1}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -68,13 +89,16 @@ services:
|
||||
- CHAINID=80084
|
||||
- CHAINNAME=bartio
|
||||
- CHAIN_SPEC=testnet
|
||||
entrypoint: [/bin/bash, -c, "trap 'exit 0' SIGTERM; while [ ! -f /config/eth-genesis.json ] && [ ! -f /tmp/stop ]; do sleep 1 & wait $!; done; exec reth node \"$@\"", --]
|
||||
entrypoint: [/bin/bash, -c, "trap 'exit 0' SIGTERM; while [ ! -f /config/eth-genesis.json ] && [ ! -f /tmp/stop ]; do sleep 1 & wait $!; done; exec bera-reth node \"$@\"", --]
|
||||
command:
|
||||
- --bootnodes=enode://0401e494dbd0c84c5c0f72adac5985d2f2525e08b68d448958aae218f5ac8198a80d1498e0ebec2ce38b1b18d6750f6e61a56b4614c5a6c6cf0981c39aed47dc@34.159.32.127:30303,enode://9b6c1eb143c9e3af0c7283262a9a38fe8bf844114b1f304673c2ac1c23e6bccfdaa8f4e9cb8c460bded495933fd92eeff30e6ab2e0538b56e249beea2c512906@35.234.88.149:30303,enode://e9675164b5e17b9d9edf0cc2bd79e6b6f487200c74d1331c220abb5b8ee80c2eefbf18213989585e9d0960683e819542e11d4eefb5f2b4019e1e49f9fd8fff18@berav2-bootnode.staketab.org:30303,enode://16e21c20f670d9e88570b8d3c580c7ef54f3515bffab864f1f3047c4125c3e7d98e782b990165808363a1b54ddca51c9dafaca9d6cd7ecca93e2e809ba522cae@berachain-testnet-v2.enode.l0vd.com:30304,enode://e31aa249638083d34817eed2b499ccd4b0718a332f0ea530e3062e13f624cb03a7d6b6e0460193ee87b5fc12e73a726070a3126ef53492ffbdc5e6c102f6dfb3@34.64.198.56:30303,enode://3f2f85e2e711f198fb7324b74fab6a0599b2534774f3aa26241dbbabe870b650574324da01aa98ee24ce97c8d76362a2db03034a6ddff43119ccfdc269663cbf@34.47.79.13:30303,enode://7a2f67d22b12e10c6ba9cd951866dda6471604be5fbd5102217dbad1cc56e590befd2009ecc99958a468a5b8e0dc28e14d9b6822491719c93199be6aa0319077@34.124.220.31:30303,enode://a96aac0b81c7e75fecc2ae613eaf13b27b2aaf3d46a90db904f94797d1746aa31e6593ae4cd476f81d5c6d1d2228ca60c885727978c369586c38871c63a330ee@35.240.182.27:30303,enode://dc44744074ac2dd76db0e0f9d95eb86cd558f6ba75e4a4af1303f2259624c8ce041198f976862a284165253b6dc6b2fa91b995cbca3ef2683879b6247e05e553@34.95.61.239:30303,enode://bf5364e1cf7ecd11646ccaea5c06b56622c04d52200d9cd141e01db9c9661237ceebecde1616e66e390a968ffd1c07e027531cad23044517b7bf36caa8b97f5f@34.152.41.26:30303,enode://f61e51c18fdb6ddf5e520209c53a0e60b2864d168eb0d3c02541050de9fee003b61818c7f70b32b61adee082280e7de4811fd3da47d87c87b3d17bf44e3bb76c@beacond-testnet.blacknodes.net:30303,enode://f24b54da77cf604e92aeb5ee5e79401fd3e66111563ca630e72330ccab6f385ccbbde5eba4577ee7bfb5e83347263d0e4cad042fd4c10468d0e38906fc82ba31@bera-testnet-seeds.nodeinfra.com:30303,enode://2e44e8e12b4666632dd2d4d555cfca5ceac4ca6cf6f45c46fc0ba27d1f9f7578dd598c74ae8b4189430a85b15d103c215a63cdbeafd41895fee1405a094fa77a@135.125.188.10:30303
|
||||
- --chain=/config/eth-genesis.json
|
||||
- --datadir=/root/.local/share/reth
|
||||
- --discovery.port=10527
|
||||
- --engine.always-process-payload-attributes-on-canonical-head
|
||||
- --engine.cross-block-cache-size=${BERACHAIN_BARTIO_RETH_STATE_CACHE:-4096}
|
||||
- --engine.memory-block-buffer-target=0
|
||||
- --engine.persistence-threshold=0
|
||||
- --max-inbound-peers=50
|
||||
- --max-outbound-peers=50
|
||||
- --metrics=0.0.0.0:9001
|
||||
@@ -127,7 +151,7 @@ services:
|
||||
context: ./berachain
|
||||
dockerfile: beacon-kit.Dockerfile
|
||||
args:
|
||||
BEACONKIT_VERSION: ${BERACHAIN_BARTIO_BEACON_KIT_VERSION:-v1.1.3}
|
||||
BEACONKIT_VERSION: ${BERACHAIN_BARTIO_BEACON_KIT_VERSION:-v1.3.4}
|
||||
BEACONKIT_IMAGE: ${BERACHAIN_BARTIO_BEACON_KIT_IMAGE:-ghcr.io/berachain/beacon-kit}
|
||||
ports:
|
||||
- 15527:15527
|
||||
@@ -144,6 +168,7 @@ services:
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${BERACHAIN_BARTIO_RETH_ARCHIVE_TRACE__BEACON_KIT_DATA:-berachain-bartio-reth-archive-trace_beacon-kit}:/root/.beacond/data
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
- berachain-bartio-reth-archive-trace_config:/root/.beacond/config
|
||||
logging: *logging-defaults
|
||||
|
||||
@@ -14,6 +14,27 @@ x-logging-defaults: &logging-defaults
|
||||
# if that file is found then the init script will merge them into any configured seeds from the environment variable.
|
||||
# If the environment variable is empty and the file is found then the init script will use the seeds from the config.toml file that was
|
||||
# downloaded in initialization from the repo above.
|
||||
#
|
||||
# something wild that appeared to me was that I had to delete /var/lib/docker/volumes/rpc_berachain-bepolia-reth-archive-trace_config/_data/genesis.json
|
||||
# after a fork of the chain to trigger a redownload of the genesis.json file and init of the node datadir.
|
||||
#
|
||||
# also it may be necessary to update the static peers and bootnodes from the repository to get it going again.
|
||||
#
|
||||
# frequently reth complains about never seeing a beacon client pushing for new blocks to sync to while the beacon client
|
||||
# complains about reth being synching and it can't push new block hashes. force-recreate helps.
|
||||
#
|
||||
# this is honestly the most flaky constructs of all of the chains in this repository. they expect you to run their refrence setup
|
||||
# and git pull to update and if something doesn't work to get a new chaindata snapshot.
|
||||
#
|
||||
# sometimes the genesis has to be updated and is a parameter to the reth node
|
||||
# force-recreate on chain fork would do the trick I guess...
|
||||
#
|
||||
# don't forget to docker compose build from time to time...
|
||||
#
|
||||
# ETH_GENESIS_URL="https://raw.githubusercontent.com/berachain/beacon-kit/main/testing/networks/$CHAINID/eth-genesis.json"
|
||||
# curl -sL "$ETH_GENESIS_URL" -o "$CONFIG_DIR/eth-genesis.json"
|
||||
#
|
||||
# something like this needs to be done sometimes when there is a fork of the chain somehow. may or may not be automated.
|
||||
|
||||
# Usage:
|
||||
#
|
||||
@@ -40,7 +61,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
berachain-bartio-reth-pruned:
|
||||
image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${BERACHAIN_BARTIO_RETH_VERSION:-v1.4.3}
|
||||
image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/berachain/bera-reth}:${BERACHAIN_BARTIO_RETH_VERSION:-v1.3.1}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -68,13 +89,16 @@ services:
|
||||
- CHAINID=80084
|
||||
- CHAINNAME=bartio
|
||||
- CHAIN_SPEC=testnet
|
||||
entrypoint: [/bin/bash, -c, "trap 'exit 0' SIGTERM; while [ ! -f /config/eth-genesis.json ] && [ ! -f /tmp/stop ]; do sleep 1 & wait $!; done; exec reth node \"$@\"", --]
|
||||
entrypoint: [/bin/bash, -c, "trap 'exit 0' SIGTERM; while [ ! -f /config/eth-genesis.json ] && [ ! -f /tmp/stop ]; do sleep 1 & wait $!; done; exec bera-reth node \"$@\"", --]
|
||||
command:
|
||||
- --bootnodes=enode://0401e494dbd0c84c5c0f72adac5985d2f2525e08b68d448958aae218f5ac8198a80d1498e0ebec2ce38b1b18d6750f6e61a56b4614c5a6c6cf0981c39aed47dc@34.159.32.127:30303,enode://9b6c1eb143c9e3af0c7283262a9a38fe8bf844114b1f304673c2ac1c23e6bccfdaa8f4e9cb8c460bded495933fd92eeff30e6ab2e0538b56e249beea2c512906@35.234.88.149:30303,enode://e9675164b5e17b9d9edf0cc2bd79e6b6f487200c74d1331c220abb5b8ee80c2eefbf18213989585e9d0960683e819542e11d4eefb5f2b4019e1e49f9fd8fff18@berav2-bootnode.staketab.org:30303,enode://16e21c20f670d9e88570b8d3c580c7ef54f3515bffab864f1f3047c4125c3e7d98e782b990165808363a1b54ddca51c9dafaca9d6cd7ecca93e2e809ba522cae@berachain-testnet-v2.enode.l0vd.com:30304,enode://e31aa249638083d34817eed2b499ccd4b0718a332f0ea530e3062e13f624cb03a7d6b6e0460193ee87b5fc12e73a726070a3126ef53492ffbdc5e6c102f6dfb3@34.64.198.56:30303,enode://3f2f85e2e711f198fb7324b74fab6a0599b2534774f3aa26241dbbabe870b650574324da01aa98ee24ce97c8d76362a2db03034a6ddff43119ccfdc269663cbf@34.47.79.13:30303,enode://7a2f67d22b12e10c6ba9cd951866dda6471604be5fbd5102217dbad1cc56e590befd2009ecc99958a468a5b8e0dc28e14d9b6822491719c93199be6aa0319077@34.124.220.31:30303,enode://a96aac0b81c7e75fecc2ae613eaf13b27b2aaf3d46a90db904f94797d1746aa31e6593ae4cd476f81d5c6d1d2228ca60c885727978c369586c38871c63a330ee@35.240.182.27:30303,enode://dc44744074ac2dd76db0e0f9d95eb86cd558f6ba75e4a4af1303f2259624c8ce041198f976862a284165253b6dc6b2fa91b995cbca3ef2683879b6247e05e553@34.95.61.239:30303,enode://bf5364e1cf7ecd11646ccaea5c06b56622c04d52200d9cd141e01db9c9661237ceebecde1616e66e390a968ffd1c07e027531cad23044517b7bf36caa8b97f5f@34.152.41.26:30303,enode://f61e51c18fdb6ddf5e520209c53a0e60b2864d168eb0d3c02541050de9fee003b61818c7f70b32b61adee082280e7de4811fd3da47d87c87b3d17bf44e3bb76c@beacond-testnet.blacknodes.net:30303,enode://f24b54da77cf604e92aeb5ee5e79401fd3e66111563ca630e72330ccab6f385ccbbde5eba4577ee7bfb5e83347263d0e4cad042fd4c10468d0e38906fc82ba31@bera-testnet-seeds.nodeinfra.com:30303,enode://2e44e8e12b4666632dd2d4d555cfca5ceac4ca6cf6f45c46fc0ba27d1f9f7578dd598c74ae8b4189430a85b15d103c215a63cdbeafd41895fee1405a094fa77a@135.125.188.10:30303
|
||||
- --chain=/config/eth-genesis.json
|
||||
- --datadir=/root/.local/share/reth
|
||||
- --discovery.port=14467
|
||||
- --engine.always-process-payload-attributes-on-canonical-head
|
||||
- --engine.cross-block-cache-size=${BERACHAIN_BARTIO_RETH_STATE_CACHE:-4096}
|
||||
- --engine.memory-block-buffer-target=0
|
||||
- --engine.persistence-threshold=0
|
||||
- --full
|
||||
- --max-inbound-peers=50
|
||||
- --max-outbound-peers=50
|
||||
@@ -128,7 +152,7 @@ services:
|
||||
context: ./berachain
|
||||
dockerfile: beacon-kit.Dockerfile
|
||||
args:
|
||||
BEACONKIT_VERSION: ${BERACHAIN_BARTIO_BEACON_KIT_VERSION:-v1.1.3}
|
||||
BEACONKIT_VERSION: ${BERACHAIN_BARTIO_BEACON_KIT_VERSION:-v1.3.4}
|
||||
BEACONKIT_IMAGE: ${BERACHAIN_BARTIO_BEACON_KIT_IMAGE:-ghcr.io/berachain/beacon-kit}
|
||||
ports:
|
||||
- 19467:19467
|
||||
@@ -145,6 +169,7 @@ services:
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${BERACHAIN_BARTIO_RETH_PRUNED_TRACE__BEACON_KIT_DATA:-berachain-bartio-reth-pruned-trace_beacon-kit}:/root/.beacond/data
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
- berachain-bartio-reth-pruned-trace_config:/root/.beacond/config
|
||||
logging: *logging-defaults
|
||||
|
||||
@@ -14,6 +14,27 @@ x-logging-defaults: &logging-defaults
|
||||
# if that file is found then the init script will merge them into any configured seeds from the environment variable.
|
||||
# If the environment variable is empty and the file is found then the init script will use the seeds from the config.toml file that was
|
||||
# downloaded in initialization from the repo above.
|
||||
#
|
||||
# something wild that appeared to me was that I had to delete /var/lib/docker/volumes/rpc_berachain-bepolia-reth-archive-trace_config/_data/genesis.json
|
||||
# after a fork of the chain to trigger a redownload of the genesis.json file and init of the node datadir.
|
||||
#
|
||||
# also it may be necessary to update the static peers and bootnodes from the repository to get it going again.
|
||||
#
|
||||
# frequently reth complains about never seeing a beacon client pushing for new blocks to sync to while the beacon client
|
||||
# complains about reth being synching and it can't push new block hashes. force-recreate helps.
|
||||
#
|
||||
# this is honestly the most flaky constructs of all of the chains in this repository. they expect you to run their refrence setup
|
||||
# and git pull to update and if something doesn't work to get a new chaindata snapshot.
|
||||
#
|
||||
# sometimes the genesis has to be updated and is a parameter to the reth node
|
||||
# force-recreate on chain fork would do the trick I guess...
|
||||
#
|
||||
# don't forget to docker compose build from time to time...
|
||||
#
|
||||
# ETH_GENESIS_URL="https://raw.githubusercontent.com/berachain/beacon-kit/main/testing/networks/$CHAINID/eth-genesis.json"
|
||||
# curl -sL "$ETH_GENESIS_URL" -o "$CONFIG_DIR/eth-genesis.json"
|
||||
#
|
||||
# something like this needs to be done sometimes when there is a fork of the chain somehow. may or may not be automated.
|
||||
|
||||
# Usage:
|
||||
#
|
||||
@@ -40,7 +61,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
berachain-bepolia-reth:
|
||||
image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${BERACHAIN_BEPOLIA_RETH_VERSION:-v1.4.3}
|
||||
image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/berachain/bera-reth}:${BERACHAIN_BEPOLIA_RETH_VERSION:-v1.3.1}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -68,13 +89,16 @@ services:
|
||||
- CHAINID=80069
|
||||
- CHAINNAME=bepolia
|
||||
- CHAIN_SPEC=testnet
|
||||
entrypoint: [/bin/bash, -c, "trap 'exit 0' SIGTERM; while [ ! -f /config/eth-genesis.json ] && [ ! -f /tmp/stop ]; do sleep 1 & wait $!; done; exec reth node \"$@\"", --]
|
||||
entrypoint: [/bin/bash, -c, "trap 'exit 0' SIGTERM; while [ ! -f /config/eth-genesis.json ] && [ ! -f /tmp/stop ]; do sleep 1 & wait $!; done; exec bera-reth node \"$@\"", --]
|
||||
command:
|
||||
- --bootnodes=enode://879752877fe08e483eba228b7544ff2de4a90e8ddaa59f122dfbc5c3689ea3030a0bfe4532d6a411a936dadce84e7a89086dca39dc39b9119603d87469010d9e@34.152.29.103:30303,enode://11f28864a15162c66b4b23d20b91fe08fda1d541df778d8db33be72558e80489a785d3fcc870926d10b7a6b848c7c6319bc215481319e527ce54ac139c2f44dc@34.118.159.247:30303,enode://47f41b9ab5a45e880a78330d2ae3f95a61f5cb41f203bbc9c9ff0e37778fc6c7fd46a6ee103e65ac36df8c024075a33f535a03cd8d800800c27fa2699fa0182b@34.47.28.251:30303,enode://fe6d2429b582de7daf387c6e5436f05d9185965267b72b8b6b4924125b50afdad765a820213d73d2afbfe64a721160a1a94750b4874ed97ccbe97c51443d1c42@34.95.21.165:30303,enode://1273d68cb5a884630aff8c35a30f643ad739461a5f7c8d2d691dc65547d5ad023829e1b6bf128edddd032047cb5c13e9dcd0f93a5de4aa5b958cef5970541863@34.159.207.112:30303,enode://fac9c2a0f719ec0ebc9021e88ad32eb7c05f4f351993dab6e4c86ae3ef5a47cade21749281263221c2b5583437893f957ac282858fd8a00f75f9a495eb53ae4e@34.141.54.42:30303,enode://5c0d582c19ea9f19928cfd6b7e156372d051b5720f67a444c38b671b8119bb097abfd1e4b868a389ab4a65bb9b405ef837df0ae195c0f32a33c61c39ca54e8ab@34.107.71.151:30303,enode://59aec227e87f4cd7c0a24c6cb0f870ef77abcc0c6d640f5a536c597a206b3505f7963f6459c265952b7bed3c3f260edf8a1412bbdb05f0e59d6bd612dc4bf077@34.141.48.88:30303,enode://281e3927839de398cb571279b324b6251d92c8de79263648f24dd4e451499a7fb336354bd4b7dc616e439f804cdd518fe49789f20b060c6426020de2c1cb285a@35.240.139.2:30303,enode://ae3f2e3f2caffc82aa0a5f5c6036def3d0be046b9245651b61567b4743c3c4937c08cb075d4ac543b163045942028384f3ef93bb25f7d500b644a2aab78f6b46@34.87.140.47:30303,enode://59e79f22bbf1645c60666ba6c17c54845080473df80711807fb3a4fbefc26278f78c43fa44ea6e52db38c57f1fccf6caa2de7589ca6cce8e161c3120e7a8d0d8@35.198.214.183:30303,enode://91d6e1878f5ab434a36625ac9017b792179324d42f4650a8dcc38774578d7ffb68882ec56861155e738eb62a7365b8463bd26886523f60edcfbf6137b43b9b65@35.240.234.137:30303,enode://f55dc8bac635b9c3b9fad688e3200c6b0744e2930d8d8a8e91d1effc0cd91b0547da3eac6d8d1431f0dd130ccc20f3c856fc90e32002bfc1e27d3286eef8c570@34.47.125.153:30303,enode://13da5e4ff1ab3481966f8d83309d8bd898ef5fa56355da57e683bdcc26b4c205be40341c87236934610d0c0bdddf11f6cef495966bba0092465839b8942bc54c@34.47.93.104:30303,enode://c2d43cba3380df975e78befc7294fe07a042eab1c2b743bdf436274b884bcdd0ef218821ff24732ff2106bf796964ada13dbeb42e27756f2491710be402fce59@34.64.123.223:30303,enode://f5b93e79932028a30bacb1b1cd7e7d42b30fe69640c0081bb51e29483bfe715c698dfcf50a309f208743c0ef07884afa39d0c96c6e56a8e58ce7ff1181fdffa0@34.22.89.170:30303
|
||||
- --chain=/config/eth-genesis.json
|
||||
- --datadir=/root/.local/share/reth
|
||||
- --discovery.port=11347
|
||||
- --engine.always-process-payload-attributes-on-canonical-head
|
||||
- --engine.cross-block-cache-size=${BERACHAIN_BEPOLIA_RETH_STATE_CACHE:-4096}
|
||||
- --engine.memory-block-buffer-target=0
|
||||
- --engine.persistence-threshold=0
|
||||
- --max-inbound-peers=50
|
||||
- --max-outbound-peers=50
|
||||
- --metrics=0.0.0.0:9001
|
||||
@@ -128,7 +152,7 @@ services:
|
||||
context: ./berachain
|
||||
dockerfile: beacon-kit.Dockerfile
|
||||
args:
|
||||
BEACONKIT_VERSION: ${BERACHAIN_BEPOLIA_BEACON_KIT_VERSION:-v1.2.0.rc2}
|
||||
BEACONKIT_VERSION: ${BERACHAIN_BEPOLIA_BEACON_KIT_VERSION:-v1.3.4}
|
||||
BEACONKIT_IMAGE: ${BERACHAIN_BEPOLIA_BEACON_KIT_IMAGE:-ghcr.io/berachain/beacon-kit}
|
||||
ports:
|
||||
- 16347:16347
|
||||
@@ -147,6 +171,7 @@ services:
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${BERACHAIN_BEPOLIA_RETH_ARCHIVE_TRACE__BEACON_KIT_DATA:-berachain-bepolia-reth-archive-trace_beacon-kit}:/root/.beacond/data
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
- berachain-bepolia-reth-archive-trace_config:/root/.beacond/config
|
||||
logging: *logging-defaults
|
||||
|
||||
@@ -14,6 +14,27 @@ x-logging-defaults: &logging-defaults
|
||||
# if that file is found then the init script will merge them into any configured seeds from the environment variable.
|
||||
# If the environment variable is empty and the file is found then the init script will use the seeds from the config.toml file that was
|
||||
# downloaded in initialization from the repo above.
|
||||
#
|
||||
# something wild that appeared to me was that I had to delete /var/lib/docker/volumes/rpc_berachain-bepolia-reth-archive-trace_config/_data/genesis.json
|
||||
# after a fork of the chain to trigger a redownload of the genesis.json file and init of the node datadir.
|
||||
#
|
||||
# also it may be necessary to update the static peers and bootnodes from the repository to get it going again.
|
||||
#
|
||||
# frequently reth complains about never seeing a beacon client pushing for new blocks to sync to while the beacon client
|
||||
# complains about reth being synching and it can't push new block hashes. force-recreate helps.
|
||||
#
|
||||
# this is honestly the most flaky constructs of all of the chains in this repository. they expect you to run their refrence setup
|
||||
# and git pull to update and if something doesn't work to get a new chaindata snapshot.
|
||||
#
|
||||
# sometimes the genesis has to be updated and is a parameter to the reth node
|
||||
# force-recreate on chain fork would do the trick I guess...
|
||||
#
|
||||
# don't forget to docker compose build from time to time...
|
||||
#
|
||||
# ETH_GENESIS_URL="https://raw.githubusercontent.com/berachain/beacon-kit/main/testing/networks/$CHAINID/eth-genesis.json"
|
||||
# curl -sL "$ETH_GENESIS_URL" -o "$CONFIG_DIR/eth-genesis.json"
|
||||
#
|
||||
# something like this needs to be done sometimes when there is a fork of the chain somehow. may or may not be automated.
|
||||
|
||||
# Usage:
|
||||
#
|
||||
@@ -40,7 +61,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
berachain-bepolia-reth-pruned:
|
||||
image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${BERACHAIN_BEPOLIA_RETH_VERSION:-v1.4.3}
|
||||
image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/berachain/bera-reth}:${BERACHAIN_BEPOLIA_RETH_VERSION:-v1.3.1}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -68,13 +89,16 @@ services:
|
||||
- CHAINID=80069
|
||||
- CHAINNAME=bepolia
|
||||
- CHAIN_SPEC=testnet
|
||||
entrypoint: [/bin/bash, -c, "trap 'exit 0' SIGTERM; while [ ! -f /config/eth-genesis.json ] && [ ! -f /tmp/stop ]; do sleep 1 & wait $!; done; exec reth node \"$@\"", --]
|
||||
entrypoint: [/bin/bash, -c, "trap 'exit 0' SIGTERM; while [ ! -f /config/eth-genesis.json ] && [ ! -f /tmp/stop ]; do sleep 1 & wait $!; done; exec bera-reth node \"$@\"", --]
|
||||
command:
|
||||
- --bootnodes=enode://879752877fe08e483eba228b7544ff2de4a90e8ddaa59f122dfbc5c3689ea3030a0bfe4532d6a411a936dadce84e7a89086dca39dc39b9119603d87469010d9e@34.152.29.103:30303,enode://11f28864a15162c66b4b23d20b91fe08fda1d541df778d8db33be72558e80489a785d3fcc870926d10b7a6b848c7c6319bc215481319e527ce54ac139c2f44dc@34.118.159.247:30303,enode://47f41b9ab5a45e880a78330d2ae3f95a61f5cb41f203bbc9c9ff0e37778fc6c7fd46a6ee103e65ac36df8c024075a33f535a03cd8d800800c27fa2699fa0182b@34.47.28.251:30303,enode://fe6d2429b582de7daf387c6e5436f05d9185965267b72b8b6b4924125b50afdad765a820213d73d2afbfe64a721160a1a94750b4874ed97ccbe97c51443d1c42@34.95.21.165:30303,enode://1273d68cb5a884630aff8c35a30f643ad739461a5f7c8d2d691dc65547d5ad023829e1b6bf128edddd032047cb5c13e9dcd0f93a5de4aa5b958cef5970541863@34.159.207.112:30303,enode://fac9c2a0f719ec0ebc9021e88ad32eb7c05f4f351993dab6e4c86ae3ef5a47cade21749281263221c2b5583437893f957ac282858fd8a00f75f9a495eb53ae4e@34.141.54.42:30303,enode://5c0d582c19ea9f19928cfd6b7e156372d051b5720f67a444c38b671b8119bb097abfd1e4b868a389ab4a65bb9b405ef837df0ae195c0f32a33c61c39ca54e8ab@34.107.71.151:30303,enode://59aec227e87f4cd7c0a24c6cb0f870ef77abcc0c6d640f5a536c597a206b3505f7963f6459c265952b7bed3c3f260edf8a1412bbdb05f0e59d6bd612dc4bf077@34.141.48.88:30303,enode://281e3927839de398cb571279b324b6251d92c8de79263648f24dd4e451499a7fb336354bd4b7dc616e439f804cdd518fe49789f20b060c6426020de2c1cb285a@35.240.139.2:30303,enode://ae3f2e3f2caffc82aa0a5f5c6036def3d0be046b9245651b61567b4743c3c4937c08cb075d4ac543b163045942028384f3ef93bb25f7d500b644a2aab78f6b46@34.87.140.47:30303,enode://59e79f22bbf1645c60666ba6c17c54845080473df80711807fb3a4fbefc26278f78c43fa44ea6e52db38c57f1fccf6caa2de7589ca6cce8e161c3120e7a8d0d8@35.198.214.183:30303,enode://91d6e1878f5ab434a36625ac9017b792179324d42f4650a8dcc38774578d7ffb68882ec56861155e738eb62a7365b8463bd26886523f60edcfbf6137b43b9b65@35.240.234.137:30303,enode://f55dc8bac635b9c3b9fad688e3200c6b0744e2930d8d8a8e91d1effc0cd91b0547da3eac6d8d1431f0dd130ccc20f3c856fc90e32002bfc1e27d3286eef8c570@34.47.125.153:30303,enode://13da5e4ff1ab3481966f8d83309d8bd898ef5fa56355da57e683bdcc26b4c205be40341c87236934610d0c0bdddf11f6cef495966bba0092465839b8942bc54c@34.47.93.104:30303,enode://c2d43cba3380df975e78befc7294fe07a042eab1c2b743bdf436274b884bcdd0ef218821ff24732ff2106bf796964ada13dbeb42e27756f2491710be402fce59@34.64.123.223:30303,enode://f5b93e79932028a30bacb1b1cd7e7d42b30fe69640c0081bb51e29483bfe715c698dfcf50a309f208743c0ef07884afa39d0c96c6e56a8e58ce7ff1181fdffa0@34.22.89.170:30303
|
||||
- --chain=/config/eth-genesis.json
|
||||
- --datadir=/root/.local/share/reth
|
||||
- --discovery.port=12274
|
||||
- --engine.always-process-payload-attributes-on-canonical-head
|
||||
- --engine.cross-block-cache-size=${BERACHAIN_BEPOLIA_RETH_STATE_CACHE:-4096}
|
||||
- --engine.memory-block-buffer-target=0
|
||||
- --engine.persistence-threshold=0
|
||||
- --full
|
||||
- --max-inbound-peers=50
|
||||
- --max-outbound-peers=50
|
||||
@@ -129,7 +153,7 @@ services:
|
||||
context: ./berachain
|
||||
dockerfile: beacon-kit.Dockerfile
|
||||
args:
|
||||
BEACONKIT_VERSION: ${BERACHAIN_BEPOLIA_BEACON_KIT_VERSION:-v1.2.0.rc2}
|
||||
BEACONKIT_VERSION: ${BERACHAIN_BEPOLIA_BEACON_KIT_VERSION:-v1.3.4}
|
||||
BEACONKIT_IMAGE: ${BERACHAIN_BEPOLIA_BEACON_KIT_IMAGE:-ghcr.io/berachain/beacon-kit}
|
||||
ports:
|
||||
- 17274:17274
|
||||
@@ -148,6 +172,7 @@ services:
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${BERACHAIN_BEPOLIA_RETH_PRUNED_TRACE__BEACON_KIT_DATA:-berachain-bepolia-reth-pruned-trace_beacon-kit}:/root/.beacond/data
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
- berachain-bepolia-reth-pruned-trace_config:/root/.beacond/config
|
||||
logging: *logging-defaults
|
||||
|
||||
@@ -14,6 +14,27 @@ x-logging-defaults: &logging-defaults
|
||||
# if that file is found then the init script will merge them into any configured seeds from the environment variable.
|
||||
# If the environment variable is empty and the file is found then the init script will use the seeds from the config.toml file that was
|
||||
# downloaded in initialization from the repo above.
|
||||
#
|
||||
# something wild that appeared to me was that I had to delete /var/lib/docker/volumes/rpc_berachain-bepolia-reth-archive-trace_config/_data/genesis.json
|
||||
# after a fork of the chain to trigger a redownload of the genesis.json file and init of the node datadir.
|
||||
#
|
||||
# also it may be necessary to update the static peers and bootnodes from the repository to get it going again.
|
||||
#
|
||||
# frequently reth complains about never seeing a beacon client pushing for new blocks to sync to while the beacon client
|
||||
# complains about reth being synching and it can't push new block hashes. force-recreate helps.
|
||||
#
|
||||
# this is honestly the most flaky constructs of all of the chains in this repository. they expect you to run their refrence setup
|
||||
# and git pull to update and if something doesn't work to get a new chaindata snapshot.
|
||||
#
|
||||
# sometimes the genesis has to be updated and is a parameter to the reth node
|
||||
# force-recreate on chain fork would do the trick I guess...
|
||||
#
|
||||
# don't forget to docker compose build from time to time...
|
||||
#
|
||||
# ETH_GENESIS_URL="https://raw.githubusercontent.com/berachain/beacon-kit/main/testing/networks/$CHAINID/eth-genesis.json"
|
||||
# curl -sL "$ETH_GENESIS_URL" -o "$CONFIG_DIR/eth-genesis.json"
|
||||
#
|
||||
# something like this needs to be done sometimes when there is a fork of the chain somehow. may or may not be automated.
|
||||
|
||||
# Usage:
|
||||
#
|
||||
@@ -40,7 +61,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
berachain-mainnet-reth:
|
||||
image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${BERACHAIN_MAINNET_RETH_VERSION:-v1.4.3}
|
||||
image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/berachain/bera-reth}:${BERACHAIN_MAINNET_RETH_VERSION:-v1.3.1}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -64,17 +85,20 @@ services:
|
||||
- 9001
|
||||
- 8551
|
||||
environment:
|
||||
- BOOTNODES=enode://0c5a4a3c0e81fce2974e4d317d88df783731183d534325e32e0fdf8f4b119d7889fa254d3a38890606ec300d744e2aa9c87099a4a032f5c94efe53f3fcdfecfe@34.22.104.177:30303,enode://b6a3137d3a36ef37c4d31843775a9dc293f41bcbde33b6309c80b1771b6634827cd188285136a57474427bd8845adc2f6fe2e0b106bd58d14795b08910b9c326@34.64.247.85:30303,enode://0b6633300614bc2b9749aee0cace7a091ec5348762aee7b1d195f7616d03a9409019d9bef336624bab72e0d069cd4cf0b0de6fbbf53f04f6b6e4c5b39c6bdca6@34.22.73.21:30303,enode://552b001abebb5805fcd734ad367cd05d9078d18f23ec598d7165460fadcfc51116ad95c418f7ea9a141aa8cbc496c8bea3322b67a5de0d3380f11aab1a797513@34.64.37.55:30303,enode://5b037f66099d5ded86eb7e1619f6d06ceb15609e8cc345ced22a4772b06178004e1490a3cd32fd1222789de4c6e4021c2d648a3d750f6d5323e64b771bbd8de7@35.247.182.34:30303,enode://846db253c53753d3ea1197aec296306dc84c25f3afdf142b65cb0fe0f984de55072daa3bbf05a9aea046a38a2292403137b6eafefd5646fcf62120b74e3b898d@34.87.9.231:30303,enode://64b7f6ee9bcd942ad4949c70f2077627f078a057dfd930e6e904e12643d8952f5ae87c91e24559765393f244a72c9d5c011d7d5176e59191d38f315db85a20f5@34.126.78.49:30303,enode://cf4d19bfb8ec507427ec882bac0bac85a0c8c9ddaa0ec91b773bb614e5e09d107cd9fbe323b96f62f31c493f8f42cc5495c18b87c08560c5dea1dfd25256dcf6@35.240.200.36:30303,enode://bb7e44178543431feac8f0ee3827056b7b84d8235b802a8bdbbcd4939dab7f7dd2579ff577a38b002bb0139792af67abd2dd5c9f4f85b8da6e914fa76dca82bc@34.40.14.50:30303,enode://8fef1f5df45e7b31be00a21e1da5665d5a5f5bf4c379086b843f03eade941bdd157f08c95b31880c492577edb9a9b185df7191eaebf54ab06d5bd683b289f3af@35.246.168.217:30303,enode://ce9c87cfe089f6811d26c96913fa3ec10b938d9017fc6246684c74a33679ee34ceca9447180fb509e37bf2b706c2877a82085d34bfd83b5b520ee1288b0fc32f@34.40.28.159:30303,enode://713657eb6a53feadcbc47e634ad557326a51eb6818a3e19a00a8111492f50a666ccbf2f5d334d247ecf941e68d242ef5c3b812b63c44d381ef11f79c2cdb45c7@35.234.82.236:30303,enode://d071fa740e063ce1bb9cdc2b7937baeff6dc4000f91588d730a731c38a6ff0d4015814812c160fab8695e46f74b9b618735368ea2f16db4d785f16d29b3fb7b0@35.203.86.197:30303,enode://ffc452fe451a2e5f89fe634744aea334d92dcd30d881b76209d2db7dbf4b7ee047e7c69a5bb1633764d987a7441d9c4bc57ccdbfd6442a2f860bf953bc89a9b9@34.118.187.161:30303,enode://da94328302a1d1422209d1916744e90b6095a48b2340dcec39b22002c098bb4d58a880dab98eb26edf03fa4705d1b62f99a8c5c14e6666e4726b6d3066d8a4d7@34.95.30.190:30303,enode://19c7671a4844699b481e81a5bcfe7bafc7fefa953c16ebbe1951b1046371e73839e9058de6b7d3c934318fe7e7233dde3621c1c1018eb8b294ea3d4516147150@34.47.60.196:30303
|
||||
- BOOTNODES=enode://0c5a4a3c0e81fce2974e4d317d88df783731183d534325e32e0fdf8f4b119d7889fa254d3a38890606ec300d744e2aa9c87099a4a032f5c94efe53f3fcdfecfe@34.64.176.79:30303,enode://b6a3137d3a36ef37c4d31843775a9dc293f41bcbde33b6309c80b1771b6634827cd188285136a57474427bd8845adc2f6fe2e0b106bd58d14795b08910b9c326@34.64.181.70:30303,enode://0b6633300614bc2b9749aee0cace7a091ec5348762aee7b1d195f7616d03a9409019d9bef336624bab72e0d069cd4cf0b0de6fbbf53f04f6b6e4c5b39c6bdca6@34.64.39.31:30303,enode://552b001abebb5805fcd734ad367cd05d9078d18f23ec598d7165460fadcfc51116ad95c418f7ea9a141aa8cbc496c8bea3322b67a5de0d3380f11aab1a797513@34.64.183.158:30303,enode://5b037f66099d5ded86eb7e1619f6d06ceb15609e8cc345ced22a4772b06178004e1490a3cd32fd1222789de4c6e4021c2d648a3d750f6d5323e64b771bbd8de7@34.87.142.180:30303,enode://846db253c53753d3ea1197aec296306dc84c25f3afdf142b65cb0fe0f984de55072daa3bbf05a9aea046a38a2292403137b6eafefd5646fcf62120b74e3b898d@34.142.170.110:30303,enode://64b7f6ee9bcd942ad4949c70f2077627f078a057dfd930e6e904e12643d8952f5ae87c91e24559765393f244a72c9d5c011d7d5176e59191d38f315db85a20f5@34.126.161.16:30303,enode://cf4d19bfb8ec507427ec882bac0bac85a0c8c9ddaa0ec91b773bb614e5e09d107cd9fbe323b96f62f31c493f8f42cc5495c18b87c08560c5dea1dfd25256dcf6@35.247.162.2:30303,enode://bb7e44178543431feac8f0ee3827056b7b84d8235b802a8bdbbcd4939dab7f7dd2579ff577a38b002bb0139792af67abd2dd5c9f4f85b8da6e914fa76dca82bc@35.198.150.35:30303,enode://8fef1f5df45e7b31be00a21e1da5665d5a5f5bf4c379086b843f03eade941bdd157f08c95b31880c492577edb9a9b185df7191eaebf54ab06d5bd683b289f3af@34.107.7.241:30303,enode://ce9c87cfe089f6811d26c96913fa3ec10b938d9017fc6246684c74a33679ee34ceca9447180fb509e37bf2b706c2877a82085d34bfd83b5b520ee1288b0fc32f@35.198.109.49:30303,enode://713657eb6a53feadcbc47e634ad557326a51eb6818a3e19a00a8111492f50a666ccbf2f5d334d247ecf941e68d242ef5c3b812b63c44d381ef11f79c2cdb45c7@34.141.15.100:30303,enode://d071fa740e063ce1bb9cdc2b7937baeff6dc4000f91588d730a731c38a6ff0d4015814812c160fab8695e46f74b9b618735368ea2f16db4d785f16d29b3fb7b0@35.203.2.210:30303,enode://ffc452fe451a2e5f89fe634744aea334d92dcd30d881b76209d2db7dbf4b7ee047e7c69a5bb1633764d987a7441d9c4bc57ccdbfd6442a2f860bf953bc89a9b9@34.152.50.224:30303,enode://da94328302a1d1422209d1916744e90b6095a48b2340dcec39b22002c098bb4d58a880dab98eb26edf03fa4705d1b62f99a8c5c14e6666e4726b6d3066d8a4d7@34.95.61.106:30303,enode://19c7671a4844699b481e81a5bcfe7bafc7fefa953c16ebbe1951b1046371e73839e9058de6b7d3c934318fe7e7233dde3621c1c1018eb8b294ea3d4516147150@35.203.82.137:30303
|
||||
- CHAINID=80094
|
||||
- CHAINNAME=mainnet
|
||||
- CHAIN_SPEC=mainnet
|
||||
entrypoint: [/bin/bash, -c, "trap 'exit 0' SIGTERM; while [ ! -f /config/eth-genesis.json ] && [ ! -f /tmp/stop ]; do sleep 1 & wait $!; done; exec reth node \"$@\"", --]
|
||||
entrypoint: [/bin/bash, -c, "trap 'exit 0' SIGTERM; while [ ! -f /config/eth-genesis.json ] && [ ! -f /tmp/stop ]; do sleep 1 & wait $!; done; exec bera-reth node \"$@\"", --]
|
||||
command:
|
||||
- --bootnodes=enode://0c5a4a3c0e81fce2974e4d317d88df783731183d534325e32e0fdf8f4b119d7889fa254d3a38890606ec300d744e2aa9c87099a4a032f5c94efe53f3fcdfecfe@34.22.104.177:30303,enode://b6a3137d3a36ef37c4d31843775a9dc293f41bcbde33b6309c80b1771b6634827cd188285136a57474427bd8845adc2f6fe2e0b106bd58d14795b08910b9c326@34.64.247.85:30303,enode://0b6633300614bc2b9749aee0cace7a091ec5348762aee7b1d195f7616d03a9409019d9bef336624bab72e0d069cd4cf0b0de6fbbf53f04f6b6e4c5b39c6bdca6@34.22.73.21:30303,enode://552b001abebb5805fcd734ad367cd05d9078d18f23ec598d7165460fadcfc51116ad95c418f7ea9a141aa8cbc496c8bea3322b67a5de0d3380f11aab1a797513@34.64.37.55:30303,enode://5b037f66099d5ded86eb7e1619f6d06ceb15609e8cc345ced22a4772b06178004e1490a3cd32fd1222789de4c6e4021c2d648a3d750f6d5323e64b771bbd8de7@35.247.182.34:30303,enode://846db253c53753d3ea1197aec296306dc84c25f3afdf142b65cb0fe0f984de55072daa3bbf05a9aea046a38a2292403137b6eafefd5646fcf62120b74e3b898d@34.87.9.231:30303,enode://64b7f6ee9bcd942ad4949c70f2077627f078a057dfd930e6e904e12643d8952f5ae87c91e24559765393f244a72c9d5c011d7d5176e59191d38f315db85a20f5@34.126.78.49:30303,enode://cf4d19bfb8ec507427ec882bac0bac85a0c8c9ddaa0ec91b773bb614e5e09d107cd9fbe323b96f62f31c493f8f42cc5495c18b87c08560c5dea1dfd25256dcf6@35.240.200.36:30303,enode://bb7e44178543431feac8f0ee3827056b7b84d8235b802a8bdbbcd4939dab7f7dd2579ff577a38b002bb0139792af67abd2dd5c9f4f85b8da6e914fa76dca82bc@34.40.14.50:30303,enode://8fef1f5df45e7b31be00a21e1da5665d5a5f5bf4c379086b843f03eade941bdd157f08c95b31880c492577edb9a9b185df7191eaebf54ab06d5bd683b289f3af@35.246.168.217:30303,enode://ce9c87cfe089f6811d26c96913fa3ec10b938d9017fc6246684c74a33679ee34ceca9447180fb509e37bf2b706c2877a82085d34bfd83b5b520ee1288b0fc32f@34.40.28.159:30303,enode://713657eb6a53feadcbc47e634ad557326a51eb6818a3e19a00a8111492f50a666ccbf2f5d334d247ecf941e68d242ef5c3b812b63c44d381ef11f79c2cdb45c7@35.234.82.236:30303,enode://d071fa740e063ce1bb9cdc2b7937baeff6dc4000f91588d730a731c38a6ff0d4015814812c160fab8695e46f74b9b618735368ea2f16db4d785f16d29b3fb7b0@35.203.86.197:30303,enode://ffc452fe451a2e5f89fe634744aea334d92dcd30d881b76209d2db7dbf4b7ee047e7c69a5bb1633764d987a7441d9c4bc57ccdbfd6442a2f860bf953bc89a9b9@34.118.187.161:30303,enode://da94328302a1d1422209d1916744e90b6095a48b2340dcec39b22002c098bb4d58a880dab98eb26edf03fa4705d1b62f99a8c5c14e6666e4726b6d3066d8a4d7@34.95.30.190:30303,enode://19c7671a4844699b481e81a5bcfe7bafc7fefa953c16ebbe1951b1046371e73839e9058de6b7d3c934318fe7e7233dde3621c1c1018eb8b294ea3d4516147150@34.47.60.196:30303
|
||||
- --bootnodes=enode://0c5a4a3c0e81fce2974e4d317d88df783731183d534325e32e0fdf8f4b119d7889fa254d3a38890606ec300d744e2aa9c87099a4a032f5c94efe53f3fcdfecfe@34.64.176.79:30303,enode://b6a3137d3a36ef37c4d31843775a9dc293f41bcbde33b6309c80b1771b6634827cd188285136a57474427bd8845adc2f6fe2e0b106bd58d14795b08910b9c326@34.64.181.70:30303,enode://0b6633300614bc2b9749aee0cace7a091ec5348762aee7b1d195f7616d03a9409019d9bef336624bab72e0d069cd4cf0b0de6fbbf53f04f6b6e4c5b39c6bdca6@34.64.39.31:30303,enode://552b001abebb5805fcd734ad367cd05d9078d18f23ec598d7165460fadcfc51116ad95c418f7ea9a141aa8cbc496c8bea3322b67a5de0d3380f11aab1a797513@34.64.183.158:30303,enode://5b037f66099d5ded86eb7e1619f6d06ceb15609e8cc345ced22a4772b06178004e1490a3cd32fd1222789de4c6e4021c2d648a3d750f6d5323e64b771bbd8de7@34.87.142.180:30303,enode://846db253c53753d3ea1197aec296306dc84c25f3afdf142b65cb0fe0f984de55072daa3bbf05a9aea046a38a2292403137b6eafefd5646fcf62120b74e3b898d@34.142.170.110:30303,enode://64b7f6ee9bcd942ad4949c70f2077627f078a057dfd930e6e904e12643d8952f5ae87c91e24559765393f244a72c9d5c011d7d5176e59191d38f315db85a20f5@34.126.161.16:30303,enode://cf4d19bfb8ec507427ec882bac0bac85a0c8c9ddaa0ec91b773bb614e5e09d107cd9fbe323b96f62f31c493f8f42cc5495c18b87c08560c5dea1dfd25256dcf6@35.247.162.2:30303,enode://bb7e44178543431feac8f0ee3827056b7b84d8235b802a8bdbbcd4939dab7f7dd2579ff577a38b002bb0139792af67abd2dd5c9f4f85b8da6e914fa76dca82bc@35.198.150.35:30303,enode://8fef1f5df45e7b31be00a21e1da5665d5a5f5bf4c379086b843f03eade941bdd157f08c95b31880c492577edb9a9b185df7191eaebf54ab06d5bd683b289f3af@34.107.7.241:30303,enode://ce9c87cfe089f6811d26c96913fa3ec10b938d9017fc6246684c74a33679ee34ceca9447180fb509e37bf2b706c2877a82085d34bfd83b5b520ee1288b0fc32f@35.198.109.49:30303,enode://713657eb6a53feadcbc47e634ad557326a51eb6818a3e19a00a8111492f50a666ccbf2f5d334d247ecf941e68d242ef5c3b812b63c44d381ef11f79c2cdb45c7@34.141.15.100:30303,enode://d071fa740e063ce1bb9cdc2b7937baeff6dc4000f91588d730a731c38a6ff0d4015814812c160fab8695e46f74b9b618735368ea2f16db4d785f16d29b3fb7b0@35.203.2.210:30303,enode://ffc452fe451a2e5f89fe634744aea334d92dcd30d881b76209d2db7dbf4b7ee047e7c69a5bb1633764d987a7441d9c4bc57ccdbfd6442a2f860bf953bc89a9b9@34.152.50.224:30303,enode://da94328302a1d1422209d1916744e90b6095a48b2340dcec39b22002c098bb4d58a880dab98eb26edf03fa4705d1b62f99a8c5c14e6666e4726b6d3066d8a4d7@34.95.61.106:30303,enode://19c7671a4844699b481e81a5bcfe7bafc7fefa953c16ebbe1951b1046371e73839e9058de6b7d3c934318fe7e7233dde3621c1c1018eb8b294ea3d4516147150@35.203.82.137:30303
|
||||
- --chain=/config/eth-genesis.json
|
||||
- --datadir=/root/.local/share/reth
|
||||
- --discovery.port=12881
|
||||
- --engine.always-process-payload-attributes-on-canonical-head
|
||||
- --engine.cross-block-cache-size=${BERACHAIN_MAINNET_RETH_STATE_CACHE:-4096}
|
||||
- --engine.memory-block-buffer-target=0
|
||||
- --engine.persistence-threshold=0
|
||||
- --max-inbound-peers=50
|
||||
- --max-outbound-peers=50
|
||||
- --metrics=0.0.0.0:9001
|
||||
@@ -128,7 +152,7 @@ services:
|
||||
context: ./berachain
|
||||
dockerfile: beacon-kit.Dockerfile
|
||||
args:
|
||||
BEACONKIT_VERSION: ${BERACHAIN_MAINNET_BEACON_KIT_VERSION:-v1.1.3}
|
||||
BEACONKIT_VERSION: ${BERACHAIN_MAINNET_BEACON_KIT_VERSION:-v1.3.4}
|
||||
BEACONKIT_IMAGE: ${BERACHAIN_MAINNET_BEACON_KIT_IMAGE:-ghcr.io/berachain/beacon-kit}
|
||||
ports:
|
||||
- 17881:17881
|
||||
@@ -145,6 +169,7 @@ services:
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${BERACHAIN_MAINNET_RETH_ARCHIVE_TRACE__BEACON_KIT_DATA:-berachain-mainnet-reth-archive-trace_beacon-kit}:/root/.beacond/data
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
- berachain-mainnet-reth-archive-trace_config:/root/.beacond/config
|
||||
logging: *logging-defaults
|
||||
|
||||
@@ -14,6 +14,27 @@ x-logging-defaults: &logging-defaults
|
||||
# if that file is found then the init script will merge them into any configured seeds from the environment variable.
|
||||
# If the environment variable is empty and the file is found then the init script will use the seeds from the config.toml file that was
|
||||
# downloaded in initialization from the repo above.
|
||||
#
|
||||
# something wild that appeared to me was that I had to delete /var/lib/docker/volumes/rpc_berachain-bepolia-reth-archive-trace_config/_data/genesis.json
|
||||
# after a fork of the chain to trigger a redownload of the genesis.json file and init of the node datadir.
|
||||
#
|
||||
# also it may be necessary to update the static peers and bootnodes from the repository to get it going again.
|
||||
#
|
||||
# frequently reth complains about never seeing a beacon client pushing for new blocks to sync to while the beacon client
|
||||
# complains about reth being synching and it can't push new block hashes. force-recreate helps.
|
||||
#
|
||||
# this is honestly the most flaky constructs of all of the chains in this repository. they expect you to run their refrence setup
|
||||
# and git pull to update and if something doesn't work to get a new chaindata snapshot.
|
||||
#
|
||||
# sometimes the genesis has to be updated and is a parameter to the reth node
|
||||
# force-recreate on chain fork would do the trick I guess...
|
||||
#
|
||||
# don't forget to docker compose build from time to time...
|
||||
#
|
||||
# ETH_GENESIS_URL="https://raw.githubusercontent.com/berachain/beacon-kit/main/testing/networks/$CHAINID/eth-genesis.json"
|
||||
# curl -sL "$ETH_GENESIS_URL" -o "$CONFIG_DIR/eth-genesis.json"
|
||||
#
|
||||
# something like this needs to be done sometimes when there is a fork of the chain somehow. may or may not be automated.
|
||||
|
||||
# Usage:
|
||||
#
|
||||
@@ -40,7 +61,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
berachain-mainnet-reth-pruned:
|
||||
image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/paradigmxyz/reth}:${BERACHAIN_MAINNET_RETH_VERSION:-v1.4.3}
|
||||
image: ${BERACHAIN_RETH_IMAGE:-ghcr.io/berachain/bera-reth}:${BERACHAIN_MAINNET_RETH_VERSION:-v1.3.1}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
@@ -64,17 +85,20 @@ services:
|
||||
- 9001
|
||||
- 8551
|
||||
environment:
|
||||
- BOOTNODES=enode://0c5a4a3c0e81fce2974e4d317d88df783731183d534325e32e0fdf8f4b119d7889fa254d3a38890606ec300d744e2aa9c87099a4a032f5c94efe53f3fcdfecfe@34.22.104.177:30303,enode://b6a3137d3a36ef37c4d31843775a9dc293f41bcbde33b6309c80b1771b6634827cd188285136a57474427bd8845adc2f6fe2e0b106bd58d14795b08910b9c326@34.64.247.85:30303,enode://0b6633300614bc2b9749aee0cace7a091ec5348762aee7b1d195f7616d03a9409019d9bef336624bab72e0d069cd4cf0b0de6fbbf53f04f6b6e4c5b39c6bdca6@34.22.73.21:30303,enode://552b001abebb5805fcd734ad367cd05d9078d18f23ec598d7165460fadcfc51116ad95c418f7ea9a141aa8cbc496c8bea3322b67a5de0d3380f11aab1a797513@34.64.37.55:30303,enode://5b037f66099d5ded86eb7e1619f6d06ceb15609e8cc345ced22a4772b06178004e1490a3cd32fd1222789de4c6e4021c2d648a3d750f6d5323e64b771bbd8de7@35.247.182.34:30303,enode://846db253c53753d3ea1197aec296306dc84c25f3afdf142b65cb0fe0f984de55072daa3bbf05a9aea046a38a2292403137b6eafefd5646fcf62120b74e3b898d@34.87.9.231:30303,enode://64b7f6ee9bcd942ad4949c70f2077627f078a057dfd930e6e904e12643d8952f5ae87c91e24559765393f244a72c9d5c011d7d5176e59191d38f315db85a20f5@34.126.78.49:30303,enode://cf4d19bfb8ec507427ec882bac0bac85a0c8c9ddaa0ec91b773bb614e5e09d107cd9fbe323b96f62f31c493f8f42cc5495c18b87c08560c5dea1dfd25256dcf6@35.240.200.36:30303,enode://bb7e44178543431feac8f0ee3827056b7b84d8235b802a8bdbbcd4939dab7f7dd2579ff577a38b002bb0139792af67abd2dd5c9f4f85b8da6e914fa76dca82bc@34.40.14.50:30303,enode://8fef1f5df45e7b31be00a21e1da5665d5a5f5bf4c379086b843f03eade941bdd157f08c95b31880c492577edb9a9b185df7191eaebf54ab06d5bd683b289f3af@35.246.168.217:30303,enode://ce9c87cfe089f6811d26c96913fa3ec10b938d9017fc6246684c74a33679ee34ceca9447180fb509e37bf2b706c2877a82085d34bfd83b5b520ee1288b0fc32f@34.40.28.159:30303,enode://713657eb6a53feadcbc47e634ad557326a51eb6818a3e19a00a8111492f50a666ccbf2f5d334d247ecf941e68d242ef5c3b812b63c44d381ef11f79c2cdb45c7@35.234.82.236:30303,enode://d071fa740e063ce1bb9cdc2b7937baeff6dc4000f91588d730a731c38a6ff0d4015814812c160fab8695e46f74b9b618735368ea2f16db4d785f16d29b3fb7b0@35.203.86.197:30303,enode://ffc452fe451a2e5f89fe634744aea334d92dcd30d881b76209d2db7dbf4b7ee047e7c69a5bb1633764d987a7441d9c4bc57ccdbfd6442a2f860bf953bc89a9b9@34.118.187.161:30303,enode://da94328302a1d1422209d1916744e90b6095a48b2340dcec39b22002c098bb4d58a880dab98eb26edf03fa4705d1b62f99a8c5c14e6666e4726b6d3066d8a4d7@34.95.30.190:30303,enode://19c7671a4844699b481e81a5bcfe7bafc7fefa953c16ebbe1951b1046371e73839e9058de6b7d3c934318fe7e7233dde3621c1c1018eb8b294ea3d4516147150@34.47.60.196:30303
|
||||
- BOOTNODES=enode://0c5a4a3c0e81fce2974e4d317d88df783731183d534325e32e0fdf8f4b119d7889fa254d3a38890606ec300d744e2aa9c87099a4a032f5c94efe53f3fcdfecfe@34.64.176.79:30303,enode://b6a3137d3a36ef37c4d31843775a9dc293f41bcbde33b6309c80b1771b6634827cd188285136a57474427bd8845adc2f6fe2e0b106bd58d14795b08910b9c326@34.64.181.70:30303,enode://0b6633300614bc2b9749aee0cace7a091ec5348762aee7b1d195f7616d03a9409019d9bef336624bab72e0d069cd4cf0b0de6fbbf53f04f6b6e4c5b39c6bdca6@34.64.39.31:30303,enode://552b001abebb5805fcd734ad367cd05d9078d18f23ec598d7165460fadcfc51116ad95c418f7ea9a141aa8cbc496c8bea3322b67a5de0d3380f11aab1a797513@34.64.183.158:30303,enode://5b037f66099d5ded86eb7e1619f6d06ceb15609e8cc345ced22a4772b06178004e1490a3cd32fd1222789de4c6e4021c2d648a3d750f6d5323e64b771bbd8de7@34.87.142.180:30303,enode://846db253c53753d3ea1197aec296306dc84c25f3afdf142b65cb0fe0f984de55072daa3bbf05a9aea046a38a2292403137b6eafefd5646fcf62120b74e3b898d@34.142.170.110:30303,enode://64b7f6ee9bcd942ad4949c70f2077627f078a057dfd930e6e904e12643d8952f5ae87c91e24559765393f244a72c9d5c011d7d5176e59191d38f315db85a20f5@34.126.161.16:30303,enode://cf4d19bfb8ec507427ec882bac0bac85a0c8c9ddaa0ec91b773bb614e5e09d107cd9fbe323b96f62f31c493f8f42cc5495c18b87c08560c5dea1dfd25256dcf6@35.247.162.2:30303,enode://bb7e44178543431feac8f0ee3827056b7b84d8235b802a8bdbbcd4939dab7f7dd2579ff577a38b002bb0139792af67abd2dd5c9f4f85b8da6e914fa76dca82bc@35.198.150.35:30303,enode://8fef1f5df45e7b31be00a21e1da5665d5a5f5bf4c379086b843f03eade941bdd157f08c95b31880c492577edb9a9b185df7191eaebf54ab06d5bd683b289f3af@34.107.7.241:30303,enode://ce9c87cfe089f6811d26c96913fa3ec10b938d9017fc6246684c74a33679ee34ceca9447180fb509e37bf2b706c2877a82085d34bfd83b5b520ee1288b0fc32f@35.198.109.49:30303,enode://713657eb6a53feadcbc47e634ad557326a51eb6818a3e19a00a8111492f50a666ccbf2f5d334d247ecf941e68d242ef5c3b812b63c44d381ef11f79c2cdb45c7@34.141.15.100:30303,enode://d071fa740e063ce1bb9cdc2b7937baeff6dc4000f91588d730a731c38a6ff0d4015814812c160fab8695e46f74b9b618735368ea2f16db4d785f16d29b3fb7b0@35.203.2.210:30303,enode://ffc452fe451a2e5f89fe634744aea334d92dcd30d881b76209d2db7dbf4b7ee047e7c69a5bb1633764d987a7441d9c4bc57ccdbfd6442a2f860bf953bc89a9b9@34.152.50.224:30303,enode://da94328302a1d1422209d1916744e90b6095a48b2340dcec39b22002c098bb4d58a880dab98eb26edf03fa4705d1b62f99a8c5c14e6666e4726b6d3066d8a4d7@34.95.61.106:30303,enode://19c7671a4844699b481e81a5bcfe7bafc7fefa953c16ebbe1951b1046371e73839e9058de6b7d3c934318fe7e7233dde3621c1c1018eb8b294ea3d4516147150@35.203.82.137:30303
|
||||
- CHAINID=80094
|
||||
- CHAINNAME=mainnet
|
||||
- CHAIN_SPEC=mainnet
|
||||
entrypoint: [/bin/bash, -c, "trap 'exit 0' SIGTERM; while [ ! -f /config/eth-genesis.json ] && [ ! -f /tmp/stop ]; do sleep 1 & wait $!; done; exec reth node \"$@\"", --]
|
||||
entrypoint: [/bin/bash, -c, "trap 'exit 0' SIGTERM; while [ ! -f /config/eth-genesis.json ] && [ ! -f /tmp/stop ]; do sleep 1 & wait $!; done; exec bera-reth node \"$@\"", --]
|
||||
command:
|
||||
- --bootnodes=enode://0c5a4a3c0e81fce2974e4d317d88df783731183d534325e32e0fdf8f4b119d7889fa254d3a38890606ec300d744e2aa9c87099a4a032f5c94efe53f3fcdfecfe@34.22.104.177:30303,enode://b6a3137d3a36ef37c4d31843775a9dc293f41bcbde33b6309c80b1771b6634827cd188285136a57474427bd8845adc2f6fe2e0b106bd58d14795b08910b9c326@34.64.247.85:30303,enode://0b6633300614bc2b9749aee0cace7a091ec5348762aee7b1d195f7616d03a9409019d9bef336624bab72e0d069cd4cf0b0de6fbbf53f04f6b6e4c5b39c6bdca6@34.22.73.21:30303,enode://552b001abebb5805fcd734ad367cd05d9078d18f23ec598d7165460fadcfc51116ad95c418f7ea9a141aa8cbc496c8bea3322b67a5de0d3380f11aab1a797513@34.64.37.55:30303,enode://5b037f66099d5ded86eb7e1619f6d06ceb15609e8cc345ced22a4772b06178004e1490a3cd32fd1222789de4c6e4021c2d648a3d750f6d5323e64b771bbd8de7@35.247.182.34:30303,enode://846db253c53753d3ea1197aec296306dc84c25f3afdf142b65cb0fe0f984de55072daa3bbf05a9aea046a38a2292403137b6eafefd5646fcf62120b74e3b898d@34.87.9.231:30303,enode://64b7f6ee9bcd942ad4949c70f2077627f078a057dfd930e6e904e12643d8952f5ae87c91e24559765393f244a72c9d5c011d7d5176e59191d38f315db85a20f5@34.126.78.49:30303,enode://cf4d19bfb8ec507427ec882bac0bac85a0c8c9ddaa0ec91b773bb614e5e09d107cd9fbe323b96f62f31c493f8f42cc5495c18b87c08560c5dea1dfd25256dcf6@35.240.200.36:30303,enode://bb7e44178543431feac8f0ee3827056b7b84d8235b802a8bdbbcd4939dab7f7dd2579ff577a38b002bb0139792af67abd2dd5c9f4f85b8da6e914fa76dca82bc@34.40.14.50:30303,enode://8fef1f5df45e7b31be00a21e1da5665d5a5f5bf4c379086b843f03eade941bdd157f08c95b31880c492577edb9a9b185df7191eaebf54ab06d5bd683b289f3af@35.246.168.217:30303,enode://ce9c87cfe089f6811d26c96913fa3ec10b938d9017fc6246684c74a33679ee34ceca9447180fb509e37bf2b706c2877a82085d34bfd83b5b520ee1288b0fc32f@34.40.28.159:30303,enode://713657eb6a53feadcbc47e634ad557326a51eb6818a3e19a00a8111492f50a666ccbf2f5d334d247ecf941e68d242ef5c3b812b63c44d381ef11f79c2cdb45c7@35.234.82.236:30303,enode://d071fa740e063ce1bb9cdc2b7937baeff6dc4000f91588d730a731c38a6ff0d4015814812c160fab8695e46f74b9b618735368ea2f16db4d785f16d29b3fb7b0@35.203.86.197:30303,enode://ffc452fe451a2e5f89fe634744aea334d92dcd30d881b76209d2db7dbf4b7ee047e7c69a5bb1633764d987a7441d9c4bc57ccdbfd6442a2f860bf953bc89a9b9@34.118.187.161:30303,enode://da94328302a1d1422209d1916744e90b6095a48b2340dcec39b22002c098bb4d58a880dab98eb26edf03fa4705d1b62f99a8c5c14e6666e4726b6d3066d8a4d7@34.95.30.190:30303,enode://19c7671a4844699b481e81a5bcfe7bafc7fefa953c16ebbe1951b1046371e73839e9058de6b7d3c934318fe7e7233dde3621c1c1018eb8b294ea3d4516147150@34.47.60.196:30303
|
||||
- --bootnodes=enode://0c5a4a3c0e81fce2974e4d317d88df783731183d534325e32e0fdf8f4b119d7889fa254d3a38890606ec300d744e2aa9c87099a4a032f5c94efe53f3fcdfecfe@34.64.176.79:30303,enode://b6a3137d3a36ef37c4d31843775a9dc293f41bcbde33b6309c80b1771b6634827cd188285136a57474427bd8845adc2f6fe2e0b106bd58d14795b08910b9c326@34.64.181.70:30303,enode://0b6633300614bc2b9749aee0cace7a091ec5348762aee7b1d195f7616d03a9409019d9bef336624bab72e0d069cd4cf0b0de6fbbf53f04f6b6e4c5b39c6bdca6@34.64.39.31:30303,enode://552b001abebb5805fcd734ad367cd05d9078d18f23ec598d7165460fadcfc51116ad95c418f7ea9a141aa8cbc496c8bea3322b67a5de0d3380f11aab1a797513@34.64.183.158:30303,enode://5b037f66099d5ded86eb7e1619f6d06ceb15609e8cc345ced22a4772b06178004e1490a3cd32fd1222789de4c6e4021c2d648a3d750f6d5323e64b771bbd8de7@34.87.142.180:30303,enode://846db253c53753d3ea1197aec296306dc84c25f3afdf142b65cb0fe0f984de55072daa3bbf05a9aea046a38a2292403137b6eafefd5646fcf62120b74e3b898d@34.142.170.110:30303,enode://64b7f6ee9bcd942ad4949c70f2077627f078a057dfd930e6e904e12643d8952f5ae87c91e24559765393f244a72c9d5c011d7d5176e59191d38f315db85a20f5@34.126.161.16:30303,enode://cf4d19bfb8ec507427ec882bac0bac85a0c8c9ddaa0ec91b773bb614e5e09d107cd9fbe323b96f62f31c493f8f42cc5495c18b87c08560c5dea1dfd25256dcf6@35.247.162.2:30303,enode://bb7e44178543431feac8f0ee3827056b7b84d8235b802a8bdbbcd4939dab7f7dd2579ff577a38b002bb0139792af67abd2dd5c9f4f85b8da6e914fa76dca82bc@35.198.150.35:30303,enode://8fef1f5df45e7b31be00a21e1da5665d5a5f5bf4c379086b843f03eade941bdd157f08c95b31880c492577edb9a9b185df7191eaebf54ab06d5bd683b289f3af@34.107.7.241:30303,enode://ce9c87cfe089f6811d26c96913fa3ec10b938d9017fc6246684c74a33679ee34ceca9447180fb509e37bf2b706c2877a82085d34bfd83b5b520ee1288b0fc32f@35.198.109.49:30303,enode://713657eb6a53feadcbc47e634ad557326a51eb6818a3e19a00a8111492f50a666ccbf2f5d334d247ecf941e68d242ef5c3b812b63c44d381ef11f79c2cdb45c7@34.141.15.100:30303,enode://d071fa740e063ce1bb9cdc2b7937baeff6dc4000f91588d730a731c38a6ff0d4015814812c160fab8695e46f74b9b618735368ea2f16db4d785f16d29b3fb7b0@35.203.2.210:30303,enode://ffc452fe451a2e5f89fe634744aea334d92dcd30d881b76209d2db7dbf4b7ee047e7c69a5bb1633764d987a7441d9c4bc57ccdbfd6442a2f860bf953bc89a9b9@34.152.50.224:30303,enode://da94328302a1d1422209d1916744e90b6095a48b2340dcec39b22002c098bb4d58a880dab98eb26edf03fa4705d1b62f99a8c5c14e6666e4726b6d3066d8a4d7@34.95.61.106:30303,enode://19c7671a4844699b481e81a5bcfe7bafc7fefa953c16ebbe1951b1046371e73839e9058de6b7d3c934318fe7e7233dde3621c1c1018eb8b294ea3d4516147150@35.203.82.137:30303
|
||||
- --chain=/config/eth-genesis.json
|
||||
- --datadir=/root/.local/share/reth
|
||||
- --discovery.port=10900
|
||||
- --engine.always-process-payload-attributes-on-canonical-head
|
||||
- --engine.cross-block-cache-size=${BERACHAIN_MAINNET_RETH_STATE_CACHE:-4096}
|
||||
- --engine.memory-block-buffer-target=0
|
||||
- --engine.persistence-threshold=0
|
||||
- --full
|
||||
- --max-inbound-peers=50
|
||||
- --max-outbound-peers=50
|
||||
@@ -129,7 +153,7 @@ services:
|
||||
context: ./berachain
|
||||
dockerfile: beacon-kit.Dockerfile
|
||||
args:
|
||||
BEACONKIT_VERSION: ${BERACHAIN_MAINNET_BEACON_KIT_VERSION:-v1.1.3}
|
||||
BEACONKIT_VERSION: ${BERACHAIN_MAINNET_BEACON_KIT_VERSION:-v1.3.4}
|
||||
BEACONKIT_IMAGE: ${BERACHAIN_MAINNET_BEACON_KIT_IMAGE:-ghcr.io/berachain/beacon-kit}
|
||||
ports:
|
||||
- 15900:15900
|
||||
@@ -146,6 +170,7 @@ services:
|
||||
networks:
|
||||
- chains
|
||||
volumes:
|
||||
- ${BERACHAIN_MAINNET_RETH_PRUNED_TRACE__BEACON_KIT_DATA:-berachain-mainnet-reth-pruned-trace_beacon-kit}:/root/.beacond/data
|
||||
- .jwtsecret:/jwtsecret:ro
|
||||
- berachain-mainnet-reth-pruned-trace_config:/root/.beacond/config
|
||||
logging: *logging-defaults
|
||||
|
||||
@@ -35,18 +35,22 @@ env
|
||||
apk add curl
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
# sometimes the genesis has to be updated and is a parameter to the reth node
|
||||
# because of the following force-recreate on chain fork would do the trick I guess...
|
||||
ETH_GENESIS_URL="https://raw.githubusercontent.com/berachain/beacon-kit/main/testing/networks/$CHAINID/eth-genesis.json"
|
||||
curl -sL "$ETH_GENESIS_URL" -o "$CONFIG_DIR/eth-genesis.json"
|
||||
|
||||
|
||||
if $BEACOND init ${MONIKER} --beacon-kit.chain-spec ${CHAIN_SPEC:-mainnet} --chain-id ${CHAINNAME}-beacon-${CHAINID} --home /root/.beacond/; then
|
||||
# Define variables
|
||||
CONFIG_TOML_URL="https://raw.githubusercontent.com/berachain/beacon-kit/main/testing/networks/$CHAINID/config.toml"
|
||||
APP_TOML_URL="https://raw.githubusercontent.com/berachain/beacon-kit/main/testing/networks/$CHAINID/app.toml"
|
||||
# SEEDS_URL="https://raw.githubusercontent.com/berachain/beacon-kit/main/testing/networks/$CHAINID/cl-seeds.txt"
|
||||
KZG_URL="https://raw.githubusercontent.com/berachain/beacon-kit/main/testing/networks/$CHAINID/kzg-trusted-setup.json"
|
||||
ETH_GENESIS_URL="https://raw.githubusercontent.com/berachain/beacon-kit/main/testing/networks/$CHAINID/eth-genesis.json"
|
||||
GENESIS_URL="https://raw.githubusercontent.com/berachain/beacon-kit/main/testing/networks/$CHAINID/genesis.json"
|
||||
|
||||
# Download config files
|
||||
curl -sL "$GENESIS_URL" -o "$CONFIG_DIR/genesis.json"
|
||||
curl -sL "$ETH_GENESIS_URL" -o "$CONFIG_DIR/eth-genesis.json"
|
||||
curl -sL "$KZG_URL" -o "$CONFIG_DIR/kzg-trusted-setup.json"
|
||||
curl -sL "$CONFIG_TOML_URL" -o "$CONFIG_DIR/config.toml"
|
||||
curl -sL "$APP_TOML_URL" -o "$CONFIG_DIR/app.toml"
|
||||
@@ -98,6 +102,11 @@ if [ -n "$MONIKER" ] && [ -f "$CONFIG_DIR/config.toml" ]; then
|
||||
sed -i "s/^moniker = \".*\"/moniker = \"$MONIKER\"/" "$CONFIG_DIR/config.toml"
|
||||
fi
|
||||
|
||||
if [ -e /root/.beacond/config/priv_validator_state.json ]; then
|
||||
if [ ! -e /root/.beacond/data/priv_validator_state.json ]; then
|
||||
cp /root/.beacond/config/priv_validator_state.json /root/.beacond/data/priv_validator_state.json
|
||||
fi
|
||||
fi
|
||||
|
||||
#echo "$CONFIG_DIR/jwt.hex: $(cat $CONFIG_DIR/jwt.hex)"
|
||||
|
||||
@@ -108,9 +117,9 @@ fi
|
||||
|
||||
|
||||
if [ "$CHAIN_SPEC" = "testnet" ]; then
|
||||
exec $BEACOND start --beacon-kit.chain-spec testnet --home /root/.beacond $@
|
||||
exec $BEACOND start --beacon-kit.chain-spec testnet --home /root/.beacond --db_dir /root/.beacond/data --beacon-kit.engine.jwt-secret-path /root/.beacond/config/jwt.hex --beacon-kit.kzg.trusted-setup-path /root/.beacond/config/kzg-trusted-setup.json $@
|
||||
else
|
||||
exec $BEACOND start --home /root/.beacond $@
|
||||
exec $BEACOND start --beacon-kit.chain-spec mainnet --home /root/.beacond --db_dir /root/.beacond/data --beacon-kit.engine.jwt-secret-path /root/.beacond/config/jwt.hex --beacon-kit.kzg.trusted-setup-path /root/.beacond/config/kzg-trusted-setup.json $@
|
||||
fi
|
||||
# --beacon-kit.engine.jwt-secret-path $CONFIG_DIR/jwt.hex --beacon-kit.kzg.trusted-setup-path $CONFIG_DIR/kzg-trusted-setup.json --home /root/.beacond
|
||||
#--minimum-gas-prices 0atom
|
||||
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
bitcoin-cash-mainnet:
|
||||
image: ${BITCOIN_CASH_BITCOIND_IMAGE:-bitcoinabc/bitcoin-abc}:${BITCOIN_CASH_MAINNET_BITCOIND_VERSION:-0.31.4}
|
||||
image: ${BITCOIN_CASH_BITCOIND_IMAGE:-bitcoinabc/bitcoin-abc}:${BITCOIN_CASH_MAINNET_BITCOIND_VERSION:-0.32.6}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
bitcoin-cash-testnet:
|
||||
image: ${BITCOIN_CASH_BITCOIND_IMAGE:-bitcoinabc/bitcoin-abc}:${BITCOIN_CASH_TESTNET_BITCOIND_VERSION:-0.31.4}
|
||||
image: ${BITCOIN_CASH_BITCOIND_IMAGE:-bitcoinabc/bitcoin-abc}:${BITCOIN_CASH_TESTNET_BITCOIND_VERSION:-0.32.6}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
|
||||
@@ -30,7 +30,7 @@ x-logging-defaults: &logging-defaults
|
||||
|
||||
services:
|
||||
bitcoin-mainnet:
|
||||
image: ${BITCOIN_BITCOIND_IMAGE:-lncm/bitcoind}:${BITCOIN_MAINNET_BITCOIND_VERSION:-v27.2}
|
||||
image: ${BITCOIN_BITCOIND_IMAGE:-lncm/bitcoind}:${BITCOIN_MAINNET_BITCOIND_VERSION:-v28.0}
|
||||
sysctls:
|
||||
# TCP Performance
|
||||
net.ipv4.tcp_slow_start_after_idle: 0 # Disable slow start after idle
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user