Release v4.0.0: SWQoS transport improvements and Binary-Tx response handling
Major changes: - Switch BlockRazor default transport from gRPC to HTTP to avoid FRAME_SIZE_ERROR - gRPC mode still available via explicit SwqosTransport configuration - Fix ZeroSlot Binary-Tx JSON-RPC 2.0 response parsing - Properly handle success responses with "result" field - Properly handle error responses with "error" field containing code and message - Update version to 4.0.0 - Update README files to reflect new version Technical details: - BlockRazor: HTTP mode is now the default (SwqosTransport::Http or None) - ZeroSlot: Parse JSON-RPC 2.0 format responses instead of plain text - Proto code: Pre-generated gRPC code for BlockRazor (no protoc required) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
20d053bab3
commit
07e45d136f
+4
-2
@@ -352,14 +352,16 @@ impl SwqosConfig {
|
||||
Ok(Arc::new(flashblock_client))
|
||||
}
|
||||
SwqosConfig::BlockRazor(auth_token, region, url, transport) => {
|
||||
let use_http = transport.map_or(false, |t| t == SwqosTransport::Http);
|
||||
// BlockRazor: transport=None 或 transport=Http 时使用 HTTP,否则使用 gRPC
|
||||
// 默认使用 HTTP,避免 gRPC FRAME_SIZE_ERROR
|
||||
let use_http = transport.map_or(true, |t| t == SwqosTransport::Http);
|
||||
if use_http {
|
||||
let endpoint = SwqosConfig::get_endpoint(SwqosType::BlockRazor, region, url);
|
||||
let blockrazor_client =
|
||||
BlockRazorClient::new_http(rpc_url.clone(), endpoint.to_string(), auth_token);
|
||||
Ok(Arc::new(blockrazor_client))
|
||||
} else {
|
||||
// Default to gRPC
|
||||
// 使用 gRPC 模式(用户明确指定了非 Http 的 transport)
|
||||
let endpoint = SwqosConfig::get_endpoint(SwqosType::BlockRazor, region, url);
|
||||
let blockrazor_client =
|
||||
BlockRazorClient::new_grpc(rpc_url.clone(), endpoint.to_string(), auth_token).await?;
|
||||
|
||||
Reference in New Issue
Block a user