-
Notifications
You must be signed in to change notification settings - Fork 172
Expand file tree
/
Copy pathbroker-template.toml
More file actions
128 lines (117 loc) · 5.63 KB
/
broker-template.toml
File metadata and controls
128 lines (117 loc) · 5.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
### [Disclaimer] ###
# IMPORTANT: Running the broker with these settings will likely result in your
# broker not being able to lock or fulfill orders, and may even result in your
# broker being slashed.
#
# We strongly recommend using the Boundless CLI's `boundless prover
# generate-config` command to generate a broker.toml file that is tailored to
# your specific setup.
#
# Additionally, refer to documentation:
# https://docs.boundless.network/provers/broker#settings-in-brokertoml
### [End] ###
[market]
# Minimum price per mega-cycle. Can be specified in USD or ETH.
# If USD, it will be converted to the order's payment token (ETH) at runtime using the price oracle.
# Plain numbers without asset suffix default to ETH for backward compatibility.
#
# Examples: "0.00001 USD", "0.00000001 ETH", "0.00000001"
#
# Orders are preflighted (https://docs.boundless.network/provers/terminology#preflight)
# to determine the number of cycles required to prove the order. Based on this
# cycle count, and the current price of the order, the broker computes the
# current price per mega-cycle being offered for the order. This value is compared to the
# `min_mcycle_price` to determine if the order should be locked.
#
# This price is also used for secondary fulfillment (lock-expired orders), where it is
# converted to ZKC via the price oracle and discounted by the expected probability of
# winning the proof race.
min_mcycle_price = "0.00002 USD"
# Per-requestor and per-proof-type min_mcycle_price overrides.
#
# Resolution priority: by_requestor_proof_type > by_proof_type > by_requestor > global default.
# Changes take effect immediately when the broker reloads this file.
#
# Uncomment and populate any of the sections below to enable overrides:
#
# [market.pricing_overrides.by_requestor]
# "0xAbC...123" = "0.0001 USD"
#
# [market.pricing_overrides.by_proof_type]
# "0x12345678" = "0.0005 USD"
#
# [market.pricing_overrides.by_requestor_proof_type]
# "0xAbC...123:0x12345678" = "0.001 USD"
# The minimum price per mega-cycle (i.e. million RISC-V cycles) for the broker
# to attempt to fulfill an order in the case that the order was locked by another prover
# but not fulfilled within the lock timeout.
#
# If an order is locked by a prover, but not fulfilled within the lock timeout,
# that prover is slashed by the amount of collateral specified in the order. A
# portion of this collateral is then used to incentivize other provers to
# fulfill the order. `min_mcycle_price_collateral_token` determines the minimum
# price per mega-cycle in collateral token that must be offered by the prover
# for the broker to attempt to fulfill these orders.
#
# Can be specified in USD or ZKC.
# Plain numbers default to ZKC for backward compatibility.
# If USD, converted to ZKC at runtime via price oracle.
# Examples: "0.00005 ZKC", "0.00001 USD", "0.00005"
#
# Note: attempting to fulfill these orders is a 'proof race' where the first prover
# to fulfill the order is rewarded with the collateral.
min_mcycle_price_collateral_token = "0.00005 ZKC"
# Expected probability of winning the secondary fulfillment race, expressed as a percentage.
# When an order's lock expires, multiple provers may race to fulfill it.
# Scales the expected reward when evaluating profitability and priority.
# Values below 100 discount the reward, 100 = no adjustment, values above 100 boost the reward
# to aggressively prioritize secondary fulfillments.
# Default: 50
expected_probability_win_secondary_fulfillment = 50
# Estimated peak performance of the proving cluster, in kHz.
#
# Used to estimate proving capacity and accept only as much work as your prover
# cluster can handle. Estimates can be derived from benchmarking using the
# Boundless CLI. For more information, see:
# https://docs.beboundless.xyz/provers/broker#benchmarking-bento
peak_prove_khz = 100
# Requestor priority lists specify requestors that the broker should
# prioritize for proving. Requestors on these lists are considered more likely
# to request useful work with profitable pricing, and thus are prioritized over
# requestors not on these lists.
#
# Priority requestors are prioritized when there is a surplus of demand, and skip
# various limits that are typically applied to all requestors:
# 1. Their requests will be preflighted first.
# 2. Their requests will be locked first (in situations where multiple orders
# exceed minimum lock pricing).
# 3. Configuration for `max_mcycle_limit` and `max_file_size` will be skipped.
priority_requestor_lists = [
"https://requestors.boundless.network/boundless-recommended-priority-list.standard.json",
]
# Maximum collateral amount that the broker will use to lock orders.
# Can be specified in USD or ZKC.
# Plain numbers default to ZKC for backward compatibility.
# If USD, it will be converted to ZKC at runtime using the price oracle.
#
# Examples: "100 USD", "200 ZKC", "200"
#
# Requests that require a higher collateral amount than this will be skipped.
max_collateral = "10 USD"
# Maximum number of orders to concurrently preflight.
#
# Used to limit preflight tasks spawned to prevent overwhelming the system.
# We recommend using the Boundless CLI's `boundless prover generate-config`
# to help configure this value.
#
# Refer to the broker configuration documentation for more information:
# https://docs.boundless.network/provers/broker#settings-in-brokertoml
max_concurrent_preflights = 8
# Number of times to retry failed HTTP fetches for request images/inputs.
#
# Retries are disabled by default. Uncomment to enable, for example:
# max_fetch_retries = 2
# Maximum number of concurrent proofs that can be processed at once.
#
# Used to limit proof tasks spawned to prevent overwhelming the system.
max_concurrent_proofs = 1