improve development instructions
This commit is contained in:
parent
678d71f7c8
commit
91b7d2efd3
10
README.md
10
README.md
|
@ -10,6 +10,12 @@ All other requests are sent to an RPC server on the latest block (alchemy, moral
|
||||||
|
|
||||||
Each server has different limits to configure. The `soft_limit` is the number of parallel active requests where a server starts to slow down. The `hard_limit` is where a server starts giving rate limits or other errors.
|
Each server has different limits to configure. The `soft_limit` is the number of parallel active requests where a server starts to slow down. The `hard_limit` is where a server starts giving rate limits or other errors.
|
||||||
|
|
||||||
|
## Quick development
|
||||||
|
|
||||||
|
1. Run `docker-compose up -d` to start the database and caches. See `docker-compose.yml` for details.
|
||||||
|
2. Copy `./config/example.toml` to `./config/development.toml` and change settings to match your setup.
|
||||||
|
3. Run `cargo` commands:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ cargo run --release -- --help
|
$ cargo run --release -- --help
|
||||||
```
|
```
|
||||||
|
@ -28,10 +34,10 @@ Options:
|
||||||
--help display usage information
|
--help display usage information
|
||||||
```
|
```
|
||||||
|
|
||||||
Start the server with the defaults (listen on `http://localhost:8544` and use `./config/example.toml` which proxies to a bunch of public nodes:
|
Start the server with the defaults (listen on `http://localhost:8544` and use `./config/development.toml` which uses the database and cache running under docker and proxies to a bunch of public nodes:
|
||||||
|
|
||||||
```
|
```
|
||||||
cargo run --release -- --config ./config/example.toml
|
cargo run --release
|
||||||
```
|
```
|
||||||
|
|
||||||
## Common commands
|
## Common commands
|
||||||
|
|
|
@ -1,21 +1,25 @@
|
||||||
[app]
|
[app]
|
||||||
chain_id = 1
|
chain_id = 1
|
||||||
|
|
||||||
|
# a database is optional. it is used for user authentication and accounting
|
||||||
# TODO: how do we find the optimal db_max_connections? too high actually ends up being slower
|
# TODO: how do we find the optimal db_max_connections? too high actually ends up being slower
|
||||||
db_max_connections = 99
|
db_max_connections = 99
|
||||||
db_url = "mysql://MYSQL_USER:MYSQL_PASSWORD@MYSQL_DOMAIN:MYSQL_PORT/MYSQL_DB"
|
db_url = "mysql://root:dev_web3_proxy@127.0.0.1:13306/dev_web3_proxy"
|
||||||
|
|
||||||
min_sum_soft_limit = 2_000
|
min_sum_soft_limit = 2_000
|
||||||
min_synced_rpcs = 2
|
min_synced_rpcs = 2
|
||||||
|
|
||||||
|
# redis is optional. it is used for rate limits set by `hard_limit`
|
||||||
# TODO: how do we find the optimal redis_max_connections? too high actually ends up being slower
|
# TODO: how do we find the optimal redis_max_connections? too high actually ends up being slower
|
||||||
volatile_redis_max_connections = 300
|
volatile_redis_max_connections = 300
|
||||||
volatile_redis_url = "redis://REDIS_DOMAIN:REDIS_PORT/"
|
volatile_redis_url = "redis://127.0.0.1:16380/"
|
||||||
|
|
||||||
redirect_public_url = "https://llamanodes.com/public-rpc"
|
redirect_public_url = "https://llamanodes.com/public-rpc"
|
||||||
|
# redirect_rpc_key_url only does something if db_url is set
|
||||||
redirect_rpc_key_url = "https://llamanodes.com/dashboard/keys?key={rpc_key_id}"
|
redirect_rpc_key_url = "https://llamanodes.com/dashboard/keys?key={rpc_key_id}"
|
||||||
|
|
||||||
sentry_url = "https://SENTRY_KEY_A.ingest.sentry.io/SENTRY_KEY_B"
|
# sentry is optional. it is used for browsing error logs
|
||||||
|
# sentry_url = "https://SENTRY_KEY_A.ingest.sentry.io/SENTRY_KEY_B"
|
||||||
|
|
||||||
# public limits are when no key is used. these are instead grouped by ip
|
# public limits are when no key is used. these are instead grouped by ip
|
||||||
# 0 = block all public requests
|
# 0 = block all public requests
|
||||||
|
@ -26,6 +30,7 @@ public_requests_per_period = 200
|
||||||
# 10GB of cache
|
# 10GB of cache
|
||||||
response_cache_max_bytes = 10_000_000_000
|
response_cache_max_bytes = 10_000_000_000
|
||||||
|
|
||||||
|
# allowed_origin_requests_per_period changes the min_sum_soft_limit for requests with the specified (AND SPOOFABLE) Origin header
|
||||||
[app.allowed_origin_requests_per_period]
|
[app.allowed_origin_requests_per_period]
|
||||||
"https://chainlist.org" = 1_000
|
"https://chainlist.org" = 1_000
|
||||||
|
|
||||||
|
|
|
@ -29,13 +29,4 @@ services:
|
||||||
file: docker-compose.common.yml
|
file: docker-compose.common.yml
|
||||||
service: volatile_redis
|
service: volatile_redis
|
||||||
ports:
|
ports:
|
||||||
- 16380:6379
|
- 127.0.0.1:16379:6379
|
||||||
# dev-eth:
|
|
||||||
# extends:
|
|
||||||
# file: docker-compose.common.yml
|
|
||||||
# service: web3-proxy
|
|
||||||
# volumes:
|
|
||||||
# - ./config/example.toml:/config.toml
|
|
||||||
# ports:
|
|
||||||
# - 8544:8544 # proxy (should be behind something handling HTTPS)
|
|
||||||
# - 8543:8543 # prometheus
|
|
||||||
|
|
Loading…
Reference in New Issue