-
Notifications
You must be signed in to change notification settings - Fork 1
Feature/add monad #12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
76ea4dd
096007c
27cf3d3
897d6ff
c39db29
f20b9af
87c2c9a
99063ca
2c3e04b
b5365dd
0f84c81
a9d2c91
197b9f1
d50454d
80261b0
4ff42f1
4ed76a5
6f88d98
fab91bd
2783da6
caf4773
438d216
dc46c8b
4e26052
ba98fbf
a8074ee
42a61ee
7cc355a
72a8a0a
7c01808
0a40f87
59bd00c
f027736
664f7b6
e240812
aed08fa
bae90ed
8d71741
8c2010f
6de9df0
10bba2f
09c7cbf
df23d9d
81e6ed9
30bd403
1a3006f
13f4895
978d827
eaf91eb
99a1227
143204e
e39bc2a
7a53ff2
266454a
48b9bf8
c5a795b
fc540dc
5d740ad
24b9059
c0ca709
94b472c
472dda1
0688dae
ee23272
ece1efa
cecf00e
db769f5
cd83b18
5ba9f22
96e3b24
46077a7
98e9991
b6786eb
49f145c
cac0a65
52dde09
bfecb13
e258b71
0a73147
3d19fb1
a3912e5
3876438
09b7fcc
8bf62af
97f3455
97560f4
a4efb5d
57f5196
26e0535
ac08907
2144a13
a421e21
b850e19
8f781e9
817ef3a
5db9e01
50137a0
be5645f
a7bafbc
539970d
f83b626
c192313
27bce31
1277d26
764abdb
9143729
91a6bb3
6cd3603
08adc38
855f8f4
f46ef9f
95c9d10
4d3286a
0f01c41
8678ad0
00aa349
76b3d44
c6e3e87
780a063
fa5cc6d
1e33dcf
95faaf5
8bbdd2c
49281bc
e80a227
8141f87
ba16950
895f512
7b3d95d
d31b41f
854ef57
e58dd26
23f68bd
9e539a7
6197bcd
e187be3
7eac2af
499d317
c321951
f2cc4e7
90bcc66
ad08fa3
d19b568
5a9c556
c81c45d
9169916
64fab71
d83dbe5
2fe6ae6
5d8c276
c19361f
8f8ffb1
3a696ad
8ae2cc0
b1f75f3
5df48e4
1675cc5
003eda4
b221937
2745e01
0d0dddf
c21b089
015d0bb
8963f70
e79dfe5
06ec44d
9da9a00
9e576b2
8ff98bd
352eb88
8749570
548c3be
cb459e0
b40a222
6bcc5ab
2e411a6
b5a7b26
de256af
676b1da
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,46 @@ | ||
| # Monad Devnet Setup for Battlefield Testing | ||
|
|
||
| Before running the Monad battlefield tests, ensure you have a monad node configured. ([Monad docs](https://docs.monad.xyz/node-ops/full-node-installation)) | ||
| ## Configuration Files | ||
|
|
||
| This directory contains pre-configured files for running Monad devnet: | ||
|
|
||
| [For all docs related](https://docs.monad.xyz/node-ops/) | ||
| - **node/node.toml** - Node configuration (peer discovery, statesync settings) | ||
| - **node/forkpoint.toml** - Genesis configuration | ||
| - **node/validators.toml** - Validator set configuration | ||
| - **node/id-bls** - BLS identity key | ||
| - **node/id-secp** - SECP256k1 identity key | ||
| - **node/profile.json** - Seccomp security profile | ||
| - **compose.yaml** - Docker Compose configuration for Monad services | ||
| - **compose.prebuilt.yaml** - Docker image overrides for images | ||
| - **docker-compose.localnet-firehose.yml** - Firehose and Substreams infrastructure | ||
|
|
||
| ### Configuration Origins | ||
|
|
||
| Configuration files can be obtained from: | ||
|
|
||
| Validators: `https://bucket.monadinfra.com/validators/devnet/validators.toml` | ||
| Forkpoint: `https://bucket.monadinfra.com/forkpoint/devnet/forkpoint.toml` | ||
|
Comment on lines
+19
to
+24
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Are those "source" configs? This section is not super clear to me. |
||
|
|
||
| ## Running Tests | ||
|
|
||
| Once setup is complete, run the Monad battlefield tests: | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If it's docker, we should the instruction to run it (and the machine we use internally should use the same instructions). |
||
|
|
||
| ```bash | ||
| pnpm test:fh3.0:monad-dev | ||
| ``` | ||
|
|
||
| The script will: | ||
| 1. Validate your environment and prerequisites | ||
| 2. Start Monad devnet containers | ||
| 3. Wait for Monad RPC to be ready | ||
| 4. Wait for the event ring to be created | ||
| 5. Start Firehose infrastructure | ||
| 6. Run the battlefield test suite | ||
|
|
||
| ## Docker Images | ||
|
|
||
| - **monad-execution**: `ghcr.io/streamingfast/monad-execution:73ef8ec` | ||
| - **monad-node**: `ghcr.io/streamingfast/monad-node:eede85a` | ||
| - **monad-rpc**: `ghcr.io/streamingfast/monad-rpc:eede85a` | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| services: | ||
| build_triedb: | ||
| image: ghcr.io/streamingfast/monad-execution:cb8a4ce | ||
| build_genesis: | ||
| image: ghcr.io/streamingfast/monad-execution:cb8a4ce | ||
| monad_execution: | ||
| image: ghcr.io/streamingfast/monad-execution:cb8a4ce | ||
| monad_node: | ||
| image: ghcr.io/streamingfast/monad-node:d090722 | ||
| monad_rpc: | ||
| image: ghcr.io/streamingfast/monad-rpc:d090722 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,114 @@ | ||
| services: | ||
| build_triedb: | ||
| image: monad-execution-builder:latest | ||
| command: monad-mpt --storage /monad/triedb/test.db --create | ||
| volumes: | ||
| - /dev/hugepages/monad-localnet:/monad/event-ring | ||
| - ./node:/monad | ||
| security_opt: | ||
| - "seccomp:./node/config/profile.json" | ||
|
|
||
| build_genesis: | ||
| image: monad-execution-builder:latest | ||
| depends_on: | ||
| build_triedb: | ||
| condition: service_completed_successfully | ||
| volumes: | ||
| - /dev/hugepages/monad-localnet:/monad/event-ring | ||
| - ./node:/monad | ||
| security_opt: | ||
| - "seccomp:./node/config/profile.json" | ||
| command: | ||
| monad | ||
| --chain monad_devnet | ||
| --db /monad/triedb/test.db | ||
| --block_db /monad/ledger | ||
| --nblocks 0 | ||
| --log_level ERROR | ||
| ulimits: | ||
| memlock: | ||
| soft: "16770785280" | ||
| hard: "16770785280" | ||
|
|
||
| monad_execution: | ||
| image: monad-execution-builder:latest | ||
| depends_on: | ||
| build_triedb: | ||
| condition: service_completed_successfully | ||
| build_genesis: | ||
| condition: service_completed_successfully | ||
| volumes: | ||
| - /dev/hugepages/monad-localnet:/monad/event-ring | ||
| - ./node:/monad | ||
| security_opt: | ||
| - "seccomp:./node/config/profile.json" | ||
| command: | | ||
| monad | ||
| --chain monad_devnet | ||
| --db /monad/triedb/test.db | ||
| --block_db /monad/ledger | ||
| --statesync /monad/statesync.sock | ||
| --exec-event-ring /monad/event-ring/monad-events | ||
| --trace-calls | ||
| --log_level ERROR | ||
| ulimits: | ||
| memlock: | ||
| soft: "16770785280" | ||
| hard: "16770785280" | ||
|
|
||
| monad_node: | ||
| image: monad-node:latest | ||
| depends_on: | ||
| - build_triedb | ||
| - monad_execution | ||
| environment: | ||
| - RUST_LOG= | ||
| volumes: | ||
| - /dev/hugepages/monad-localnet:/monad/event-ring | ||
| - ./node:/monad | ||
| security_opt: | ||
| - "seccomp:./node/config/profile.json" | ||
| command: | | ||
| monad-node | ||
| --secp-identity /monad/config/id-secp | ||
| --bls-identity /monad/config/id-bls | ||
| --node-config /monad/config/node.toml | ||
| --forkpoint-config /monad/config/forkpoint.genesis.toml | ||
| --validators-path /monad/config/validators.toml | ||
| --statesync-ipc-path /monad/statesync.sock | ||
| --wal-path /monad/wal | ||
| --mempool-ipc-path /monad/mempool.sock | ||
| --control-panel-ipc-path /monad/controlpanel.sock | ||
| --ledger-path /monad/ledger | ||
| --triedb-path /monad/triedb | ||
| --persisted-peers-path /monad/peers | ||
| ulimits: | ||
| memlock: | ||
| soft: "16770785280" | ||
| hard: "16770785280" | ||
|
|
||
| monad_rpc: | ||
| image: monad-rpc:latest | ||
| depends_on: | ||
| - build_triedb | ||
| - monad_node | ||
| volumes: | ||
| - /dev/hugepages/monad-localnet:/monad/event-ring | ||
| - ./node:/monad | ||
| security_opt: | ||
| - "seccomp:./node/config/profile.json" | ||
| ports: | ||
| - "18080:8080" | ||
| command: | | ||
| monad-rpc | ||
| --ipc-path /monad/mempool.sock | ||
| --triedb-path /monad/triedb | ||
| --node-config /monad/config/node.toml | ||
| ulimits: | ||
| memlock: | ||
| soft: "16770785280" | ||
| hard: "16770785280" | ||
|
|
||
| networks: | ||
| default: | ||
| driver: bridge |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,108 @@ | ||
| version: "3.9" | ||
|
|
||
| services: | ||
| localnet-firehose: | ||
| image: ghcr.io/streamingfast/evm-firehose-tracer-rs/monad:d05cc89 | ||
| container_name: monad-localnet-extended-firehose | ||
| environment: | ||
| - MONAD_TRACER_LOG=1 | ||
| entrypoint: ["/app/fireeth"] | ||
| command: | ||
| - start | ||
| - reader-node | ||
|
Comment on lines
+10
to
+12
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Who runs the merger here exactly? Also, here is very little gain in having all the component separated in the case of simple tests like this. It would be good though if you could bring this more extensive deployment to the firehose-docs repository, improving the HA component (but using dummy-blockchain as demo). |
||
| - --config-file= | ||
| - --log-to-file=false | ||
| - --data-dir=/data/firehose | ||
| - --common-first-streamable-block=76 | ||
| - --common-one-block-store-url=file:///data/firehose/storage/one-blocks | ||
| - --reader-node-path=/app/monad-firehose-tracer | ||
| - --reader-node-data-dir=/data/firehose/reader | ||
| - --reader-node-working-dir=/data/firehose/work | ||
| - --reader-node-grpc-listen-addr=:9000 | ||
| - --reader-node-manager-api-addr=:8081 | ||
| - --reader-node-blocks-chan-capacity=1000 | ||
| - --reader-node-arguments=--debug --chain-id=20143 --network-name=monad-localnet --monad-event-ring-path=/dev/hugepages/monad-localnet/monad-events --buffer-size=524288 | ||
| - --metrics-listen-addr=:9102 | ||
| volumes: | ||
| - ../../localnet-firehose-data:/data/firehose | ||
| - /dev/hugepages/monad-localnet:/dev/hugepages/monad-localnet:ro | ||
| ports: | ||
| - "10000:9000" | ||
| - "10102:9102" | ||
| restart: unless-stopped | ||
|
|
||
| localnet-firehose-api: | ||
| image: ghcr.io/streamingfast/evm-firehose-tracer-rs/monad:d05cc89 | ||
| container_name: monad-localnet-extended-firehose-api | ||
| entrypoint: ["/app/fireeth"] | ||
| command: | ||
| - start | ||
| - firehose | ||
| - --config-file= | ||
| - --log-to-file=false | ||
| - --data-dir=/data/firehose | ||
| - --common-first-streamable-block=76 | ||
| - --advertise-chain-name=monad-localnet | ||
| - --ignore-advertise-validation | ||
| - --common-one-block-store-url=file:///data/firehose/storage/one-blocks | ||
| - --common-live-blocks-addr=localnet-firehose:9000 | ||
| - --firehose-grpc-listen-addr=:20028 | ||
| - --metrics-listen-addr=:9103 | ||
| volumes: | ||
| - ../../localnet-firehose-data:/data/firehose | ||
| ports: | ||
| - "20028:20028" | ||
| - "10103:9103" | ||
| depends_on: | ||
| - localnet-firehose | ||
| restart: unless-stopped | ||
|
|
||
| localnet-substreams-tier2: | ||
| image: ghcr.io/streamingfast/evm-firehose-tracer-rs/monad:d05cc89 | ||
| container_name: monad-localnet-substreams-tier2 | ||
| entrypoint: ["/app/fireeth"] | ||
| command: | ||
| - start | ||
| - substreams-tier2 | ||
| - --config-file= | ||
| - --log-to-file=false | ||
| - --data-dir=/data/substreams | ||
| - --common-first-streamable-block=76 | ||
| - --common-one-block-store-url=file:///data/firehose/storage/one-blocks | ||
| - --common-merged-blocks-store-url=file:///data/firehose/storage/merged-blocks | ||
| - --common-live-blocks-addr= | ||
| - --substreams-tier2-grpc-listen-addr=:10017 | ||
| volumes: | ||
| - ../../localnet-firehose-data:/data/firehose | ||
| - ../../localnet-substreams-data:/data/substreams | ||
| ports: | ||
| - "10017:10017" | ||
| restart: unless-stopped | ||
|
|
||
| localnet-substreams-tier1: | ||
| image: ghcr.io/streamingfast/evm-firehose-tracer-rs/monad:d05cc89 | ||
| container_name: monad-localnet-substreams-tier1 | ||
| entrypoint: ["/app/fireeth"] | ||
| command: | ||
| - start | ||
| - substreams-tier1 | ||
| - --config-file= | ||
| - --log-to-file=false | ||
| - --data-dir=/data/substreams | ||
| - --common-first-streamable-block=76 | ||
| - --common-one-block-store-url=file:///data/firehose/storage/one-blocks | ||
| - --common-merged-blocks-store-url=file:///data/firehose/storage/merged-blocks | ||
| - --common-live-blocks-addr= | ||
| - --ignore-advertise-validation | ||
| - --substreams-tier1-grpc-listen-addr=:10016 | ||
| - --substreams-tier1-subrequests-endpoint=localnet-substreams-tier2:10017 | ||
| - --substreams-tier1-subrequests-plaintext | ||
| - --substreams-tier1-block-type=sf.ethereum.type.v2.Block | ||
| volumes: | ||
| - ../../localnet-firehose-data:/data/firehose | ||
| - ../../localnet-substreams-data:/data/substreams | ||
| ports: | ||
| - "10016:10016" | ||
| depends_on: | ||
| - localnet-substreams-tier2 | ||
| restart: unless-stopped | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,14 @@ | ||
| ledger/ | ||
| triedb/ | ||
| event-ring/ | ||
|
|
||
| config/*.rlp | ||
| config/*.rlp.* | ||
| config/forkpoint.toml.* | ||
| config/forkpoint.genesis.toml | ||
| config/forkpoint.genesis.toml.* | ||
| config/validators.toml.* | ||
|
|
||
| *.sock | ||
|
|
||
| wal_* |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,13 @@ | ||
| root = "0x0000000000000000000000000000000000000000000000000000000000000000" | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It would be good to have the recipe to recreate those files or how they were created. If possible, a script |
||
|
|
||
| [high_certificate.Qc] | ||
| signatures = "0xf865c28080b860c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" | ||
|
|
||
| [high_certificate.Qc.info] | ||
| id = "0x0000000000000000000000000000000000000000000000000000000000000000" | ||
| round = 0 | ||
| epoch = 1 | ||
|
|
||
| [[validator_sets]] | ||
| epoch = 1 | ||
| round = 0 | ||
Uh oh!
There was an error while loading. Please reload this page.