├── .dockerignore ├── .github └── workflows │ ├── docker.yml │ ├── lint.yml │ └── test.yml ├── .gitignore ├── .vscode └── launch.json ├── Cargo.lock ├── Cargo.toml ├── Dockerfile ├── LICENSE ├── Makefile ├── README.md ├── benches └── bench │ ├── helpers.rs │ ├── main.rs │ └── rate_limit.rs ├── configs ├── config.yml └── eth_config.yml ├── rpc_configs ├── ethereum.yml └── substrate.yml ├── rust-toolchain.toml ├── rustfmt.toml ├── scripts ├── set-log.sh └── setup-dev.sh ├── src ├── cli.rs ├── config │ ├── mod.rs │ └── rpc.rs ├── extensions │ ├── api │ │ ├── eth.rs │ │ ├── mod.rs │ │ ├── substrate.rs │ │ ├── tests.rs │ │ └── value_handle.rs │ ├── cache │ │ └── mod.rs │ ├── client │ │ ├── mock.rs │ │ ├── mod.rs │ │ └── tests.rs │ ├── event_bus │ │ └── mod.rs │ ├── merge_subscription │ │ └── mod.rs │ ├── mod.rs │ ├── prometheus │ │ ├── mod.rs │ │ └── rpc_metrics.rs │ ├── rate_limit │ │ ├── connection.rs │ │ ├── ip.rs │ │ ├── mod.rs │ │ ├── weight.rs │ │ └── xff.rs │ ├── server │ │ ├── mod.rs │ │ ├── prometheus.rs │ │ └── proxy_get_request.rs │ ├── telemetry │ │ └── mod.rs │ └── validator │ │ └── mod.rs ├── lib.rs ├── logger.rs ├── main.rs ├── middlewares │ ├── factory.rs │ ├── methods │ │ ├── block_tag.rs │ │ ├── cache.rs │ │ ├── delay.rs │ │ ├── inject_params.rs │ │ ├── mod.rs │ │ ├── response.rs │ │ ├── testing.rs │ │ ├── upstream.rs │ │ └── validate.rs │ ├── mod.rs │ └── subscriptions │ │ ├── merge_subscription.rs │ │ ├── mod.rs │ │ └── upstream.rs ├── server.rs ├── tests │ ├── merge_subscription.rs │ ├── mod.rs │ └── upstream.rs └── utils │ ├── cache.rs │ ├── mod.rs │ └── type_registry.rs ├── subway-diagram.png ├── taplo.toml └── tests ├── configs ├── big_rate_limit_weight.yml ├── broken_endpoints.yml └── config_with_env.yml └── rpc_configs └── big_rate_limit_weight.yml /.dockerignore: -------------------------------------------------------------------------------- 1 | target/ 2 | -------------------------------------------------------------------------------- /.github/workflows/docker.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/.github/workflows/docker.yml -------------------------------------------------------------------------------- /.github/workflows/lint.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/.github/workflows/lint.yml -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/.github/workflows/test.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/.gitignore -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/.vscode/launch.json -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/Cargo.toml -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/README.md -------------------------------------------------------------------------------- /benches/bench/helpers.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/benches/bench/helpers.rs -------------------------------------------------------------------------------- /benches/bench/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/benches/bench/main.rs -------------------------------------------------------------------------------- /benches/bench/rate_limit.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/benches/bench/rate_limit.rs -------------------------------------------------------------------------------- /configs/config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/configs/config.yml -------------------------------------------------------------------------------- /configs/eth_config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/configs/eth_config.yml -------------------------------------------------------------------------------- /rpc_configs/ethereum.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/rpc_configs/ethereum.yml -------------------------------------------------------------------------------- /rpc_configs/substrate.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/rpc_configs/substrate.yml -------------------------------------------------------------------------------- /rust-toolchain.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/rust-toolchain.toml -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- 1 | reorder_imports = true 2 | max_width = 120 3 | -------------------------------------------------------------------------------- /scripts/set-log.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/scripts/set-log.sh -------------------------------------------------------------------------------- /scripts/setup-dev.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/scripts/setup-dev.sh -------------------------------------------------------------------------------- /src/cli.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/cli.rs -------------------------------------------------------------------------------- /src/config/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/config/mod.rs -------------------------------------------------------------------------------- /src/config/rpc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/config/rpc.rs -------------------------------------------------------------------------------- /src/extensions/api/eth.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/extensions/api/eth.rs -------------------------------------------------------------------------------- /src/extensions/api/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/extensions/api/mod.rs -------------------------------------------------------------------------------- /src/extensions/api/substrate.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/extensions/api/substrate.rs -------------------------------------------------------------------------------- /src/extensions/api/tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/extensions/api/tests.rs -------------------------------------------------------------------------------- /src/extensions/api/value_handle.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/extensions/api/value_handle.rs -------------------------------------------------------------------------------- /src/extensions/cache/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/extensions/cache/mod.rs -------------------------------------------------------------------------------- /src/extensions/client/mock.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/extensions/client/mock.rs -------------------------------------------------------------------------------- /src/extensions/client/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/extensions/client/mod.rs -------------------------------------------------------------------------------- /src/extensions/client/tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/extensions/client/tests.rs -------------------------------------------------------------------------------- /src/extensions/event_bus/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/extensions/event_bus/mod.rs -------------------------------------------------------------------------------- /src/extensions/merge_subscription/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/extensions/merge_subscription/mod.rs -------------------------------------------------------------------------------- /src/extensions/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/extensions/mod.rs -------------------------------------------------------------------------------- /src/extensions/prometheus/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/extensions/prometheus/mod.rs -------------------------------------------------------------------------------- /src/extensions/prometheus/rpc_metrics.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/extensions/prometheus/rpc_metrics.rs -------------------------------------------------------------------------------- /src/extensions/rate_limit/connection.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/extensions/rate_limit/connection.rs -------------------------------------------------------------------------------- /src/extensions/rate_limit/ip.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/extensions/rate_limit/ip.rs -------------------------------------------------------------------------------- /src/extensions/rate_limit/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/extensions/rate_limit/mod.rs -------------------------------------------------------------------------------- /src/extensions/rate_limit/weight.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/extensions/rate_limit/weight.rs -------------------------------------------------------------------------------- /src/extensions/rate_limit/xff.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/extensions/rate_limit/xff.rs -------------------------------------------------------------------------------- /src/extensions/server/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/extensions/server/mod.rs -------------------------------------------------------------------------------- /src/extensions/server/prometheus.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/extensions/server/prometheus.rs -------------------------------------------------------------------------------- /src/extensions/server/proxy_get_request.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/extensions/server/proxy_get_request.rs -------------------------------------------------------------------------------- /src/extensions/telemetry/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/extensions/telemetry/mod.rs -------------------------------------------------------------------------------- /src/extensions/validator/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/extensions/validator/mod.rs -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/logger.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/logger.rs -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/main.rs -------------------------------------------------------------------------------- /src/middlewares/factory.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/middlewares/factory.rs -------------------------------------------------------------------------------- /src/middlewares/methods/block_tag.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/middlewares/methods/block_tag.rs -------------------------------------------------------------------------------- /src/middlewares/methods/cache.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/middlewares/methods/cache.rs -------------------------------------------------------------------------------- /src/middlewares/methods/delay.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/middlewares/methods/delay.rs -------------------------------------------------------------------------------- /src/middlewares/methods/inject_params.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/middlewares/methods/inject_params.rs -------------------------------------------------------------------------------- /src/middlewares/methods/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/middlewares/methods/mod.rs -------------------------------------------------------------------------------- /src/middlewares/methods/response.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/middlewares/methods/response.rs -------------------------------------------------------------------------------- /src/middlewares/methods/testing.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/middlewares/methods/testing.rs -------------------------------------------------------------------------------- /src/middlewares/methods/upstream.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/middlewares/methods/upstream.rs -------------------------------------------------------------------------------- /src/middlewares/methods/validate.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/middlewares/methods/validate.rs -------------------------------------------------------------------------------- /src/middlewares/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/middlewares/mod.rs -------------------------------------------------------------------------------- /src/middlewares/subscriptions/merge_subscription.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/middlewares/subscriptions/merge_subscription.rs -------------------------------------------------------------------------------- /src/middlewares/subscriptions/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/middlewares/subscriptions/mod.rs -------------------------------------------------------------------------------- /src/middlewares/subscriptions/upstream.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/middlewares/subscriptions/upstream.rs -------------------------------------------------------------------------------- /src/server.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/server.rs -------------------------------------------------------------------------------- /src/tests/merge_subscription.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/tests/merge_subscription.rs -------------------------------------------------------------------------------- /src/tests/mod.rs: -------------------------------------------------------------------------------- 1 | mod merge_subscription; 2 | mod upstream; 3 | -------------------------------------------------------------------------------- /src/tests/upstream.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/tests/upstream.rs -------------------------------------------------------------------------------- /src/utils/cache.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/utils/cache.rs -------------------------------------------------------------------------------- /src/utils/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/utils/mod.rs -------------------------------------------------------------------------------- /src/utils/type_registry.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/src/utils/type_registry.rs -------------------------------------------------------------------------------- /subway-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/subway-diagram.png -------------------------------------------------------------------------------- /taplo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/taplo.toml -------------------------------------------------------------------------------- /tests/configs/big_rate_limit_weight.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/tests/configs/big_rate_limit_weight.yml -------------------------------------------------------------------------------- /tests/configs/broken_endpoints.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/tests/configs/broken_endpoints.yml -------------------------------------------------------------------------------- /tests/configs/config_with_env.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/tests/configs/config_with_env.yml -------------------------------------------------------------------------------- /tests/rpc_configs/big_rate_limit_weight.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AcalaNetwork/subway/HEAD/tests/rpc_configs/big_rate_limit_weight.yml --------------------------------------------------------------------------------