Merge pull request #275 from flashbots/block-list-2

Enqueue a list of blocks
This commit is contained in:
Luke Van Seters 2022-02-16 12:08:27 -05:00 committed by GitHub
commit 8767f27fe6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 35 additions and 0 deletions

View File

@ -162,6 +162,19 @@ DEL dramatiq:default.DQ.msgs
For more information on queues, see the [spec shared by dramatiq](https://github.com/Bogdanp/dramatiq/blob/24cbc0dc551797783f41b08ea461e1b5d23a4058/dramatiq/brokers/redis/dispatch.lua#L24-L43) For more information on queues, see the [spec shared by dramatiq](https://github.com/Bogdanp/dramatiq/blob/24cbc0dc551797783f41b08ea461e1b5d23a4058/dramatiq/brokers/redis/dispatch.lua#L24-L43)
**Backfilling a list of blocks**
Create a file containing a block per row, for example blocks.txt containing:
```
12500000
12500001
12500002
```
Then queue the blocks with
```
cat blocks.txt | ./mev block-list
```
To watch the logs for a given worker pod, take its pod name using the above, then run: To watch the logs for a given worker pod, take its pod name using the above, then run:
``` ```

17
cli.py
View File

@ -1,3 +1,4 @@
import fileinput
import logging import logging
import os import os
import sys import sys
@ -103,6 +104,22 @@ async def inspect_many_blocks_command(
) )
@cli.command()
def enqueue_block_list_command():
broker = connect_broker()
inspect_many_blocks_actor = dramatiq.actor(
inspect_many_blocks_task,
broker=broker,
queue_name=LOW_PRIORITY_QUEUE,
priority=LOW_PRIORITY,
)
for block_string in fileinput.input():
block = int(block_string)
logger.info(f"Sending {block} to {block+1}")
inspect_many_blocks_actor.send(block, block + 1)
@cli.command() @cli.command()
@click.argument("start_block", type=int) @click.argument("start_block", type=int)
@click.argument("end_block", type=int) @click.argument("end_block", type=int)

4
mev
View File

@ -45,6 +45,10 @@ case "$1" in
listener) listener)
kubectl exec -ti deploy/mev-inspect -- ./listener $2 kubectl exec -ti deploy/mev-inspect -- ./listener $2
;; ;;
block-list)
echo "Backfilling blocks from stdin"
kubectl exec -i deploy/mev-inspect -- poetry run enqueue-block-list
;;
backfill) backfill)
after_block_number=$2 after_block_number=$2
before_block_number=$3 before_block_number=$3

View File

@ -38,6 +38,7 @@ build-backend = "poetry.core.masonry.api"
inspect-block = 'cli:inspect_block_command' inspect-block = 'cli:inspect_block_command'
inspect-many-blocks = 'cli:inspect_many_blocks_command' inspect-many-blocks = 'cli:inspect_many_blocks_command'
enqueue-many-blocks = 'cli:enqueue_many_blocks_command' enqueue-many-blocks = 'cli:enqueue_many_blocks_command'
enqueue-block-list = 'cli:enqueue_block_list_command'
fetch-block = 'cli:fetch_block_command' fetch-block = 'cli:fetch_block_command'
fetch-all-prices = 'cli:fetch_all_prices' fetch-all-prices = 'cli:fetch_all_prices'
fetch-range = 'cli:fetch_range' fetch-range = 'cli:fetch_range'