From 4684bbc70dba452d90fdcce3206f67cb723daa17 Mon Sep 17 00:00:00 2001 From: Roman Date: Fri, 28 Mar 2025 03:05:51 +0000 Subject: [PATCH 1/6] fix: add cluster and cryptarchia endpoints --- src/api_clients/invalid_rest.py | 4 ++-- src/api_clients/rest.py | 14 +++++++++++--- src/client/proxy_client.py | 8 ++++---- src/node/nomos_node.py | 6 +++--- 4 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/api_clients/invalid_rest.py b/src/api_clients/invalid_rest.py index 8434e70..f9dcab6 100644 --- a/src/api_clients/invalid_rest.py +++ b/src/api_clients/invalid_rest.py @@ -61,12 +61,12 @@ class InvalidRest(REST): def __init__(self, rest_port): super().__init__(rest_port) - def send_dispersal_request(self, data): + def da_disperse_data(self, data): data = alter_dispersal_data(data) response = self.rest_call("post", "disperse-data", json.dumps(data)) return response - def send_get_range(self, query): + def da_get_range(self, query): query = alter_get_range_query(query) response = self.rest_call("post", "da/get-range", json.dumps(query)) return response.json() diff --git a/src/api_clients/rest.py b/src/api_clients/rest.py index 65b593f..e98fd40 100644 --- a/src/api_clients/rest.py +++ b/src/api_clients/rest.py @@ -19,14 +19,22 @@ class REST(BaseClient): headers = {"accept": "text/plain", "Connection": "close"} return self.make_request(method, url, headers=headers, data=payload) - def info(self): + def cl_metrics(self): + response = self.rest_call("get", "cl/metrics") + return response.json() + + def cl_status(self, query): + response = self.rest_call("post", "cl/status", json.dumps(query)) + return response.json() + + def cryptarchia_info(self): response = self.rest_call("get", "cryptarchia/info") return response.json() - def send_dispersal_request(self, data): + def da_disperse_data(self, data): response = self.rest_call("post", "disperse-data", json.dumps(data)) return response - def send_get_range(self, query): + def da_get_range(self, query): response = self.rest_call("post", "da/get-range", json.dumps(query)) return response.json() diff --git a/src/client/proxy_client.py b/src/client/proxy_client.py index 51aab06..8794819 100644 --- a/src/client/proxy_client.py +++ b/src/client/proxy_client.py @@ -91,12 +91,12 @@ class ProxyClient: def send_dispersal_request(self, data, send_invalid=False): if send_invalid: - return self._invalid_api.send_dispersal_request(data) + return self._invalid_api.da_disperse_data(data) - return self._api.send_dispersal_request(data) + return self._api.da_disperse_data(data) def send_get_data_range_request(self, data, send_invalid=False): if send_invalid: - return self._invalid_api.send_get_range(data) + return self._invalid_api.da_get_range(data) - return self._api.send_get_range(data) + return self._api.da_get_range(data) diff --git a/src/node/nomos_node.py b/src/node/nomos_node.py index 5bc9b88..ce894b1 100644 --- a/src/node/nomos_node.py +++ b/src/node/nomos_node.py @@ -118,7 +118,7 @@ class NomosNode: return "nomos" in self._container_name def info(self): - return self._api.info() + return self._api.cryptarchia_info() def node_type(self): return self._node_type @@ -153,7 +153,7 @@ class NomosNode: logger.debug("No keyword matches found in the logs.") def send_dispersal_request(self, data): - return self._api.send_dispersal_request(data) + return self._api.da_disperse_data(data) def send_get_data_range_request(self, data): - return self._api.send_get_range(data) + return self._api.da_get_range(data) From 0c66fd1c3735953c722c45f036fb408b11d966bd Mon Sep 17 00:00:00 2001 From: Roman Date: Fri, 28 Mar 2025 06:18:48 +0000 Subject: [PATCH 2/6] fix: remaining DA endpoints --- src/api_clients/rest.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/api_clients/rest.py b/src/api_clients/rest.py index e98fd40..0722c03 100644 --- a/src/api_clients/rest.py +++ b/src/api_clients/rest.py @@ -1,3 +1,5 @@ +from urllib.parse import quote + from src.libs.custom_logger import get_custom_logger import json from src.api_clients.base_client import BaseClient @@ -31,6 +33,14 @@ class REST(BaseClient): response = self.rest_call("get", "cryptarchia/info") return response.json() + def cryptarchia_headers(self, from_header_id, to_header_id): + response = self.rest_call("get", f"cryptarchia/headers?from={quote(from_header_id, safe='')}" f"&to={quote(to_header_id, safe='')}") + return response.json() + + def da_add_share(self, data): + response = self.rest_call("post", "da/add-share", json.dumps(data)) + return response + def da_disperse_data(self, data): response = self.rest_call("post", "disperse-data", json.dumps(data)) return response @@ -38,3 +48,25 @@ class REST(BaseClient): def da_get_range(self, query): response = self.rest_call("post", "da/get-range", json.dumps(query)) return response.json() + + def da_get_commitments(self, query): + response = self.rest_call("get", "da/get-commitments", json.dumps(query)) + return response.json() + + def da_get_share(self, query): + response = self.rest_call("get", "da/get-share", json.dumps(query)) + return response.json() + + # DA_GET_SHARES: & str = "/da/sampling/shares"; Implemented ? + + def da_block_peer(self, data): + response = self.rest_call("post", "da/block-peer", json.dumps(data)) + return response + + def da_unblock_peer(self, data): + response = self.rest_call("post", "da/unblock-peer", json.dumps(data)) + return response + + def da_blacklisted_peers(self): + response = self.rest_call("get", "da/blacklisted-peers") + return response.json() From ecee614a9800745c5b0b1e52d470de920e476498 Mon Sep 17 00:00:00 2001 From: Roman Date: Fri, 28 Mar 2025 07:09:35 +0000 Subject: [PATCH 3/6] fix: add network storage mempool endpoints --- src/api_clients/rest.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/api_clients/rest.py b/src/api_clients/rest.py index 0722c03..280ebb9 100644 --- a/src/api_clients/rest.py +++ b/src/api_clients/rest.py @@ -57,8 +57,6 @@ class REST(BaseClient): response = self.rest_call("get", "da/get-share", json.dumps(query)) return response.json() - # DA_GET_SHARES: & str = "/da/sampling/shares"; Implemented ? - def da_block_peer(self, data): response = self.rest_call("post", "da/block-peer", json.dumps(data)) return response @@ -70,3 +68,19 @@ class REST(BaseClient): def da_blacklisted_peers(self): response = self.rest_call("get", "da/blacklisted-peers") return response.json() + + def network_info(self): + response = self.rest_call("get", "network/info") + return response.json() + + def storage_block(self, query): + response = self.rest_call("get", "storage/block", json.dumps(query)) + return response.json() + + def mempool_add_tx(self, data): + response = self.rest_call("post", "mempool/add/tx", json.dumps(data)) + return response + + def mempool_add_blobinfo(self, data): + response = self.rest_call("post", "mempool/add/blobinfo", json.dumps(data)) + return response From 8d54427b1be4d8cb073cadee380d384c8be561ee Mon Sep 17 00:00:00 2001 From: Roman Date: Mon, 31 Mar 2025 06:09:22 +0000 Subject: [PATCH 4/6] fix: update cfgsync template --- cluster_config/cfgsync-template.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cluster_config/cfgsync-template.yaml b/cluster_config/cfgsync-template.yaml index f95023a..3b5e8af 100644 --- a/cluster_config/cfgsync-template.yaml +++ b/cluster_config/cfgsync-template.yaml @@ -16,7 +16,7 @@ blobs_validity_duration_secs: 60 global_params_path: "/kzgrs_test_params" min_dispersal_peers: 1 min_replication_peers: 1 -monitor_failure_time_window_secs: 5 +monitor_failure_time_window_secs: [5, 0] balancer_interval_secs: 5 # Dispersal mempool publish strategy mempool_publish_strategy: !SampleSubnetworks @@ -30,7 +30,7 @@ mempool_publish_strategy: !SampleSubnetworks replication_settings: seen_message_cache_size: 204800 - seen_message_ttl_secs: 900 + seen_message_ttl_secs: "900.0" # Tracing tracing_settings: From 1e1afa15ea1d10cfed202ba7cdc69587f0871f46 Mon Sep 17 00:00:00 2001 From: Roman Date: Mon, 31 Mar 2025 06:39:19 +0000 Subject: [PATCH 5/6] fix: undo monitor_failure_time_window_secs --- cluster_config/cfgsync-template.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cluster_config/cfgsync-template.yaml b/cluster_config/cfgsync-template.yaml index 3b5e8af..7097f80 100644 --- a/cluster_config/cfgsync-template.yaml +++ b/cluster_config/cfgsync-template.yaml @@ -16,7 +16,7 @@ blobs_validity_duration_secs: 60 global_params_path: "/kzgrs_test_params" min_dispersal_peers: 1 min_replication_peers: 1 -monitor_failure_time_window_secs: [5, 0] +monitor_failure_time_window_secs: 5 balancer_interval_secs: 5 # Dispersal mempool publish strategy mempool_publish_strategy: !SampleSubnetworks From d07eebd31cefcd782d76c606a7d5e29b9af5fe9f Mon Sep 17 00:00:00 2001 From: Roman Date: Mon, 31 Mar 2025 06:50:35 +0000 Subject: [PATCH 6/6] fix: flag for reconstruct command --- src/client/client_vars.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/client_vars.py b/src/client/client_vars.py index 2e31061..ac5752a 100644 --- a/src/client/client_vars.py +++ b/src/client/client_vars.py @@ -3,7 +3,7 @@ from src.env_vars import NOMOS_IMAGE, HTTP_PROXY_IMAGE nomos_cli = { "reconstruct": { "image": NOMOS_IMAGE, - "flags": [{"--app-blobs": [0]}], # Value [] is a list of indexes into list of values required for the flag + "flags": [{"--app-shares": [0]}], # Value [] is a list of indexes into list of values required for the flag "volumes": [], "ports": [], "entrypoint": "",