73 lines
3.1 KiB
Markdown
73 lines
3.1 KiB
Markdown
# OpenBook crank script
|
|
|
|
OpenBook needs to be cranked to process orderbook events.
|
|
The initial code was taken from the same crank script for openbook in
|
|
mango-v3-client, so most credit goes to Mango team.
|
|
|
|
#### Install deps first:
|
|
|
|
```
|
|
yarn install
|
|
```
|
|
|
|
#### Run:
|
|
|
|
make sure to create a JSON file containing the keypair formatted as a byte array e.g. [1,3,4...]
|
|
|
|
```
|
|
ENDPOINT_URL=... WALLET_PATH=./path/to/wallet.json ./start-cranker.sh
|
|
```
|
|
|
|
Or run with KEYPAIR directly:
|
|
|
|
```
|
|
ENDPOINT_URL=... KEYPAIR=[1,3,4...] ./start-cranker.sh
|
|
```
|
|
|
|
to run in the background, pass "-d" or "--daemon"
|
|
|
|
#### Optional Environment Variables:
|
|
|
|
```
|
|
CLUSTER // Cluster to use. 'mainnet' or 'devnet'. Default is
|
|
// mainnet.
|
|
CONSUME_EVENTS_LIMIT // Max number of events to consume in each TX. Default is
|
|
// 19 events.
|
|
CU_PRICE // Minimum additional micro lamports for all
|
|
// transactions. Default is 0. Raise this above 0 if
|
|
// you want all transactions to pay a priority fee for
|
|
// every market.
|
|
INTERVAL // Sleep interval, in ms, between each loop. Default is
|
|
// 1000 ms
|
|
MARKETS_FILE // Specify the full path to an alternate markets.json
|
|
// file. Default is '../markets.json'. This option will
|
|
// let you run multiple instances with different
|
|
// settings for the markets. e.g. bump with "high fees"
|
|
// or "medium fees" or other markets not included in the
|
|
// default markets.json file.
|
|
MAX_TX_INSTRUCTIONS // Max number of instructions for each transaction.
|
|
// Default is 1.
|
|
MAX_UNIQUE_ACCOUNTS // Max number of unique accounts to process in each
|
|
// transaction. Default is 10.
|
|
POLL_MARKETS // If true, ignore the local markets.json file and crank
|
|
// the top markets, by volume, on openserum.com above a
|
|
// minimum threshold of 1000 (hard-coded). Default is
|
|
// undefined (false).
|
|
PRIORITY_CU_LIMIT // Compute unit limit per instruction. Default is 50000.
|
|
PRIORITY_CU_PRICE // Additional micro lamports for PRIORITY_MARKETS &
|
|
// PRIORITY_QUEUE_LIMIT. Default is 100000.
|
|
PRIORITY_MARKETS // Input to a comma separated list of market IDs that
|
|
// receive fee bump. Transactions for the markets on this
|
|
// list will include higher priority fees.
|
|
// e.g. PRIORITY_MARKETS=ID-1,ID-2,ID-3.
|
|
PRIORITY_QUEUE_LIMIT // Force PRIORITY_CU_PRICE for transactions when the size
|
|
// of the event queue exceeds this value. Default is 100.
|
|
PROGRAM_ID // OpenBook program to use. Default for mainnet is
|
|
// srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX.
|
|
```
|
|
|
|
#### TODO:
|
|
|
|
- Dynamic priority fee using getRecentPrioritizationFees
|
|
- Dynamic frequency based on queue length
|