From 7eecd81177424fa60c76c15d38c8222c8fdf549a Mon Sep 17 00:00:00 2001 From: Srdjan S Date: Wed, 9 Apr 2025 14:39:02 +0200 Subject: [PATCH 01/10] Add support for network wide check --- api/index.js | 14 +++++++++++--- api/test/test.js | 6 +++++- .../067.do.measurement-network-wide-retrieval.sql | 2 ++ 3 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 migrations/067.do.measurement-network-wide-retrieval.sql diff --git a/api/index.js b/api/index.js index 8bc2e057..0f3e1628 100644 --- a/api/index.js +++ b/api/index.js @@ -96,6 +96,8 @@ const createMeasurement = async (req, res, client) => { validate(measurement, 'minerId', { type: 'string', required: false }) validate(measurement, 'providerId', { type: 'string', required: false }) validate(measurement, 'stationId', { type: 'string', required: true }) + validate(measurement, 'networkWideRetrievalStatusCode', { type: 'number', required: false }) + validate(measurement, 'networkWideRetrievalTimeout', { type: 'boolean', required: false }) assert(measurement.stationId.match(/^[0-9a-fA-F]{88}$/), 400, 'Invalid Station ID') const inetGroup = await mapRequestToInetGroup(client, req) @@ -124,10 +126,12 @@ const createMeasurement = async (req, res, client) => { indexer_result, miner_id, provider_id, + network_wide_retrieval_status_code, + network_wide_retrieval_timeout, completed_at_round ) SELECT - $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, + $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, id as completed_at_round FROM spark_rounds ORDER BY id DESC @@ -154,7 +158,9 @@ const createMeasurement = async (req, res, client) => { measurement.carChecksum, measurement.indexerResult, measurement.minerId, - measurement.providerId + measurement.providerId, + measurement.networkWideRetrievalStatusCode, + measurement.networkWideRetrievalTimeout ]) json(res, { id: rows[0].id }) } @@ -190,7 +196,9 @@ const getMeasurement = async (req, res, client, measurementId) => { endAt: resultRow.end_at, byteLength: resultRow.byte_length, carTooLarge: resultRow.car_too_large, - attestation: resultRow.attestation + attestation: resultRow.attestation, + networkWideRetrievalStatusCode: resultRow.network_wide_retrieval_status_code, + networkWideRetrievalTimeout: resultRow.network_wide_retrieval_timeout }) } diff --git a/api/test/test.js b/api/test/test.js index d730e94c..0b729086 100644 --- a/api/test/test.js +++ b/api/test/test.js @@ -38,7 +38,9 @@ const VALID_MEASUREMENT = { carChecksum: 'somehash', minerId: 'f02abc', providerId: 'provider-pubkey', - indexerResult: 'OK' + indexerResult: 'OK', + networkWideRetrievalStatusCode: null, + networkWideRetrievalTimeout: false } const assertResponseStatus = async (res, status) => { @@ -194,6 +196,8 @@ describe('Routes', () => { assert.strictEqual(measurementRow.miner_id, measurement.minerId) assert.strictEqual(measurementRow.provider_id, measurement.providerId) assert.strictEqual(measurementRow.station_id, measurement.stationId) + assert.strictEqual(measurementRow.network_wide_retrieval_status_code, measurement.networkWideRetrievalStatusCode) + assert.strictEqual(measurementRow.network_wide_retrieval_timeout, measurement.networkWideRetrievalTimeout) }) it('allows older format with walletAddress', async () => { diff --git a/migrations/067.do.measurement-network-wide-retrieval.sql b/migrations/067.do.measurement-network-wide-retrieval.sql new file mode 100644 index 00000000..20f75612 --- /dev/null +++ b/migrations/067.do.measurement-network-wide-retrieval.sql @@ -0,0 +1,2 @@ +ALTER TABLE measurements ADD COLUMN network_wide_retrieval_status_code INTEGER; +ALTER TABLE measurements ADD COLUMN network_wide_retrieval_timeout BOOLEAN NOT NULL DEFAULT FALSE; From dd80cd0f469433f8ae5552810741944cf3a7d787 Mon Sep 17 00:00:00 2001 From: Srdjan S Date: Wed, 9 Apr 2025 15:13:55 +0200 Subject: [PATCH 02/10] Simplify name for network wide measurements --- api/index.js | 8 ++++---- api/test/test.js | 8 ++++---- migrations/067.do.measurement-network-wide-retrieval.sql | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/api/index.js b/api/index.js index 0f3e1628..c928043a 100644 --- a/api/index.js +++ b/api/index.js @@ -126,8 +126,8 @@ const createMeasurement = async (req, res, client) => { indexer_result, miner_id, provider_id, - network_wide_retrieval_status_code, - network_wide_retrieval_timeout, + network_retrieval_status_code, + network_retrieval_timeout, completed_at_round ) SELECT @@ -197,8 +197,8 @@ const getMeasurement = async (req, res, client, measurementId) => { byteLength: resultRow.byte_length, carTooLarge: resultRow.car_too_large, attestation: resultRow.attestation, - networkWideRetrievalStatusCode: resultRow.network_wide_retrieval_status_code, - networkWideRetrievalTimeout: resultRow.network_wide_retrieval_timeout + networkRetrievalStatusCode: resultRow.network_retrieval_status_code, + networkRetrievalTimeout: resultRow.network_retrieval_timeout }) } diff --git a/api/test/test.js b/api/test/test.js index 0b729086..b997edc7 100644 --- a/api/test/test.js +++ b/api/test/test.js @@ -39,8 +39,8 @@ const VALID_MEASUREMENT = { minerId: 'f02abc', providerId: 'provider-pubkey', indexerResult: 'OK', - networkWideRetrievalStatusCode: null, - networkWideRetrievalTimeout: false + networkRetrievalStatusCode: null, + networkRetrievalTimeout: false } const assertResponseStatus = async (res, status) => { @@ -196,8 +196,8 @@ describe('Routes', () => { assert.strictEqual(measurementRow.miner_id, measurement.minerId) assert.strictEqual(measurementRow.provider_id, measurement.providerId) assert.strictEqual(measurementRow.station_id, measurement.stationId) - assert.strictEqual(measurementRow.network_wide_retrieval_status_code, measurement.networkWideRetrievalStatusCode) - assert.strictEqual(measurementRow.network_wide_retrieval_timeout, measurement.networkWideRetrievalTimeout) + assert.strictEqual(measurementRow.network_retrieval_status_code, measurement.networkRetrievalStatusCode) + assert.strictEqual(measurementRow.network_retrieval_timeout, measurement.networkRetrievalTimeout) }) it('allows older format with walletAddress', async () => { diff --git a/migrations/067.do.measurement-network-wide-retrieval.sql b/migrations/067.do.measurement-network-wide-retrieval.sql index 20f75612..dfa45392 100644 --- a/migrations/067.do.measurement-network-wide-retrieval.sql +++ b/migrations/067.do.measurement-network-wide-retrieval.sql @@ -1,2 +1,2 @@ -ALTER TABLE measurements ADD COLUMN network_wide_retrieval_status_code INTEGER; -ALTER TABLE measurements ADD COLUMN network_wide_retrieval_timeout BOOLEAN NOT NULL DEFAULT FALSE; +ALTER TABLE measurements ADD COLUMN network_retrieval_status_code INTEGER; +ALTER TABLE measurements ADD COLUMN network_retrieval_timeout BOOLEAN NOT NULL DEFAULT FALSE; From 11af4fccac975b433c2428d7306b7af9f165faaa Mon Sep 17 00:00:00 2001 From: Srdjan S Date: Wed, 9 Apr 2025 15:39:57 +0200 Subject: [PATCH 03/10] Extend network measurement with more columns --- api/index.js | 24 ++++++++++++++----- api/test/test.js | 5 +++- ....do.measurement-network-wide-retrieval.sql | 9 +++++-- 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/api/index.js b/api/index.js index c928043a..62c71807 100644 --- a/api/index.js +++ b/api/index.js @@ -96,8 +96,11 @@ const createMeasurement = async (req, res, client) => { validate(measurement, 'minerId', { type: 'string', required: false }) validate(measurement, 'providerId', { type: 'string', required: false }) validate(measurement, 'stationId', { type: 'string', required: true }) - validate(measurement, 'networkWideRetrievalStatusCode', { type: 'number', required: false }) - validate(measurement, 'networkWideRetrievalTimeout', { type: 'boolean', required: false }) + validate(measurement, 'networkRetrievalStatusCode', { type: 'number', required: false }) + validate(measurement, 'networkRetrievalTimeout', { type: 'boolean', required: false }) + validate(measurement, 'networkRetrievalCarTooLarge', { type: 'boolean', required: false }) + validate(measurement, 'networkRetrievalEndAt', { type: 'date', required: false }) + validate(measurement, 'networkRetrievalProtocol', { type: 'string', required: false }) assert(measurement.stationId.match(/^[0-9a-fA-F]{88}$/), 400, 'Invalid Station ID') const inetGroup = await mapRequestToInetGroup(client, req) @@ -128,10 +131,13 @@ const createMeasurement = async (req, res, client) => { provider_id, network_retrieval_status_code, network_retrieval_timeout, + network_retrieval_car_too_large, + network_retrieval_end_at, + network_retrieval_protocol, completed_at_round ) SELECT - $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, + $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 id as completed_at_round FROM spark_rounds ORDER BY id DESC @@ -159,8 +165,11 @@ const createMeasurement = async (req, res, client) => { measurement.indexerResult, measurement.minerId, measurement.providerId, - measurement.networkWideRetrievalStatusCode, - measurement.networkWideRetrievalTimeout + measurement.networkRetrievalStatusCode, + measurement.networkRetrievalTimeout, + measurement.networkRetrievalCarTooLarge ?? false, + measurement.networkRetrievalEndAt, + measurement.networkRetrievalProtocol ]) json(res, { id: rows[0].id }) } @@ -198,7 +207,10 @@ const getMeasurement = async (req, res, client, measurementId) => { carTooLarge: resultRow.car_too_large, attestation: resultRow.attestation, networkRetrievalStatusCode: resultRow.network_retrieval_status_code, - networkRetrievalTimeout: resultRow.network_retrieval_timeout + networkRetrievalTimeout: resultRow.network_retrieval_timeout, + networkRetrievalCarTooLarge: resultRow.network_retrieval_car_too_large, + networkRetrievalEndAt: resultRow.network_retrieval_end_at, + networkRetrievalProtocol: resultRow.network_retrieval_protocol }) } diff --git a/api/test/test.js b/api/test/test.js index b997edc7..e87057c7 100644 --- a/api/test/test.js +++ b/api/test/test.js @@ -40,7 +40,10 @@ const VALID_MEASUREMENT = { providerId: 'provider-pubkey', indexerResult: 'OK', networkRetrievalStatusCode: null, - networkRetrievalTimeout: false + networkRetrievalTimeout: false, + networkRetrievalCarTooLarge: false, + networkRetrievalEndAt: null, + networkRetrievalProtocol: null } const assertResponseStatus = async (res, status) => { diff --git a/migrations/067.do.measurement-network-wide-retrieval.sql b/migrations/067.do.measurement-network-wide-retrieval.sql index dfa45392..e194ef6e 100644 --- a/migrations/067.do.measurement-network-wide-retrieval.sql +++ b/migrations/067.do.measurement-network-wide-retrieval.sql @@ -1,2 +1,7 @@ -ALTER TABLE measurements ADD COLUMN network_retrieval_status_code INTEGER; -ALTER TABLE measurements ADD COLUMN network_retrieval_timeout BOOLEAN NOT NULL DEFAULT FALSE; +ALTER TABLE measurements + ADD COLUMN network_retrieval_status_code INTEGER, + ADD COLUMN network_retrieval_timeout BOOLEAN NOT NULL DEFAULT FALSE, + ADD COLUMN network_retrieval_car_too_large BOOLEAN NOT NULL DEFAULT FALSE, + ADD COLUMN network_retrieval_end_at TIMESTAMPTZ, + ADD COLUMN network_retrieval_protocol protocol; + From eae83a112898e5d9f3bfaa313401581b649bd253 Mon Sep 17 00:00:00 2001 From: Srdjan S Date: Wed, 9 Apr 2025 15:40:19 +0200 Subject: [PATCH 04/10] Rename network retrieval table --- ...ide-retrieval.sql => 067.do.measurement-network-retrieval.sql} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename migrations/{067.do.measurement-network-wide-retrieval.sql => 067.do.measurement-network-retrieval.sql} (100%) diff --git a/migrations/067.do.measurement-network-wide-retrieval.sql b/migrations/067.do.measurement-network-retrieval.sql similarity index 100% rename from migrations/067.do.measurement-network-wide-retrieval.sql rename to migrations/067.do.measurement-network-retrieval.sql From 87d330e8f1c2915c76d3f4173be0358f95106328 Mon Sep 17 00:00:00 2001 From: Srdjan S Date: Wed, 9 Apr 2025 17:30:50 +0200 Subject: [PATCH 05/10] Edit measurement test data --- api/test/test.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/api/test/test.js b/api/test/test.js index e87057c7..c188e39c 100644 --- a/api/test/test.js +++ b/api/test/test.js @@ -39,11 +39,11 @@ const VALID_MEASUREMENT = { minerId: 'f02abc', providerId: 'provider-pubkey', indexerResult: 'OK', - networkRetrievalStatusCode: null, + networkRetrievalStatusCode: 200, networkRetrievalTimeout: false, networkRetrievalCarTooLarge: false, - networkRetrievalEndAt: null, - networkRetrievalProtocol: null + networkRetrievalEndAt: new Date(), + networkRetrievalProtocol: 'graphsync' } const assertResponseStatus = async (res, status) => { From 2b52cd4fed71ebbf4239282943529929e00915ba Mon Sep 17 00:00:00 2001 From: Srdjan S Date: Wed, 9 Apr 2025 18:30:47 +0200 Subject: [PATCH 06/10] Fix failing test --- api/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/index.js b/api/index.js index 62c71807..e245454c 100644 --- a/api/index.js +++ b/api/index.js @@ -137,7 +137,7 @@ const createMeasurement = async (req, res, client) => { completed_at_round ) SELECT - $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 + $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, id as completed_at_round FROM spark_rounds ORDER BY id DESC From 91f1a19e4ff8dcb6166f99db9eb9b87eef60c175 Mon Sep 17 00:00:00 2001 From: Srdjan S Date: Thu, 10 Apr 2025 11:16:07 +0200 Subject: [PATCH 07/10] Convert network measurement to object inside the measurement --- api/index.js | 36 +++++++++++++++++++++--------------- api/test/test.js | 19 ++++++++++++------- 2 files changed, 33 insertions(+), 22 deletions(-) diff --git a/api/index.js b/api/index.js index e245454c..4fc9c5ba 100644 --- a/api/index.js +++ b/api/index.js @@ -96,13 +96,17 @@ const createMeasurement = async (req, res, client) => { validate(measurement, 'minerId', { type: 'string', required: false }) validate(measurement, 'providerId', { type: 'string', required: false }) validate(measurement, 'stationId', { type: 'string', required: true }) - validate(measurement, 'networkRetrievalStatusCode', { type: 'number', required: false }) - validate(measurement, 'networkRetrievalTimeout', { type: 'boolean', required: false }) - validate(measurement, 'networkRetrievalCarTooLarge', { type: 'boolean', required: false }) - validate(measurement, 'networkRetrievalEndAt', { type: 'date', required: false }) - validate(measurement, 'networkRetrievalProtocol', { type: 'string', required: false }) assert(measurement.stationId.match(/^[0-9a-fA-F]{88}$/), 400, 'Invalid Station ID') + if (measurement.networkRetrieval) { + validate(measurement, 'networkRetrieval', { type: 'object', required: false }) + validate(measurement.networkRetrieval, 'statusCode', { type: 'number', required: false }) + validate(measurement.networkRetrieval, 'timeout', { type: 'boolean', required: false }) + validate(measurement.networkRetrieval, 'carTooLarge', { type: 'boolean', required: false }) + validate(measurement.networkRetrieval, 'endAt', { type: 'date', required: false }) + validate(measurement.networkRetrieval, 'protocol', { type: 'string', required: false }) + } + const inetGroup = await mapRequestToInetGroup(client, req) logNetworkInfo(req.headers, measurement.stationId, recordNetworkInfoTelemetry) @@ -165,11 +169,11 @@ const createMeasurement = async (req, res, client) => { measurement.indexerResult, measurement.minerId, measurement.providerId, - measurement.networkRetrievalStatusCode, - measurement.networkRetrievalTimeout, - measurement.networkRetrievalCarTooLarge ?? false, - measurement.networkRetrievalEndAt, - measurement.networkRetrievalProtocol + measurement.networkRetrieval?.statusCode, + measurement.networkRetrieval?.timeout, + measurement.networkRetrieval?.carTooLarge ?? false, + measurement.networkRetrieval?.endAt, + measurement.networkRetrieval?.protocol ]) json(res, { id: rows[0].id }) } @@ -206,11 +210,13 @@ const getMeasurement = async (req, res, client, measurementId) => { byteLength: resultRow.byte_length, carTooLarge: resultRow.car_too_large, attestation: resultRow.attestation, - networkRetrievalStatusCode: resultRow.network_retrieval_status_code, - networkRetrievalTimeout: resultRow.network_retrieval_timeout, - networkRetrievalCarTooLarge: resultRow.network_retrieval_car_too_large, - networkRetrievalEndAt: resultRow.network_retrieval_end_at, - networkRetrievalProtocol: resultRow.network_retrieval_protocol + networkRetrieval: { + statusCode: resultRow.network_retrieval_status_code, + timeout: resultRow.network_retrieval_timeout, + carTooLarge: resultRow.network_retrieval_car_too_large, + endAt: resultRow.network_retrieval_end_at, + protocol: resultRow.network_retrieval_protocol + } }) } diff --git a/api/test/test.js b/api/test/test.js index c188e39c..7d21b576 100644 --- a/api/test/test.js +++ b/api/test/test.js @@ -39,11 +39,13 @@ const VALID_MEASUREMENT = { minerId: 'f02abc', providerId: 'provider-pubkey', indexerResult: 'OK', - networkRetrievalStatusCode: 200, - networkRetrievalTimeout: false, - networkRetrievalCarTooLarge: false, - networkRetrievalEndAt: new Date(), - networkRetrievalProtocol: 'graphsync' + networkRetrieval: { + statusCode: 200, + timeout: false, + carTooLarge: false, + endAt: new Date(), + protocol: 'graphsync' + } } const assertResponseStatus = async (res, status) => { @@ -199,8 +201,11 @@ describe('Routes', () => { assert.strictEqual(measurementRow.miner_id, measurement.minerId) assert.strictEqual(measurementRow.provider_id, measurement.providerId) assert.strictEqual(measurementRow.station_id, measurement.stationId) - assert.strictEqual(measurementRow.network_retrieval_status_code, measurement.networkRetrievalStatusCode) - assert.strictEqual(measurementRow.network_retrieval_timeout, measurement.networkRetrievalTimeout) + assert.strictEqual(measurementRow.network_retrieval_status_code, measurement.networkRetrieval.statusCode) + assert.strictEqual(measurementRow.network_retrieval_timeout, measurement.networkRetrieval.timeout) + assert.strictEqual(measurementRow.network_retrieval_car_too_large, measurement.networkRetrieval.carTooLarge) + assert.strictEqual(measurementRow.network_retrieval_end_at, measurement.networkRetrieval.endAt) + assert.strictEqual(measurementRow.network_retrieval_protocol, measurement.networkRetrieval.protocol) }) it('allows older format with walletAddress', async () => { From 4357648bba9fd50c70d04c14e4f3b52e71ef6097 Mon Sep 17 00:00:00 2001 From: Srdjan S Date: Thu, 10 Apr 2025 13:03:00 +0200 Subject: [PATCH 08/10] Fix failing test --- api/test/test.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/api/test/test.js b/api/test/test.js index 7d21b576..37919a9c 100644 --- a/api/test/test.js +++ b/api/test/test.js @@ -204,7 +204,10 @@ describe('Routes', () => { assert.strictEqual(measurementRow.network_retrieval_status_code, measurement.networkRetrieval.statusCode) assert.strictEqual(measurementRow.network_retrieval_timeout, measurement.networkRetrieval.timeout) assert.strictEqual(measurementRow.network_retrieval_car_too_large, measurement.networkRetrieval.carTooLarge) - assert.strictEqual(measurementRow.network_retrieval_end_at, measurement.networkRetrieval.endAt) + assert.strictEqual( + measurementRow.network_retrieval_end_at.toJSON(), + measurement.networkRetrieval.endAt.toJSON() + ) assert.strictEqual(measurementRow.network_retrieval_protocol, measurement.networkRetrieval.protocol) }) From b2bcb2bec10fd8a9077a5b15ac5c003a7c3cb4de Mon Sep 17 00:00:00 2001 From: Srdjan S Date: Tue, 15 Apr 2025 18:36:55 +0200 Subject: [PATCH 09/10] Rename network check to alternative provider check --- api/index.js | 46 +++++++++---------- ...measurement-alternative-provider-check.sql | 7 +++ .../067.do.measurement-network-retrieval.sql | 7 --- 3 files changed, 30 insertions(+), 30 deletions(-) create mode 100644 migrations/067.do.measurement-alternative-provider-check.sql delete mode 100644 migrations/067.do.measurement-network-retrieval.sql diff --git a/api/index.js b/api/index.js index 4fc9c5ba..da926f9d 100644 --- a/api/index.js +++ b/api/index.js @@ -98,13 +98,13 @@ const createMeasurement = async (req, res, client) => { validate(measurement, 'stationId', { type: 'string', required: true }) assert(measurement.stationId.match(/^[0-9a-fA-F]{88}$/), 400, 'Invalid Station ID') - if (measurement.networkRetrieval) { - validate(measurement, 'networkRetrieval', { type: 'object', required: false }) - validate(measurement.networkRetrieval, 'statusCode', { type: 'number', required: false }) - validate(measurement.networkRetrieval, 'timeout', { type: 'boolean', required: false }) - validate(measurement.networkRetrieval, 'carTooLarge', { type: 'boolean', required: false }) - validate(measurement.networkRetrieval, 'endAt', { type: 'date', required: false }) - validate(measurement.networkRetrieval, 'protocol', { type: 'string', required: false }) + if (measurement.alternativeProviderCheck) { + validate(measurement, 'alternativeProviderCheck', { type: 'object', required: false }) + validate(measurement.alternativeProviderCheck, 'statusCode', { type: 'number', required: false }) + validate(measurement.alternativeProviderCheck, 'timeout', { type: 'boolean', required: false }) + validate(measurement.alternativeProviderCheck, 'carTooLarge', { type: 'boolean', required: false }) + validate(measurement.alternativeProviderCheck, 'endAt', { type: 'date', required: false }) + validate(measurement.alternativeProviderCheck, 'protocol', { type: 'string', required: false }) } const inetGroup = await mapRequestToInetGroup(client, req) @@ -133,11 +133,11 @@ const createMeasurement = async (req, res, client) => { indexer_result, miner_id, provider_id, - network_retrieval_status_code, - network_retrieval_timeout, - network_retrieval_car_too_large, - network_retrieval_end_at, - network_retrieval_protocol, + alternative_provider_check_status_code, + alternative_provider_check_timeout, + alternative_provider_check_car_too_large, + alternative_provider_check_end_at, + alternative_provider_check_protocol, completed_at_round ) SELECT @@ -169,11 +169,11 @@ const createMeasurement = async (req, res, client) => { measurement.indexerResult, measurement.minerId, measurement.providerId, - measurement.networkRetrieval?.statusCode, - measurement.networkRetrieval?.timeout, - measurement.networkRetrieval?.carTooLarge ?? false, - measurement.networkRetrieval?.endAt, - measurement.networkRetrieval?.protocol + measurement.alternativeProviderCheck?.statusCode, + measurement.alternativeProviderCheck?.timeout, + measurement.alternativeProviderCheck?.carTooLarge ?? false, + measurement.alternativeProviderCheck?.endAt, + measurement.alternativeProviderCheck?.protocol ]) json(res, { id: rows[0].id }) } @@ -210,12 +210,12 @@ const getMeasurement = async (req, res, client, measurementId) => { byteLength: resultRow.byte_length, carTooLarge: resultRow.car_too_large, attestation: resultRow.attestation, - networkRetrieval: { - statusCode: resultRow.network_retrieval_status_code, - timeout: resultRow.network_retrieval_timeout, - carTooLarge: resultRow.network_retrieval_car_too_large, - endAt: resultRow.network_retrieval_end_at, - protocol: resultRow.network_retrieval_protocol + alternativeProviderCheck: { + statusCode: resultRow.alternative_provider_check_status_code, + timeout: resultRow.alternative_provider_check_timeout, + carTooLarge: resultRow.alternative_provider_check_car_too_large, + endAt: resultRow.alternative_provider_check_end_at, + protocol: resultRow.alternative_provider_check_protocol } }) } diff --git a/migrations/067.do.measurement-alternative-provider-check.sql b/migrations/067.do.measurement-alternative-provider-check.sql new file mode 100644 index 00000000..02ec6875 --- /dev/null +++ b/migrations/067.do.measurement-alternative-provider-check.sql @@ -0,0 +1,7 @@ +ALTER TABLE measurements + ADD COLUMN alternative_provider_check_status_code INTEGER, + ADD COLUMN alternative_provider_check_timeout BOOLEAN NOT NULL DEFAULT FALSE, + ADD COLUMN alternative_provider_check_car_too_large BOOLEAN NOT NULL DEFAULT FALSE, + ADD COLUMN alternative_provider_check_end_at TIMESTAMPTZ, + ADD COLUMN alternative_provider_check_protocol protocol; + diff --git a/migrations/067.do.measurement-network-retrieval.sql b/migrations/067.do.measurement-network-retrieval.sql deleted file mode 100644 index e194ef6e..00000000 --- a/migrations/067.do.measurement-network-retrieval.sql +++ /dev/null @@ -1,7 +0,0 @@ -ALTER TABLE measurements - ADD COLUMN network_retrieval_status_code INTEGER, - ADD COLUMN network_retrieval_timeout BOOLEAN NOT NULL DEFAULT FALSE, - ADD COLUMN network_retrieval_car_too_large BOOLEAN NOT NULL DEFAULT FALSE, - ADD COLUMN network_retrieval_end_at TIMESTAMPTZ, - ADD COLUMN network_retrieval_protocol protocol; - From 0ede95e280f0fab0c3cdfd421afb35a386cbede2 Mon Sep 17 00:00:00 2001 From: Srdjan S Date: Tue, 15 Apr 2025 18:42:34 +0200 Subject: [PATCH 10/10] Fix failing tests --- api/test/test.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/api/test/test.js b/api/test/test.js index 37919a9c..bd493944 100644 --- a/api/test/test.js +++ b/api/test/test.js @@ -39,7 +39,7 @@ const VALID_MEASUREMENT = { minerId: 'f02abc', providerId: 'provider-pubkey', indexerResult: 'OK', - networkRetrieval: { + alternativeProviderCheck: { statusCode: 200, timeout: false, carTooLarge: false, @@ -201,14 +201,14 @@ describe('Routes', () => { assert.strictEqual(measurementRow.miner_id, measurement.minerId) assert.strictEqual(measurementRow.provider_id, measurement.providerId) assert.strictEqual(measurementRow.station_id, measurement.stationId) - assert.strictEqual(measurementRow.network_retrieval_status_code, measurement.networkRetrieval.statusCode) - assert.strictEqual(measurementRow.network_retrieval_timeout, measurement.networkRetrieval.timeout) - assert.strictEqual(measurementRow.network_retrieval_car_too_large, measurement.networkRetrieval.carTooLarge) + assert.strictEqual(measurementRow.alternative_provider_check_status_code, measurement.alternativeProviderCheck.statusCode) + assert.strictEqual(measurementRow.alternative_provider_check_timeout, measurement.alternativeProviderCheck.timeout) + assert.strictEqual(measurementRow.alternative_provider_check_car_too_large, measurement.alternativeProviderCheck.carTooLarge) assert.strictEqual( - measurementRow.network_retrieval_end_at.toJSON(), - measurement.networkRetrieval.endAt.toJSON() + measurementRow.alternative_provider_check_end_at.toJSON(), + measurement.alternativeProviderCheck.endAt.toJSON() ) - assert.strictEqual(measurementRow.network_retrieval_protocol, measurement.networkRetrieval.protocol) + assert.strictEqual(measurementRow.alternative_provider_check_protocol, measurement.alternativeProviderCheck.protocol) }) it('allows older format with walletAddress', async () => {