Skip to content

Commit cac30c0

Browse files
michaelsproulrolfyoneg11tech
authored
Specify builder_boost_factor (#386)
Co-authored-by: Paul Harris <[email protected]> Co-authored-by: g11tech <[email protected]>
1 parent 58f46db commit cac30c0

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

apis/validator/block.v3.yaml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,39 @@ get:
4343
is a flag and does not take a value.
4444
schema: {}
4545
allowEmptyValue: true
46+
- name: builder_boost_factor
47+
in: query
48+
required: false
49+
description: |
50+
Percentage multiplier to apply to the builder's payload value when choosing between a
51+
builder payload header and payload from the paired execution node. This parameter is only
52+
relevant if the beacon node is connected to a builder, deems it safe to produce a builder
53+
payload, and receives valid responses from both the builder endpoint _and_ the paired
54+
execution node. When these preconditions are met, the server MUST act as follows:
55+
56+
* if `exec_node_payload_value >= builder_comparison_factor * (builder_payload_value // 100)`,
57+
then return a full (unblinded) block containing the execution node payload.
58+
* otherwise, return a blinded block containing the builder payload header.
59+
60+
Servers must support the following values of the comparison factor which encode common
61+
preferences:
62+
63+
* `builder_comparison_factor=0`: prefer the execution node payload unless an error makes it
64+
unviable.
65+
* `builder_comparison_factor=100`: default profit maximization mode; choose whichever
66+
payload pays more.
67+
* `builder_comparison_factor=2**64 - 1`: prefer the builder payload unless an error or
68+
beacon node health check makes it unviable.
69+
70+
Servers should use saturating arithmetic or another technique to ensure that large values of
71+
the `builder_comparison_factor` do not trigger overflows or errors. If this parameter is
72+
provided and the beacon node is not configured with a builder then the beacon node MUST
73+
respond with a full block, which the caller can choose to reject if it wishes. If this
74+
parameter is **not** provided then it should be treated as having the default value of 100.
75+
If the value is provided but out of range for a 64-bit unsigned integer, then an error
76+
response with status code 400 MUST be returned.
77+
schema:
78+
$ref: "../../beacon-node-oapi.yaml#/components/schemas/Uint64"
4679
responses:
4780
"200":
4881
description: Success response

0 commit comments

Comments
 (0)