Conversation
|
Claude finished @ZanCorDX's task in 1m 38s —— View job Review: Builder server name on TBV stream
SummaryThis PR moves
See inline comments for details. |
|
|
||
| pub builder: String, | ||
| /// Unique Id of the machine that built the block. | ||
| pub builder_server: String, |
There was a problem hiding this comment.
Breaking serialization change: BuiltBlockInfo uses #[serde(rename_all = "camelCase")], so the JSON field name changes from "builder" to "builderServer". Any downstream consumers (Redis subscribers, block-processor API, dashboards, etc.) that read this field by its old name will silently stop receiving the builder identity.
If this rename is intentional, please confirm that all consumers have been updated. If not, consider adding #[serde(alias = "builder")] for backwards-compatible deserialization, or #[serde(rename = "builder")] to keep the wire name unchanged.
| /// Unique id for this server. | ||
| /// Used in clickhouse to identify the builder and in TBV pushes. | ||
| #[serde(default)] | ||
| pub builder_name: String, |
There was a problem hiding this comment.
#[serde(default)] on a String means an empty string "" if the key is absent from the config. This will silently produce empty builder identifiers in clickhouse and TBV pushes for any config file that hasn't been updated yet. Consider either:
- Removing
#[serde(default)]to make it a required field (fail fast on missing config), or - Using a meaningful default (e.g. hostname).
| _submit_block_request: Arc<AlloySubmitBlockRequest>, | ||
| built_block_trace: Arc<BuiltBlockTrace>, | ||
| builder_algorithm_name: String, | ||
| _builder_algorithm_name: String, |
There was a problem hiding this comment.
The semantic change here is significant: builder_algorithm_name previously identified which algorithm produced the block (e.g. "ordering_builder", "parallel_builder"), while builder_server_name identifies which machine built it. These are different dimensions of information.
Downstream consumers that used the builder field to distinguish algorithm behavior (e.g. comparing ordering_builder vs parallel_builder performance) will now see the server name instead. Is the algorithm name captured/reported elsewhere?
|
Claude finished @ZanCorDX's task in 1m 38s —— View job Review: Builder server name on TBV stream
SummaryThe refactor to move
|
|
|
||
| pub builder: String, | ||
| /// Unique Id of the machine that built the block. | ||
| pub builder_server_name: String, |
There was a problem hiding this comment.
Breaking serialization change: BuiltBlockInfo uses #[serde(rename_all = "camelCase")], so the JSON field name changes from "builder" to "builderServerName". Any downstream consumers (Redis subscribers, block-processor API, dashboards) reading the old field name will silently stop receiving the builder identity.
If the rename is intentional, please confirm all consumers have been updated. Otherwise, add #[serde(rename = "builder")] to keep the wire name unchanged.
| /// Unique id for this server. | ||
| /// Used in clickhouse to identify the builder and in TBV pushes. | ||
| #[serde(default)] | ||
| pub builder_name: String, |
There was a problem hiding this comment.
#[serde(default)] on String silently produces "" if the key is absent from the config. This means empty builder identifiers in clickhouse and TBV pushes for any config file that hasn't been updated. Consider either:
- Removing
#[serde(default)]to make it required (fail fast on missing config), or - Defaulting to hostname or some meaningful identifier.
| _submit_block_request: Arc<AlloySubmitBlockRequest>, | ||
| built_block_trace: Arc<BuiltBlockTrace>, | ||
| builder_algorithm_name: String, | ||
| _builder_algorithm_name: String, |
There was a problem hiding this comment.
Semantic change: builder previously carried the algorithm name (e.g. "ordering_builder", "parallel_builder"), now it carries the server name. These are different dimensions. If the algorithm name is needed downstream (e.g. comparing per-algorithm performance), it's now lost from the TBV stream. Is it captured elsewhere?
|
Claude finished @ZanCorDX's task in 2m 0s —— View job Review: Builder server name on TBV stream
SummaryThe refactor to move
See inline comments for details. |
|
|
||
| pub builder: String, | ||
| /// Unique Id of the machine that built the block. | ||
| pub builder_server_name: String, |
There was a problem hiding this comment.
Breaking serialization change: BuiltBlockInfo uses #[serde(rename_all = "camelCase")], so this rename changes the JSON wire field from "builder" to "builderServerName". Any downstream consumer (Redis subscribers, block-processor API, dashboards) reading the old key will silently lose this data.
If this is intentional, confirm all consumers are updated. Otherwise, preserve the wire name:
| pub builder_server_name: String, | |
| #[serde(rename = "builder")] | |
| pub builder_server_name: String, |
|
|
||
| /// Unique id for this server. | ||
| /// Used in clickhouse to identify the builder and in TBV pushes. | ||
| pub builder_name: String, |
There was a problem hiding this comment.
FlashbotsConfig has struct-level #[serde(default)] (line 102), so builder_name still silently defaults to "" if absent from the config. Despite the commit message saying "builder_name mandatory", this field is not actually required at deserialization time. If the intent is to enforce it, you'd need to remove the struct-level #[serde(default)] (which would affect all fields) or add post-deserialization validation.
| _submit_block_request: Arc<AlloySubmitBlockRequest>, | ||
| built_block_trace: Arc<BuiltBlockTrace>, | ||
| builder_algorithm_name: String, | ||
| _builder_algorithm_name: String, |
There was a problem hiding this comment.
The builder field in BuiltBlockInfo previously carried the algorithm name (e.g. "ordering_builder", "parallel_builder"), now it carries the server name. These are different dimensions. If downstream consumers used the old field to compare per-algorithm performance, that information is now lost from the TBV stream. Confirm the algorithm name is still reported where needed.
|
Claude finished @ZanCorDX's task in 1m 26s —— View job Review: Builder server name on TBV stream
SummaryThe refactor to move
See inline comments for details. |
|
|
||
| pub builder: String, | ||
| /// Unique Id of the machine that built the block. | ||
| pub builder_server_name: String, |
There was a problem hiding this comment.
Breaking serialization change: BuiltBlockInfo uses #[serde(rename_all = "camelCase")], so the JSON wire field changes from "builder" to "builderServerName". Any downstream consumer (Redis subscribers, block-processor API, dashboards) reading the old key will silently lose this data.
If the wire format change is intentional, this should be called out explicitly. Otherwise, preserve compatibility:
| pub builder_server_name: String, | |
| #[serde(rename = "builder")] | |
| pub builder_server_name: String, |
|
|
||
| /// Unique id for this server. | ||
| /// Used in clickhouse to identify the builder and in TBV pushes. | ||
| pub builder_name: String, |
There was a problem hiding this comment.
FlashbotsConfig has #[serde(default)] at the struct level (line 102), so builder_name silently defaults to "" when absent from the config. Despite the commit message "builder_name mandatory", it is not enforced at deserialization time. An empty builder name will propagate silently into clickhouse and TBV pushes.
Consider adding post-deserialization validation (e.g. in a validate() method or builder pattern) to reject empty builder_name.
| _submit_block_request: Arc<AlloySubmitBlockRequest>, | ||
| built_block_trace: Arc<BuiltBlockTrace>, | ||
| builder_algorithm_name: String, | ||
| _builder_algorithm_name: String, |
There was a problem hiding this comment.
Semantic change: The builder field in BuiltBlockInfo previously carried the algorithm name (e.g. "ordering_builder", "parallel_builder"), now it carries the server name. These are different dimensions. If anything downstream used the old field to compare per-algorithm performance, that information is now lost from the TBV stream. Confirm the algorithm name is still available where needed.
📝 Summary
Builder server name on TBV stream
✅ I have completed the following steps:
make lintmake test