From a26aada833cc46a7259cf0a1c12f55f873204d00 Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Thu, 16 Mar 2023 12:20:50 -0700 Subject: [PATCH 001/143] WIP readme with thoughts --- perf-dashboard/README.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 perf-dashboard/README.md diff --git a/perf-dashboard/README.md b/perf-dashboard/README.md new file mode 100644 index 000000000..209bf2118 --- /dev/null +++ b/perf-dashboard/README.md @@ -0,0 +1,26 @@ +# Perf Dashboard [wip] + +This is an outline of what I'd like to see our perf dashboard look like. + +A lot of this is inspired by the [MsQuic +dashboard](https://microsoft.github.io/msquic/). Please look at that first. + +For each combination of libp2p implementation, version, and transport we would +have numbers that outline: +1. Download/Upload throughput +2. Request latency +3. Requests per second (for some request/response protocol) +4. Handshakes per second (useful to identify overhead in connection + initialization). + +The y axis on the graphs is the value for the above tests, the x axis is the +specific version. Different lines represent different implementation+transports. + +The dashboards should be selectable and filterable. + +# Other transports (iperf/http) + +We have to be careful to compare apples to apples. A raw iperf number might be +confusing here because no application will ever hit those numbers since they +will at least want some encryption in their connection. I would suggest not +having this or an HTTP comparison. Having HTTPS might be okay. From ac3bba3afb18dd3c9dfe30264d3cde50e683a751 Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Tue, 21 Mar 2023 14:15:32 -0700 Subject: [PATCH 002/143] Add example data --- perf-dashboard/benchmark-data-schema.json | 45 ++ perf-dashboard/benchmark-result-type.ts | 19 + perf-dashboard/benchmarks.schema.json | 75 +++ perf-dashboard/example-data.json | 47 ++ perf-dashboard/util/.gitignore | 1 + perf-dashboard/util/README.md | 3 + perf-dashboard/util/main.ts | 18 + perf-dashboard/util/package-lock.json | 559 ++++++++++++++++++++++ perf-dashboard/util/package.json | 10 + perf-dashboard/util/tsconfig.json | 109 +++++ 10 files changed, 886 insertions(+) create mode 100644 perf-dashboard/benchmark-data-schema.json create mode 100644 perf-dashboard/benchmark-result-type.ts create mode 100644 perf-dashboard/benchmarks.schema.json create mode 100644 perf-dashboard/example-data.json create mode 100644 perf-dashboard/util/.gitignore create mode 100644 perf-dashboard/util/README.md create mode 100644 perf-dashboard/util/main.ts create mode 100644 perf-dashboard/util/package-lock.json create mode 100644 perf-dashboard/util/package.json create mode 100644 perf-dashboard/util/tsconfig.json diff --git a/perf-dashboard/benchmark-data-schema.json b/perf-dashboard/benchmark-data-schema.json new file mode 100644 index 000000000..81ef27f94 --- /dev/null +++ b/perf-dashboard/benchmark-data-schema.json @@ -0,0 +1,45 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://libp2p.io/benchmark.schema.json", + "title": "Benchmark Results", + "description": "Results from a benchmark run", + "type": "object", + "properties": { + "benchmarks": { + "description": "A list of benchmark results", + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "description": "The name of this benchmark", + "type": "string" + }, + "unit": { + "description": "The unit for the result", + "enum": [ + "bits/s", + "s" + ] + }, + "result": { + "description": "String encoded result. Parse as float64", + "type": "string" + } + }, + "required": [ + "name", + "unit", + "result", + "implementation", + "stack", + "version" + ] + } + } + }, + "required": [ + "benchmarks", + "productName" + ] +} \ No newline at end of file diff --git a/perf-dashboard/benchmark-result-type.ts b/perf-dashboard/benchmark-result-type.ts new file mode 100644 index 000000000..3a9f2b8f8 --- /dev/null +++ b/perf-dashboard/benchmark-result-type.ts @@ -0,0 +1,19 @@ +export type BenchmarkResults = { + benchmarks: Benchmark[], + // For referencing this schema in JSON + "$schema"?: string +}; + +export type Benchmark = { + name: string, + unit: "bits/s" | "s", + results: Result[], + +} + +export type Result = { + result: string, + implementation: string, + transportStack: string, + version: string +}; \ No newline at end of file diff --git a/perf-dashboard/benchmarks.schema.json b/perf-dashboard/benchmarks.schema.json new file mode 100644 index 000000000..f4b7fe846 --- /dev/null +++ b/perf-dashboard/benchmarks.schema.json @@ -0,0 +1,75 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$ref": "#/definitions/BenchmarkResults", + "definitions": { + "BenchmarkResults": { + "type": "object", + "properties": { + "benchmarks": { + "type": "array", + "items": { + "$ref": "#/definitions/Benchmark" + } + }, + "$schema": { + "type": "string" + } + }, + "required": [ + "benchmarks" + ], + "additionalProperties": false + }, + "Benchmark": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "unit": { + "type": "string", + "enum": [ + "bits/s", + "s" + ] + }, + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Result" + } + } + }, + "required": [ + "name", + "unit", + "results" + ], + "additionalProperties": false + }, + "Result": { + "type": "object", + "properties": { + "result": { + "type": "string" + }, + "implementation": { + "type": "string" + }, + "transportStack": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "result", + "implementation", + "transportStack", + "version" + ], + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/perf-dashboard/example-data.json b/perf-dashboard/example-data.json new file mode 100644 index 000000000..2e28a617f --- /dev/null +++ b/perf-dashboard/example-data.json @@ -0,0 +1,47 @@ +{ + "$schema": "./benchmarks.schema.json", + "benchmarks": [ + { + "name": "Single Connection throughput – Upload", + "unit": "bits/s", + "results": [ + { + "result": "1234", + "implementation": "go-libp2p", + "transportStack": "quic-v1", + "version": "v0.26.2" + }, + { + "result": "4567", + "implementation": "go-libp2p", + "transportStack": "quic-v1", + "version": "v0.50.0" + }, + { + "result": "1000000", + "implementation": "zig-libp2p", + "transportStack": "quic-v1", + "version": "v0.0.1" + } + ] + }, + { + "name": "Single Connection 1 byte round trip latency", + "unit": "s", + "results": [ + { + "result": "0.022", + "implementation": "go-libp2p", + "transportStack": "quic-v1", + "version": "v0.26.2" + }, + { + "result": "0.012", + "implementation": "rust-libp2p", + "transportStack": "quic-v1", + "version": "v0.50.0" + } + ] + } + ] +} \ No newline at end of file diff --git a/perf-dashboard/util/.gitignore b/perf-dashboard/util/.gitignore new file mode 100644 index 000000000..3c3629e64 --- /dev/null +++ b/perf-dashboard/util/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/perf-dashboard/util/README.md b/perf-dashboard/util/README.md new file mode 100644 index 000000000..997c9782a --- /dev/null +++ b/perf-dashboard/util/README.md @@ -0,0 +1,3 @@ +# Util + +Helper to generate schemas for benchmark data. \ No newline at end of file diff --git a/perf-dashboard/util/main.ts b/perf-dashboard/util/main.ts new file mode 100644 index 000000000..e113efc2e --- /dev/null +++ b/perf-dashboard/util/main.ts @@ -0,0 +1,18 @@ +import * as tsj from "ts-json-schema-generator"; +import * as fs from "fs"; +// const fs = require("fs"); + +/** @type {import('ts-json-schema-generator/dist/src/Config').Config} */ +const config = { + path: "../benchmark-result-type.ts", + tsconfig: "./tsconfig.json", + type: "BenchmarkResults", // Or if you want to generate schema for that one type only +}; + +const output_path = "../benchmarks.schema.json"; + +const schema = tsj.createGenerator(config).createSchema(config.type); +const schemaString = JSON.stringify(schema, null, 2); +fs.writeFile(output_path, schemaString, (err) => { + if (err) throw err; +}); \ No newline at end of file diff --git a/perf-dashboard/util/package-lock.json b/perf-dashboard/util/package-lock.json new file mode 100644 index 000000000..7c6b8b01b --- /dev/null +++ b/perf-dashboard/util/package-lock.json @@ -0,0 +1,559 @@ +{ + "name": "util", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "dependencies": { + "ts-json-schema-generator": "^1.2.0", + "ts-node": "^10.9.1", + "typescript": "^5.0.2" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + }, + "node_modules/@types/node": { + "version": "18.15.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.5.tgz", + "integrity": "sha512-Ark2WDjjZO7GmvsyFFf81MXuGTA/d6oP38anyxWOL6EREyBKAxKoFHwBhaZxCfLRLpO8JgVXwqOwSwa7jRcjew==", + "peer": true + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/safe-stable-stringify": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-json-schema-generator": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-json-schema-generator/-/ts-json-schema-generator-1.2.0.tgz", + "integrity": "sha512-tUMeO3ZvA12d3HHh7T/AK8W5hmUhDRNtqWRHSMN3ZRbUFt+UmV0oX8k1RK4SA+a+BKNHpmW2v06MS49e8Fi3Yg==", + "dependencies": { + "@types/json-schema": "^7.0.11", + "commander": "^9.4.1", + "glob": "^8.0.3", + "json5": "^2.2.1", + "normalize-path": "^3.0.0", + "safe-stable-stringify": "^2.4.1", + "typescript": "~4.9.3" + }, + "bin": { + "ts-json-schema-generator": "bin/ts-json-schema-generator" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/ts-json-schema-generator/node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/typescript": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.2.tgz", + "integrity": "sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "engines": { + "node": ">=6" + } + } + }, + "dependencies": { + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + }, + "@types/node": { + "version": "18.15.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.5.tgz", + "integrity": "sha512-Ark2WDjjZO7GmvsyFFf81MXuGTA/d6oP38anyxWOL6EREyBKAxKoFHwBhaZxCfLRLpO8JgVXwqOwSwa7jRcjew==", + "peer": true + }, + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==" + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==" + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "safe-stable-stringify": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==" + }, + "ts-json-schema-generator": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-json-schema-generator/-/ts-json-schema-generator-1.2.0.tgz", + "integrity": "sha512-tUMeO3ZvA12d3HHh7T/AK8W5hmUhDRNtqWRHSMN3ZRbUFt+UmV0oX8k1RK4SA+a+BKNHpmW2v06MS49e8Fi3Yg==", + "requires": { + "@types/json-schema": "^7.0.11", + "commander": "^9.4.1", + "glob": "^8.0.3", + "json5": "^2.2.1", + "normalize-path": "^3.0.0", + "safe-stable-stringify": "^2.4.1", + "typescript": "~4.9.3" + }, + "dependencies": { + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==" + } + } + }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + }, + "typescript": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.2.tgz", + "integrity": "sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==" + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + } + } +} diff --git a/perf-dashboard/util/package.json b/perf-dashboard/util/package.json new file mode 100644 index 000000000..e4f320e3e --- /dev/null +++ b/perf-dashboard/util/package.json @@ -0,0 +1,10 @@ +{ + "dependencies": { + "ts-json-schema-generator": "^1.2.0", + "ts-node": "^10.9.1", + "typescript": "^5.0.2" + }, + "scripts": { + "gen-schema": "ts-node main.ts" + } +} \ No newline at end of file diff --git a/perf-dashboard/util/tsconfig.json b/perf-dashboard/util/tsconfig.json new file mode 100644 index 000000000..e075f973c --- /dev/null +++ b/perf-dashboard/util/tsconfig.json @@ -0,0 +1,109 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig to read more about this file */ + + /* Projects */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ + // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ + // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ + // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ + + /* Language and Environment */ + "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ + // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + // "jsx": "preserve", /* Specify what JSX code is generated. */ + // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ + // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ + // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ + + /* Modules */ + "module": "commonjs", /* Specify what module code is generated. */ + // "rootDir": "./", /* Specify the root folder within your source files. */ + // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ + // "types": [], /* Specify type package names to be included without being referenced in a source file. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ + // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ + // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ + // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ + + /* JavaScript Support */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ + // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ + + /* Emit */ + // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + // "declarationMap": true, /* Create sourcemaps for d.ts files. */ + // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ + // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ + // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ + // "outDir": "./", /* Specify an output folder for all emitted files. */ + // "removeComments": true, /* Disable emitting comments. */ + // "noEmit": true, /* Disable emitting files from a compilation. */ + // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ + // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ + // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ + // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ + // "newLine": "crlf", /* Set the newline character for emitting files. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ + // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ + // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ + // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ + + /* Interop Constraints */ + // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ + // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ + // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ + // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ + "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ + + /* Type Checking */ + "strict": true, /* Enable all strict type-checking options. */ + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ + // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ + // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ + // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ + // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ + // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ + // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ + // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ + // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ + // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ + + /* Completeness */ + // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ + "skipLibCheck": true /* Skip type checking all .d.ts files. */ + } +} From dcd44bf39783871c23ba60d47b26920e2ddfa37d Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Tue, 21 Mar 2023 15:14:08 -0700 Subject: [PATCH 003/143] Fix example data --- perf-dashboard/example-data.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf-dashboard/example-data.json b/perf-dashboard/example-data.json index 2e28a617f..85b9377ef 100644 --- a/perf-dashboard/example-data.json +++ b/perf-dashboard/example-data.json @@ -13,7 +13,7 @@ }, { "result": "4567", - "implementation": "go-libp2p", + "implementation": "rust-libp2p", "transportStack": "quic-v1", "version": "v0.50.0" }, From cd6669501fc40348c22f5e6bec662293cbd74094 Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Tue, 21 Mar 2023 22:18:22 -0700 Subject: [PATCH 004/143] Extend example data --- perf-dashboard/benchmark-result-type.ts | 10 +- perf-dashboard/benchmarks.schema.json | 27 +++++- perf-dashboard/example-data.json | 124 +++++++++++++++++++++++- 3 files changed, 152 insertions(+), 9 deletions(-) diff --git a/perf-dashboard/benchmark-result-type.ts b/perf-dashboard/benchmark-result-type.ts index 3a9f2b8f8..2cff246af 100644 --- a/perf-dashboard/benchmark-result-type.ts +++ b/perf-dashboard/benchmark-result-type.ts @@ -8,12 +8,18 @@ export type Benchmark = { name: string, unit: "bits/s" | "s", results: Result[], + comparisons: Comparison[], } export type Result = { - result: string, + result: number, implementation: string, transportStack: string, version: string -}; \ No newline at end of file +}; + +export type Comparison = { + name: string, + result: number, +} \ No newline at end of file diff --git a/perf-dashboard/benchmarks.schema.json b/perf-dashboard/benchmarks.schema.json index f4b7fe846..3a2e993df 100644 --- a/perf-dashboard/benchmarks.schema.json +++ b/perf-dashboard/benchmarks.schema.json @@ -38,12 +38,19 @@ "items": { "$ref": "#/definitions/Result" } + }, + "comparisons": { + "type": "array", + "items": { + "$ref": "#/definitions/Comparison" + } } }, "required": [ "name", "unit", - "results" + "results", + "comparisons" ], "additionalProperties": false }, @@ -51,7 +58,7 @@ "type": "object", "properties": { "result": { - "type": "string" + "type": "number" }, "implementation": { "type": "string" @@ -70,6 +77,22 @@ "version" ], "additionalProperties": false + }, + "Comparison": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "result": { + "type": "number" + } + }, + "required": [ + "name", + "result" + ], + "additionalProperties": false } } } \ No newline at end of file diff --git a/perf-dashboard/example-data.json b/perf-dashboard/example-data.json index 85b9377ef..2388d068c 100644 --- a/perf-dashboard/example-data.json +++ b/perf-dashboard/example-data.json @@ -4,42 +4,156 @@ { "name": "Single Connection throughput – Upload", "unit": "bits/s", + "comparisons": [ + { + "name": "http", + "result": 1234 + } + ], "results": [ { - "result": "1234", + "result": 1100, + "implementation": "go-libp2p", + "transportStack": "quic-v1", + "version": "v0.24.2" + }, + { + "result": 1000, + "implementation": "go-libp2p", + "transportStack": "quic-v1", + "version": "v0.25.1" + }, + { + "result": 8234, "implementation": "go-libp2p", "transportStack": "quic-v1", "version": "v0.26.2" }, { - "result": "4567", + "result": 4000, "implementation": "rust-libp2p", "transportStack": "quic-v1", "version": "v0.50.0" }, { - "result": "1000000", + "result": 8000, + "implementation": "rust-libp2p", + "transportStack": "quic-v1", + "version": "v0.51.0" + }, + { + "result": 6000, + "implementation": "rust-libp2p", + "transportStack": "quic-v1", + "version": "v0.52.0" + }, + { + "result": 9001, "implementation": "zig-libp2p", "transportStack": "quic-v1", "version": "v0.0.1" + }, + { + "result": 9002, + "implementation": "zig-libp2p", + "transportStack": "quic-v1", + "version": "v0.0.2" + }, + { + "result": 201, + "implementation": "js-libp2p", + "transportStack": "tcp+noise+yamux", + "version": "v0.41.0" + }, + { + "result": 302, + "implementation": "js-libp2p", + "transportStack": "tcp+noise+yamux", + "version": "v0.42.0" + }, + { + "result": 501, + "implementation": "js-libp2p", + "transportStack": "tcp+noise+yamux", + "version": "v0.43.0" } ] }, { "name": "Single Connection 1 byte round trip latency", "unit": "s", + "comparisons": [ + { + "name": "http", + "result": 1.234 + } + ], "results": [ { - "result": "0.022", + "result": 0.100, + "implementation": "go-libp2p", + "transportStack": "quic-v1", + "version": "v0.24.2" + }, + { + "result": 0.100, + "implementation": "go-libp2p", + "transportStack": "quic-v1", + "version": "v0.25.1" + }, + { + "result": 0.834, "implementation": "go-libp2p", "transportStack": "quic-v1", "version": "v0.26.2" }, { - "result": "0.012", + "result": 0.400, "implementation": "rust-libp2p", "transportStack": "quic-v1", "version": "v0.50.0" + }, + { + "result": 0.800, + "implementation": "rust-libp2p", + "transportStack": "quic-v1", + "version": "v0.51.0" + }, + { + "result": 0.600, + "implementation": "rust-libp2p", + "transportStack": "quic-v1", + "version": "v0.52.0" + }, + { + "result": 0.901, + "implementation": "zig-libp2p", + "transportStack": "quic-v1", + "version": "v0.0.1" + }, + { + "result": 0.902, + "implementation": "zig-libp2p", + "transportStack": "quic-v1", + "version": "v0.0.2" + }, + { + "result": 0.201, + "implementation": "js-libp2p", + "transportStack": "tcp+noise+yamux", + "version": "v0.41.0" + }, + { + "result": 0.302, + "implementation": "js-libp2p", + "transportStack": "tcp+noise+yamux", + "version": "v0.42.0" + }, + { + "result": 0.501, + "implementation": "js-libp2p", + "transportStack": "tcp+noise+yamux", + "version": "v0.43.0" } ] } From b75cb3b9af35d9a3b6fb8722a442fa79dbb585ea Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Tue, 21 Mar 2023 22:19:35 -0700 Subject: [PATCH 005/143] Add dashboard link --- perf-dashboard/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/perf-dashboard/README.md b/perf-dashboard/README.md index 209bf2118..d0783f165 100644 --- a/perf-dashboard/README.md +++ b/perf-dashboard/README.md @@ -24,3 +24,7 @@ We have to be careful to compare apples to apples. A raw iperf number might be confusing here because no application will ever hit those numbers since they will at least want some encryption in their connection. I would suggest not having this or an HTTP comparison. Having HTTPS might be okay. + +# Example dashboard + +https://observablehq.com/@realmarcopolo/libp2p-perf \ No newline at end of file From 343b2e587f3d8467ef59cf4be7bd2be610f64bca Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Tue, 21 Mar 2023 22:21:19 -0700 Subject: [PATCH 006/143] Update readme --- perf-dashboard/README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/perf-dashboard/README.md b/perf-dashboard/README.md index d0783f165..21ccb0c5e 100644 --- a/perf-dashboard/README.md +++ b/perf-dashboard/README.md @@ -27,4 +27,9 @@ having this or an HTTP comparison. Having HTTPS might be okay. # Example dashboard -https://observablehq.com/@realmarcopolo/libp2p-perf \ No newline at end of file +https://observablehq.com/@realmarcopolo/libp2p-perf + +The dashboard automatically pulls data from this repo to display it. + +It currently pulls example-data.json. The schema of this data is defined in +`benchmarks.schema.json` and `benchmark-result-type.ts`. \ No newline at end of file From 3e45f54e96c323880096d2423245edf43f13df31 Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Tue, 21 Mar 2023 22:38:06 -0700 Subject: [PATCH 007/143] Update readme --- perf-dashboard/README.md | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/perf-dashboard/README.md b/perf-dashboard/README.md index 21ccb0c5e..fce73a9ad 100644 --- a/perf-dashboard/README.md +++ b/perf-dashboard/README.md @@ -12,6 +12,7 @@ have numbers that outline: 3. Requests per second (for some request/response protocol) 4. Handshakes per second (useful to identify overhead in connection initialization). +5. Memory usage. The y axis on the graphs is the value for the above tests, the x axis is the specific version. Different lines represent different implementation+transports. @@ -32,4 +33,30 @@ https://observablehq.com/@realmarcopolo/libp2p-perf The dashboard automatically pulls data from this repo to display it. It currently pulls example-data.json. The schema of this data is defined in -`benchmarks.schema.json` and `benchmark-result-type.ts`. \ No newline at end of file +`benchmarks.schema.json` and `benchmark-result-type.ts`. + +# Benchmark runner + +This is the thing that runs the benchmark binaries and produces the benchmark +data (that matches the benchmarks.schema.json/benchmark-result-type.ts) + +# Benchmark binary + +This is per implementation. It's a binary that accepts the following flags: + +| Flag | description | +| -------------------- | ------------------------------------------------------ | +| parallel_connections | number of parallel connections to use | +| upload_bytes | number of bytes to upload to server per connection | +| download_bytes | number of bytes to download from server per connection | +| n_times | number of times to do the perf round trip | +| close_connection | bool. Close the connection after a perf round trip | + +The binary should report the following: + +* Stats on the length of the run: + * Total, Avg, Min, Max, p95 +* Round trips per second: + * Avg, Min, Max, p95 + +Maybe more? TODO... From 8d94c83e1f1434cef8e7cb94806278e46c8d2f76 Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Fri, 24 Mar 2023 12:54:49 -0700 Subject: [PATCH 008/143] Remove wrong schema file --- perf-dashboard/benchmark-data-schema.json | 45 ----------------------- 1 file changed, 45 deletions(-) delete mode 100644 perf-dashboard/benchmark-data-schema.json diff --git a/perf-dashboard/benchmark-data-schema.json b/perf-dashboard/benchmark-data-schema.json deleted file mode 100644 index 81ef27f94..000000000 --- a/perf-dashboard/benchmark-data-schema.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://libp2p.io/benchmark.schema.json", - "title": "Benchmark Results", - "description": "Results from a benchmark run", - "type": "object", - "properties": { - "benchmarks": { - "description": "A list of benchmark results", - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "description": "The name of this benchmark", - "type": "string" - }, - "unit": { - "description": "The unit for the result", - "enum": [ - "bits/s", - "s" - ] - }, - "result": { - "description": "String encoded result. Parse as float64", - "type": "string" - } - }, - "required": [ - "name", - "unit", - "result", - "implementation", - "stack", - "version" - ] - } - } - }, - "required": [ - "benchmarks", - "productName" - ] -} \ No newline at end of file From 22bb33709c75885e3adf7a9f63fa76669e994c0a Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 3 Apr 2023 18:20:50 +0200 Subject: [PATCH 009/143] feat: add basic provision script for client and server perf See `perf/README.md`. --- perf/.gitignore | 34 +++++++++ perf/README.md | 22 ++++++ perf/client-user-data.sh | 7 ++ perf/server-user-data.sh | 9 +++ perf/terraform.tf | 161 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 233 insertions(+) create mode 100644 perf/.gitignore create mode 100644 perf/README.md create mode 100644 perf/client-user-data.sh create mode 100644 perf/server-user-data.sh create mode 100644 perf/terraform.tf diff --git a/perf/.gitignore b/perf/.gitignore new file mode 100644 index 000000000..9b8a46e69 --- /dev/null +++ b/perf/.gitignore @@ -0,0 +1,34 @@ +# Local .terraform directories +**/.terraform/* + +# .tfstate files +*.tfstate +*.tfstate.* + +# Crash log files +crash.log +crash.*.log + +# Exclude all .tfvars files, which are likely to contain sensitive data, such as +# password, private keys, and other secrets. These should not be part of version +# control as they are data points which are potentially sensitive and subject +# to change depending on the environment. +*.tfvars +*.tfvars.json + +# Ignore override files as they are usually used to override resources locally and so +# are not checked in +override.tf +override.tf.json +*_override.tf +*_override.tf.json + +# Include override files you do wish to add to version control using negated pattern +# !example_override.tf + +# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan +# example: *tfplan* + +# Ignore CLI configuration files +.terraformrc +terraform.rc diff --git a/perf/README.md b/perf/README.md new file mode 100644 index 000000000..5da5c66c1 --- /dev/null +++ b/perf/README.md @@ -0,0 +1,22 @@ +# libp2p perf testing + +## Setup + +1. Safe your SSH key as a file, e.g. `./mxinden.pub`. +2. Optionally update the reference to the ssh key in `terraform.tf`: + ```diff + + - resource "aws_key_pair" "mxinden" { + - key_name = "mxinden-public-key" + - public_key = file("./mxinden.pub") + - } + + resource "aws_key_pair" "your-key" { + + key_name = "your-key-public-key" + + public_key = file("./your-key.pub") + + } + ``` +3. `terraform apply` + +## Execute + +1. `ssh ec2-user@$(terraform output -raw client_public_ip) sudo docker run --tty --rm --entrypoint perf-client mxinden/libp2p-perf --server-address /ip4/$(terraform output -raw server_public_ip)/tcp/4001` diff --git a/perf/client-user-data.sh b/perf/client-user-data.sh new file mode 100644 index 000000000..cc58fe1ab --- /dev/null +++ b/perf/client-user-data.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +sudo yum update -y +sudo yum install docker -y +sudo systemctl enable docker +sudo systemctl start docker +sudo usermod -aG docker ec2-user diff --git a/perf/server-user-data.sh b/perf/server-user-data.sh new file mode 100644 index 000000000..52219a6e6 --- /dev/null +++ b/perf/server-user-data.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +sudo yum update -y +sudo yum install docker -y +sudo systemctl enable docker +sudo systemctl start docker +sudo usermod -aG docker ec2-user + +docker run -d --restart always --network host mxinden/libp2p-perf diff --git a/perf/terraform.tf b/perf/terraform.tf new file mode 100644 index 000000000..a36eda854 --- /dev/null +++ b/perf/terraform.tf @@ -0,0 +1,161 @@ +terraform { + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 4.0" + } + } +} + +# Configure the AWS Provider +provider "aws" { + region = "us-east-1" +} + +locals { + common_tags = { + Project = "perf" + } +} + +resource "aws_vpc" "perf" { + cidr_block = "10.0.0.0/16" + + tags = merge(local.common_tags, { + Name = "perf" + }) +} + +resource "aws_subnet" "perf" { + vpc_id = aws_vpc.perf.id + cidr_block = "10.0.0.0/16" + availability_zone = "us-east-1a" + map_public_ip_on_launch = true + + tags = merge(local.common_tags, { + Name = "perf" + }) +} + +resource "aws_internet_gateway" "perf" { + vpc_id = aws_vpc.perf.id + + tags = merge(local.common_tags, { + Name = "perf-igw" + }) +} + +resource "aws_route_table" "perf" { + vpc_id = aws_vpc.perf.id + + route { + cidr_block = "0.0.0.0/0" + gateway_id = aws_internet_gateway.perf.id + } + + tags = merge(local.common_tags, { + Name = "perf-route-table" + }) +} + +resource "aws_route_table_association" "perf" { + subnet_id = aws_subnet.perf.id + route_table_id = aws_route_table.perf.id +} + +resource "aws_security_group" "restricted_inbound" { + name = "restricted_inbound" + description = "Allow SSH and port 4001 inbound traffic (TCP and UDP), allow all outbound traffic" + vpc_id = aws_vpc.perf.id + + # SSH (TCP) + ingress { + from_port = 22 + to_port = 22 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + + ingress { + from_port = 4001 + to_port = 4001 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + + ingress { + from_port = 4001 + to_port = 4001 + protocol = "udp" + cidr_blocks = ["0.0.0.0/0"] + } + + egress { + from_port = 0 + to_port = 0 + protocol = "-1" + cidr_blocks = ["0.0.0.0/0"] + } + + tags = merge(local.common_tags, { + Name = "restricted_inbound_sg" + }) +} + +resource "aws_key_pair" "mxinden" { + key_name = "mxinden-public-key" + public_key = file("./mxinden.pub") +} + +resource "aws_instance" "server" { + ami = "ami-00c39f71452c08778" + instance_type = "t2.micro" + + subnet_id = aws_subnet.perf.id + + key_name = aws_key_pair.mxinden.key_name + + vpc_security_group_ids = [aws_security_group.restricted_inbound.id] + + # Debug via: + # - /var/log/cloud-init.log and + # - /var/log/cloud-init-output.log + user_data = file("${path.module}/server-user-data.sh") + user_data_replace_on_change = true + + tags = merge(local.common_tags, { + Name = "server" + }) +} + +resource "aws_instance" "client" { + ami = "ami-00c39f71452c08778" + instance_type = "t2.micro" + + subnet_id = aws_subnet.perf.id + + key_name = aws_key_pair.mxinden.key_name + + vpc_security_group_ids = [aws_security_group.restricted_inbound.id] + + # Debug via: + # - /var/log/cloud-init.log and + # - /var/log/cloud-init-output.log + user_data = file("${path.module}/client-user-data.sh") + user_data_replace_on_change = true + + tags = merge(local.common_tags, { + Name = "client" + }) +} + +output "server_public_ip" { + value = aws_instance.server.public_ip + description = "Public IP address of the server instance" +} + +output "client_public_ip" { + value = aws_instance.client.public_ip + description = "Public IP address of the client instance" +} + From 2d36ba14821568c699654e0855c784405b6abc4e Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 6 Apr 2023 19:56:14 +0200 Subject: [PATCH 010/143] Check in .terraform.lock.hcl --- perf/.terraform.lock.hcl | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 perf/.terraform.lock.hcl diff --git a/perf/.terraform.lock.hcl b/perf/.terraform.lock.hcl new file mode 100644 index 000000000..e54d18d34 --- /dev/null +++ b/perf/.terraform.lock.hcl @@ -0,0 +1,25 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "4.61.0" + constraints = "~> 4.0" + hashes = [ + "h1:mJSchOA6VkYwEsi+tuspadRmyyE+FGZGYJFUt5kHV+M=", + "zh:051e2588410b7448a5c4c30d668948dd6fdfa8037700bfc00fb228986ccbf3a5", + "zh:082fbcf9706b48d0880ba552a11c29527e228dadd6d83668d0789abda24e5922", + "zh:0e0e72f214fb24f4f9c601cab088a2d8e00ec3327c451bc753911951d773214a", + "zh:3af6d38ca733ca66cce15c6a5735ded7c18348ad26040ebd9a59778b2cd9cf6c", + "zh:404898bc2258bbb9527fa06c72cb927ca011fd9bc3f4b90931c0912652c3f9e9", + "zh:4f617653b0f17a7708bc896f029c4ab0b677a1a1c987bd77166acad1d82db469", + "zh:5dbe393355ac137aa3fd329e3d24871f27012d3ba93d714485b55820df240349", + "zh:6067c2127eb5c879227aca671f101de6dcba909d0d8d15d5711480351962a248", + "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", + "zh:a939f94461f91aa3b7ec7096271e2714309bd917fe9a03e02f68afb556d65e0f", + "zh:b21227b9082e5fafe8b7c415dc6a99c0d82da05492457377a5fe7d4acaed80e2", + "zh:b8d9f09ed5fc8c654b768b7bee1237eaf1e2287c898249e740695055fb0fe072", + "zh:d360e1e185b148ff6b1d0ed4f7d574e08f2391697ab43df62085b04a1a5b1284", + "zh:da962da17ddda744911cb1e92b983fa3874d73a28f3ee72faa9ddb6680a63774", + "zh:e2f1c4f5ebeb4fd7ef690178168a4c529025b54a91bb7a087dcea48e0b82737a", + ] +} From 7fa9f823dd4addc760b3af499a5625e990e7bc50 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 6 Apr 2023 21:42:55 +0200 Subject: [PATCH 011/143] Spin up server in us-west-1 and client in us-east-1 --- perf/client-user-data.sh | 7 - perf/region/main.tf | 135 +++++++++++++++++++ perf/terraform.tf | 147 ++------------------- perf/{server-user-data.sh => user-data.sh} | 0 4 files changed, 147 insertions(+), 142 deletions(-) delete mode 100644 perf/client-user-data.sh create mode 100644 perf/region/main.tf rename perf/{server-user-data.sh => user-data.sh} (100%) diff --git a/perf/client-user-data.sh b/perf/client-user-data.sh deleted file mode 100644 index cc58fe1ab..000000000 --- a/perf/client-user-data.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -sudo yum update -y -sudo yum install docker -y -sudo systemctl enable docker -sudo systemctl start docker -sudo usermod -aG docker ec2-user diff --git a/perf/region/main.tf b/perf/region/main.tf new file mode 100644 index 000000000..0bad9d417 --- /dev/null +++ b/perf/region/main.tf @@ -0,0 +1,135 @@ +variable "region" { + description = "The AWS region to create resources in" +} + +variable "ami" { + description = "The Amazon Machine Image to use" +} + +variable "common_tags" { + type = map(string) + description = "Common tags to apply to all resources" +} + +locals { + availability_zone = "${var.region}a" +} + +provider "aws" { + region = var.region +} + +resource "aws_vpc" "perf" { + cidr_block = "10.0.0.0/16" + + tags = merge(var.common_tags, { + Name = "perf" + }) +} + +resource "aws_subnet" "perf" { + vpc_id = aws_vpc.perf.id + cidr_block = "10.0.0.0/16" + availability_zone = local.availability_zone + map_public_ip_on_launch = true + + tags = merge(var.common_tags, { + Name = "perf" + }) +} + +resource "aws_internet_gateway" "perf" { + vpc_id = aws_vpc.perf.id + + tags = merge(var.common_tags, { + Name = "perf-igw" + }) +} + +resource "aws_route_table" "perf" { + vpc_id = aws_vpc.perf.id + + route { + cidr_block = "0.0.0.0/0" + gateway_id = aws_internet_gateway.perf.id + } + + tags = merge(var.common_tags, { + Name = "perf-route-table" + }) +} + +resource "aws_route_table_association" "perf" { + subnet_id = aws_subnet.perf.id + route_table_id = aws_route_table.perf.id +} + +resource "aws_security_group" "restricted_inbound" { + name = "restricted_inbound" + description = "Allow SSH and port 4001 inbound traffic (TCP and UDP), allow all outbound traffic" + vpc_id = aws_vpc.perf.id + + # SSH (TCP) + ingress { + from_port = 22 + to_port = 22 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + + ingress { + from_port = 4001 + to_port = 4001 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + + ingress { + from_port = 4001 + to_port = 4001 + protocol = "udp" + cidr_blocks = ["0.0.0.0/0"] + } + + egress { + from_port = 0 + to_port = 0 + protocol = "-1" + cidr_blocks = ["0.0.0.0/0"] + } + + tags = merge(var.common_tags, { + Name = "restricted_inbound_sg" + }) +} + +resource "aws_key_pair" "mxinden" { + key_name = "mxinden-public-key" + public_key = file("./mxinden.pub") +} + +resource "aws_instance" "node" { + ami = var.ami + instance_type = "t2.micro" + + subnet_id = aws_subnet.perf.id + + key_name = aws_key_pair.mxinden.key_name + + vpc_security_group_ids = [aws_security_group.restricted_inbound.id] + + # Debug via: + # - /var/log/cloud-init.log and + # - /var/log/cloud-init-output.log + user_data = file("./user-data.sh") + user_data_replace_on_change = true + + tags = merge(var.common_tags, { + Name = "node" + }) +} + +output "node_public_ip" { + value = aws_instance.node.public_ip + description = "Public IP address of the node instance" +} diff --git a/perf/terraform.tf b/perf/terraform.tf index a36eda854..2f3a81d7a 100644 --- a/perf/terraform.tf +++ b/perf/terraform.tf @@ -7,155 +7,32 @@ terraform { } } -# Configure the AWS Provider -provider "aws" { - region = "us-east-1" -} +module "server_region" { + source = "./region" + region = "us-west-1" + ami = "ami-09c5c62bac0d0634e" -locals { common_tags = { Project = "perf" } } -resource "aws_vpc" "perf" { - cidr_block = "10.0.0.0/16" - - tags = merge(local.common_tags, { - Name = "perf" - }) -} - -resource "aws_subnet" "perf" { - vpc_id = aws_vpc.perf.id - cidr_block = "10.0.0.0/16" - availability_zone = "us-east-1a" - map_public_ip_on_launch = true - - tags = merge(local.common_tags, { - Name = "perf" - }) -} - -resource "aws_internet_gateway" "perf" { - vpc_id = aws_vpc.perf.id - - tags = merge(local.common_tags, { - Name = "perf-igw" - }) -} - -resource "aws_route_table" "perf" { - vpc_id = aws_vpc.perf.id - - route { - cidr_block = "0.0.0.0/0" - gateway_id = aws_internet_gateway.perf.id - } - - tags = merge(local.common_tags, { - Name = "perf-route-table" - }) -} - -resource "aws_route_table_association" "perf" { - subnet_id = aws_subnet.perf.id - route_table_id = aws_route_table.perf.id -} - -resource "aws_security_group" "restricted_inbound" { - name = "restricted_inbound" - description = "Allow SSH and port 4001 inbound traffic (TCP and UDP), allow all outbound traffic" - vpc_id = aws_vpc.perf.id - - # SSH (TCP) - ingress { - from_port = 22 - to_port = 22 - protocol = "tcp" - cidr_blocks = ["0.0.0.0/0"] - } - - ingress { - from_port = 4001 - to_port = 4001 - protocol = "tcp" - cidr_blocks = ["0.0.0.0/0"] - } - - ingress { - from_port = 4001 - to_port = 4001 - protocol = "udp" - cidr_blocks = ["0.0.0.0/0"] - } +module "client_region" { + source = "./region" + region = "us-east-1" + ami = "ami-00c39f71452c08778" - egress { - from_port = 0 - to_port = 0 - protocol = "-1" - cidr_blocks = ["0.0.0.0/0"] + common_tags = { + Project = "perf" } - - tags = merge(local.common_tags, { - Name = "restricted_inbound_sg" - }) -} - -resource "aws_key_pair" "mxinden" { - key_name = "mxinden-public-key" - public_key = file("./mxinden.pub") -} - -resource "aws_instance" "server" { - ami = "ami-00c39f71452c08778" - instance_type = "t2.micro" - - subnet_id = aws_subnet.perf.id - - key_name = aws_key_pair.mxinden.key_name - - vpc_security_group_ids = [aws_security_group.restricted_inbound.id] - - # Debug via: - # - /var/log/cloud-init.log and - # - /var/log/cloud-init-output.log - user_data = file("${path.module}/server-user-data.sh") - user_data_replace_on_change = true - - tags = merge(local.common_tags, { - Name = "server" - }) -} - -resource "aws_instance" "client" { - ami = "ami-00c39f71452c08778" - instance_type = "t2.micro" - - subnet_id = aws_subnet.perf.id - - key_name = aws_key_pair.mxinden.key_name - - vpc_security_group_ids = [aws_security_group.restricted_inbound.id] - - # Debug via: - # - /var/log/cloud-init.log and - # - /var/log/cloud-init-output.log - user_data = file("${path.module}/client-user-data.sh") - user_data_replace_on_change = true - - tags = merge(local.common_tags, { - Name = "client" - }) } output "server_public_ip" { - value = aws_instance.server.public_ip + value = module.server_region.node_public_ip description = "Public IP address of the server instance" } output "client_public_ip" { - value = aws_instance.client.public_ip + value = module.client_region.node_public_ip description = "Public IP address of the client instance" } - diff --git a/perf/server-user-data.sh b/perf/user-data.sh similarity index 100% rename from perf/server-user-data.sh rename to perf/user-data.sh From 9361069a5b345242b8a5e56239f9e92e17ca77d2 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Sat, 8 Apr 2023 20:15:55 +0200 Subject: [PATCH 012/143] feat: introduce runner --- perf/runner/.gitignore | 2 + perf/runner/package-lock.json | 358 +++++++++++++++++++++++ perf/runner/package.json | 20 ++ perf/runner/src/benchmark-result-type.ts | 25 ++ perf/runner/src/index.ts | 99 +++++++ perf/runner/src/versions.ts | 13 + perf/runner/tsconfig.json | 15 + perf/{ => terraform}/.gitignore | 0 perf/{ => terraform}/.terraform.lock.hcl | 0 perf/{ => terraform}/region/main.tf | 0 perf/{ => terraform}/terraform.tf | 0 perf/{ => terraform}/user-data.sh | 0 12 files changed, 532 insertions(+) create mode 100644 perf/runner/.gitignore create mode 100644 perf/runner/package-lock.json create mode 100644 perf/runner/package.json create mode 100644 perf/runner/src/benchmark-result-type.ts create mode 100644 perf/runner/src/index.ts create mode 100644 perf/runner/src/versions.ts create mode 100644 perf/runner/tsconfig.json rename perf/{ => terraform}/.gitignore (100%) rename perf/{ => terraform}/.terraform.lock.hcl (100%) rename perf/{ => terraform}/region/main.tf (100%) rename perf/{ => terraform}/terraform.tf (100%) rename perf/{ => terraform}/user-data.sh (100%) diff --git a/perf/runner/.gitignore b/perf/runner/.gitignore new file mode 100644 index 000000000..6a7f7218f --- /dev/null +++ b/perf/runner/.gitignore @@ -0,0 +1,2 @@ +# Ignore built ts files +dist/**/* \ No newline at end of file diff --git a/perf/runner/package-lock.json b/perf/runner/package-lock.json new file mode 100644 index 000000000..5c01455df --- /dev/null +++ b/perf/runner/package-lock.json @@ -0,0 +1,358 @@ +{ + "name": "runner", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "runner", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "yargs": "^17.7.1" + }, + "devDependencies": { + "@types/node": "^18.15.11", + "@types/yargs": "^17.0.24", + "typescript": "^5.0.4" + } + }, + "node_modules/@types/node": { + "version": "18.15.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", + "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", + "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/typescript": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + } + }, + "dependencies": { + "@types/node": { + "version": "18.15.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", + "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==", + "dev": true + }, + "@types/yargs": { + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", + "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "typescript": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yargs": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" + } + } +} diff --git a/perf/runner/package.json b/perf/runner/package.json new file mode 100644 index 000000000..e0df3a955 --- /dev/null +++ b/perf/runner/package.json @@ -0,0 +1,20 @@ +{ + "name": "runner", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "build": "tsc", + "start": "node ./dist/index.js" + }, + "author": "", + "license": "ISC", + "devDependencies": { + "@types/node": "^18.15.11", + "@types/yargs": "^17.0.24", + "typescript": "^5.0.4" + }, + "dependencies": { + "yargs": "^17.7.1" + } +} diff --git a/perf/runner/src/benchmark-result-type.ts b/perf/runner/src/benchmark-result-type.ts new file mode 100644 index 000000000..4d8469e33 --- /dev/null +++ b/perf/runner/src/benchmark-result-type.ts @@ -0,0 +1,25 @@ +export type BenchmarkResults = { + benchmarks: Benchmark[], + // For referencing this schema in JSON + "$schema"?: string +}; + +export type Benchmark = { + name: string, + unit: "bits/s" | "s", + results: Result[], + comparisons: Comparison[], + +} + +export type Result = { + result: number[], + implementation: string, + transportStack: string, + version: string +}; + +export type Comparison = { + name: string, + result: number, +} diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts new file mode 100644 index 000000000..385e53a0c --- /dev/null +++ b/perf/runner/src/index.ts @@ -0,0 +1,99 @@ +import { execSync } from 'child_process'; +import { versions } from './versions'; +import yargs from 'yargs'; +import { BenchmarkResults, Benchmark } from './benchmark-result-type'; + +interface Latencies { + latencies: number[]; +} + +interface Args { + clientPublicIP: string; + serverPublicIP: string; + dockerImageId: string; + transportStack: string, +} + +function runBenchmark(args: Args): Latencies { + let serverAddress: string; + + switch (args.transportStack) { + case 'tcp': + serverAddress = `/ip4/${args.serverPublicIP}/tcp/4001`; + break; + case 'quic-v1': + serverAddress = `/ip4/${args.serverPublicIP}/udp/4001/quic-v1`; + break; + default: + console.error("Unsupported transport stack ${args.transportStack}"); + process.exit(1); + + } + + const cmd = `echo This message goes to stderr >&2 && ssh ec2-user@${args.clientPublicIP} docker run --rm --entrypoint perf-client ${args.dockerImageId} --server-address ${serverAddress} --upload-bytes 1 --download-bytes 1 --n-times 10`; + + try { + const stdout = execSync(cmd, { + encoding: 'utf8', + stdio: [process.stdin, 'pipe', process.stderr], + }); + console.log(`output: ${stdout}`); + const latencies: Latencies = JSON.parse(stdout.toString()); + return latencies; + } catch (error) { + console.error((error as Error).message); + process.exit(1); + } +} + +async function main(clientPublicIP: string, serverPublicIP: string) { + const benchmark: Benchmark = { + name: "", + unit: "s", + results: [], + comparisons: [], + }; + + + for (const version of versions) { + for (const transportStack of version.transportStacks) { + const latencies = runBenchmark({ + clientPublicIP: clientPublicIP, + serverPublicIP: serverPublicIP, + dockerImageId: version.containerImageID, + transportStack: transportStack, + }); + + benchmark.results.push({ + result: latencies.latencies, + implementation: "", + version: version.id, + transportStack: "", + }); + } + }; + + const benchmarkResults: BenchmarkResults = { + benchmarks: [benchmark], + }; + + console.log(JSON.stringify(benchmarkResults, null, 2)); +} + +const argv = yargs + .options({ + 'client-public-ip': { + type: 'string', + demandOption: true, + description: 'Client public IP address', + }, + 'server-public-ip': { + type: 'string', + demandOption: true, + description: 'Server public IP address', + }, + }) + .command('help', 'Print usage information', yargs.help) + .parseSync(); + +main(argv['client-public-ip'] as string, argv['server-public-ip'] as string); diff --git a/perf/runner/src/versions.ts b/perf/runner/src/versions.ts new file mode 100644 index 000000000..83ecf51de --- /dev/null +++ b/perf/runner/src/versions.ts @@ -0,0 +1,13 @@ +export type Version = { + id: string, + containerImageID: string, + transportStacks: string[], +} + +export const versions: Array = [ + { + id: "rust-master", + containerImageID: "33cdc2e4fc37", + transportStacks: ["tcp", "quic-v1"] + }, +] diff --git a/perf/runner/tsconfig.json b/perf/runner/tsconfig.json new file mode 100644 index 000000000..a1b7fac69 --- /dev/null +++ b/perf/runner/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "target": "ES2018", + "module": "commonjs", + "outDir": "./dist", + "strict": true, + "esModuleInterop": true + }, + "include": [ + "./src/**/*.ts" + ], + "exclude": [ + "node_modules" + ] +} diff --git a/perf/.gitignore b/perf/terraform/.gitignore similarity index 100% rename from perf/.gitignore rename to perf/terraform/.gitignore diff --git a/perf/.terraform.lock.hcl b/perf/terraform/.terraform.lock.hcl similarity index 100% rename from perf/.terraform.lock.hcl rename to perf/terraform/.terraform.lock.hcl diff --git a/perf/region/main.tf b/perf/terraform/region/main.tf similarity index 100% rename from perf/region/main.tf rename to perf/terraform/region/main.tf diff --git a/perf/terraform.tf b/perf/terraform/terraform.tf similarity index 100% rename from perf/terraform.tf rename to perf/terraform/terraform.tf diff --git a/perf/user-data.sh b/perf/terraform/user-data.sh similarity index 100% rename from perf/user-data.sh rename to perf/terraform/user-data.sh From 7358746ca7e3f61307f16ef819ddf05ab34147ae Mon Sep 17 00:00:00 2001 From: Max Inden Date: Sat, 8 Apr 2023 20:16:47 +0200 Subject: [PATCH 013/143] fix(.gitignore): don't include public keys --- perf/terraform/.gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/perf/terraform/.gitignore b/perf/terraform/.gitignore index 9b8a46e69..55bc145c3 100644 --- a/perf/terraform/.gitignore +++ b/perf/terraform/.gitignore @@ -32,3 +32,5 @@ override.tf.json # Ignore CLI configuration files .terraformrc terraform.rc + +*.pub From 8545b01b981165f8c52e5e12a2c031b2b8dc204c Mon Sep 17 00:00:00 2001 From: Max Inden Date: Sat, 8 Apr 2023 20:35:06 +0200 Subject: [PATCH 014/143] Minor refactorings --- perf/runner/src/index.ts | 80 +++++++++++++++++++++------------------- 1 file changed, 43 insertions(+), 37 deletions(-) diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index 385e53a0c..93d5d7478 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -3,6 +3,42 @@ import { versions } from './versions'; import yargs from 'yargs'; import { BenchmarkResults, Benchmark } from './benchmark-result-type'; +async function main(clientPublicIP: string, serverPublicIP: string) { + const benchmark: Benchmark = { + name: "", + unit: "s", + results: [], + comparisons: [], + }; + + + for (const version of versions) { + for (const transportStack of version.transportStacks) { + const latencies = runBenchmark({ + clientPublicIP: clientPublicIP, + serverPublicIP: serverPublicIP, + dockerImageId: version.containerImageID, + transportStack: transportStack, + uploadBytes: 1, + downloadBytes: 1, + nTimes: 10, + }); + + benchmark.results.push({ + result: latencies.latencies, + implementation: "", + version: version.id, + transportStack: "", + }); + } + }; + + const benchmarkResults: BenchmarkResults = { + benchmarks: [benchmark], + }; + console.log(JSON.stringify(benchmarkResults, null, 2)); +} + interface Latencies { latencies: number[]; } @@ -12,6 +48,9 @@ interface Args { serverPublicIP: string; dockerImageId: string; transportStack: string, + uploadBytes: number, + downloadBytes: number, + nTimes: number, } function runBenchmark(args: Args): Latencies { @@ -30,14 +69,15 @@ function runBenchmark(args: Args): Latencies { } - const cmd = `echo This message goes to stderr >&2 && ssh ec2-user@${args.clientPublicIP} docker run --rm --entrypoint perf-client ${args.dockerImageId} --server-address ${serverAddress} --upload-bytes 1 --download-bytes 1 --n-times 10`; + const binFlags = `--server-address ${serverAddress} --upload-bytes ${args.uploadBytes} --download-bytes ${args.downloadBytes} --n-times ${args.nTimes}` + const dockerCMD = `docker run --rm --entrypoint perf-client ${args.dockerImageId} ${binFlags}` + const cmd = `ssh ec2-user@${args.clientPublicIP} ${dockerCMD}`; try { - const stdout = execSync(cmd, { + const stdout = execSync(cmd, { encoding: 'utf8', stdio: [process.stdin, 'pipe', process.stderr], }); - console.log(`output: ${stdout}`); const latencies: Latencies = JSON.parse(stdout.toString()); return latencies; } catch (error) { @@ -46,40 +86,6 @@ function runBenchmark(args: Args): Latencies { } } -async function main(clientPublicIP: string, serverPublicIP: string) { - const benchmark: Benchmark = { - name: "", - unit: "s", - results: [], - comparisons: [], - }; - - - for (const version of versions) { - for (const transportStack of version.transportStacks) { - const latencies = runBenchmark({ - clientPublicIP: clientPublicIP, - serverPublicIP: serverPublicIP, - dockerImageId: version.containerImageID, - transportStack: transportStack, - }); - - benchmark.results.push({ - result: latencies.latencies, - implementation: "", - version: version.id, - transportStack: "", - }); - } - }; - - const benchmarkResults: BenchmarkResults = { - benchmarks: [benchmark], - }; - - console.log(JSON.stringify(benchmarkResults, null, 2)); -} - const argv = yargs .options({ 'client-public-ip': { From 2abcf7b1fde8263ed367cdc325b635bccbb4443e Mon Sep 17 00:00:00 2001 From: Max Inden Date: Sat, 8 Apr 2023 20:40:24 +0200 Subject: [PATCH 015/143] Small addition to perf readme --- perf/README.md | 15 +++++++++++---- perf/terraform/.gitignore | 4 ++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/perf/README.md b/perf/README.md index 5da5c66c1..c45d14a70 100644 --- a/perf/README.md +++ b/perf/README.md @@ -2,8 +2,9 @@ ## Setup -1. Safe your SSH key as a file, e.g. `./mxinden.pub`. -2. Optionally update the reference to the ssh key in `terraform.tf`: +1. `cd terraform` +2. Safe your SSH key as a file, e.g. `./mxinden.pub`. +3. Optionally update the reference to the ssh key in `region/main.tf`: ```diff - resource "aws_key_pair" "mxinden" { @@ -15,8 +16,14 @@ + public_key = file("./your-key.pub") + } ``` -3. `terraform apply` +4. `terraform apply` ## Execute -1. `ssh ec2-user@$(terraform output -raw client_public_ip) sudo docker run --tty --rm --entrypoint perf-client mxinden/libp2p-perf --server-address /ip4/$(terraform output -raw server_public_ip)/tcp/4001` +1. `cd runner` +2. `npm run build` +3. `npm run start -- --client-public-ip $(terraform output -raw -state ../terraform/terraform.tfstate client_public_ip) --server-public-ip $(terraform output -raw -state ../terraform/terraform.tfstate server_public_ip)` + +## Add benchmark binary + +See `runner/src/versions.ts`. diff --git a/perf/terraform/.gitignore b/perf/terraform/.gitignore index 55bc145c3..bb09c5300 100644 --- a/perf/terraform/.gitignore +++ b/perf/terraform/.gitignore @@ -10,8 +10,8 @@ crash.log crash.*.log # Exclude all .tfvars files, which are likely to contain sensitive data, such as -# password, private keys, and other secrets. These should not be part of version -# control as they are data points which are potentially sensitive and subject +# password, private keys, and other secrets. These should not be part of version +# control as they are data points which are potentially sensitive and subject # to change depending on the environment. *.tfvars *.tfvars.json From 4f2d7f9e38f5340331635027a07b0c0c82fbb923 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Tue, 11 Apr 2023 13:58:47 +0200 Subject: [PATCH 016/143] Introduce download and upload benchmarks --- perf/runner/src/index.ts | 93 +++++++++++++++++++++++++++---------- perf/runner/src/versions.ts | 2 +- 2 files changed, 70 insertions(+), 25 deletions(-) diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index 93d5d7478..d547b3aaf 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -1,49 +1,88 @@ import { execSync } from 'child_process'; import { versions } from './versions'; import yargs from 'yargs'; -import { BenchmarkResults, Benchmark } from './benchmark-result-type'; +import { BenchmarkResults, Benchmark, Result } from './benchmark-result-type'; async function main(clientPublicIP: string, serverPublicIP: string) { - const benchmark: Benchmark = { - name: "", - unit: "s", - results: [], - comparisons: [], + const benchmarkResults: BenchmarkResults = { + benchmarks: [ + { + name: "Single Connection throughput – Upload 10 MiB", + unit: "s", + results: runBenchmarkAcrossVersions({ + clientPublicIP, + serverPublicIP, + uploadBytes: 10 * 1024 * 1024, + downloadBytes: 0, + nTimes: 1, + }), + comparisons: [], + }, + { + name: "Single Connection throughput – Download 10 MiB", + unit: "s", + results: runBenchmarkAcrossVersions({ + clientPublicIP, + serverPublicIP, + uploadBytes: 0, + downloadBytes: 10 * 1024 * 1024, + nTimes: 1, + }), + comparisons: [], + }, + { + name: "Single Connection 1 byte round trip latency", + unit: "s", + results: runBenchmarkAcrossVersions({ + clientPublicIP, + serverPublicIP, + uploadBytes: 1, + downloadBytes: 1, + nTimes: 10, + }), + comparisons: [], + } + ], }; + console.log(JSON.stringify(benchmarkResults, null, 2)); +} + +interface ArgsRunBenchmarkAcrossVersions { + clientPublicIP: string; + serverPublicIP: string; + uploadBytes: number, + downloadBytes: number, + nTimes: number, +} +function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Result[] { + const results: Result[] = []; for (const version of versions) { for (const transportStack of version.transportStacks) { const latencies = runBenchmark({ - clientPublicIP: clientPublicIP, - serverPublicIP: serverPublicIP, + clientPublicIP: args.clientPublicIP, + serverPublicIP: args.serverPublicIP, dockerImageId: version.containerImageID, transportStack: transportStack, - uploadBytes: 1, - downloadBytes: 1, - nTimes: 10, + uploadBytes: args.uploadBytes, + downloadBytes: args.downloadBytes, + nTimes: args.nTimes, }); - benchmark.results.push({ + results.push({ result: latencies.latencies, implementation: "", version: version.id, - transportStack: "", + transportStack: transportStack, }); } }; - const benchmarkResults: BenchmarkResults = { - benchmarks: [benchmark], - }; - console.log(JSON.stringify(benchmarkResults, null, 2)); -} - -interface Latencies { - latencies: number[]; + return results; } -interface Args { +interface ArgsRunBenchmark { clientPublicIP: string; serverPublicIP: string; dockerImageId: string; @@ -53,7 +92,12 @@ interface Args { nTimes: number, } -function runBenchmark(args: Args): Latencies { +interface Latencies { + latencies: number[]; +} + + +function runBenchmark(args: ArgsRunBenchmark): Latencies { let serverAddress: string; switch (args.transportStack) { @@ -70,7 +114,8 @@ function runBenchmark(args: Args): Latencies { } const binFlags = `--server-address ${serverAddress} --upload-bytes ${args.uploadBytes} --download-bytes ${args.downloadBytes} --n-times ${args.nTimes}` - const dockerCMD = `docker run --rm --entrypoint perf-client ${args.dockerImageId} ${binFlags}` + // TODO Take docker hub repository from version.ts + const dockerCMD = `docker run --rm --entrypoint perf-client mxinden/libp2p-perf@sha256:${args.dockerImageId} ${binFlags}` const cmd = `ssh ec2-user@${args.clientPublicIP} ${dockerCMD}`; try { diff --git a/perf/runner/src/versions.ts b/perf/runner/src/versions.ts index 83ecf51de..54f1e40e6 100644 --- a/perf/runner/src/versions.ts +++ b/perf/runner/src/versions.ts @@ -7,7 +7,7 @@ export type Version = { export const versions: Array = [ { id: "rust-master", - containerImageID: "33cdc2e4fc37", + containerImageID: "8b57bf547f7aa65fec9e6baf764cc1f8be195ef53343c230271116be353889e6", transportStacks: ["tcp", "quic-v1"] }, ] From f0e98f65832598b25736a2b42a21b275d7800242 Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Tue, 11 Apr 2023 21:29:01 -0700 Subject: [PATCH 017/143] Add Go impl --- perf/impl/go/v0.27/Dockerfile | 15 + perf/impl/go/v0.27/README.md | 12 + perf/impl/go/v0.27/go.mod | 98 +++++++ perf/impl/go/v0.27/go.sum | 506 ++++++++++++++++++++++++++++++++++ perf/impl/go/v0.27/main.go | 80 ++++++ perf/impl/go/v0.27/perf.go | 128 +++++++++ perf/impl/go/v0.27/server | 2 + 7 files changed, 841 insertions(+) create mode 100644 perf/impl/go/v0.27/Dockerfile create mode 100644 perf/impl/go/v0.27/README.md create mode 100644 perf/impl/go/v0.27/go.mod create mode 100644 perf/impl/go/v0.27/go.sum create mode 100644 perf/impl/go/v0.27/main.go create mode 100644 perf/impl/go/v0.27/perf.go create mode 100755 perf/impl/go/v0.27/server diff --git a/perf/impl/go/v0.27/Dockerfile b/perf/impl/go/v0.27/Dockerfile new file mode 100644 index 000000000..d70a84437 --- /dev/null +++ b/perf/impl/go/v0.27/Dockerfile @@ -0,0 +1,15 @@ +# Build Go Binary +FROM golang:1.20-alpine AS builder + +WORKDIR /app +COPY go.mod go.sum ./ +RUN go mod download +COPY *.go ./ +RUN go build -o perf . + +FROM alpine + +COPY --from=builder /app/perf /app/perf +COPY server /app/server + +ENTRYPOINT [ "/app/perf" ] diff --git a/perf/impl/go/v0.27/README.md b/perf/impl/go/v0.27/README.md new file mode 100644 index 000000000..99b140243 --- /dev/null +++ b/perf/impl/go/v0.27/README.md @@ -0,0 +1,12 @@ +1. Build with `docker build .` + +Run with: + +``` +docker run --rm -it +``` + +Run server with +``` +docker run --rm -it --entrypoint /app/server +``` diff --git a/perf/impl/go/v0.27/go.mod b/perf/impl/go/v0.27/go.mod new file mode 100644 index 000000000..1ddbb04de --- /dev/null +++ b/perf/impl/go/v0.27/go.mod @@ -0,0 +1,98 @@ +module github.com/libp2p/test-plans/perf/go/v0.27/v2 + +go 1.19 + +require ( + github.com/ipfs/go-log/v2 v2.5.1 + github.com/libp2p/go-buffer-pool v0.1.0 + github.com/libp2p/go-libp2p v0.27.0 + github.com/multiformats/go-multiaddr v0.9.0 + github.com/stretchr/testify v1.8.2 +) + +require ( + github.com/benbjohnson/clock v1.3.0 // indirect + github.com/beorn7/perks v1.0.1 // indirect + github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/containerd/cgroups v1.1.0 // indirect + github.com/coreos/go-systemd/v22 v22.5.0 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect + github.com/docker/go-units v0.5.0 // indirect + github.com/elastic/gosigar v0.14.2 // indirect + github.com/flynn/noise v1.0.0 // indirect + github.com/francoispqt/gojay v1.2.13 // indirect + github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect + github.com/godbus/dbus/v5 v5.1.0 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/mock v1.6.0 // indirect + github.com/golang/protobuf v1.5.3 // indirect + github.com/google/gopacket v1.1.19 // indirect + github.com/google/pprof v0.0.0-20230405160723-4a4c7d95572b // indirect + github.com/huin/goupnp v1.1.0 // indirect + github.com/ipfs/go-cid v0.4.1 // indirect + github.com/jackpal/go-nat-pmp v1.0.2 // indirect + github.com/jbenet/go-temp-err-catcher v0.1.0 // indirect + github.com/klauspost/compress v1.16.4 // indirect + github.com/klauspost/cpuid/v2 v2.2.4 // indirect + github.com/koron/go-ssdp v0.0.4 // indirect + github.com/libp2p/go-cidranger v1.1.0 // indirect + github.com/libp2p/go-flow-metrics v0.1.0 // indirect + github.com/libp2p/go-libp2p-asn-util v0.3.0 // indirect + github.com/libp2p/go-msgio v0.3.0 // indirect + github.com/libp2p/go-nat v0.1.0 // indirect + github.com/libp2p/go-netroute v0.2.1 // indirect + github.com/libp2p/go-reuseport v0.2.0 // indirect + github.com/libp2p/go-yamux/v4 v4.0.0 // indirect + github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd // indirect + github.com/mattn/go-isatty v0.0.18 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect + github.com/miekg/dns v1.1.53 // indirect + github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b // indirect + github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc // indirect + github.com/minio/sha256-simd v1.0.0 // indirect + github.com/mr-tron/base58 v1.2.0 // indirect + github.com/multiformats/go-base32 v0.1.0 // indirect + github.com/multiformats/go-base36 v0.2.0 // indirect + github.com/multiformats/go-multiaddr-dns v0.3.1 // indirect + github.com/multiformats/go-multiaddr-fmt v0.1.0 // indirect + github.com/multiformats/go-multibase v0.2.0 // indirect + github.com/multiformats/go-multicodec v0.8.1 // indirect + github.com/multiformats/go-multihash v0.2.1 // indirect + github.com/multiformats/go-multistream v0.4.1 // indirect + github.com/multiformats/go-varint v0.0.7 // indirect + github.com/onsi/ginkgo/v2 v2.9.2 // indirect + github.com/opencontainers/runtime-spec v1.0.2 // indirect + github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/prometheus/client_golang v1.14.0 // indirect + github.com/prometheus/client_model v0.3.0 // indirect + github.com/prometheus/common v0.42.0 // indirect + github.com/prometheus/procfs v0.9.0 // indirect + github.com/quic-go/qpack v0.4.0 // indirect + github.com/quic-go/qtls-go1-19 v0.3.2 // indirect + github.com/quic-go/qtls-go1-20 v0.2.2 // indirect + github.com/quic-go/quic-go v0.33.0 // indirect + github.com/quic-go/webtransport-go v0.5.2 // indirect + github.com/raulk/go-watchdog v1.3.0 // indirect + github.com/spaolacci/murmur3 v1.1.0 // indirect + go.uber.org/atomic v1.10.0 // indirect + go.uber.org/dig v1.16.1 // indirect + go.uber.org/fx v1.19.2 // indirect + go.uber.org/multierr v1.11.0 // indirect + go.uber.org/zap v1.24.0 // indirect + golang.org/x/crypto v0.7.0 // indirect + golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect + golang.org/x/mod v0.10.0 // indirect + golang.org/x/net v0.8.0 // indirect + golang.org/x/sync v0.1.0 // indirect + golang.org/x/sys v0.7.0 // indirect + golang.org/x/text v0.8.0 // indirect + golang.org/x/tools v0.7.0 // indirect + google.golang.org/protobuf v1.30.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + lukechampine.com/blake3 v1.1.7 // indirect + nhooyr.io/websocket v1.8.7 // indirect +) diff --git a/perf/impl/go/v0.27/go.sum b/perf/impl/go/v0.27/go.sum new file mode 100644 index 000000000..6709fc64f --- /dev/null +++ b/perf/impl/go/v0.27/go.sum @@ -0,0 +1,506 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.31.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.37.0/go.mod h1:TS1dMSSfndXH133OKGwekG838Om/cQT0BUHV3HcBgoo= +dmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3/go.mod h1:Yl+fi1br7+Rr3LqpNJf1/uxUdtRUV+Tnj0o93V2B9MU= +dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBrvjyP0v+ecvNYvCpyZgu5/xkfAUhi6wJj28eUfSU= +dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4= +dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU= +git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= +github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g= +github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= +github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/containerd/cgroups v0.0.0-20201119153540-4cbc285b3327/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE= +github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= +github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= +github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= +github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c h1:pFUpOrbxDR6AkioZ1ySsx5yxlDQZ8stG2b88gTPxgJU= +github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c/go.mod h1:6UhI8N9EjYm1c2odKpFpAYeR8dsBeM7PtzQhRgxRr9U= +github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 h1:HbphB4TFFXpv7MNrT52FGrrgVXF1owhMVTHFZIlnvd4= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0/go.mod h1:DZGJHZMqrU4JJqFAWUS2UO1+lbSKsdiOoYi9Zzey7Fc= +github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/elastic/gosigar v0.12.0/go.mod h1:iXRIGg2tLnu7LBdpqzyQfGDEidKCfWcCMS0WKyPWoMs= +github.com/elastic/gosigar v0.14.2 h1:Dg80n8cr90OZ7x+bAax/QjoW/XqTI11RmA79ZwIm9/4= +github.com/elastic/gosigar v0.14.2/go.mod h1:iXRIGg2tLnu7LBdpqzyQfGDEidKCfWcCMS0WKyPWoMs= +github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= +github.com/flynn/noise v1.0.0 h1:DlTHqmzmvcEiKj+4RYo/imoswx/4r6iBlCMfVtrMXpQ= +github.com/flynn/noise v1.0.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwUTag= +github.com/francoispqt/gojay v1.2.13 h1:d2m3sFjloqoIUQU3TsHBgj6qg/BVGlTBeHDUmyJnXKk= +github.com/francoispqt/gojay v1.2.13/go.mod h1:ehT5mTG4ua4581f1++1WLG0vPdaA9HaiDsoyrBGkyDY= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= +github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.6.3 h1:ahKqKTFpO5KTPHxWZjEdPScmYaGtLo8Y4DMHoEsnp14= +github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= +github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= +github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= +github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= +github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= +github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= +github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= +github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= +github.com/go-playground/validator/v10 v10.2.0 h1:KgJ0snyC2R9VXYN2rneOtQcw5aHQB1Vv0sFl1UcHBOY= +github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= +github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0= +github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= +github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8= +github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= +github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= +github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= +github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= +github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= +github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gopacket v1.1.17/go.mod h1:UdDNZ1OO62aGYVnPhxT1U6aI7ukYtA/kB8vaU0diBUM= +github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8= +github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo/Vo+TKTo= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20230405160723-4a4c7d95572b h1:Qcx5LM0fSiks9uCyFZwDBUasd3lxd1RM0GYpL+Li5o4= +github.com/google/pprof v0.0.0-20230405160723-4a4c7d95572b/go.mod h1:79YE0hCXdHag9sBkw2o+N/YnZtTkXi0UT9Nnixa5eYk= +github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= +github.com/googleapis/gax-go/v2 v2.0.3/go.mod h1:LLvjysVCY1JZeum8Z6l8qUty8fiNwE08qbEPm1M08qg= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM= +github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= +github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc= +github.com/huin/goupnp v1.1.0 h1:gEe0Dp/lZmPZiDFzJJaOfUpOvv2MKUkoBX8lDrn9vKU= +github.com/huin/goupnp v1.1.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8= +github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= +github.com/ipfs/go-cid v0.4.1 h1:A/T3qGvxi4kpKWWcPC/PgbvDA2bjVLO7n4UeVwnbs/s= +github.com/ipfs/go-cid v0.4.1/go.mod h1:uQHwDeX4c6CtyrFwdqyhpNcxVewur1M7l7fNU7LKwZk= +github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= +github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= +github.com/ipfs/go-log/v2 v2.5.1 h1:1XdUzF7048prq4aBjDQQ4SL5RxftpRGdXhNRwKSAlcY= +github.com/ipfs/go-log/v2 v2.5.1/go.mod h1:prSpmC1Gpllc9UYWxDiZDreBYw7zp4Iqp1kOLU9U5UI= +github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= +github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/jbenet/go-temp-err-catcher v0.1.0 h1:zpb3ZH6wIE8Shj2sKS+khgRvf7T7RABoLk/+KKHggpk= +github.com/jbenet/go-temp-err-catcher v0.1.0/go.mod h1:0kJRvmDZXNMIiJirNPEYfhpPwbGVtZVWC34vc5WLsDk= +github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.16.4 h1:91KN02FnsOYhuunwU4ssRe8lc2JosWmizWa91B5v1PU= +github.com/klauspost/compress v1.16.4/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk= +github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= +github.com/koron/go-ssdp v0.0.0-20191105050749-2e1c40ed0b5d/go.mod h1:5Ky9EC2xfoUKUor0Hjgi2BJhCSXJfMOFlmyYrVKGQMk= +github.com/koron/go-ssdp v0.0.4 h1:1IDwrghSKYM7yLf7XCzbByg2sJ/JcNOZRXS2jczTwz0= +github.com/koron/go-ssdp v0.0.4/go.mod h1:oDXq+E5IL5q0U8uSBcoAXzTzInwy5lEgC91HoKtbmZk= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= +github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= +github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= +github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= +github.com/libp2p/go-cidranger v1.1.0 h1:ewPN8EZ0dd1LSnrtuwd4709PXVcITVeuwbag38yPW7c= +github.com/libp2p/go-cidranger v1.1.0/go.mod h1:KWZTfSr+r9qEo9OkI9/SIEeAtw+NNoU0dXIXt15Okic= +github.com/libp2p/go-flow-metrics v0.1.0 h1:0iPhMI8PskQwzh57jB9WxIuIOQ0r+15PChFGkx3Q3WM= +github.com/libp2p/go-flow-metrics v0.1.0/go.mod h1:4Xi8MX8wj5aWNDAZttg6UPmc0ZrnFNsMtpsYUClFtro= +github.com/libp2p/go-libp2p v0.27.0 h1:QbhrTuB0ln9j9op6yAOR0o+cx/qa9NyNZ5ov0Tql8ZU= +github.com/libp2p/go-libp2p v0.27.0/go.mod h1:FAvvfQa/YOShUYdiSS03IR9OXzkcJXwcNA2FUCh9ImE= +github.com/libp2p/go-libp2p-asn-util v0.3.0 h1:gMDcMyYiZKkocGXDQ5nsUQyquC9+H+iLEQHwOCZ7s8s= +github.com/libp2p/go-libp2p-asn-util v0.3.0/go.mod h1:B1mcOrKUE35Xq/ASTmQ4tN3LNzVVaMNmq2NACuqyB9w= +github.com/libp2p/go-libp2p-testing v0.12.0 h1:EPvBb4kKMWO29qP4mZGyhVzUyR25dvfUIK5WDu6iPUA= +github.com/libp2p/go-msgio v0.3.0 h1:mf3Z8B1xcFN314sWX+2vOTShIE0Mmn2TXn3YCUQGNj0= +github.com/libp2p/go-msgio v0.3.0/go.mod h1:nyRM819GmVaF9LX3l03RMh10QdOroF++NBbxAb0mmDM= +github.com/libp2p/go-nat v0.1.0 h1:MfVsH6DLcpa04Xr+p8hmVRG4juse0s3J8HyNWYHffXg= +github.com/libp2p/go-nat v0.1.0/go.mod h1:X7teVkwRHNInVNWQiO/tAiAVRwSr5zoRz4YSTC3uRBM= +github.com/libp2p/go-netroute v0.1.2/go.mod h1:jZLDV+1PE8y5XxBySEBgbuVAXbhtuHSdmLPL2n9MKbk= +github.com/libp2p/go-netroute v0.2.1 h1:V8kVrpD8GK0Riv15/7VN6RbUQ3URNZVosw7H2v9tksU= +github.com/libp2p/go-netroute v0.2.1/go.mod h1:hraioZr0fhBjG0ZRXJJ6Zj2IVEVNx6tDTFQfSmcq7mQ= +github.com/libp2p/go-reuseport v0.2.0 h1:18PRvIMlpY6ZK85nIAicSBuXXvrYoSw3dsBAR7zc560= +github.com/libp2p/go-reuseport v0.2.0/go.mod h1:bvVho6eLMm6Bz5hmU0LYN3ixd3nPPvtIlaURZZgOY4k= +github.com/libp2p/go-sockaddr v0.0.2/go.mod h1:syPvOmNs24S3dFVGJA1/mrqdeijPxLV2Le3BRLKd68k= +github.com/libp2p/go-yamux/v4 v4.0.0 h1:+Y80dV2Yx/kv7Y7JKu0LECyVdMXm1VUoko+VQ9rBfZQ= +github.com/libp2p/go-yamux/v4 v4.0.0/go.mod h1:NWjl8ZTLOGlozrXSOZ/HlfG++39iKNnM5wwmtQP1YB4= +github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= +github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd h1:br0buuQ854V8u83wA0rVZ8ttrq5CpaPZdvrK0LP2lOk= +github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd/go.mod h1:QuCEs1Nt24+FYQEqAAncTDPJIuGs+LxK1MCiFL25pMU= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98= +github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= +github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4= +github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= +github.com/miekg/dns v1.1.53 h1:ZBkuHr5dxHtB1caEOlZTLPo7D3L3TWckgUUs/RHfDxw= +github.com/miekg/dns v1.1.53/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY= +github.com/mikioh/tcp v0.0.0-20190314235350-803a9b46060c h1:bzE/A84HN25pxAuk9Eej1Kz9OUelF97nAc82bDquQI8= +github.com/mikioh/tcp v0.0.0-20190314235350-803a9b46060c/go.mod h1:0SQS9kMwD2VsyFEB++InYyBJroV/FRmBgcydeSUcJms= +github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b h1:z78hV3sbSMAUoyUMM0I83AUIT6Hu17AWfgjzIbtrYFc= +github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b/go.mod h1:lxPUiZwKoFL8DUUmalo2yJJUCxbPKtm8OKfqr2/FTNU= +github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc h1:PTfri+PuQmWDqERdnNMiD9ZejrlswWrCpBEZgWOiTrc= +github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc/go.mod h1:cGKTAVKx4SxOuR/czcZ/E2RSJ3sfHs8FpHhQ5CWMf9s= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= +github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g= +github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/mr-tron/base58 v1.1.2/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= +github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= +github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= +github.com/multiformats/go-base32 v0.1.0 h1:pVx9xoSPqEIQG8o+UbAe7DNi51oej1NtK+aGkbLYxPE= +github.com/multiformats/go-base32 v0.1.0/go.mod h1:Kj3tFY6zNr+ABYMqeUNeGvkIC/UYgtWibDcT0rExnbI= +github.com/multiformats/go-base36 v0.2.0 h1:lFsAbNOGeKtuKozrtBsAkSVhv1p9D0/qedU9rQyccr0= +github.com/multiformats/go-base36 v0.2.0/go.mod h1:qvnKE++v+2MWCfePClUEjE78Z7P2a1UV0xHgWc0hkp4= +github.com/multiformats/go-multiaddr v0.1.1/go.mod h1:aMKBKNEYmzmDmxfX88/vz+J5IU55txyt0p4aiWVohjo= +github.com/multiformats/go-multiaddr v0.2.0/go.mod h1:0nO36NvPpyV4QzvTLi/lafl2y95ncPj0vFwVF6k6wJ4= +github.com/multiformats/go-multiaddr v0.9.0 h1:3h4V1LHIk5w4hJHekMKWALPXErDfz/sggzwC/NcqbDQ= +github.com/multiformats/go-multiaddr v0.9.0/go.mod h1:mI67Lb1EeTOYb8GQfL/7wpIZwc46ElrvzhYnoJOmTT0= +github.com/multiformats/go-multiaddr-dns v0.3.1 h1:QgQgR+LQVt3NPTjbrLLpsaT2ufAA2y0Mkk+QRVJbW3A= +github.com/multiformats/go-multiaddr-dns v0.3.1/go.mod h1:G/245BRQ6FJGmryJCrOuTdB37AMA5AMOVuO6NY3JwTk= +github.com/multiformats/go-multiaddr-fmt v0.1.0 h1:WLEFClPycPkp4fnIzoFoV9FVd49/eQsuaL3/CWe167E= +github.com/multiformats/go-multiaddr-fmt v0.1.0/go.mod h1:hGtDIW4PU4BqJ50gW2quDuPVjyWNZxToGUh/HwTZYJo= +github.com/multiformats/go-multibase v0.2.0 h1:isdYCVLvksgWlMW9OZRYJEa9pZETFivncJHmHnnd87g= +github.com/multiformats/go-multibase v0.2.0/go.mod h1:bFBZX4lKCA/2lyOFSAoKH5SS6oPyjtnzK/XTFDPkNuk= +github.com/multiformats/go-multicodec v0.8.1 h1:ycepHwavHafh3grIbR1jIXnKCsFm0fqsfEOsJ8NtKE8= +github.com/multiformats/go-multicodec v0.8.1/go.mod h1:L3QTQvMIaVBkXOXXtVmYE+LI16i14xuaojr/H7Ai54k= +github.com/multiformats/go-multihash v0.0.8/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpKa63epEDmG8nTduyAew= +github.com/multiformats/go-multihash v0.2.1 h1:aem8ZT0VA2nCHHk7bPJ1BjUbHNciqZC/d16Vve9l108= +github.com/multiformats/go-multihash v0.2.1/go.mod h1:WxoMcYG85AZVQUyRyo9s4wULvW5qrI9vb2Lt6evduFc= +github.com/multiformats/go-multistream v0.4.1 h1:rFy0Iiyn3YT0asivDUIR05leAdwZq3de4741sbiSdfo= +github.com/multiformats/go-multistream v0.4.1/go.mod h1:Mz5eykRVAjJWckE2U78c6xqdtyNUEhKSM0Lwar2p77Q= +github.com/multiformats/go-varint v0.0.1/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= +github.com/multiformats/go-varint v0.0.7 h1:sWSGR+f/eu5ABZA2ZpYKBILXTTs9JWpdEM/nEGOHFS8= +github.com/multiformats/go-varint v0.0.7/go.mod h1:r8PUYw/fD/SjBCiKOoDlGF6QawOELpZAu9eioSos/OU= +github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= +github.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= +github.com/onsi/ginkgo/v2 v2.9.2 h1:BA2GMJOtfGAfagzYtrAlufIP0lq6QERkFmHLMLPwFSU= +github.com/onsi/ginkgo/v2 v2.9.2/go.mod h1:WHcJJG2dIlcCqVfBAwUCrJxSPFb6v4azBwgxeMeDuts= +github.com/onsi/gomega v1.27.4 h1:Z2AnStgsdSayCMDiCU42qIz+HLqEPcgiOCXjAU/w+8E= +github.com/opencontainers/runtime-spec v1.0.2 h1:UfAcuLBJB9Coz72x1hgl8O5RVzTdNiaglX6v2DM6FI0= +github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= +github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0= +github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= +github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= +github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= +github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= +github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= +github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= +github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= +github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo= +github.com/quic-go/qpack v0.4.0/go.mod h1:UZVnYIfi5GRk+zI9UMaCPsmZ2xKJP7XBUvVyT1Knj9A= +github.com/quic-go/qtls-go1-19 v0.3.2 h1:tFxjCFcTQzK+oMxG6Zcvp4Dq8dx4yD3dDiIiyc86Z5U= +github.com/quic-go/qtls-go1-19 v0.3.2/go.mod h1:ySOI96ew8lnoKPtSqx2BlI5wCpUVPT05RMAlajtnyOI= +github.com/quic-go/qtls-go1-20 v0.2.2 h1:WLOPx6OY/hxtTxKV1Zrq20FtXtDEkeY00CGQm8GEa3E= +github.com/quic-go/qtls-go1-20 v0.2.2/go.mod h1:JKtK6mjbAVcUTN/9jZpvLbGxvdWIKS8uT7EiStoU1SM= +github.com/quic-go/quic-go v0.33.0 h1:ItNoTDN/Fm/zBlq769lLJc8ECe9gYaW40veHCCco7y0= +github.com/quic-go/quic-go v0.33.0/go.mod h1:YMuhaAV9/jIu0XclDXwZPAsP/2Kgr5yMYhe9oxhhOFA= +github.com/quic-go/webtransport-go v0.5.2 h1:GA6Bl6oZY+g/flt00Pnu0XtivSD8vukOu3lYhJjnGEk= +github.com/quic-go/webtransport-go v0.5.2/go.mod h1:OhmmgJIzTTqXK5xvtuX0oBpLV2GkLWNDA+UeTGJXErU= +github.com/raulk/go-watchdog v1.3.0 h1:oUmdlHxdkXRJlwfG0O9omj8ukerm8MEQavSiDTEtBsk= +github.com/raulk/go-watchdog v1.3.0/go.mod h1:fIvOnLbF0b0ZwkB9YU4mOW9Did//4vPZtDqv66NfsMU= +github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY= +github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM= +github.com/shurcooL/github_flavored_markdown v0.0.0-20181002035957-2122de532470/go.mod h1:2dOwnU2uBioM+SGy2aZoq1f/Sd1l9OkAeAUvjSyvgU0= +github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= +github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= +github.com/shurcooL/gofontwoff v0.0.0-20180329035133-29b52fc0a18d/go.mod h1:05UtEgK5zq39gLST6uB0cf3NEHjETfB4Fgr3Gx5R9Vw= +github.com/shurcooL/gopherjslib v0.0.0-20160914041154-feb6d3990c2c/go.mod h1:8d3azKNyqcHP1GaQE/c6dDgjkgSx2BZ4IoEi4F1reUI= +github.com/shurcooL/highlight_diff v0.0.0-20170515013008-09bb4053de1b/go.mod h1:ZpfEhSmds4ytuByIcDnOLkTHGUI6KNqRNPDLHDk+mUU= +github.com/shurcooL/highlight_go v0.0.0-20181028180052-98c3abbbae20/go.mod h1:UDKB5a1T23gOMUJrI+uSuH0VRDStOiUVSjBTRDVBVag= +github.com/shurcooL/home v0.0.0-20181020052607-80b7ffcb30f9/go.mod h1:+rgNQw2P9ARFAs37qieuu7ohDNQ3gds9msbT2yn85sg= +github.com/shurcooL/htmlg v0.0.0-20170918183704-d01228ac9e50/go.mod h1:zPn1wHpTIePGnXSHpsVPWEktKXHr6+SS6x/IKRb7cpw= +github.com/shurcooL/httperror v0.0.0-20170206035902-86b7830d14cc/go.mod h1:aYMfkZ6DWSJPJ6c4Wwz3QtW22G7mf/PEgaB9k/ik5+Y= +github.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= +github.com/shurcooL/httpgzip v0.0.0-20180522190206-b1c53ac65af9/go.mod h1:919LwcH0M7/W4fcZ0/jy0qGght1GIhqyS/EgWGH2j5Q= +github.com/shurcooL/issues v0.0.0-20181008053335-6292fdc1e191/go.mod h1:e2qWDig5bLteJ4fwvDAc2NHzqFEthkqn7aOZAOpj+PQ= +github.com/shurcooL/issuesapp v0.0.0-20180602232740-048589ce2241/go.mod h1:NPpHK2TI7iSaM0buivtFUc9offApnI0Alt/K8hcHy0I= +github.com/shurcooL/notifications v0.0.0-20181007000457-627ab5aea122/go.mod h1:b5uSkrEVM1jQUspwbixRBhaIjIzL2xazXp6kntxYle0= +github.com/shurcooL/octicon v0.0.0-20181028054416-fa4f57f9efb2/go.mod h1:eWdoE5JD4R5UVWDucdOPg1g2fqQRq78IQa9zlOV1vpQ= +github.com/shurcooL/reactions v0.0.0-20181006231557-f2e0b4ca5b82/go.mod h1:TCR1lToEk4d2s07G3XGfz2QrgHXg4RJBvjrOozvoWfk= +github.com/shurcooL/sanitized_anchor_name v0.0.0-20170918181015-86672fcb3f95/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537/go.mod h1:QJTqeLYEDaXHZDBsXlPCDqdhQuJkuw4NOtaxYe3xii4= +github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5kWdCj2z2KEozexVbfEZIWiTjhE0+UjmZgPqehw= +github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE= +github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA= +github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= +github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA= +github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= +github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= +github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs= +github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= +github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/viant/assertly v0.4.8/go.mod h1:aGifi++jvCrUaklKEKT0BU95igDNaqkvz+49uaYMPRU= +github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= +go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +go.uber.org/dig v1.16.1 h1:+alNIBsl0qfY0j6epRubp/9obgtrObRAc5aD+6jbWY8= +go.uber.org/dig v1.16.1/go.mod h1:557JTAUZT5bUK0SvCwikmLPPtdQhfvLYtO5tJgQSbnk= +go.uber.org/fx v1.19.2 h1:SyFgYQFr1Wl0AYstE8vyYIzP4bFz2URrScjwC4cwUvY= +go.uber.org/fx v1.19.2/go.mod h1:43G1VcqSzbIv77y00p1DRAsyZS8WdzuYdhZXmEUkMyQ= +go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= +go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= +go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= +go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= +golang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d/go.mod h1:OWs+y06UdEOHN4y+MfF/py+xQ/tYqIWW03b70/CG9Rw= +golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200602180216-279210d13fed/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= +golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= +golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181029044818-c44066c5c816/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181106065722-10aee1819953/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190313220215-9f648a60d977/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180810173357-98c5dad5d1a0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181029174526-d69651ed3497/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190316082340-a2f829d7f35f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190405154228-4b34438f7a67/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= +golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181030000716-a0a13e073c7b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4= +golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= +google.golang.org/api v0.0.0-20181030000543-1d582fd0359e/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= +google.golang.org/api v0.1.0/go.mod h1:UGEZY7KEX120AnNLIHFMKIo4obdJhkp2tPbaPlQx13Y= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20181202183823-bd91e49a0898/go.mod h1:7Ep/1NZk928CDR8SjdVbjWNpdIf6nzjE3BTgJDr2Atg= +google.golang.org/genproto v0.0.0-20190306203927-b5d61aea6440/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio= +google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o= +honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +lukechampine.com/blake3 v1.1.7 h1:GgRMhmdsuK8+ii6UZFDL8Nb+VyMwadAgcJyfYHxG6n0= +lukechampine.com/blake3 v1.1.7/go.mod h1:tkKEOtDkNtklkXtLNEOGNq5tcV90tJiA1vAA12R78LA= +nhooyr.io/websocket v1.8.7 h1:usjR2uOr/zjjkVMy0lW+PPohFok7PCow5sDjLgX4P4g= +nhooyr.io/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= +sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck= +sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= diff --git a/perf/impl/go/v0.27/main.go b/perf/impl/go/v0.27/main.go new file mode 100644 index 000000000..6b49ff110 --- /dev/null +++ b/perf/impl/go/v0.27/main.go @@ -0,0 +1,80 @@ +package main + +import ( + "context" + "encoding/json" + "flag" + "fmt" + "time" + + "github.com/libp2p/go-libp2p" + "github.com/libp2p/go-libp2p/core/peer" + "github.com/multiformats/go-multiaddr" +) + +func main() { + runServer := flag.Bool("run-server", false, "Should run as server") + // --server-address + serverAddr := flag.String("server-address", "", "Server address") + // --upload-bytes + uploadBytes := flag.Int("upload-bytes", 0, "Upload bytes") + // --download-bytes + downloadBytes := flag.Int("download-bytes", 0, "Download bytes") + // --n-times + nTimes := flag.Int("n-times", 0, "N times") + flag.Parse() + fmt.Println("Hello, playground", *serverAddr, uploadBytes, downloadBytes, nTimes) + + // var opts []libp2p.Option + // if *runServer != "" { + // opts = append(opts, libp2p.ListenAddrStrings(*runServer)) + // } + + h, err := libp2p.New() + if err != nil { + panic(err) + } + + perf := NewPerfService(h) + if *runServer { + for _, a := range h.Addrs() { + fmt.Println(a.Encapsulate(multiaddr.StringCast("/p2p/" + h.ID().String()))) + } + + select {} // run forever, exit on interrupt + } + + serverInfo, err := peer.AddrInfoFromString(*serverAddr) + if err != nil { + panic(err) + } + + err = h.Connect(context.Background(), *serverInfo) + if err != nil { + panic(err) + } + + times := make([]time.Duration, 0, *nTimes) + + for i := 0; i < *nTimes; i++ { + start := time.Now() + err := perf.RunPerf(context.Background(), serverInfo.ID, uint64(*uploadBytes), uint64(*downloadBytes)) + if err != nil { + panic(err) + } + times = append(times, time.Since(start)) + } + + // float32 because json + timesMs := make([]float32, 0, len(times)) + for _, t := range times { + timesMs = append(timesMs, float32(t.Nanoseconds())/1_000_000) + } + + jsonB, err := json.Marshal(timesMs) + if err != nil { + panic(err) + } + + fmt.Println(string(jsonB)) +} diff --git a/perf/impl/go/v0.27/perf.go b/perf/impl/go/v0.27/perf.go new file mode 100644 index 000000000..691f983a4 --- /dev/null +++ b/perf/impl/go/v0.27/perf.go @@ -0,0 +1,128 @@ +package main + +import ( + "context" + "encoding/binary" + "fmt" + "io" + + logging "github.com/ipfs/go-log/v2" + pool "github.com/libp2p/go-buffer-pool" + "github.com/libp2p/go-libp2p/core/host" + "github.com/libp2p/go-libp2p/core/network" + "github.com/libp2p/go-libp2p/core/peer" +) + +var log = logging.Logger("perf") + +const ( + BlockSize = 64 << 10 + + ID = "/perf/1.0.0" +) + +type PerfService struct { + Host host.Host +} + +func NewPerfService(h host.Host) *PerfService { + ps := &PerfService{h} + h.SetStreamHandler(ID, ps.PerfHandler) + return ps +} + +func (p *PerfService) PerfHandler(s network.Stream) { + buf := pool.Get(BlockSize) + defer pool.Put(buf) + + u64Buf := make([]byte, 8) + _, err := io.ReadFull(s, u64Buf) + if err != nil { + log.Errorw("err", err) + s.Reset() + return + } + + bytesToSend := binary.BigEndian.Uint64(u64Buf) + + _, err = p.drainStream(context.Background(), s, buf) + if err != nil { + log.Errorw("err", err) + s.Reset() + return + } + + err = p.sendBytes(context.Background(), s, bytesToSend, buf) + if err != nil { + log.Errorw("err", err) + s.Reset() + return + } + +} + +func (ps *PerfService) sendBytes(ctx context.Context, s network.Stream, bytesToSend uint64, buf []byte) error { + for bytesToSend > 0 { + toSend := buf + if bytesToSend < BlockSize { + toSend = buf[:bytesToSend] + } + + n, err := s.Write(toSend) + if err != nil { + return nil + } + bytesToSend -= uint64(n) + } + s.CloseWrite() + + return nil +} + +func (ps *PerfService) drainStream(ctx context.Context, s network.Stream, buf []byte) (uint64, error) { + var recvd uint64 + for { + n, err := s.Read(buf) + recvd += uint64(n) + if err == io.EOF { + return recvd, nil + } else if err != nil { + s.Reset() + return recvd, err + } + } +} + +func (ps *PerfService) RunPerf(ctx context.Context, p peer.ID, bytesToSend uint64, bytesToRecv uint64) error { + s, err := ps.Host.NewStream(ctx, p, ID) + if err != nil { + return err + } + + buf := pool.Get(BlockSize) + defer pool.Put(buf) + + sizeBuf := make([]byte, 8) + binary.BigEndian.PutUint64(sizeBuf, bytesToRecv) + + _, err = s.Write(sizeBuf) + if err != nil { + + return err + } + + err = ps.sendBytes(ctx, s, bytesToSend, buf) + if err != nil { + return err + } + + recvd, err := ps.drainStream(ctx, s, buf) + if err != nil { + return err + } + + if recvd != bytesToRecv { + return fmt.Errorf("expected to recv %d bytes, got %d", bytesToRecv, recvd) + } + return err +} diff --git a/perf/impl/go/v0.27/server b/perf/impl/go/v0.27/server new file mode 100755 index 000000000..59685e5cb --- /dev/null +++ b/perf/impl/go/v0.27/server @@ -0,0 +1,2 @@ +#!/usr/bin/env sh +/app/perf --run-server From 16dfcc1090753ea26bbba53eca6ecd1f7e00ec9d Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 12 Apr 2023 11:56:58 +0200 Subject: [PATCH 018/143] Run client in host network --- perf/runner/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index d547b3aaf..d12e48823 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -115,7 +115,7 @@ function runBenchmark(args: ArgsRunBenchmark): Latencies { const binFlags = `--server-address ${serverAddress} --upload-bytes ${args.uploadBytes} --download-bytes ${args.downloadBytes} --n-times ${args.nTimes}` // TODO Take docker hub repository from version.ts - const dockerCMD = `docker run --rm --entrypoint perf-client mxinden/libp2p-perf@sha256:${args.dockerImageId} ${binFlags}` + const dockerCMD = `docker run --rm --network host --entrypoint perf-client mxinden/libp2p-perf@sha256:${args.dockerImageId} ${binFlags}` const cmd = `ssh ec2-user@${args.clientPublicIP} ${dockerCMD}`; try { From 32699db324fa0619b483003737f08e603311ffd6 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 12 Apr 2023 16:56:34 +0200 Subject: [PATCH 019/143] Add Golang docker image to runner --- perf/runner/src/index.ts | 2 +- perf/runner/src/versions.ts | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index d12e48823..c0ffe9cd9 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -115,7 +115,7 @@ function runBenchmark(args: ArgsRunBenchmark): Latencies { const binFlags = `--server-address ${serverAddress} --upload-bytes ${args.uploadBytes} --download-bytes ${args.downloadBytes} --n-times ${args.nTimes}` // TODO Take docker hub repository from version.ts - const dockerCMD = `docker run --rm --network host --entrypoint perf-client mxinden/libp2p-perf@sha256:${args.dockerImageId} ${binFlags}` + const dockerCMD = `docker run --rm --network host mxinden/libp2p-perf@sha256:${args.dockerImageId} ${binFlags}` const cmd = `ssh ec2-user@${args.clientPublicIP} ${dockerCMD}`; try { diff --git a/perf/runner/src/versions.ts b/perf/runner/src/versions.ts index 54f1e40e6..d927ee6b8 100644 --- a/perf/runner/src/versions.ts +++ b/perf/runner/src/versions.ts @@ -7,7 +7,12 @@ export type Version = { export const versions: Array = [ { id: "rust-master", - containerImageID: "8b57bf547f7aa65fec9e6baf764cc1f8be195ef53343c230271116be353889e6", + containerImageID: "f75472c773218b4da229e8b83c498d67de70cf2c6d145a969ca31aea14b78962", + transportStacks: ["tcp", "quic-v1"] + }, + { + id: "go-master", + containerImageID: "9eaea3b70d5895d92219df971008eb1e55b8de769d1195cc03e2d74b314d6eac", transportStacks: ["tcp", "quic-v1"] }, ] From 2f3c425fd344b075365baadf2ccfcac9774371ce Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 12 Apr 2023 19:24:51 +0200 Subject: [PATCH 020/143] fix(go): only print final result to stdout --- perf/impl/go/v0.27/main.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/perf/impl/go/v0.27/main.go b/perf/impl/go/v0.27/main.go index 6b49ff110..fb591b98d 100644 --- a/perf/impl/go/v0.27/main.go +++ b/perf/impl/go/v0.27/main.go @@ -5,6 +5,7 @@ import ( "encoding/json" "flag" "fmt" + "os" "time" "github.com/libp2p/go-libp2p" @@ -23,7 +24,7 @@ func main() { // --n-times nTimes := flag.Int("n-times", 0, "N times") flag.Parse() - fmt.Println("Hello, playground", *serverAddr, uploadBytes, downloadBytes, nTimes) + fmt.Fprintf(os.Stderr, "Hello, playground", *serverAddr, uploadBytes, downloadBytes, nTimes) // var opts []libp2p.Option // if *runServer != "" { From c9f12ec3c44a3248810b6eae362ce412cb5d3c76 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 12 Apr 2023 19:25:16 +0200 Subject: [PATCH 021/143] fix(go): use si units (i.e. here s) --- perf/impl/go/v0.27/main.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/perf/impl/go/v0.27/main.go b/perf/impl/go/v0.27/main.go index fb591b98d..7ca995361 100644 --- a/perf/impl/go/v0.27/main.go +++ b/perf/impl/go/v0.27/main.go @@ -67,15 +67,23 @@ func main() { } // float32 because json - timesMs := make([]float32, 0, len(times)) + timesS := make([]float32, 0, len(times)) for _, t := range times { - timesMs = append(timesMs, float32(t.Nanoseconds())/1_000_000) + timesS = append(timesS, float32(t.Nanoseconds())/1_000_000_000) } - jsonB, err := json.Marshal(timesMs) + latencies := Latencies { + Latencies: timesS, + } + + jsonB, err := json.Marshal(latencies) if err != nil { panic(err) } fmt.Println(string(jsonB)) } + +type Latencies struct { + Latencies []float32 `json:"latencies"` +} From 99b2f4634e4ce12be6361242692f0bd61cbdf1ba Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 12 Apr 2023 19:25:36 +0200 Subject: [PATCH 022/143] Provide server peer id to client --- perf/runner/src/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index c0ffe9cd9..55cab411b 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -112,6 +112,7 @@ function runBenchmark(args: ArgsRunBenchmark): Latencies { process.exit(1); } + serverAddress = serverAddress + "/p2p/12D3KooWDpJ7As7BWAwRMfu1VU2WCqNjvq387JEYKDBj4kx6nXTN"; const binFlags = `--server-address ${serverAddress} --upload-bytes ${args.uploadBytes} --download-bytes ${args.downloadBytes} --n-times ${args.nTimes}` // TODO Take docker hub repository from version.ts From 43500ef3d2852524c5f3925f0beb8078300630ce Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 12 Apr 2023 19:26:02 +0200 Subject: [PATCH 023/143] Use entrypoint convention and provide secret key seed --- perf/terraform/user-data.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/terraform/user-data.sh b/perf/terraform/user-data.sh index 52219a6e6..e56d4e6fe 100644 --- a/perf/terraform/user-data.sh +++ b/perf/terraform/user-data.sh @@ -6,4 +6,4 @@ sudo systemctl enable docker sudo systemctl start docker sudo usermod -aG docker ec2-user -docker run -d --restart always --network host mxinden/libp2p-perf +docker run -d --restart always --network host --entrypoint /app/server mxinden/libp2p-perf@sha256:f567b27347a8d222e88f3c0b160e0547023e88aa700dc5e4255d9fcdf3d08eb1 --secret-key-seed 0 From e0fa1f403ef824227f0d665e72e48b4e222a10c4 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 12 Apr 2023 19:26:27 +0200 Subject: [PATCH 024/143] Update to latest container images --- perf/runner/src/versions.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/perf/runner/src/versions.ts b/perf/runner/src/versions.ts index d927ee6b8..8f5c793ec 100644 --- a/perf/runner/src/versions.ts +++ b/perf/runner/src/versions.ts @@ -7,12 +7,12 @@ export type Version = { export const versions: Array = [ { id: "rust-master", - containerImageID: "f75472c773218b4da229e8b83c498d67de70cf2c6d145a969ca31aea14b78962", + containerImageID: "f567b27347a8d222e88f3c0b160e0547023e88aa700dc5e4255d9fcdf3d08eb1", transportStacks: ["tcp", "quic-v1"] }, { id: "go-master", - containerImageID: "9eaea3b70d5895d92219df971008eb1e55b8de769d1195cc03e2d74b314d6eac", + containerImageID: "2406b0778d7655b7eac7c0b448b1bf008c2411b7f128e899d894dcc12abb98fd", transportStacks: ["tcp", "quic-v1"] }, ] From 4f207d640509c9b0eb6b3e65bdd02b40d7dc546b Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Wed, 12 Apr 2023 16:36:25 -0700 Subject: [PATCH 025/143] Remove stray println --- perf/impl/go/v0.27/main.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/perf/impl/go/v0.27/main.go b/perf/impl/go/v0.27/main.go index 7ca995361..e3229f99d 100644 --- a/perf/impl/go/v0.27/main.go +++ b/perf/impl/go/v0.27/main.go @@ -5,7 +5,6 @@ import ( "encoding/json" "flag" "fmt" - "os" "time" "github.com/libp2p/go-libp2p" @@ -24,7 +23,6 @@ func main() { // --n-times nTimes := flag.Int("n-times", 0, "N times") flag.Parse() - fmt.Fprintf(os.Stderr, "Hello, playground", *serverAddr, uploadBytes, downloadBytes, nTimes) // var opts []libp2p.Option // if *runServer != "" { @@ -72,7 +70,7 @@ func main() { timesS = append(timesS, float32(t.Nanoseconds())/1_000_000_000) } - latencies := Latencies { + latencies := Latencies{ Latencies: timesS, } From 8229e2bdbc73f0fa0415407d866f1b130c25d098 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 13 Apr 2023 17:57:11 +0200 Subject: [PATCH 026/143] Seed Go secret key from command line and fix server invocation --- perf/impl/go/v0.27/main.go | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/perf/impl/go/v0.27/main.go b/perf/impl/go/v0.27/main.go index e3229f99d..cdd41b838 100644 --- a/perf/impl/go/v0.27/main.go +++ b/perf/impl/go/v0.27/main.go @@ -9,6 +9,7 @@ import ( "github.com/libp2p/go-libp2p" "github.com/libp2p/go-libp2p/core/peer" + "github.com/libp2p/go-libp2p/core/crypto" "github.com/multiformats/go-multiaddr" ) @@ -16,6 +17,8 @@ func main() { runServer := flag.Bool("run-server", false, "Should run as server") // --server-address serverAddr := flag.String("server-address", "", "Server address") + // --secret-key-seed + secretKeySeed := flag.Uint64("secret-key-seed", 0, "Server secret key seed") // --upload-bytes uploadBytes := flag.Int("upload-bytes", 0, "Upload bytes") // --download-bytes @@ -24,12 +27,20 @@ func main() { nTimes := flag.Int("n-times", 0, "N times") flag.Parse() - // var opts []libp2p.Option - // if *runServer != "" { - // opts = append(opts, libp2p.ListenAddrStrings(*runServer)) - // } - h, err := libp2p.New() + var opts []libp2p.Option + if *runServer { + opts = append(opts, libp2p.ListenAddrStrings("/ip4/0.0.0.0/tcp/4001", "/ip4/0.0.0.0/udp/4001/quic-v1")) + + // TODO: Fake identity. For testing only. + priv, _, err := crypto.GenerateEd25519Key(&simpleReader{seed:uint8(*secretKeySeed)}) + if err != nil { + panic(err) + } + opts = append(opts, libp2p.Identity(priv)) + } + + h, err := libp2p.New(opts...) if err != nil { panic(err) } @@ -85,3 +96,14 @@ func main() { type Latencies struct { Latencies []float32 `json:"latencies"` } + +type simpleReader struct { + seed uint8 +} + +func (r *simpleReader) Read(p []byte) (n int, err error) { + for i := range p { + p[i] = r.seed + } + return len(p), nil +} From 90382246ee440969ef55b8e142f023362f25f6e1 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 13 Apr 2023 17:57:54 +0200 Subject: [PATCH 027/143] Start server image based on client image --- perf/runner/src/index.ts | 18 ++++++++++++++++-- perf/terraform/user-data.sh | 2 -- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index 55cab411b..0fc474e80 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -59,6 +59,12 @@ interface ArgsRunBenchmarkAcrossVersions { function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Result[] { const results: Result[] = []; for (const version of versions) { + console.error(`Starting ${version.id} server.`); + const serverCMD = `ssh ec2-user@${args.serverPublicIP} 'docker stop $(docker ps -aq); docker run -d --restart always --network host --entrypoint /app/server mxinden/libp2p-perf@sha256:${version.containerImageID} --secret-key-seed 0'`; + console.error(serverCMD); + const serverSTDOUT = execCommand(serverCMD); + console.error(serverSTDOUT); + for (const transportStack of version.transportStacks) { const latencies = runBenchmark({ clientPublicIP: args.clientPublicIP, @@ -98,6 +104,8 @@ interface Latencies { function runBenchmark(args: ArgsRunBenchmark): Latencies { + console.error(`Starting ${args.transportStack} client.`); + let serverAddress: string; switch (args.transportStack) { @@ -119,13 +127,19 @@ function runBenchmark(args: ArgsRunBenchmark): Latencies { const dockerCMD = `docker run --rm --network host mxinden/libp2p-perf@sha256:${args.dockerImageId} ${binFlags}` const cmd = `ssh ec2-user@${args.clientPublicIP} ${dockerCMD}`; + const stdout = execCommand(cmd); + + const latencies: Latencies = JSON.parse(stdout.toString()); + return latencies; +} + +function execCommand(cmd: string): string { try { const stdout = execSync(cmd, { encoding: 'utf8', stdio: [process.stdin, 'pipe', process.stderr], }); - const latencies: Latencies = JSON.parse(stdout.toString()); - return latencies; + return stdout; } catch (error) { console.error((error as Error).message); process.exit(1); diff --git a/perf/terraform/user-data.sh b/perf/terraform/user-data.sh index e56d4e6fe..cc58fe1ab 100644 --- a/perf/terraform/user-data.sh +++ b/perf/terraform/user-data.sh @@ -5,5 +5,3 @@ sudo yum install docker -y sudo systemctl enable docker sudo systemctl start docker sudo usermod -aG docker ec2-user - -docker run -d --restart always --network host --entrypoint /app/server mxinden/libp2p-perf@sha256:f567b27347a8d222e88f3c0b160e0547023e88aa700dc5e4255d9fcdf3d08eb1 --secret-key-seed 0 From 7ab94c85d850f9d681157ecdbeafd2c68c1880bd Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 13 Apr 2023 17:58:12 +0200 Subject: [PATCH 028/143] Set new golang image --- perf/runner/src/versions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/runner/src/versions.ts b/perf/runner/src/versions.ts index 8f5c793ec..275b1eb8f 100644 --- a/perf/runner/src/versions.ts +++ b/perf/runner/src/versions.ts @@ -12,7 +12,7 @@ export const versions: Array = [ }, { id: "go-master", - containerImageID: "2406b0778d7655b7eac7c0b448b1bf008c2411b7f128e899d894dcc12abb98fd", + containerImageID: "0fb68df50eada9dd10058bd7b6da614f2a31148dc0343be8eb5c7920f7bb4eef", transportStacks: ["tcp", "quic-v1"] }, ] From 24333385107a7bc7b6fb1df833bb5be8e6fbf7c8 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 13 Apr 2023 18:07:02 +0200 Subject: [PATCH 029/143] Bump UDP receive buffer --- perf/terraform/user-data.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/perf/terraform/user-data.sh b/perf/terraform/user-data.sh index cc58fe1ab..e2286e9ae 100644 --- a/perf/terraform/user-data.sh +++ b/perf/terraform/user-data.sh @@ -1,5 +1,8 @@ #!/bin/bash +# Bump UDP receive buffer size. See https://github.com/quic-go/quic-go/wiki/UDP-Receive-Buffer-Size. +sudo sysctl -w net.core.rmem_max=2500000 + sudo yum update -y sudo yum install docker -y sudo systemctl enable docker From 2480f04d07c3f7f531caae5aaf303fe15f2953f6 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 13 Apr 2023 20:06:13 +0200 Subject: [PATCH 030/143] Update to latest rust image using tokio --- perf/runner/src/versions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/runner/src/versions.ts b/perf/runner/src/versions.ts index 275b1eb8f..ef29045da 100644 --- a/perf/runner/src/versions.ts +++ b/perf/runner/src/versions.ts @@ -7,7 +7,7 @@ export type Version = { export const versions: Array = [ { id: "rust-master", - containerImageID: "f567b27347a8d222e88f3c0b160e0547023e88aa700dc5e4255d9fcdf3d08eb1", + containerImageID: "90bd7031f56ef2311659ea79b6e980080063b83ddc6644e7ebd5dbea869a1119", transportStacks: ["tcp", "quic-v1"] }, { From e5d6b5584c80d93128f31cf451238a10a48564f2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 20 Mar 2023 05:29:26 +0000 Subject: [PATCH 031/143] chore: update the link to the interop dashboard [skip ci] --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 57489027c..41690766f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Interoperabilty and end to end test-plans for libp2p -[![Interop Dashboard](https://github.com/libp2p/test-plans/workflows/libp2p%20multidimensional%20interop%20test/badge.svg?branch=master)](https://github.com/libp2p/test-plans/actions/runs/4380246659/attempts/1#summary-11897369015) +[![Interop Dashboard](https://github.com/libp2p/test-plans/workflows/libp2p%20multidimensional%20interop%20test/badge.svg?branch=master)](https://github.com/libp2p/test-plans/actions/runs/4380246659/attempts/2#summary-12118895554) [![Made by Protocol Labs](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://protocol.ai) ![Go version](https://img.shields.io/badge/go-%3E%3D1.14.0-blue.svg?style=flat-square) From ab88ee699ac370c50851d3f3e63b613f60f2b4dd Mon Sep 17 00:00:00 2001 From: Max Inden Date: Tue, 4 Apr 2023 13:10:30 +0200 Subject: [PATCH 032/143] fix(versions): disable webrtc tests (#160) This commit disables the WebRTC tests for rust-libp2p v0.50.0 and v0.51.0 and chromium-js v0.41.0 and v0.42.0. Neither of these support the new `/webrtc-direct` (see https://github.com/multiformats/multiaddr/pull/150/#issuecomment-1468791586 for context on rename). The missing support is blocking https://github.com/libp2p/rust-libp2p/pull/3688 namely to upgrade to using `/webrtc-direct`. (Note that this is only blocking CI. Users can already use `/webrtc-direct` with the latest released rust-libp2p.) We will backport `/webrtc-direct` support to the rust-libp2p `v0.51.0` interop binary and then re-enable it here. Instead of disabling the versions with missing support for `/webrtc-direct` we could as well patch our interoperability test logic. For the sake of simplicity, I am proposing simply disabling the versions for now. --- multidim-interop/versions.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/multidim-interop/versions.ts b/multidim-interop/versions.ts index 1f1c4bae1..8987367ca 100644 --- a/multidim-interop/versions.ts +++ b/multidim-interop/versions.ts @@ -40,14 +40,14 @@ export const versions: Array = [ { id: "rust-v0.50.0", containerImageID: rustv050.imageID, - transports: ["ws", "tcp", "quic-v1", "webrtc"], + transports: ["ws", "tcp", "quic-v1"], secureChannels: ["tls", "noise"], muxers: ["mplex", "yamux"], }, { id: "rust-v0.51.0", containerImageID: rustv051.imageID, - transports: ["ws", "tcp", "quic-v1", "webrtc"], + transports: ["ws", "tcp", "quic-v1"], secureChannels: ["tls", "noise"], muxers: ["mplex", "yamux"], }, @@ -68,14 +68,14 @@ export const versions: Array = [ { id: "chromium-js-v0.41.0", containerImageID: chromiumJsV041.imageID, - transports: [{ name: "webtransport", onlyDial: true }, { name: "webrtc", onlyDial: true }], + transports: [{ name: "webtransport", onlyDial: true }], secureChannels: [], muxers: [] }, { id: "chromium-js-v0.42.0", containerImageID: chromiumJsV042.imageID, - transports: [{ name: "webtransport", onlyDial: true }, { name: "webrtc", onlyDial: true }, { name: "wss", onlyDial: true }], + transports: [{ name: "webtransport", onlyDial: true }, { name: "wss", onlyDial: true }], secureChannels: ["noise"], muxers: ["mplex", "yamux"] }, From f29026cd00dc5678818919f41bbc23ec022a3578 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 4 Apr 2023 11:59:58 +0000 Subject: [PATCH 033/143] chore: update the link to the interop dashboard [skip ci] --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 41690766f..9c0b7ed06 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Interoperabilty and end to end test-plans for libp2p -[![Interop Dashboard](https://github.com/libp2p/test-plans/workflows/libp2p%20multidimensional%20interop%20test/badge.svg?branch=master)](https://github.com/libp2p/test-plans/actions/runs/4380246659/attempts/2#summary-12118895554) +[![Interop Dashboard](https://github.com/libp2p/test-plans/workflows/libp2p%20multidimensional%20interop%20test/badge.svg?branch=master)](https://github.com/libp2p/test-plans/actions/runs/4607052629/attempts/1#summary-12505292780) [![Made by Protocol Labs](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://protocol.ai) ![Go version](https://img.shields.io/badge/go-%3E%3D1.14.0-blue.svg?style=flat-square) From 87be6b72fbb4263d554eb722342b45b29fdd5716 Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Sat, 8 Apr 2023 10:53:38 -0700 Subject: [PATCH 034/143] Fix: Correctly abort process on timeout (#162) * Pass in abort controller signal * Rearrange --- multidim-interop/src/compose-runner.ts | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/multidim-interop/src/compose-runner.ts b/multidim-interop/src/compose-runner.ts index 2ad9982d0..b4e9e2866 100644 --- a/multidim-interop/src/compose-runner.ts +++ b/multidim-interop/src/compose-runner.ts @@ -8,6 +8,7 @@ import { ComposeSpecification, PropertiesServices } from "../compose-spec/compos import { stringify } from 'yaml'; const exec = util.promisify(execStd); +const timeoutSecs = 3 * 60 export type RunOpts = { up: { @@ -43,14 +44,10 @@ export async function run(namespace: string, compose: ComposeSpecification, opts } try { - const timeoutSecs = 3 * 60 - let timeoutId - const { stdout, stderr } = - (await Promise.race([ - exec(`docker compose -f ${path.join(dir, "compose.yaml")} up ${upFlags.join(" ")}`), - // Timeout - uses any type because this will only reject the promise. - new Promise((resolve, reject) => { timeoutId = setTimeout(() => reject("Timeout"), 1000 * timeoutSecs) }) - ])) + const controller = new AbortController(); + const timeoutId = setTimeout(() => controller.abort(), 1000 * timeoutSecs) + const { signal } = controller; + const { stdout, stderr } = await exec(`docker compose -f ${path.join(dir, "compose.yaml")} up ${upFlags.join(" ")}`, { signal }) clearTimeout(timeoutId) const testResults = stdout.match(/.*dialer.*({.*)/) if (testResults === null || testResults.length < 2) { From aa227bffa67a7d8d9f749d91620e9b5e9940e723 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 8 Apr 2023 18:28:24 +0000 Subject: [PATCH 035/143] chore: update the link to the interop dashboard [skip ci] --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9c0b7ed06..b2c8748db 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Interoperabilty and end to end test-plans for libp2p -[![Interop Dashboard](https://github.com/libp2p/test-plans/workflows/libp2p%20multidimensional%20interop%20test/badge.svg?branch=master)](https://github.com/libp2p/test-plans/actions/runs/4607052629/attempts/1#summary-12505292780) +[![Interop Dashboard](https://github.com/libp2p/test-plans/workflows/libp2p%20multidimensional%20interop%20test/badge.svg?branch=master)](https://github.com/libp2p/test-plans/actions/runs/4646394736/attempts/1#summary-12609764204) [![Made by Protocol Labs](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://protocol.ai) ![Go version](https://img.shields.io/badge/go-%3E%3D1.14.0-blue.svg?style=flat-square) From 61ad33a9585de29f840651f34e2a0eb75a6e3a00 Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Sat, 8 Apr 2023 12:31:25 -0700 Subject: [PATCH 036/143] Sanitize name before saving to compose file (#164) --- multidim-interop/src/compose-runner.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/multidim-interop/src/compose-runner.ts b/multidim-interop/src/compose-runner.ts index b4e9e2866..ee32ea120 100644 --- a/multidim-interop/src/compose-runner.ts +++ b/multidim-interop/src/compose-runner.ts @@ -33,7 +33,9 @@ export async function run(namespace: string, compose: ComposeSpecification, opts await fs.mkdir(dir, { recursive: true }) // Create compose.yaml file - await fs.writeFile(path.join(dir, "compose.yaml"), stringify(compose)) + // Some docker compose environments don't like the name field to have special characters + const sanitizedComposeName = compose?.name.replace(/[^a-zA-Z0-9_-]/g, "_") + await fs.writeFile(path.join(dir, "compose.yaml"), stringify({...compose, name: sanitizedComposeName})) const upFlags: Array = [] if (opts.up.exitCodeFrom) { @@ -66,4 +68,4 @@ export async function run(namespace: string, compose: ComposeSpecification, opts } await fs.rm(dir, { recursive: true, force: true }) } -} \ No newline at end of file +} From 31349d3080d0bfed27825c28165d68e14f27fc23 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 8 Apr 2023 20:03:45 +0000 Subject: [PATCH 037/143] chore: update the link to the interop dashboard [skip ci] --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b2c8748db..f0d5a89b7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Interoperabilty and end to end test-plans for libp2p -[![Interop Dashboard](https://github.com/libp2p/test-plans/workflows/libp2p%20multidimensional%20interop%20test/badge.svg?branch=master)](https://github.com/libp2p/test-plans/actions/runs/4646394736/attempts/1#summary-12609764204) +[![Interop Dashboard](https://github.com/libp2p/test-plans/workflows/libp2p%20multidimensional%20interop%20test/badge.svg?branch=master)](https://github.com/libp2p/test-plans/actions/runs/4646774898/attempts/1#summary-12610482600) [![Made by Protocol Labs](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://protocol.ai) ![Go version](https://img.shields.io/badge/go-%3E%3D1.14.0-blue.svg?style=flat-square) From e7728b6e61015a4447ee26477f4e497057baa9f6 Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Tue, 11 Apr 2023 11:29:32 -0700 Subject: [PATCH 038/143] Cache images slightly differently (#165) --- .../actions/run-interop-ping-test/action.yml | 16 +- .gitignore | 5 +- multidim-interop/Makefile | 8 +- multidim-interop/README.md | 24 ++- multidim-interop/helpers/cache.ts | 148 ++++++++++++++++++ multidim-interop/{ => impl}/go/.gitignore | 0 .../{ => impl}/go/v0.22/Dockerfile | 0 multidim-interop/{ => impl}/go/v0.22/Makefile | 4 +- multidim-interop/{ => impl}/go/v0.22/go.mod | 0 multidim-interop/{ => impl}/go/v0.22/go.sum | 0 multidim-interop/{ => impl}/go/v0.22/main.go | 0 .../{ => impl}/go/v0.23/Dockerfile | 0 multidim-interop/{ => impl}/go/v0.23/Makefile | 4 +- multidim-interop/{ => impl}/go/v0.23/go.mod | 0 multidim-interop/{ => impl}/go/v0.23/go.sum | 0 multidim-interop/{ => impl}/go/v0.23/main.go | 0 .../{ => impl}/go/v0.24/Dockerfile | 0 multidim-interop/{ => impl}/go/v0.24/Makefile | 4 +- multidim-interop/{ => impl}/go/v0.24/go.mod | 0 multidim-interop/{ => impl}/go/v0.24/go.sum | 0 multidim-interop/{ => impl}/go/v0.24/main.go | 0 multidim-interop/{ => impl}/go/v0.25/Makefile | 4 +- multidim-interop/{ => impl}/go/v0.26/Makefile | 4 +- multidim-interop/impl/js/.gitignore | 1 + .../{ => impl}/js/v0.41/.aegir.js | 0 .../{ => impl}/js/v0.41/.dockerignore | 0 .../{ => impl}/js/v0.41/.gitignore | 0 .../impl/js/v0.41/ChromiumDockerfile | 6 + .../js/v0.41/Dockerfile} | 9 +- multidim-interop/impl/js/v0.41/Makefile | 23 +++ .../{ => impl}/js/v0.41/package-lock.json | 0 .../{ => impl}/js/v0.41/package.json | 0 .../{ => impl}/js/v0.41/src/index.ts | 0 .../{ => impl}/js/v0.41/test/ping.spec.ts | 0 .../{ => impl}/js/v0.41/tsconfig.json | 0 .../{ => impl}/js/v0.42/.aegir.js | 0 .../{ => impl}/js/v0.42/.dockerignore | 0 .../{ => impl}/js/v0.42/.gitignore | 0 .../impl/js/v0.42/ChromiumDockerfile | 6 + .../js/v0.42/Dockerfile} | 9 +- multidim-interop/impl/js/v0.42/Makefile | 23 +++ .../{ => impl}/js/v0.42/package-lock.json | 0 .../{ => impl}/js/v0.42/package.json | 0 .../{ => impl}/js/v0.42/src/index.ts | 0 .../{ => impl}/js/v0.42/test/ping.spec.ts | 0 .../{ => impl}/js/v0.42/tsconfig.json | 0 multidim-interop/{ => impl}/nim/mainv1.nim | 0 .../{ => impl}/nim/v1.0/.gitignore | 0 .../{ => impl}/nim/v1.0/Dockerfile | 0 multidim-interop/{ => impl}/nim/v1.0/Makefile | 2 +- multidim-interop/{ => impl}/rust/.gitignore | 0 .../{ => impl}/rust/v0.48/Makefile | 2 +- .../{ => impl}/rust/v0.49/Makefile | 2 +- .../{ => impl}/rust/v0.50/Makefile | 2 +- .../{ => impl}/rust/v0.51/Makefile | 2 +- multidim-interop/js/v0.41/Dockerfile | 17 -- multidim-interop/js/v0.41/Makefile | 19 --- multidim-interop/js/v0.42/Dockerfile | 17 -- multidim-interop/js/v0.42/Makefile | 19 --- multidim-interop/package-lock.json | 14 ++ multidim-interop/package.json | 4 +- multidim-interop/versions.ts | 26 +-- 62 files changed, 304 insertions(+), 120 deletions(-) create mode 100755 multidim-interop/helpers/cache.ts rename multidim-interop/{ => impl}/go/.gitignore (100%) rename multidim-interop/{ => impl}/go/v0.22/Dockerfile (100%) rename multidim-interop/{ => impl}/go/v0.22/Makefile (72%) rename multidim-interop/{ => impl}/go/v0.22/go.mod (100%) rename multidim-interop/{ => impl}/go/v0.22/go.sum (100%) rename multidim-interop/{ => impl}/go/v0.22/main.go (100%) rename multidim-interop/{ => impl}/go/v0.23/Dockerfile (100%) rename multidim-interop/{ => impl}/go/v0.23/Makefile (72%) rename multidim-interop/{ => impl}/go/v0.23/go.mod (100%) rename multidim-interop/{ => impl}/go/v0.23/go.sum (100%) rename multidim-interop/{ => impl}/go/v0.23/main.go (100%) rename multidim-interop/{ => impl}/go/v0.24/Dockerfile (100%) rename multidim-interop/{ => impl}/go/v0.24/Makefile (72%) rename multidim-interop/{ => impl}/go/v0.24/go.mod (100%) rename multidim-interop/{ => impl}/go/v0.24/go.sum (100%) rename multidim-interop/{ => impl}/go/v0.24/main.go (100%) rename multidim-interop/{ => impl}/go/v0.25/Makefile (87%) rename multidim-interop/{ => impl}/go/v0.26/Makefile (87%) create mode 100644 multidim-interop/impl/js/.gitignore rename multidim-interop/{ => impl}/js/v0.41/.aegir.js (100%) rename multidim-interop/{ => impl}/js/v0.41/.dockerignore (100%) rename multidim-interop/{ => impl}/js/v0.41/.gitignore (100%) create mode 100644 multidim-interop/impl/js/v0.41/ChromiumDockerfile rename multidim-interop/{js/v0.42/ChromiumDockerfile => impl/js/v0.41/Dockerfile} (56%) create mode 100644 multidim-interop/impl/js/v0.41/Makefile rename multidim-interop/{ => impl}/js/v0.41/package-lock.json (100%) rename multidim-interop/{ => impl}/js/v0.41/package.json (100%) rename multidim-interop/{ => impl}/js/v0.41/src/index.ts (100%) rename multidim-interop/{ => impl}/js/v0.41/test/ping.spec.ts (100%) rename multidim-interop/{ => impl}/js/v0.41/tsconfig.json (100%) rename multidim-interop/{ => impl}/js/v0.42/.aegir.js (100%) rename multidim-interop/{ => impl}/js/v0.42/.dockerignore (100%) rename multidim-interop/{ => impl}/js/v0.42/.gitignore (100%) create mode 100644 multidim-interop/impl/js/v0.42/ChromiumDockerfile rename multidim-interop/{js/v0.41/ChromiumDockerfile => impl/js/v0.42/Dockerfile} (56%) create mode 100644 multidim-interop/impl/js/v0.42/Makefile rename multidim-interop/{ => impl}/js/v0.42/package-lock.json (100%) rename multidim-interop/{ => impl}/js/v0.42/package.json (100%) rename multidim-interop/{ => impl}/js/v0.42/src/index.ts (100%) rename multidim-interop/{ => impl}/js/v0.42/test/ping.spec.ts (100%) rename multidim-interop/{ => impl}/js/v0.42/tsconfig.json (100%) rename multidim-interop/{ => impl}/nim/mainv1.nim (100%) rename multidim-interop/{ => impl}/nim/v1.0/.gitignore (100%) rename multidim-interop/{ => impl}/nim/v1.0/Dockerfile (100%) rename multidim-interop/{ => impl}/nim/v1.0/Makefile (91%) rename multidim-interop/{ => impl}/rust/.gitignore (100%) rename multidim-interop/{ => impl}/rust/v0.48/Makefile (90%) rename multidim-interop/{ => impl}/rust/v0.49/Makefile (90%) rename multidim-interop/{ => impl}/rust/v0.50/Makefile (90%) rename multidim-interop/{ => impl}/rust/v0.51/Makefile (90%) delete mode 100644 multidim-interop/js/v0.41/Dockerfile delete mode 100644 multidim-interop/js/v0.41/Makefile delete mode 100644 multidim-interop/js/v0.42/Dockerfile delete mode 100644 multidim-interop/js/v0.42/Makefile diff --git a/.github/actions/run-interop-ping-test/action.yml b/.github/actions/run-interop-ping-test/action.yml index ed99658e4..005377afe 100644 --- a/.github/actions/run-interop-ping-test/action.yml +++ b/.github/actions/run-interop-ping-test/action.yml @@ -34,6 +34,12 @@ runs: echo "AWS_REGION=${{ inputs.aws-region }}" >> $GITHUB_ENV shell: bash + - name: Configure AWS credentials for S3 build cache + if: inputs.s3-access-key-id != '' && inputs.s3-secret-access-key != '' + run: | + echo "PUSH_CACHE=true" >> $GITHUB_ENV + shell: bash + - name: Configure AWS credentials for S3 build cache if: inputs.s3-access-key-id != '' && inputs.s3-secret-access-key != '' uses: aws-actions/configure-aws-credentials@v1 @@ -63,9 +69,15 @@ runs: run: npm ci shell: bash - - name: Build images + - name: Load cache and build + working-directory: ${{ steps.find-workdir.outputs.WORK_DIR }} + run: npm run cache -- load + shell: bash + + - name: Push the image cache + if: env.PUSH_CACHE == 'true' working-directory: ${{ steps.find-workdir.outputs.WORK_DIR }} - run: make + run: npm run cache -- push shell: bash - name: Run the test diff --git a/.gitignore b/.gitignore index 4d8def8e9..ff7f4dd46 100644 --- a/.gitignore +++ b/.gitignore @@ -42,4 +42,7 @@ __pycache__/ ### NodeJS -node_modules \ No newline at end of file +node_modules + +# ignore system files +.DS_Store diff --git a/multidim-interop/Makefile b/multidim-interop/Makefile index 3e2b6d085..c0c9f6f05 100644 --- a/multidim-interop/Makefile +++ b/multidim-interop/Makefile @@ -1,7 +1,7 @@ -GO_SUBDIRS := $(wildcard go/*/.) -JS_SUBDIRS := $(wildcard js/*/.) -RUST_SUBDIRS := $(wildcard rust/*/.) -NIM_SUBDIRS := $(wildcard nim/*/.) +GO_SUBDIRS := $(wildcard impl/go/*/.) +JS_SUBDIRS := $(wildcard impl/js/*/.) +RUST_SUBDIRS := $(wildcard impl/rust/*/.) +NIM_SUBDIRS := $(wildcard impl/nim/*/.) all: $(GO_SUBDIRS) $(JS_SUBDIRS) $(RUST_SUBDIRS) $(NIM_SUBDIRS) $(JS_SUBDIRS): diff --git a/multidim-interop/README.md b/multidim-interop/README.md index 6fa5d1023..4c8c7c086 100644 --- a/multidim-interop/README.md +++ b/multidim-interop/README.md @@ -1,11 +1,16 @@ # Interoperability test This tests that different libp2p implementations can communicate with each other -on each of their supported capabilites. +on each of their supported capabilities. Each version of libp2p is defined in `versions.ts`. There the version defines its capabilities along with the id of its container image. +This repo and tests adhere to these constraints: +1. Be reproducible for a given commit. +2. Caching is an optimization. Things should be fine without it. +3. If we have a cache hit, be fast. + # Test spec The implementation is run in a container and is passed parameters via @@ -55,4 +60,19 @@ The listener should emit all diagnostic logs to `stderr`. process when the dialer finishes. 5. If the timeout is hit, exit with a non-zero error code. -On error, the listener should return a non-zero exit code. \ No newline at end of file +On error, the listener should return a non-zero exit code. + +# Caching + +The caching strategy is opinionated in an attempt to make things simpler and +faster. Here's how it works: + +1. We cache the result of image.json in each implementation folder. +2. The cache key is derived from the hashes of the files in the implementation folder. +3. When loading from cache, if we have a cache hit, we load the image into + docker and create the image.json file. We then call `make -o image.json` to + allow the implementation to build any extra things from cache (e.g. JS-libp2p + builds browser images from the same base as node). If we have a cache miss, + we simply call `make` and build from scratch. +4. When we push the cache we use the cache-key along with the docker platform + (arm64 vs x86_64). diff --git a/multidim-interop/helpers/cache.ts b/multidim-interop/helpers/cache.ts new file mode 100755 index 000000000..83cb44c7f --- /dev/null +++ b/multidim-interop/helpers/cache.ts @@ -0,0 +1,148 @@ +const AWS_BUCKET = process.env.AWS_BUCKET || 'libp2p-by-tf-aws-bootstrap'; +const scriptDir = __dirname; + +import * as crypto from 'crypto'; +import * as fs from 'fs'; +import * as path from 'path'; +import * as child_process from 'child_process'; +import ignore, { Ignore } from 'ignore' + +const multidimInteropDir = path.join(scriptDir, '..') +const arch = child_process.execSync('docker info -f "{{.Architecture}}"').toString().trim(); + +enum Mode { + LoadCache = 1, + PushCache, +} +const modeStr = process.argv[2]; +let mode: Mode +switch (modeStr) { + case "push": + mode = Mode.PushCache + break + case "load": + mode = Mode.LoadCache + break + default: + throw new Error(`Unknown mode: ${modeStr}`) +} + +(async () => { + for (const implFamily of fs.readdirSync(path.join(multidimInteropDir, 'impl'))) { + const ig = ignore() + + addGitignoreIfPresent(ig, path.join(multidimInteropDir, ".gitignore")) + addGitignoreIfPresent(ig, path.join(multidimInteropDir, "..", ".gitignore")) + + const implFamilyDir = path.join(multidimInteropDir, 'impl', implFamily) + addGitignoreIfPresent(ig, path.join(implFamilyDir, ".gitignore")) + + for (const impl of fs.readdirSync(implFamilyDir)) { + const implFolder = fs.realpathSync(path.join(implFamilyDir, impl)); + if (!fs.statSync(implFolder).isDirectory()) { + continue + } + + addGitignoreIfPresent(ig, path.join(implFolder, ".gitignore")) + + // Get all the files in the implFolder: + let files = walkDir(implFolder) + // Turn them into relative paths: + files = files.map(f => f.replace(implFolder + "/", "")) + // Ignore files that are in the .gitignore: + files = files.filter(ig.createFilter()) + // Sort them to be deterministic + files = files.sort() + + console.log(implFolder) + console.log("Files:", files) + + // Turn them back into absolute paths: + files = files.map(f => path.join(implFolder, f)) + const cacheKey = await hashFiles(files) + console.log("Cache key:", cacheKey) + + if (mode == Mode.PushCache) { + console.log("Pushing cache") + try { + const res = await fetch(`https://s3.amazonaws.com/${AWS_BUCKET}/imageCache/${cacheKey}-${arch}.tar.gz`, { method: "HEAD" }) + if (res.ok) { + console.log("Cache already exists") + } else { + // Read image id from image.json + const imageID = JSON.parse(fs.readFileSync(path.join(implFolder, 'image.json')).toString()).imageID; + console.log(`Pushing cache for ${impl}: ${imageID}`) + child_process.execSync(`docker image save ${imageID} | gzip | aws s3 cp - s3://${AWS_BUCKET}/imageCache/${cacheKey}-${arch}.tar.gz`); + } + } catch (e) { + console.log("Failed to push image cache:", e) + } + } else if (mode == Mode.LoadCache) { + if (fs.existsSync(path.join(implFolder, 'image.json'))) { + console.log("Already built") + continue + } + console.log("Loading cache") + let cacheHit = false + try { + // Check if the cache exists + const res = await fetch(`https://s3.amazonaws.com/${AWS_BUCKET}/imageCache/${cacheKey}-${arch}.tar.gz`, { method: "HEAD" }) + if (res.ok) { + const dockerLoadedMsg = child_process.execSync(`curl https://s3.amazonaws.com/${AWS_BUCKET}/imageCache/${cacheKey}-${arch}.tar.gz | docker image load`).toString(); + const loadedImageId = dockerLoadedMsg.match(/Loaded image( ID)?: (.*)/)[2]; + if (loadedImageId) { + console.log(`Cache hit for ${loadedImageId}`); + fs.writeFileSync(path.join(implFolder, 'image.json'), JSON.stringify({ imageID: loadedImageId }) + "\n"); + cacheHit = true + } + } else { + console.log("Cache not found") + } + } catch (e) { + console.log("Cache not found:", e) + } + + if (cacheHit) { + console.log("Building any remaining things from image.json") + // We're building using -o image.json. This tells make to + // not bother building image.json or anything it depends on. + child_process.execSync(`make -o image.json`, { cwd: implFolder }) + } else { + console.log("No cache, building from scratch") + child_process.execSync(`make`, { cwd: implFolder }) + } + } + } + } +})() + +function walkDir(dir: string) { + let results = []; + fs.readdirSync(dir).forEach(f => { + let dirPath = path.join(dir, f); + let isDirectory = fs.statSync(dirPath).isDirectory(); + results = isDirectory ? results.concat(walkDir(dirPath)) : results.concat(path.join(dir, f)); + }); + return results; +}; + +async function hashFiles(files: string[]): Promise { + const fileHashes = await Promise.all( + files.map(async (file) => { + const data = await fs.promises.readFile(file); + return crypto.createHash('sha256').update(data).digest('hex'); + }) + ); + return crypto.createHash('sha256').update(fileHashes.join('')).digest('hex'); +} + +function addGitignoreIfPresent(ig: Ignore, pathStr: string): boolean { + try { + if (fs.statSync(pathStr).isFile()) { + ig.add(fs.readFileSync(pathStr).toString()) + } + return true + } catch { + return false + } +} diff --git a/multidim-interop/go/.gitignore b/multidim-interop/impl/go/.gitignore similarity index 100% rename from multidim-interop/go/.gitignore rename to multidim-interop/impl/go/.gitignore diff --git a/multidim-interop/go/v0.22/Dockerfile b/multidim-interop/impl/go/v0.22/Dockerfile similarity index 100% rename from multidim-interop/go/v0.22/Dockerfile rename to multidim-interop/impl/go/v0.22/Dockerfile diff --git a/multidim-interop/go/v0.22/Makefile b/multidim-interop/impl/go/v0.22/Makefile similarity index 72% rename from multidim-interop/go/v0.22/Makefile rename to multidim-interop/impl/go/v0.22/Makefile index 9f0d96c70..ec4f38e55 100644 --- a/multidim-interop/go/v0.22/Makefile +++ b/multidim-interop/impl/go/v0.22/Makefile @@ -1,11 +1,11 @@ image_name := go-v0.22 image.json: Dockerfile main.go go.mod go.sum - IMAGE_NAME=${image_name} ../../dockerBuildWrapper.sh . + IMAGE_NAME=${image_name} ../../../dockerBuildWrapper.sh . docker image inspect ${image_name} -f "{{.Id}}" | \ xargs -I {} echo "{\"imageID\": \"{}\"}" > $@ .PHONY: clean clean: - rm image.json \ No newline at end of file + rm image.json diff --git a/multidim-interop/go/v0.22/go.mod b/multidim-interop/impl/go/v0.22/go.mod similarity index 100% rename from multidim-interop/go/v0.22/go.mod rename to multidim-interop/impl/go/v0.22/go.mod diff --git a/multidim-interop/go/v0.22/go.sum b/multidim-interop/impl/go/v0.22/go.sum similarity index 100% rename from multidim-interop/go/v0.22/go.sum rename to multidim-interop/impl/go/v0.22/go.sum diff --git a/multidim-interop/go/v0.22/main.go b/multidim-interop/impl/go/v0.22/main.go similarity index 100% rename from multidim-interop/go/v0.22/main.go rename to multidim-interop/impl/go/v0.22/main.go diff --git a/multidim-interop/go/v0.23/Dockerfile b/multidim-interop/impl/go/v0.23/Dockerfile similarity index 100% rename from multidim-interop/go/v0.23/Dockerfile rename to multidim-interop/impl/go/v0.23/Dockerfile diff --git a/multidim-interop/go/v0.23/Makefile b/multidim-interop/impl/go/v0.23/Makefile similarity index 72% rename from multidim-interop/go/v0.23/Makefile rename to multidim-interop/impl/go/v0.23/Makefile index fce12d5e7..5838eb37d 100644 --- a/multidim-interop/go/v0.23/Makefile +++ b/multidim-interop/impl/go/v0.23/Makefile @@ -1,11 +1,11 @@ image_name := go-v0.23 image.json: Dockerfile main.go go.mod go.sum - IMAGE_NAME=${image_name} ../../dockerBuildWrapper.sh . + IMAGE_NAME=${image_name} ../../../dockerBuildWrapper.sh . docker image inspect ${image_name} -f "{{.Id}}" | \ xargs -I {} echo "{\"imageID\": \"{}\"}" > $@ .PHONY: clean clean: - rm image.json \ No newline at end of file + rm image.json diff --git a/multidim-interop/go/v0.23/go.mod b/multidim-interop/impl/go/v0.23/go.mod similarity index 100% rename from multidim-interop/go/v0.23/go.mod rename to multidim-interop/impl/go/v0.23/go.mod diff --git a/multidim-interop/go/v0.23/go.sum b/multidim-interop/impl/go/v0.23/go.sum similarity index 100% rename from multidim-interop/go/v0.23/go.sum rename to multidim-interop/impl/go/v0.23/go.sum diff --git a/multidim-interop/go/v0.23/main.go b/multidim-interop/impl/go/v0.23/main.go similarity index 100% rename from multidim-interop/go/v0.23/main.go rename to multidim-interop/impl/go/v0.23/main.go diff --git a/multidim-interop/go/v0.24/Dockerfile b/multidim-interop/impl/go/v0.24/Dockerfile similarity index 100% rename from multidim-interop/go/v0.24/Dockerfile rename to multidim-interop/impl/go/v0.24/Dockerfile diff --git a/multidim-interop/go/v0.24/Makefile b/multidim-interop/impl/go/v0.24/Makefile similarity index 72% rename from multidim-interop/go/v0.24/Makefile rename to multidim-interop/impl/go/v0.24/Makefile index f9b3736e3..a69360758 100644 --- a/multidim-interop/go/v0.24/Makefile +++ b/multidim-interop/impl/go/v0.24/Makefile @@ -1,11 +1,11 @@ image_name := go-v0.24 image.json: Dockerfile main.go go.mod go.sum - IMAGE_NAME=${image_name} ../../dockerBuildWrapper.sh . + IMAGE_NAME=${image_name} ../../../dockerBuildWrapper.sh . docker image inspect ${image_name} -f "{{.Id}}" | \ xargs -I {} echo "{\"imageID\": \"{}\"}" > $@ .PHONY: clean clean: - rm image.json \ No newline at end of file + rm image.json diff --git a/multidim-interop/go/v0.24/go.mod b/multidim-interop/impl/go/v0.24/go.mod similarity index 100% rename from multidim-interop/go/v0.24/go.mod rename to multidim-interop/impl/go/v0.24/go.mod diff --git a/multidim-interop/go/v0.24/go.sum b/multidim-interop/impl/go/v0.24/go.sum similarity index 100% rename from multidim-interop/go/v0.24/go.sum rename to multidim-interop/impl/go/v0.24/go.sum diff --git a/multidim-interop/go/v0.24/main.go b/multidim-interop/impl/go/v0.24/main.go similarity index 100% rename from multidim-interop/go/v0.24/main.go rename to multidim-interop/impl/go/v0.24/main.go diff --git a/multidim-interop/go/v0.25/Makefile b/multidim-interop/impl/go/v0.25/Makefile similarity index 87% rename from multidim-interop/go/v0.25/Makefile rename to multidim-interop/impl/go/v0.25/Makefile index 6eb6526d1..785abaa3e 100644 --- a/multidim-interop/go/v0.25/Makefile +++ b/multidim-interop/impl/go/v0.25/Makefile @@ -4,7 +4,7 @@ commitSha := 5741b6c9bbcc1185bdf94d816dca966b37ce61ff all: image.json image.json: go-libp2p-${commitSha} - cd go-libp2p-${commitSha} && IMAGE_NAME=${image_name} ../../../dockerBuildWrapper.sh -f test-plans/PingDockerfile . + cd go-libp2p-${commitSha} && IMAGE_NAME=${image_name} ../../../../dockerBuildWrapper.sh -f test-plans/PingDockerfile . docker image inspect ${image_name} -f "{{.Id}}" | \ xargs -I {} echo "{\"imageID\": \"{}\"}" > $@ @@ -17,4 +17,4 @@ go-libp2p-${commitSha}.zip: clean: rm image.json rm go-libp2p-*.zip - rm -rf go-libp2p-* \ No newline at end of file + rm -rf go-libp2p-* diff --git a/multidim-interop/go/v0.26/Makefile b/multidim-interop/impl/go/v0.26/Makefile similarity index 87% rename from multidim-interop/go/v0.26/Makefile rename to multidim-interop/impl/go/v0.26/Makefile index c14ed9357..1dbcf787a 100644 --- a/multidim-interop/go/v0.26/Makefile +++ b/multidim-interop/impl/go/v0.26/Makefile @@ -4,7 +4,7 @@ commitSha := 59a14cf3194d5d057c45cb1dbc7b1af3a116bc7a all: image.json image.json: go-libp2p-${commitSha} - cd go-libp2p-${commitSha} && IMAGE_NAME=${image_name} ../../../dockerBuildWrapper.sh -f test-plans/PingDockerfile . + cd go-libp2p-${commitSha} && IMAGE_NAME=${image_name} ../../../../dockerBuildWrapper.sh -f test-plans/PingDockerfile . docker image inspect ${image_name} -f "{{.Id}}" | \ xargs -I {} echo "{\"imageID\": \"{}\"}" > $@ @@ -17,4 +17,4 @@ go-libp2p-${commitSha}.zip: clean: rm image.json rm go-libp2p-*.zip - rm -rf go-libp2p-* \ No newline at end of file + rm -rf go-libp2p-* diff --git a/multidim-interop/impl/js/.gitignore b/multidim-interop/impl/js/.gitignore new file mode 100644 index 000000000..0842bf478 --- /dev/null +++ b/multidim-interop/impl/js/.gitignore @@ -0,0 +1 @@ +*image.json diff --git a/multidim-interop/js/v0.41/.aegir.js b/multidim-interop/impl/js/v0.41/.aegir.js similarity index 100% rename from multidim-interop/js/v0.41/.aegir.js rename to multidim-interop/impl/js/v0.41/.aegir.js diff --git a/multidim-interop/js/v0.41/.dockerignore b/multidim-interop/impl/js/v0.41/.dockerignore similarity index 100% rename from multidim-interop/js/v0.41/.dockerignore rename to multidim-interop/impl/js/v0.41/.dockerignore diff --git a/multidim-interop/js/v0.41/.gitignore b/multidim-interop/impl/js/v0.41/.gitignore similarity index 100% rename from multidim-interop/js/v0.41/.gitignore rename to multidim-interop/impl/js/v0.41/.gitignore diff --git a/multidim-interop/impl/js/v0.41/ChromiumDockerfile b/multidim-interop/impl/js/v0.41/ChromiumDockerfile new file mode 100644 index 000000000..c522c85db --- /dev/null +++ b/multidim-interop/impl/js/v0.41/ChromiumDockerfile @@ -0,0 +1,6 @@ +# syntax=docker/dockerfile:1 + +ARG BASE_IMAGE +FROM $BASE_IMAGE + +ENTRYPOINT [ "npm", "test", "--", "--build", "false", "--types", "false", "-t", "browser" ] diff --git a/multidim-interop/js/v0.42/ChromiumDockerfile b/multidim-interop/impl/js/v0.41/Dockerfile similarity index 56% rename from multidim-interop/js/v0.42/ChromiumDockerfile rename to multidim-interop/impl/js/v0.41/Dockerfile index de8c51bd0..4c8d3a507 100644 --- a/multidim-interop/js/v0.42/ChromiumDockerfile +++ b/multidim-interop/impl/js/v0.41/Dockerfile @@ -1,15 +1,14 @@ # syntax=docker/dockerfile:1 - +# Using playwright so that we have the same base across NodeJS + Browser tests FROM mcr.microsoft.com/playwright WORKDIR /app - -COPY package*.json . +COPY package*.json ./ RUN npm ci -# Install browsers +# Install browsers, Needed for the browser tests, but we do it here so we have the same base RUN ./node_modules/.bin/playwright install COPY tsconfig.json . @@ -19,4 +18,4 @@ COPY src ./src RUN npm run build -ENTRYPOINT [ "npm", "test", "--", "--build", "false", "--types", "false", "-t", "browser" ] \ No newline at end of file +ENTRYPOINT [ "npm", "test", "--", "--build", "false", "--types", "false", "-t", "node" ] diff --git a/multidim-interop/impl/js/v0.41/Makefile b/multidim-interop/impl/js/v0.41/Makefile new file mode 100644 index 000000000..06c8b902b --- /dev/null +++ b/multidim-interop/impl/js/v0.41/Makefile @@ -0,0 +1,23 @@ +image_name := js-v0.41 +TEST_SOURCES := $(wildcard test/*.ts) + +all: chromium-image.json node-image.json + +chromium-image.json: node-image.json + docker build -t chromium-${image_name} -f ChromiumDockerfile --build-arg="BASE_IMAGE=node-${image_name}" . + docker image inspect chromium-${image_name} -f "{{.Id}}" | \ + xargs -I {} echo "{\"imageID\": \"{}\"}" > $@ + +node-image.json: image.json + docker image tag $$(cat image.json | jq -r '.imageID') node-${image_name} + cp image.json node-image.json + +image.json: Dockerfile $(TEST_SOURCES) package.json package-lock.json .aegir.js + IMAGE_NAME=node-${image_name} ../../../dockerBuildWrapper.sh -f Dockerfile . + docker image inspect node-${image_name} -f "{{.Id}}" | \ + xargs -I {} echo "{\"imageID\": \"{}\"}" > $@ + +.PHONY: clean + +clean: + rm *image.json diff --git a/multidim-interop/js/v0.41/package-lock.json b/multidim-interop/impl/js/v0.41/package-lock.json similarity index 100% rename from multidim-interop/js/v0.41/package-lock.json rename to multidim-interop/impl/js/v0.41/package-lock.json diff --git a/multidim-interop/js/v0.41/package.json b/multidim-interop/impl/js/v0.41/package.json similarity index 100% rename from multidim-interop/js/v0.41/package.json rename to multidim-interop/impl/js/v0.41/package.json diff --git a/multidim-interop/js/v0.41/src/index.ts b/multidim-interop/impl/js/v0.41/src/index.ts similarity index 100% rename from multidim-interop/js/v0.41/src/index.ts rename to multidim-interop/impl/js/v0.41/src/index.ts diff --git a/multidim-interop/js/v0.41/test/ping.spec.ts b/multidim-interop/impl/js/v0.41/test/ping.spec.ts similarity index 100% rename from multidim-interop/js/v0.41/test/ping.spec.ts rename to multidim-interop/impl/js/v0.41/test/ping.spec.ts diff --git a/multidim-interop/js/v0.41/tsconfig.json b/multidim-interop/impl/js/v0.41/tsconfig.json similarity index 100% rename from multidim-interop/js/v0.41/tsconfig.json rename to multidim-interop/impl/js/v0.41/tsconfig.json diff --git a/multidim-interop/js/v0.42/.aegir.js b/multidim-interop/impl/js/v0.42/.aegir.js similarity index 100% rename from multidim-interop/js/v0.42/.aegir.js rename to multidim-interop/impl/js/v0.42/.aegir.js diff --git a/multidim-interop/js/v0.42/.dockerignore b/multidim-interop/impl/js/v0.42/.dockerignore similarity index 100% rename from multidim-interop/js/v0.42/.dockerignore rename to multidim-interop/impl/js/v0.42/.dockerignore diff --git a/multidim-interop/js/v0.42/.gitignore b/multidim-interop/impl/js/v0.42/.gitignore similarity index 100% rename from multidim-interop/js/v0.42/.gitignore rename to multidim-interop/impl/js/v0.42/.gitignore diff --git a/multidim-interop/impl/js/v0.42/ChromiumDockerfile b/multidim-interop/impl/js/v0.42/ChromiumDockerfile new file mode 100644 index 000000000..c522c85db --- /dev/null +++ b/multidim-interop/impl/js/v0.42/ChromiumDockerfile @@ -0,0 +1,6 @@ +# syntax=docker/dockerfile:1 + +ARG BASE_IMAGE +FROM $BASE_IMAGE + +ENTRYPOINT [ "npm", "test", "--", "--build", "false", "--types", "false", "-t", "browser" ] diff --git a/multidim-interop/js/v0.41/ChromiumDockerfile b/multidim-interop/impl/js/v0.42/Dockerfile similarity index 56% rename from multidim-interop/js/v0.41/ChromiumDockerfile rename to multidim-interop/impl/js/v0.42/Dockerfile index de8c51bd0..4c8d3a507 100644 --- a/multidim-interop/js/v0.41/ChromiumDockerfile +++ b/multidim-interop/impl/js/v0.42/Dockerfile @@ -1,15 +1,14 @@ # syntax=docker/dockerfile:1 - +# Using playwright so that we have the same base across NodeJS + Browser tests FROM mcr.microsoft.com/playwright WORKDIR /app - -COPY package*.json . +COPY package*.json ./ RUN npm ci -# Install browsers +# Install browsers, Needed for the browser tests, but we do it here so we have the same base RUN ./node_modules/.bin/playwright install COPY tsconfig.json . @@ -19,4 +18,4 @@ COPY src ./src RUN npm run build -ENTRYPOINT [ "npm", "test", "--", "--build", "false", "--types", "false", "-t", "browser" ] \ No newline at end of file +ENTRYPOINT [ "npm", "test", "--", "--build", "false", "--types", "false", "-t", "node" ] diff --git a/multidim-interop/impl/js/v0.42/Makefile b/multidim-interop/impl/js/v0.42/Makefile new file mode 100644 index 000000000..ce3815d77 --- /dev/null +++ b/multidim-interop/impl/js/v0.42/Makefile @@ -0,0 +1,23 @@ +image_name := js-v0.42 +TEST_SOURCES := $(wildcard test/*.ts) + +all: chromium-image.json node-image.json + +chromium-image.json: node-image.json + docker build -t chromium-${image_name} -f ChromiumDockerfile --build-arg="BASE_IMAGE=node-${image_name}" . + docker image inspect chromium-${image_name} -f "{{.Id}}" | \ + xargs -I {} echo "{\"imageID\": \"{}\"}" > $@ + +node-image.json: image.json + docker image tag $$(cat image.json | jq -r '.imageID') node-${image_name} + cp image.json node-image.json + +image.json: Dockerfile $(TEST_SOURCES) package.json package-lock.json .aegir.js + IMAGE_NAME=node-${image_name} ../../../dockerBuildWrapper.sh -f Dockerfile . + docker image inspect node-${image_name} -f "{{.Id}}" | \ + xargs -I {} echo "{\"imageID\": \"{}\"}" > $@ + +.PHONY: clean + +clean: + rm *image.json diff --git a/multidim-interop/js/v0.42/package-lock.json b/multidim-interop/impl/js/v0.42/package-lock.json similarity index 100% rename from multidim-interop/js/v0.42/package-lock.json rename to multidim-interop/impl/js/v0.42/package-lock.json diff --git a/multidim-interop/js/v0.42/package.json b/multidim-interop/impl/js/v0.42/package.json similarity index 100% rename from multidim-interop/js/v0.42/package.json rename to multidim-interop/impl/js/v0.42/package.json diff --git a/multidim-interop/js/v0.42/src/index.ts b/multidim-interop/impl/js/v0.42/src/index.ts similarity index 100% rename from multidim-interop/js/v0.42/src/index.ts rename to multidim-interop/impl/js/v0.42/src/index.ts diff --git a/multidim-interop/js/v0.42/test/ping.spec.ts b/multidim-interop/impl/js/v0.42/test/ping.spec.ts similarity index 100% rename from multidim-interop/js/v0.42/test/ping.spec.ts rename to multidim-interop/impl/js/v0.42/test/ping.spec.ts diff --git a/multidim-interop/js/v0.42/tsconfig.json b/multidim-interop/impl/js/v0.42/tsconfig.json similarity index 100% rename from multidim-interop/js/v0.42/tsconfig.json rename to multidim-interop/impl/js/v0.42/tsconfig.json diff --git a/multidim-interop/nim/mainv1.nim b/multidim-interop/impl/nim/mainv1.nim similarity index 100% rename from multidim-interop/nim/mainv1.nim rename to multidim-interop/impl/nim/mainv1.nim diff --git a/multidim-interop/nim/v1.0/.gitignore b/multidim-interop/impl/nim/v1.0/.gitignore similarity index 100% rename from multidim-interop/nim/v1.0/.gitignore rename to multidim-interop/impl/nim/v1.0/.gitignore diff --git a/multidim-interop/nim/v1.0/Dockerfile b/multidim-interop/impl/nim/v1.0/Dockerfile similarity index 100% rename from multidim-interop/nim/v1.0/Dockerfile rename to multidim-interop/impl/nim/v1.0/Dockerfile diff --git a/multidim-interop/nim/v1.0/Makefile b/multidim-interop/impl/nim/v1.0/Makefile similarity index 91% rename from multidim-interop/nim/v1.0/Makefile rename to multidim-interop/impl/nim/v1.0/Makefile index 8a7891fa6..2e9947826 100644 --- a/multidim-interop/nim/v1.0/Makefile +++ b/multidim-interop/impl/nim/v1.0/Makefile @@ -4,7 +4,7 @@ commitSha := 408dcf12bdf44dcd6f9021a6c795c472679d6d02 all: image.json image.json: main.nim nim-libp2p Dockerfile - IMAGE_NAME=${image_name} ../../dockerBuildWrapper.sh . + IMAGE_NAME=${image_name} ../../../dockerBuildWrapper.sh . docker image inspect ${image_name} -f "{{.Id}}" | \ xargs -I {} echo "{\"imageID\": \"{}\"}" > $@ diff --git a/multidim-interop/rust/.gitignore b/multidim-interop/impl/rust/.gitignore similarity index 100% rename from multidim-interop/rust/.gitignore rename to multidim-interop/impl/rust/.gitignore diff --git a/multidim-interop/rust/v0.48/Makefile b/multidim-interop/impl/rust/v0.48/Makefile similarity index 90% rename from multidim-interop/rust/v0.48/Makefile rename to multidim-interop/impl/rust/v0.48/Makefile index a461d1f60..143f48eab 100644 --- a/multidim-interop/rust/v0.48/Makefile +++ b/multidim-interop/impl/rust/v0.48/Makefile @@ -4,7 +4,7 @@ commitSha := 7b3047d6d05d599f11f05938d4257e70de66ac12 all: image.json image.json: rust-libp2p-${commitSha} - cd rust-libp2p-${commitSha} && IMAGE_NAME=${image_name} ../../../dockerBuildWrapper.sh -f interop-tests/Dockerfile . + cd rust-libp2p-${commitSha} && IMAGE_NAME=${image_name} ../../../../dockerBuildWrapper.sh -f interop-tests/Dockerfile . docker image inspect ${image_name} -f "{{.Id}}" | \ xargs -I {} echo "{\"imageID\": \"{}\"}" > $@ diff --git a/multidim-interop/rust/v0.49/Makefile b/multidim-interop/impl/rust/v0.49/Makefile similarity index 90% rename from multidim-interop/rust/v0.49/Makefile rename to multidim-interop/impl/rust/v0.49/Makefile index 9029e172b..144ce5972 100644 --- a/multidim-interop/rust/v0.49/Makefile +++ b/multidim-interop/impl/rust/v0.49/Makefile @@ -4,7 +4,7 @@ commitSha := 582c84043050eb0dd6e52d1bd0527175181d41cb all: image.json image.json: rust-libp2p-${commitSha} - cd rust-libp2p-${commitSha} && IMAGE_NAME=${image_name} ../../../dockerBuildWrapper.sh -f interop-tests/Dockerfile . + cd rust-libp2p-${commitSha} && IMAGE_NAME=${image_name} ../../../../dockerBuildWrapper.sh -f interop-tests/Dockerfile . docker image inspect ${image_name} -f "{{.Id}}" | \ xargs -I {} echo "{\"imageID\": \"{}\"}" > $@ diff --git a/multidim-interop/rust/v0.50/Makefile b/multidim-interop/impl/rust/v0.50/Makefile similarity index 90% rename from multidim-interop/rust/v0.50/Makefile rename to multidim-interop/impl/rust/v0.50/Makefile index 2cc4892f7..d6a1c78a6 100644 --- a/multidim-interop/rust/v0.50/Makefile +++ b/multidim-interop/impl/rust/v0.50/Makefile @@ -4,7 +4,7 @@ commitSha := beb66b5832384d9b813fcbf1f0fa01e6a64a9c5f all: image.json image.json: rust-libp2p-${commitSha} - cd rust-libp2p-${commitSha} && IMAGE_NAME=${image_name} ../../../dockerBuildWrapper.sh -f interop-tests/Dockerfile . + cd rust-libp2p-${commitSha} && IMAGE_NAME=${image_name} ../../../../dockerBuildWrapper.sh -f interop-tests/Dockerfile . docker image inspect ${image_name} -f "{{.Id}}" | \ xargs -I {} echo "{\"imageID\": \"{}\"}" > $@ diff --git a/multidim-interop/rust/v0.51/Makefile b/multidim-interop/impl/rust/v0.51/Makefile similarity index 90% rename from multidim-interop/rust/v0.51/Makefile rename to multidim-interop/impl/rust/v0.51/Makefile index 652370c79..d809e3f8a 100644 --- a/multidim-interop/rust/v0.51/Makefile +++ b/multidim-interop/impl/rust/v0.51/Makefile @@ -4,7 +4,7 @@ commitSha := 1a9cf4f7760724032b729c43165716c7ecd842ad all: image.json image.json: rust-libp2p-${commitSha} - cd rust-libp2p-${commitSha} && IMAGE_NAME=${image_name} ../../../dockerBuildWrapper.sh -f interop-tests/Dockerfile . + cd rust-libp2p-${commitSha} && IMAGE_NAME=${image_name} ../../../../dockerBuildWrapper.sh -f interop-tests/Dockerfile . docker image inspect ${image_name} -f "{{.Id}}" | \ xargs -I {} echo "{\"imageID\": \"{}\"}" > $@ diff --git a/multidim-interop/js/v0.41/Dockerfile b/multidim-interop/js/v0.41/Dockerfile deleted file mode 100644 index cadf6681d..000000000 --- a/multidim-interop/js/v0.41/Dockerfile +++ /dev/null @@ -1,17 +0,0 @@ -# syntax=docker/dockerfile:1 -FROM node:18 - -WORKDIR /app - -COPY package*.json . - -RUN npm ci - -COPY tsconfig.json . -COPY .aegir.js . -COPY test ./test -COPY src ./src - -RUN npm run build - -ENTRYPOINT [ "npm", "test", "--", "--build", "false", "--types", "false", "-t", "node" ] \ No newline at end of file diff --git a/multidim-interop/js/v0.41/Makefile b/multidim-interop/js/v0.41/Makefile deleted file mode 100644 index a186017fc..000000000 --- a/multidim-interop/js/v0.41/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -image_name := js-v0.21 -TEST_SOURCES := $(wildcard test/*.ts) - -all: chromium-image.json node-image.json - -chromium-image.json: ChromiumDockerfile $(TEST_SOURCES) package.json package-lock.json .aegir.js - IMAGE_NAME=chromium-${image_name} ../../dockerBuildWrapper.sh -f ChromiumDockerfile . - docker image inspect chromium-${image_name} -f "{{.Id}}" | \ - xargs -I {} echo "{\"imageID\": \"{}\"}" > $@ - -node-image.json: Dockerfile $(TEST_SOURCES) package.json package-lock.json .aegir.js - IMAGE_NAME=node-${image_name} ../../dockerBuildWrapper.sh -f Dockerfile . - docker image inspect node-${image_name} -f "{{.Id}}" | \ - xargs -I {} echo "{\"imageID\": \"{}\"}" > $@ - -.PHONY: clean - -clean: - rm *image.json \ No newline at end of file diff --git a/multidim-interop/js/v0.42/Dockerfile b/multidim-interop/js/v0.42/Dockerfile deleted file mode 100644 index cadf6681d..000000000 --- a/multidim-interop/js/v0.42/Dockerfile +++ /dev/null @@ -1,17 +0,0 @@ -# syntax=docker/dockerfile:1 -FROM node:18 - -WORKDIR /app - -COPY package*.json . - -RUN npm ci - -COPY tsconfig.json . -COPY .aegir.js . -COPY test ./test -COPY src ./src - -RUN npm run build - -ENTRYPOINT [ "npm", "test", "--", "--build", "false", "--types", "false", "-t", "node" ] \ No newline at end of file diff --git a/multidim-interop/js/v0.42/Makefile b/multidim-interop/js/v0.42/Makefile deleted file mode 100644 index 3234688fd..000000000 --- a/multidim-interop/js/v0.42/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -image_name := js-v0.42 -TEST_SOURCES := $(wildcard test/*.ts) - -all: chromium-image.json node-image.json - -chromium-image.json: ChromiumDockerfile $(TEST_SOURCES) package.json package-lock.json .aegir.js - IMAGE_NAME=chromium-${image_name} ../../dockerBuildWrapper.sh -f ChromiumDockerfile . - docker image inspect chromium-${image_name} -f "{{.Id}}" | \ - xargs -I {} echo "{\"imageID\": \"{}\"}" > $@ - -node-image.json: Dockerfile $(TEST_SOURCES) package.json package-lock.json .aegir.js - IMAGE_NAME=node-${image_name} ../../dockerBuildWrapper.sh -f Dockerfile . - docker image inspect node-${image_name} -f "{{.Id}}" | \ - xargs -I {} echo "{\"imageID\": \"{}\"}" > $@ - -.PHONY: clean - -clean: - rm *image.json \ No newline at end of file diff --git a/multidim-interop/package-lock.json b/multidim-interop/package-lock.json index 1c9ccf3aa..7e54b037b 100644 --- a/multidim-interop/package-lock.json +++ b/multidim-interop/package-lock.json @@ -12,6 +12,7 @@ "@types/yargs": "^17.0.19", "csv-parse": "^5.3.3", "csv-stringify": "^6.2.3", + "ignore": "^5.2.4", "json-schema-to-typescript": "^11.0.2", "sqlite": "^4.1.2", "sqlite3": "^5.1.2", @@ -781,6 +782,14 @@ "node": ">=0.10.0" } }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "engines": { + "node": ">= 4" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -2422,6 +2431,11 @@ "safer-buffer": ">= 2.1.2 < 3.0.0" } }, + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==" + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", diff --git a/multidim-interop/package.json b/multidim-interop/package.json index 955970400..c1c7d2a16 100644 --- a/multidim-interop/package.json +++ b/multidim-interop/package.json @@ -5,7 +5,8 @@ "main": "testplans.ts", "scripts": { "test": "ts-node testplans.ts", - "renderResults": "ts-node renderResults.ts" + "renderResults": "ts-node renderResults.ts", + "cache": "ts-node helpers/cache.ts" }, "author": "marcopolo", "license": "MIT", @@ -17,6 +18,7 @@ "@types/yargs": "^17.0.19", "csv-parse": "^5.3.3", "csv-stringify": "^6.2.3", + "ignore": "^5.2.4", "json-schema-to-typescript": "^11.0.2", "sqlite": "^4.1.2", "sqlite3": "^5.1.2", diff --git a/multidim-interop/versions.ts b/multidim-interop/versions.ts index 8987367ca..0b7f6ac50 100644 --- a/multidim-interop/versions.ts +++ b/multidim-interop/versions.ts @@ -1,16 +1,16 @@ -import gov025 from "./go/v0.25/image.json" -import gov024 from "./go/v0.24/image.json" -import gov023 from "./go/v0.23/image.json" -import gov022 from "./go/v0.22/image.json" -import rustv048 from "./rust/v0.48/image.json" -import rustv049 from "./rust/v0.49/image.json" -import rustv050 from "./rust/v0.50/image.json" -import rustv051 from "./rust/v0.51/image.json" -import jsV041 from "./js/v0.41/node-image.json" -import jsV042 from "./js/v0.42/node-image.json" -import nimv10 from "./nim/v1.0/image.json" -import chromiumJsV041 from "./js/v0.41/chromium-image.json" -import chromiumJsV042 from "./js/v0.42/chromium-image.json" +import gov025 from "./impl/go/v0.25/image.json" +import gov024 from "./impl/go/v0.24/image.json" +import gov023 from "./impl/go/v0.23/image.json" +import gov022 from "./impl/go/v0.22/image.json" +import rustv048 from "./impl/rust/v0.48/image.json" +import rustv049 from "./impl/rust/v0.49/image.json" +import rustv050 from "./impl/rust/v0.50/image.json" +import rustv051 from "./impl/rust/v0.51/image.json" +import jsV041 from "./impl/js/v0.41/node-image.json" +import jsV042 from "./impl/js/v0.42/node-image.json" +import nimv10 from "./impl/nim/v1.0/image.json" +import chromiumJsV041 from "./impl/js/v0.41/chromium-image.json" +import chromiumJsV042 from "./impl/js/v0.42/chromium-image.json" export type Version = { id: string, From 70169e6e3c5dc470a1fadb717f49c1e9b444f70e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 11 Apr 2023 19:53:43 +0000 Subject: [PATCH 039/143] chore: update the link to the interop dashboard [skip ci] --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f0d5a89b7..447156ecd 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Interoperabilty and end to end test-plans for libp2p -[![Interop Dashboard](https://github.com/libp2p/test-plans/workflows/libp2p%20multidimensional%20interop%20test/badge.svg?branch=master)](https://github.com/libp2p/test-plans/actions/runs/4646774898/attempts/1#summary-12610482600) +[![Interop Dashboard](https://github.com/libp2p/test-plans/workflows/libp2p%20multidimensional%20interop%20test/badge.svg?branch=master)](https://github.com/libp2p/test-plans/actions/runs/4670814354/attempts/1#summary-12669871214) [![Made by Protocol Labs](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://protocol.ai) ![Go version](https://img.shields.io/badge/go-%3E%3D1.14.0-blue.svg?style=flat-square) From 5ad733888faa72c5be2f7d8aa03f3d85ceca86a4 Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Thu, 13 Apr 2023 14:34:31 -0700 Subject: [PATCH 040/143] Update readme --- perf/README.md | 20 +++++--------------- perf/terraform/region/main.tf | 6 +++--- 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/perf/README.md b/perf/README.md index c45d14a70..9fea8e41b 100644 --- a/perf/README.md +++ b/perf/README.md @@ -3,26 +3,16 @@ ## Setup 1. `cd terraform` -2. Safe your SSH key as a file, e.g. `./mxinden.pub`. -3. Optionally update the reference to the ssh key in `region/main.tf`: - ```diff - - - resource "aws_key_pair" "mxinden" { - - key_name = "mxinden-public-key" - - public_key = file("./mxinden.pub") - - } - + resource "aws_key_pair" "your-key" { - + key_name = "your-key-public-key" - + public_key = file("./your-key.pub") - + } - ``` +2. Save your public SSH key as the file `./user.pub`. +3. `terraform init` 4. `terraform apply` ## Execute 1. `cd runner` -2. `npm run build` -3. `npm run start -- --client-public-ip $(terraform output -raw -state ../terraform/terraform.tfstate client_public_ip) --server-public-ip $(terraform output -raw -state ../terraform/terraform.tfstate server_public_ip)` +2. `npm ci` +3. `npm run build` +4. `npm run start -- --client-public-ip $(terraform output -raw -state ../terraform/terraform.tfstate client_public_ip) --server-public-ip $(terraform output -raw -state ../terraform/terraform.tfstate server_public_ip)` ## Add benchmark binary diff --git a/perf/terraform/region/main.tf b/perf/terraform/region/main.tf index 0bad9d417..76937db7b 100644 --- a/perf/terraform/region/main.tf +++ b/perf/terraform/region/main.tf @@ -104,8 +104,8 @@ resource "aws_security_group" "restricted_inbound" { } resource "aws_key_pair" "mxinden" { - key_name = "mxinden-public-key" - public_key = file("./mxinden.pub") + key_name = "user-public-key" + public_key = file("./user.pub") } resource "aws_instance" "node" { @@ -121,7 +121,7 @@ resource "aws_instance" "node" { # Debug via: # - /var/log/cloud-init.log and # - /var/log/cloud-init-output.log - user_data = file("./user-data.sh") + user_data = file("./user-data.sh") user_data_replace_on_change = true tags = merge(var.common_tags, { From 31c6da56786e08aa25b423d4775c0a483f32fb0d Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Thu, 13 Apr 2023 14:41:58 -0700 Subject: [PATCH 041/143] Always build when doing npm run start --- perf/README.md | 3 +-- perf/runner/package.json | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/perf/README.md b/perf/README.md index 9fea8e41b..23caae3a1 100644 --- a/perf/README.md +++ b/perf/README.md @@ -11,8 +11,7 @@ 1. `cd runner` 2. `npm ci` -3. `npm run build` -4. `npm run start -- --client-public-ip $(terraform output -raw -state ../terraform/terraform.tfstate client_public_ip) --server-public-ip $(terraform output -raw -state ../terraform/terraform.tfstate server_public_ip)` +3. `npm run start -- --client-public-ip $(terraform output -raw -state ../terraform/terraform.tfstate client_public_ip) --server-public-ip $(terraform output -raw -state ../terraform/terraform.tfstate server_public_ip)` ## Add benchmark binary diff --git a/perf/runner/package.json b/perf/runner/package.json index e0df3a955..bf52ccef9 100644 --- a/perf/runner/package.json +++ b/perf/runner/package.json @@ -5,7 +5,7 @@ "main": "index.js", "scripts": { "build": "tsc", - "start": "node ./dist/index.js" + "start": "tsc && node ./dist/index.js" }, "author": "", "license": "ISC", From 2ce3daaf4c47cc170ab29154e39d301ce57c3d45 Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Thu, 13 Apr 2023 16:28:07 -0700 Subject: [PATCH 042/143] Save benchmark results --- perf/runner/src/index.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index 0fc474e80..bfeafd037 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -1,6 +1,7 @@ import { execSync } from 'child_process'; import { versions } from './versions'; import yargs from 'yargs'; +import fs from 'fs'; import { BenchmarkResults, Benchmark, Result } from './benchmark-result-type'; async function main(clientPublicIP: string, serverPublicIP: string) { @@ -46,6 +47,9 @@ async function main(clientPublicIP: string, serverPublicIP: string) { }; console.log(JSON.stringify(benchmarkResults, null, 2)); + + // Save results to benchmark-results.json + fs.writeFileSync('./benchmark-results.json', JSON.stringify(benchmarkResults, null, 2)); } interface ArgsRunBenchmarkAcrossVersions { From 95cc2afc1121b371ec6aef19900c5f31db010f79 Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Thu, 13 Apr 2023 16:28:40 -0700 Subject: [PATCH 043/143] Add implementation --- perf/runner/src/index.ts | 2 +- perf/runner/src/versions.ts | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index bfeafd037..75b189e42 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -82,7 +82,7 @@ function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Resul results.push({ result: latencies.latencies, - implementation: "", + implementation: version.implementation, version: version.id, transportStack: transportStack, }); diff --git a/perf/runner/src/versions.ts b/perf/runner/src/versions.ts index ef29045da..4c0e81a44 100644 --- a/perf/runner/src/versions.ts +++ b/perf/runner/src/versions.ts @@ -1,5 +1,6 @@ export type Version = { id: string, + implementation: "go-libp2p" | "js-libp2p" | "nim-libp2p" | "rust-libp2p" | "zig-libp2p", containerImageID: string, transportStacks: string[], } @@ -7,11 +8,13 @@ export type Version = { export const versions: Array = [ { id: "rust-master", + implementation: "rust-libp2p", containerImageID: "90bd7031f56ef2311659ea79b6e980080063b83ddc6644e7ebd5dbea869a1119", transportStacks: ["tcp", "quic-v1"] }, { - id: "go-master", + id: "go-v0.27.0", + implementation: "go-libp2p", containerImageID: "0fb68df50eada9dd10058bd7b6da614f2a31148dc0343be8eb5c7920f7bb4eef", transportStacks: ["tcp", "quic-v1"] }, From ce6f969d2b651293a8bd857e3260bd91968150b3 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Fri, 14 Apr 2023 10:09:45 +0200 Subject: [PATCH 044/143] Change to m5n.8xlarge with 25 Gbit Had to change to us-west-2 as m5n.8xlarge was not available in us-west-1. --- perf/terraform/region/main.tf | 2 +- perf/terraform/terraform.tf | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/perf/terraform/region/main.tf b/perf/terraform/region/main.tf index 76937db7b..0b36b939c 100644 --- a/perf/terraform/region/main.tf +++ b/perf/terraform/region/main.tf @@ -110,7 +110,7 @@ resource "aws_key_pair" "mxinden" { resource "aws_instance" "node" { ami = var.ami - instance_type = "t2.micro" + instance_type = "m5n.8xlarge" subnet_id = aws_subnet.perf.id diff --git a/perf/terraform/terraform.tf b/perf/terraform/terraform.tf index 2f3a81d7a..79ad18050 100644 --- a/perf/terraform/terraform.tf +++ b/perf/terraform/terraform.tf @@ -9,8 +9,8 @@ terraform { module "server_region" { source = "./region" - region = "us-west-1" - ami = "ami-09c5c62bac0d0634e" + region = "us-west-2" + ami = "ami-0747e613a2a1ff483" common_tags = { Project = "perf" @@ -20,7 +20,7 @@ module "server_region" { module "client_region" { source = "./region" region = "us-east-1" - ami = "ami-00c39f71452c08778" + ami = "ami-06e46074ae430fba6" common_tags = { Project = "perf" From bbde59ed5778ad6df6755e9d11a45272cd2e504b Mon Sep 17 00:00:00 2001 From: Max Inden Date: Fri, 14 Apr 2023 14:44:57 +0200 Subject: [PATCH 045/143] Update to latest rust container image --- perf/runner/src/versions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/runner/src/versions.ts b/perf/runner/src/versions.ts index 4c0e81a44..1db41f794 100644 --- a/perf/runner/src/versions.ts +++ b/perf/runner/src/versions.ts @@ -9,7 +9,7 @@ export const versions: Array = [ { id: "rust-master", implementation: "rust-libp2p", - containerImageID: "90bd7031f56ef2311659ea79b6e980080063b83ddc6644e7ebd5dbea869a1119", + containerImageID: "3078e6a9941952486afe4b417a318ce0c372b6e2ef1e296c85f7811c1f170b09", transportStacks: ["tcp", "quic-v1"] }, { From 7baa39c5c67cc60db3df4e4c2c3f8fc43f45c6bd Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Fri, 14 Apr 2023 16:09:11 +0200 Subject: [PATCH 046/143] Add changes for zig-libp2p --- perf/runner/src/index.ts | 53 ++++++++++++++++++++++------------- perf/runner/src/versions.ts | 12 ++++++-- perf/terraform/region/main.tf | 8 +++--- 3 files changed, 48 insertions(+), 25 deletions(-) diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index 75b189e42..824e7a9f8 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -63,16 +63,19 @@ interface ArgsRunBenchmarkAcrossVersions { function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Result[] { const results: Result[] = []; for (const version of versions) { - console.error(`Starting ${version.id} server.`); - const serverCMD = `ssh ec2-user@${args.serverPublicIP} 'docker stop $(docker ps -aq); docker run -d --restart always --network host --entrypoint /app/server mxinden/libp2p-perf@sha256:${version.containerImageID} --secret-key-seed 0'`; - console.error(serverCMD); - const serverSTDOUT = execCommand(serverCMD); - console.error(serverSTDOUT); + if (version.serverAddress == undefined) { + console.error(`Starting ${version.id} server.`); + const serverCMD = `ssh ec2-user@${args.serverPublicIP} 'docker stop $(docker ps -aq); docker run --init -d --restart always --network host --entrypoint /app/server ${version.containerImageID} --secret-key-seed 0'`; + console.error(serverCMD); + const serverSTDOUT = execCommand(serverCMD); + console.error(serverSTDOUT); + } for (const transportStack of version.transportStacks) { const latencies = runBenchmark({ clientPublicIP: args.clientPublicIP, serverPublicIP: args.serverPublicIP, + serverAddress: version.serverAddress, dockerImageId: version.containerImageID, transportStack: transportStack, uploadBytes: args.uploadBytes, @@ -95,6 +98,7 @@ function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Resul interface ArgsRunBenchmark { clientPublicIP: string; serverPublicIP: string; + serverAddress?: string; dockerImageId: string; transportStack: string, uploadBytes: number, @@ -110,30 +114,41 @@ interface Latencies { function runBenchmark(args: ArgsRunBenchmark): Latencies { console.error(`Starting ${args.transportStack} client.`); - let serverAddress: string; + let serverAddress = args.serverAddress; - switch (args.transportStack) { - case 'tcp': - serverAddress = `/ip4/${args.serverPublicIP}/tcp/4001`; - break; - case 'quic-v1': - serverAddress = `/ip4/${args.serverPublicIP}/udp/4001/quic-v1`; - break; - default: - console.error("Unsupported transport stack ${args.transportStack}"); - process.exit(1); + if (serverAddress == undefined) { + switch (args.transportStack) { + case 'tcp': + serverAddress = `/ip4/${args.serverPublicIP}/tcp/4001`; + break; + case 'quic-v1': + serverAddress = `/ip4/${args.serverPublicIP}/udp/4001/quic-v1`; + break; + default: + console.error("Unsupported transport stack ${args.transportStack}"); + process.exit(1); + } + serverAddress = serverAddress + "/p2p/12D3KooWDpJ7As7BWAwRMfu1VU2WCqNjvq387JEYKDBj4kx6nXTN"; } - serverAddress = serverAddress + "/p2p/12D3KooWDpJ7As7BWAwRMfu1VU2WCqNjvq387JEYKDBj4kx6nXTN"; const binFlags = `--server-address ${serverAddress} --upload-bytes ${args.uploadBytes} --download-bytes ${args.downloadBytes} --n-times ${args.nTimes}` // TODO Take docker hub repository from version.ts - const dockerCMD = `docker run --rm --network host mxinden/libp2p-perf@sha256:${args.dockerImageId} ${binFlags}` + const dockerCMD = `docker run --init --rm --network host ${args.dockerImageId} ${binFlags}` const cmd = `ssh ec2-user@${args.clientPublicIP} ${dockerCMD}`; + console.log("Running command:", cmd); const stdout = execCommand(cmd); + console.log("Stdout from client:", stdout.toString(), JSON.parse(stdout.toString())); + const parsedStdout = JSON.parse(stdout.toString()); + + let latencies: Latencies + if (Array.isArray(parsedStdout)) { + latencies = { latencies: parsedStdout } + } else { + latencies = parsedStdout + } - const latencies: Latencies = JSON.parse(stdout.toString()); return latencies; } diff --git a/perf/runner/src/versions.ts b/perf/runner/src/versions.ts index 1db41f794..966054a8a 100644 --- a/perf/runner/src/versions.ts +++ b/perf/runner/src/versions.ts @@ -3,19 +3,27 @@ export type Version = { implementation: "go-libp2p" | "js-libp2p" | "nim-libp2p" | "rust-libp2p" | "zig-libp2p", containerImageID: string, transportStacks: string[], + serverAddress?: string, } export const versions: Array = [ { id: "rust-master", implementation: "rust-libp2p", - containerImageID: "3078e6a9941952486afe4b417a318ce0c372b6e2ef1e296c85f7811c1f170b09", + containerImageID: "mxinden/libp2p-perf@3078e6a9941952486afe4b417a318ce0c372b6e2ef1e296c85f7811c1f170b09", transportStacks: ["tcp", "quic-v1"] }, { id: "go-v0.27.0", implementation: "go-libp2p", - containerImageID: "0fb68df50eada9dd10058bd7b6da614f2a31148dc0343be8eb5c7920f7bb4eef", + containerImageID: "mxinden/libp2p-perf@0fb68df50eada9dd10058bd7b6da614f2a31148dc0343be8eb5c7920f7bb4eef", transportStacks: ["tcp", "quic-v1"] }, + { + id: "zig-libp2p-v0.0.1", + implementation: "zig-libp2p", + containerImageID: "marcop010/zig-libp2p-perf@sha256:26b174b4ba38b206e216328f6027293f98c1db1e063ec27121609f2e5b9f409a", + transportStacks: ["quic-v1"], + serverAddress: "/ip4/13.56.168.61/udp/35052/quic-v1/p2p/12D3KooWKa5rDq3YhVzvAnvRoCrXhkWpA1CRsfY2hrBt2QYzLWih" + }, ] diff --git a/perf/terraform/region/main.tf b/perf/terraform/region/main.tf index 0b36b939c..b83c4ec8b 100644 --- a/perf/terraform/region/main.tf +++ b/perf/terraform/region/main.tf @@ -78,15 +78,15 @@ resource "aws_security_group" "restricted_inbound" { } ingress { - from_port = 4001 - to_port = 4001 + from_port = 1 + to_port = 65535 protocol = "tcp" cidr_blocks = ["0.0.0.0/0"] } ingress { - from_port = 4001 - to_port = 4001 + from_port = 1 + to_port = 65535 protocol = "udp" cidr_blocks = ["0.0.0.0/0"] } From 0a8c201984bc3a1c8beb38b1293445fc9ea57884 Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Fri, 14 Apr 2023 16:09:43 +0200 Subject: [PATCH 047/143] Test 100MiB --- perf/runner/src/index.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index 824e7a9f8..0b0460915 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -8,25 +8,25 @@ async function main(clientPublicIP: string, serverPublicIP: string) { const benchmarkResults: BenchmarkResults = { benchmarks: [ { - name: "Single Connection throughput – Upload 10 MiB", + name: "Single Connection throughput – Upload 100 MiB", unit: "s", results: runBenchmarkAcrossVersions({ clientPublicIP, serverPublicIP, - uploadBytes: 10 * 1024 * 1024, + uploadBytes: 100 << 20, downloadBytes: 0, nTimes: 1, }), comparisons: [], }, { - name: "Single Connection throughput – Download 10 MiB", + name: "Single Connection throughput – Download 100 MiB", unit: "s", results: runBenchmarkAcrossVersions({ clientPublicIP, serverPublicIP, uploadBytes: 0, - downloadBytes: 10 * 1024 * 1024, + downloadBytes: 100 << 20, nTimes: 1, }), comparisons: [], From 5d01b2a2deb78d52b3fa15839f9c4f9dfa55929d Mon Sep 17 00:00:00 2001 From: Max Inden Date: Fri, 14 Apr 2023 16:22:56 +0200 Subject: [PATCH 048/143] Add **very** basic Go HTTPS implementation --- perf/impl/go/https/Dockerfile | 15 +++ perf/impl/go/https/go.mod | 20 +++ perf/impl/go/https/go.sum | 38 ++++++ perf/impl/go/https/main.go | 227 ++++++++++++++++++++++++++++++++++ perf/impl/go/https/server | 2 + perf/runner/src/versions.ts | 8 +- 6 files changed, 309 insertions(+), 1 deletion(-) create mode 100644 perf/impl/go/https/Dockerfile create mode 100644 perf/impl/go/https/go.mod create mode 100644 perf/impl/go/https/go.sum create mode 100644 perf/impl/go/https/main.go create mode 100755 perf/impl/go/https/server diff --git a/perf/impl/go/https/Dockerfile b/perf/impl/go/https/Dockerfile new file mode 100644 index 000000000..50dbb4d30 --- /dev/null +++ b/perf/impl/go/https/Dockerfile @@ -0,0 +1,15 @@ +# Build Go Binary +FROM golang:1.20-alpine AS builder + +WORKDIR /app +COPY go.mod go.sum ./ +RUN go mod download +COPY *.go ./ +RUN go build -o perf . + +FROM alpine + +COPY --from=builder /app/perf /app/perf +COPY server /app/server + +ENTRYPOINT [ "/app/perf" ] \ No newline at end of file diff --git a/perf/impl/go/https/go.mod b/perf/impl/go/https/go.mod new file mode 100644 index 000000000..8d6dc86b2 --- /dev/null +++ b/perf/impl/go/https/go.mod @@ -0,0 +1,20 @@ +module github.com/libp2p/test-plans/perf/go/https + +go 1.20 + +require ( + github.com/ipfs/go-cid v0.0.7 // indirect + github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 // indirect + github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771 // indirect + github.com/mr-tron/base58 v1.1.3 // indirect + github.com/multiformats/go-base32 v0.0.3 // indirect + github.com/multiformats/go-base36 v0.1.0 // indirect + github.com/multiformats/go-multiaddr v0.9.0 // indirect + github.com/multiformats/go-multiaddr-net v0.2.0 // indirect + github.com/multiformats/go-multibase v0.0.3 // indirect + github.com/multiformats/go-multihash v0.0.14 // indirect + github.com/multiformats/go-varint v0.0.6 // indirect + github.com/spaolacci/murmur3 v1.1.0 // indirect + golang.org/x/crypto v0.1.0 // indirect + golang.org/x/sys v0.1.0 // indirect +) diff --git a/perf/impl/go/https/go.sum b/perf/impl/go/https/go.sum new file mode 100644 index 000000000..7adcab44b --- /dev/null +++ b/perf/impl/go/https/go.sum @@ -0,0 +1,38 @@ +github.com/ipfs/go-cid v0.0.7 h1:ysQJVJA3fNDF1qigJbsSQOdjhVLsOEoPdh0+R97k3jY= +github.com/ipfs/go-cid v0.0.7/go.mod h1:6Ux9z5e+HpkQdckYoX1PG/6xqKspzlEIR5SDmgqgC/I= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771 h1:MHkK1uRtFbVqvAgvWxafZe54+5uBxLluGylDiKgdhwo= +github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= +github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= +github.com/mr-tron/base58 v1.1.3 h1:v+sk57XuaCKGXpWtVBX8YJzO7hMGx4Aajh4TQbdEFdc= +github.com/mr-tron/base58 v1.1.3/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= +github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= +github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= +github.com/multiformats/go-base36 v0.1.0 h1:JR6TyF7JjGd3m6FbLU2cOxhC0Li8z8dLNGQ89tUg4F4= +github.com/multiformats/go-base36 v0.1.0/go.mod h1:kFGE83c6s80PklsHO9sRn2NCoffoRdUUOENyW/Vv6sM= +github.com/multiformats/go-multiaddr v0.3.0/go.mod h1:dF9kph9wfJ+3VLAaeBqo9Of8x4fJxp6ggJGteB8HQTI= +github.com/multiformats/go-multiaddr v0.9.0 h1:3h4V1LHIk5w4hJHekMKWALPXErDfz/sggzwC/NcqbDQ= +github.com/multiformats/go-multiaddr v0.9.0/go.mod h1:mI67Lb1EeTOYb8GQfL/7wpIZwc46ElrvzhYnoJOmTT0= +github.com/multiformats/go-multiaddr-net v0.2.0 h1:MSXRGN0mFymt6B1yo/6BPnIRpLPEnKgQNvVfCX5VDJk= +github.com/multiformats/go-multiaddr-net v0.2.0/go.mod h1:gGdH3UXny6U3cKKYCvpXI5rnK7YaOIEOPVDI9tsJbEA= +github.com/multiformats/go-multibase v0.0.3 h1:l/B6bJDQjvQ5G52jw4QGSYeOTZoAwIO77RblWplfIqk= +github.com/multiformats/go-multibase v0.0.3/go.mod h1:5+1R4eQrT3PkYZ24C3W2Ue2tPwIdYQD509ZjSb5y9Oc= +github.com/multiformats/go-multihash v0.0.13/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc= +github.com/multiformats/go-multihash v0.0.14 h1:QoBceQYQQtNUuf6s7wHxnE2c8bhbMqhfGzNI032se/I= +github.com/multiformats/go-multihash v0.0.14/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc= +github.com/multiformats/go-varint v0.0.5/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= +github.com/multiformats/go-varint v0.0.6 h1:gk85QWKxh3TazbLxED/NlDVv8+q+ReFJk7Y2W/KhfNY= +github.com/multiformats/go-varint v0.0.6/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= +github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= +github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU= +golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/perf/impl/go/https/main.go b/perf/impl/go/https/main.go new file mode 100644 index 000000000..ce5d258e9 --- /dev/null +++ b/perf/impl/go/https/main.go @@ -0,0 +1,227 @@ +package main + +import ( + "bytes" + "encoding/json" + "io/ioutil" + "crypto/rand" + "crypto/rsa" + "crypto/tls" + "crypto/x509" + "crypto/x509/pkix" + "encoding/binary" + "encoding/pem" + "flag" + "fmt" + "io" + "math/big" + "net" + "net/http" + "strconv" + "time" + + "github.com/multiformats/go-multiaddr" +) + +func handleRequest(w http.ResponseWriter, r *http.Request) { + // Read the big-endian bytesToSend value + var bytesToSend uint64 + err := binary.Read(r.Body, binary.BigEndian, &bytesToSend) + if err != nil { + http.Error(w, "Failed to read u64 value", http.StatusBadRequest) + return + } + + // Read and discard the remaining bytes in the request + io.Copy(io.Discard, r.Body) + + // Generate random bytes and write the response + responseBytes := make([]byte, bytesToSend) + _, err = rand.Read(responseBytes) + if err != nil { + http.Error(w, "Failed to generate random bytes", http.StatusInternalServerError) + return + } + + w.Write(responseBytes) +} + +func runClient(serverAddr string, uploadBytes, downloadBytes, nTimes int) []time.Duration { + durations := make([]time.Duration, nTimes) + + client := &http.Client{ + Transport: &http.Transport{ + TLSClientConfig: &tls.Config{ + InsecureSkipVerify: true, + }, + }, + } + + for i := 0; i < nTimes; i++ { + reqBody := make([]byte, 8+uploadBytes) + binary.BigEndian.PutUint64(reqBody, uint64(downloadBytes)) + rand.Read(reqBody[8:]) + + startTime := time.Now() + resp, err := client.Post(fmt.Sprintf("https://%s/", serverAddr), "application/octet-stream", bytes.NewReader(reqBody)) + if err != nil { + fmt.Printf("Error sending request: %v\n", err) + continue + } + + respBody, err := ioutil.ReadAll(resp.Body) + if err != nil { + fmt.Printf("Error reading response: %v\n", err) + } else if len(respBody) != downloadBytes { + fmt.Printf("Expected %d bytes in response, but received %d\n", downloadBytes, len(respBody)) + } + resp.Body.Close() + + durations[i] = time.Since(startTime) + } + + return durations +} + +func generateEphemeralCertificate() (tls.Certificate, error) { + // Generate a private key + privKey, err := rsa.GenerateKey(rand.Reader, 2048) + if err != nil { + return tls.Certificate{}, err + } + + // Set up the certificate template + template := x509.Certificate{ + SerialNumber: big.NewInt(1), + Subject: pkix.Name{ + Organization: []string{"Ephemeral Cert"}, + }, + NotBefore: time.Now(), + NotAfter: time.Now().Add(24 * time.Hour), + KeyUsage: x509.KeyUsageDigitalSignature | x509.KeyUsageKeyEncipherment, + ExtKeyUsage: []x509.ExtKeyUsage{ + x509.ExtKeyUsageServerAuth, + }, + BasicConstraintsValid: true, + } + + // Set the IP address if required + ip := net.ParseIP("127.0.0.1") + if ip != nil { + template.IPAddresses = append(template.IPAddresses, ip) + } + + // Create a self-signed certificate + certDER, err := x509.CreateCertificate(rand.Reader, &template, &template, &privKey.PublicKey, privKey) + if err != nil { + return tls.Certificate{}, err + } + + // PEM encode the certificate and private key + certPEM := pem.EncodeToMemory(&pem.Block{Type: "CERTIFICATE", Bytes: certDER}) + privKeyPEM := pem.EncodeToMemory(&pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(privKey)}) + + // Create a tls.Certificate from the PEM encoded certificate and private key + cert, err := tls.X509KeyPair(certPEM, privKeyPEM) + if err != nil { + return tls.Certificate{}, err + } + + return cert, nil +} + +type Latencies struct { + Latencies []float32 `json:"latencies"` +} + +func main() { + runServer := flag.Bool("run-server", false, "Should run as server") + // --server-address + serverAddr := flag.String("server-address", "", "Server address") + // --secret-key-seed + _ = flag.Uint64("secret-key-seed", 0, "Server secret key seed") + // --upload-bytes + uploadBytes := flag.Int("upload-bytes", 0, "Upload bytes") + // --download-bytes + downloadBytes := flag.Int("download-bytes", 0, "Download bytes") + // --n-times + nTimes := flag.Int("n-times", 0, "N times") + flag.Parse() + + if *runServer { + + // Generate an ephemeral TLS certificate and private key + cert, err := generateEphemeralCertificate() + if err != nil { + fmt.Printf("Error generating ephemeral certificate: %v\n", err) + return + } + + // Create a new HTTPS server with the ephemeral certificate + tlsConfig := &tls.Config{Certificates: []tls.Certificate{cert}} + server := &http.Server{ + Addr: ":4001", + TLSConfig: tlsConfig, + } + + http.HandleFunc("/", handleRequest) + + // Start the HTTPS server + fmt.Println("Starting HTTPS server on port 4001") + err = server.ListenAndServeTLS("", "") + if err != nil { + fmt.Printf("Error starting HTTPS server: %v\n", err) + } + } else { + // Client mode + if *serverAddr == "" || *nTimes <= 0 { + fmt.Println("Error: Please provide valid server-address and n-times flags for client mode.") + return + } + + // Parse the multiaddr and extract the IP address and TCP port + serverAddr, err := multiaddr.NewMultiaddr(*serverAddr) + if err != nil { + fmt.Printf("Error parsing server-address: %v\n", err) + return + } + ipBytes, err := serverAddr.ValueForProtocol(multiaddr.P_IP4) + if err != nil { + ipBytes, err = serverAddr.ValueForProtocol(multiaddr.P_IP6) + if err != nil { + fmt.Printf("Error getting IP address from multiaddr: %v\n", err) + return + } + } + ip := net.ParseIP(ipBytes) + portStr, err := serverAddr.ValueForProtocol(multiaddr.P_TCP) + if err != nil { + fmt.Printf("Error getting TCP port from multiaddr: %v\n", err) + return + } + port, err := strconv.Atoi(portStr) + if err != nil { + fmt.Printf("Error parsing TCP port: %v\n", err) + return + } + // Run the client and print the results + durations := runClient(fmt.Sprintf("%s:%d", ip.String(), port), *uploadBytes, *downloadBytes, *nTimes) + + // Convert durations to seconds and marshal as JSON + timesS := make([]float32, 0, len(durations)) + for _, d := range durations { + timesS = append(timesS, float32(d.Nanoseconds())/1_000_000_000) + } + + latencies := Latencies{ + Latencies: timesS, + } + + jsonB, err := json.Marshal(latencies) + if err != nil { + panic(err) + } + + fmt.Println(string(jsonB)) + } +} diff --git a/perf/impl/go/https/server b/perf/impl/go/https/server new file mode 100755 index 000000000..0372a3d60 --- /dev/null +++ b/perf/impl/go/https/server @@ -0,0 +1,2 @@ +#!/usr/bin/env sh +/app/perf --run-server \ No newline at end of file diff --git a/perf/runner/src/versions.ts b/perf/runner/src/versions.ts index 966054a8a..3e499437e 100644 --- a/perf/runner/src/versions.ts +++ b/perf/runner/src/versions.ts @@ -1,6 +1,6 @@ export type Version = { id: string, - implementation: "go-libp2p" | "js-libp2p" | "nim-libp2p" | "rust-libp2p" | "zig-libp2p", + implementation: "go-libp2p" | "js-libp2p" | "nim-libp2p" | "rust-libp2p" | "zig-libp2p" | "go-https", containerImageID: string, transportStacks: string[], serverAddress?: string, @@ -26,4 +26,10 @@ export const versions: Array = [ transportStacks: ["quic-v1"], serverAddress: "/ip4/13.56.168.61/udp/35052/quic-v1/p2p/12D3KooWKa5rDq3YhVzvAnvRoCrXhkWpA1CRsfY2hrBt2QYzLWih" }, + { + id: "go-https-v0.0.1", + implementation: "go-https", + containerImageID: "ca9237cdbdfb13ac68f019bc1373ccfcc207798e461f8e9264d52f981d9d648c", + transportStacks: ["tcp"] + }, ] From d559bb3d8741cee62eb4064f29d9513bf6cc78ea Mon Sep 17 00:00:00 2001 From: Max Inden Date: Fri, 14 Apr 2023 16:45:14 +0200 Subject: [PATCH 049/143] Fix versions.ts adding sha256: to other images --- perf/runner/src/versions.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/perf/runner/src/versions.ts b/perf/runner/src/versions.ts index 3e499437e..3ada168af 100644 --- a/perf/runner/src/versions.ts +++ b/perf/runner/src/versions.ts @@ -10,13 +10,13 @@ export const versions: Array = [ { id: "rust-master", implementation: "rust-libp2p", - containerImageID: "mxinden/libp2p-perf@3078e6a9941952486afe4b417a318ce0c372b6e2ef1e296c85f7811c1f170b09", + containerImageID: "mxinden/libp2p-perf@sha256:3078e6a9941952486afe4b417a318ce0c372b6e2ef1e296c85f7811c1f170b09", transportStacks: ["tcp", "quic-v1"] }, { id: "go-v0.27.0", implementation: "go-libp2p", - containerImageID: "mxinden/libp2p-perf@0fb68df50eada9dd10058bd7b6da614f2a31148dc0343be8eb5c7920f7bb4eef", + containerImageID: "mxinden/libp2p-perf@sha256:0fb68df50eada9dd10058bd7b6da614f2a31148dc0343be8eb5c7920f7bb4eef", transportStacks: ["tcp", "quic-v1"] }, { @@ -29,7 +29,7 @@ export const versions: Array = [ { id: "go-https-v0.0.1", implementation: "go-https", - containerImageID: "ca9237cdbdfb13ac68f019bc1373ccfcc207798e461f8e9264d52f981d9d648c", + containerImageID: "mxinden/libp2p-perf@sha256:ca9237cdbdfb13ac68f019bc1373ccfcc207798e461f8e9264d52f981d9d648c", transportStacks: ["tcp"] }, ] From 0dbdf2df4cc850bb9af2b242fd4888f7ccef8aaa Mon Sep 17 00:00:00 2001 From: Max Inden Date: Fri, 14 Apr 2023 17:20:54 +0200 Subject: [PATCH 050/143] Update rust to set tcp nodelay on server --- perf/runner/src/versions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/runner/src/versions.ts b/perf/runner/src/versions.ts index 3ada168af..51297dcdc 100644 --- a/perf/runner/src/versions.ts +++ b/perf/runner/src/versions.ts @@ -10,7 +10,7 @@ export const versions: Array = [ { id: "rust-master", implementation: "rust-libp2p", - containerImageID: "mxinden/libp2p-perf@sha256:3078e6a9941952486afe4b417a318ce0c372b6e2ef1e296c85f7811c1f170b09", + containerImageID: "mxinden/libp2p-perf@sha256:80ef398de86fbb5be128c51de9900db908341d8ea0a77f9df935f449eb47696b", transportStacks: ["tcp", "quic-v1"] }, { From 32bcc2a12760ea7d6a884040a92662852d0899e2 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Fri, 14 Apr 2023 18:17:12 +0200 Subject: [PATCH 051/143] fix(https): don't randomize before write --- perf/impl/go/https/main.go | 44 +++++++++++++++++++++++++------------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/perf/impl/go/https/main.go b/perf/impl/go/https/main.go index ce5d258e9..c4d54239d 100644 --- a/perf/impl/go/https/main.go +++ b/perf/impl/go/https/main.go @@ -23,6 +23,10 @@ import ( "github.com/multiformats/go-multiaddr" ) +const ( + BlockSize = 64 << 10 +) + func handleRequest(w http.ResponseWriter, r *http.Request) { // Read the big-endian bytesToSend value var bytesToSend uint64 @@ -35,18 +39,24 @@ func handleRequest(w http.ResponseWriter, r *http.Request) { // Read and discard the remaining bytes in the request io.Copy(io.Discard, r.Body) - // Generate random bytes and write the response - responseBytes := make([]byte, bytesToSend) - _, err = rand.Read(responseBytes) - if err != nil { - http.Error(w, "Failed to generate random bytes", http.StatusInternalServerError) - return - } + buf := make([]byte, BlockSize) + + for bytesToSend > 0 { + toSend := buf + if bytesToSend < BlockSize { + toSend = buf[:bytesToSend] + } - w.Write(responseBytes) + n, err := w.Write(toSend) + if err != nil { + http.Error(w, "Failed write", http.StatusInternalServerError) + return + } + bytesToSend -= uint64(n) + } } -func runClient(serverAddr string, uploadBytes, downloadBytes, nTimes int) []time.Duration { +func runClient(serverAddr string, uploadBytes, downloadBytes, nTimes int) ([]time.Duration, error) { durations := make([]time.Duration, nTimes) client := &http.Client{ @@ -57,11 +67,10 @@ func runClient(serverAddr string, uploadBytes, downloadBytes, nTimes int) []time }, } - for i := 0; i < nTimes; i++ { - reqBody := make([]byte, 8+uploadBytes) - binary.BigEndian.PutUint64(reqBody, uint64(downloadBytes)) - rand.Read(reqBody[8:]) + reqBody := make([]byte, 8+uploadBytes) + binary.BigEndian.PutUint64(reqBody, uint64(downloadBytes)) + for i := 0; i < nTimes; i++ { startTime := time.Now() resp, err := client.Post(fmt.Sprintf("https://%s/", serverAddr), "application/octet-stream", bytes.NewReader(reqBody)) if err != nil { @@ -72,15 +81,17 @@ func runClient(serverAddr string, uploadBytes, downloadBytes, nTimes int) []time respBody, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Printf("Error reading response: %v\n", err) + return durations, err } else if len(respBody) != downloadBytes { fmt.Printf("Expected %d bytes in response, but received %d\n", downloadBytes, len(respBody)) + return durations, err } resp.Body.Close() durations[i] = time.Since(startTime) } - return durations + return durations, nil } func generateEphemeralCertificate() (tls.Certificate, error) { @@ -205,7 +216,10 @@ func main() { return } // Run the client and print the results - durations := runClient(fmt.Sprintf("%s:%d", ip.String(), port), *uploadBytes, *downloadBytes, *nTimes) + durations, err := runClient(fmt.Sprintf("%s:%d", ip.String(), port), *uploadBytes, *downloadBytes, *nTimes) + if err != nil { + panic(err) + } // Convert durations to seconds and marshal as JSON timesS := make([]float32, 0, len(durations)) From 2cceb891d1fcacb85442988a49309d52226ce5ca Mon Sep 17 00:00:00 2001 From: Max Inden Date: Fri, 14 Apr 2023 18:17:42 +0200 Subject: [PATCH 052/143] fix(go-libp2p-perf): return error --- perf/impl/go/v0.27/perf.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/impl/go/v0.27/perf.go b/perf/impl/go/v0.27/perf.go index 691f983a4..cc7096bcb 100644 --- a/perf/impl/go/v0.27/perf.go +++ b/perf/impl/go/v0.27/perf.go @@ -70,7 +70,7 @@ func (ps *PerfService) sendBytes(ctx context.Context, s network.Stream, bytesToS n, err := s.Write(toSend) if err != nil { - return nil + return err } bytesToSend -= uint64(n) } From fc32953fc0202395cf1aeba04dcb4b6579e7de67 Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Sat, 15 Apr 2023 09:25:26 +0200 Subject: [PATCH 053/143] Update versions.ts --- perf/runner/src/versions.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/perf/runner/src/versions.ts b/perf/runner/src/versions.ts index 51297dcdc..c3e2f7182 100644 --- a/perf/runner/src/versions.ts +++ b/perf/runner/src/versions.ts @@ -22,9 +22,9 @@ export const versions: Array = [ { id: "zig-libp2p-v0.0.1", implementation: "zig-libp2p", - containerImageID: "marcop010/zig-libp2p-perf@sha256:26b174b4ba38b206e216328f6027293f98c1db1e063ec27121609f2e5b9f409a", + containerImageID: "marcop010/zig-libp2p-perf@sha256:6a9f11961092cbebef93a55f5160fdd8584b7a11957b37b70d513e0948164353", transportStacks: ["quic-v1"], - serverAddress: "/ip4/13.56.168.61/udp/35052/quic-v1/p2p/12D3KooWKa5rDq3YhVzvAnvRoCrXhkWpA1CRsfY2hrBt2QYzLWih" + // serverAddress: "/ip4/13.56.168.61/udp/35052/quic-v1/p2p/12D3KooWKa5rDq3YhVzvAnvRoCrXhkWpA1CRsfY2hrBt2QYzLWih" }, { id: "go-https-v0.0.1", From 41ec5fe12e0d74df0630698df3cf23a5ae09d51c Mon Sep 17 00:00:00 2001 From: Marco Munizaga Date: Sat, 15 Apr 2023 11:35:47 +0200 Subject: [PATCH 054/143] Add hack --- perf/runner/src/index.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index 0b0460915..56f5c9b64 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -65,7 +65,13 @@ function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Resul for (const version of versions) { if (version.serverAddress == undefined) { console.error(`Starting ${version.id} server.`); - const serverCMD = `ssh ec2-user@${args.serverPublicIP} 'docker stop $(docker ps -aq); docker run --init -d --restart always --network host --entrypoint /app/server ${version.containerImageID} --secret-key-seed 0'`; + let serverCMD: string + if (version.implementation === "zig-libp2p") { + // Hack! + serverCMD = `ssh ec2-user@${args.serverPublicIP} 'docker stop $(docker ps -aq); docker run --init -d --restart always --network host ${version.containerImageID} --run-server'`; + } else { + serverCMD = `ssh ec2-user@${args.serverPublicIP} 'docker stop $(docker ps -aq); docker run --init -d --restart always --network host --entrypoint /app/server ${version.containerImageID} --secret-key-seed 0'`; + } console.error(serverCMD); const serverSTDOUT = execCommand(serverCMD); console.error(serverSTDOUT); From 8c58889e650c26c273c6ff8f240591a873e44034 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 24 Apr 2023 06:58:03 +0200 Subject: [PATCH 055/143] Build and transfer docker image --- perf/Makefile | 17 ++ perf/impl/go/.gitignore | 4 + perf/impl/go/v0.27/Makefile | 11 ++ perf/impl/https/.gitignore | 4 + perf/impl/{go => }/https/Dockerfile | 0 perf/impl/https/Makefile | 12 ++ perf/impl/{go => }/https/go.mod | 0 perf/impl/{go => }/https/go.sum | 0 perf/impl/{go => }/https/main.go | 0 perf/impl/{go => }/https/server | 0 perf/impl/rust/.gitignore | 4 + perf/impl/rust/v0.51/Makefile | 24 +++ perf/runner/.gitignore | 3 +- perf/runner/package-lock.json | 292 ++++++++++++++++++++++++++++ perf/runner/package.json | 4 +- perf/runner/src/index.ts | 86 +++++--- perf/runner/src/versions.ts | 38 ++-- perf/runner/tsconfig.json | 1 + 18 files changed, 454 insertions(+), 46 deletions(-) create mode 100644 perf/Makefile create mode 100644 perf/impl/go/.gitignore create mode 100644 perf/impl/go/v0.27/Makefile create mode 100644 perf/impl/https/.gitignore rename perf/impl/{go => }/https/Dockerfile (100%) create mode 100644 perf/impl/https/Makefile rename perf/impl/{go => }/https/go.mod (100%) rename perf/impl/{go => }/https/go.sum (100%) rename perf/impl/{go => }/https/main.go (100%) rename perf/impl/{go => }/https/server (100%) create mode 100644 perf/impl/rust/.gitignore create mode 100644 perf/impl/rust/v0.51/Makefile diff --git a/perf/Makefile b/perf/Makefile new file mode 100644 index 000000000..1e715fe2c --- /dev/null +++ b/perf/Makefile @@ -0,0 +1,17 @@ +GO_SUBDIRS := $(wildcard impl/go/*/.) +RUST_SUBDIRS := $(wildcard impl/rust/*/.) +ZIG_SUBDIRS := $(wildcard impl/zig/*/.) +HTTPS_SUBDIRS := $(wildcard impl/https/.) + +all: $(GO_SUBDIRS) $(RUST_SUBDIRS) $(ZIG_SUBDIRS) $(HTTPS_SUBDIRS) +$(GO_SUBDIRS): + $(MAKE) -C $@ +$(RUST_SUBDIRS): + $(MAKE) -C $@ +$(ZIG_SUBDIRS): + $(MAKE) -C $@ +$(HTTPS_SUBDIRS): + $(MAKE) -C $@ + + +.PHONY: $(GO_SUBDIRS) $(RUST_SUBDIRS) $(ZIG_SUBDIRS) $(HTTPS_SUBDIRS) all diff --git a/perf/impl/go/.gitignore b/perf/impl/go/.gitignore new file mode 100644 index 000000000..6652a25c1 --- /dev/null +++ b/perf/impl/go/.gitignore @@ -0,0 +1,4 @@ +go-libp2p-*.zip +go-libp2p-* +go-libp2p-*/* +image.json diff --git a/perf/impl/go/v0.27/Makefile b/perf/impl/go/v0.27/Makefile new file mode 100644 index 000000000..efaef774f --- /dev/null +++ b/perf/impl/go/v0.27/Makefile @@ -0,0 +1,11 @@ +image_name := go-v0.27 + +image.json: Dockerfile main.go go.mod go.sum + IMAGE_NAME=${image_name} docker build -t ${image_name} . + docker image inspect ${image_name} -f "{{.Id}}" | \ + xargs -I {} echo "{\"imageID\": \"{}\"}" > $@ + +.PHONY: clean + +clean: + rm image.json diff --git a/perf/impl/https/.gitignore b/perf/impl/https/.gitignore new file mode 100644 index 000000000..6652a25c1 --- /dev/null +++ b/perf/impl/https/.gitignore @@ -0,0 +1,4 @@ +go-libp2p-*.zip +go-libp2p-* +go-libp2p-*/* +image.json diff --git a/perf/impl/go/https/Dockerfile b/perf/impl/https/Dockerfile similarity index 100% rename from perf/impl/go/https/Dockerfile rename to perf/impl/https/Dockerfile diff --git a/perf/impl/https/Makefile b/perf/impl/https/Makefile new file mode 100644 index 000000000..731064867 --- /dev/null +++ b/perf/impl/https/Makefile @@ -0,0 +1,12 @@ +image_name := https + +all: image.json + +image.json: +# TODO: Consider removing sudo + docker build -t ${image_name} . + docker image inspect ${image_name} -f "{{.Id}}" | \ + xargs -I {} echo "{\"imageID\": \"{}\"}" > $@ + +clean: + rm image.json diff --git a/perf/impl/go/https/go.mod b/perf/impl/https/go.mod similarity index 100% rename from perf/impl/go/https/go.mod rename to perf/impl/https/go.mod diff --git a/perf/impl/go/https/go.sum b/perf/impl/https/go.sum similarity index 100% rename from perf/impl/go/https/go.sum rename to perf/impl/https/go.sum diff --git a/perf/impl/go/https/main.go b/perf/impl/https/main.go similarity index 100% rename from perf/impl/go/https/main.go rename to perf/impl/https/main.go diff --git a/perf/impl/go/https/server b/perf/impl/https/server similarity index 100% rename from perf/impl/go/https/server rename to perf/impl/https/server diff --git a/perf/impl/rust/.gitignore b/perf/impl/rust/.gitignore new file mode 100644 index 000000000..3162eca5c --- /dev/null +++ b/perf/impl/rust/.gitignore @@ -0,0 +1,4 @@ +rust-libp2p-*.zip +rust-libp2p-* +rust-libp2p-*/* +image.json \ No newline at end of file diff --git a/perf/impl/rust/v0.51/Makefile b/perf/impl/rust/v0.51/Makefile new file mode 100644 index 000000000..90b2efef4 --- /dev/null +++ b/perf/impl/rust/v0.51/Makefile @@ -0,0 +1,24 @@ +image_name := rust-v0.51 +commitSha := 3aec5e540e22c7be5eb30267bc4d2a197ad9cda3 + +all: image.json + +image.json: rust-libp2p-${commitSha} +# TODO: Consider removing sudo + cd rust-libp2p-${commitSha} && docker build -t ${image_name} -f protocols/perf/Dockerfile . + docker image inspect ${image_name} -f "{{.Id}}" | \ + xargs -I {} echo "{\"imageID\": \"{}\"}" > $@ + +rust-libp2p-${commitSha}: rust-libp2p-${commitSha}.zip + unzip -o rust-libp2p-${commitSha}.zip + +rust-libp2p-${commitSha}.zip: +# TODO: Change to libp2p + wget -O $@ "https://github.com/mxinden/rust-libp2p/archive/${commitSha}.zip" + +clean: + rm image.json + rm rust-libp2p-*.zip + rm -rf rust-libp2p-* + +.PHONY: all clean diff --git a/perf/runner/.gitignore b/perf/runner/.gitignore index 6a7f7218f..45d48a3e1 100644 --- a/perf/runner/.gitignore +++ b/perf/runner/.gitignore @@ -1,2 +1,3 @@ # Ignore built ts files -dist/**/* \ No newline at end of file +dist/**/* +benchmark-results.json \ No newline at end of file diff --git a/perf/runner/package-lock.json b/perf/runner/package-lock.json index 5c01455df..20894f50c 100644 --- a/perf/runner/package-lock.json +++ b/perf/runner/package-lock.json @@ -14,9 +14,71 @@ "devDependencies": { "@types/node": "^18.15.11", "@types/yargs": "^17.0.24", + "ts-node": "^10.9.1", "typescript": "^5.0.4" } }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true + }, "node_modules/@types/node": { "version": "18.15.11", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", @@ -38,6 +100,27 @@ "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", "dev": true }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -60,6 +143,12 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -89,6 +178,21 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -118,6 +222,12 @@ "node": ">=8" } }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -150,6 +260,49 @@ "node": ">=8" } }, + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, "node_modules/typescript": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", @@ -163,6 +316,12 @@ "node": ">=12.20" } }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -211,9 +370,73 @@ "engines": { "node": ">=12" } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } } }, "dependencies": { + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true + }, "@types/node": { "version": "18.15.11", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", @@ -235,6 +458,18 @@ "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", "dev": true }, + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -248,6 +483,12 @@ "color-convert": "^2.0.1" } }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, "cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -271,6 +512,18 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -291,6 +544,12 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -314,12 +573,39 @@ "ansi-regex": "^5.0.1" } }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + }, "typescript": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", "dev": true }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -353,6 +639,12 @@ "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true } } } diff --git a/perf/runner/package.json b/perf/runner/package.json index bf52ccef9..bc320c2ec 100644 --- a/perf/runner/package.json +++ b/perf/runner/package.json @@ -4,14 +4,14 @@ "description": "", "main": "index.js", "scripts": { - "build": "tsc", - "start": "tsc && node ./dist/index.js" + "start": "ts-node src/index.ts" }, "author": "", "license": "ISC", "devDependencies": { "@types/node": "^18.15.11", "@types/yargs": "^17.0.24", + "ts-node": "^10.9.1", "typescript": "^5.0.4" }, "dependencies": { diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index 56f5c9b64..35ce6696a 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -4,45 +4,64 @@ import yargs from 'yargs'; import fs from 'fs'; import { BenchmarkResults, Benchmark, Result } from './benchmark-result-type'; +// TODO: go and zig does multiple requests on a SINGLE connection. + async function main(clientPublicIP: string, serverPublicIP: string) { + for (const version of versions) { + transferDockerImage(serverPublicIP, version.containerImageID); + transferDockerImage(clientPublicIP, version.containerImageID); + } + const benchmarkResults: BenchmarkResults = { benchmarks: [ { - name: "Single Connection throughput – Upload 100 MiB", - unit: "s", - results: runBenchmarkAcrossVersions({ - clientPublicIP, - serverPublicIP, - uploadBytes: 100 << 20, - downloadBytes: 0, - nTimes: 1, - }), - comparisons: [], - }, - { - name: "Single Connection throughput – Download 100 MiB", + name: "Dummy", unit: "s", results: runBenchmarkAcrossVersions({ clientPublicIP, serverPublicIP, uploadBytes: 0, - downloadBytes: 100 << 20, + downloadBytes: 0, nTimes: 1, }), comparisons: [], }, - { - name: "Single Connection 1 byte round trip latency", - unit: "s", - results: runBenchmarkAcrossVersions({ - clientPublicIP, - serverPublicIP, - uploadBytes: 1, - downloadBytes: 1, - nTimes: 10, - }), - comparisons: [], - } + // { + // name: "Single Connection throughput – Upload 100 MiB", + // unit: "s", + // results: runBenchmarkAcrossVersions({ + // clientPublicIP, + // serverPublicIP, + // uploadBytes: 100 << 20, + // downloadBytes: 0, + // nTimes: 1, + // }), + // comparisons: [], + // }, + // { + // name: "Single Connection throughput – Download 100 MiB", + // unit: "s", + // results: runBenchmarkAcrossVersions({ + // clientPublicIP, + // serverPublicIP, + // uploadBytes: 0, + // downloadBytes: 100 << 20, + // nTimes: 1, + // }), + // comparisons: [], + // }, + // { + // name: "Single Connection 1 byte round trip latency", + // unit: "s", + // results: runBenchmarkAcrossVersions({ + // clientPublicIP, + // serverPublicIP, + // uploadBytes: 1, + // downloadBytes: 1, + // nTimes: 10, + // }), + // comparisons: [], + // } ], }; @@ -63,6 +82,7 @@ interface ArgsRunBenchmarkAcrossVersions { function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Result[] { const results: Result[] = []; for (const version of versions) { + // The `if` is a hack for zig. if (version.serverAddress == undefined) { console.error(`Starting ${version.id} server.`); let serverCMD: string @@ -171,6 +191,20 @@ function execCommand(cmd: string): string { } } +async function transferDockerImage(serverIp: string, imageSha256: string): Promise { + const imageName = `image-${imageSha256.slice(0, 12)}`; + const tarballName = `${imageName}.tar`; + + // Save the Docker image as a tarball, transfer it using rsync, load it on the remote server, and clean up tarball files locally. + console.log(`Transferring Docker image ${imageSha256} to ${serverIp}`); + execCommand(`docker save -o ${tarballName} ${imageSha256} && + rsync -avz --progress ./${tarballName} ec2-user@${serverIp}:/tmp/ && + ssh ec2-user@${serverIp} 'docker load -i /tmp/${tarballName}' && + rm ${tarballName}`); + + console.log(`Docker image ${imageSha256} transferred successfully to ${serverIp}`); +} + const argv = yargs .options({ 'client-public-ip': { diff --git a/perf/runner/src/versions.ts b/perf/runner/src/versions.ts index c3e2f7182..79f77fc4f 100644 --- a/perf/runner/src/versions.ts +++ b/perf/runner/src/versions.ts @@ -1,6 +1,10 @@ +import rustv051 from "../../impl/rust/v0.51/image.json" +import go027 from "../../impl/go/v0.27/image.json" +import https from "../../impl/https/image.json" + export type Version = { id: string, - implementation: "go-libp2p" | "js-libp2p" | "nim-libp2p" | "rust-libp2p" | "zig-libp2p" | "go-https", + implementation: "go-libp2p" | "js-libp2p" | "nim-libp2p" | "rust-libp2p" | "zig-libp2p" | "https", containerImageID: string, transportStacks: string[], serverAddress?: string, @@ -8,28 +12,28 @@ export type Version = { export const versions: Array = [ { - id: "rust-master", + id: "rust-v0.51", implementation: "rust-libp2p", - containerImageID: "mxinden/libp2p-perf@sha256:80ef398de86fbb5be128c51de9900db908341d8ea0a77f9df935f449eb47696b", + containerImageID: rustv051.imageID, transportStacks: ["tcp", "quic-v1"] }, + { + id: "https", + implementation: "https", + containerImageID: https.imageID, + transportStacks: ["tcp"] + }, { id: "go-v0.27.0", implementation: "go-libp2p", - containerImageID: "mxinden/libp2p-perf@sha256:0fb68df50eada9dd10058bd7b6da614f2a31148dc0343be8eb5c7920f7bb4eef", + containerImageID: go027.imageID, transportStacks: ["tcp", "quic-v1"] }, - { - id: "zig-libp2p-v0.0.1", - implementation: "zig-libp2p", - containerImageID: "marcop010/zig-libp2p-perf@sha256:6a9f11961092cbebef93a55f5160fdd8584b7a11957b37b70d513e0948164353", - transportStacks: ["quic-v1"], - // serverAddress: "/ip4/13.56.168.61/udp/35052/quic-v1/p2p/12D3KooWKa5rDq3YhVzvAnvRoCrXhkWpA1CRsfY2hrBt2QYzLWih" - }, - { - id: "go-https-v0.0.1", - implementation: "go-https", - containerImageID: "mxinden/libp2p-perf@sha256:ca9237cdbdfb13ac68f019bc1373ccfcc207798e461f8e9264d52f981d9d648c", - transportStacks: ["tcp"] - }, + // { + // id: "zig-libp2p-v0.0.1", + // implementation: "zig-libp2p", + // containerImageID: "marcop010/zig-libp2p-perf@sha256:6a9f11961092cbebef93a55f5160fdd8584b7a11957b37b70d513e0948164353", + // transportStacks: ["quic-v1"], + // // serverAddress: "/ip4/13.56.168.61/udp/35052/quic-v1/p2p/12D3KooWKa5rDq3YhVzvAnvRoCrXhkWpA1CRsfY2hrBt2QYzLWih" + // }, ] diff --git a/perf/runner/tsconfig.json b/perf/runner/tsconfig.json index a1b7fac69..183dbe70f 100644 --- a/perf/runner/tsconfig.json +++ b/perf/runner/tsconfig.json @@ -4,6 +4,7 @@ "module": "commonjs", "outDir": "./dist", "strict": true, + "resolveJsonModule": true, "esModuleInterop": true }, "include": [ From 9686211068515d5b365705ef25d7b62da84b2acd Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 24 Apr 2023 09:04:01 +0200 Subject: [PATCH 056/143] Remove server entry point in favor of --run-server flag --- perf/impl/go/v0.27/Dockerfile | 1 - perf/impl/go/v0.27/server | 2 -- perf/impl/https/Dockerfile | 1 - perf/impl/https/server | 2 -- perf/impl/rust/v0.51/Makefile | 3 ++- perf/runner/src/index.ts | 2 +- 6 files changed, 3 insertions(+), 8 deletions(-) delete mode 100755 perf/impl/go/v0.27/server delete mode 100755 perf/impl/https/server diff --git a/perf/impl/go/v0.27/Dockerfile b/perf/impl/go/v0.27/Dockerfile index d70a84437..5bb5b5aae 100644 --- a/perf/impl/go/v0.27/Dockerfile +++ b/perf/impl/go/v0.27/Dockerfile @@ -10,6 +10,5 @@ RUN go build -o perf . FROM alpine COPY --from=builder /app/perf /app/perf -COPY server /app/server ENTRYPOINT [ "/app/perf" ] diff --git a/perf/impl/go/v0.27/server b/perf/impl/go/v0.27/server deleted file mode 100755 index 59685e5cb..000000000 --- a/perf/impl/go/v0.27/server +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env sh -/app/perf --run-server diff --git a/perf/impl/https/Dockerfile b/perf/impl/https/Dockerfile index 50dbb4d30..eac77ccca 100644 --- a/perf/impl/https/Dockerfile +++ b/perf/impl/https/Dockerfile @@ -10,6 +10,5 @@ RUN go build -o perf . FROM alpine COPY --from=builder /app/perf /app/perf -COPY server /app/server ENTRYPOINT [ "/app/perf" ] \ No newline at end of file diff --git a/perf/impl/https/server b/perf/impl/https/server deleted file mode 100755 index 0372a3d60..000000000 --- a/perf/impl/https/server +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env sh -/app/perf --run-server \ No newline at end of file diff --git a/perf/impl/rust/v0.51/Makefile b/perf/impl/rust/v0.51/Makefile index 90b2efef4..730c22b77 100644 --- a/perf/impl/rust/v0.51/Makefile +++ b/perf/impl/rust/v0.51/Makefile @@ -1,5 +1,6 @@ image_name := rust-v0.51 -commitSha := 3aec5e540e22c7be5eb30267bc4d2a197ad9cda3 +commitSha := cef0f2355aafa41911fbdbcba17ca8a4cb7871d6 + all: image.json diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index 35ce6696a..e86c53068 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -90,7 +90,7 @@ function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Resul // Hack! serverCMD = `ssh ec2-user@${args.serverPublicIP} 'docker stop $(docker ps -aq); docker run --init -d --restart always --network host ${version.containerImageID} --run-server'`; } else { - serverCMD = `ssh ec2-user@${args.serverPublicIP} 'docker stop $(docker ps -aq); docker run --init -d --restart always --network host --entrypoint /app/server ${version.containerImageID} --secret-key-seed 0'`; + serverCMD = `ssh ec2-user@${args.serverPublicIP} 'docker stop $(docker ps -aq); docker run --init -d --restart always --network host ${version.containerImageID} --run-server --secret-key-seed 0'`; } console.error(serverCMD); const serverSTDOUT = execCommand(serverCMD); From 760b241921cdf4e0e4ade6701da9414bf19f6566 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 24 Apr 2023 09:27:06 +0200 Subject: [PATCH 057/143] Allow ICMP to test MTU --- perf/terraform/region/main.tf | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/perf/terraform/region/main.tf b/perf/terraform/region/main.tf index b83c4ec8b..d4b952d13 100644 --- a/perf/terraform/region/main.tf +++ b/perf/terraform/region/main.tf @@ -69,6 +69,14 @@ resource "aws_security_group" "restricted_inbound" { description = "Allow SSH and port 4001 inbound traffic (TCP and UDP), allow all outbound traffic" vpc_id = aws_vpc.perf.id + # ICMP + ingress { + from_port = -1 + to_port = -1 + protocol = "icmp" + cidr_blocks = ["0.0.0.0/0"] + } + # SSH (TCP) ingress { from_port = 22 From efe7f6ea44fdaba83aa513d31a90cb2d1b6323e4 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 24 Apr 2023 10:03:02 +0200 Subject: [PATCH 058/143] Move perf-dashboard to perf/dashboard --- {perf-dashboard => perf/dashboard}/README.md | 0 {perf-dashboard => perf/dashboard}/benchmark-result-type.ts | 0 {perf-dashboard => perf/dashboard}/benchmarks.schema.json | 0 {perf-dashboard => perf/dashboard}/example-data.json | 0 {perf-dashboard => perf/dashboard}/util/.gitignore | 0 {perf-dashboard => perf/dashboard}/util/README.md | 0 {perf-dashboard => perf/dashboard}/util/main.ts | 0 {perf-dashboard => perf/dashboard}/util/package-lock.json | 0 {perf-dashboard => perf/dashboard}/util/package.json | 0 {perf-dashboard => perf/dashboard}/util/tsconfig.json | 0 10 files changed, 0 insertions(+), 0 deletions(-) rename {perf-dashboard => perf/dashboard}/README.md (100%) rename {perf-dashboard => perf/dashboard}/benchmark-result-type.ts (100%) rename {perf-dashboard => perf/dashboard}/benchmarks.schema.json (100%) rename {perf-dashboard => perf/dashboard}/example-data.json (100%) rename {perf-dashboard => perf/dashboard}/util/.gitignore (100%) rename {perf-dashboard => perf/dashboard}/util/README.md (100%) rename {perf-dashboard => perf/dashboard}/util/main.ts (100%) rename {perf-dashboard => perf/dashboard}/util/package-lock.json (100%) rename {perf-dashboard => perf/dashboard}/util/package.json (100%) rename {perf-dashboard => perf/dashboard}/util/tsconfig.json (100%) diff --git a/perf-dashboard/README.md b/perf/dashboard/README.md similarity index 100% rename from perf-dashboard/README.md rename to perf/dashboard/README.md diff --git a/perf-dashboard/benchmark-result-type.ts b/perf/dashboard/benchmark-result-type.ts similarity index 100% rename from perf-dashboard/benchmark-result-type.ts rename to perf/dashboard/benchmark-result-type.ts diff --git a/perf-dashboard/benchmarks.schema.json b/perf/dashboard/benchmarks.schema.json similarity index 100% rename from perf-dashboard/benchmarks.schema.json rename to perf/dashboard/benchmarks.schema.json diff --git a/perf-dashboard/example-data.json b/perf/dashboard/example-data.json similarity index 100% rename from perf-dashboard/example-data.json rename to perf/dashboard/example-data.json diff --git a/perf-dashboard/util/.gitignore b/perf/dashboard/util/.gitignore similarity index 100% rename from perf-dashboard/util/.gitignore rename to perf/dashboard/util/.gitignore diff --git a/perf-dashboard/util/README.md b/perf/dashboard/util/README.md similarity index 100% rename from perf-dashboard/util/README.md rename to perf/dashboard/util/README.md diff --git a/perf-dashboard/util/main.ts b/perf/dashboard/util/main.ts similarity index 100% rename from perf-dashboard/util/main.ts rename to perf/dashboard/util/main.ts diff --git a/perf-dashboard/util/package-lock.json b/perf/dashboard/util/package-lock.json similarity index 100% rename from perf-dashboard/util/package-lock.json rename to perf/dashboard/util/package-lock.json diff --git a/perf-dashboard/util/package.json b/perf/dashboard/util/package.json similarity index 100% rename from perf-dashboard/util/package.json rename to perf/dashboard/util/package.json diff --git a/perf-dashboard/util/tsconfig.json b/perf/dashboard/util/tsconfig.json similarity index 100% rename from perf-dashboard/util/tsconfig.json rename to perf/dashboard/util/tsconfig.json From 75d7634a045d3e540f09f3733258de92ffe40f74 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 24 Apr 2023 10:22:24 +0200 Subject: [PATCH 059/143] Adjust single connection benchmark behavior --- perf/impl/rust/v0.51/Makefile | 3 +-- perf/runner/src/index.ts | 46 +++++++++++++++++------------------ 2 files changed, 23 insertions(+), 26 deletions(-) diff --git a/perf/impl/rust/v0.51/Makefile b/perf/impl/rust/v0.51/Makefile index 730c22b77..21b4461da 100644 --- a/perf/impl/rust/v0.51/Makefile +++ b/perf/impl/rust/v0.51/Makefile @@ -1,6 +1,5 @@ image_name := rust-v0.51 -commitSha := cef0f2355aafa41911fbdbcba17ca8a4cb7871d6 - +commitSha := 66a28b37d8deb4d0e38e61f5d3ca0d34368f5770 all: image.json diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index e86c53068..6ba3662ba 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -4,8 +4,6 @@ import yargs from 'yargs'; import fs from 'fs'; import { BenchmarkResults, Benchmark, Result } from './benchmark-result-type'; -// TODO: go and zig does multiple requests on a SINGLE connection. - async function main(clientPublicIP: string, serverPublicIP: string) { for (const version of versions) { transferDockerImage(serverPublicIP, version.containerImageID); @@ -14,54 +12,54 @@ async function main(clientPublicIP: string, serverPublicIP: string) { const benchmarkResults: BenchmarkResults = { benchmarks: [ - { - name: "Dummy", - unit: "s", - results: runBenchmarkAcrossVersions({ - clientPublicIP, - serverPublicIP, - uploadBytes: 0, - downloadBytes: 0, - nTimes: 1, - }), - comparisons: [], - }, // { - // name: "Single Connection throughput – Upload 100 MiB", + // name: "Dummy", // unit: "s", // results: runBenchmarkAcrossVersions({ // clientPublicIP, // serverPublicIP, - // uploadBytes: 100 << 20, + // uploadBytes: 0, // downloadBytes: 0, // nTimes: 1, // }), // comparisons: [], // }, // { - // name: "Single Connection throughput – Download 100 MiB", + // name: "Single Connection throughput – Upload 100 MiB", // unit: "s", // results: runBenchmarkAcrossVersions({ // clientPublicIP, // serverPublicIP, - // uploadBytes: 0, - // downloadBytes: 100 << 20, + // uploadBytes: 100 << 20, + // downloadBytes: 0, // nTimes: 1, // }), // comparisons: [], // }, // { - // name: "Single Connection 1 byte round trip latency", + // name: "Single Connection throughput – Download 100 MiB", // unit: "s", // results: runBenchmarkAcrossVersions({ // clientPublicIP, // serverPublicIP, - // uploadBytes: 1, - // downloadBytes: 1, - // nTimes: 10, + // uploadBytes: 0, + // downloadBytes: 100 << 20, + // nTimes: 1, // }), // comparisons: [], - // } + // }, + { + name: "Single Connection, n 1 byte round trip latencies", + unit: "s", + results: runBenchmarkAcrossVersions({ + clientPublicIP, + serverPublicIP, + uploadBytes: 1, + downloadBytes: 1, + nTimes: 10, + }), + comparisons: [], + } ], }; From 274e62b96dd4e8f2deaabb3b31fff7b762d43cec Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 27 Apr 2023 15:57:39 +0900 Subject: [PATCH 060/143] Commit benchmark-results.json --- perf/runner/.gitignore | 3 +- perf/runner/benchmark-results.json | 190 +++++++++++++++++++++++++++++ perf/runner/src/index.ts | 50 ++++---- 3 files changed, 216 insertions(+), 27 deletions(-) create mode 100644 perf/runner/benchmark-results.json diff --git a/perf/runner/.gitignore b/perf/runner/.gitignore index 45d48a3e1..6a7f7218f 100644 --- a/perf/runner/.gitignore +++ b/perf/runner/.gitignore @@ -1,3 +1,2 @@ # Ignore built ts files -dist/**/* -benchmark-results.json \ No newline at end of file +dist/**/* \ No newline at end of file diff --git a/perf/runner/benchmark-results.json b/perf/runner/benchmark-results.json new file mode 100644 index 000000000..b50f9e3bf --- /dev/null +++ b/perf/runner/benchmark-results.json @@ -0,0 +1,190 @@ +{ + "benchmarks": [ + { + "name": "Single Connection throughput – Upload 100 MiB", + "unit": "s", + "results": [ + { + "result": [ + 41.098043167 + ], + "implementation": "rust-libp2p", + "version": "rust-v0.51", + "transportStack": "tcp" + }, + { + "result": [ + 13.449494152 + ], + "implementation": "rust-libp2p", + "version": "rust-v0.51", + "transportStack": "quic-v1" + }, + { + "result": [ + 2.8256333 + ], + "implementation": "https", + "version": "https", + "transportStack": "tcp" + }, + { + "result": [ + 2.9791832 + ], + "implementation": "go-libp2p", + "version": "go-v0.27.0", + "transportStack": "tcp" + }, + { + "result": [ + 1.3350164 + ], + "implementation": "go-libp2p", + "version": "go-v0.27.0", + "transportStack": "quic-v1" + } + ], + "comparisons": [] + }, + { + "name": "Single Connection throughput – Download 100 MiB", + "unit": "s", + "results": [ + { + "result": [ + 34.715031397 + ], + "implementation": "rust-libp2p", + "version": "rust-v0.51", + "transportStack": "tcp" + }, + { + "result": [ + 14.05263423 + ], + "implementation": "rust-libp2p", + "version": "rust-v0.51", + "transportStack": "quic-v1" + }, + { + "result": [ + 2.8607457 + ], + "implementation": "https", + "version": "https", + "transportStack": "tcp" + }, + { + "result": [ + 3.104271 + ], + "implementation": "go-libp2p", + "version": "go-v0.27.0", + "transportStack": "tcp" + }, + { + "result": [ + 1.355488 + ], + "implementation": "go-libp2p", + "version": "go-v0.27.0", + "transportStack": "quic-v1" + } + ], + "comparisons": [] + }, + { + "name": "Single Connection, n sequential 1 byte round trip latencies", + "unit": "s", + "results": [ + { + "result": [ + 0.12692197, + 0.126828624, + 0.126759373, + 0.126712122, + 0.126815625, + 0.126758252, + 0.126737014, + 0.126667496, + 0.126680218, + 0.12669882 + ], + "implementation": "rust-libp2p", + "version": "rust-v0.51", + "transportStack": "tcp" + }, + { + "result": [ + 0.12562123, + 0.125127867, + 0.125152325, + 0.125205034, + 0.125154511, + 0.125183496, + 0.125154703, + 0.125141522, + 0.125191054, + 0.125227742 + ], + "implementation": "rust-libp2p", + "version": "rust-v0.51", + "transportStack": "quic-v1" + }, + { + "result": [ + 0.19480446, + 0.063601434, + 0.0634733, + 0.06349056, + 0.06353159, + 0.06350989, + 0.06343663, + 0.06342832, + 0.063414305, + 0.063426375 + ], + "implementation": "https", + "version": "https", + "transportStack": "tcp" + }, + { + "result": [ + 0.12248421, + 0.061669473, + 0.061632466, + 0.061567824, + 0.06166743, + 0.061573148, + 0.06154374, + 0.061550982, + 0.06156597, + 0.061559618 + ], + "implementation": "go-libp2p", + "version": "go-v0.27.0", + "transportStack": "tcp" + }, + { + "result": [ + 0.06322579, + 0.06305969, + 0.063022934, + 0.06300724, + 0.06302576, + 0.063024364, + 0.06301455, + 0.06300056, + 0.06299013, + 0.06297389 + ], + "implementation": "go-libp2p", + "version": "go-v0.27.0", + "transportStack": "quic-v1" + } + ], + "comparisons": [] + } + ] +} \ No newline at end of file diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index 6ba3662ba..63705becf 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -24,32 +24,32 @@ async function main(clientPublicIP: string, serverPublicIP: string) { // }), // comparisons: [], // }, - // { - // name: "Single Connection throughput – Upload 100 MiB", - // unit: "s", - // results: runBenchmarkAcrossVersions({ - // clientPublicIP, - // serverPublicIP, - // uploadBytes: 100 << 20, - // downloadBytes: 0, - // nTimes: 1, - // }), - // comparisons: [], - // }, - // { - // name: "Single Connection throughput – Download 100 MiB", - // unit: "s", - // results: runBenchmarkAcrossVersions({ - // clientPublicIP, - // serverPublicIP, - // uploadBytes: 0, - // downloadBytes: 100 << 20, - // nTimes: 1, - // }), - // comparisons: [], - // }, { - name: "Single Connection, n 1 byte round trip latencies", + name: "Single Connection throughput – Upload 100 MiB", + unit: "s", + results: runBenchmarkAcrossVersions({ + clientPublicIP, + serverPublicIP, + uploadBytes: 100 << 20, + downloadBytes: 0, + nTimes: 1, + }), + comparisons: [], + }, + { + name: "Single Connection throughput – Download 100 MiB", + unit: "s", + results: runBenchmarkAcrossVersions({ + clientPublicIP, + serverPublicIP, + uploadBytes: 0, + downloadBytes: 100 << 20, + nTimes: 1, + }), + comparisons: [], + }, + { + name: "Single Connection, n sequential 1 byte round trip latencies", unit: "s", results: runBenchmarkAcrossVersions({ clientPublicIP, From 6dfb186a6bffd54fe7272a39e6bb0eea7898cee1 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Fri, 28 Apr 2023 16:52:53 +0900 Subject: [PATCH 061/143] Don't ignore unit --- perf/runner/benchmark-results.json | 120 +++++++++++------------ perf/runner/src/benchmark-result-type.ts | 2 +- perf/runner/src/index.ts | 14 ++- 3 files changed, 74 insertions(+), 62 deletions(-) diff --git a/perf/runner/benchmark-results.json b/perf/runner/benchmark-results.json index b50f9e3bf..04bc59b1a 100644 --- a/perf/runner/benchmark-results.json +++ b/perf/runner/benchmark-results.json @@ -6,7 +6,7 @@ "results": [ { "result": [ - 41.098043167 + 23406159.544796765 ], "implementation": "rust-libp2p", "version": "rust-v0.51", @@ -14,7 +14,7 @@ }, { "result": [ - 13.449494152 + 39428121.20790879 ], "implementation": "rust-libp2p", "version": "rust-v0.51", @@ -22,7 +22,7 @@ }, { "result": [ - 2.8256333 + 304945724.4676996 ], "implementation": "https", "version": "https", @@ -30,7 +30,7 @@ }, { "result": [ - 2.9791832 + 284325146.50597924 ], "implementation": "go-libp2p", "version": "go-v0.27.0", @@ -38,7 +38,7 @@ }, { "result": [ - 1.3350164 + 599265431.5559248 ], "implementation": "go-libp2p", "version": "go-v0.27.0", @@ -53,7 +53,7 @@ "results": [ { "result": [ - 34.715031397 + 23961404.991889708 ], "implementation": "rust-libp2p", "version": "rust-v0.51", @@ -61,7 +61,7 @@ }, { "result": [ - 14.05263423 + 103128478.99271105 ], "implementation": "rust-libp2p", "version": "rust-v0.51", @@ -69,7 +69,7 @@ }, { "result": [ - 2.8607457 + 284641600.6801043 ], "implementation": "https", "version": "https", @@ -77,7 +77,7 @@ }, { "result": [ - 3.104271 + 257791829.43948787 ], "implementation": "go-libp2p", "version": "go-v0.27.0", @@ -85,7 +85,7 @@ }, { "result": [ - 1.355488 + 625794439.4868261 ], "implementation": "go-libp2p", "version": "go-v0.27.0", @@ -100,16 +100,16 @@ "results": [ { "result": [ - 0.12692197, - 0.126828624, - 0.126759373, - 0.126712122, - 0.126815625, - 0.126758252, - 0.126737014, - 0.126667496, - 0.126680218, - 0.12669882 + 0.124772602, + 0.124641525, + 0.12467174, + 0.124650239, + 0.124581189, + 0.124664834, + 0.124593654, + 0.124647765, + 0.12462795, + 0.124649686 ], "implementation": "rust-libp2p", "version": "rust-v0.51", @@ -117,16 +117,16 @@ }, { "result": [ - 0.12562123, - 0.125127867, - 0.125152325, - 0.125205034, - 0.125154511, - 0.125183496, - 0.125154703, - 0.125141522, - 0.125191054, - 0.125227742 + 0.125645928, + 0.125200758, + 0.125231605, + 0.125165499, + 0.125179056, + 0.125157424, + 0.125163505, + 0.12517943, + 0.125181199, + 0.125153868 ], "implementation": "rust-libp2p", "version": "rust-v0.51", @@ -134,16 +134,16 @@ }, { "result": [ - 0.19480446, - 0.063601434, - 0.0634733, - 0.06349056, - 0.06353159, - 0.06350989, - 0.06343663, - 0.06342832, - 0.063414305, - 0.063426375 + 0.18095565, + 0.05944898, + 0.05928111, + 0.059358, + 0.05925588, + 0.05928937, + 0.059299465, + 0.059299897, + 0.059323523, + 0.05930088 ], "implementation": "https", "version": "https", @@ -151,16 +151,16 @@ }, { "result": [ - 0.12248421, - 0.061669473, - 0.061632466, - 0.061567824, - 0.06166743, - 0.061573148, - 0.06154374, - 0.061550982, - 0.06156597, - 0.061559618 + 0.12598644, + 0.0634478, + 0.063379124, + 0.06350212, + 0.06339974, + 0.06331283, + 0.06329939, + 0.06339211, + 0.06339262, + 0.06339976 ], "implementation": "go-libp2p", "version": "go-v0.27.0", @@ -168,16 +168,16 @@ }, { "result": [ - 0.06322579, - 0.06305969, - 0.063022934, - 0.06300724, - 0.06302576, - 0.063024364, - 0.06301455, - 0.06300056, - 0.06299013, - 0.06297389 + 0.062408023, + 0.062327057, + 0.062376957, + 0.06230008, + 0.06228861, + 0.06228707, + 0.062292684, + 0.06227601, + 0.06226655, + 0.062255222 ], "implementation": "go-libp2p", "version": "go-v0.27.0", diff --git a/perf/runner/src/benchmark-result-type.ts b/perf/runner/src/benchmark-result-type.ts index 4d8469e33..db618af46 100644 --- a/perf/runner/src/benchmark-result-type.ts +++ b/perf/runner/src/benchmark-result-type.ts @@ -6,7 +6,7 @@ export type BenchmarkResults = { export type Benchmark = { name: string, - unit: "bits/s" | "s", + unit: "bit/s" | "s", results: Result[], comparisons: Comparison[], diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index 63705becf..0d6fdabb4 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -21,6 +21,7 @@ async function main(clientPublicIP: string, serverPublicIP: string) { // uploadBytes: 0, // downloadBytes: 0, // nTimes: 1, + // unit: "s", // }), // comparisons: [], // }, @@ -33,6 +34,7 @@ async function main(clientPublicIP: string, serverPublicIP: string) { uploadBytes: 100 << 20, downloadBytes: 0, nTimes: 1, + unit: "bit/s", }), comparisons: [], }, @@ -45,6 +47,7 @@ async function main(clientPublicIP: string, serverPublicIP: string) { uploadBytes: 0, downloadBytes: 100 << 20, nTimes: 1, + unit: "bit/s", }), comparisons: [], }, @@ -57,6 +60,7 @@ async function main(clientPublicIP: string, serverPublicIP: string) { uploadBytes: 1, downloadBytes: 1, nTimes: 10, + unit: "s", }), comparisons: [], } @@ -75,6 +79,7 @@ interface ArgsRunBenchmarkAcrossVersions { uploadBytes: number, downloadBytes: number, nTimes: number, + unit: "bit/s" | "s", } function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Result[] { @@ -105,10 +110,17 @@ function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Resul uploadBytes: args.uploadBytes, downloadBytes: args.downloadBytes, nTimes: args.nTimes, + }).latencies.map(l => { + switch(args.unit) { + case "bit/s": + return (args.uploadBytes + args.downloadBytes) * 8 / l; + case "s": + return l; + } }); results.push({ - result: latencies.latencies, + result: latencies, implementation: version.implementation, version: version.id, transportStack: transportStack, From a265a2d478fd2b39a1beb2eeb6902cef70208a4c Mon Sep 17 00:00:00 2001 From: Max Inden Date: Fri, 28 Apr 2023 17:37:38 +0900 Subject: [PATCH 062/143] Measure connection establishment + 1 byte round trip latencies --- perf/runner/benchmark-results.json | 572 ++++++++++++++++++++++++++--- perf/runner/src/index.ts | 56 +-- 2 files changed, 539 insertions(+), 89 deletions(-) diff --git a/perf/runner/benchmark-results.json b/perf/runner/benchmark-results.json index 04bc59b1a..e08485c25 100644 --- a/perf/runner/benchmark-results.json +++ b/perf/runner/benchmark-results.json @@ -6,7 +6,7 @@ "results": [ { "result": [ - 23406159.544796765 + 23689393.36269186 ], "implementation": "rust-libp2p", "version": "rust-v0.51", @@ -14,7 +14,7 @@ }, { "result": [ - 39428121.20790879 + 93045362.68786794 ], "implementation": "rust-libp2p", "version": "rust-v0.51", @@ -22,7 +22,7 @@ }, { "result": [ - 304945724.4676996 + 295248144.62590885 ], "implementation": "https", "version": "https", @@ -30,7 +30,7 @@ }, { "result": [ - 284325146.50597924 + 265912739.71105927 ], "implementation": "go-libp2p", "version": "go-v0.27.0", @@ -38,7 +38,7 @@ }, { "result": [ - 599265431.5559248 + 606427199.744145 ], "implementation": "go-libp2p", "version": "go-v0.27.0", @@ -53,7 +53,7 @@ "results": [ { "result": [ - 23961404.991889708 + 20508406.28717806 ], "implementation": "rust-libp2p", "version": "rust-v0.51", @@ -61,7 +61,7 @@ }, { "result": [ - 103128478.99271105 + 32462306.61655686 ], "implementation": "rust-libp2p", "version": "rust-v0.51", @@ -69,7 +69,7 @@ }, { "result": [ - 284641600.6801043 + 298499674.5849223 ], "implementation": "https", "version": "https", @@ -77,7 +77,7 @@ }, { "result": [ - 257791829.43948787 + 279285263.9925077 ], "implementation": "go-libp2p", "version": "go-v0.27.0", @@ -85,7 +85,7 @@ }, { "result": [ - 625794439.4868261 + 631227577.9202543 ], "implementation": "go-libp2p", "version": "go-v0.27.0", @@ -95,21 +95,111 @@ "comparisons": [] }, { - "name": "Single Connection, n sequential 1 byte round trip latencies", + "name": "Connection establishment + 1 byte round trip latencies", "unit": "s", "results": [ { "result": [ - 0.124772602, - 0.124641525, - 0.12467174, - 0.124650239, - 0.124581189, - 0.124664834, - 0.124593654, - 0.124647765, - 0.12462795, - 0.124649686 + 0.126319235, + 0.126144079, + 0.12323905, + 0.126985715, + 0.118083106, + 0.125713184, + 0.12444581, + 0.129616664, + 0.124222977, + 0.117873216, + 0.121232909, + 0.125176963, + 0.126967664, + 0.122178806, + 0.120848342, + 0.123407271, + 0.120451258, + 0.123857808, + 0.124623495, + 0.122337585, + 0.130050177, + 0.127196104, + 0.120209259, + 0.126086226, + 0.12259621, + 0.124133489, + 0.124052016, + 0.125602548, + 0.128480963, + 0.122221839, + 0.126966125, + 0.127126564, + 0.12295845, + 0.117784544, + 0.124938957, + 0.125154616, + 0.126476209, + 0.127956008, + 0.1212722, + 0.119980682, + 0.12088224, + 0.121374751, + 0.125835187, + 0.12741777, + 0.124113976, + 0.129369583, + 0.124089832, + 0.128454752, + 0.128247396, + 0.119842345, + 0.122610332, + 0.122601458, + 0.121542511, + 0.119260472, + 0.122646356, + 0.127074697, + 0.128064286, + 0.121047425, + 0.125377904, + 0.124761456, + 0.128204003, + 0.123707214, + 0.126071867, + 0.126546918, + 0.1203823, + 0.125205751, + 0.118166226, + 0.124503386, + 0.123978061, + 0.124960025, + 0.119649975, + 0.120982777, + 0.127676478, + 0.123837896, + 0.129837512, + 0.124997513, + 0.128323826, + 0.123142751, + 0.126843243, + 0.126019653, + 0.127250978, + 0.125240283, + 0.12674315, + 0.123968618, + 0.115925532, + 0.127374254, + 0.123263492, + 0.124790723, + 0.127159029, + 0.127309295, + 0.12519301, + 0.123486563, + 0.125976516, + 0.128058665, + 0.124028392, + 0.126626596, + 0.127671672, + 0.124591722, + 0.122582402, + 0.125526278 ], "implementation": "rust-libp2p", "version": "rust-v0.51", @@ -117,16 +207,106 @@ }, { "result": [ - 0.125645928, - 0.125200758, - 0.125231605, - 0.125165499, - 0.125179056, - 0.125157424, - 0.125163505, - 0.12517943, - 0.125181199, - 0.125153868 + 0.122543827, + 0.127092806, + 0.127011856, + 0.12281347, + 0.117444623, + 0.12350014, + 0.126948171, + 0.123311315, + 0.128964689, + 0.125625745, + 0.122593846, + 0.123006218, + 0.128376547, + 0.12277935, + 0.12600483, + 0.118549991, + 0.125331326, + 0.119459264, + 0.126413229, + 0.122420952, + 0.118519981, + 0.130097044, + 0.125840275, + 0.126526868, + 0.122413416, + 0.125574993, + 0.12518833, + 0.12595883, + 0.125565734, + 0.118738583, + 0.127872834, + 0.125746162, + 0.123202846, + 0.123291211, + 0.118350345, + 0.12642703, + 0.119797854, + 0.126859721, + 0.126554041, + 0.12842541, + 0.120505089, + 0.119439547, + 0.127376052, + 0.127270792, + 0.124580339, + 0.125233136, + 0.125029362, + 0.126664745, + 0.12299203, + 0.120487189, + 0.116249103, + 0.128941914, + 0.123014041, + 0.128777967, + 0.127129936, + 0.121659861, + 0.121347096, + 0.126114891, + 0.128108861, + 0.128957541, + 0.125655787, + 0.127098252, + 0.11633541, + 0.118214435, + 0.126284329, + 0.120242618, + 0.124033286, + 0.122358962, + 0.121389239, + 0.121621816, + 0.128790363, + 0.124597393, + 0.127546464, + 0.122813675, + 0.122599769, + 0.127564185, + 0.126530663, + 0.122913285, + 0.121208338, + 0.128789751, + 0.117784612, + 0.123544932, + 0.130254739, + 0.118280526, + 0.125662506, + 0.126502155, + 0.121901033, + 0.124632174, + 0.118801743, + 0.121895381, + 0.12476507, + 0.12805682, + 0.121644671, + 0.126667883, + 0.124941801, + 0.125911196, + 0.129148188, + 0.119740007, + 0.1253032, + 0.127030932 ], "implementation": "rust-libp2p", "version": "rust-v0.51", @@ -134,16 +314,106 @@ }, { "result": [ - 0.18095565, - 0.05944898, - 0.05928111, - 0.059358, - 0.05925588, - 0.05928937, - 0.059299465, - 0.059299897, - 0.059323523, - 0.05930088 + 0.1884588, + 0.18756714, + 0.18300873, + 0.1936415, + 0.18156292, + 0.19067459, + 0.19769268, + 0.18656383, + 0.17837767, + 0.19460449, + 0.17657135, + 0.18910603, + 0.18485719, + 0.19088127, + 0.19560757, + 0.18177089, + 0.18868802, + 0.18856184, + 0.19105303, + 0.18880497, + 0.19321439, + 0.19345047, + 0.18769683, + 0.18487263, + 0.17981295, + 0.19212057, + 0.18694794, + 0.19257876, + 0.19548361, + 0.19591156, + 0.18226886, + 0.18280998, + 0.18057576, + 0.17874339, + 0.1932511, + 0.18708573, + 0.1950071, + 0.18806437, + 0.18655427, + 0.18641932, + 0.19514948, + 0.1959758, + 0.18190429, + 0.17720412, + 0.18691242, + 0.18178862, + 0.18175964, + 0.1881124, + 0.19493204, + 0.19136153, + 0.19619612, + 0.18911907, + 0.18776011, + 0.19090895, + 0.18848054, + 0.19609065, + 0.18877506, + 0.19381407, + 0.18677415, + 0.18977772, + 0.18802643, + 0.19339806, + 0.18219492, + 0.18959786, + 0.19078787, + 0.1894444, + 0.19280326, + 0.1858661, + 0.19484885, + 0.18035181, + 0.18633182, + 0.1868423, + 0.1804054, + 0.18347643, + 0.18067311, + 0.18760788, + 0.18179734, + 0.19659987, + 0.18166326, + 0.19459605, + 0.1829563, + 0.1951969, + 0.1953983, + 0.18802923, + 0.1836824, + 0.19265597, + 0.18820585, + 0.1936625, + 0.19276579, + 0.17885067, + 0.18569484, + 0.18491744, + 0.19376439, + 0.1853479, + 0.18714498, + 0.18907069, + 0.18930666, + 0.18393388, + 0.19271532, + 0.19143309 ], "implementation": "https", "version": "https", @@ -151,16 +421,106 @@ }, { "result": [ - 0.12598644, - 0.0634478, - 0.063379124, - 0.06350212, - 0.06339974, - 0.06331283, - 0.06329939, - 0.06339211, - 0.06339262, - 0.06339976 + 0.12460541, + 0.06338739, + 0.060049094, + 0.12534183, + 0.06282792, + 0.12473893, + 0.123850085, + 0.061622698, + 0.124618195, + 0.12683493, + 0.06393353, + 0.11986306, + 0.12737766, + 0.06417233, + 0.126642, + 0.06333116, + 0.062203553, + 0.06355419, + 0.12368787, + 0.12854455, + 0.065005094, + 0.12189147, + 0.061708663, + 0.063397095, + 0.12363864, + 0.06245074, + 0.060843397, + 0.06305268, + 0.12158299, + 0.062071208, + 0.06400568, + 0.12168055, + 0.063808165, + 0.12591682, + 0.061409816, + 0.11779677, + 0.062342245, + 0.12656265, + 0.061757687, + 0.11773071, + 0.12370392, + 0.11993875, + 0.06118508, + 0.06278617, + 0.062142137, + 0.124610744, + 0.12213743, + 0.06137961, + 0.06265603, + 0.06284346, + 0.061817326, + 0.1258655, + 0.06183856, + 0.06289108, + 0.064864665, + 0.12664138, + 0.12846307, + 0.121588096, + 0.061272167, + 0.1261858, + 0.062228348, + 0.059017688, + 0.06450957, + 0.06075087, + 0.059225857, + 0.06335085, + 0.06388441, + 0.059180457, + 0.062583424, + 0.11892876, + 0.11927323, + 0.06371338, + 0.061664425, + 0.12375551, + 0.06225097, + 0.121605955, + 0.12460672, + 0.12971939, + 0.060148764, + 0.123078205, + 0.06143858, + 0.061138, + 0.11919744, + 0.13003084, + 0.11934041, + 0.05848857, + 0.06244507, + 0.061119255, + 0.06357628, + 0.1233313, + 0.12428866, + 0.119413674, + 0.12215978, + 0.060937118, + 0.061882664, + 0.063023865, + 0.1286349, + 0.11981622, + 0.12242536, + 0.12898855 ], "implementation": "go-libp2p", "version": "go-v0.27.0", @@ -168,16 +528,106 @@ }, { "result": [ - 0.062408023, - 0.062327057, - 0.062376957, - 0.06230008, - 0.06228861, - 0.06228707, - 0.062292684, - 0.06227601, - 0.06226655, - 0.062255222 + 0.062081397, + 0.06375749, + 0.058778632, + 0.06496431, + 0.059300344, + 0.064085774, + 0.062336672, + 0.060751226, + 0.05926829, + 0.060248934, + 0.06266038, + 0.060531963, + 0.06149564, + 0.062249243, + 0.062247727, + 0.06292039, + 0.061806973, + 0.06481583, + 0.06136999, + 0.06324397, + 0.06510487, + 0.06120873, + 0.06061488, + 0.06371168, + 0.060612608, + 0.0600205, + 0.06331719, + 0.061534096, + 0.06007528, + 0.06160426, + 0.061419323, + 0.060130056, + 0.06376396, + 0.0638334, + 0.062379222, + 0.062089693, + 0.059746526, + 0.06131145, + 0.06275574, + 0.062170308, + 0.060669128, + 0.05972382, + 0.061504025, + 0.059780255, + 0.06165352, + 0.06170672, + 0.061490387, + 0.06243981, + 0.06246258, + 0.061520863, + 0.061153352, + 0.05962738, + 0.062306397, + 0.0650918, + 0.061314303, + 0.06424656, + 0.059145585, + 0.06277721, + 0.06420389, + 0.06322815, + 0.06254778, + 0.06056936, + 0.061299443, + 0.06358756, + 0.06076693, + 0.0640196, + 0.06335136, + 0.059180327, + 0.061590698, + 0.06332971, + 0.060137033, + 0.06171905, + 0.06153724, + 0.06268148, + 0.06376706, + 0.06443098, + 0.063577496, + 0.060746897, + 0.062080245, + 0.06451008, + 0.062860094, + 0.06262935, + 0.06121269, + 0.06163481, + 0.062346857, + 0.06360294, + 0.06312665, + 0.06285668, + 0.06282775, + 0.06316835, + 0.06440914, + 0.06345475, + 0.062310416, + 0.062573135, + 0.059951175, + 0.062110145, + 0.063234456, + 0.06274714, + 0.062973484, + 0.06406037 ], "implementation": "go-libp2p", "version": "go-v0.27.0", diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index 0d6fdabb4..c0cc355ff 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -20,8 +20,8 @@ async function main(clientPublicIP: string, serverPublicIP: string) { // serverPublicIP, // uploadBytes: 0, // downloadBytes: 0, - // nTimes: 1, // unit: "s", + // iterations: 1, // }), // comparisons: [], // }, @@ -33,8 +33,8 @@ async function main(clientPublicIP: string, serverPublicIP: string) { serverPublicIP, uploadBytes: 100 << 20, downloadBytes: 0, - nTimes: 1, unit: "bit/s", + iterations: 1, }), comparisons: [], }, @@ -46,31 +46,31 @@ async function main(clientPublicIP: string, serverPublicIP: string) { serverPublicIP, uploadBytes: 0, downloadBytes: 100 << 20, - nTimes: 1, unit: "bit/s", + iterations: 1, }), comparisons: [], }, { - name: "Single Connection, n sequential 1 byte round trip latencies", + name: "Connection establishment + 1 byte round trip latencies", unit: "s", results: runBenchmarkAcrossVersions({ clientPublicIP, serverPublicIP, uploadBytes: 1, downloadBytes: 1, - nTimes: 10, unit: "s", + iterations: 100, }), comparisons: [], } ], }; - console.log(JSON.stringify(benchmarkResults, null, 2)); - // Save results to benchmark-results.json fs.writeFileSync('./benchmark-results.json', JSON.stringify(benchmarkResults, null, 2)); + + console.error("== done"); } interface ArgsRunBenchmarkAcrossVersions { @@ -78,8 +78,8 @@ interface ArgsRunBenchmarkAcrossVersions { serverPublicIP: string; uploadBytes: number, downloadBytes: number, - nTimes: number, unit: "bit/s" | "s", + iterations: number, } function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Result[] { @@ -87,7 +87,7 @@ function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Resul for (const version of versions) { // The `if` is a hack for zig. if (version.serverAddress == undefined) { - console.error(`Starting ${version.id} server.`); + console.error(`== Starting ${version.id} server.`); let serverCMD: string if (version.implementation === "zig-libp2p") { // Hack! @@ -95,7 +95,6 @@ function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Resul } else { serverCMD = `ssh ec2-user@${args.serverPublicIP} 'docker stop $(docker ps -aq); docker run --init -d --restart always --network host ${version.containerImageID} --run-server --secret-key-seed 0'`; } - console.error(serverCMD); const serverSTDOUT = execCommand(serverCMD); console.error(serverSTDOUT); } @@ -109,7 +108,7 @@ function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Resul transportStack: transportStack, uploadBytes: args.uploadBytes, downloadBytes: args.downloadBytes, - nTimes: args.nTimes, + iterations: args.iterations, }).latencies.map(l => { switch(args.unit) { case "bit/s": @@ -139,7 +138,7 @@ interface ArgsRunBenchmark { transportStack: string, uploadBytes: number, downloadBytes: number, - nTimes: number, + iterations: number, } interface Latencies { @@ -148,7 +147,7 @@ interface Latencies { function runBenchmark(args: ArgsRunBenchmark): Latencies { - console.error(`Starting ${args.transportStack} client.`); + console.error(`=== Starting ${args.transportStack} client.`); let serverAddress = args.serverAddress; @@ -168,24 +167,25 @@ function runBenchmark(args: ArgsRunBenchmark): Latencies { serverAddress = serverAddress + "/p2p/12D3KooWDpJ7As7BWAwRMfu1VU2WCqNjvq387JEYKDBj4kx6nXTN"; } - const binFlags = `--server-address ${serverAddress} --upload-bytes ${args.uploadBytes} --download-bytes ${args.downloadBytes} --n-times ${args.nTimes}` - // TODO Take docker hub repository from version.ts + // TODO: Remove static --n-times. + const binFlags = `--server-address ${serverAddress} --upload-bytes ${args.uploadBytes} --download-bytes ${args.downloadBytes} --n-times 1` const dockerCMD = `docker run --init --rm --network host ${args.dockerImageId} ${binFlags}` - const cmd = `ssh ec2-user@${args.clientPublicIP} ${dockerCMD}`; - console.log("Running command:", cmd); + const cmd = `ssh ec2-user@${args.clientPublicIP} 'for i in {1..${args.iterations}}; do ${dockerCMD}; done'` const stdout = execCommand(cmd); - console.log("Stdout from client:", stdout.toString(), JSON.parse(stdout.toString())); - const parsedStdout = JSON.parse(stdout.toString()); - - let latencies: Latencies - if (Array.isArray(parsedStdout)) { - latencies = { latencies: parsedStdout } - } else { - latencies = parsedStdout + // TODO: Does it really still make sense for the binary to return an array? + const lines = stdout.toString().trim().split('\n'); + + const combined: Latencies = { + latencies: [], + }; + + for (const line of lines) { + const latencies = JSON.parse(line) as Latencies; + combined.latencies.push(...latencies.latencies); } - return latencies; + return combined; } function execCommand(cmd: string): string { @@ -206,13 +206,13 @@ async function transferDockerImage(serverIp: string, imageSha256: string): Promi const tarballName = `${imageName}.tar`; // Save the Docker image as a tarball, transfer it using rsync, load it on the remote server, and clean up tarball files locally. - console.log(`Transferring Docker image ${imageSha256} to ${serverIp}`); + console.error(`== Transferring Docker image ${imageSha256} to ${serverIp}`); execCommand(`docker save -o ${tarballName} ${imageSha256} && rsync -avz --progress ./${tarballName} ec2-user@${serverIp}:/tmp/ && ssh ec2-user@${serverIp} 'docker load -i /tmp/${tarballName}' && rm ${tarballName}`); - console.log(`Docker image ${imageSha256} transferred successfully to ${serverIp}`); + console.error(`=== Docker image ${imageSha256} transferred successfully to ${serverIp}`); } const argv = yargs From 0732aa8a5e34c50b91f25c0148c1ae5bca317afc Mon Sep 17 00:00:00 2001 From: Max Inden Date: Fri, 28 Apr 2023 18:11:48 +0900 Subject: [PATCH 063/143] Fix units --- perf/runner/benchmark-results.json | 1035 +++++++++++----------- perf/runner/src/benchmark-result-type.ts | 2 - perf/runner/src/index.ts | 87 +- 3 files changed, 552 insertions(+), 572 deletions(-) diff --git a/perf/runner/benchmark-results.json b/perf/runner/benchmark-results.json index e08485c25..d59664ffd 100644 --- a/perf/runner/benchmark-results.json +++ b/perf/runner/benchmark-results.json @@ -2,11 +2,11 @@ "benchmarks": [ { "name": "Single Connection throughput – Upload 100 MiB", - "unit": "s", + "unit": "bit/s", "results": [ { "result": [ - 23689393.36269186 + 24350509.655656375 ], "implementation": "rust-libp2p", "version": "rust-v0.51", @@ -14,7 +14,7 @@ }, { "result": [ - 93045362.68786794 + 60663340.88260239 ], "implementation": "rust-libp2p", "version": "rust-v0.51", @@ -22,7 +22,7 @@ }, { "result": [ - 295248144.62590885 + 293240024.41811824 ], "implementation": "https", "version": "https", @@ -30,7 +30,7 @@ }, { "result": [ - 265912739.71105927 + 264059213.2216462 ], "implementation": "go-libp2p", "version": "go-v0.27.0", @@ -38,22 +38,21 @@ }, { "result": [ - 606427199.744145 + 615340873.6224145 ], "implementation": "go-libp2p", "version": "go-v0.27.0", "transportStack": "quic-v1" } - ], - "comparisons": [] + ] }, { "name": "Single Connection throughput – Download 100 MiB", - "unit": "s", + "unit": "bit/s", "results": [ { "result": [ - 20508406.28717806 + 19440868.43741449 ], "implementation": "rust-libp2p", "version": "rust-v0.51", @@ -61,7 +60,7 @@ }, { "result": [ - 32462306.61655686 + 45763061.98269354 ], "implementation": "rust-libp2p", "version": "rust-v0.51", @@ -69,7 +68,7 @@ }, { "result": [ - 298499674.5849223 + 302546864.6759939 ], "implementation": "https", "version": "https", @@ -77,7 +76,7 @@ }, { "result": [ - 279285263.9925077 + 297542786.14435023 ], "implementation": "go-libp2p", "version": "go-v0.27.0", @@ -85,121 +84,120 @@ }, { "result": [ - 631227577.9202543 + 601906170.7198751 ], "implementation": "go-libp2p", "version": "go-v0.27.0", "transportStack": "quic-v1" } - ], - "comparisons": [] + ] }, { "name": "Connection establishment + 1 byte round trip latencies", - "unit": "s", + "unit": "bit/s", "results": [ { "result": [ - 0.126319235, - 0.126144079, - 0.12323905, - 0.126985715, - 0.118083106, - 0.125713184, - 0.12444581, - 0.129616664, - 0.124222977, - 0.117873216, - 0.121232909, - 0.125176963, - 0.126967664, - 0.122178806, - 0.120848342, - 0.123407271, - 0.120451258, - 0.123857808, - 0.124623495, - 0.122337585, - 0.130050177, - 0.127196104, - 0.120209259, - 0.126086226, - 0.12259621, - 0.124133489, - 0.124052016, - 0.125602548, - 0.128480963, - 0.122221839, - 0.126966125, - 0.127126564, - 0.12295845, - 0.117784544, - 0.124938957, - 0.125154616, - 0.126476209, - 0.127956008, - 0.1212722, - 0.119980682, - 0.12088224, - 0.121374751, - 0.125835187, - 0.12741777, - 0.124113976, - 0.129369583, - 0.124089832, - 0.128454752, - 0.128247396, - 0.119842345, - 0.122610332, - 0.122601458, - 0.121542511, - 0.119260472, - 0.122646356, - 0.127074697, - 0.128064286, - 0.121047425, - 0.125377904, - 0.124761456, - 0.128204003, - 0.123707214, - 0.126071867, - 0.126546918, - 0.1203823, - 0.125205751, - 0.118166226, - 0.124503386, - 0.123978061, - 0.124960025, - 0.119649975, - 0.120982777, - 0.127676478, - 0.123837896, - 0.129837512, - 0.124997513, - 0.128323826, - 0.123142751, - 0.126843243, - 0.126019653, - 0.127250978, - 0.125240283, - 0.12674315, - 0.123968618, - 0.115925532, - 0.127374254, - 0.123263492, - 0.124790723, - 0.127159029, - 0.127309295, - 0.12519301, - 0.123486563, - 0.125976516, - 0.128058665, - 0.124028392, - 0.126626596, - 0.127671672, - 0.124591722, - 0.122582402, - 0.125526278 + 0.117531215, + 0.119477231, + 0.127241314, + 0.123838376, + 0.126217281, + 0.123786636, + 0.12467958, + 0.123438347, + 0.125642011, + 0.124928052, + 0.122122493, + 0.118084278, + 0.120487079, + 0.126291729, + 0.123366993, + 0.122684732, + 0.128289217, + 0.128280574, + 0.128451502, + 0.125156331, + 0.128532382, + 0.12511481, + 0.120080922, + 0.125052891, + 0.128270126, + 0.117955838, + 0.124216025, + 0.120151138, + 0.120900373, + 0.124190145, + 0.125512223, + 0.125198228, + 0.126168804, + 0.121633532, + 0.115684048, + 0.123711036, + 0.119018693, + 0.128783925, + 0.125229119, + 0.126767544, + 0.127907333, + 0.119027267, + 0.126271684, + 0.120223078, + 0.128007503, + 0.123304871, + 0.127853049, + 0.127922427, + 0.121222788, + 0.119177537, + 0.127096945, + 0.121200177, + 0.124658115, + 0.122214894, + 0.124448714, + 0.121902116, + 0.123600603, + 0.127504034, + 0.123739287, + 0.122509289, + 0.120164122, + 0.127016085, + 0.124842619, + 0.127785936, + 0.122218441, + 0.121571746, + 0.122432379, + 0.12162545, + 0.122377491, + 0.123179156, + 0.123372804, + 0.126278693, + 0.124852896, + 0.123329491, + 0.122193762, + 0.121078517, + 0.123470548, + 0.122604349, + 0.122051216, + 0.1252449, + 0.127407171, + 0.126614329, + 0.126718561, + 0.125360279, + 0.123016905, + 0.117310408, + 0.127781929, + 0.125049815, + 0.12014819, + 0.128220601, + 0.121267966, + 0.124953428, + 0.128022598, + 0.127121062, + 0.122899784, + 0.127152937, + 0.123185042, + 0.121124426, + 0.124188753, + 0.122067442 ], "implementation": "rust-libp2p", "version": "rust-v0.51", @@ -207,106 +205,106 @@ }, { "result": [ - 0.122543827, - 0.127092806, - 0.127011856, - 0.12281347, - 0.117444623, - 0.12350014, - 0.126948171, - 0.123311315, - 0.128964689, - 0.125625745, - 0.122593846, - 0.123006218, - 0.128376547, - 0.12277935, - 0.12600483, - 0.118549991, - 0.125331326, - 0.119459264, - 0.126413229, - 0.122420952, - 0.118519981, - 0.130097044, - 0.125840275, - 0.126526868, - 0.122413416, - 0.125574993, - 0.12518833, - 0.12595883, - 0.125565734, - 0.118738583, - 0.127872834, - 0.125746162, - 0.123202846, - 0.123291211, - 0.118350345, - 0.12642703, - 0.119797854, - 0.126859721, - 0.126554041, - 0.12842541, - 0.120505089, - 0.119439547, - 0.127376052, - 0.127270792, - 0.124580339, - 0.125233136, - 0.125029362, - 0.126664745, - 0.12299203, - 0.120487189, - 0.116249103, - 0.128941914, - 0.123014041, - 0.128777967, - 0.127129936, - 0.121659861, - 0.121347096, - 0.126114891, - 0.128108861, - 0.128957541, - 0.125655787, - 0.127098252, - 0.11633541, - 0.118214435, - 0.126284329, - 0.120242618, - 0.124033286, - 0.122358962, - 0.121389239, - 0.121621816, - 0.128790363, - 0.124597393, - 0.127546464, - 0.122813675, - 0.122599769, - 0.127564185, - 0.126530663, - 0.122913285, - 0.121208338, - 0.128789751, - 0.117784612, - 0.123544932, - 0.130254739, - 0.118280526, - 0.125662506, - 0.126502155, - 0.121901033, - 0.124632174, - 0.118801743, - 0.121895381, - 0.12476507, - 0.12805682, - 0.121644671, - 0.126667883, - 0.124941801, - 0.125911196, - 0.129148188, - 0.119740007, - 0.1253032, - 0.127030932 + 0.126492701, + 0.128645231, + 0.12764948, + 0.12103475, + 0.122596624, + 0.126592365, + 0.127436689, + 0.128119098, + 0.124821297, + 0.11943138, + 0.123570282, + 0.123472562, + 0.125432298, + 0.12417364, + 0.123524911, + 0.126522503, + 0.125163512, + 0.120606514, + 0.124866123, + 0.125376311, + 0.128783539, + 0.125887119, + 0.121722658, + 0.12600124, + 0.120812495, + 0.128430569, + 0.124644469, + 0.127735154, + 0.128627366, + 0.124496423, + 0.124060574, + 0.126146926, + 0.12785907, + 0.126904463, + 0.127326552, + 0.121947189, + 0.125433886, + 0.120365002, + 0.12335412, + 0.126383518, + 0.128603595, + 0.123623288, + 0.124439586, + 0.123612114, + 0.130604288, + 0.129593343, + 0.127862973, + 0.123046912, + 0.123133175, + 0.117651496, + 0.11778844, + 0.121584935, + 0.127266558, + 0.127635503, + 0.11977104, + 0.125398818, + 0.124956356, + 0.122441387, + 0.122984766, + 0.128045231, + 0.126895532, + 0.126076572, + 0.126854525, + 0.125299198, + 0.123040937, + 0.125369624, + 0.124795957, + 0.128728248, + 0.127091627, + 0.127126209, + 0.119520154, + 0.125767227, + 0.127001141, + 0.123595742, + 0.124235397, + 0.117551288, + 0.129048246, + 0.125796886, + 0.12825037, + 0.12581745, + 0.126931091, + 0.122246634, + 0.125022816, + 0.126914787, + 0.120603571, + 0.124985751, + 0.122157381, + 0.12536259, + 0.125753319, + 0.121856033, + 0.123539674, + 0.125851348, + 0.123957067, + 0.12364997, + 0.121640465, + 0.126824563, + 0.121472587, + 0.120211254, + 0.121835976, + 0.130236577 ], "implementation": "rust-libp2p", "version": "rust-v0.51", @@ -314,106 +312,106 @@ }, { "result": [ - 0.1884588, - 0.18756714, - 0.18300873, - 0.1936415, - 0.18156292, - 0.19067459, - 0.19769268, - 0.18656383, - 0.17837767, - 0.19460449, - 0.17657135, - 0.18910603, - 0.18485719, - 0.19088127, - 0.19560757, - 0.18177089, - 0.18868802, - 0.18856184, - 0.19105303, - 0.18880497, - 0.19321439, - 0.19345047, - 0.18769683, - 0.18487263, - 0.17981295, - 0.19212057, - 0.18694794, - 0.19257876, - 0.19548361, - 0.19591156, - 0.18226886, - 0.18280998, - 0.18057576, - 0.17874339, - 0.1932511, - 0.18708573, - 0.1950071, - 0.18806437, - 0.18655427, - 0.18641932, - 0.19514948, - 0.1959758, - 0.18190429, - 0.17720412, - 0.18691242, - 0.18178862, - 0.18175964, - 0.1881124, - 0.19493204, - 0.19136153, - 0.19619612, - 0.18911907, - 0.18776011, - 0.19090895, - 0.18848054, - 0.19609065, - 0.18877506, - 0.19381407, - 0.18677415, - 0.18977772, - 0.18802643, - 0.19339806, - 0.18219492, - 0.18959786, - 0.19078787, - 0.1894444, - 0.19280326, - 0.1858661, - 0.19484885, - 0.18035181, - 0.18633182, - 0.1868423, - 0.1804054, - 0.18347643, - 0.18067311, - 0.18760788, - 0.18179734, - 0.19659987, - 0.18166326, - 0.19459605, - 0.1829563, - 0.1951969, - 0.1953983, - 0.18802923, - 0.1836824, - 0.19265597, - 0.18820585, - 0.1936625, - 0.19276579, - 0.17885067, - 0.18569484, - 0.18491744, - 0.19376439, - 0.1853479, - 0.18714498, - 0.18907069, - 0.18930666, - 0.18393388, - 0.19271532, - 0.19143309 + 0.1905508, + 0.19120069, + 0.19208843, + 0.18447545, + 0.19727789, + 0.19536076, + 0.19549216, + 0.1909243, + 0.18881956, + 0.19217543, + 0.1877395, + 0.18598732, + 0.19317727, + 0.19503729, + 0.17881867, + 0.1934256, + 0.187884, + 0.18333447, + 0.19611809, + 0.18792787, + 0.19242029, + 0.19255786, + 0.18546608, + 0.18191247, + 0.18786986, + 0.1923337, + 0.18841194, + 0.18253963, + 0.18228842, + 0.1851186, + 0.19316866, + 0.19420747, + 0.18459386, + 0.1910244, + 0.18564709, + 0.19383651, + 0.18947494, + 0.1849043, + 0.18606955, + 0.18700443, + 0.19366558, + 0.18035644, + 0.18951121, + 0.18696323, + 0.18936445, + 0.17857671, + 0.1836147, + 0.18801275, + 0.19045018, + 0.18924312, + 0.19615361, + 0.19372635, + 0.18651393, + 0.19028859, + 0.1893717, + 0.18552811, + 0.18736637, + 0.19309106, + 0.18693604, + 0.19023037, + 0.1871291, + 0.18655825, + 0.18646562, + 0.18466365, + 0.18961416, + 0.18048154, + 0.18884529, + 0.18006688, + 0.1932698, + 0.18488555, + 0.19532463, + 0.19325395, + 0.19368966, + 0.19409521, + 0.18709031, + 0.18488774, + 0.1890471, + 0.18583038, + 0.18771419, + 0.18709807, + 0.18651003, + 0.19030699, + 0.18543595, + 0.1907468, + 0.19577229, + 0.19353405, + 0.19091126, + 0.18190527, + 0.18919502, + 0.18638895, + 0.19068405, + 0.18348704, + 0.18883169, + 0.18787478, + 0.19052736, + 0.18179108, + 0.19308127, + 0.19171245, + 0.19040409, + 0.19386716 ], "implementation": "https", "version": "https", @@ -421,106 +419,106 @@ }, { "result": [ - 0.12460541, - 0.06338739, - 0.060049094, - 0.12534183, - 0.06282792, - 0.12473893, - 0.123850085, - 0.061622698, - 0.124618195, - 0.12683493, - 0.06393353, - 0.11986306, - 0.12737766, - 0.06417233, - 0.126642, - 0.06333116, - 0.062203553, - 0.06355419, - 0.12368787, - 0.12854455, - 0.065005094, - 0.12189147, - 0.061708663, - 0.063397095, - 0.12363864, - 0.06245074, - 0.060843397, - 0.06305268, - 0.12158299, - 0.062071208, - 0.06400568, - 0.12168055, - 0.063808165, - 0.12591682, - 0.061409816, - 0.11779677, - 0.062342245, - 0.12656265, - 0.061757687, - 0.11773071, - 0.12370392, - 0.11993875, - 0.06118508, - 0.06278617, - 0.062142137, - 0.124610744, - 0.12213743, - 0.06137961, - 0.06265603, - 0.06284346, - 0.061817326, - 0.1258655, - 0.06183856, - 0.06289108, - 0.064864665, - 0.12664138, - 0.12846307, - 0.121588096, - 0.061272167, - 0.1261858, - 0.062228348, - 0.059017688, - 0.06450957, - 0.06075087, - 0.059225857, - 0.06335085, - 0.06388441, - 0.059180457, - 0.062583424, - 0.11892876, - 0.11927323, - 0.06371338, - 0.061664425, - 0.12375551, - 0.06225097, - 0.121605955, - 0.12460672, - 0.12971939, - 0.060148764, - 0.123078205, - 0.06143858, - 0.061138, - 0.11919744, - 0.13003084, - 0.11934041, - 0.05848857, - 0.06244507, - 0.061119255, - 0.06357628, - 0.1233313, - 0.12428866, - 0.119413674, - 0.12215978, - 0.060937118, - 0.061882664, - 0.063023865, - 0.1286349, - 0.11981622, - 0.12242536, - 0.12898855 + 0.11886548, + 0.06207159, + 0.059752, + 0.06366672, + 0.117640115, + 0.060913656, + 0.06061558, + 0.12187687, + 0.06273285, + 0.060223714, + 0.12654272, + 0.062961616, + 0.060779184, + 0.06332914, + 0.12676404, + 0.06256747, + 0.06139459, + 0.12560034, + 0.12362937, + 0.06257865, + 0.11634072, + 0.124720946, + 0.1265982, + 0.06111584, + 0.12737016, + 0.061775804, + 0.06400239, + 0.12289581, + 0.123719655, + 0.12401232, + 0.06303235, + 0.1276448, + 0.06232622, + 0.12518571, + 0.06395094, + 0.123611346, + 0.06388889, + 0.063405804, + 0.12394694, + 0.06245831, + 0.06416768, + 0.06461364, + 0.12265379, + 0.0635013, + 0.123194255, + 0.059708185, + 0.061085, + 0.12135438, + 0.06308459, + 0.06435049, + 0.12202259, + 0.05987249, + 0.118559346, + 0.12069713, + 0.061908245, + 0.06249194, + 0.1227838, + 0.061034348, + 0.06484004, + 0.12327383, + 0.118593454, + 0.12120287, + 0.05972468, + 0.12287883, + 0.11924952, + 0.12340003, + 0.063479245, + 0.060867403, + 0.062849715, + 0.12474931, + 0.06292324, + 0.062693946, + 0.061772607, + 0.060404472, + 0.06379947, + 0.11889992, + 0.06086896, + 0.12163995, + 0.06321763, + 0.12439474, + 0.06108236, + 0.12368068, + 0.124439366, + 0.06258205, + 0.060899056, + 0.12354212, + 0.062890604, + 0.062237974, + 0.06260137, + 0.11898126, + 0.12497839, + 0.06353188, + 0.0636649, + 0.0627121, + 0.06411397, + 0.061960503, + 0.06246588, + 0.064078934, + 0.12232631, + 0.06406221 ], "implementation": "go-libp2p", "version": "go-v0.27.0", @@ -528,113 +526,112 @@ }, { "result": [ - 0.062081397, - 0.06375749, - 0.058778632, - 0.06496431, - 0.059300344, - 0.064085774, - 0.062336672, - 0.060751226, - 0.05926829, - 0.060248934, - 0.06266038, - 0.060531963, - 0.06149564, - 0.062249243, - 0.062247727, - 0.06292039, - 0.061806973, - 0.06481583, - 0.06136999, - 0.06324397, - 0.06510487, - 0.06120873, - 0.06061488, - 0.06371168, - 0.060612608, - 0.0600205, - 0.06331719, - 0.061534096, - 0.06007528, - 0.06160426, - 0.061419323, - 0.060130056, - 0.06376396, - 0.0638334, - 0.062379222, - 0.062089693, - 0.059746526, - 0.06131145, - 0.06275574, - 0.062170308, - 0.060669128, - 0.05972382, - 0.061504025, - 0.059780255, - 0.06165352, - 0.06170672, - 0.061490387, - 0.06243981, - 0.06246258, - 0.061520863, - 0.061153352, - 0.05962738, - 0.062306397, - 0.0650918, - 0.061314303, - 0.06424656, - 0.059145585, - 0.06277721, - 0.06420389, - 0.06322815, - 0.06254778, - 0.06056936, - 0.061299443, - 0.06358756, - 0.06076693, - 0.0640196, - 0.06335136, - 0.059180327, - 0.061590698, - 0.06332971, - 0.060137033, - 0.06171905, - 0.06153724, - 0.06268148, - 0.06376706, - 0.06443098, - 0.063577496, - 0.060746897, - 0.062080245, - 0.06451008, - 0.062860094, - 0.06262935, - 0.06121269, - 0.06163481, - 0.062346857, - 0.06360294, - 0.06312665, - 0.06285668, - 0.06282775, - 0.06316835, - 0.06440914, - 0.06345475, - 0.062310416, - 0.062573135, - 0.059951175, - 0.062110145, - 0.063234456, - 0.06274714, - 0.062973484, - 0.06406037 + 0.062166207, + 0.06347945, + 0.0634769, + 0.06262155, + 0.061401874, + 0.06067336, + 0.059668176, + 0.06126384, + 0.059219595, + 0.063664526, + 0.06478484, + 0.062126044, + 0.06131495, + 0.06097344, + 0.06302132, + 0.061447747, + 0.06006903, + 0.06428919, + 0.060735032, + 0.06438137, + 0.060805395, + 0.062184226, + 0.06131604, + 0.061692588, + 0.061749745, + 0.06237051, + 0.06424101, + 0.06246468, + 0.062390648, + 0.06321125, + 0.059326556, + 0.061613392, + 0.061730187, + 0.061770275, + 0.061853573, + 0.06375709, + 0.062096745, + 0.061394863, + 0.061692376, + 0.0592694, + 0.06454182, + 0.05867471, + 0.06171774, + 0.06226178, + 0.0617235, + 0.0628771, + 0.06174907, + 0.060809057, + 0.06382027, + 0.058840185, + 0.059617076, + 0.0630149, + 0.062986195, + 0.062970676, + 0.06340244, + 0.061709, + 0.065071106, + 0.06310097, + 0.06299079, + 0.062262863, + 0.062212706, + 0.061375078, + 0.06079732, + 0.061787553, + 0.06130792, + 0.0644198, + 0.061684314, + 0.06173436, + 0.062170528, + 0.06256191, + 0.0613262, + 0.06285372, + 0.062032223, + 0.062053975, + 0.06308158, + 0.061542917, + 0.06062959, + 0.06387708, + 0.060190577, + 0.060683966, + 0.061599143, + 0.060212366, + 0.06250237, + 0.061295517, + 0.06188249, + 0.06060551, + 0.061811384, + 0.064418614, + 0.06039328, + 0.05935275, + 0.06322118, + 0.062921494, + 0.063168146, + 0.06294009, + 0.06133466, + 0.06270723, + 0.06076044, + 0.06282397, + 0.058681328, + 0.06131034 ], "implementation": "go-libp2p", "version": "go-v0.27.0", "transportStack": "quic-v1" } - ], - "comparisons": [] + ] } ] } \ No newline at end of file diff --git a/perf/runner/src/benchmark-result-type.ts b/perf/runner/src/benchmark-result-type.ts index db618af46..32b256d31 100644 --- a/perf/runner/src/benchmark-result-type.ts +++ b/perf/runner/src/benchmark-result-type.ts @@ -8,8 +8,6 @@ export type Benchmark = { name: string, unit: "bit/s" | "s", results: Result[], - comparisons: Comparison[], - } export type Result = { diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index c0cc355ff..dbd836436 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -12,58 +12,33 @@ async function main(clientPublicIP: string, serverPublicIP: string) { const benchmarkResults: BenchmarkResults = { benchmarks: [ - // { - // name: "Dummy", - // unit: "s", - // results: runBenchmarkAcrossVersions({ - // clientPublicIP, - // serverPublicIP, - // uploadBytes: 0, - // downloadBytes: 0, - // unit: "s", - // iterations: 1, - // }), - // comparisons: [], - // }, - { + runBenchmarkAcrossVersions({ name: "Single Connection throughput – Upload 100 MiB", - unit: "s", - results: runBenchmarkAcrossVersions({ - clientPublicIP, - serverPublicIP, - uploadBytes: 100 << 20, - downloadBytes: 0, - unit: "bit/s", - iterations: 1, - }), - comparisons: [], - }, - { + clientPublicIP, + serverPublicIP, + uploadBytes: 100 << 20, + downloadBytes: 0, + unit: "bit/s", + iterations: 1, + }), + runBenchmarkAcrossVersions({ name: "Single Connection throughput – Download 100 MiB", - unit: "s", - results: runBenchmarkAcrossVersions({ - clientPublicIP, - serverPublicIP, - uploadBytes: 0, - downloadBytes: 100 << 20, - unit: "bit/s", - iterations: 1, - }), - comparisons: [], - }, - { + clientPublicIP, + serverPublicIP, + uploadBytes: 0, + downloadBytes: 100 << 20, + unit: "bit/s", + iterations: 1, + }), + runBenchmarkAcrossVersions({ name: "Connection establishment + 1 byte round trip latencies", + clientPublicIP, + serverPublicIP, + uploadBytes: 1, + downloadBytes: 1, unit: "s", - results: runBenchmarkAcrossVersions({ - clientPublicIP, - serverPublicIP, - uploadBytes: 1, - downloadBytes: 1, - unit: "s", - iterations: 100, - }), - comparisons: [], - } + iterations: 100, + }), ], }; @@ -74,6 +49,7 @@ async function main(clientPublicIP: string, serverPublicIP: string) { } interface ArgsRunBenchmarkAcrossVersions { + name: string, clientPublicIP: string; serverPublicIP: string; uploadBytes: number, @@ -82,12 +58,17 @@ interface ArgsRunBenchmarkAcrossVersions { iterations: number, } -function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Result[] { +function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Benchmark { + console.error(`= Benchmark ${args.name}`) + const results: Result[] = []; + for (const version of versions) { + console.error(`== Version ${version.implementation}/${version.id}`) + // The `if` is a hack for zig. if (version.serverAddress == undefined) { - console.error(`== Starting ${version.id} server.`); + console.error(`=== Starting ${version.id} server.`); let serverCMD: string if (version.implementation === "zig-libp2p") { // Hack! @@ -127,7 +108,11 @@ function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Resul } }; - return results; + return { + name: args.name, + unit: "bit/s", + results, + }; } interface ArgsRunBenchmark { From 618805c25e9368c38dedef26fb7f44f35ce46142 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Fri, 28 Apr 2023 18:13:17 +0900 Subject: [PATCH 064/143] Fix unit again --- perf/runner/benchmark-results.json | 4 ++-- perf/runner/src/index.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/perf/runner/benchmark-results.json b/perf/runner/benchmark-results.json index d59664ffd..e4a6e4ed6 100644 --- a/perf/runner/benchmark-results.json +++ b/perf/runner/benchmark-results.json @@ -94,7 +94,7 @@ }, { "name": "Connection establishment + 1 byte round trip latencies", - "unit": "bit/s", + "unit": "s", "results": [ { "result": [ @@ -634,4 +634,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index dbd836436..3a3358d1a 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -110,7 +110,7 @@ function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Bench return { name: args.name, - unit: "bit/s", + unit: args.unit, results, }; } From c2831ccc619f53736734a18faa9726288da95384 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 1 May 2023 15:51:23 +0900 Subject: [PATCH 065/143] Rename ssh key from mxinden to perf --- perf/terraform/region/main.tf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/perf/terraform/region/main.tf b/perf/terraform/region/main.tf index d4b952d13..81a3db2bc 100644 --- a/perf/terraform/region/main.tf +++ b/perf/terraform/region/main.tf @@ -111,7 +111,7 @@ resource "aws_security_group" "restricted_inbound" { }) } -resource "aws_key_pair" "mxinden" { +resource "aws_key_pair" "perf" { key_name = "user-public-key" public_key = file("./user.pub") } @@ -122,7 +122,7 @@ resource "aws_instance" "node" { subnet_id = aws_subnet.perf.id - key_name = aws_key_pair.mxinden.key_name + key_name = aws_key_pair.perf.key_name vpc_security_group_ids = [aws_security_group.restricted_inbound.id] From fb214bc77ad9909c8b2b5f378e7c8d0d54c830ce Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 1 May 2023 19:28:20 +0900 Subject: [PATCH 066/143] Pass IP and not multiaddr to client binary --- perf/impl/go/v0.27/main.go | 21 +++++++++++------ perf/impl/https/main.go | 43 ++++------------------------------- perf/impl/rust/v0.51/Makefile | 2 +- perf/runner/src/index.ts | 20 +--------------- 4 files changed, 21 insertions(+), 65 deletions(-) diff --git a/perf/impl/go/v0.27/main.go b/perf/impl/go/v0.27/main.go index cdd41b838..e6ee668b8 100644 --- a/perf/impl/go/v0.27/main.go +++ b/perf/impl/go/v0.27/main.go @@ -15,15 +15,11 @@ import ( func main() { runServer := flag.Bool("run-server", false, "Should run as server") - // --server-address - serverAddr := flag.String("server-address", "", "Server address") - // --secret-key-seed + serverIPAddr := flag.String("server-ip-address", "", "Server address") + transport := flag.String("transport", "tcp", "Transport to use") secretKeySeed := flag.Uint64("secret-key-seed", 0, "Server secret key seed") - // --upload-bytes uploadBytes := flag.Int("upload-bytes", 0, "Upload bytes") - // --download-bytes downloadBytes := flag.Int("download-bytes", 0, "Download bytes") - // --n-times nTimes := flag.Int("n-times", 0, "N times") flag.Parse() @@ -54,7 +50,18 @@ func main() { select {} // run forever, exit on interrupt } - serverInfo, err := peer.AddrInfoFromString(*serverAddr) + var multiAddrStr string + switch *transport { + case "tcp": + multiAddrStr = fmt.Sprintf("/ip4/%s/tcp/4001/p2p/12D3KooWDpJ7As7BWAwRMfu1VU2WCqNjvq387JEYKDBj4kx6nXTN", *serverIPAddr) + case "quic-v1": + multiAddrStr = fmt.Sprintf("/ip4/%s/udp/4001/quic-v1/p2p/12D3KooWDpJ7As7BWAwRMfu1VU2WCqNjvq387JEYKDBj4kx6nXTN", *serverIPAddr) + default: + fmt.Println("Invalid transport. Accepted values: 'tcp' or 'quic-v1'") + return + } + + serverInfo, err := peer.AddrInfoFromString(multiAddrStr) if err != nil { panic(err) } diff --git a/perf/impl/https/main.go b/perf/impl/https/main.go index c4d54239d..abeb4b3c3 100644 --- a/perf/impl/https/main.go +++ b/perf/impl/https/main.go @@ -17,10 +17,7 @@ import ( "math/big" "net" "net/http" - "strconv" "time" - - "github.com/multiformats/go-multiaddr" ) const ( @@ -74,8 +71,7 @@ func runClient(serverAddr string, uploadBytes, downloadBytes, nTimes int) ([]tim startTime := time.Now() resp, err := client.Post(fmt.Sprintf("https://%s/", serverAddr), "application/octet-stream", bytes.NewReader(reqBody)) if err != nil { - fmt.Printf("Error sending request: %v\n", err) - continue + return durations, err } respBody, err := ioutil.ReadAll(resp.Body) @@ -147,15 +143,11 @@ type Latencies struct { func main() { runServer := flag.Bool("run-server", false, "Should run as server") - // --server-address - serverAddr := flag.String("server-address", "", "Server address") - // --secret-key-seed + serverIPAddr := flag.String("server-ip-address", "", "Server address") + _ = flag.String("transport", "", "Transport to use") _ = flag.Uint64("secret-key-seed", 0, "Server secret key seed") - // --upload-bytes uploadBytes := flag.Int("upload-bytes", 0, "Upload bytes") - // --download-bytes downloadBytes := flag.Int("download-bytes", 0, "Download bytes") - // --n-times nTimes := flag.Int("n-times", 0, "N times") flag.Parse() @@ -185,38 +177,13 @@ func main() { } } else { // Client mode - if *serverAddr == "" || *nTimes <= 0 { + if *serverIPAddr == "" || *nTimes <= 0 { fmt.Println("Error: Please provide valid server-address and n-times flags for client mode.") return } - // Parse the multiaddr and extract the IP address and TCP port - serverAddr, err := multiaddr.NewMultiaddr(*serverAddr) - if err != nil { - fmt.Printf("Error parsing server-address: %v\n", err) - return - } - ipBytes, err := serverAddr.ValueForProtocol(multiaddr.P_IP4) - if err != nil { - ipBytes, err = serverAddr.ValueForProtocol(multiaddr.P_IP6) - if err != nil { - fmt.Printf("Error getting IP address from multiaddr: %v\n", err) - return - } - } - ip := net.ParseIP(ipBytes) - portStr, err := serverAddr.ValueForProtocol(multiaddr.P_TCP) - if err != nil { - fmt.Printf("Error getting TCP port from multiaddr: %v\n", err) - return - } - port, err := strconv.Atoi(portStr) - if err != nil { - fmt.Printf("Error parsing TCP port: %v\n", err) - return - } // Run the client and print the results - durations, err := runClient(fmt.Sprintf("%s:%d", ip.String(), port), *uploadBytes, *downloadBytes, *nTimes) + durations, err := runClient(fmt.Sprintf("%s:%d", *serverIPAddr, 4001), *uploadBytes, *downloadBytes, *nTimes) if err != nil { panic(err) } diff --git a/perf/impl/rust/v0.51/Makefile b/perf/impl/rust/v0.51/Makefile index 21b4461da..1b1402fe6 100644 --- a/perf/impl/rust/v0.51/Makefile +++ b/perf/impl/rust/v0.51/Makefile @@ -1,5 +1,5 @@ image_name := rust-v0.51 -commitSha := 66a28b37d8deb4d0e38e61f5d3ca0d34368f5770 +commitSha := f515473f7f94597d55056df88cc9f784c35d202f all: image.json diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index 3a3358d1a..85ab36c4e 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -134,26 +134,8 @@ interface Latencies { function runBenchmark(args: ArgsRunBenchmark): Latencies { console.error(`=== Starting ${args.transportStack} client.`); - let serverAddress = args.serverAddress; - - if (serverAddress == undefined) { - switch (args.transportStack) { - case 'tcp': - serverAddress = `/ip4/${args.serverPublicIP}/tcp/4001`; - break; - case 'quic-v1': - serverAddress = `/ip4/${args.serverPublicIP}/udp/4001/quic-v1`; - break; - default: - console.error("Unsupported transport stack ${args.transportStack}"); - process.exit(1); - - } - serverAddress = serverAddress + "/p2p/12D3KooWDpJ7As7BWAwRMfu1VU2WCqNjvq387JEYKDBj4kx6nXTN"; - } - // TODO: Remove static --n-times. - const binFlags = `--server-address ${serverAddress} --upload-bytes ${args.uploadBytes} --download-bytes ${args.downloadBytes} --n-times 1` + const binFlags = `--server-ip-address ${args.serverPublicIP} --transport ${args.transportStack} --upload-bytes ${args.uploadBytes} --download-bytes ${args.downloadBytes} --n-times 1` const dockerCMD = `docker run --init --rm --network host ${args.dockerImageId} ${binFlags}` const cmd = `ssh ec2-user@${args.clientPublicIP} 'for i in {1..${args.iterations}}; do ${dockerCMD}; done'` From 00cd4341b63b1789c74b69712a33e48afd2e0f91 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 4 May 2023 16:48:54 +0900 Subject: [PATCH 067/143] Build on machines & run outside of Docker - Build binaries on remote machines. This e.g. enables Mac users to use the tooling without additional steps. - Don't use Docker to run perf binaries. Instead run the binaries right away. Removes a layer of potential performance degradation. --- perf/Makefile | 17 - perf/impl/Makefile | 14 + perf/impl/{go => go-libp2p}/.gitignore | 0 perf/impl/{go => go-libp2p}/v0.27/Dockerfile | 0 perf/impl/go-libp2p/v0.27/Makefile | 6 + perf/impl/{go => go-libp2p}/v0.27/README.md | 0 perf/impl/{go => go-libp2p}/v0.27/go.mod | 0 perf/impl/{go => go-libp2p}/v0.27/go.sum | 0 perf/impl/{go => go-libp2p}/v0.27/main.go | 0 perf/impl/{go => go-libp2p}/v0.27/perf.go | 0 perf/impl/go/v0.27/Makefile | 11 - perf/impl/https/Dockerfile | 14 - perf/impl/https/Makefile | 12 - perf/impl/https/v0.1/Makefile | 6 + perf/impl/https/{ => v0.1}/go.mod | 0 perf/impl/https/{ => v0.1}/go.sum | 0 perf/impl/https/{ => v0.1}/main.go | 0 perf/impl/{rust => rust-libp2p}/.gitignore | 0 perf/impl/rust-libp2p/v0.51/Makefile | 23 + perf/impl/rust/v0.51/Makefile | 24 - perf/runner/benchmark-results.json | 1052 +++++++++--------- perf/runner/src/index.ts | 65 +- perf/runner/src/versions.ts | 17 +- perf/terraform/user-data.sh | 2 + 24 files changed, 608 insertions(+), 655 deletions(-) delete mode 100644 perf/Makefile create mode 100644 perf/impl/Makefile rename perf/impl/{go => go-libp2p}/.gitignore (100%) rename perf/impl/{go => go-libp2p}/v0.27/Dockerfile (100%) create mode 100644 perf/impl/go-libp2p/v0.27/Makefile rename perf/impl/{go => go-libp2p}/v0.27/README.md (100%) rename perf/impl/{go => go-libp2p}/v0.27/go.mod (100%) rename perf/impl/{go => go-libp2p}/v0.27/go.sum (100%) rename perf/impl/{go => go-libp2p}/v0.27/main.go (100%) rename perf/impl/{go => go-libp2p}/v0.27/perf.go (100%) delete mode 100644 perf/impl/go/v0.27/Makefile delete mode 100644 perf/impl/https/Dockerfile delete mode 100644 perf/impl/https/Makefile create mode 100644 perf/impl/https/v0.1/Makefile rename perf/impl/https/{ => v0.1}/go.mod (100%) rename perf/impl/https/{ => v0.1}/go.sum (100%) rename perf/impl/https/{ => v0.1}/main.go (100%) rename perf/impl/{rust => rust-libp2p}/.gitignore (100%) create mode 100644 perf/impl/rust-libp2p/v0.51/Makefile delete mode 100644 perf/impl/rust/v0.51/Makefile diff --git a/perf/Makefile b/perf/Makefile deleted file mode 100644 index 1e715fe2c..000000000 --- a/perf/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -GO_SUBDIRS := $(wildcard impl/go/*/.) -RUST_SUBDIRS := $(wildcard impl/rust/*/.) -ZIG_SUBDIRS := $(wildcard impl/zig/*/.) -HTTPS_SUBDIRS := $(wildcard impl/https/.) - -all: $(GO_SUBDIRS) $(RUST_SUBDIRS) $(ZIG_SUBDIRS) $(HTTPS_SUBDIRS) -$(GO_SUBDIRS): - $(MAKE) -C $@ -$(RUST_SUBDIRS): - $(MAKE) -C $@ -$(ZIG_SUBDIRS): - $(MAKE) -C $@ -$(HTTPS_SUBDIRS): - $(MAKE) -C $@ - - -.PHONY: $(GO_SUBDIRS) $(RUST_SUBDIRS) $(ZIG_SUBDIRS) $(HTTPS_SUBDIRS) all diff --git a/perf/impl/Makefile b/perf/impl/Makefile new file mode 100644 index 000000000..e744dd1aa --- /dev/null +++ b/perf/impl/Makefile @@ -0,0 +1,14 @@ +GO_SUBDIRS := $(wildcard go-libp2p/*/.) +RUST_SUBDIRS := $(wildcard rust-libp2p/*/.) +HTTPS_SUBDIRS := $(wildcard https/*/.) + +all: $(RUST_SUBDIRS) $(GO_SUBDIRS) $(HTTPS_SUBDIRS) +$(RUST_SUBDIRS): + $(MAKE) -C $@ +$(GO_SUBDIRS): + $(MAKE) -C $@ +$(HTTPS_SUBDIRS): + $(MAKE) -C $@ + + +.PHONY: $(GO_SUBDIRS) $(RUST_SUBDIRS) $(HTTPS_SUBDIRS) all diff --git a/perf/impl/go/.gitignore b/perf/impl/go-libp2p/.gitignore similarity index 100% rename from perf/impl/go/.gitignore rename to perf/impl/go-libp2p/.gitignore diff --git a/perf/impl/go/v0.27/Dockerfile b/perf/impl/go-libp2p/v0.27/Dockerfile similarity index 100% rename from perf/impl/go/v0.27/Dockerfile rename to perf/impl/go-libp2p/v0.27/Dockerfile diff --git a/perf/impl/go-libp2p/v0.27/Makefile b/perf/impl/go-libp2p/v0.27/Makefile new file mode 100644 index 000000000..9668f0c42 --- /dev/null +++ b/perf/impl/go-libp2p/v0.27/Makefile @@ -0,0 +1,6 @@ +all: perf + +perf: + docker run --rm --user "$(shell id -u):$(shell id -g)" -v "$(shell pwd)":/usr/src/myapp -w /usr/src/myapp -e GOCACHE=/usr/src/myapp/.cache golang:1.20 go build -o perf . + +.PHONY: all diff --git a/perf/impl/go/v0.27/README.md b/perf/impl/go-libp2p/v0.27/README.md similarity index 100% rename from perf/impl/go/v0.27/README.md rename to perf/impl/go-libp2p/v0.27/README.md diff --git a/perf/impl/go/v0.27/go.mod b/perf/impl/go-libp2p/v0.27/go.mod similarity index 100% rename from perf/impl/go/v0.27/go.mod rename to perf/impl/go-libp2p/v0.27/go.mod diff --git a/perf/impl/go/v0.27/go.sum b/perf/impl/go-libp2p/v0.27/go.sum similarity index 100% rename from perf/impl/go/v0.27/go.sum rename to perf/impl/go-libp2p/v0.27/go.sum diff --git a/perf/impl/go/v0.27/main.go b/perf/impl/go-libp2p/v0.27/main.go similarity index 100% rename from perf/impl/go/v0.27/main.go rename to perf/impl/go-libp2p/v0.27/main.go diff --git a/perf/impl/go/v0.27/perf.go b/perf/impl/go-libp2p/v0.27/perf.go similarity index 100% rename from perf/impl/go/v0.27/perf.go rename to perf/impl/go-libp2p/v0.27/perf.go diff --git a/perf/impl/go/v0.27/Makefile b/perf/impl/go/v0.27/Makefile deleted file mode 100644 index efaef774f..000000000 --- a/perf/impl/go/v0.27/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -image_name := go-v0.27 - -image.json: Dockerfile main.go go.mod go.sum - IMAGE_NAME=${image_name} docker build -t ${image_name} . - docker image inspect ${image_name} -f "{{.Id}}" | \ - xargs -I {} echo "{\"imageID\": \"{}\"}" > $@ - -.PHONY: clean - -clean: - rm image.json diff --git a/perf/impl/https/Dockerfile b/perf/impl/https/Dockerfile deleted file mode 100644 index eac77ccca..000000000 --- a/perf/impl/https/Dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -# Build Go Binary -FROM golang:1.20-alpine AS builder - -WORKDIR /app -COPY go.mod go.sum ./ -RUN go mod download -COPY *.go ./ -RUN go build -o perf . - -FROM alpine - -COPY --from=builder /app/perf /app/perf - -ENTRYPOINT [ "/app/perf" ] \ No newline at end of file diff --git a/perf/impl/https/Makefile b/perf/impl/https/Makefile deleted file mode 100644 index 731064867..000000000 --- a/perf/impl/https/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -image_name := https - -all: image.json - -image.json: -# TODO: Consider removing sudo - docker build -t ${image_name} . - docker image inspect ${image_name} -f "{{.Id}}" | \ - xargs -I {} echo "{\"imageID\": \"{}\"}" > $@ - -clean: - rm image.json diff --git a/perf/impl/https/v0.1/Makefile b/perf/impl/https/v0.1/Makefile new file mode 100644 index 000000000..9668f0c42 --- /dev/null +++ b/perf/impl/https/v0.1/Makefile @@ -0,0 +1,6 @@ +all: perf + +perf: + docker run --rm --user "$(shell id -u):$(shell id -g)" -v "$(shell pwd)":/usr/src/myapp -w /usr/src/myapp -e GOCACHE=/usr/src/myapp/.cache golang:1.20 go build -o perf . + +.PHONY: all diff --git a/perf/impl/https/go.mod b/perf/impl/https/v0.1/go.mod similarity index 100% rename from perf/impl/https/go.mod rename to perf/impl/https/v0.1/go.mod diff --git a/perf/impl/https/go.sum b/perf/impl/https/v0.1/go.sum similarity index 100% rename from perf/impl/https/go.sum rename to perf/impl/https/v0.1/go.sum diff --git a/perf/impl/https/main.go b/perf/impl/https/v0.1/main.go similarity index 100% rename from perf/impl/https/main.go rename to perf/impl/https/v0.1/main.go diff --git a/perf/impl/rust/.gitignore b/perf/impl/rust-libp2p/.gitignore similarity index 100% rename from perf/impl/rust/.gitignore rename to perf/impl/rust-libp2p/.gitignore diff --git a/perf/impl/rust-libp2p/v0.51/Makefile b/perf/impl/rust-libp2p/v0.51/Makefile new file mode 100644 index 000000000..bf2e55f8a --- /dev/null +++ b/perf/impl/rust-libp2p/v0.51/Makefile @@ -0,0 +1,23 @@ +image_name := rust-v0.51 +commitSha := f515473f7f94597d55056df88cc9f784c35d202f + +all: perf + +perf: rust-libp2p-${commitSha}/target/release/perf + cp ./rust-libp2p-${commitSha}/target/release/perf . + +rust-libp2p-${commitSha}/target/release/perf: rust-libp2p-${commitSha} + docker run --rm --user "$(shell id -u):$(shell id -g)" -v "$(shell pwd)/rust-libp2p-${commitSha}":/usr/src/myapp -w /usr/src/myapp rust:1.69 cargo build --release --bin perf + +rust-libp2p-${commitSha}: rust-libp2p-${commitSha}.zip + unzip -o rust-libp2p-${commitSha}.zip + +rust-libp2p-${commitSha}.zip: +# TODO: Change to libp2p + wget -O $@ "https://github.com/mxinden/rust-libp2p/archive/${commitSha}.zip" + +clean: + rm rust-libp2p-*.zip + rm -rf rust-libp2p-* + +.PHONY: all clean run diff --git a/perf/impl/rust/v0.51/Makefile b/perf/impl/rust/v0.51/Makefile deleted file mode 100644 index 1b1402fe6..000000000 --- a/perf/impl/rust/v0.51/Makefile +++ /dev/null @@ -1,24 +0,0 @@ -image_name := rust-v0.51 -commitSha := f515473f7f94597d55056df88cc9f784c35d202f - -all: image.json - -image.json: rust-libp2p-${commitSha} -# TODO: Consider removing sudo - cd rust-libp2p-${commitSha} && docker build -t ${image_name} -f protocols/perf/Dockerfile . - docker image inspect ${image_name} -f "{{.Id}}" | \ - xargs -I {} echo "{\"imageID\": \"{}\"}" > $@ - -rust-libp2p-${commitSha}: rust-libp2p-${commitSha}.zip - unzip -o rust-libp2p-${commitSha}.zip - -rust-libp2p-${commitSha}.zip: -# TODO: Change to libp2p - wget -O $@ "https://github.com/mxinden/rust-libp2p/archive/${commitSha}.zip" - -clean: - rm image.json - rm rust-libp2p-*.zip - rm -rf rust-libp2p-* - -.PHONY: all clean diff --git a/perf/runner/benchmark-results.json b/perf/runner/benchmark-results.json index e4a6e4ed6..efae8fa7e 100644 --- a/perf/runner/benchmark-results.json +++ b/perf/runner/benchmark-results.json @@ -6,42 +6,42 @@ "results": [ { "result": [ - 24350509.655656375 + 20290461.854966406 ], "implementation": "rust-libp2p", - "version": "rust-v0.51", + "version": "v0.51", "transportStack": "tcp" }, { "result": [ - 60663340.88260239 + 53647941.63433479 ], "implementation": "rust-libp2p", - "version": "rust-v0.51", + "version": "v0.51", "transportStack": "quic-v1" }, { "result": [ - 293240024.41811824 + 299414670.3268659 ], "implementation": "https", - "version": "https", + "version": "v0.1", "transportStack": "tcp" }, { "result": [ - 264059213.2216462 + 265595689.8856188 ], "implementation": "go-libp2p", - "version": "go-v0.27.0", + "version": "v0.27", "transportStack": "tcp" }, { "result": [ - 615340873.6224145 + 632056139.5154513 ], "implementation": "go-libp2p", - "version": "go-v0.27.0", + "version": "v0.27", "transportStack": "quic-v1" } ] @@ -52,42 +52,42 @@ "results": [ { "result": [ - 19440868.43741449 + 23993107.455116663 ], "implementation": "rust-libp2p", - "version": "rust-v0.51", + "version": "v0.51", "transportStack": "tcp" }, { "result": [ - 45763061.98269354 + 51007769.31364293 ], "implementation": "rust-libp2p", - "version": "rust-v0.51", + "version": "v0.51", "transportStack": "quic-v1" }, { "result": [ - 302546864.6759939 + 295734786.15972674 ], "implementation": "https", - "version": "https", + "version": "v0.1", "transportStack": "tcp" }, { "result": [ - 297542786.14435023 + 259730181.32670394 ], "implementation": "go-libp2p", - "version": "go-v0.27.0", + "version": "v0.27", "transportStack": "tcp" }, { "result": [ - 601906170.7198751 + 634222072.0199658 ], "implementation": "go-libp2p", - "version": "go-v0.27.0", + "version": "v0.27", "transportStack": "quic-v1" } ] @@ -98,540 +98,540 @@ "results": [ { "result": [ - 0.117531215, - 0.119477231, - 0.127241314, - 0.123838376, - 0.126217281, - 0.123786636, - 0.12467958, - 0.123438347, - 0.125642011, - 0.124928052, - 0.122122493, - 0.118084278, - 0.120487079, - 0.126291729, - 0.123366993, - 0.122684732, - 0.128289217, - 0.128280574, - 0.128451502, - 0.125156331, - 0.128532382, - 0.12511481, - 0.120080922, - 0.125052891, - 0.128270126, - 0.117955838, - 0.124216025, - 0.120151138, - 0.120900373, - 0.124190145, - 0.125512223, - 0.125198228, - 0.126168804, - 0.121633532, - 0.115684048, - 0.123711036, - 0.119018693, - 0.128783925, - 0.125229119, - 0.126767544, - 0.127907333, - 0.119027267, - 0.126271684, - 0.120223078, - 0.128007503, - 0.123304871, - 0.127853049, - 0.127922427, - 0.121222788, - 0.119177537, - 0.127096945, - 0.121200177, - 0.124658115, - 0.122214894, - 0.124448714, - 0.121902116, - 0.123600603, - 0.127504034, - 0.123739287, - 0.122509289, - 0.120164122, - 0.127016085, - 0.124842619, - 0.127785936, - 0.122218441, - 0.121571746, - 0.122432379, - 0.12162545, - 0.122377491, - 0.123179156, - 0.123372804, - 0.126278693, - 0.124852896, - 0.123329491, - 0.122193762, - 0.121078517, - 0.123470548, - 0.122604349, - 0.122051216, - 0.1252449, - 0.127407171, - 0.126614329, - 0.126718561, - 0.125360279, - 0.123016905, - 0.117310408, - 0.127781929, - 0.125049815, - 0.12014819, - 0.128220601, - 0.121267966, - 0.124953428, - 0.128022598, - 0.127121062, - 0.122899784, - 0.127152937, - 0.123185042, - 0.121124426, - 0.124188753, - 0.122067442 + 0.127828854, + 0.120534387, + 0.12044871, + 0.125737917, + 0.118503398, + 0.126308489, + 0.125622508, + 0.128124063, + 0.123360196, + 0.125409024, + 0.121635772, + 0.120267774, + 0.123290571, + 0.116399527, + 0.129182089, + 0.124196457, + 0.123145711, + 0.125422459, + 0.125460983, + 0.124068713, + 0.124166576, + 0.118302336, + 0.124427211, + 0.123611906, + 0.122429595, + 0.12508232, + 0.12342625, + 0.128447371, + 0.12399178, + 0.127087593, + 0.12443394, + 0.126314451, + 0.128266032, + 0.124901336, + 0.120399578, + 0.123844069, + 0.123465545, + 0.126041535, + 0.127494366, + 0.121576234, + 0.121962232, + 0.127439657, + 0.124313683, + 0.128025549, + 0.12720989, + 0.127093446, + 0.125278966, + 0.128942384, + 0.123069833, + 0.123261723, + 0.121481512, + 0.122424114, + 0.121566236, + 0.122907267, + 0.12080229, + 0.118436975, + 0.126521897, + 0.128883921, + 0.120129619, + 0.128584914, + 0.124406185, + 0.130316659, + 0.124205897, + 0.124278855, + 0.123542628, + 0.124181753, + 0.125956835, + 0.127277402, + 0.124634619, + 0.126092548, + 0.123038641, + 0.130131343, + 0.125360625, + 0.124763501, + 0.1251226, + 0.120595955, + 0.126249329, + 0.12340895, + 0.126857356, + 0.124856843, + 0.126279967, + 0.12308499, + 0.124558394, + 0.125211736, + 0.125498407, + 0.12834632, + 0.127284325, + 0.126912314, + 0.124714709, + 0.126572113, + 0.121492794, + 0.122410126, + 0.120395254, + 0.122346675, + 0.126625206, + 0.12599842, + 0.129794383, + 0.122657057, + 0.12685624, + 0.123413465 ], "implementation": "rust-libp2p", - "version": "rust-v0.51", + "version": "v0.51", "transportStack": "tcp" }, { "result": [ - 0.126492701, - 0.128645231, - 0.12764948, - 0.12103475, - 0.122596624, - 0.126592365, - 0.127436689, - 0.128119098, - 0.124821297, - 0.11943138, - 0.123570282, - 0.123472562, - 0.125432298, - 0.12417364, - 0.123524911, - 0.126522503, - 0.125163512, - 0.120606514, - 0.124866123, - 0.125376311, - 0.128783539, - 0.125887119, - 0.121722658, - 0.12600124, - 0.120812495, - 0.128430569, - 0.124644469, - 0.127735154, - 0.128627366, - 0.124496423, - 0.124060574, - 0.126146926, - 0.12785907, - 0.126904463, - 0.127326552, - 0.121947189, - 0.125433886, - 0.120365002, - 0.12335412, - 0.126383518, - 0.128603595, - 0.123623288, - 0.124439586, - 0.123612114, - 0.130604288, - 0.129593343, - 0.127862973, - 0.123046912, - 0.123133175, - 0.117651496, - 0.11778844, - 0.121584935, - 0.127266558, - 0.127635503, - 0.11977104, - 0.125398818, - 0.124956356, - 0.122441387, - 0.122984766, - 0.128045231, - 0.126895532, - 0.126076572, - 0.126854525, - 0.125299198, - 0.123040937, - 0.125369624, - 0.124795957, - 0.128728248, - 0.127091627, - 0.127126209, - 0.119520154, - 0.125767227, - 0.127001141, - 0.123595742, - 0.124235397, - 0.117551288, - 0.129048246, - 0.125796886, - 0.12825037, - 0.12581745, - 0.126931091, - 0.122246634, - 0.125022816, - 0.126914787, - 0.120603571, - 0.124985751, - 0.122157381, - 0.12536259, - 0.125753319, - 0.121856033, - 0.123539674, - 0.125851348, - 0.123957067, - 0.12364997, - 0.121640465, - 0.126824563, - 0.121472587, - 0.120211254, - 0.121835976, - 0.130236577 + 0.12802408, + 0.122713897, + 0.128928205, + 0.127677123, + 0.125205912, + 0.127346237, + 0.116990178, + 0.126939974, + 0.118920149, + 0.119986906, + 0.124122801, + 0.127368665, + 0.123561798, + 0.123797555, + 0.126631929, + 0.120634662, + 0.126897599, + 0.125655693, + 0.122072076, + 0.123699567, + 0.125254531, + 0.124928335, + 0.12494319, + 0.120571841, + 0.122472147, + 0.126978375, + 0.122925217, + 0.118877029, + 0.125302872, + 0.120568438, + 0.12716571, + 0.119667499, + 0.119869435, + 0.124565743, + 0.125531023, + 0.124037777, + 0.127407129, + 0.122902725, + 0.127932368, + 0.127466375, + 0.127796412, + 0.123671928, + 0.123381076, + 0.117923919, + 0.127655303, + 0.128970701, + 0.122032089, + 0.122538667, + 0.124745604, + 0.124514985, + 0.120547457, + 0.126386589, + 0.129679912, + 0.124575461, + 0.124567503, + 0.122718095, + 0.125609052, + 0.128579484, + 0.127560495, + 0.122333435, + 0.128028228, + 0.120569618, + 0.122770157, + 0.127501598, + 0.122502054, + 0.126455323, + 0.124679869, + 0.125821033, + 0.124665604, + 0.123072073, + 0.126874507, + 0.128231908, + 0.12164182, + 0.125037447, + 0.12312374, + 0.125803004, + 0.124508016, + 0.129500988, + 0.125664771, + 0.121573835, + 0.127312568, + 0.117237058, + 0.116595371, + 0.124720144, + 0.121799046, + 0.117370059, + 0.117767304, + 0.12743704, + 0.126441177, + 0.121974507, + 0.127723686, + 0.128062865, + 0.123713384, + 0.120718512, + 0.123899464, + 0.128723666, + 0.127744297, + 0.125239858, + 0.11992982, + 0.128296616 ], "implementation": "rust-libp2p", - "version": "rust-v0.51", + "version": "v0.51", "transportStack": "quic-v1" }, { "result": [ - 0.1905508, - 0.19120069, - 0.19208843, - 0.18447545, - 0.19727789, - 0.19536076, - 0.19549216, - 0.1909243, - 0.18881956, - 0.19217543, - 0.1877395, - 0.18598732, - 0.19317727, - 0.19503729, - 0.17881867, - 0.1934256, - 0.187884, - 0.18333447, - 0.19611809, - 0.18792787, - 0.19242029, - 0.19255786, - 0.18546608, - 0.18191247, - 0.18786986, - 0.1923337, - 0.18841194, - 0.18253963, - 0.18228842, - 0.1851186, - 0.19316866, - 0.19420747, - 0.18459386, - 0.1910244, - 0.18564709, - 0.19383651, - 0.18947494, - 0.1849043, - 0.18606955, - 0.18700443, - 0.19366558, - 0.18035644, - 0.18951121, - 0.18696323, - 0.18936445, - 0.17857671, - 0.1836147, - 0.18801275, - 0.19045018, - 0.18924312, - 0.19615361, - 0.19372635, - 0.18651393, - 0.19028859, - 0.1893717, - 0.18552811, - 0.18736637, - 0.19309106, - 0.18693604, - 0.19023037, - 0.1871291, - 0.18655825, - 0.18646562, - 0.18466365, - 0.18961416, - 0.18048154, - 0.18884529, - 0.18006688, - 0.1932698, - 0.18488555, - 0.19532463, - 0.19325395, - 0.19368966, - 0.19409521, - 0.18709031, - 0.18488774, - 0.1890471, - 0.18583038, - 0.18771419, - 0.18709807, - 0.18651003, - 0.19030699, - 0.18543595, - 0.1907468, - 0.19577229, - 0.19353405, - 0.19091126, - 0.18190527, - 0.18919502, - 0.18638895, - 0.19068405, - 0.18348704, - 0.18883169, - 0.18787478, - 0.19052736, - 0.18179108, - 0.19308127, - 0.19171245, - 0.19040409, - 0.19386716 + 0.18320343, + 0.18536061, + 0.18361744, + 0.19435881, + 0.19297308, + 0.17911123, + 0.18771777, + 0.18616855, + 0.19002189, + 0.1932833, + 0.18328913, + 0.1849363, + 0.19637023, + 0.19462414, + 0.18167907, + 0.19653203, + 0.19244458, + 0.19403593, + 0.19658187, + 0.19360423, + 0.1878126, + 0.1950962, + 0.18683565, + 0.18880358, + 0.19160251, + 0.1934229, + 0.19295235, + 0.19242506, + 0.19079773, + 0.18370089, + 0.19053127, + 0.18591598, + 0.19645037, + 0.18677087, + 0.1821941, + 0.18339914, + 0.18658818, + 0.1934576, + 0.1852235, + 0.18171275, + 0.19248205, + 0.18724504, + 0.19660091, + 0.18020825, + 0.19356246, + 0.19059129, + 0.1908433, + 0.18162169, + 0.19812965, + 0.18996501, + 0.18189964, + 0.1853105, + 0.19334716, + 0.19054043, + 0.18878776, + 0.19199143, + 0.19069456, + 0.19355537, + 0.18092379, + 0.19440931, + 0.188115, + 0.18938051, + 0.19417661, + 0.1900581, + 0.1790652, + 0.18985173, + 0.19375472, + 0.18476903, + 0.18864189, + 0.18627912, + 0.18755183, + 0.19773859, + 0.185586, + 0.18950075, + 0.18825252, + 0.19602655, + 0.19072296, + 0.19385633, + 0.1878541, + 0.18805191, + 0.18851843, + 0.19145073, + 0.17907362, + 0.1818605, + 0.1912801, + 0.18049575, + 0.17909673, + 0.1890659, + 0.1919892, + 0.19699329, + 0.18649152, + 0.19280715, + 0.19561869, + 0.19330662, + 0.18367936, + 0.18593276, + 0.18934114, + 0.19334432, + 0.19124785, + 0.1819501 ], "implementation": "https", - "version": "https", + "version": "v0.1", "transportStack": "tcp" }, { "result": [ - 0.11886548, - 0.06207159, - 0.059752, - 0.06366672, - 0.117640115, - 0.060913656, - 0.06061558, - 0.12187687, - 0.06273285, - 0.060223714, - 0.12654272, - 0.062961616, - 0.060779184, - 0.06332914, - 0.12676404, - 0.06256747, - 0.06139459, - 0.12560034, - 0.12362937, - 0.06257865, - 0.11634072, - 0.124720946, - 0.1265982, - 0.06111584, - 0.12737016, - 0.061775804, - 0.06400239, - 0.12289581, - 0.123719655, - 0.12401232, - 0.06303235, - 0.1276448, - 0.06232622, - 0.12518571, - 0.06395094, - 0.123611346, - 0.06388889, - 0.063405804, - 0.12394694, - 0.06245831, - 0.06416768, - 0.06461364, - 0.12265379, - 0.0635013, - 0.123194255, - 0.059708185, - 0.061085, - 0.12135438, - 0.06308459, - 0.06435049, - 0.12202259, - 0.05987249, - 0.118559346, - 0.12069713, - 0.061908245, - 0.06249194, - 0.1227838, - 0.061034348, - 0.06484004, - 0.12327383, - 0.118593454, - 0.12120287, - 0.05972468, - 0.12287883, - 0.11924952, - 0.12340003, - 0.063479245, - 0.060867403, - 0.062849715, - 0.12474931, - 0.06292324, - 0.062693946, - 0.061772607, - 0.060404472, - 0.06379947, - 0.11889992, - 0.06086896, - 0.12163995, - 0.06321763, - 0.12439474, - 0.06108236, - 0.12368068, - 0.124439366, - 0.06258205, - 0.060899056, - 0.12354212, - 0.062890604, - 0.062237974, - 0.06260137, - 0.11898126, - 0.12497839, - 0.06353188, - 0.0636649, - 0.0627121, - 0.06411397, - 0.061960503, - 0.06246588, - 0.064078934, - 0.12232631, - 0.06406221 + 0.121910445, + 0.11881714, + 0.12565878, + 0.120740406, + 0.12369829, + 0.059684623, + 0.062413216, + 0.12297799, + 0.05914709, + 0.121276975, + 0.1275316, + 0.12616104, + 0.06367172, + 0.06365608, + 0.11770963, + 0.12578832, + 0.11637737, + 0.12519154, + 0.06280298, + 0.12279162, + 0.1280496, + 0.06273546, + 0.06382796, + 0.123510554, + 0.12652722, + 0.063152574, + 0.061366368, + 0.061252348, + 0.122583106, + 0.06320014, + 0.06368281, + 0.12935217, + 0.1272645, + 0.12278854, + 0.06265062, + 0.061963823, + 0.060819846, + 0.061983608, + 0.12717623, + 0.06352975, + 0.063989244, + 0.063381314, + 0.063970394, + 0.060427155, + 0.12220286, + 0.06254202, + 0.12677895, + 0.06205927, + 0.12242437, + 0.061617523, + 0.061746463, + 0.06292769, + 0.12955624, + 0.120770946, + 0.06198795, + 0.12360525, + 0.06355573, + 0.06294512, + 0.06212846, + 0.12300296, + 0.12280484, + 0.121470906, + 0.12500018, + 0.06442808, + 0.06139656, + 0.062791884, + 0.060238913, + 0.06299706, + 0.06510424, + 0.062770784, + 0.12278812, + 0.06269702, + 0.0634597, + 0.06203319, + 0.1255534, + 0.060937285, + 0.1206148, + 0.12486283, + 0.06401831, + 0.12350103, + 0.124673195, + 0.06171527, + 0.12783773, + 0.11993122, + 0.124730706, + 0.060521364, + 0.059129454, + 0.061679672, + 0.12909296, + 0.12940763, + 0.06199324, + 0.06338893, + 0.061646536, + 0.06442368, + 0.06122898, + 0.061356246, + 0.061156437, + 0.11956378, + 0.12571876, + 0.121949255 ], "implementation": "go-libp2p", - "version": "go-v0.27.0", + "version": "v0.27", "transportStack": "tcp" }, { "result": [ - 0.062166207, - 0.06347945, - 0.0634769, - 0.06262155, - 0.061401874, - 0.06067336, - 0.059668176, - 0.06126384, - 0.059219595, - 0.063664526, - 0.06478484, - 0.062126044, - 0.06131495, - 0.06097344, - 0.06302132, - 0.061447747, - 0.06006903, - 0.06428919, - 0.060735032, - 0.06438137, - 0.060805395, - 0.062184226, - 0.06131604, - 0.061692588, - 0.061749745, - 0.06237051, - 0.06424101, - 0.06246468, - 0.062390648, - 0.06321125, - 0.059326556, - 0.061613392, - 0.061730187, - 0.061770275, - 0.061853573, - 0.06375709, - 0.062096745, - 0.061394863, - 0.061692376, - 0.0592694, - 0.06454182, - 0.05867471, - 0.06171774, - 0.06226178, - 0.0617235, - 0.0628771, - 0.06174907, - 0.060809057, - 0.06382027, - 0.058840185, - 0.059617076, - 0.0630149, - 0.062986195, - 0.062970676, - 0.06340244, - 0.061709, - 0.065071106, - 0.06310097, - 0.06299079, - 0.062262863, - 0.062212706, - 0.061375078, - 0.06079732, - 0.061787553, - 0.06130792, - 0.0644198, - 0.061684314, - 0.06173436, - 0.062170528, - 0.06256191, - 0.0613262, - 0.06285372, - 0.062032223, - 0.062053975, - 0.06308158, - 0.061542917, - 0.06062959, - 0.06387708, - 0.060190577, - 0.060683966, - 0.061599143, - 0.060212366, - 0.06250237, - 0.061295517, - 0.06188249, - 0.06060551, - 0.061811384, - 0.064418614, - 0.06039328, - 0.05935275, - 0.06322118, - 0.062921494, - 0.063168146, - 0.06294009, - 0.06133466, - 0.06270723, - 0.06076044, - 0.06282397, - 0.058681328, - 0.06131034 + 0.061366297, + 0.06141815, + 0.06235603, + 0.05939474, + 0.06039162, + 0.06285481, + 0.062587045, + 0.06076747, + 0.061709136, + 0.0651515, + 0.06375983, + 0.06174513, + 0.06441085, + 0.06124736, + 0.0633643, + 0.062006813, + 0.064214155, + 0.06199964, + 0.059042238, + 0.0638644, + 0.061607417, + 0.06152012, + 0.061881498, + 0.063524246, + 0.064039655, + 0.06134695, + 0.062953085, + 0.06384624, + 0.06427768, + 0.06291174, + 0.063121215, + 0.064400375, + 0.060993534, + 0.06326786, + 0.06498396, + 0.06366782, + 0.06421878, + 0.05991633, + 0.061237972, + 0.06097275, + 0.06281252, + 0.063318364, + 0.06220533, + 0.059357736, + 0.062972456, + 0.06279454, + 0.06431296, + 0.061344843, + 0.060761552, + 0.062238023, + 0.064125076, + 0.060153004, + 0.06452732, + 0.062090736, + 0.063264675, + 0.063170955, + 0.06424445, + 0.06410372, + 0.060594898, + 0.063670315, + 0.058708303, + 0.059632868, + 0.05994657, + 0.06230721, + 0.06079447, + 0.062781, + 0.0634743, + 0.061454855, + 0.06413592, + 0.06086088, + 0.06315938, + 0.062183496, + 0.060575858, + 0.06285511, + 0.064148664, + 0.06287306, + 0.06424426, + 0.06077488, + 0.0604213, + 0.06092073, + 0.061406802, + 0.060680717, + 0.06267789, + 0.061268207, + 0.062574886, + 0.06418872, + 0.06184111, + 0.06153584, + 0.061698426, + 0.06317972, + 0.05922345, + 0.06279262, + 0.06402876, + 0.06379871, + 0.06081787, + 0.06390525, + 0.06378799, + 0.06364002, + 0.063555226, + 0.058329925 ], "implementation": "go-libp2p", - "version": "go-v0.27.0", + "version": "v0.27", "transportStack": "quic-v1" } ] } ] -} +} \ No newline at end of file diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index 85ab36c4e..a2ba9d809 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -5,10 +5,8 @@ import fs from 'fs'; import { BenchmarkResults, Benchmark, Result } from './benchmark-result-type'; async function main(clientPublicIP: string, serverPublicIP: string) { - for (const version of versions) { - transferDockerImage(serverPublicIP, version.containerImageID); - transferDockerImage(clientPublicIP, version.containerImageID); - } + copyAndBuildPerfImplementations(serverPublicIP); + copyAndBuildPerfImplementations(clientPublicIP); const benchmarkResults: BenchmarkResults = { benchmarks: [ @@ -66,26 +64,25 @@ function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Bench for (const version of versions) { console.error(`== Version ${version.implementation}/${version.id}`) - // The `if` is a hack for zig. - if (version.serverAddress == undefined) { - console.error(`=== Starting ${version.id} server.`); - let serverCMD: string - if (version.implementation === "zig-libp2p") { - // Hack! - serverCMD = `ssh ec2-user@${args.serverPublicIP} 'docker stop $(docker ps -aq); docker run --init -d --restart always --network host ${version.containerImageID} --run-server'`; - } else { - serverCMD = `ssh ec2-user@${args.serverPublicIP} 'docker stop $(docker ps -aq); docker run --init -d --restart always --network host ${version.containerImageID} --run-server --secret-key-seed 0'`; - } - const serverSTDOUT = execCommand(serverCMD); - console.error(serverSTDOUT); - } + // ssh user@your-server "kill \$(cat pidfile) && rm pidfile" + // ssh user@your-server "nohup your-command > output.log 2>&1 & echo \$! > pidfile" + + console.error(`=== Starting server ${version.implementation}/${version.id}`); + + let killCMD = `ssh ec2-user@${args.serverPublicIP} 'kill $(cat pidfile); rm pidfile; rm server.log || true'`; + const killSTDOUT = execCommand(killCMD); + console.error(killSTDOUT); + + let serverCMD = `ssh ec2-user@${args.serverPublicIP} 'nohup ./impl/${version.implementation}/${version.id}/perf --run-server --secret-key-seed 0 > server.log 2>&1 & echo \$! > pidfile '`; + const serverSTDOUT = execCommand(serverCMD); + console.error(serverSTDOUT); for (const transportStack of version.transportStacks) { - const latencies = runBenchmark({ + const latencies = runClient({ clientPublicIP: args.clientPublicIP, serverPublicIP: args.serverPublicIP, - serverAddress: version.serverAddress, - dockerImageId: version.containerImageID, + id: version.id, + implementation: version.implementation, transportStack: transportStack, uploadBytes: args.uploadBytes, downloadBytes: args.downloadBytes, @@ -119,7 +116,8 @@ interface ArgsRunBenchmark { clientPublicIP: string; serverPublicIP: string; serverAddress?: string; - dockerImageId: string; + id: string, + implementation: string, transportStack: string, uploadBytes: number, downloadBytes: number, @@ -131,13 +129,12 @@ interface Latencies { } -function runBenchmark(args: ArgsRunBenchmark): Latencies { - console.error(`=== Starting ${args.transportStack} client.`); +function runClient(args: ArgsRunBenchmark): Latencies { + console.error(`=== Starting client ${args.implementation}/${args.id}/${args.transportStack}`); // TODO: Remove static --n-times. - const binFlags = `--server-ip-address ${args.serverPublicIP} --transport ${args.transportStack} --upload-bytes ${args.uploadBytes} --download-bytes ${args.downloadBytes} --n-times 1` - const dockerCMD = `docker run --init --rm --network host ${args.dockerImageId} ${binFlags}` - const cmd = `ssh ec2-user@${args.clientPublicIP} 'for i in {1..${args.iterations}}; do ${dockerCMD}; done'` + const perfCMD = `./impl/${args.implementation}/${args.id}/perf --server-ip-address ${args.serverPublicIP} --transport ${args.transportStack} --upload-bytes ${args.uploadBytes} --download-bytes ${args.downloadBytes} --n-times 1` + const cmd = `ssh ec2-user@${args.clientPublicIP} 'for i in {1..${args.iterations}}; do ${perfCMD}; done'` const stdout = execCommand(cmd); // TODO: Does it really still make sense for the binary to return an array? @@ -168,18 +165,12 @@ function execCommand(cmd: string): string { } } -async function transferDockerImage(serverIp: string, imageSha256: string): Promise { - const imageName = `image-${imageSha256.slice(0, 12)}`; - const tarballName = `${imageName}.tar`; - - // Save the Docker image as a tarball, transfer it using rsync, load it on the remote server, and clean up tarball files locally. - console.error(`== Transferring Docker image ${imageSha256} to ${serverIp}`); - execCommand(`docker save -o ${tarballName} ${imageSha256} && - rsync -avz --progress ./${tarballName} ec2-user@${serverIp}:/tmp/ && - ssh ec2-user@${serverIp} 'docker load -i /tmp/${tarballName}' && - rm ${tarballName}`); +function copyAndBuildPerfImplementations(ip: string) { + const stdout = execCommand(`rsync -avz --progress ../impl ec2-user@${ip}:/home/ec2-user`); + console.log(stdout.toString()); - console.error(`=== Docker image ${imageSha256} transferred successfully to ${serverIp}`); + const stdout2 = execCommand(`ssh ec2-user@${ip} 'cd impl && make'`); + console.log(stdout2.toString()); } const argv = yargs diff --git a/perf/runner/src/versions.ts b/perf/runner/src/versions.ts index 79f77fc4f..0abf377b4 100644 --- a/perf/runner/src/versions.ts +++ b/perf/runner/src/versions.ts @@ -1,39 +1,28 @@ -import rustv051 from "../../impl/rust/v0.51/image.json" -import go027 from "../../impl/go/v0.27/image.json" -import https from "../../impl/https/image.json" - export type Version = { id: string, implementation: "go-libp2p" | "js-libp2p" | "nim-libp2p" | "rust-libp2p" | "zig-libp2p" | "https", - containerImageID: string, transportStacks: string[], - serverAddress?: string, } export const versions: Array = [ { - id: "rust-v0.51", + id: "v0.51", implementation: "rust-libp2p", - containerImageID: rustv051.imageID, transportStacks: ["tcp", "quic-v1"] }, { - id: "https", + id: "v0.1", implementation: "https", - containerImageID: https.imageID, transportStacks: ["tcp"] }, { - id: "go-v0.27.0", + id: "v0.27", implementation: "go-libp2p", - containerImageID: go027.imageID, transportStacks: ["tcp", "quic-v1"] }, // { // id: "zig-libp2p-v0.0.1", // implementation: "zig-libp2p", - // containerImageID: "marcop010/zig-libp2p-perf@sha256:6a9f11961092cbebef93a55f5160fdd8584b7a11957b37b70d513e0948164353", // transportStacks: ["quic-v1"], - // // serverAddress: "/ip4/13.56.168.61/udp/35052/quic-v1/p2p/12D3KooWKa5rDq3YhVzvAnvRoCrXhkWpA1CRsfY2hrBt2QYzLWih" // }, ] diff --git a/perf/terraform/user-data.sh b/perf/terraform/user-data.sh index e2286e9ae..f6fcb3e74 100644 --- a/perf/terraform/user-data.sh +++ b/perf/terraform/user-data.sh @@ -8,3 +8,5 @@ sudo yum install docker -y sudo systemctl enable docker sudo systemctl start docker sudo usermod -aG docker ec2-user + +sudo yum install make -y From d1b7d00091b8500491e575fb159e60401619e269 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 8 May 2023 15:57:55 +0900 Subject: [PATCH 068/143] fix(perf/https): use duration Seconds() --- perf/impl/https/v0.1/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/impl/https/v0.1/main.go b/perf/impl/https/v0.1/main.go index abeb4b3c3..0849150c8 100644 --- a/perf/impl/https/v0.1/main.go +++ b/perf/impl/https/v0.1/main.go @@ -191,7 +191,7 @@ func main() { // Convert durations to seconds and marshal as JSON timesS := make([]float32, 0, len(durations)) for _, d := range durations { - timesS = append(timesS, float32(d.Nanoseconds())/1_000_000_000) + timesS = append(timesS, float32(d.Seconds())) } latencies := Latencies{ From 17a0d1d7b57b588f9087088ec1dd632fb3d5d33e Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 8 May 2023 15:59:48 +0900 Subject: [PATCH 069/143] fix(perf/go-libp2p): use duration Seconds() --- perf/impl/go-libp2p/v0.27/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/impl/go-libp2p/v0.27/main.go b/perf/impl/go-libp2p/v0.27/main.go index e6ee668b8..92fea1940 100644 --- a/perf/impl/go-libp2p/v0.27/main.go +++ b/perf/impl/go-libp2p/v0.27/main.go @@ -85,7 +85,7 @@ func main() { // float32 because json timesS := make([]float32, 0, len(times)) for _, t := range times { - timesS = append(timesS, float32(t.Nanoseconds())/1_000_000_000) + timesS = append(timesS, float32(t.Seconds())) } latencies := Latencies{ From 1f87937e5f4474db7830cb4ec1fb338c5424ff55 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 8 May 2023 16:05:18 +0900 Subject: [PATCH 070/143] fix: use uint64 for command line flags --- perf/impl/go-libp2p/v0.27/main.go | 8 ++++---- perf/impl/https/v0.1/main.go | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/perf/impl/go-libp2p/v0.27/main.go b/perf/impl/go-libp2p/v0.27/main.go index 92fea1940..327f9e6fd 100644 --- a/perf/impl/go-libp2p/v0.27/main.go +++ b/perf/impl/go-libp2p/v0.27/main.go @@ -18,9 +18,9 @@ func main() { serverIPAddr := flag.String("server-ip-address", "", "Server address") transport := flag.String("transport", "tcp", "Transport to use") secretKeySeed := flag.Uint64("secret-key-seed", 0, "Server secret key seed") - uploadBytes := flag.Int("upload-bytes", 0, "Upload bytes") - downloadBytes := flag.Int("download-bytes", 0, "Download bytes") - nTimes := flag.Int("n-times", 0, "N times") + uploadBytes := flag.Uint64("upload-bytes", 0, "Upload bytes") + downloadBytes := flag.Uint64("download-bytes", 0, "Download bytes") + nTimes := flag.Uint64("n-times", 0, "N times") flag.Parse() @@ -73,7 +73,7 @@ func main() { times := make([]time.Duration, 0, *nTimes) - for i := 0; i < *nTimes; i++ { + for i := 0; uint64(i) < *nTimes; i++ { start := time.Now() err := perf.RunPerf(context.Background(), serverInfo.ID, uint64(*uploadBytes), uint64(*downloadBytes)) if err != nil { diff --git a/perf/impl/https/v0.1/main.go b/perf/impl/https/v0.1/main.go index 0849150c8..4e776985b 100644 --- a/perf/impl/https/v0.1/main.go +++ b/perf/impl/https/v0.1/main.go @@ -53,7 +53,7 @@ func handleRequest(w http.ResponseWriter, r *http.Request) { } } -func runClient(serverAddr string, uploadBytes, downloadBytes, nTimes int) ([]time.Duration, error) { +func runClient(serverAddr string, uploadBytes, downloadBytes, nTimes uint64) ([]time.Duration, error) { durations := make([]time.Duration, nTimes) client := &http.Client{ @@ -67,7 +67,7 @@ func runClient(serverAddr string, uploadBytes, downloadBytes, nTimes int) ([]tim reqBody := make([]byte, 8+uploadBytes) binary.BigEndian.PutUint64(reqBody, uint64(downloadBytes)) - for i := 0; i < nTimes; i++ { + for i := 0; uint64(i) < nTimes; i++ { startTime := time.Now() resp, err := client.Post(fmt.Sprintf("https://%s/", serverAddr), "application/octet-stream", bytes.NewReader(reqBody)) if err != nil { @@ -78,7 +78,7 @@ func runClient(serverAddr string, uploadBytes, downloadBytes, nTimes int) ([]tim if err != nil { fmt.Printf("Error reading response: %v\n", err) return durations, err - } else if len(respBody) != downloadBytes { + } else if uint64(len(respBody)) != downloadBytes { fmt.Printf("Expected %d bytes in response, but received %d\n", downloadBytes, len(respBody)) return durations, err } @@ -146,9 +146,9 @@ func main() { serverIPAddr := flag.String("server-ip-address", "", "Server address") _ = flag.String("transport", "", "Transport to use") _ = flag.Uint64("secret-key-seed", 0, "Server secret key seed") - uploadBytes := flag.Int("upload-bytes", 0, "Upload bytes") - downloadBytes := flag.Int("download-bytes", 0, "Download bytes") - nTimes := flag.Int("n-times", 0, "N times") + uploadBytes := flag.Uint64("upload-bytes", 0, "Upload bytes") + downloadBytes := flag.Uint64("download-bytes", 0, "Download bytes") + nTimes := flag.Uint64("n-times", 0, "N times") flag.Parse() if *runServer { From 14cde8c59c47526c89dbcfad1ca29a8d2314f6f0 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 8 May 2023 16:14:30 +0900 Subject: [PATCH 071/143] Move schema tool and remove test data --- perf/dashboard/benchmark-result-type.ts | 25 --- perf/dashboard/benchmarks.schema.json | 98 ----------- perf/dashboard/example-data.json | 161 ------------------ perf/{dashboard => runner}/util/.gitignore | 0 perf/{dashboard => runner}/util/README.md | 0 perf/{dashboard => runner}/util/main.ts | 0 .../util/package-lock.json | 0 perf/{dashboard => runner}/util/package.json | 0 perf/{dashboard => runner}/util/tsconfig.json | 0 9 files changed, 284 deletions(-) delete mode 100644 perf/dashboard/benchmark-result-type.ts delete mode 100644 perf/dashboard/benchmarks.schema.json delete mode 100644 perf/dashboard/example-data.json rename perf/{dashboard => runner}/util/.gitignore (100%) rename perf/{dashboard => runner}/util/README.md (100%) rename perf/{dashboard => runner}/util/main.ts (100%) rename perf/{dashboard => runner}/util/package-lock.json (100%) rename perf/{dashboard => runner}/util/package.json (100%) rename perf/{dashboard => runner}/util/tsconfig.json (100%) diff --git a/perf/dashboard/benchmark-result-type.ts b/perf/dashboard/benchmark-result-type.ts deleted file mode 100644 index 2cff246af..000000000 --- a/perf/dashboard/benchmark-result-type.ts +++ /dev/null @@ -1,25 +0,0 @@ -export type BenchmarkResults = { - benchmarks: Benchmark[], - // For referencing this schema in JSON - "$schema"?: string -}; - -export type Benchmark = { - name: string, - unit: "bits/s" | "s", - results: Result[], - comparisons: Comparison[], - -} - -export type Result = { - result: number, - implementation: string, - transportStack: string, - version: string -}; - -export type Comparison = { - name: string, - result: number, -} \ No newline at end of file diff --git a/perf/dashboard/benchmarks.schema.json b/perf/dashboard/benchmarks.schema.json deleted file mode 100644 index 3a2e993df..000000000 --- a/perf/dashboard/benchmarks.schema.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "$ref": "#/definitions/BenchmarkResults", - "definitions": { - "BenchmarkResults": { - "type": "object", - "properties": { - "benchmarks": { - "type": "array", - "items": { - "$ref": "#/definitions/Benchmark" - } - }, - "$schema": { - "type": "string" - } - }, - "required": [ - "benchmarks" - ], - "additionalProperties": false - }, - "Benchmark": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "unit": { - "type": "string", - "enum": [ - "bits/s", - "s" - ] - }, - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/Result" - } - }, - "comparisons": { - "type": "array", - "items": { - "$ref": "#/definitions/Comparison" - } - } - }, - "required": [ - "name", - "unit", - "results", - "comparisons" - ], - "additionalProperties": false - }, - "Result": { - "type": "object", - "properties": { - "result": { - "type": "number" - }, - "implementation": { - "type": "string" - }, - "transportStack": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "result", - "implementation", - "transportStack", - "version" - ], - "additionalProperties": false - }, - "Comparison": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "result": { - "type": "number" - } - }, - "required": [ - "name", - "result" - ], - "additionalProperties": false - } - } -} \ No newline at end of file diff --git a/perf/dashboard/example-data.json b/perf/dashboard/example-data.json deleted file mode 100644 index 2388d068c..000000000 --- a/perf/dashboard/example-data.json +++ /dev/null @@ -1,161 +0,0 @@ -{ - "$schema": "./benchmarks.schema.json", - "benchmarks": [ - { - "name": "Single Connection throughput – Upload", - "unit": "bits/s", - "comparisons": [ - { - "name": "http", - "result": 1234 - } - ], - "results": [ - { - "result": 1100, - "implementation": "go-libp2p", - "transportStack": "quic-v1", - "version": "v0.24.2" - }, - { - "result": 1000, - "implementation": "go-libp2p", - "transportStack": "quic-v1", - "version": "v0.25.1" - }, - { - "result": 8234, - "implementation": "go-libp2p", - "transportStack": "quic-v1", - "version": "v0.26.2" - }, - { - "result": 4000, - "implementation": "rust-libp2p", - "transportStack": "quic-v1", - "version": "v0.50.0" - }, - { - "result": 8000, - "implementation": "rust-libp2p", - "transportStack": "quic-v1", - "version": "v0.51.0" - }, - { - "result": 6000, - "implementation": "rust-libp2p", - "transportStack": "quic-v1", - "version": "v0.52.0" - }, - { - "result": 9001, - "implementation": "zig-libp2p", - "transportStack": "quic-v1", - "version": "v0.0.1" - }, - { - "result": 9002, - "implementation": "zig-libp2p", - "transportStack": "quic-v1", - "version": "v0.0.2" - }, - { - "result": 201, - "implementation": "js-libp2p", - "transportStack": "tcp+noise+yamux", - "version": "v0.41.0" - }, - { - "result": 302, - "implementation": "js-libp2p", - "transportStack": "tcp+noise+yamux", - "version": "v0.42.0" - }, - { - "result": 501, - "implementation": "js-libp2p", - "transportStack": "tcp+noise+yamux", - "version": "v0.43.0" - } - ] - }, - { - "name": "Single Connection 1 byte round trip latency", - "unit": "s", - "comparisons": [ - { - "name": "http", - "result": 1.234 - } - ], - "results": [ - { - "result": 0.100, - "implementation": "go-libp2p", - "transportStack": "quic-v1", - "version": "v0.24.2" - }, - { - "result": 0.100, - "implementation": "go-libp2p", - "transportStack": "quic-v1", - "version": "v0.25.1" - }, - { - "result": 0.834, - "implementation": "go-libp2p", - "transportStack": "quic-v1", - "version": "v0.26.2" - }, - { - "result": 0.400, - "implementation": "rust-libp2p", - "transportStack": "quic-v1", - "version": "v0.50.0" - }, - { - "result": 0.800, - "implementation": "rust-libp2p", - "transportStack": "quic-v1", - "version": "v0.51.0" - }, - { - "result": 0.600, - "implementation": "rust-libp2p", - "transportStack": "quic-v1", - "version": "v0.52.0" - }, - { - "result": 0.901, - "implementation": "zig-libp2p", - "transportStack": "quic-v1", - "version": "v0.0.1" - }, - { - "result": 0.902, - "implementation": "zig-libp2p", - "transportStack": "quic-v1", - "version": "v0.0.2" - }, - { - "result": 0.201, - "implementation": "js-libp2p", - "transportStack": "tcp+noise+yamux", - "version": "v0.41.0" - }, - { - "result": 0.302, - "implementation": "js-libp2p", - "transportStack": "tcp+noise+yamux", - "version": "v0.42.0" - }, - { - "result": 0.501, - "implementation": "js-libp2p", - "transportStack": "tcp+noise+yamux", - "version": "v0.43.0" - } - ] - } - ] -} \ No newline at end of file diff --git a/perf/dashboard/util/.gitignore b/perf/runner/util/.gitignore similarity index 100% rename from perf/dashboard/util/.gitignore rename to perf/runner/util/.gitignore diff --git a/perf/dashboard/util/README.md b/perf/runner/util/README.md similarity index 100% rename from perf/dashboard/util/README.md rename to perf/runner/util/README.md diff --git a/perf/dashboard/util/main.ts b/perf/runner/util/main.ts similarity index 100% rename from perf/dashboard/util/main.ts rename to perf/runner/util/main.ts diff --git a/perf/dashboard/util/package-lock.json b/perf/runner/util/package-lock.json similarity index 100% rename from perf/dashboard/util/package-lock.json rename to perf/runner/util/package-lock.json diff --git a/perf/dashboard/util/package.json b/perf/runner/util/package.json similarity index 100% rename from perf/dashboard/util/package.json rename to perf/runner/util/package.json diff --git a/perf/dashboard/util/tsconfig.json b/perf/runner/util/tsconfig.json similarity index 100% rename from perf/dashboard/util/tsconfig.json rename to perf/runner/util/tsconfig.json From 6ef0d6cbce6eb4d55c204a1924faefe427574007 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 8 May 2023 16:16:14 +0900 Subject: [PATCH 072/143] Remove commented out code --- perf/runner/src/index.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index a2ba9d809..8323a6a3c 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -64,9 +64,6 @@ function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Bench for (const version of versions) { console.error(`== Version ${version.implementation}/${version.id}`) - // ssh user@your-server "kill \$(cat pidfile) && rm pidfile" - // ssh user@your-server "nohup your-command > output.log 2>&1 & echo \$! > pidfile" - console.error(`=== Starting server ${version.implementation}/${version.id}`); let killCMD = `ssh ec2-user@${args.serverPublicIP} 'kill $(cat pidfile); rm pidfile; rm server.log || true'`; From b21af98651837b66cd43b37b14fe7340fcf775ad Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 8 May 2023 16:26:09 +0900 Subject: [PATCH 073/143] Improve perf/README --- perf/README.md | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/perf/README.md b/perf/README.md index 23caae3a1..4b05627dd 100644 --- a/perf/README.md +++ b/perf/README.md @@ -1,18 +1,32 @@ -# libp2p perf testing +# libp2p performance benchmarking -## Setup +This project includes the following components: + +- `terraform/`: a Terraform scripts to provision infrastructure +- `impl/`: implementations of the [libp2p perf protocol](https://github.com/libp2p/specs/pull/478) running on top of e.g. go-libp2p, rust-libp2p or Go's std-library https stack +- `runner/`: a set of scripts building and running the above implementations on the above infrastructure, reporting the results in `benchmark-results.json` + +Benchmark results can be visualized with https://observablehq.com/@mxinden-workspace/libp2p-perf. + +## Provision infrastructure 1. `cd terraform` 2. Save your public SSH key as the file `./user.pub`. 3. `terraform init` 4. `terraform apply` -## Execute +## Build and run implementations 1. `cd runner` 2. `npm ci` 3. `npm run start -- --client-public-ip $(terraform output -raw -state ../terraform/terraform.tfstate client_public_ip) --server-public-ip $(terraform output -raw -state ../terraform/terraform.tfstate server_public_ip)` -## Add benchmark binary +## Deprovision infrastructure + +1. `cd terraform` +3. `terraform destroy` + +## Adding a new implementation -See `runner/src/versions.ts`. +1. Add implementation to `impl/`. +2. Reference implementation in `runner/src/versions.ts`. From fa41f02dd85e72a04004e11edc469db4d9fe4d3d Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 8 May 2023 16:38:56 +0900 Subject: [PATCH 074/143] Replace RSA with eliptic curve --- perf/impl/https/v0.1/main.go | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/perf/impl/https/v0.1/main.go b/perf/impl/https/v0.1/main.go index 4e776985b..cfb9ba1c7 100644 --- a/perf/impl/https/v0.1/main.go +++ b/perf/impl/https/v0.1/main.go @@ -2,18 +2,19 @@ package main import ( "bytes" - "encoding/json" - "io/ioutil" + "crypto/ecdsa" + "crypto/elliptic" "crypto/rand" - "crypto/rsa" "crypto/tls" "crypto/x509" "crypto/x509/pkix" "encoding/binary" + "encoding/json" "encoding/pem" "flag" "fmt" "io" + "io/ioutil" "math/big" "net" "net/http" @@ -91,8 +92,8 @@ func runClient(serverAddr string, uploadBytes, downloadBytes, nTimes uint64) ([] } func generateEphemeralCertificate() (tls.Certificate, error) { - // Generate a private key - privKey, err := rsa.GenerateKey(rand.Reader, 2048) + // Generate an ECDSA private key + privKey, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader) if err != nil { return tls.Certificate{}, err } @@ -126,7 +127,11 @@ func generateEphemeralCertificate() (tls.Certificate, error) { // PEM encode the certificate and private key certPEM := pem.EncodeToMemory(&pem.Block{Type: "CERTIFICATE", Bytes: certDER}) - privKeyPEM := pem.EncodeToMemory(&pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(privKey)}) + privKeyBytes, err := x509.MarshalECPrivateKey(privKey) + if err != nil { + return tls.Certificate{}, err + } + privKeyPEM := pem.EncodeToMemory(&pem.Block{Type: "EC PRIVATE KEY", Bytes: privKeyBytes}) // Create a tls.Certificate from the PEM encoded certificate and private key cert, err := tls.X509KeyPair(certPEM, privKeyPEM) @@ -152,7 +157,6 @@ func main() { flag.Parse() if *runServer { - // Generate an ephemeral TLS certificate and private key cert, err := generateEphemeralCertificate() if err != nil { From e1d681092cfad560fa35ee20bccc1a1b3e82cf72 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 10 May 2023 15:02:11 +0900 Subject: [PATCH 075/143] Increase iterations and commit results --- perf/runner/benchmark-results.json | 5610 +++++++++++++++++++++++++--- perf/runner/src/index.ts | 6 +- 2 files changed, 5103 insertions(+), 513 deletions(-) diff --git a/perf/runner/benchmark-results.json b/perf/runner/benchmark-results.json index efae8fa7e..b48a1b8ea 100644 --- a/perf/runner/benchmark-results.json +++ b/perf/runner/benchmark-results.json @@ -6,7 +6,16 @@ "results": [ { "result": [ - 20290461.854966406 + 24297848.965686653, + 21923293.0555712, + 21673455.25199101, + 20648639.851346083, + 23050220.29519616, + 23354010.21369026, + 22609840.711642783, + 23737695.901063852, + 24181213.226368435, + 23613709.527208574 ], "implementation": "rust-libp2p", "version": "v0.51", @@ -14,7 +23,16 @@ }, { "result": [ - 53647941.63433479 + 48015820.5309386, + 55310640.224539585, + 61938887.22992043, + 98827657.42509778, + 45395940.92430345, + 100603753.41099809, + 71979617.00712337, + 116886172.67991772, + 84047998.03957845, + 59653860.205058016 ], "implementation": "rust-libp2p", "version": "v0.51", @@ -22,7 +40,16 @@ }, { "result": [ - 299414670.3268659 + 294969298.9385426, + 309328415.11726046, + 310148492.97909164, + 310234806.0960345, + 307254422.1394683, + 294533881.77456516, + 326936373.0028434, + 321825133.404075, + 316732380.34808207, + 309343917.2322349 ], "implementation": "https", "version": "v0.1", @@ -30,7 +57,16 @@ }, { "result": [ - 265595689.8856188 + 271976899.8501771, + 283430038.77114886, + 270248612.31371295, + 260217859.2738469, + 274343812.12800866, + 291368790.4747234, + 268021151.04887787, + 271109007.23476994, + 274563664.2702893, + 295567992.37695616 ], "implementation": "go-libp2p", "version": "v0.27", @@ -38,7 +74,16 @@ }, { "result": [ - 632056139.5154513 + 633162414.0126168, + 649114453.9991273, + 623913167.8159407, + 617251972.3516471, + 626352210.0723246, + 602895557.568256, + 610521089.4347842, + 619133118.5123696, + 631877934.9725114, + 606560852.5597066 ], "implementation": "go-libp2p", "version": "v0.27", @@ -52,7 +97,16 @@ "results": [ { "result": [ - 23993107.455116663 + 23931659.643195994, + 22389029.16893598, + 23506058.158813752, + 24431439.92130016, + 19141195.485931523, + 24121731.163703118, + 20853926.38317422, + 21303279.463220824, + 23916906.64143749, + 24163076.553794984 ], "implementation": "rust-libp2p", "version": "v0.51", @@ -60,7 +114,16 @@ }, { "result": [ - 51007769.31364293 + 29907431.52825819, + 31563154.76576576, + 27263031.31975764, + 47989509.37945617, + 35624839.751651496, + 44701337.1676974, + 18458648.78085266, + 29327317.117728654, + 42888018.68802828, + 39632293.52634057 ], "implementation": "rust-libp2p", "version": "v0.51", @@ -68,7 +131,16 @@ }, { "result": [ - 295734786.15972674 + 282796314.3671489, + 290646906.51175123, + 263808325.50556374, + 286250896.55929726, + 288718359.6148498, + 297905402.35799825, + 268806331.32099956, + 262884718.77087423, + 288606312.82271475, + 283002944.2588033 ], "implementation": "https", "version": "v0.1", @@ -76,7 +148,16 @@ }, { "result": [ - 259730181.32670394 + 286495714.9829712, + 279471522.606618, + 277632014.25100857, + 293305408.16950905, + 279802455.372108, + 282629260.2439027, + 252406959.8130326, + 265896505.9870716, + 281306417.3321556, + 279630398.6081096 ], "implementation": "go-libp2p", "version": "v0.27", @@ -84,7 +165,16 @@ }, { "result": [ - 634222072.0199658 + 613134750.9353501, + 628762416.4643462, + 614806408.6504056, + 627440373.9237688, + 602642613.2850794, + 613932595.8479267, + 628395688.2954804, + 634345136.7826666, + 637952373.0214682, + 628142064.5341487 ], "implementation": "go-libp2p", "version": "v0.27", @@ -98,106 +188,1006 @@ "results": [ { "result": [ - 0.127828854, - 0.120534387, - 0.12044871, - 0.125737917, - 0.118503398, - 0.126308489, - 0.125622508, - 0.128124063, - 0.123360196, - 0.125409024, - 0.121635772, - 0.120267774, - 0.123290571, - 0.116399527, - 0.129182089, - 0.124196457, - 0.123145711, - 0.125422459, - 0.125460983, - 0.124068713, - 0.124166576, - 0.118302336, - 0.124427211, - 0.123611906, - 0.122429595, - 0.12508232, - 0.12342625, - 0.128447371, - 0.12399178, - 0.127087593, - 0.12443394, - 0.126314451, - 0.128266032, - 0.124901336, - 0.120399578, - 0.123844069, - 0.123465545, - 0.126041535, - 0.127494366, - 0.121576234, - 0.121962232, - 0.127439657, - 0.124313683, - 0.128025549, - 0.12720989, - 0.127093446, - 0.125278966, - 0.128942384, - 0.123069833, - 0.123261723, - 0.121481512, - 0.122424114, - 0.121566236, - 0.122907267, - 0.12080229, - 0.118436975, - 0.126521897, - 0.128883921, - 0.120129619, - 0.128584914, - 0.124406185, - 0.130316659, - 0.124205897, - 0.124278855, - 0.123542628, - 0.124181753, - 0.125956835, - 0.127277402, - 0.124634619, - 0.126092548, - 0.123038641, - 0.130131343, - 0.125360625, - 0.124763501, - 0.1251226, - 0.120595955, - 0.126249329, - 0.12340895, - 0.126857356, - 0.124856843, - 0.126279967, - 0.12308499, - 0.124558394, - 0.125211736, - 0.125498407, - 0.12834632, - 0.127284325, - 0.126912314, - 0.124714709, - 0.126572113, - 0.121492794, - 0.122410126, - 0.120395254, - 0.122346675, - 0.126625206, - 0.12599842, - 0.129794383, - 0.122657057, - 0.12685624, - 0.123413465 + 0.118708025, + 0.120662575, + 0.12077141, + 0.122032007, + 0.12679386, + 0.127471021, + 0.127703286, + 0.124456247, + 0.126256011, + 0.127428117, + 0.128788393, + 0.124595846, + 0.126765333, + 0.120161089, + 0.128168983, + 0.130045079, + 0.124847787, + 0.120375786, + 0.126149762, + 0.121507935, + 0.123929109, + 0.126584443, + 0.124447938, + 0.124345444, + 0.127087835, + 0.122631148, + 0.120826701, + 0.122239615, + 0.12653323, + 0.126088594, + 0.12211283, + 0.120554862, + 0.122688752, + 0.122637588, + 0.123746209, + 0.128505612, + 0.119691029, + 0.127658395, + 0.124587116, + 0.122507846, + 0.121651037, + 0.126443226, + 0.125645957, + 0.125356695, + 0.12508606, + 0.122325756, + 0.122489518, + 0.124691128, + 0.117970015, + 0.125844691, + 0.128364252, + 0.127122802, + 0.125322411, + 0.120463484, + 0.11772758, + 0.127847295, + 0.125020985, + 0.121457264, + 0.121668718, + 0.128815939, + 0.12546786, + 0.12092391, + 0.124230375, + 0.121840079, + 0.125565518, + 0.126575812, + 0.124049459, + 0.125619629, + 0.126204958, + 0.127695068, + 0.128820585, + 0.124046756, + 0.122700304, + 0.127424603, + 0.127950874, + 0.123313375, + 0.123691833, + 0.125756906, + 0.122742648, + 0.124052248, + 0.125057288, + 0.129164301, + 0.127552354, + 0.123751195, + 0.125162921, + 0.12508124, + 0.127162664, + 0.122878798, + 0.121421035, + 0.127226063, + 0.123386515, + 0.123162674, + 0.124578475, + 0.128678368, + 0.125575896, + 0.122732913, + 0.125365954, + 0.125408901, + 0.121266582, + 0.123748713, + 0.125357876, + 0.122400784, + 0.12813542, + 0.12616047, + 0.123170462, + 0.121823135, + 0.118384558, + 0.125197619, + 0.122086086, + 0.124248491, + 0.12322321, + 0.12343038, + 0.126588438, + 0.122080794, + 0.12051462, + 0.125885823, + 0.126471138, + 0.120803506, + 0.122824592, + 0.121590597, + 0.125033763, + 0.129228072, + 0.121651954, + 0.120225807, + 0.123019678, + 0.124525159, + 0.128295908, + 0.126310442, + 0.119700262, + 0.124729085, + 0.125501854, + 0.130710789, + 0.126842895, + 0.127503638, + 0.128660203, + 0.117822177, + 0.127250142, + 0.128082319, + 0.121559025, + 0.119798573, + 0.123236233, + 0.128433038, + 0.126820261, + 0.128878975, + 0.123451981, + 0.125856069, + 0.122498154, + 0.12151196, + 0.125353686, + 0.126887558, + 0.127173614, + 0.118470161, + 0.124264679, + 0.130104999, + 0.124676678, + 0.123821018, + 0.130664593, + 0.121481383, + 0.126264708, + 0.124020668, + 0.128515466, + 0.126762388, + 0.123192222, + 0.125533746, + 0.124787269, + 0.119874023, + 0.124173855, + 0.121524975, + 0.129321582, + 0.128294448, + 0.130031141, + 0.124263198, + 0.126759214, + 0.129250536, + 0.118551014, + 0.126320116, + 0.124223076, + 0.120577845, + 0.124484885, + 0.128548059, + 0.122795707, + 0.124533399, + 0.127014953, + 0.118749467, + 0.119451069, + 0.119713436, + 0.127614323, + 0.125727012, + 0.121612066, + 0.125468601, + 0.122883611, + 0.12201574, + 0.123054948, + 0.125455077, + 0.119418582, + 0.123583782, + 0.122735563, + 0.122881766, + 0.122697339, + 0.127380866, + 0.126882196, + 0.122456005, + 0.118151034, + 0.125599191, + 0.124438903, + 0.12661281, + 0.125406779, + 0.128615534, + 0.123357254, + 0.121754512, + 0.119024195, + 0.124562114, + 0.127618854, + 0.122793415, + 0.11756141, + 0.126656776, + 0.122907544, + 0.126787245, + 0.12833515, + 0.118627955, + 0.127416851, + 0.12436124, + 0.124889796, + 0.125945733, + 0.128859302, + 0.124007921, + 0.119686557, + 0.123732717, + 0.124347037, + 0.127730455, + 0.124986743, + 0.125823057, + 0.124722544, + 0.123611282, + 0.122789136, + 0.12688706, + 0.125288333, + 0.123141177, + 0.117551557, + 0.123979958, + 0.125871081, + 0.121379819, + 0.127712625, + 0.127231455, + 0.12650458, + 0.121119709, + 0.122816276, + 0.128649107, + 0.128850058, + 0.121321224, + 0.122361302, + 0.129035606, + 0.123317588, + 0.124701733, + 0.123005721, + 0.128695215, + 0.12684932, + 0.119553361, + 0.124199946, + 0.128187433, + 0.12185619, + 0.125065404, + 0.124123695, + 0.120282288, + 0.121731667, + 0.122419776, + 0.125521889, + 0.126512338, + 0.128669831, + 0.126115017, + 0.126412252, + 0.127238272, + 0.126808225, + 0.128631127, + 0.129319925, + 0.125399222, + 0.127903976, + 0.128804396, + 0.125618085, + 0.118882093, + 0.121209951, + 0.127249784, + 0.120187602, + 0.121931453, + 0.127155943, + 0.122429256, + 0.123409502, + 0.122504741, + 0.129989166, + 0.122145042, + 0.126937676, + 0.126972719, + 0.120692021, + 0.125696201, + 0.124660727, + 0.117844194, + 0.129356703, + 0.123823274, + 0.126521087, + 0.128965648, + 0.117390969, + 0.123514944, + 0.122392453, + 0.121935222, + 0.12756497, + 0.123542481, + 0.129943382, + 0.125515099, + 0.125728489, + 0.123740808, + 0.123487472, + 0.123046592, + 0.129047833, + 0.122876118, + 0.121986615, + 0.127786389, + 0.122316263, + 0.125890442, + 0.125771029, + 0.127109217, + 0.122519393, + 0.124374593, + 0.127475971, + 0.12841399, + 0.123537575, + 0.120339219, + 0.127332273, + 0.125507393, + 0.123801009, + 0.126589086, + 0.125250908, + 0.125807669, + 0.123474058, + 0.125156174, + 0.122130043, + 0.118624929, + 0.12374655, + 0.128478434, + 0.123204801, + 0.124430866, + 0.123658112, + 0.120494037, + 0.119714225, + 0.123213917, + 0.120615621, + 0.128174296, + 0.1226347, + 0.125389929, + 0.122287528, + 0.125457602, + 0.12446302, + 0.126251889, + 0.121502582, + 0.121559097, + 0.123194607, + 0.12138731, + 0.125391952, + 0.124398384, + 0.118450586, + 0.12797538, + 0.123256652, + 0.121917324, + 0.124193694, + 0.126767608, + 0.125145827, + 0.119557915, + 0.121883824, + 0.125269004, + 0.121650708, + 0.127348147, + 0.120850509, + 0.121883313, + 0.120661541, + 0.126544364, + 0.129665741, + 0.128015657, + 0.122706812, + 0.124696905, + 0.126537264, + 0.127582166, + 0.126088394, + 0.117669263, + 0.128862292, + 0.120629074, + 0.126972384, + 0.118719469, + 0.12854843, + 0.124496807, + 0.127609562, + 0.128177356, + 0.116743496, + 0.124631597, + 0.12556167, + 0.121610203, + 0.1271917, + 0.124742791, + 0.124687169, + 0.121643251, + 0.123609053, + 0.124607956, + 0.126043977, + 0.124775413, + 0.121618859, + 0.121765353, + 0.122560934, + 0.12627415, + 0.124218292, + 0.121637179, + 0.121441486, + 0.123172533, + 0.116086712, + 0.123396818, + 0.123397175, + 0.121071348, + 0.122808139, + 0.122640596, + 0.125466402, + 0.125758782, + 0.122730715, + 0.124810406, + 0.124107244, + 0.126649347, + 0.122686957, + 0.121606572, + 0.124531283, + 0.127690974, + 0.127621042, + 0.123592264, + 0.125437923, + 0.128248422, + 0.118492231, + 0.12814658, + 0.120478989, + 0.129087989, + 0.123796032, + 0.128364445, + 0.127642972, + 0.121363946, + 0.125370163, + 0.124506184, + 0.128365308, + 0.126320579, + 0.118599321, + 0.122432984, + 0.128793055, + 0.124908536, + 0.121700574, + 0.126190845, + 0.124303329, + 0.124427597, + 0.121768009, + 0.12145053, + 0.124591516, + 0.125149043, + 0.120107462, + 0.12144375, + 0.12620275, + 0.123140928, + 0.122833321, + 0.124768853, + 0.123952554, + 0.123675231, + 0.127788006, + 0.127365369, + 0.12298062, + 0.12187875, + 0.119704229, + 0.128194999, + 0.126878729, + 0.124284258, + 0.12397844, + 0.125826281, + 0.127090371, + 0.121701266, + 0.11843701, + 0.126240394, + 0.121935838, + 0.121749631, + 0.128317138, + 0.120530313, + 0.124095521, + 0.12300321, + 0.122640858, + 0.12715408, + 0.121425435, + 0.124091821, + 0.12355822, + 0.126694163, + 0.126344139, + 0.122369002, + 0.121919684, + 0.124335537, + 0.129083543, + 0.123586821, + 0.120713705, + 0.126267739, + 0.120734878, + 0.125496993, + 0.125220125, + 0.126856802, + 0.117644961, + 0.120789424, + 0.121800139, + 0.124910586, + 0.122091305, + 0.128638447, + 0.126087312, + 0.123305591, + 0.122750389, + 0.116614303, + 0.125475119, + 0.122465428, + 0.12846518, + 0.121882168, + 0.122254546, + 0.127411837, + 0.11960812, + 0.122404237, + 0.128508182, + 0.125171846, + 0.124712012, + 0.125459089, + 0.123329175, + 0.124672436, + 0.125259747, + 0.128858257, + 0.126468237, + 0.124368451, + 0.130351368, + 0.127369262, + 0.121500793, + 0.123598792, + 0.122532301, + 0.122571628, + 0.122799141, + 0.124624203, + 0.12499586, + 0.121482448, + 0.12624135, + 0.12869017, + 0.121448593, + 0.122976252, + 0.128528206, + 0.127439097, + 0.125220187, + 0.117347656, + 0.126560977, + 0.126574602, + 0.1264887, + 0.1267374, + 0.123171611, + 0.127413182, + 0.121474389, + 0.127160425, + 0.122704632, + 0.126746832, + 0.122827553, + 0.120944239, + 0.12358963, + 0.120540575, + 0.123428224, + 0.127479287, + 0.120795305, + 0.1242035, + 0.120840548, + 0.124040857, + 0.127436257, + 0.126717277, + 0.1233267, + 0.124330677, + 0.127384514, + 0.126018032, + 0.128209784, + 0.128380457, + 0.117926897, + 0.126539691, + 0.127666137, + 0.122362602, + 0.121349405, + 0.120606255, + 0.127245569, + 0.128070949, + 0.120689964, + 0.121428688, + 0.123703771, + 0.124458828, + 0.127023436, + 0.120055223, + 0.11845161, + 0.126670745, + 0.123207839, + 0.12536674, + 0.128027806, + 0.119678191, + 0.12421942, + 0.128393847, + 0.123170968, + 0.126362818, + 0.120421532, + 0.125358841, + 0.120850771, + 0.121604425, + 0.119270007, + 0.12168543, + 0.127830932, + 0.124881268, + 0.116318907, + 0.12577126, + 0.121497322, + 0.127337352, + 0.121701358, + 0.126407904, + 0.119584828, + 0.121911832, + 0.121276192, + 0.130158126, + 0.120556224, + 0.117555729, + 0.127171708, + 0.127195048, + 0.127026879, + 0.124852314, + 0.124936895, + 0.124937796, + 0.129108752, + 0.118748289, + 0.116190264, + 0.126111907, + 0.126969363, + 0.12056375, + 0.120761434, + 0.122067771, + 0.130359562, + 0.128372694, + 0.123860983, + 0.121794642, + 0.126248524, + 0.120535125, + 0.126531058, + 0.130068954, + 0.11847431, + 0.128594568, + 0.122891794, + 0.12738214, + 0.120833265, + 0.121898448, + 0.127075573, + 0.126263808, + 0.124968507, + 0.123397542, + 0.124143292, + 0.127479703, + 0.120592492, + 0.119875056, + 0.128460716, + 0.123958736, + 0.127568277, + 0.127781663, + 0.128133478, + 0.123716792, + 0.118598284, + 0.121407372, + 0.130970191, + 0.120786601, + 0.123322656, + 0.124764632, + 0.124661859, + 0.124612326, + 0.12548674, + 0.129476433, + 0.124168595, + 0.128055817, + 0.118358365, + 0.120641944, + 0.124224126, + 0.126290823, + 0.125278809, + 0.125901407, + 0.12685111, + 0.1253736, + 0.122164583, + 0.128690753, + 0.127187753, + 0.125706458, + 0.127445161, + 0.127187643, + 0.125775951, + 0.122038696, + 0.128658776, + 0.12637352, + 0.122914699, + 0.128283749, + 0.130492569, + 0.122256899, + 0.119737936, + 0.128993444, + 0.121581071, + 0.120487116, + 0.127292314, + 0.122585767, + 0.126272892, + 0.124786883, + 0.128370112, + 0.124320778, + 0.127123773, + 0.118116483, + 0.12030875, + 0.124343081, + 0.121268323, + 0.125640672, + 0.117906432, + 0.121493772, + 0.128157537, + 0.125868086, + 0.125282702, + 0.122109776, + 0.128047162, + 0.127368283, + 0.119750144, + 0.124888294, + 0.123702031, + 0.120321041, + 0.125878322, + 0.125966197, + 0.122599236, + 0.122242553, + 0.126575059, + 0.120624012, + 0.121512001, + 0.123488425, + 0.123344484, + 0.128709612, + 0.123603417, + 0.120225376, + 0.128993678, + 0.123421664, + 0.122817232, + 0.128531938, + 0.120735704, + 0.125373799, + 0.130442401, + 0.127212341, + 0.125431325, + 0.128614419, + 0.119823355, + 0.126060956, + 0.124071242, + 0.126025494, + 0.123664993, + 0.125874931, + 0.125410462, + 0.125341629, + 0.123561612, + 0.121348819, + 0.126519083, + 0.129641126, + 0.128369736, + 0.1270326, + 0.122643411, + 0.130335636, + 0.122884658, + 0.118272182, + 0.123533369, + 0.12609263, + 0.121682292, + 0.120629068, + 0.120569267, + 0.123580159, + 0.120203402, + 0.126185112, + 0.121444203, + 0.121475969, + 0.123075684, + 0.123682459, + 0.124589355, + 0.128951833, + 0.125675886, + 0.126936425, + 0.124901865, + 0.123974106, + 0.126529423, + 0.121974594, + 0.125566367, + 0.126057913, + 0.124137342, + 0.12229817, + 0.127670474, + 0.127469237, + 0.123217858, + 0.12568672, + 0.122654888, + 0.125534722, + 0.118792222, + 0.125462763, + 0.124721141, + 0.121508708, + 0.128311548, + 0.126842334, + 0.118496367, + 0.125859987, + 0.126248144, + 0.123137315, + 0.125300683, + 0.122439069, + 0.129392165, + 0.125849052, + 0.129845989, + 0.126703274, + 0.125190979, + 0.128519545, + 0.123092, + 0.120687211, + 0.129171557, + 0.124294436, + 0.124526468, + 0.125755208, + 0.127177957, + 0.128544891, + 0.127168738, + 0.124006849, + 0.124145643, + 0.129372241, + 0.129012454, + 0.121438754, + 0.117831685, + 0.128551696, + 0.121506502, + 0.124678482, + 0.121477997, + 0.128700692, + 0.127253363, + 0.126539606, + 0.124882526, + 0.123918902, + 0.125211135, + 0.123568144, + 0.125355109, + 0.125977871, + 0.118225544, + 0.121642704, + 0.122584262, + 0.123157348, + 0.126483, + 0.120502923, + 0.126009827, + 0.118471407, + 0.129787112, + 0.125589278, + 0.129246447, + 0.122869423, + 0.120594325, + 0.123595625, + 0.122205773, + 0.130757361, + 0.123851417, + 0.122219278, + 0.126843391, + 0.119860535, + 0.121696554, + 0.126991602, + 0.126339997, + 0.127107798, + 0.126972719, + 0.125628058, + 0.125498955, + 0.123518539, + 0.125159876, + 0.121288675, + 0.128436277, + 0.123129448, + 0.127470069, + 0.12199195, + 0.122569466, + 0.121546961, + 0.12134348, + 0.12730293, + 0.123346913, + 0.128866412, + 0.116174637, + 0.124433903, + 0.121879944, + 0.119400009, + 0.128309335, + 0.125196594, + 0.117576639, + 0.125583058, + 0.119800431, + 0.125989089, + 0.211182392, + 0.122819653, + 0.125077049, + 0.128852321, + 0.127613961, + 0.121645157, + 0.120610156, + 0.126771718, + 0.128935345, + 0.12568224, + 0.124357445, + 0.124615656, + 0.126930331, + 0.124564043, + 0.12894806, + 0.125746363, + 0.123498516, + 0.128347137, + 0.125479797, + 0.126636429, + 0.125649323, + 0.121443494, + 0.123076507, + 0.126102919, + 0.12722818, + 0.121323595, + 0.122664504, + 0.124913911, + 0.125400792, + 0.12503465, + 0.123785995, + 0.127949277, + 0.123598342, + 0.128898625, + 0.126318133, + 0.130042324, + 0.118617025, + 0.122698428, + 0.12556356, + 0.121356561, + 0.127255794, + 0.122617624, + 0.126295653, + 0.121575749, + 0.128225376, + 0.12437902, + 0.126231308, + 0.125773485, + 0.12599691, + 0.124428501, + 0.127311434, + 0.121722436, + 0.129828073, + 0.124635345, + 0.122017604, + 0.127119545, + 0.124568167, + 0.123392982, + 0.126373696, + 0.120544656, + 0.124298853, + 0.129051395, + 0.119645725, + 0.121438671, + 0.125417224, + 0.125964596, + 0.121632923, + 0.116135448, + 0.126396976, + 0.125964214, + 0.128518227, + 0.125687181, + 0.121694281, + 0.125358352, + 0.117691343, + 0.120351113, + 0.121537077, + 0.122042303, + 0.127463024, + 0.12466857, + 0.125382543, + 0.123746638, + 0.116298812, + 0.121423264, + 0.120475443, + 0.121752377, + 0.125658695, + 0.120409831, + 0.124832495, + 0.121688548, + 0.123499222, + 0.129204216, + 0.117874985, + 0.128353729, + 0.121448481, + 0.125081013, + 0.117831902, + 0.119783717, + 0.123543022, + 0.122971699, + 0.130128204, + 0.124027431, + 0.121741278, + 0.119385131, + 0.128621844, + 0.125887877, + 0.128105237, + 0.126129841, + 0.122885491, + 0.124339695, + 0.129073732, + 0.119722181 ], "implementation": "rust-libp2p", "version": "v0.51", @@ -205,106 +1195,1006 @@ }, { "result": [ - 0.12802408, - 0.122713897, - 0.128928205, - 0.127677123, - 0.125205912, - 0.127346237, - 0.116990178, - 0.126939974, - 0.118920149, - 0.119986906, - 0.124122801, - 0.127368665, - 0.123561798, - 0.123797555, - 0.126631929, - 0.120634662, - 0.126897599, - 0.125655693, - 0.122072076, - 0.123699567, - 0.125254531, - 0.124928335, - 0.12494319, - 0.120571841, - 0.122472147, - 0.126978375, - 0.122925217, - 0.118877029, - 0.125302872, - 0.120568438, - 0.12716571, - 0.119667499, - 0.119869435, - 0.124565743, - 0.125531023, - 0.124037777, - 0.127407129, - 0.122902725, - 0.127932368, - 0.127466375, - 0.127796412, - 0.123671928, - 0.123381076, - 0.117923919, - 0.127655303, - 0.128970701, - 0.122032089, - 0.122538667, - 0.124745604, - 0.124514985, - 0.120547457, - 0.126386589, - 0.129679912, - 0.124575461, - 0.124567503, - 0.122718095, - 0.125609052, - 0.128579484, - 0.127560495, - 0.122333435, - 0.128028228, - 0.120569618, - 0.122770157, - 0.127501598, - 0.122502054, - 0.126455323, - 0.124679869, - 0.125821033, - 0.124665604, - 0.123072073, - 0.126874507, - 0.128231908, - 0.12164182, - 0.125037447, - 0.12312374, - 0.125803004, - 0.124508016, - 0.129500988, - 0.125664771, - 0.121573835, - 0.127312568, - 0.117237058, - 0.116595371, - 0.124720144, - 0.121799046, - 0.117370059, - 0.117767304, - 0.12743704, - 0.126441177, - 0.121974507, - 0.127723686, - 0.128062865, - 0.123713384, - 0.120718512, - 0.123899464, - 0.128723666, - 0.127744297, - 0.125239858, - 0.11992982, - 0.128296616 + 0.126427283, + 0.126639491, + 0.1284042, + 0.121062064, + 0.121080054, + 0.120722333, + 0.126809679, + 0.124606006, + 0.126953052, + 0.127275054, + 0.126893788, + 0.120690643, + 0.124782345, + 0.12376636, + 0.124409218, + 0.121934569, + 0.126059402, + 0.123041083, + 0.126883935, + 0.120976244, + 0.124318065, + 0.127972634, + 0.12591272, + 0.12208319, + 0.123096152, + 0.130254472, + 0.123266405, + 0.125967042, + 0.126196169, + 0.126246183, + 0.129036002, + 0.1294959, + 0.122148963, + 0.128364317, + 0.121812, + 0.126804534, + 0.126782317, + 0.12226457, + 0.129046882, + 0.128836326, + 0.12270442, + 0.125740978, + 0.127389762, + 0.124516025, + 0.127776194, + 0.122216276, + 0.128772514, + 0.120797881, + 0.121131089, + 0.126087016, + 0.127638627, + 0.123411002, + 0.125202036, + 0.123656934, + 0.126014066, + 0.127351519, + 0.124810139, + 0.129566987, + 0.121584296, + 0.129101253, + 0.123543319, + 0.128711177, + 0.126593587, + 0.123120692, + 0.124879345, + 0.119605972, + 0.121034833, + 0.123575685, + 0.121287195, + 0.124198099, + 0.128658572, + 0.126166582, + 0.127467894, + 0.11684427, + 0.129945233, + 0.122897049, + 0.123373884, + 0.125581591, + 0.129057346, + 0.127854919, + 0.121963566, + 0.121799308, + 0.128902446, + 0.120142592, + 0.129090871, + 0.127704303, + 0.119914726, + 0.121967206, + 0.123984104, + 0.12654447, + 0.120464366, + 0.122400346, + 0.121797529, + 0.121776581, + 0.121978104, + 0.120988268, + 0.123818315, + 0.123815139, + 0.125776187, + 0.120749136, + 0.121794162, + 0.129243146, + 0.124830459, + 0.120737602, + 0.125334177, + 0.121855616, + 0.125485499, + 0.129314633, + 0.129292819, + 0.12479226, + 0.130217829, + 0.118973538, + 0.126172337, + 0.130490425, + 0.123954726, + 0.123299593, + 0.120981597, + 0.126968383, + 0.124436593, + 0.121204074, + 0.118131875, + 0.12876057, + 0.12609008, + 0.127601178, + 0.128949856, + 0.120233554, + 0.118891816, + 0.127729327, + 0.122162188, + 0.129370424, + 0.12799954, + 0.122461444, + 0.128720642, + 0.129066555, + 0.125494192, + 0.125643125, + 0.129021828, + 0.11904766, + 0.125912714, + 0.129241953, + 0.122787071, + 0.118109302, + 0.128362654, + 0.130929991, + 0.125649078, + 0.126869263, + 0.12753982, + 0.123188621, + 0.121000586, + 0.127568723, + 0.127981197, + 0.121993256, + 0.127633151, + 0.12651283, + 0.13079801, + 0.123160974, + 0.120030324, + 0.125860749, + 0.122644047, + 0.126100882, + 0.126622699, + 0.125960571, + 0.126811853, + 0.12588583, + 0.128769141, + 0.123027679, + 0.123050587, + 0.123750419, + 0.127118019, + 0.126084586, + 0.125848955, + 0.128205903, + 0.118899399, + 0.126568957, + 0.126385305, + 0.126237855, + 0.122971394, + 0.120980754, + 0.127630994, + 0.12842184, + 0.124549226, + 0.123023915, + 0.123916887, + 0.121952272, + 0.121612533, + 0.124899404, + 0.126746972, + 0.125913628, + 0.125950887, + 0.122967389, + 0.13045976, + 0.125228474, + 0.125963499, + 0.12665382, + 0.122203732, + 0.125914893, + 0.126731003, + 0.120349677, + 0.127807451, + 0.121739668, + 0.126101408, + 0.128315264, + 0.128296433, + 0.121834037, + 0.127889821, + 0.12758563, + 0.116516551, + 0.123825766, + 0.128840586, + 0.127956487, + 0.124025297, + 0.125903363, + 0.120119418, + 0.123430069, + 0.122029366, + 0.124776865, + 0.12951056, + 0.128364219, + 0.128117324, + 0.122731197, + 0.12598211, + 0.122039921, + 0.124322882, + 0.12397259, + 0.123740571, + 0.118959391, + 0.128392645, + 0.129920515, + 0.127867895, + 0.129655329, + 0.126395992, + 0.12730455, + 0.125850316, + 0.122765556, + 0.124162491, + 0.122004763, + 0.123462174, + 0.120232418, + 0.123502218, + 0.1280879, + 0.127386559, + 0.125708982, + 0.125003644, + 0.123614868, + 0.127631965, + 0.123459165, + 0.127905555, + 0.120990462, + 0.12689305, + 0.12887982, + 0.126603081, + 0.124314372, + 0.129056441, + 0.126660409, + 0.123658361, + 0.124732278, + 0.120634189, + 0.12578913, + 0.12563144, + 0.127827399, + 0.125813367, + 0.127208793, + 0.122926934, + 0.12269252, + 0.122848874, + 0.123240353, + 0.129269732, + 0.127295552, + 0.118997598, + 0.126478144, + 0.119008909, + 0.125778247, + 0.127631332, + 0.126520194, + 0.124302078, + 0.122927138, + 0.126727821, + 0.120223955, + 0.121789164, + 0.123749191, + 0.125078203, + 0.126325643, + 0.127934501, + 0.124142522, + 0.12297735, + 0.122909708, + 0.128806475, + 0.121096937, + 0.12227398, + 0.121466062, + 0.127494629, + 0.126683584, + 0.118053669, + 0.121573317, + 0.120148358, + 0.12476187, + 0.130110632, + 0.124791665, + 0.128123398, + 0.126722583, + 0.129070747, + 0.122606586, + 0.12150397, + 0.125400543, + 0.125304648, + 0.121861615, + 0.125722989, + 0.126227635, + 0.122192517, + 0.121024053, + 0.118915716, + 0.119513252, + 0.127977142, + 0.124257395, + 0.124010128, + 0.124605773, + 0.128983739, + 0.127658863, + 0.124209718, + 0.127485735, + 0.12318995, + 0.118923128, + 0.127333067, + 0.12880284, + 0.128484158, + 0.125732466, + 0.12693404, + 0.126523341, + 0.127077419, + 0.127129362, + 0.12859089, + 0.120723918, + 0.12483247, + 0.12562043, + 0.124220527, + 0.124161906, + 0.123745394, + 0.129156112, + 0.124593748, + 0.125420321, + 0.128483341, + 0.123760652, + 0.123837664, + 0.123690879, + 0.127784214, + 0.129935821, + 0.124160996, + 0.12899945, + 0.119847319, + 0.123585174, + 0.12767847, + 0.1210094, + 0.127562886, + 0.127701149, + 0.122839323, + 0.124494497, + 0.123998306, + 0.124505204, + 0.126860443, + 0.119902082, + 0.128031331, + 0.125729639, + 0.126454775, + 0.12306565, + 0.121804665, + 0.120606683, + 0.125591412, + 0.123543147, + 0.120438921, + 0.12191651, + 0.125509302, + 0.127847459, + 0.124794839, + 0.124727059, + 0.117727133, + 0.128594553, + 0.123375765, + 0.124079651, + 0.128191525, + 0.124689144, + 0.130177201, + 0.126694518, + 0.119963213, + 0.124367579, + 0.124731213, + 0.122277994, + 0.125514722, + 0.125818035, + 0.128888341, + 0.125018017, + 0.122221059, + 0.123417187, + 0.122303741, + 0.123923499, + 0.128311929, + 0.128470498, + 0.124562808, + 0.126221506, + 0.119854214, + 0.130974279, + 0.127780019, + 0.121067062, + 0.129816984, + 0.121850612, + 0.128945117, + 0.123391309, + 0.128097336, + 0.123887499, + 0.122845915, + 0.123752022, + 0.123820681, + 0.31320782, + 0.119870921, + 0.123584415, + 0.125990253, + 0.126598661, + 0.122657799, + 0.124682095, + 0.126030408, + 0.126319706, + 0.119671318, + 0.125215629, + 0.123835856, + 0.128475166, + 0.123639003, + 0.124266449, + 0.126129043, + 0.119878938, + 0.129403882, + 0.123975727, + 0.118961299, + 0.128422659, + 0.124198546, + 0.126092262, + 0.121990043, + 0.11827628, + 0.124725166, + 0.124555197, + 0.120740672, + 0.12911852, + 0.125587268, + 0.123974493, + 0.130128358, + 0.126869532, + 0.13059831, + 0.128789777, + 0.123107774, + 0.122776071, + 0.122191144, + 0.120113761, + 0.12190685, + 0.128695148, + 0.122256487, + 0.125990874, + 0.124671699, + 0.122131789, + 0.128936197, + 0.130509278, + 0.121940426, + 0.128350302, + 0.122995697, + 0.126266445, + 0.125267288, + 0.124347105, + 0.121382013, + 0.124742654, + 0.123079194, + 0.126476014, + 0.128183936, + 0.122139721, + 0.125446585, + 0.12656421, + 0.123300722, + 0.125824049, + 0.124968666, + 0.122285354, + 0.123584461, + 0.125175016, + 0.127003473, + 0.116672027, + 0.122966117, + 0.126231634, + 0.127480773, + 0.128763706, + 0.123457583, + 0.125783149, + 0.127386743, + 0.128021669, + 0.122011874, + 0.120010024, + 0.123998151, + 0.124096757, + 0.12475286, + 0.127872062, + 0.117668961, + 0.128280813, + 0.123889684, + 0.12404086, + 0.119174282, + 0.129306702, + 0.120849001, + 0.125518529, + 0.129379481, + 0.126726251, + 0.122885339, + 0.128595479, + 0.123527532, + 0.125233929, + 0.122436365, + 0.129651528, + 0.125806195, + 0.130548333, + 0.122519164, + 0.128953847, + 0.125924258, + 0.122918602, + 0.124190591, + 0.1229526, + 0.125566343, + 0.126663887, + 0.123039252, + 0.124050089, + 0.127427832, + 0.128723744, + 0.127912692, + 0.124838789, + 0.127732046, + 0.126166975, + 0.129564449, + 0.124984996, + 0.126807169, + 0.124789188, + 0.119001941, + 0.121765167, + 0.124015649, + 0.130294115, + 0.129024799, + 0.122589255, + 0.12269728, + 0.119768963, + 0.129488012, + 0.121334832, + 0.124866031, + 0.128742521, + 0.128826759, + 0.124392516, + 0.128229636, + 0.12649408, + 0.127022941, + 0.125122404, + 0.116553469, + 0.128772565, + 0.12287117, + 0.129035139, + 0.120110226, + 0.123495238, + 0.123362388, + 0.123438511, + 0.12286, + 0.127908688, + 0.127784878, + 0.123993166, + 0.125832607, + 0.125591907, + 0.124625248, + 0.126265688, + 0.122326559, + 0.127637968, + 0.125898537, + 0.127701732, + 0.127172898, + 0.124178155, + 0.128922437, + 0.127042068, + 0.121811385, + 0.122055317, + 0.120129988, + 0.127855383, + 0.118504362, + 0.121727382, + 0.124925925, + 0.128984629, + 0.123815905, + 0.123793691, + 0.123251501, + 0.127476628, + 0.125360982, + 0.126200257, + 0.123815094, + 0.122303261, + 0.125500847, + 0.129266485, + 0.124375451, + 0.123156509, + 0.130680347, + 0.120764752, + 0.127301397, + 0.126045906, + 0.128679243, + 0.122231822, + 0.126955251, + 0.126388957, + 0.119040876, + 0.120233052, + 0.127436827, + 0.121164272, + 0.127591878, + 0.125771195, + 0.121340572, + 0.12767778, + 0.126596435, + 0.124841065, + 0.125162219, + 0.118668548, + 0.121613435, + 0.128818248, + 0.124057939, + 0.12758781, + 0.118188963, + 0.124972803, + 0.122699959, + 0.122277977, + 0.130703821, + 0.129262199, + 0.126661469, + 0.127302428, + 0.121965419, + 0.129314988, + 0.119957092, + 0.12488089, + 0.125887369, + 0.126011348, + 0.128472118, + 0.12617858, + 0.130631286, + 0.121835237, + 0.128671149, + 0.129975865, + 0.124998416, + 0.127628517, + 0.124731603, + 0.121047393, + 0.127329396, + 0.120076513, + 0.124936014, + 0.128646689, + 0.118817745, + 0.125727006, + 0.124887645, + 0.125873158, + 0.125900921, + 0.122242681, + 0.125615208, + 0.127282005, + 0.127288306, + 0.123798252, + 0.128461662, + 0.123981956, + 0.126021135, + 0.128707726, + 0.121904132, + 0.12834162, + 0.123690254, + 0.128415082, + 0.125994995, + 0.126748947, + 0.122520944, + 0.125752256, + 0.128682327, + 0.129837805, + 0.126726789, + 0.125811779, + 0.122096178, + 0.123088403, + 0.126605564, + 0.124370852, + 0.119155627, + 0.122790975, + 0.124578493, + 0.127397242, + 0.126912294, + 0.125937167, + 0.118638748, + 0.127238218, + 0.121309422, + 0.123278012, + 0.129621206, + 0.122432997, + 0.125877527, + 0.119249902, + 0.124339922, + 0.125499141, + 0.124036913, + 0.125261496, + 0.122931167, + 0.129388668, + 0.12961722, + 0.127650893, + 0.11991279, + 0.121981024, + 0.127753584, + 0.128979344, + 0.128104252, + 0.129342231, + 0.130999719, + 0.123206705, + 0.122906183, + 0.126827476, + 0.127825589, + 0.128353806, + 0.121248911, + 0.12939161, + 0.123191907, + 0.127276728, + 0.120771834, + 0.125304107, + 0.124657158, + 0.123941147, + 0.130288201, + 0.12669272, + 0.12692159, + 0.122329338, + 0.122725352, + 0.127673088, + 0.123095819, + 0.126261196, + 0.118813819, + 0.125932855, + 0.128606275, + 0.123799329, + 0.12786575, + 0.127717275, + 0.120013408, + 0.119894849, + 0.125674733, + 0.12382155, + 0.123051761, + 0.119628689, + 0.126077826, + 0.127276641, + 0.12508391, + 0.124822157, + 0.11920296, + 0.120244837, + 0.126633934, + 0.118846889, + 0.124259033, + 0.1238431, + 0.122316475, + 0.123218672, + 0.121962244, + 0.126641684, + 0.126880238, + 0.123209573, + 0.125130457, + 0.126843295, + 0.123714723, + 0.122567297, + 0.123313705, + 0.121216623, + 0.12758153, + 0.126033298, + 0.130408734, + 0.117993348, + 0.127527957, + 0.121763983, + 0.121512494, + 0.12900524, + 0.124626721, + 0.123090838, + 0.128398871, + 0.127067598, + 0.126320993, + 0.121688371, + 0.127043609, + 0.123056966, + 0.127852424, + 0.122256198, + 0.125777639, + 0.125635891, + 0.128641317, + 0.125214641, + 0.127850402, + 0.121944183, + 0.127619407, + 0.12812443, + 0.123991653, + 0.126945584, + 0.122479043, + 0.129669549, + 0.127576916, + 0.124613726, + 0.128896069, + 0.125136712, + 0.12078652, + 0.123700815, + 0.124406577, + 0.127655523, + 0.125911767, + 0.123543399, + 0.127101622, + 0.12784041, + 0.120995831, + 0.123165347, + 0.124943642, + 0.128710413, + 0.125860166, + 0.125219722, + 0.125206463, + 0.126932707, + 0.128372758, + 0.121742246, + 0.125698642, + 0.123018958, + 0.120908664, + 0.124434972, + 0.126604267, + 0.122796422, + 0.125592425, + 0.128303023, + 0.127865531, + 0.128112462, + 0.127381817, + 0.121945019, + 0.121890609, + 0.124247875, + 0.127738335, + 0.125973491, + 0.128064681, + 0.123183342, + 0.122898941, + 0.12899048, + 0.121037142, + 0.127140282, + 0.12686606, + 0.127458747, + 0.121794649, + 0.123078358, + 0.124802397, + 0.123447701, + 0.12932276, + 0.128880596, + 0.119129043, + 0.123150829, + 0.129651306, + 0.12087089, + 0.12471444, + 0.127361851, + 0.125006316, + 0.122136898, + 0.123403867, + 0.119163968, + 0.121971591, + 0.129749389, + 0.118987045, + 0.120284383, + 0.126216887, + 0.120929656, + 0.125043539, + 0.123506821, + 0.122983832, + 0.1205175, + 0.127548939, + 0.12522921, + 0.124035011, + 0.123091133, + 0.121147925, + 0.127663767, + 0.120374664, + 0.121116575, + 0.122267551, + 0.122153601, + 0.127951648, + 0.128164386, + 0.125253761, + 0.125415463, + 0.122598375, + 0.128432407, + 0.130582995, + 0.126899994, + 0.128414916, + 0.126373219, + 0.123981373, + 0.121873773, + 0.125840815, + 0.127195931, + 0.124135579, + 0.12568795, + 0.122198042, + 0.12194487, + 0.122087149, + 0.122982318, + 0.126052944, + 0.129191123, + 0.126439947, + 0.127826122, + 0.125470619, + 0.122717387, + 0.12957499, + 0.127274043, + 0.125876938, + 0.123042243, + 0.120981838, + 0.12604874, + 0.127898366, + 0.12896276, + 0.124053732, + 0.128543288, + 0.12108993, + 0.122350274, + 0.125852482, + 0.126652965, + 0.12197611, + 0.130576281, + 0.125948148, + 0.122234684, + 0.123819033, + 0.123549218, + 0.128365284, + 0.122677271, + 0.127414228, + 0.118850222, + 0.128743901, + 0.126847512, + 0.124162821, + 0.127409985, + 0.120921997, + 0.123259261, + 0.121831856, + 0.120166595, + 0.119632058, + 0.128098606, + 0.1221301, + 0.121654507, + 0.123503589, + 0.126706424, + 0.12272931, + 0.124762938, + 0.124088626, + 0.123793816, + 0.121801364, + 0.128210767, + 0.129317054, + 0.118865815, + 0.123737665, + 0.1179243, + 0.12771188, + 0.120319165, + 0.123366628, + 0.123775061, + 0.124520594, + 0.124483217, + 0.122116665, + 0.126980952, + 0.123669908, + 0.127882985, + 0.125743355, + 0.122055457, + 0.124944892, + 0.125305796, + 0.127280434, + 0.125725284, + 0.128842909, + 0.121854083, + 0.127640051, + 0.127804997, + 0.120943191, + 0.123656357, + 0.130592065, + 0.129389828, + 0.126093037, + 0.12372843, + 0.127388089, + 0.12984663, + 0.119854353, + 0.122749966, + 0.125213089, + 0.123081339, + 0.127889623, + 0.126836248, + 0.127430383, + 0.125572346, + 0.123425591, + 0.122586176, + 0.127782336, + 0.123759487, + 0.128617837, + 0.128974091, + 0.123510528, + 0.126112586, + 0.123956158, + 0.12643124, + 0.127204469, + 0.128717102, + 0.128777956, + 0.126728499, + 0.127182335, + 0.119682346, + 0.122890542, + 0.122180322 ], "implementation": "rust-libp2p", "version": "v0.51", @@ -312,106 +2202,1006 @@ }, { "result": [ - 0.18320343, - 0.18536061, - 0.18361744, - 0.19435881, - 0.19297308, - 0.17911123, - 0.18771777, - 0.18616855, - 0.19002189, - 0.1932833, - 0.18328913, - 0.1849363, - 0.19637023, - 0.19462414, - 0.18167907, - 0.19653203, - 0.19244458, - 0.19403593, - 0.19658187, - 0.19360423, - 0.1878126, - 0.1950962, - 0.18683565, - 0.18880358, - 0.19160251, - 0.1934229, - 0.19295235, - 0.19242506, - 0.19079773, - 0.18370089, - 0.19053127, - 0.18591598, - 0.19645037, - 0.18677087, - 0.1821941, - 0.18339914, - 0.18658818, - 0.1934576, - 0.1852235, - 0.18171275, - 0.19248205, - 0.18724504, - 0.19660091, - 0.18020825, - 0.19356246, - 0.19059129, - 0.1908433, - 0.18162169, - 0.19812965, - 0.18996501, - 0.18189964, - 0.1853105, - 0.19334716, - 0.19054043, - 0.18878776, - 0.19199143, - 0.19069456, - 0.19355537, - 0.18092379, - 0.19440931, - 0.188115, - 0.18938051, - 0.19417661, - 0.1900581, - 0.1790652, - 0.18985173, - 0.19375472, - 0.18476903, - 0.18864189, - 0.18627912, - 0.18755183, - 0.19773859, - 0.185586, - 0.18950075, - 0.18825252, - 0.19602655, - 0.19072296, - 0.19385633, - 0.1878541, - 0.18805191, - 0.18851843, - 0.19145073, - 0.17907362, - 0.1818605, - 0.1912801, - 0.18049575, - 0.17909673, - 0.1890659, - 0.1919892, - 0.19699329, - 0.18649152, - 0.19280715, - 0.19561869, - 0.19330662, - 0.18367936, - 0.18593276, - 0.18934114, - 0.19334432, - 0.19124785, - 0.1819501 + 0.18524794, + 0.19591586, + 0.18794625, + 0.19430587, + 0.18854661, + 0.18042985, + 0.18792032, + 0.18520518, + 0.18903744, + 0.19118784, + 0.1904892, + 0.1907086, + 0.19375764, + 0.18987583, + 0.19201988, + 0.18464862, + 0.18792336, + 0.1852576, + 0.19047278, + 0.19335862, + 0.19190504, + 0.1920972, + 0.18961377, + 0.18865576, + 0.18338314, + 0.1814949, + 0.1868589, + 0.18584011, + 0.18568592, + 0.18345672, + 0.18673599, + 0.18805434, + 0.19341005, + 0.1894355, + 0.18732508, + 0.18142572, + 0.1950999, + 0.18738842, + 0.18656, + 0.18677732, + 0.1852896, + 0.19015548, + 0.18813369, + 0.1875003, + 0.1872505, + 0.1915355, + 0.18359421, + 0.19224681, + 0.19550455, + 0.1898403, + 0.18919228, + 0.18454397, + 0.18179876, + 0.18743584, + 0.19353746, + 0.18035059, + 0.18898939, + 0.19032146, + 0.19219083, + 0.19319399, + 0.18642883, + 0.19179262, + 0.1898807, + 0.18595271, + 0.1771849, + 0.19010052, + 0.19548638, + 0.18873699, + 0.18843974, + 0.18929069, + 0.18538259, + 0.19199778, + 0.18723476, + 0.18270639, + 0.1924653, + 0.19105528, + 0.18446097, + 0.1941712, + 0.19275537, + 0.18205252, + 0.18880984, + 0.18162598, + 0.18720096, + 0.18469231, + 0.19209906, + 0.18387002, + 0.18158957, + 0.18732606, + 0.18867417, + 0.19059275, + 0.18799573, + 0.18171892, + 0.19094992, + 0.17508917, + 0.18934695, + 0.19404241, + 0.18604176, + 0.19051708, + 0.17681356, + 0.19186726, + 0.193644, + 0.18876322, + 0.19445023, + 0.19391657, + 0.1923686, + 0.18509148, + 0.19180611, + 0.18317753, + 0.18923691, + 0.18348204, + 0.18443108, + 0.18465899, + 0.19423671, + 0.18829283, + 0.19155431, + 0.18782051, + 0.1904013, + 0.1803181, + 0.18520196, + 0.18516903, + 0.19338836, + 0.19188984, + 0.17700537, + 0.19144236, + 0.18716136, + 0.18656388, + 0.19015707, + 0.18361528, + 0.19082782, + 0.1800265, + 0.19511913, + 0.18467073, + 0.18545921, + 0.19101618, + 0.19066224, + 0.19137996, + 0.18701626, + 0.17869624, + 0.19145525, + 0.19452327, + 0.18502325, + 0.18511638, + 0.18884985, + 0.1862163, + 0.19592598, + 0.18634993, + 0.17895363, + 0.19242224, + 0.19178946, + 0.18049131, + 0.17920804, + 0.18324515, + 0.19579327, + 0.18329345, + 0.19029912, + 0.18928128, + 0.18610837, + 0.18968491, + 0.1829416, + 0.18846734, + 0.18896092, + 0.18879291, + 0.1879794, + 0.1854974, + 0.18452324, + 0.18303902, + 0.19204596, + 0.1895932, + 0.19313788, + 0.17639224, + 0.17703938, + 0.1847542, + 0.17546484, + 0.18713948, + 0.19117013, + 0.18638946, + 0.18162228, + 0.18729688, + 0.17699867, + 0.18693982, + 0.19052646, + 0.18156548, + 0.18709382, + 0.19278015, + 0.1896199, + 0.18952389, + 0.18640058, + 0.19075428, + 0.19322644, + 0.19208236, + 0.19192673, + 0.18374221, + 0.1917465, + 0.19248451, + 0.19243759, + 0.1917859, + 0.18543811, + 0.18505703, + 0.1908011, + 0.18557584, + 0.18018146, + 0.18869944, + 0.19370513, + 0.19017862, + 0.19141689, + 0.18312092, + 0.19299868, + 0.19368888, + 0.18976845, + 0.18727216, + 0.18706843, + 0.18768978, + 0.1833888, + 0.18748814, + 0.18876882, + 0.18915719, + 0.18461412, + 0.18649657, + 0.17689373, + 0.19010153, + 0.19569857, + 0.18293121, + 0.18309419, + 0.18818483, + 0.18902631, + 0.18812412, + 0.18628155, + 0.18650894, + 0.1829142, + 0.18748952, + 0.1804082, + 0.18561281, + 0.18513432, + 0.18402345, + 0.1915269, + 0.18955414, + 0.1772279, + 0.18903598, + 0.18152907, + 0.18848369, + 0.17757688, + 0.18615861, + 0.1935507, + 0.18890674, + 0.18511511, + 0.19113828, + 0.18684058, + 0.1854391, + 0.19129044, + 0.19189744, + 0.18676503, + 0.18026575, + 0.1781368, + 0.1936407, + 0.19122945, + 0.18413998, + 0.18613681, + 0.18325199, + 0.18867755, + 0.18140174, + 0.18767534, + 0.18975246, + 0.18142007, + 0.1834588, + 0.18874815, + 0.1910428, + 0.18121667, + 0.18741111, + 0.19014554, + 0.18512729, + 0.19320841, + 0.188819, + 0.18620905, + 0.18759724, + 0.18503727, + 0.17987268, + 0.18218672, + 0.18483171, + 0.19372337, + 0.19160135, + 0.19407468, + 0.18704776, + 0.18870555, + 0.18681976, + 0.19176313, + 0.1850153, + 0.19045642, + 0.18986188, + 0.19229676, + 0.18889639, + 0.18845104, + 0.1938119, + 0.19328597, + 0.18485154, + 0.1846728, + 0.19324027, + 0.18908314, + 0.19424601, + 0.19135652, + 0.18129922, + 0.18344013, + 0.19006315, + 0.18662606, + 0.18558776, + 0.1920658, + 0.19044772, + 0.17981257, + 0.1929344, + 0.19212542, + 0.19316268, + 0.18213168, + 0.18900198, + 0.17883952, + 0.19055045, + 0.18772106, + 0.18837062, + 0.18485804, + 0.1816302, + 0.18554497, + 0.18169215, + 0.18909901, + 0.18699868, + 0.18630879, + 0.19151002, + 0.18277721, + 0.18154804, + 0.18197079, + 0.1924471, + 0.19137815, + 0.19023483, + 0.18120018, + 0.18717463, + 0.18973036, + 0.18612172, + 0.1933415, + 0.18388808, + 0.1926496, + 0.18669227, + 0.19370985, + 0.18980293, + 0.1818448, + 0.191825, + 0.19179839, + 0.18053931, + 0.18802343, + 0.18753482, + 0.18471532, + 0.18307956, + 0.18840198, + 0.18788482, + 0.19364427, + 0.19532135, + 0.1894343, + 0.19087546, + 0.19106166, + 0.18924148, + 0.17970476, + 0.18528299, + 0.17849615, + 0.19079487, + 0.18791576, + 0.18569219, + 0.18868266, + 0.19195792, + 0.1960681, + 0.19172007, + 0.19232918, + 0.18723945, + 0.19049202, + 0.19443652, + 0.18845406, + 0.1869535, + 0.19019918, + 0.18017761, + 0.18612966, + 0.18490861, + 0.18453631, + 0.18766353, + 0.19128367, + 0.18566437, + 0.19463056, + 0.18422556, + 0.19562812, + 0.18341747, + 0.18361051, + 0.18452011, + 0.1852424, + 0.1884736, + 0.191309, + 0.18567751, + 0.18804386, + 0.18694726, + 0.18783243, + 0.19160694, + 0.19284923, + 0.18996094, + 0.19119658, + 0.18650064, + 0.19081415, + 0.19098322, + 0.18615815, + 0.1876749, + 0.18875204, + 0.18435673, + 0.18991607, + 0.18332464, + 0.18626732, + 0.18806148, + 0.18405925, + 0.19032763, + 0.1796134, + 0.19125262, + 0.1934207, + 0.18837142, + 0.19013134, + 0.18419896, + 0.19153322, + 0.18478127, + 0.18782775, + 0.18470383, + 0.1784864, + 0.19352543, + 0.19159181, + 0.18225853, + 0.18191224, + 0.1780829, + 0.18728504, + 0.19113885, + 0.19069141, + 0.18463032, + 0.17854065, + 0.18462192, + 0.18920869, + 0.18359956, + 0.18052056, + 0.19069646, + 0.19608122, + 0.18474232, + 0.17949478, + 0.19180478, + 0.18347996, + 0.18630701, + 0.18451412, + 0.18426535, + 0.18745072, + 0.19018869, + 0.19284503, + 0.18088777, + 0.18872002, + 0.18147682, + 0.18506354, + 0.18446796, + 0.18425767, + 0.19375171, + 0.19163328, + 0.19096859, + 0.18770754, + 0.18276449, + 0.18884858, + 0.19428355, + 0.1912395, + 0.19365346, + 0.18364209, + 0.18452744, + 0.17526086, + 0.19227587, + 0.19494994, + 0.18482134, + 0.17863503, + 0.18615724, + 0.18223217, + 0.18360369, + 0.18150704, + 0.18638352, + 0.18614048, + 0.19086057, + 0.19260077, + 0.18365768, + 0.1867621, + 0.18591444, + 0.18595347, + 0.18699345, + 0.19013655, + 0.19243863, + 0.17720611, + 0.1847709, + 0.18767647, + 0.1918419, + 0.19317268, + 0.18340749, + 0.19033617, + 0.18988234, + 0.17674725, + 0.18042941, + 0.1853999, + 0.1864383, + 0.19038017, + 0.19341215, + 0.18896578, + 0.18756945, + 0.19396606, + 0.17685246, + 0.18621211, + 0.18899478, + 0.18346664, + 0.18489602, + 0.18596123, + 0.19468644, + 0.18998958, + 0.18466775, + 0.18569121, + 0.18893069, + 0.18735223, + 0.18268748, + 0.18904209, + 0.19176732, + 0.18544976, + 0.18457036, + 0.18594328, + 0.18683904, + 0.18347412, + 0.18196584, + 0.19370376, + 0.19318762, + 0.19214694, + 0.18547086, + 0.18764608, + 0.18787856, + 0.18934245, + 0.18028358, + 0.18880798, + 0.18400767, + 0.19365738, + 0.19417077, + 0.19163826, + 0.1871758, + 0.19313608, + 0.18893112, + 0.19657317, + 0.18128586, + 0.17593937, + 0.18906105, + 0.1935324, + 0.18952669, + 0.18111193, + 0.19017942, + 0.18277681, + 0.19343413, + 0.1872557, + 0.19190304, + 0.19466734, + 0.18614785, + 0.18788727, + 0.18607792, + 0.1867022, + 0.1889459, + 0.18052, + 0.18883474, + 0.1800873, + 0.18911181, + 0.19120799, + 0.1917927, + 0.19357534, + 0.18032679, + 0.18736538, + 0.18581453, + 0.1912708, + 0.18918255, + 0.18970996, + 0.18809263, + 0.18620972, + 0.1908646, + 0.19203587, + 0.19012062, + 0.17687032, + 0.19059464, + 0.1849498, + 0.19057325, + 0.17894469, + 0.1864818, + 0.18983693, + 0.1948062, + 0.19363369, + 0.18786985, + 0.18500079, + 0.18485284, + 0.19187938, + 0.18808393, + 0.18465404, + 0.17723341, + 0.18322611, + 0.19639507, + 0.18483758, + 0.18291178, + 0.18642865, + 0.19183007, + 0.18510501, + 0.19059977, + 0.19005772, + 0.19116472, + 0.18791269, + 0.18633656, + 0.1896293, + 0.18651503, + 0.1949546, + 0.18250239, + 0.18987599, + 0.17833613, + 0.19000189, + 0.18769841, + 0.18325391, + 0.18705507, + 0.18601859, + 0.1847015, + 0.18413983, + 0.18925229, + 0.18645042, + 0.18734767, + 0.18631223, + 0.1773735, + 0.1911044, + 0.17884104, + 0.18753575, + 0.17563751, + 0.18343766, + 0.19169809, + 0.17871672, + 0.19150074, + 0.18967196, + 0.18736611, + 0.1919503, + 0.1848084, + 0.18440166, + 0.18747635, + 0.18949722, + 0.1960136, + 0.19044293, + 0.18854968, + 0.18916698, + 0.1842706, + 0.19627984, + 0.1934773, + 0.18841065, + 0.1820662, + 0.18558323, + 0.187851, + 0.1895967, + 0.18293783, + 0.18673748, + 0.18456462, + 0.18580535, + 0.1903732, + 0.18762349, + 0.18252088, + 0.1774874, + 0.188435, + 0.19018726, + 0.18314803, + 0.18985619, + 0.18445681, + 0.1918975, + 0.18494177, + 0.19153363, + 0.19145931, + 0.19303991, + 0.187884, + 0.19005246, + 0.18713364, + 0.18636099, + 0.17827454, + 0.18503997, + 0.18458563, + 0.17507657, + 0.18553019, + 0.18889783, + 0.19107404, + 0.19433635, + 0.18595009, + 0.1891247, + 0.19354814, + 0.18013677, + 0.18387862, + 0.18928015, + 0.1911583, + 0.19411966, + 0.17965546, + 0.1826555, + 0.18442343, + 0.18400696, + 0.1846489, + 0.18457966, + 0.18482421, + 0.186002, + 0.18880433, + 0.18864326, + 0.18796283, + 0.19276671, + 0.18305169, + 0.18376891, + 0.18453082, + 0.18611465, + 0.18614456, + 0.1862241, + 0.1908965, + 0.18873484, + 0.1940514, + 0.1872482, + 0.19248074, + 0.18927845, + 0.17659658, + 0.18377775, + 0.19198509, + 0.18759729, + 0.18337385, + 0.19082141, + 0.18308872, + 0.1875434, + 0.19367637, + 0.19386756, + 0.19227947, + 0.19340345, + 0.1887513, + 0.18982333, + 0.1860038, + 0.18730503, + 0.1866988, + 0.18173814, + 0.1863281, + 0.19399753, + 0.19049987, + 0.18766856, + 0.18876942, + 0.18720753, + 0.188302, + 0.19355738, + 0.18499444, + 0.19016661, + 0.18458542, + 0.17879796, + 0.18846872, + 0.19091451, + 0.18610035, + 0.18763839, + 0.19129188, + 0.1750825, + 0.19352566, + 0.18610162, + 0.18609174, + 0.18404521, + 0.18979047, + 0.19500081, + 0.1875946, + 0.1869609, + 0.18412253, + 0.19109114, + 0.19232842, + 0.19125354, + 0.18014143, + 0.18060516, + 0.18162686, + 0.18691278, + 0.1844199, + 0.1912215, + 0.18728912, + 0.18832475, + 0.183075, + 0.18708476, + 0.18762273, + 0.18135269, + 0.18880214, + 0.19133823, + 0.17720762, + 0.17996627, + 0.19164169, + 0.18833254, + 0.19102228, + 0.19447245, + 0.18132246, + 0.19372949, + 0.19276187, + 0.19079621, + 0.18625061, + 0.18882757, + 0.19314504, + 0.18237343, + 0.18839873, + 0.19045521, + 0.19312134, + 0.19095148, + 0.19057584, + 0.18735133, + 0.18135402, + 0.18340158, + 0.183522, + 0.17962545, + 0.18389851, + 0.18712981, + 0.18718822, + 0.18614963, + 0.18444254, + 0.1939569, + 0.19320072, + 0.18803735, + 0.17520604, + 0.18348356, + 0.18744968, + 0.19496496, + 0.18637691, + 0.17892247, + 0.18706241, + 0.18969901, + 0.18619393, + 0.191969, + 0.19370082, + 0.19241337, + 0.1781465, + 0.1848462, + 0.1885704, + 0.19183445, + 0.1935026, + 0.18533275, + 0.18172206, + 0.18906221, + 0.18950513, + 0.18326128, + 0.18611991, + 0.18538944, + 0.19186778, + 0.18567774, + 0.19148552, + 0.19196652, + 0.18752776, + 0.19582267, + 0.18985444, + 0.19485874, + 0.18906131, + 0.18347046, + 0.1816845, + 0.1910355, + 0.19383648, + 0.1889277, + 0.18581787, + 0.1801495, + 0.19108605, + 0.192792, + 0.18321748, + 0.19185306, + 0.18041229, + 0.19335009, + 0.18966109, + 0.18572006, + 0.1820242, + 0.19376683, + 0.18522754, + 0.19392629, + 0.18494494, + 0.18268901, + 0.18357557, + 0.18529353, + 0.18622844, + 0.18632713, + 0.18934643, + 0.18644169, + 0.18134576, + 0.18412821, + 0.19020668, + 0.1830647, + 0.18161058, + 0.1854414, + 0.19151825, + 0.18907265, + 0.18841116, + 0.18465431, + 0.19188471, + 0.18623483, + 0.1930334, + 0.18624929, + 0.18669517, + 0.18834542, + 0.17718652, + 0.19196948, + 0.18198931, + 0.18757853, + 0.19110017, + 0.18900405, + 0.18392175, + 0.18292536, + 0.18605357, + 0.19201787, + 0.18791941, + 0.18860418, + 0.19175616, + 0.1833055, + 0.19468476, + 0.18844387, + 0.19018388, + 0.18257552, + 0.18325597, + 0.1831569, + 0.18405952, + 0.1841893, + 0.19270279, + 0.18473738, + 0.19154595, + 0.18925674, + 0.18820097, + 0.18990457, + 0.18342479, + 0.1883575, + 0.18609914, + 0.18407565, + 0.18555853, + 0.186173, + 0.18632352, + 0.18489523, + 0.18325795, + 0.18894415, + 0.18730015, + 0.18012197, + 0.18721719, + 0.19199906, + 0.18162072, + 0.19100372, + 0.18344215, + 0.18284963, + 0.1900041, + 0.18487018, + 0.19348997, + 0.19345942, + 0.18446274, + 0.1883541, + 0.18453799, + 0.18518706, + 0.19285399, + 0.19113672, + 0.18961784, + 0.18165508, + 0.19008589, + 0.19005103, + 0.19012193, + 0.1865979, + 0.18314604, + 0.18323402, + 0.19439068, + 0.18983452, + 0.189389, + 0.18690363, + 0.18561633, + 0.18531574, + 0.19328548, + 0.17741984, + 0.19136788, + 0.1901003, + 0.19243135, + 0.1915578, + 0.1933532, + 0.18713564, + 0.18331595, + 0.18305627, + 0.18874313, + 0.19292498, + 0.18575555, + 0.19544935, + 0.18991081, + 0.19623516, + 0.18130925, + 0.18657489, + 0.18727171, + 0.18466525, + 0.18829219, + 0.19558918, + 0.18271032, + 0.1927778, + 0.18632072, + 0.19245307, + 0.17867348, + 0.18664844, + 0.17901124, + 0.18634723, + 0.18164803, + 0.18581408, + 0.18963115, + 0.18893193, + 0.18861178, + 0.18145634, + 0.19621325, + 0.18438685, + 0.18182021, + 0.18388388, + 0.18300377, + 0.1876391, + 0.1915926, + 0.1832556, + 0.19337611, + 0.180336, + 0.1814114, + 0.1861167, + 0.18693757, + 0.17517857, + 0.18050852 ], "implementation": "https", "version": "v0.1", @@ -419,106 +3209,1006 @@ }, { "result": [ - 0.121910445, - 0.11881714, - 0.12565878, - 0.120740406, - 0.12369829, - 0.059684623, - 0.062413216, - 0.12297799, - 0.05914709, - 0.121276975, - 0.1275316, - 0.12616104, - 0.06367172, - 0.06365608, - 0.11770963, - 0.12578832, - 0.11637737, - 0.12519154, - 0.06280298, - 0.12279162, - 0.1280496, - 0.06273546, - 0.06382796, - 0.123510554, - 0.12652722, - 0.063152574, - 0.061366368, - 0.061252348, - 0.122583106, - 0.06320014, - 0.06368281, - 0.12935217, - 0.1272645, - 0.12278854, - 0.06265062, - 0.061963823, - 0.060819846, - 0.061983608, - 0.12717623, - 0.06352975, - 0.063989244, - 0.063381314, - 0.063970394, - 0.060427155, - 0.12220286, - 0.06254202, - 0.12677895, - 0.06205927, - 0.12242437, - 0.061617523, - 0.061746463, - 0.06292769, - 0.12955624, - 0.120770946, - 0.06198795, - 0.12360525, - 0.06355573, - 0.06294512, - 0.06212846, - 0.12300296, - 0.12280484, - 0.121470906, - 0.12500018, - 0.06442808, - 0.06139656, - 0.062791884, - 0.060238913, - 0.06299706, - 0.06510424, - 0.062770784, - 0.12278812, - 0.06269702, - 0.0634597, - 0.06203319, - 0.1255534, - 0.060937285, - 0.1206148, - 0.12486283, - 0.06401831, - 0.12350103, - 0.124673195, - 0.06171527, - 0.12783773, - 0.11993122, - 0.124730706, - 0.060521364, - 0.059129454, - 0.061679672, - 0.12909296, - 0.12940763, - 0.06199324, - 0.06338893, - 0.061646536, - 0.06442368, - 0.06122898, - 0.061356246, - 0.061156437, - 0.11956378, - 0.12571876, - 0.121949255 + 0.061098557, + 0.122677565, + 0.06257435, + 0.12778594, + 0.06030236, + 0.120866634, + 0.059993576, + 0.11949572, + 0.063703716, + 0.12161578, + 0.12833966, + 0.060368165, + 0.06083092, + 0.06434434, + 0.06212958, + 0.064340495, + 0.06267771, + 0.05979742, + 0.12569734, + 0.12185507, + 0.060186822, + 0.12204336, + 0.1253036, + 0.06388343, + 0.12525854, + 0.060852796, + 0.12181904, + 0.12621278, + 0.06088263, + 0.06077933, + 0.122408405, + 0.062213145, + 0.062452976, + 0.11801532, + 0.061045542, + 0.061853305, + 0.061790224, + 0.06273316, + 0.06274884, + 0.12646689, + 0.12734273, + 0.12246875, + 0.1249662, + 0.061987977, + 0.11975378, + 0.061279792, + 0.1268083, + 0.12563269, + 0.12662059, + 0.12286781, + 0.12367272, + 0.11728802, + 0.12375009, + 0.06279944, + 0.12192425, + 0.06239667, + 0.12655386, + 0.06404017, + 0.064299986, + 0.12665547, + 0.06050855, + 0.06136467, + 0.060857967, + 0.061802648, + 0.12003638, + 0.12764299, + 0.12649962, + 0.061260782, + 0.12821585, + 0.060611945, + 0.05921954, + 0.12346959, + 0.12886742, + 0.12087482, + 0.06347828, + 0.12528199, + 0.12031462, + 0.0639886, + 0.06375981, + 0.062880166, + 0.12184213, + 0.12205527, + 0.1265297, + 0.06211663, + 0.123978555, + 0.12635484, + 0.12275845, + 0.06304368, + 0.061689246, + 0.11894658, + 0.06258468, + 0.120178185, + 0.065006085, + 0.0614003, + 0.06413384, + 0.06079768, + 0.12121103, + 0.06176101, + 0.061813965, + 0.12407761, + 0.06251261, + 0.1257532, + 0.063454546, + 0.12669946, + 0.12516311, + 0.062470052, + 0.06350435, + 0.06023116, + 0.12063188, + 0.12461037, + 0.063436404, + 0.11992528, + 0.0627828, + 0.06090916, + 0.06218947, + 0.06533247, + 0.1251869, + 0.061812624, + 0.06406887, + 0.06068265, + 0.12016556, + 0.12591602, + 0.1255677, + 0.12684308, + 0.060802583, + 0.12464005, + 0.06320735, + 0.062168337, + 0.062212307, + 0.12706186, + 0.061864033, + 0.059248224, + 0.12288502, + 0.061336495, + 0.06262787, + 0.06167879, + 0.12735505, + 0.061855666, + 0.061602697, + 0.06014244, + 0.060404032, + 0.060984675, + 0.12594001, + 0.062800124, + 0.062351476, + 0.06164358, + 0.06446282, + 0.06223159, + 0.06269588, + 0.06364729, + 0.12880242, + 0.12187908, + 0.06106908, + 0.060302358, + 0.06079494, + 0.12459275, + 0.06158942, + 0.12282457, + 0.116887435, + 0.12473626, + 0.1240523, + 0.12327415, + 0.12284162, + 0.124004245, + 0.06136621, + 0.12402576, + 0.12296199, + 0.06371356, + 0.12377531, + 0.12236627, + 0.12501334, + 0.06215816, + 0.12511283, + 0.06324485, + 0.06353244, + 0.12514012, + 0.12459142, + 0.062042885, + 0.11690081, + 0.06428719, + 0.12253537, + 0.061031543, + 0.06271566, + 0.11956, + 0.12740672, + 0.12106079, + 0.064277776, + 0.06302115, + 0.06078906, + 0.058266472, + 0.06300843, + 0.12190898, + 0.05923906, + 0.1181524, + 0.06096946, + 0.122085094, + 0.059712157, + 0.061239794, + 0.059939064, + 0.060928002, + 0.12593703, + 0.11892305, + 0.06272017, + 0.064566515, + 0.12500943, + 0.06372904, + 0.06234713, + 0.12592904, + 0.11872868, + 0.12349243, + 0.06395257, + 0.1254166, + 0.062703826, + 0.06210299, + 0.06329495, + 0.059193835, + 0.06371434, + 0.06042314, + 0.12626241, + 0.12590183, + 0.06360637, + 0.06365295, + 0.059588425, + 0.12816073, + 0.12911351, + 0.122024596, + 0.12822922, + 0.06087176, + 0.06288519, + 0.062819794, + 0.061675992, + 0.12638642, + 0.11536737, + 0.121176355, + 0.06313858, + 0.062790245, + 0.12160163, + 0.12305948, + 0.061529107, + 0.12033623, + 0.06349496, + 0.1205994, + 0.06288893, + 0.122656286, + 0.124886885, + 0.12304814, + 0.11650175, + 0.06180165, + 0.06174836, + 0.060449217, + 0.06156516, + 0.11905319, + 0.11786273, + 0.063385285, + 0.061827533, + 0.060296495, + 0.12642768, + 0.12568541, + 0.060418844, + 0.12155877, + 0.0630776, + 0.060743947, + 0.11996708, + 0.12793581, + 0.06313965, + 0.1284523, + 0.1255258, + 0.11923882, + 0.12739412, + 0.062143434, + 0.12604997, + 0.062129293, + 0.12340442, + 0.12136363, + 0.12741889, + 0.060423043, + 0.060728177, + 0.063859165, + 0.12740701, + 0.061496567, + 0.12379834, + 0.123021364, + 0.122087, + 0.12207956, + 0.06427016, + 0.061886005, + 0.06274253, + 0.120108515, + 0.061090786, + 0.063569725, + 0.060752984, + 0.062854566, + 0.12819423, + 0.06261461, + 0.12504536, + 0.06347985, + 0.063427135, + 0.06226781, + 0.12977119, + 0.064651854, + 0.124234535, + 0.061459504, + 0.12986355, + 0.119209856, + 0.124751404, + 0.063733175, + 0.12614915, + 0.12631008, + 0.12482989, + 0.12034548, + 0.1224444, + 0.06347581, + 0.118853256, + 0.124902815, + 0.061748292, + 0.1272086, + 0.061634257, + 0.06182192, + 0.12184995, + 0.060232755, + 0.12607664, + 0.06371958, + 0.12011516, + 0.061288483, + 0.117623225, + 0.12403134, + 0.12314628, + 0.06067355, + 0.12679115, + 0.060680486, + 0.122696385, + 0.06344334, + 0.06192609, + 0.061302215, + 0.062244542, + 0.061868303, + 0.0619339, + 0.06382878, + 0.1273313, + 0.06337379, + 0.06319447, + 0.12662446, + 0.12401527, + 0.122991055, + 0.12641264, + 0.12264216, + 0.06309408, + 0.122137345, + 0.06408302, + 0.12173261, + 0.12841131, + 0.124441914, + 0.12634987, + 0.061986707, + 0.064391375, + 0.063534975, + 0.122105986, + 0.064148754, + 0.12087193, + 0.1275767, + 0.124816924, + 0.12768798, + 0.123407744, + 0.06090919, + 0.06412758, + 0.062706694, + 0.061906293, + 0.12088335, + 0.06230492, + 0.12216677, + 0.12617236, + 0.12092181, + 0.11947854, + 0.118327886, + 0.116609104, + 0.121868506, + 0.11771331, + 0.06424832, + 0.12217119, + 0.0631032, + 0.06383693, + 0.12570591, + 0.12525968, + 0.12170119, + 0.12865895, + 0.12331589, + 0.12220424, + 0.061786372, + 0.12108162, + 0.060363963, + 0.063529514, + 0.06174939, + 0.12166741, + 0.119854756, + 0.11992821, + 0.12016259, + 0.12408515, + 0.1259497, + 0.12625326, + 0.059979994, + 0.063992456, + 0.06296323, + 0.12201907, + 0.06289185, + 0.060920395, + 0.06245094, + 0.12098013, + 0.063023835, + 0.12112317, + 0.061431702, + 0.12099802, + 0.060997713, + 0.06069562, + 0.1156374, + 0.06259204, + 0.121108875, + 0.061397847, + 0.061364565, + 0.12683481, + 0.1239895, + 0.12199623, + 0.12371302, + 0.06303822, + 0.123904705, + 0.06373938, + 0.12497988, + 0.06168437, + 0.061762985, + 0.062048923, + 0.060569096, + 0.061622765, + 0.12302462, + 0.11988064, + 0.060922846, + 0.12258299, + 0.06397334, + 0.058766793, + 0.12462706, + 0.11554163, + 0.061670348, + 0.06131367, + 0.118854515, + 0.12172762, + 0.0623502, + 0.06330903, + 0.061860055, + 0.06376819, + 0.06276494, + 0.06357121, + 0.12506407, + 0.12192823, + 0.0631195, + 0.12576704, + 0.06327021, + 0.05920159, + 0.12185841, + 0.1259599, + 0.06408476, + 0.12770161, + 0.1230431, + 0.12211784, + 0.12576449, + 0.11961059, + 0.06351152, + 0.1198752, + 0.06525488, + 0.121781625, + 0.12638734, + 0.06251528, + 0.06206309, + 0.063542515, + 0.06260917, + 0.12898925, + 0.062839456, + 0.061699014, + 0.12500338, + 0.062399905, + 0.063459046, + 0.116890036, + 0.058163855, + 0.060898986, + 0.121976696, + 0.12382451, + 0.06117277, + 0.061463483, + 0.062992096, + 0.12517282, + 0.12353551, + 0.06262687, + 0.06173612, + 0.061540145, + 0.12567279, + 0.12238838, + 0.12654354, + 0.12621146, + 0.06135368, + 0.12203463, + 0.06126906, + 0.06451874, + 0.121368885, + 0.060720246, + 0.063681684, + 0.0614191, + 0.064739615, + 0.064481474, + 0.12318916, + 0.06012208, + 0.12376385, + 0.060099784, + 0.120980844, + 0.06292485, + 0.061602972, + 0.06365584, + 0.0627104, + 0.063658886, + 0.11705061, + 0.06329363, + 0.121781625, + 0.12226321, + 0.060202073, + 0.12614657, + 0.061373, + 0.12353117, + 0.062471054, + 0.061343413, + 0.06418777, + 0.059270855, + 0.05882358, + 0.062205672, + 0.061868347, + 0.06340579, + 0.061123636, + 0.060697723, + 0.11871503, + 0.06212448, + 0.0636004, + 0.06491019, + 0.06427115, + 0.062795274, + 0.060539242, + 0.12750514, + 0.059909165, + 0.06354641, + 0.06120478, + 0.12920457, + 0.124803066, + 0.12569822, + 0.06234273, + 0.062379815, + 0.12301076, + 0.062037356, + 0.12706876, + 0.12775217, + 0.12815405, + 0.06502236, + 0.12418637, + 0.06366649, + 0.12165575, + 0.12473314, + 0.12309331, + 0.12540075, + 0.12773722, + 0.063183725, + 0.06194332, + 0.063115165, + 0.064503685, + 0.06362732, + 0.12624387, + 0.06288168, + 0.06080931, + 0.1206144, + 0.06183651, + 0.12972994, + 0.0627913, + 0.12643975, + 0.12600654, + 0.060561165, + 0.11908015, + 0.12842998, + 0.12820502, + 0.06314017, + 0.12675942, + 0.12744254, + 0.12307789, + 0.06124741, + 0.12446348, + 0.06025077, + 0.12062515, + 0.11767954, + 0.12114841, + 0.06347565, + 0.062389165, + 0.12471357, + 0.1267419, + 0.062019248, + 0.123556465, + 0.12412642, + 0.12194713, + 0.12459946, + 0.06373942, + 0.12405623, + 0.12525746, + 0.06053102, + 0.11909608, + 0.12103986, + 0.11888951, + 0.06283265, + 0.12484604, + 0.059830666, + 0.123886466, + 0.058721878, + 0.06505489, + 0.12024162, + 0.12088557, + 0.06497758, + 0.12537232, + 0.118689604, + 0.1185964, + 0.12487768, + 0.06234484, + 0.063239455, + 0.12181302, + 0.12500143, + 0.06144439, + 0.123892695, + 0.06322356, + 0.06075873, + 0.06400462, + 0.12386324, + 0.11797801, + 0.063977085, + 0.0610135, + 0.062170736, + 0.060455892, + 0.12700762, + 0.06192173, + 0.12656504, + 0.06069817, + 0.062323034, + 0.061751295, + 0.061373767, + 0.124465905, + 0.12777765, + 0.12406513, + 0.12224693, + 0.12786247, + 0.124376014, + 0.06329137, + 0.061780103, + 0.12600783, + 0.121166356, + 0.06139451, + 0.122465454, + 0.060811177, + 0.060406227, + 0.060910862, + 0.123562105, + 0.12718882, + 0.12698865, + 0.12500887, + 0.12385456, + 0.06134381, + 0.12768099, + 0.1207425, + 0.12633103, + 0.11933334, + 0.12735344, + 0.1217412, + 0.06198373, + 0.061577167, + 0.06328106, + 0.12780821, + 0.119899355, + 0.11884217, + 0.06499533, + 0.06288517, + 0.12572709, + 0.06370967, + 0.06299336, + 0.12635015, + 0.12317125, + 0.123528235, + 0.062334333, + 0.121721454, + 0.063040406, + 0.060503077, + 0.12710865, + 0.12593082, + 0.1253199, + 0.12506114, + 0.06298848, + 0.12187009, + 0.06138891, + 0.06143218, + 0.122595355, + 0.12975028, + 0.061990198, + 0.058604315, + 0.062395692, + 0.064368166, + 0.12264681, + 0.12276988, + 0.05964031, + 0.062926926, + 0.124987945, + 0.06080277, + 0.058830444, + 0.12656274, + 0.06184245, + 0.06136579, + 0.06321543, + 0.11963763, + 0.12161548, + 0.12862557, + 0.06399388, + 0.062242173, + 0.12279626, + 0.12319045, + 0.058754504, + 0.064145856, + 0.12058943, + 0.12828861, + 0.06317596, + 0.061631527, + 0.06312177, + 0.061301287, + 0.12093809, + 0.124914594, + 0.06147969, + 0.12385189, + 0.1215742, + 0.062185816, + 0.12535793, + 0.06329084, + 0.12793434, + 0.12645, + 0.11965113, + 0.062352303, + 0.12161365, + 0.06285597, + 0.06130183, + 0.12684996, + 0.12684952, + 0.06215544, + 0.06363185, + 0.06042371, + 0.12557791, + 0.12269417, + 0.062173452, + 0.059899837, + 0.12786733, + 0.12386554, + 0.063487515, + 0.0636747, + 0.058852226, + 0.0626843, + 0.0625849, + 0.12451706, + 0.12167628, + 0.063683465, + 0.060833704, + 0.12347144, + 0.11772073, + 0.0647329, + 0.059449628, + 0.124460675, + 0.12304892, + 0.061370965, + 0.12278317, + 0.058206007, + 0.121803716, + 0.06251409, + 0.11924211, + 0.12743121, + 0.12565333, + 0.06275442, + 0.06352349, + 0.064351365, + 0.060097106, + 0.060317084, + 0.059768893, + 0.121791475, + 0.060224358, + 0.12532583, + 0.060764983, + 0.12077303, + 0.123844974, + 0.061764415, + 0.06125195, + 0.061555646, + 0.1236463, + 0.12514667, + 0.121424094, + 0.06172146, + 0.059762105, + 0.061486755, + 0.12457161, + 0.06326, + 0.0633896, + 0.062122516, + 0.12490207, + 0.06013389, + 0.06422362, + 0.061419457, + 0.12797524, + 0.12363866, + 0.12677658, + 0.06458394, + 0.060979757, + 0.12931338, + 0.06284752, + 0.06489921, + 0.12469534, + 0.06318158, + 0.12170537, + 0.12484324, + 0.12612495, + 0.1209938, + 0.118906245, + 0.061212316, + 0.12493468, + 0.12464009, + 0.062752806, + 0.12467642, + 0.0641423, + 0.1216294, + 0.1209582, + 0.060991958, + 0.061422933, + 0.12068459, + 0.12475638, + 0.123843476, + 0.122518815, + 0.061314374, + 0.06219265, + 0.12691875, + 0.06432875, + 0.06161244, + 0.06424724, + 0.06116942, + 0.121044785, + 0.06375235, + 0.06220792, + 0.12819417, + 0.12613277, + 0.11891829, + 0.058808018, + 0.06262901, + 0.121994704, + 0.061623022, + 0.12825878, + 0.12834923, + 0.12071676, + 0.12824294, + 0.12575309, + 0.06282522, + 0.12272275, + 0.06211538, + 0.124622494, + 0.12678842, + 0.12780456, + 0.12441278, + 0.118889384, + 0.12368323, + 0.06412907, + 0.06477927, + 0.06295068, + 0.058761925, + 0.062899806, + 0.059340063, + 0.058894932, + 0.11965655, + 0.124077566, + 0.058743656, + 0.11864628, + 0.119751774, + 0.06273457, + 0.12221417, + 0.121467434, + 0.120936885, + 0.12601312, + 0.1223208, + 0.06136741, + 0.0621674, + 0.124620505, + 0.12186019, + 0.06125989, + 0.06387756, + 0.06309048, + 0.06115474, + 0.060864925, + 0.12950446, + 0.12746058, + 0.12202926, + 0.061019138, + 0.12981099, + 0.061455812, + 0.11971428, + 0.0618985, + 0.12580271, + 0.062671095, + 0.061790176, + 0.123100474, + 0.12115817, + 0.062172294, + 0.0630974, + 0.1292075, + 0.12558155, + 0.060595244, + 0.061124552, + 0.06314932, + 0.06279811, + 0.064531155, + 0.062105816, + 0.124226145, + 0.12298026, + 0.12305574, + 0.061293487, + 0.061830226, + 0.060254183, + 0.1243921, + 0.12491277, + 0.06284794, + 0.06113546, + 0.063198164, + 0.12285613, + 0.0652593, + 0.12114529, + 0.06356058, + 0.12355269, + 0.06334004, + 0.061988022, + 0.06371018, + 0.12684947, + 0.062222466, + 0.06452483, + 0.061369646, + 0.058641843, + 0.058024712, + 0.059255727, + 0.06142778, + 0.061520416, + 0.12299057, + 0.1240438, + 0.062762305, + 0.1233913, + 0.06354816, + 0.060491633, + 0.12533638, + 0.120681874, + 0.12654531, + 0.12492515, + 0.12168613, + 0.120121546, + 0.059344687, + 0.12227504, + 0.059349224, + 0.061782755, + 0.12443372, + 0.12758052, + 0.12190324, + 0.06323058, + 0.06377576, + 0.11574595, + 0.061041545, + 0.06135239, + 0.063873164, + 0.11965734, + 0.12018278, + 0.061995443, + 0.06311943, + 0.062282298, + 0.117936656, + 0.06358508, + 0.12773158, + 0.12461038, + 0.12293449, + 0.060854096, + 0.06118873, + 0.062328547, + 0.11787681, + 0.061586753, + 0.06342965, + 0.12292409, + 0.119889475, + 0.12385673, + 0.061602287, + 0.061503604, + 0.122390024, + 0.12681009, + 0.06074304, + 0.063694805, + 0.06460628, + 0.12174, + 0.062427726, + 0.060504176, + 0.06104154, + 0.060948625, + 0.0609405, + 0.12081094 ], "implementation": "go-libp2p", "version": "v0.27", @@ -526,106 +4216,1006 @@ }, { "result": [ - 0.061366297, - 0.06141815, - 0.06235603, - 0.05939474, - 0.06039162, - 0.06285481, - 0.062587045, - 0.06076747, - 0.061709136, - 0.0651515, - 0.06375983, - 0.06174513, - 0.06441085, - 0.06124736, - 0.0633643, - 0.062006813, - 0.064214155, - 0.06199964, - 0.059042238, - 0.0638644, - 0.061607417, - 0.06152012, - 0.061881498, - 0.063524246, - 0.064039655, - 0.06134695, - 0.062953085, - 0.06384624, - 0.06427768, - 0.06291174, - 0.063121215, - 0.064400375, - 0.060993534, - 0.06326786, - 0.06498396, - 0.06366782, - 0.06421878, - 0.05991633, - 0.061237972, - 0.06097275, - 0.06281252, - 0.063318364, - 0.06220533, - 0.059357736, - 0.062972456, - 0.06279454, - 0.06431296, - 0.061344843, - 0.060761552, - 0.062238023, - 0.064125076, - 0.060153004, - 0.06452732, - 0.062090736, - 0.063264675, - 0.063170955, - 0.06424445, - 0.06410372, - 0.060594898, - 0.063670315, - 0.058708303, - 0.059632868, - 0.05994657, - 0.06230721, - 0.06079447, - 0.062781, - 0.0634743, - 0.061454855, - 0.06413592, - 0.06086088, - 0.06315938, - 0.062183496, - 0.060575858, - 0.06285511, - 0.064148664, - 0.06287306, - 0.06424426, - 0.06077488, - 0.0604213, - 0.06092073, - 0.061406802, - 0.060680717, - 0.06267789, - 0.061268207, - 0.062574886, - 0.06418872, - 0.06184111, - 0.06153584, - 0.061698426, - 0.06317972, - 0.05922345, - 0.06279262, - 0.06402876, - 0.06379871, - 0.06081787, - 0.06390525, - 0.06378799, - 0.06364002, - 0.063555226, - 0.058329925 + 0.05979386, + 0.0614989, + 0.062057644, + 0.0629346, + 0.06084253, + 0.06274704, + 0.060138498, + 0.06168313, + 0.06249221, + 0.059208173, + 0.06315577, + 0.064342216, + 0.060861632, + 0.06126036, + 0.0606333, + 0.06253317, + 0.060403556, + 0.06038483, + 0.0645132, + 0.0636985, + 0.061929233, + 0.061765026, + 0.059337232, + 0.06328489, + 0.06281512, + 0.06109722, + 0.061478745, + 0.061853956, + 0.06432052, + 0.06203753, + 0.061623573, + 0.062024113, + 0.06343448, + 0.061724402, + 0.061243206, + 0.06135625, + 0.06527555, + 0.06260956, + 0.063790575, + 0.062603205, + 0.06271221, + 0.060480125, + 0.063212246, + 0.06289105, + 0.06414841, + 0.06258399, + 0.062755905, + 0.06096968, + 0.060282093, + 0.06320078, + 0.06204031, + 0.062469658, + 0.060154475, + 0.06227841, + 0.061607603, + 0.06294187, + 0.061856747, + 0.06370741, + 0.06157508, + 0.06274756, + 0.062030185, + 0.061531935, + 0.060438696, + 0.06317379, + 0.06250942, + 0.062877975, + 0.06079161, + 0.061781704, + 0.06282605, + 0.060677525, + 0.060185745, + 0.059562013, + 0.06184914, + 0.062941395, + 0.06266841, + 0.06186885, + 0.06369873, + 0.06320667, + 0.06289801, + 0.05978253, + 0.06366667, + 0.06116066, + 0.06428175, + 0.062050518, + 0.063048184, + 0.06055832, + 0.063025385, + 0.062117364, + 0.062324926, + 0.059716098, + 0.062684886, + 0.061443537, + 0.059105065, + 0.06423332, + 0.06210462, + 0.061752487, + 0.05933307, + 0.06337844, + 0.06265861, + 0.061626848, + 0.062014375, + 0.061660185, + 0.06400093, + 0.06269735, + 0.060753748, + 0.06418341, + 0.060211968, + 0.063170485, + 0.063441835, + 0.06301364, + 0.061521634, + 0.05989454, + 0.06359335, + 0.06003695, + 0.060188636, + 0.061473362, + 0.061123997, + 0.06094188, + 0.06238059, + 0.06219674, + 0.061772026, + 0.06302244, + 0.06217494, + 0.06420405, + 0.06289659, + 0.062873684, + 0.06372151, + 0.063877866, + 0.06170014, + 0.061899442, + 0.05930521, + 0.061791964, + 0.065101504, + 0.064989276, + 0.062589176, + 0.063712336, + 0.063643016, + 0.062825225, + 0.060757287, + 0.06384424, + 0.060841434, + 0.060667887, + 0.06038359, + 0.06306893, + 0.06158978, + 0.06308526, + 0.062179074, + 0.061404727, + 0.06363155, + 0.06086258, + 0.061433226, + 0.06251437, + 0.06185469, + 0.06378106, + 0.060349714, + 0.0617683, + 0.061294287, + 0.061439868, + 0.062053643, + 0.06141682, + 0.06316865, + 0.06431798, + 0.060288608, + 0.060308624, + 0.062582314, + 0.06297855, + 0.06232935, + 0.06172678, + 0.06423594, + 0.06368951, + 0.0627127, + 0.063415445, + 0.06462346, + 0.060237568, + 0.060226552, + 0.06392753, + 0.06298952, + 0.06081873, + 0.060775157, + 0.06408355, + 0.06211819, + 0.061403032, + 0.0643188, + 0.06205648, + 0.061182167, + 0.06278589, + 0.06137354, + 0.06444163, + 0.062767684, + 0.059858225, + 0.059899423, + 0.061598144, + 0.060082808, + 0.061800536, + 0.061146166, + 0.06150874, + 0.06220255, + 0.06374253, + 0.062975585, + 0.060746208, + 0.06361366, + 0.06064718, + 0.060326252, + 0.063673995, + 0.060362574, + 0.061759576, + 0.06434878, + 0.061801597, + 0.061751597, + 0.06268712, + 0.06439896, + 0.06359741, + 0.05931582, + 0.06360835, + 0.063618176, + 0.06148455, + 0.062682614, + 0.06508584, + 0.061175767, + 0.05927704, + 0.062290452, + 0.06253745, + 0.061925694, + 0.06459632, + 0.06180387, + 0.06227639, + 0.06159579, + 0.0617276, + 0.06339555, + 0.061987013, + 0.063767575, + 0.063278936, + 0.059473924, + 0.06335779, + 0.06458398, + 0.062495936, + 0.06226176, + 0.061254166, + 0.060763113, + 0.05875846, + 0.063741535, + 0.0609447, + 0.062923096, + 0.061072174, + 0.06363208, + 0.06420087, + 0.06207967, + 0.062252656, + 0.062823534, + 0.06353428, + 0.06304217, + 0.06528387, + 0.061899245, + 0.062377892, + 0.0636287, + 0.06358076, + 0.06275488, + 0.06503346, + 0.061556514, + 0.063839406, + 0.06246073, + 0.061890773, + 0.061340466, + 0.059371043, + 0.06015841, + 0.06289169, + 0.061485823, + 0.06227495, + 0.062264785, + 0.06239975, + 0.062895074, + 0.06374545, + 0.061236992, + 0.061852027, + 0.06423213, + 0.06392515, + 0.06014145, + 0.06428697, + 0.060686026, + 0.06354961, + 0.05985496, + 0.062677056, + 0.063709125, + 0.0621901, + 0.06230828, + 0.062765874, + 0.061910443, + 0.061705038, + 0.06363215, + 0.060811654, + 0.060879894, + 0.06282529, + 0.06075783, + 0.062227864, + 0.062732086, + 0.06360908, + 0.064911544, + 0.064153045, + 0.06169243, + 0.059889056, + 0.063457906, + 0.06365491, + 0.063651316, + 0.062058754, + 0.060719453, + 0.06034434, + 0.061166268, + 0.06277938, + 0.06292052, + 0.059201546, + 0.063161284, + 0.060935717, + 0.062285367, + 0.06371709, + 0.06281371, + 0.06152243, + 0.061419237, + 0.0601426, + 0.06225559, + 0.06233074, + 0.06439434, + 0.06165969, + 0.06076728, + 0.064408936, + 0.06293402, + 0.062192105, + 0.063760415, + 0.060685128, + 0.0644389, + 0.06314484, + 0.063121825, + 0.060743947, + 0.063668795, + 0.060660604, + 0.06271744, + 0.058328543, + 0.061411858, + 0.06189554, + 0.060102962, + 0.06431615, + 0.060885288, + 0.06374258, + 0.061255485, + 0.060424276, + 0.06279205, + 0.061910532, + 0.064550266, + 0.06110153, + 0.061334394, + 0.059249654, + 0.061582856, + 0.06166638, + 0.061446104, + 0.06369511, + 0.06147995, + 0.062022746, + 0.06435338, + 0.062320136, + 0.061921295, + 0.060921602, + 0.06372469, + 0.059915196, + 0.06441641, + 0.062130637, + 0.06195945, + 0.06069592, + 0.061742913, + 0.06417632, + 0.06350658, + 0.061873604, + 0.06091348, + 0.061492123, + 0.059304368, + 0.06412135, + 0.060104094, + 0.0637707, + 0.06258704, + 0.06350975, + 0.061825927, + 0.062071595, + 0.06430397, + 0.06437954, + 0.06046731, + 0.06410612, + 0.06244289, + 0.060224306, + 0.06141761, + 0.063339286, + 0.06368062, + 0.06120493, + 0.06137541, + 0.0594094, + 0.06267729, + 0.062760755, + 0.06237015, + 0.06215682, + 0.06228235, + 0.06282457, + 0.061552323, + 0.062088117, + 0.061403822, + 0.063143015, + 0.0618638, + 0.06165682, + 0.06284204, + 0.061789196, + 0.06313249, + 0.06179003, + 0.05904246, + 0.06340823, + 0.061967406, + 0.061541617, + 0.0637321, + 0.06195906, + 0.06358925, + 0.06425526, + 0.061410718, + 0.062804185, + 0.060278904, + 0.061348844, + 0.061958287, + 0.06306985, + 0.063841216, + 0.06377952, + 0.06095326, + 0.062317584, + 0.061831135, + 0.06287976, + 0.061591603, + 0.06335574, + 0.063638054, + 0.06300621, + 0.06183161, + 0.060828935, + 0.06424561, + 0.062007222, + 0.060872953, + 0.061587926, + 0.05841837, + 0.06090226, + 0.062893264, + 0.06187206, + 0.06366404, + 0.06215531, + 0.0640752, + 0.061135575, + 0.061393812, + 0.06363099, + 0.062193226, + 0.061784647, + 0.06169515, + 0.061955925, + 0.06236186, + 0.06310956, + 0.06434095, + 0.058605157, + 0.058241893, + 0.061688866, + 0.06202439, + 0.06189997, + 0.062434703, + 0.06232555, + 0.064332396, + 0.0618414, + 0.061250456, + 0.059787028, + 0.060930777, + 0.062661715, + 0.06380334, + 0.060944274, + 0.06418719, + 0.06348855, + 0.06316795, + 0.060639746, + 0.06297868, + 0.06227127, + 0.059747573, + 0.0640002, + 0.06148571, + 0.0607764, + 0.062461674, + 0.062380627, + 0.06278742, + 0.06357981, + 0.06163896, + 0.06327241, + 0.062274482, + 0.06381744, + 0.06347626, + 0.05827588, + 0.061138034, + 0.0632151, + 0.060229123, + 0.061270114, + 0.06267246, + 0.062692106, + 0.06231539, + 0.060769193, + 0.061368532, + 0.06075751, + 0.05929716, + 0.06179103, + 0.06419418, + 0.0624434, + 0.06092033, + 0.06116908, + 0.062283907, + 0.06174217, + 0.062652595, + 0.062773764, + 0.064602576, + 0.0629032, + 0.06079287, + 0.06312732, + 0.06256519, + 0.06322814, + 0.061317157, + 0.062558144, + 0.059749406, + 0.05980088, + 0.06146816, + 0.059700225, + 0.05925501, + 0.058709715, + 0.06263208, + 0.0635892, + 0.06127754, + 0.058073636, + 0.060395606, + 0.062980175, + 0.062253, + 0.063260496, + 0.06042692, + 0.06323225, + 0.06320897, + 0.06155976, + 0.06341107, + 0.06461691, + 0.06509862, + 0.059244685, + 0.06372436, + 0.06423378, + 0.060984038, + 0.06346932, + 0.062351085, + 0.062750496, + 0.06232268, + 0.062089987, + 0.0628622, + 0.06171485, + 0.061235707, + 0.062559515, + 0.06216701, + 0.06365875, + 0.06377454, + 0.06374699, + 0.061479732, + 0.06068172, + 0.06138454, + 0.06152995, + 0.063729495, + 0.05916323, + 0.06041075, + 0.064493924, + 0.06286075, + 0.0639641, + 0.0598729, + 0.06281571, + 0.062856816, + 0.06194866, + 0.06313351, + 0.061772507, + 0.06380168, + 0.06276818, + 0.061157312, + 0.063751616, + 0.063188456, + 0.060277607, + 0.06325138, + 0.06512414, + 0.061305415, + 0.062273193, + 0.060417358, + 0.061609734, + 0.062217303, + 0.060880408, + 0.060569335, + 0.061913934, + 0.06444328, + 0.060207047, + 0.06164716, + 0.064480714, + 0.06273292, + 0.06335622, + 0.062218167, + 0.062090505, + 0.06155317, + 0.0627704, + 0.060952976, + 0.06328552, + 0.062280163, + 0.061459187, + 0.061888028, + 0.05970221, + 0.062122222, + 0.0597407, + 0.058327984, + 0.061222583, + 0.062315445, + 0.061566573, + 0.063535646, + 0.06215149, + 0.062856615, + 0.06197932, + 0.06155451, + 0.06445024, + 0.064445965, + 0.062247932, + 0.05917135, + 0.060923513, + 0.06136525, + 0.062816456, + 0.061488234, + 0.063800745, + 0.061575547, + 0.06130228, + 0.06310618, + 0.061906185, + 0.06272591, + 0.06368562, + 0.06079202, + 0.061001748, + 0.05997783, + 0.061381154, + 0.06371883, + 0.06344037, + 0.06214938, + 0.061319023, + 0.059773207, + 0.06115178, + 0.06529025, + 0.06371798, + 0.064129755, + 0.06255588, + 0.0609593, + 0.060296375, + 0.063391164, + 0.0643208, + 0.06268255, + 0.06369317, + 0.061821412, + 0.06421077, + 0.06086433, + 0.061842367, + 0.06279925, + 0.06290217, + 0.059898548, + 0.06383062, + 0.060675934, + 0.06276366, + 0.059785724, + 0.06269804, + 0.060327776, + 0.06355544, + 0.061033607, + 0.06177277, + 0.06356359, + 0.064168565, + 0.059250753, + 0.06369532, + 0.061907504, + 0.061360195, + 0.061452452, + 0.06331769, + 0.06321592, + 0.063089624, + 0.06084608, + 0.062607065, + 0.060414653, + 0.06371047, + 0.059321288, + 0.062762626, + 0.0621076, + 0.061927795, + 0.062539496, + 0.062565565, + 0.06356398, + 0.064264365, + 0.06326479, + 0.062072203, + 0.061838903, + 0.0646521, + 0.061973702, + 0.06420902, + 0.0646915, + 0.063238904, + 0.06356952, + 0.06360718, + 0.060874417, + 0.06041922, + 0.059130058, + 0.06118578, + 0.062250856, + 0.06410639, + 0.06399072, + 0.06508581, + 0.06090668, + 0.06323747, + 0.061443124, + 0.05976701, + 0.058848005, + 0.062373713, + 0.061365414, + 0.06444588, + 0.062794365, + 0.06412159, + 0.062258974, + 0.06310725, + 0.06228619, + 0.06436208, + 0.063303985, + 0.060171414, + 0.061232474, + 0.06084174, + 0.06357324, + 0.06345992, + 0.063671134, + 0.06068351, + 0.06430609, + 0.06265557, + 0.06110075, + 0.065136455, + 0.059910703, + 0.062354036, + 0.060344014, + 0.060081746, + 0.06356441, + 0.060783196, + 0.062382977, + 0.059761215, + 0.06524583, + 0.061889578, + 0.061759107, + 0.06311186, + 0.06324214, + 0.059268165, + 0.061348207, + 0.062435903, + 0.06089429, + 0.06205786, + 0.06321492, + 0.06324156, + 0.06433786, + 0.063115135, + 0.06017287, + 0.06384268, + 0.060110845, + 0.06353545, + 0.062320348, + 0.063262254, + 0.06040462, + 0.059825834, + 0.06250469, + 0.060704, + 0.064890765, + 0.063007, + 0.060435154, + 0.06327815, + 0.06226422, + 0.059748843, + 0.06419631, + 0.059847493, + 0.061958812, + 0.062139746, + 0.06102512, + 0.063417464, + 0.06405791, + 0.06408854, + 0.061629616, + 0.062317874, + 0.06070151, + 0.062802985, + 0.064530745, + 0.061835118, + 0.06349172, + 0.06439148, + 0.06257857, + 0.0618435, + 0.0612463, + 0.059314977, + 0.061835606, + 0.06318485, + 0.05846553, + 0.060747154, + 0.06253624, + 0.06424052, + 0.06300817, + 0.0630872, + 0.06407303, + 0.06270849, + 0.06360294, + 0.06182536, + 0.0586877, + 0.06257508, + 0.06314644, + 0.06328054, + 0.06294638, + 0.06332351, + 0.061097328, + 0.062281944, + 0.060740136, + 0.061762482, + 0.06446493, + 0.060947508, + 0.06283282, + 0.060200904, + 0.05975719, + 0.061399903, + 0.06280819, + 0.062469244, + 0.061885603, + 0.06447722, + 0.061538026, + 0.059892207, + 0.061727017, + 0.062140662, + 0.060860913, + 0.063015096, + 0.061284184, + 0.06312262, + 0.061938345, + 0.06316551, + 0.060360573, + 0.064449936, + 0.06348923, + 0.06360755, + 0.064326376, + 0.06164371, + 0.059297927, + 0.061783917, + 0.06138533, + 0.06091118, + 0.062749654, + 0.063602544, + 0.06233289, + 0.064593695, + 0.05826391, + 0.06234892, + 0.06219125, + 0.061189026, + 0.058916453, + 0.06258262, + 0.061358728, + 0.06322487, + 0.06004748, + 0.06125965, + 0.06091724, + 0.062283725, + 0.062124405, + 0.06136791, + 0.060872372, + 0.0632676, + 0.060370337, + 0.06493723, + 0.06232615, + 0.06304331, + 0.061939873, + 0.05980563, + 0.060403984, + 0.064906195, + 0.06342987, + 0.06201962, + 0.062731, + 0.060963932, + 0.06344547, + 0.0609048, + 0.06363733, + 0.0628294, + 0.06383475, + 0.06265264, + 0.063161425, + 0.060189433, + 0.06246286, + 0.061266206, + 0.06319767, + 0.062539175, + 0.06061273, + 0.058746524, + 0.061816245, + 0.06374292, + 0.063560665, + 0.06317224, + 0.063223965, + 0.06303183, + 0.062025357, + 0.06335688, + 0.06375669, + 0.064367265, + 0.06306756, + 0.06368245, + 0.0640907, + 0.06307405, + 0.061457425, + 0.060045425, + 0.061761852, + 0.061942898, + 0.06431174, + 0.05982536, + 0.061410792, + 0.061968915, + 0.0620733, + 0.06280793, + 0.06380812, + 0.06142668, + 0.061766844, + 0.0649119, + 0.060845394, + 0.063008584, + 0.064966306, + 0.05803107, + 0.062541865, + 0.06417117, + 0.060877066, + 0.06134829, + 0.060287263, + 0.06326362, + 0.061103053, + 0.06101631, + 0.060647454, + 0.06449227, + 0.06128844, + 0.06360569, + 0.06276879, + 0.06486922, + 0.06345363, + 0.06441076, + 0.060451847, + 0.0627912, + 0.061479166, + 0.06382031, + 0.06380985, + 0.059796836, + 0.060898013, + 0.061231285, + 0.061917424, + 0.0632277, + 0.061581664, + 0.059430394, + 0.06280849, + 0.060878523, + 0.06413634, + 0.061140038, + 0.06255095, + 0.06420944, + 0.061289538, + 0.06400026, + 0.06187256, + 0.06394408, + 0.06375153, + 0.06455168, + 0.06363476, + 0.06296707, + 0.063756734, + 0.060728095, + 0.060522046, + 0.060161687, + 0.06463918, + 0.064323545, + 0.05979955, + 0.062341843, + 0.06195332, + 0.061778024, + 0.06386776, + 0.06293185, + 0.06279565, + 0.06321745, + 0.06185388, + 0.06234759, + 0.061229877, + 0.06357985, + 0.05862019, + 0.061321087, + 0.060375992, + 0.0618004, + 0.061773814, + 0.06298199, + 0.062774315, + 0.061376244, + 0.06185918, + 0.06464773, + 0.061283413, + 0.06282341, + 0.06262298, + 0.063581094, + 0.06085791, + 0.06366299, + 0.06178756, + 0.06369349, + 0.06303738, + 0.060733046 ], "implementation": "go-libp2p", "version": "v0.27", diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index 8323a6a3c..9ad725653 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -17,7 +17,7 @@ async function main(clientPublicIP: string, serverPublicIP: string) { uploadBytes: 100 << 20, downloadBytes: 0, unit: "bit/s", - iterations: 1, + iterations: 10, }), runBenchmarkAcrossVersions({ name: "Single Connection throughput – Download 100 MiB", @@ -26,7 +26,7 @@ async function main(clientPublicIP: string, serverPublicIP: string) { uploadBytes: 0, downloadBytes: 100 << 20, unit: "bit/s", - iterations: 1, + iterations: 10, }), runBenchmarkAcrossVersions({ name: "Connection establishment + 1 byte round trip latencies", @@ -35,7 +35,7 @@ async function main(clientPublicIP: string, serverPublicIP: string) { uploadBytes: 1, downloadBytes: 1, unit: "s", - iterations: 100, + iterations: 1000, }), ], }; From 2964b829201df5c309839848c86e9be93c90e32c Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 11 May 2023 15:46:10 +0900 Subject: [PATCH 076/143] Document command line flags in perf/README --- perf/README.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/perf/README.md b/perf/README.md index 4b05627dd..69031d1f5 100644 --- a/perf/README.md +++ b/perf/README.md @@ -28,5 +28,19 @@ Benchmark results can be visualized with https://observablehq.com/@mxinden-works ## Adding a new implementation -1. Add implementation to `impl/`. +1. Add implementation to `impl/`. Requirements for the binary: + - Running as a libp2p-perf server + - Command line flags + - `--run-server` + - `--secret-key-seed` unsigned integer to be used as a seed by libp2p-based implementations. Likely to go away in future iterations. + - Running as a libp2p-perf client + - Input via command line + - `--server-ip-address` + - `--transport` (see `runner/versions.ts` for possible variants) + - `--upload-bytes` number of bytes to upload per stream. + - `--download-bytes` number of bytes to upload per stream. + - Output + - Logging MUST go to stderr. + - Measurement output is printed to stdout as JSON in the form of `{ latencies: [ 1.0, 42.0 ]}`. + 2. Reference implementation in `runner/src/versions.ts`. From 1498fc1bf4b62f5fb23106dd3f53c86e1efd617a Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 11 May 2023 15:46:56 +0900 Subject: [PATCH 077/143] Remove perf/dashboard --- perf/dashboard/README.md | 62 ---------------------------------------- 1 file changed, 62 deletions(-) delete mode 100644 perf/dashboard/README.md diff --git a/perf/dashboard/README.md b/perf/dashboard/README.md deleted file mode 100644 index fce73a9ad..000000000 --- a/perf/dashboard/README.md +++ /dev/null @@ -1,62 +0,0 @@ -# Perf Dashboard [wip] - -This is an outline of what I'd like to see our perf dashboard look like. - -A lot of this is inspired by the [MsQuic -dashboard](https://microsoft.github.io/msquic/). Please look at that first. - -For each combination of libp2p implementation, version, and transport we would -have numbers that outline: -1. Download/Upload throughput -2. Request latency -3. Requests per second (for some request/response protocol) -4. Handshakes per second (useful to identify overhead in connection - initialization). -5. Memory usage. - -The y axis on the graphs is the value for the above tests, the x axis is the -specific version. Different lines represent different implementation+transports. - -The dashboards should be selectable and filterable. - -# Other transports (iperf/http) - -We have to be careful to compare apples to apples. A raw iperf number might be -confusing here because no application will ever hit those numbers since they -will at least want some encryption in their connection. I would suggest not -having this or an HTTP comparison. Having HTTPS might be okay. - -# Example dashboard - -https://observablehq.com/@realmarcopolo/libp2p-perf - -The dashboard automatically pulls data from this repo to display it. - -It currently pulls example-data.json. The schema of this data is defined in -`benchmarks.schema.json` and `benchmark-result-type.ts`. - -# Benchmark runner - -This is the thing that runs the benchmark binaries and produces the benchmark -data (that matches the benchmarks.schema.json/benchmark-result-type.ts) - -# Benchmark binary - -This is per implementation. It's a binary that accepts the following flags: - -| Flag | description | -| -------------------- | ------------------------------------------------------ | -| parallel_connections | number of parallel connections to use | -| upload_bytes | number of bytes to upload to server per connection | -| download_bytes | number of bytes to download from server per connection | -| n_times | number of times to do the perf round trip | -| close_connection | bool. Close the connection after a perf round trip | - -The binary should report the following: - -* Stats on the length of the run: - * Total, Avg, Min, Max, p95 -* Round trips per second: - * Avg, Min, Max, p95 - -Maybe more? TODO... From 909217e42d04d0f86da86e86236fc0b4b3654986 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 11 May 2023 16:03:00 +0900 Subject: [PATCH 078/143] Remove --n-times flag Dead code as of now. Potentially to be reintroduced in future iterations. --- perf/impl/go-libp2p/v0.27/main.go | 15 ++++------ perf/impl/https/v0.1/main.go | 43 +++++++++++++--------------- perf/impl/rust-libp2p/v0.51/Makefile | 2 +- perf/runner/src/index.ts | 3 +- 4 files changed, 28 insertions(+), 35 deletions(-) diff --git a/perf/impl/go-libp2p/v0.27/main.go b/perf/impl/go-libp2p/v0.27/main.go index 327f9e6fd..7354f8a8c 100644 --- a/perf/impl/go-libp2p/v0.27/main.go +++ b/perf/impl/go-libp2p/v0.27/main.go @@ -20,7 +20,6 @@ func main() { secretKeySeed := flag.Uint64("secret-key-seed", 0, "Server secret key seed") uploadBytes := flag.Uint64("upload-bytes", 0, "Upload bytes") downloadBytes := flag.Uint64("download-bytes", 0, "Download bytes") - nTimes := flag.Uint64("n-times", 0, "N times") flag.Parse() @@ -71,16 +70,14 @@ func main() { panic(err) } - times := make([]time.Duration, 0, *nTimes) + times := make([]time.Duration, 0, 1) - for i := 0; uint64(i) < *nTimes; i++ { - start := time.Now() - err := perf.RunPerf(context.Background(), serverInfo.ID, uint64(*uploadBytes), uint64(*downloadBytes)) - if err != nil { - panic(err) - } - times = append(times, time.Since(start)) + start := time.Now() + err = perf.RunPerf(context.Background(), serverInfo.ID, uint64(*uploadBytes), uint64(*downloadBytes)) + if err != nil { + panic(err) } + times = append(times, time.Since(start)) // float32 because json timesS := make([]float32, 0, len(times)) diff --git a/perf/impl/https/v0.1/main.go b/perf/impl/https/v0.1/main.go index cfb9ba1c7..09dca12f3 100644 --- a/perf/impl/https/v0.1/main.go +++ b/perf/impl/https/v0.1/main.go @@ -54,8 +54,8 @@ func handleRequest(w http.ResponseWriter, r *http.Request) { } } -func runClient(serverAddr string, uploadBytes, downloadBytes, nTimes uint64) ([]time.Duration, error) { - durations := make([]time.Duration, nTimes) +func runClient(serverAddr string, uploadBytes, downloadBytes uint64) ([]time.Duration, error) { + durations := make([]time.Duration, 1) client := &http.Client{ Transport: &http.Transport{ @@ -68,25 +68,23 @@ func runClient(serverAddr string, uploadBytes, downloadBytes, nTimes uint64) ([] reqBody := make([]byte, 8+uploadBytes) binary.BigEndian.PutUint64(reqBody, uint64(downloadBytes)) - for i := 0; uint64(i) < nTimes; i++ { - startTime := time.Now() - resp, err := client.Post(fmt.Sprintf("https://%s/", serverAddr), "application/octet-stream", bytes.NewReader(reqBody)) - if err != nil { - return durations, err - } - - respBody, err := ioutil.ReadAll(resp.Body) - if err != nil { - fmt.Printf("Error reading response: %v\n", err) - return durations, err - } else if uint64(len(respBody)) != downloadBytes { - fmt.Printf("Expected %d bytes in response, but received %d\n", downloadBytes, len(respBody)) - return durations, err - } - resp.Body.Close() + startTime := time.Now() + resp, err := client.Post(fmt.Sprintf("https://%s/", serverAddr), "application/octet-stream", bytes.NewReader(reqBody)) + if err != nil { + return durations, err + } - durations[i] = time.Since(startTime) + respBody, err := ioutil.ReadAll(resp.Body) + if err != nil { + fmt.Printf("Error reading response: %v\n", err) + return durations, err + } else if uint64(len(respBody)) != downloadBytes { + fmt.Printf("Expected %d bytes in response, but received %d\n", downloadBytes, len(respBody)) + return durations, err } + resp.Body.Close() + + durations[0] = time.Since(startTime) return durations, nil } @@ -153,7 +151,6 @@ func main() { _ = flag.Uint64("secret-key-seed", 0, "Server secret key seed") uploadBytes := flag.Uint64("upload-bytes", 0, "Upload bytes") downloadBytes := flag.Uint64("download-bytes", 0, "Download bytes") - nTimes := flag.Uint64("n-times", 0, "N times") flag.Parse() if *runServer { @@ -181,13 +178,13 @@ func main() { } } else { // Client mode - if *serverIPAddr == "" || *nTimes <= 0 { - fmt.Println("Error: Please provide valid server-address and n-times flags for client mode.") + if *serverIPAddr == "" { + fmt.Println("Error: Please provide valid server-address flags for client mode.") return } // Run the client and print the results - durations, err := runClient(fmt.Sprintf("%s:%d", *serverIPAddr, 4001), *uploadBytes, *downloadBytes, *nTimes) + durations, err := runClient(fmt.Sprintf("%s:%d", *serverIPAddr, 4001), *uploadBytes, *downloadBytes) if err != nil { panic(err) } diff --git a/perf/impl/rust-libp2p/v0.51/Makefile b/perf/impl/rust-libp2p/v0.51/Makefile index bf2e55f8a..e15e67780 100644 --- a/perf/impl/rust-libp2p/v0.51/Makefile +++ b/perf/impl/rust-libp2p/v0.51/Makefile @@ -1,5 +1,5 @@ image_name := rust-v0.51 -commitSha := f515473f7f94597d55056df88cc9f784c35d202f +commitSha := 59d8f3f02ce0b72320202bf43c84a8060f3db545 all: perf diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index 9ad725653..7247e185c 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -129,8 +129,7 @@ interface Latencies { function runClient(args: ArgsRunBenchmark): Latencies { console.error(`=== Starting client ${args.implementation}/${args.id}/${args.transportStack}`); - // TODO: Remove static --n-times. - const perfCMD = `./impl/${args.implementation}/${args.id}/perf --server-ip-address ${args.serverPublicIP} --transport ${args.transportStack} --upload-bytes ${args.uploadBytes} --download-bytes ${args.downloadBytes} --n-times 1` + const perfCMD = `./impl/${args.implementation}/${args.id}/perf --server-ip-address ${args.serverPublicIP} --transport ${args.transportStack} --upload-bytes ${args.uploadBytes} --download-bytes ${args.downloadBytes}` const cmd = `ssh ec2-user@${args.clientPublicIP} 'for i in {1..${args.iterations}}; do ${perfCMD}; done'` const stdout = execCommand(cmd); From 0e7c64ec191cc7a5b707d60d53691e45acd9b00d Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 11 May 2023 17:01:24 +0900 Subject: [PATCH 079/143] Rename rust-libp2p v0.51 to v0.52 Version on rust-libp2p `perf` branch changed in the meantime. --- perf/impl/rust-libp2p/{v0.51 => v0.52}/Makefile | 1 - perf/runner/src/versions.ts | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) rename perf/impl/rust-libp2p/{v0.51 => v0.52}/Makefile (96%) diff --git a/perf/impl/rust-libp2p/v0.51/Makefile b/perf/impl/rust-libp2p/v0.52/Makefile similarity index 96% rename from perf/impl/rust-libp2p/v0.51/Makefile rename to perf/impl/rust-libp2p/v0.52/Makefile index e15e67780..0370d10da 100644 --- a/perf/impl/rust-libp2p/v0.51/Makefile +++ b/perf/impl/rust-libp2p/v0.52/Makefile @@ -1,4 +1,3 @@ -image_name := rust-v0.51 commitSha := 59d8f3f02ce0b72320202bf43c84a8060f3db545 all: perf diff --git a/perf/runner/src/versions.ts b/perf/runner/src/versions.ts index 0abf377b4..913b82af8 100644 --- a/perf/runner/src/versions.ts +++ b/perf/runner/src/versions.ts @@ -6,7 +6,7 @@ export type Version = { export const versions: Array = [ { - id: "v0.51", + id: "v0.52", implementation: "rust-libp2p", transportStacks: ["tcp", "quic-v1"] }, From 6fa2b0014796bafcd06fbd44e0e37d0872a0983c Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 11 May 2023 17:33:41 +0900 Subject: [PATCH 080/143] Add rust-libp2p v0.52-quinn based on upstream quinn Uses https://github.com/libp2p/rust-libp2p/pull/3454 --- perf/impl/rust-libp2p/v0.52-quinn/Makefile | 22 + perf/runner/benchmark-results.json | 5924 +++----------------- perf/runner/src/index.ts | 6 +- perf/runner/src/versions.ts | 5 + 4 files changed, 848 insertions(+), 5109 deletions(-) create mode 100644 perf/impl/rust-libp2p/v0.52-quinn/Makefile diff --git a/perf/impl/rust-libp2p/v0.52-quinn/Makefile b/perf/impl/rust-libp2p/v0.52-quinn/Makefile new file mode 100644 index 000000000..cab8e16ec --- /dev/null +++ b/perf/impl/rust-libp2p/v0.52-quinn/Makefile @@ -0,0 +1,22 @@ +commitSha := d795f5c29271aa0af117f8e599ef07c2b874f2ad + +all: perf + +perf: rust-libp2p-${commitSha}/target/release/perf + cp ./rust-libp2p-${commitSha}/target/release/perf . + +rust-libp2p-${commitSha}/target/release/perf: rust-libp2p-${commitSha} + docker run --rm --user "$(shell id -u):$(shell id -g)" -v "$(shell pwd)/rust-libp2p-${commitSha}":/usr/src/myapp -w /usr/src/myapp rust:1.69 cargo build --release --bin perf + +rust-libp2p-${commitSha}: rust-libp2p-${commitSha}.zip + unzip -o rust-libp2p-${commitSha}.zip + +rust-libp2p-${commitSha}.zip: +# TODO: Change to libp2p + wget -O $@ "https://github.com/mxinden/rust-libp2p/archive/${commitSha}.zip" + +clean: + rm rust-libp2p-*.zip + rm -rf rust-libp2p-* + +.PHONY: all clean run diff --git a/perf/runner/benchmark-results.json b/perf/runner/benchmark-results.json index b48a1b8ea..5650ccd39 100644 --- a/perf/runner/benchmark-results.json +++ b/perf/runner/benchmark-results.json @@ -6,50 +6,59 @@ "results": [ { "result": [ - 24297848.965686653, - 21923293.0555712, - 21673455.25199101, - 20648639.851346083, - 23050220.29519616, - 23354010.21369026, - 22609840.711642783, - 23737695.901063852, - 24181213.226368435, - 23613709.527208574 + 23701616.745669935, + 23564988.770569358, + 23768107.96211605, + 23895253.60271939, + 24121270.555884488 ], "implementation": "rust-libp2p", - "version": "v0.51", + "version": "v0.52", "transportStack": "tcp" }, { "result": [ - 48015820.5309386, - 55310640.224539585, - 61938887.22992043, - 98827657.42509778, - 45395940.92430345, - 100603753.41099809, - 71979617.00712337, - 116886172.67991772, - 84047998.03957845, - 59653860.205058016 + 60527725.15704369, + 112086701.2038308, + 59383136.817177296, + 93718796.0597939, + 53484638.28892967 ], "implementation": "rust-libp2p", - "version": "v0.51", + "version": "v0.52", "transportStack": "quic-v1" }, { "result": [ - 294969298.9385426, - 309328415.11726046, - 310148492.97909164, - 310234806.0960345, - 307254422.1394683, - 294533881.77456516, - 326936373.0028434, - 321825133.404075, - 316732380.34808207, - 309343917.2322349 + 21659297.726486947, + 23341807.105683643, + 24440617.614624586, + 18126934.246367745, + 23461274.56785629 + ], + "implementation": "rust-libp2p", + "version": "v0.52-quinn", + "transportStack": "tcp" + }, + { + "result": [ + 598711379.7225211, + 591781449.138027, + 582198651.4344352, + 590642765.9369774, + 592932026.4174708 + ], + "implementation": "rust-libp2p", + "version": "v0.52-quinn", + "transportStack": "quic-v1" + }, + { + "result": [ + 320123546.2157083, + 287017747.27790856, + 289747311.88868153, + 304736385.6227017, + 301275270.28947985 ], "implementation": "https", "version": "v0.1", @@ -57,16 +66,11 @@ }, { "result": [ - 271976899.8501771, - 283430038.77114886, - 270248612.31371295, - 260217859.2738469, - 274343812.12800866, - 291368790.4747234, - 268021151.04887787, - 271109007.23476994, - 274563664.2702893, - 295567992.37695616 + 261420844.58865663, + 258947455.50396326, + 296402214.2340132, + 265921548.55804124, + 259887446.03497446 ], "implementation": "go-libp2p", "version": "v0.27", @@ -74,16 +78,11 @@ }, { "result": [ - 633162414.0126168, - 649114453.9991273, - 623913167.8159407, - 617251972.3516471, - 626352210.0723246, - 602895557.568256, - 610521089.4347842, - 619133118.5123696, - 631877934.9725114, - 606560852.5597066 + 628832315.7402982, + 594272922.0905726, + 639138563.3956187, + 611439043.7343302, + 611676769.0290568 ], "implementation": "go-libp2p", "version": "v0.27", @@ -97,50 +96,59 @@ "results": [ { "result": [ - 23931659.643195994, - 22389029.16893598, - 23506058.158813752, - 24431439.92130016, - 19141195.485931523, - 24121731.163703118, - 20853926.38317422, - 21303279.463220824, - 23916906.64143749, - 24163076.553794984 + 21859218.35949858, + 22991658.49578649, + 22903708.736048177, + 21645182.48414714, + 23933206.451734085 + ], + "implementation": "rust-libp2p", + "version": "v0.52", + "transportStack": "tcp" + }, + { + "result": [ + 61102162.20841612, + 54729708.83313513, + 56295578.18206124, + 36830452.12378539, + 49140084.48640002 ], "implementation": "rust-libp2p", - "version": "v0.51", + "version": "v0.52", + "transportStack": "quic-v1" + }, + { + "result": [ + 22004219.352436535, + 20360608.348313875, + 20307238.416551843, + 23224103.48448984, + 21804939.700141765 + ], + "implementation": "rust-libp2p", + "version": "v0.52-quinn", "transportStack": "tcp" }, { "result": [ - 29907431.52825819, - 31563154.76576576, - 27263031.31975764, - 47989509.37945617, - 35624839.751651496, - 44701337.1676974, - 18458648.78085266, - 29327317.117728654, - 42888018.68802828, - 39632293.52634057 + 565206615.0914382, + 552048564.9754207, + 566336025.6309482, + 536528916.6219866, + 550925357.413946 ], "implementation": "rust-libp2p", - "version": "v0.51", + "version": "v0.52-quinn", "transportStack": "quic-v1" }, { "result": [ - 282796314.3671489, - 290646906.51175123, - 263808325.50556374, - 286250896.55929726, - 288718359.6148498, - 297905402.35799825, - 268806331.32099956, - 262884718.77087423, - 288606312.82271475, - 283002944.2588033 + 290975609.214642, + 285034167.642309, + 270358487.8064848, + 290322884.3128471, + 301395769.4258094 ], "implementation": "https", "version": "v0.1", @@ -148,16 +156,11 @@ }, { "result": [ - 286495714.9829712, - 279471522.606618, - 277632014.25100857, - 293305408.16950905, - 279802455.372108, - 282629260.2439027, - 252406959.8130326, - 265896505.9870716, - 281306417.3321556, - 279630398.6081096 + 266913680.74652013, + 249876426.17774028, + 289400328.90854543, + 283239214.10528994, + 273524793.9851862 ], "implementation": "go-libp2p", "version": "v0.27", @@ -165,16 +168,11 @@ }, { "result": [ - 613134750.9353501, - 628762416.4643462, - 614806408.6504056, - 627440373.9237688, - 602642613.2850794, - 613932595.8479267, - 628395688.2954804, - 634345136.7826666, - 637952373.0214682, - 628142064.5341487 + 622977854.4751083, + 609599375.1550595, + 602416788.7738562, + 618645789.0075171, + 632490240.0137044 ], "implementation": "go-libp2p", "version": "v0.27", @@ -188,3020 +186,534 @@ "results": [ { "result": [ - 0.118708025, - 0.120662575, - 0.12077141, - 0.122032007, - 0.12679386, - 0.127471021, - 0.127703286, - 0.124456247, - 0.126256011, - 0.127428117, - 0.128788393, - 0.124595846, - 0.126765333, - 0.120161089, - 0.128168983, - 0.130045079, - 0.124847787, - 0.120375786, - 0.126149762, - 0.121507935, - 0.123929109, - 0.126584443, - 0.124447938, - 0.124345444, - 0.127087835, - 0.122631148, - 0.120826701, - 0.122239615, - 0.12653323, - 0.126088594, - 0.12211283, - 0.120554862, - 0.122688752, - 0.122637588, - 0.123746209, - 0.128505612, - 0.119691029, - 0.127658395, - 0.124587116, - 0.122507846, - 0.121651037, - 0.126443226, - 0.125645957, - 0.125356695, - 0.12508606, - 0.122325756, - 0.122489518, - 0.124691128, - 0.117970015, - 0.125844691, - 0.128364252, - 0.127122802, - 0.125322411, - 0.120463484, - 0.11772758, - 0.127847295, - 0.125020985, - 0.121457264, - 0.121668718, - 0.128815939, - 0.12546786, - 0.12092391, - 0.124230375, - 0.121840079, - 0.125565518, - 0.126575812, - 0.124049459, - 0.125619629, - 0.126204958, - 0.127695068, - 0.128820585, - 0.124046756, - 0.122700304, - 0.127424603, - 0.127950874, - 0.123313375, - 0.123691833, - 0.125756906, - 0.122742648, - 0.124052248, - 0.125057288, - 0.129164301, - 0.127552354, - 0.123751195, - 0.125162921, - 0.12508124, - 0.127162664, - 0.122878798, - 0.121421035, - 0.127226063, - 0.123386515, - 0.123162674, - 0.124578475, - 0.128678368, - 0.125575896, - 0.122732913, - 0.125365954, - 0.125408901, - 0.121266582, - 0.123748713, - 0.125357876, - 0.122400784, - 0.12813542, - 0.12616047, - 0.123170462, - 0.121823135, - 0.118384558, - 0.125197619, - 0.122086086, - 0.124248491, - 0.12322321, - 0.12343038, - 0.126588438, - 0.122080794, - 0.12051462, - 0.125885823, - 0.126471138, - 0.120803506, - 0.122824592, - 0.121590597, - 0.125033763, - 0.129228072, - 0.121651954, - 0.120225807, - 0.123019678, - 0.124525159, - 0.128295908, - 0.126310442, - 0.119700262, - 0.124729085, - 0.125501854, - 0.130710789, - 0.126842895, - 0.127503638, - 0.128660203, - 0.117822177, - 0.127250142, - 0.128082319, - 0.121559025, - 0.119798573, - 0.123236233, - 0.128433038, - 0.126820261, - 0.128878975, - 0.123451981, - 0.125856069, - 0.122498154, - 0.12151196, - 0.125353686, - 0.126887558, - 0.127173614, - 0.118470161, - 0.124264679, - 0.130104999, - 0.124676678, - 0.123821018, - 0.130664593, - 0.121481383, - 0.126264708, - 0.124020668, - 0.128515466, - 0.126762388, - 0.123192222, - 0.125533746, - 0.124787269, - 0.119874023, - 0.124173855, - 0.121524975, - 0.129321582, - 0.128294448, - 0.130031141, - 0.124263198, - 0.126759214, - 0.129250536, - 0.118551014, - 0.126320116, - 0.124223076, - 0.120577845, - 0.124484885, - 0.128548059, - 0.122795707, - 0.124533399, - 0.127014953, - 0.118749467, - 0.119451069, - 0.119713436, - 0.127614323, - 0.125727012, - 0.121612066, - 0.125468601, - 0.122883611, - 0.12201574, - 0.123054948, - 0.125455077, - 0.119418582, - 0.123583782, - 0.122735563, - 0.122881766, - 0.122697339, - 0.127380866, - 0.126882196, - 0.122456005, - 0.118151034, - 0.125599191, - 0.124438903, - 0.12661281, - 0.125406779, - 0.128615534, - 0.123357254, - 0.121754512, - 0.119024195, - 0.124562114, - 0.127618854, - 0.122793415, - 0.11756141, - 0.126656776, - 0.122907544, - 0.126787245, - 0.12833515, - 0.118627955, - 0.127416851, - 0.12436124, - 0.124889796, - 0.125945733, - 0.128859302, - 0.124007921, - 0.119686557, - 0.123732717, - 0.124347037, - 0.127730455, - 0.124986743, - 0.125823057, - 0.124722544, - 0.123611282, - 0.122789136, - 0.12688706, - 0.125288333, - 0.123141177, - 0.117551557, - 0.123979958, - 0.125871081, - 0.121379819, - 0.127712625, - 0.127231455, - 0.12650458, - 0.121119709, - 0.122816276, - 0.128649107, - 0.128850058, - 0.121321224, - 0.122361302, - 0.129035606, - 0.123317588, - 0.124701733, - 0.123005721, - 0.128695215, - 0.12684932, - 0.119553361, - 0.124199946, - 0.128187433, - 0.12185619, - 0.125065404, - 0.124123695, - 0.120282288, - 0.121731667, - 0.122419776, - 0.125521889, - 0.126512338, - 0.128669831, - 0.126115017, - 0.126412252, - 0.127238272, - 0.126808225, - 0.128631127, - 0.129319925, - 0.125399222, - 0.127903976, - 0.128804396, - 0.125618085, - 0.118882093, - 0.121209951, - 0.127249784, - 0.120187602, - 0.121931453, - 0.127155943, - 0.122429256, - 0.123409502, - 0.122504741, - 0.129989166, - 0.122145042, - 0.126937676, - 0.126972719, - 0.120692021, - 0.125696201, - 0.124660727, - 0.117844194, - 0.129356703, - 0.123823274, - 0.126521087, - 0.128965648, - 0.117390969, - 0.123514944, - 0.122392453, - 0.121935222, - 0.12756497, - 0.123542481, - 0.129943382, - 0.125515099, - 0.125728489, - 0.123740808, - 0.123487472, - 0.123046592, - 0.129047833, - 0.122876118, - 0.121986615, - 0.127786389, - 0.122316263, - 0.125890442, - 0.125771029, - 0.127109217, - 0.122519393, - 0.124374593, - 0.127475971, - 0.12841399, - 0.123537575, - 0.120339219, - 0.127332273, - 0.125507393, - 0.123801009, - 0.126589086, - 0.125250908, - 0.125807669, - 0.123474058, - 0.125156174, - 0.122130043, - 0.118624929, - 0.12374655, - 0.128478434, - 0.123204801, - 0.124430866, - 0.123658112, - 0.120494037, - 0.119714225, - 0.123213917, - 0.120615621, - 0.128174296, - 0.1226347, - 0.125389929, - 0.122287528, - 0.125457602, - 0.12446302, - 0.126251889, - 0.121502582, - 0.121559097, - 0.123194607, - 0.12138731, - 0.125391952, - 0.124398384, - 0.118450586, - 0.12797538, - 0.123256652, - 0.121917324, - 0.124193694, - 0.126767608, - 0.125145827, - 0.119557915, - 0.121883824, - 0.125269004, - 0.121650708, - 0.127348147, - 0.120850509, - 0.121883313, - 0.120661541, - 0.126544364, - 0.129665741, - 0.128015657, - 0.122706812, - 0.124696905, - 0.126537264, - 0.127582166, - 0.126088394, - 0.117669263, - 0.128862292, - 0.120629074, - 0.126972384, - 0.118719469, - 0.12854843, - 0.124496807, - 0.127609562, - 0.128177356, - 0.116743496, - 0.124631597, - 0.12556167, - 0.121610203, - 0.1271917, - 0.124742791, - 0.124687169, - 0.121643251, - 0.123609053, - 0.124607956, - 0.126043977, - 0.124775413, - 0.121618859, - 0.121765353, - 0.122560934, - 0.12627415, - 0.124218292, - 0.121637179, - 0.121441486, - 0.123172533, - 0.116086712, - 0.123396818, - 0.123397175, - 0.121071348, - 0.122808139, - 0.122640596, - 0.125466402, - 0.125758782, - 0.122730715, - 0.124810406, - 0.124107244, - 0.126649347, - 0.122686957, - 0.121606572, - 0.124531283, - 0.127690974, - 0.127621042, - 0.123592264, - 0.125437923, - 0.128248422, - 0.118492231, - 0.12814658, - 0.120478989, - 0.129087989, - 0.123796032, - 0.128364445, - 0.127642972, - 0.121363946, - 0.125370163, - 0.124506184, - 0.128365308, - 0.126320579, - 0.118599321, - 0.122432984, - 0.128793055, - 0.124908536, - 0.121700574, - 0.126190845, - 0.124303329, - 0.124427597, - 0.121768009, - 0.12145053, - 0.124591516, - 0.125149043, - 0.120107462, - 0.12144375, - 0.12620275, - 0.123140928, - 0.122833321, - 0.124768853, - 0.123952554, - 0.123675231, - 0.127788006, - 0.127365369, - 0.12298062, - 0.12187875, - 0.119704229, - 0.128194999, - 0.126878729, - 0.124284258, - 0.12397844, - 0.125826281, - 0.127090371, - 0.121701266, - 0.11843701, - 0.126240394, - 0.121935838, - 0.121749631, - 0.128317138, - 0.120530313, - 0.124095521, - 0.12300321, - 0.122640858, - 0.12715408, - 0.121425435, - 0.124091821, - 0.12355822, - 0.126694163, - 0.126344139, - 0.122369002, - 0.121919684, - 0.124335537, - 0.129083543, - 0.123586821, - 0.120713705, - 0.126267739, - 0.120734878, - 0.125496993, - 0.125220125, - 0.126856802, - 0.117644961, - 0.120789424, - 0.121800139, - 0.124910586, - 0.122091305, - 0.128638447, - 0.126087312, - 0.123305591, - 0.122750389, - 0.116614303, - 0.125475119, - 0.122465428, - 0.12846518, - 0.121882168, - 0.122254546, - 0.127411837, - 0.11960812, - 0.122404237, - 0.128508182, - 0.125171846, - 0.124712012, - 0.125459089, - 0.123329175, - 0.124672436, - 0.125259747, - 0.128858257, - 0.126468237, - 0.124368451, - 0.130351368, - 0.127369262, - 0.121500793, - 0.123598792, - 0.122532301, - 0.122571628, - 0.122799141, - 0.124624203, - 0.12499586, - 0.121482448, - 0.12624135, - 0.12869017, - 0.121448593, - 0.122976252, - 0.128528206, - 0.127439097, - 0.125220187, - 0.117347656, - 0.126560977, - 0.126574602, - 0.1264887, - 0.1267374, - 0.123171611, - 0.127413182, - 0.121474389, - 0.127160425, - 0.122704632, - 0.126746832, - 0.122827553, - 0.120944239, - 0.12358963, - 0.120540575, - 0.123428224, - 0.127479287, - 0.120795305, - 0.1242035, - 0.120840548, - 0.124040857, - 0.127436257, - 0.126717277, - 0.1233267, - 0.124330677, - 0.127384514, - 0.126018032, - 0.128209784, - 0.128380457, - 0.117926897, - 0.126539691, - 0.127666137, - 0.122362602, - 0.121349405, - 0.120606255, - 0.127245569, - 0.128070949, - 0.120689964, - 0.121428688, - 0.123703771, - 0.124458828, - 0.127023436, - 0.120055223, - 0.11845161, - 0.126670745, - 0.123207839, - 0.12536674, - 0.128027806, - 0.119678191, - 0.12421942, - 0.128393847, - 0.123170968, - 0.126362818, - 0.120421532, - 0.125358841, - 0.120850771, - 0.121604425, - 0.119270007, - 0.12168543, - 0.127830932, - 0.124881268, - 0.116318907, - 0.12577126, - 0.121497322, - 0.127337352, - 0.121701358, - 0.126407904, - 0.119584828, - 0.121911832, - 0.121276192, - 0.130158126, - 0.120556224, - 0.117555729, - 0.127171708, - 0.127195048, - 0.127026879, - 0.124852314, - 0.124936895, - 0.124937796, - 0.129108752, - 0.118748289, - 0.116190264, - 0.126111907, - 0.126969363, - 0.12056375, - 0.120761434, - 0.122067771, - 0.130359562, - 0.128372694, - 0.123860983, - 0.121794642, - 0.126248524, - 0.120535125, - 0.126531058, - 0.130068954, - 0.11847431, - 0.128594568, - 0.122891794, - 0.12738214, - 0.120833265, - 0.121898448, - 0.127075573, - 0.126263808, - 0.124968507, - 0.123397542, - 0.124143292, - 0.127479703, - 0.120592492, - 0.119875056, - 0.128460716, - 0.123958736, - 0.127568277, - 0.127781663, - 0.128133478, - 0.123716792, - 0.118598284, - 0.121407372, - 0.130970191, - 0.120786601, - 0.123322656, - 0.124764632, - 0.124661859, - 0.124612326, - 0.12548674, - 0.129476433, - 0.124168595, - 0.128055817, - 0.118358365, - 0.120641944, - 0.124224126, - 0.126290823, - 0.125278809, - 0.125901407, - 0.12685111, - 0.1253736, - 0.122164583, - 0.128690753, - 0.127187753, - 0.125706458, - 0.127445161, - 0.127187643, - 0.125775951, - 0.122038696, - 0.128658776, - 0.12637352, - 0.122914699, - 0.128283749, - 0.130492569, - 0.122256899, - 0.119737936, - 0.128993444, - 0.121581071, - 0.120487116, - 0.127292314, - 0.122585767, - 0.126272892, - 0.124786883, - 0.128370112, - 0.124320778, - 0.127123773, - 0.118116483, - 0.12030875, - 0.124343081, - 0.121268323, - 0.125640672, - 0.117906432, - 0.121493772, - 0.128157537, - 0.125868086, - 0.125282702, - 0.122109776, - 0.128047162, - 0.127368283, - 0.119750144, - 0.124888294, - 0.123702031, - 0.120321041, - 0.125878322, - 0.125966197, - 0.122599236, - 0.122242553, - 0.126575059, - 0.120624012, - 0.121512001, - 0.123488425, - 0.123344484, - 0.128709612, - 0.123603417, - 0.120225376, - 0.128993678, - 0.123421664, - 0.122817232, - 0.128531938, - 0.120735704, - 0.125373799, - 0.130442401, - 0.127212341, - 0.125431325, - 0.128614419, - 0.119823355, - 0.126060956, - 0.124071242, - 0.126025494, - 0.123664993, - 0.125874931, - 0.125410462, - 0.125341629, - 0.123561612, - 0.121348819, - 0.126519083, - 0.129641126, - 0.128369736, - 0.1270326, - 0.122643411, - 0.130335636, - 0.122884658, - 0.118272182, - 0.123533369, - 0.12609263, - 0.121682292, - 0.120629068, - 0.120569267, - 0.123580159, - 0.120203402, - 0.126185112, - 0.121444203, - 0.121475969, - 0.123075684, - 0.123682459, - 0.124589355, - 0.128951833, - 0.125675886, - 0.126936425, - 0.124901865, - 0.123974106, - 0.126529423, - 0.121974594, - 0.125566367, - 0.126057913, - 0.124137342, - 0.12229817, - 0.127670474, - 0.127469237, - 0.123217858, - 0.12568672, - 0.122654888, - 0.125534722, - 0.118792222, - 0.125462763, - 0.124721141, - 0.121508708, - 0.128311548, - 0.126842334, - 0.118496367, - 0.125859987, - 0.126248144, - 0.123137315, - 0.125300683, - 0.122439069, - 0.129392165, - 0.125849052, - 0.129845989, - 0.126703274, - 0.125190979, - 0.128519545, - 0.123092, - 0.120687211, - 0.129171557, - 0.124294436, - 0.124526468, - 0.125755208, - 0.127177957, - 0.128544891, - 0.127168738, - 0.124006849, - 0.124145643, - 0.129372241, - 0.129012454, - 0.121438754, - 0.117831685, - 0.128551696, - 0.121506502, - 0.124678482, - 0.121477997, - 0.128700692, - 0.127253363, - 0.126539606, - 0.124882526, - 0.123918902, - 0.125211135, - 0.123568144, - 0.125355109, - 0.125977871, - 0.118225544, - 0.121642704, - 0.122584262, - 0.123157348, - 0.126483, - 0.120502923, - 0.126009827, - 0.118471407, - 0.129787112, - 0.125589278, - 0.129246447, - 0.122869423, - 0.120594325, - 0.123595625, - 0.122205773, - 0.130757361, - 0.123851417, - 0.122219278, - 0.126843391, - 0.119860535, - 0.121696554, - 0.126991602, - 0.126339997, - 0.127107798, - 0.126972719, - 0.125628058, - 0.125498955, - 0.123518539, - 0.125159876, - 0.121288675, - 0.128436277, - 0.123129448, - 0.127470069, - 0.12199195, - 0.122569466, - 0.121546961, - 0.12134348, - 0.12730293, - 0.123346913, - 0.128866412, - 0.116174637, - 0.124433903, - 0.121879944, - 0.119400009, - 0.128309335, - 0.125196594, - 0.117576639, - 0.125583058, - 0.119800431, - 0.125989089, - 0.211182392, - 0.122819653, - 0.125077049, - 0.128852321, - 0.127613961, - 0.121645157, - 0.120610156, - 0.126771718, - 0.128935345, - 0.12568224, - 0.124357445, - 0.124615656, - 0.126930331, - 0.124564043, - 0.12894806, - 0.125746363, - 0.123498516, - 0.128347137, - 0.125479797, - 0.126636429, - 0.125649323, - 0.121443494, - 0.123076507, - 0.126102919, - 0.12722818, - 0.121323595, - 0.122664504, - 0.124913911, - 0.125400792, - 0.12503465, - 0.123785995, - 0.127949277, - 0.123598342, - 0.128898625, - 0.126318133, - 0.130042324, - 0.118617025, - 0.122698428, - 0.12556356, - 0.121356561, - 0.127255794, - 0.122617624, - 0.126295653, - 0.121575749, - 0.128225376, - 0.12437902, - 0.126231308, - 0.125773485, - 0.12599691, - 0.124428501, - 0.127311434, - 0.121722436, - 0.129828073, - 0.124635345, - 0.122017604, - 0.127119545, - 0.124568167, - 0.123392982, - 0.126373696, - 0.120544656, - 0.124298853, - 0.129051395, - 0.119645725, - 0.121438671, - 0.125417224, - 0.125964596, - 0.121632923, - 0.116135448, - 0.126396976, - 0.125964214, - 0.128518227, - 0.125687181, - 0.121694281, - 0.125358352, - 0.117691343, - 0.120351113, - 0.121537077, - 0.122042303, - 0.127463024, - 0.12466857, - 0.125382543, - 0.123746638, - 0.116298812, - 0.121423264, - 0.120475443, - 0.121752377, - 0.125658695, - 0.120409831, - 0.124832495, - 0.121688548, - 0.123499222, - 0.129204216, - 0.117874985, - 0.128353729, - 0.121448481, - 0.125081013, - 0.117831902, - 0.119783717, - 0.123543022, - 0.122971699, - 0.130128204, - 0.124027431, - 0.121741278, - 0.119385131, - 0.128621844, - 0.125887877, - 0.128105237, - 0.126129841, - 0.122885491, - 0.124339695, - 0.129073732, - 0.119722181 + 0.121668012, + 0.123000392, + 0.127693453, + 0.123231776, + 0.123124538, + 0.125658405, + 0.120361009, + 0.126443177, + 0.128725699, + 0.121334477, + 0.12831772, + 0.117532734, + 0.118266945, + 0.130229082, + 0.126765808, + 0.125253034, + 0.123286472, + 0.126963299, + 0.124444743, + 0.126882678, + 0.126614962, + 0.127512811, + 0.122462116, + 0.121208318, + 0.124182478, + 0.12505566, + 0.121931139, + 0.122974075, + 0.125640081, + 0.126845649, + 0.12271998, + 0.128926577, + 0.120380985, + 0.125778955, + 0.123167886, + 0.121142183, + 0.122787015, + 0.116969866, + 0.12120843, + 0.117270687, + 0.126814855, + 0.121397685, + 0.127229493, + 0.122751628, + 0.123687011, + 0.120407503, + 0.120348949, + 0.126937061, + 0.127140672, + 0.121615844, + 0.126490974, + 0.118205311, + 0.124128839, + 0.128267264, + 0.122984583, + 0.120176646, + 0.127905556, + 0.124160334, + 0.119235456, + 0.126607342, + 0.118668612, + 0.122134476, + 0.127110837, + 0.120589302, + 0.128735324, + 0.127164689, + 0.118998502, + 0.124764522, + 0.116193189, + 0.128063609, + 0.128245819, + 0.126933977, + 0.120283207, + 0.118072403, + 0.125990765, + 0.119276354, + 0.124195797, + 0.123102047, + 0.122362328, + 0.121438051, + 0.128272019, + 0.120334685, + 0.123455526, + 0.124274642, + 0.129863493, + 0.121329692, + 0.126005196, + 0.125203923, + 0.124486318, + 0.126084956, + 0.122785597, + 0.123777539, + 0.127155058, + 0.124022086, + 0.125246687, + 0.121254402, + 0.126043768, + 0.121255262, + 0.128978981, + 0.122426607 + ], + "implementation": "rust-libp2p", + "version": "v0.52", + "transportStack": "tcp" + }, + { + "result": [ + 0.126883463, + 0.12538224, + 0.123134364, + 0.12737136, + 0.121799092, + 0.124956805, + 0.126123851, + 0.117873119, + 0.125493333, + 0.121649485, + 0.126709666, + 0.11942479, + 0.124546341, + 0.118529438, + 0.116460941, + 0.12572109, + 0.123938435, + 0.125756721, + 0.128857506, + 0.126463729, + 0.122223522, + 0.12583961, + 0.120286306, + 0.128311277, + 0.125954085, + 0.121983192, + 0.124060722, + 0.122538973, + 0.126785897, + 0.120957402, + 0.123502961, + 0.123830362, + 0.124850685, + 0.126366687, + 0.120130544, + 0.118665904, + 0.125876896, + 0.128981173, + 0.120752317, + 0.124941562, + 0.123956285, + 0.124938191, + 0.124663306, + 0.124846437, + 0.126677991, + 0.124822669, + 0.127923591, + 0.124036037, + 0.123910824, + 0.126894403, + 0.123577666, + 0.120992105, + 0.123911974, + 0.124894422, + 0.122978923, + 0.121060815, + 0.122954924, + 0.127416864, + 0.119421557, + 0.125364864, + 0.120559324, + 0.124617211, + 0.124722713, + 0.119713567, + 0.127457278, + 0.125679225, + 0.11973738, + 0.127460038, + 0.125684705, + 0.122846931, + 0.127471934, + 0.123463713, + 0.120471438, + 0.125448357, + 0.121660507, + 0.127548786, + 0.125639927, + 0.120749636, + 0.126304243, + 0.125666811, + 0.121775029, + 0.123253337, + 0.122788874, + 0.125393396, + 0.124702624, + 0.126657172, + 0.122066806, + 0.126401868, + 0.122805884, + 0.12097563, + 0.126559744, + 0.12702369, + 0.12677153, + 0.12554372, + 0.118692872, + 0.121635023, + 0.117703287, + 0.126238107, + 0.118291747, + 0.121902887 + ], + "implementation": "rust-libp2p", + "version": "v0.52", + "transportStack": "quic-v1" + }, + { + "result": [ + 0.124315652, + 0.121658459, + 0.121978059, + 0.125725367, + 0.123770634, + 0.126169429, + 0.125424312, + 0.126852017, + 0.12691487, + 0.123335063, + 0.128619882, + 0.129003958, + 0.128305455, + 0.123803246, + 0.127337054, + 0.119584031, + 0.123829083, + 0.121247496, + 0.123342974, + 0.125432113, + 0.12390778, + 0.123019476, + 0.128228822, + 0.122530866, + 0.121467182, + 0.120360188, + 0.126406114, + 0.123919693, + 0.12061101, + 0.127078076, + 0.12518106, + 0.11663799, + 0.119261925, + 0.126347965, + 0.124364942, + 0.125407826, + 0.126926461, + 0.127437222, + 0.123449448, + 0.12515775, + 0.124936097, + 0.125199553, + 0.123439156, + 0.127136409, + 0.124054663, + 0.125724079, + 0.126195438, + 0.126478938, + 0.125315968, + 0.128619611, + 0.11759313, + 0.123536449, + 0.120022765, + 0.125455602, + 0.119138372, + 0.123676893, + 0.127000281, + 0.121461803, + 0.126330562, + 0.121516877, + 0.122947556, + 0.127346599, + 0.125578892, + 0.128326931, + 0.123508164, + 0.123872963, + 0.127233331, + 0.122260664, + 0.125195453, + 0.12817221, + 0.126158351, + 0.118174291, + 0.123701352, + 0.12451043, + 0.120254365, + 0.121505816, + 0.116487015, + 0.126388, + 0.128826347, + 0.118316885, + 0.123724796, + 0.12340504, + 0.123107616, + 0.12592937, + 0.126964881, + 0.12131946, + 0.126608409, + 0.124057196, + 0.127262084, + 0.121555089, + 0.128254834, + 0.122932987, + 0.119506728, + 0.124428119, + 0.128196456, + 0.125987807, + 0.1212543, + 0.127470287, + 0.122801434, + 0.122770552 ], "implementation": "rust-libp2p", - "version": "v0.51", + "version": "v0.52-quinn", "transportStack": "tcp" }, { "result": [ - 0.126427283, - 0.126639491, - 0.1284042, - 0.121062064, - 0.121080054, - 0.120722333, - 0.126809679, - 0.124606006, - 0.126953052, - 0.127275054, - 0.126893788, - 0.120690643, - 0.124782345, - 0.12376636, - 0.124409218, - 0.121934569, - 0.126059402, - 0.123041083, - 0.126883935, - 0.120976244, - 0.124318065, - 0.127972634, - 0.12591272, - 0.12208319, - 0.123096152, - 0.130254472, - 0.123266405, - 0.125967042, - 0.126196169, - 0.126246183, - 0.129036002, - 0.1294959, - 0.122148963, - 0.128364317, - 0.121812, - 0.126804534, - 0.126782317, - 0.12226457, - 0.129046882, - 0.128836326, - 0.12270442, - 0.125740978, - 0.127389762, - 0.124516025, - 0.127776194, - 0.122216276, - 0.128772514, - 0.120797881, - 0.121131089, - 0.126087016, - 0.127638627, - 0.123411002, - 0.125202036, - 0.123656934, - 0.126014066, - 0.127351519, - 0.124810139, - 0.129566987, - 0.121584296, - 0.129101253, - 0.123543319, - 0.128711177, - 0.126593587, - 0.123120692, - 0.124879345, - 0.119605972, - 0.121034833, - 0.123575685, - 0.121287195, - 0.124198099, - 0.128658572, - 0.126166582, - 0.127467894, - 0.11684427, - 0.129945233, - 0.122897049, - 0.123373884, - 0.125581591, - 0.129057346, - 0.127854919, - 0.121963566, - 0.121799308, - 0.128902446, - 0.120142592, - 0.129090871, - 0.127704303, - 0.119914726, - 0.121967206, - 0.123984104, - 0.12654447, - 0.120464366, - 0.122400346, - 0.121797529, - 0.121776581, - 0.121978104, - 0.120988268, - 0.123818315, - 0.123815139, - 0.125776187, - 0.120749136, - 0.121794162, - 0.129243146, - 0.124830459, - 0.120737602, - 0.125334177, - 0.121855616, - 0.125485499, - 0.129314633, - 0.129292819, - 0.12479226, - 0.130217829, - 0.118973538, - 0.126172337, - 0.130490425, - 0.123954726, - 0.123299593, - 0.120981597, - 0.126968383, - 0.124436593, - 0.121204074, - 0.118131875, - 0.12876057, - 0.12609008, - 0.127601178, - 0.128949856, - 0.120233554, - 0.118891816, - 0.127729327, - 0.122162188, - 0.129370424, - 0.12799954, - 0.122461444, - 0.128720642, - 0.129066555, - 0.125494192, - 0.125643125, - 0.129021828, - 0.11904766, - 0.125912714, - 0.129241953, - 0.122787071, - 0.118109302, - 0.128362654, - 0.130929991, - 0.125649078, - 0.126869263, - 0.12753982, - 0.123188621, - 0.121000586, - 0.127568723, - 0.127981197, - 0.121993256, - 0.127633151, - 0.12651283, - 0.13079801, - 0.123160974, - 0.120030324, - 0.125860749, - 0.122644047, - 0.126100882, - 0.126622699, - 0.125960571, - 0.126811853, - 0.12588583, - 0.128769141, - 0.123027679, - 0.123050587, - 0.123750419, - 0.127118019, - 0.126084586, - 0.125848955, - 0.128205903, - 0.118899399, - 0.126568957, - 0.126385305, - 0.126237855, - 0.122971394, - 0.120980754, - 0.127630994, - 0.12842184, - 0.124549226, - 0.123023915, - 0.123916887, - 0.121952272, - 0.121612533, - 0.124899404, - 0.126746972, - 0.125913628, - 0.125950887, - 0.122967389, - 0.13045976, - 0.125228474, - 0.125963499, - 0.12665382, - 0.122203732, - 0.125914893, - 0.126731003, - 0.120349677, - 0.127807451, - 0.121739668, - 0.126101408, - 0.128315264, - 0.128296433, - 0.121834037, - 0.127889821, - 0.12758563, - 0.116516551, - 0.123825766, - 0.128840586, - 0.127956487, - 0.124025297, - 0.125903363, - 0.120119418, - 0.123430069, - 0.122029366, - 0.124776865, - 0.12951056, - 0.128364219, - 0.128117324, - 0.122731197, - 0.12598211, - 0.122039921, - 0.124322882, - 0.12397259, - 0.123740571, - 0.118959391, - 0.128392645, - 0.129920515, - 0.127867895, - 0.129655329, - 0.126395992, - 0.12730455, - 0.125850316, - 0.122765556, - 0.124162491, - 0.122004763, - 0.123462174, - 0.120232418, - 0.123502218, - 0.1280879, - 0.127386559, - 0.125708982, - 0.125003644, - 0.123614868, - 0.127631965, - 0.123459165, - 0.127905555, - 0.120990462, - 0.12689305, - 0.12887982, - 0.126603081, - 0.124314372, - 0.129056441, - 0.126660409, - 0.123658361, - 0.124732278, - 0.120634189, - 0.12578913, - 0.12563144, - 0.127827399, - 0.125813367, - 0.127208793, - 0.122926934, - 0.12269252, - 0.122848874, - 0.123240353, - 0.129269732, - 0.127295552, - 0.118997598, - 0.126478144, - 0.119008909, - 0.125778247, - 0.127631332, - 0.126520194, - 0.124302078, - 0.122927138, - 0.126727821, - 0.120223955, - 0.121789164, - 0.123749191, - 0.125078203, - 0.126325643, - 0.127934501, - 0.124142522, - 0.12297735, - 0.122909708, - 0.128806475, - 0.121096937, - 0.12227398, - 0.121466062, - 0.127494629, - 0.126683584, - 0.118053669, - 0.121573317, - 0.120148358, - 0.12476187, - 0.130110632, - 0.124791665, - 0.128123398, - 0.126722583, - 0.129070747, - 0.122606586, - 0.12150397, - 0.125400543, - 0.125304648, - 0.121861615, - 0.125722989, - 0.126227635, - 0.122192517, - 0.121024053, - 0.118915716, - 0.119513252, - 0.127977142, - 0.124257395, - 0.124010128, - 0.124605773, - 0.128983739, - 0.127658863, - 0.124209718, - 0.127485735, - 0.12318995, - 0.118923128, - 0.127333067, - 0.12880284, - 0.128484158, - 0.125732466, - 0.12693404, - 0.126523341, - 0.127077419, - 0.127129362, - 0.12859089, - 0.120723918, - 0.12483247, - 0.12562043, - 0.124220527, - 0.124161906, - 0.123745394, - 0.129156112, - 0.124593748, - 0.125420321, - 0.128483341, - 0.123760652, - 0.123837664, - 0.123690879, - 0.127784214, - 0.129935821, - 0.124160996, - 0.12899945, - 0.119847319, - 0.123585174, - 0.12767847, - 0.1210094, - 0.127562886, - 0.127701149, - 0.122839323, - 0.124494497, - 0.123998306, - 0.124505204, - 0.126860443, - 0.119902082, - 0.128031331, - 0.125729639, - 0.126454775, - 0.12306565, - 0.121804665, - 0.120606683, - 0.125591412, - 0.123543147, - 0.120438921, - 0.12191651, - 0.125509302, - 0.127847459, - 0.124794839, - 0.124727059, - 0.117727133, - 0.128594553, - 0.123375765, - 0.124079651, - 0.128191525, - 0.124689144, - 0.130177201, - 0.126694518, - 0.119963213, - 0.124367579, - 0.124731213, - 0.122277994, - 0.125514722, - 0.125818035, - 0.128888341, - 0.125018017, - 0.122221059, - 0.123417187, - 0.122303741, - 0.123923499, - 0.128311929, - 0.128470498, - 0.124562808, - 0.126221506, - 0.119854214, - 0.130974279, - 0.127780019, - 0.121067062, - 0.129816984, - 0.121850612, - 0.128945117, - 0.123391309, - 0.128097336, - 0.123887499, - 0.122845915, - 0.123752022, - 0.123820681, - 0.31320782, - 0.119870921, - 0.123584415, - 0.125990253, - 0.126598661, - 0.122657799, - 0.124682095, - 0.126030408, - 0.126319706, - 0.119671318, - 0.125215629, - 0.123835856, - 0.128475166, - 0.123639003, - 0.124266449, - 0.126129043, - 0.119878938, - 0.129403882, - 0.123975727, - 0.118961299, - 0.128422659, - 0.124198546, - 0.126092262, - 0.121990043, - 0.11827628, - 0.124725166, - 0.124555197, - 0.120740672, - 0.12911852, - 0.125587268, - 0.123974493, - 0.130128358, - 0.126869532, - 0.13059831, - 0.128789777, - 0.123107774, - 0.122776071, - 0.122191144, - 0.120113761, - 0.12190685, - 0.128695148, - 0.122256487, - 0.125990874, - 0.124671699, - 0.122131789, - 0.128936197, - 0.130509278, - 0.121940426, - 0.128350302, - 0.122995697, - 0.126266445, - 0.125267288, - 0.124347105, - 0.121382013, - 0.124742654, - 0.123079194, - 0.126476014, - 0.128183936, - 0.122139721, - 0.125446585, - 0.12656421, - 0.123300722, - 0.125824049, - 0.124968666, - 0.122285354, - 0.123584461, - 0.125175016, - 0.127003473, - 0.116672027, - 0.122966117, - 0.126231634, - 0.127480773, - 0.128763706, - 0.123457583, - 0.125783149, - 0.127386743, - 0.128021669, - 0.122011874, - 0.120010024, - 0.123998151, - 0.124096757, - 0.12475286, - 0.127872062, - 0.117668961, - 0.128280813, - 0.123889684, - 0.12404086, - 0.119174282, - 0.129306702, - 0.120849001, - 0.125518529, - 0.129379481, - 0.126726251, - 0.122885339, - 0.128595479, - 0.123527532, - 0.125233929, - 0.122436365, - 0.129651528, - 0.125806195, - 0.130548333, - 0.122519164, - 0.128953847, - 0.125924258, - 0.122918602, - 0.124190591, - 0.1229526, - 0.125566343, - 0.126663887, - 0.123039252, - 0.124050089, - 0.127427832, - 0.128723744, - 0.127912692, - 0.124838789, - 0.127732046, - 0.126166975, - 0.129564449, - 0.124984996, - 0.126807169, - 0.124789188, - 0.119001941, - 0.121765167, - 0.124015649, - 0.130294115, - 0.129024799, - 0.122589255, - 0.12269728, - 0.119768963, - 0.129488012, - 0.121334832, - 0.124866031, - 0.128742521, - 0.128826759, - 0.124392516, - 0.128229636, - 0.12649408, - 0.127022941, - 0.125122404, - 0.116553469, - 0.128772565, - 0.12287117, - 0.129035139, - 0.120110226, - 0.123495238, - 0.123362388, - 0.123438511, - 0.12286, - 0.127908688, - 0.127784878, - 0.123993166, - 0.125832607, - 0.125591907, - 0.124625248, - 0.126265688, - 0.122326559, - 0.127637968, - 0.125898537, - 0.127701732, - 0.127172898, - 0.124178155, - 0.128922437, - 0.127042068, - 0.121811385, - 0.122055317, - 0.120129988, - 0.127855383, - 0.118504362, - 0.121727382, - 0.124925925, - 0.128984629, - 0.123815905, - 0.123793691, - 0.123251501, - 0.127476628, - 0.125360982, - 0.126200257, - 0.123815094, - 0.122303261, - 0.125500847, - 0.129266485, - 0.124375451, - 0.123156509, - 0.130680347, - 0.120764752, - 0.127301397, - 0.126045906, - 0.128679243, - 0.122231822, - 0.126955251, - 0.126388957, - 0.119040876, - 0.120233052, - 0.127436827, - 0.121164272, - 0.127591878, - 0.125771195, - 0.121340572, - 0.12767778, - 0.126596435, - 0.124841065, - 0.125162219, - 0.118668548, - 0.121613435, - 0.128818248, - 0.124057939, - 0.12758781, - 0.118188963, - 0.124972803, - 0.122699959, - 0.122277977, - 0.130703821, - 0.129262199, - 0.126661469, - 0.127302428, - 0.121965419, - 0.129314988, - 0.119957092, - 0.12488089, - 0.125887369, - 0.126011348, - 0.128472118, - 0.12617858, - 0.130631286, - 0.121835237, - 0.128671149, - 0.129975865, - 0.124998416, - 0.127628517, - 0.124731603, - 0.121047393, - 0.127329396, - 0.120076513, - 0.124936014, - 0.128646689, - 0.118817745, - 0.125727006, - 0.124887645, - 0.125873158, - 0.125900921, - 0.122242681, - 0.125615208, - 0.127282005, - 0.127288306, - 0.123798252, - 0.128461662, - 0.123981956, - 0.126021135, - 0.128707726, - 0.121904132, - 0.12834162, - 0.123690254, - 0.128415082, - 0.125994995, - 0.126748947, - 0.122520944, - 0.125752256, - 0.128682327, - 0.129837805, - 0.126726789, - 0.125811779, - 0.122096178, - 0.123088403, - 0.126605564, - 0.124370852, - 0.119155627, - 0.122790975, - 0.124578493, - 0.127397242, - 0.126912294, - 0.125937167, - 0.118638748, - 0.127238218, - 0.121309422, - 0.123278012, - 0.129621206, - 0.122432997, - 0.125877527, - 0.119249902, - 0.124339922, - 0.125499141, - 0.124036913, - 0.125261496, - 0.122931167, - 0.129388668, - 0.12961722, - 0.127650893, - 0.11991279, - 0.121981024, - 0.127753584, - 0.128979344, - 0.128104252, - 0.129342231, - 0.130999719, - 0.123206705, - 0.122906183, - 0.126827476, - 0.127825589, - 0.128353806, - 0.121248911, - 0.12939161, - 0.123191907, - 0.127276728, - 0.120771834, - 0.125304107, - 0.124657158, - 0.123941147, - 0.130288201, - 0.12669272, - 0.12692159, - 0.122329338, - 0.122725352, - 0.127673088, - 0.123095819, - 0.126261196, - 0.118813819, - 0.125932855, - 0.128606275, - 0.123799329, - 0.12786575, - 0.127717275, - 0.120013408, - 0.119894849, - 0.125674733, - 0.12382155, - 0.123051761, - 0.119628689, - 0.126077826, - 0.127276641, - 0.12508391, - 0.124822157, - 0.11920296, - 0.120244837, - 0.126633934, - 0.118846889, - 0.124259033, - 0.1238431, - 0.122316475, - 0.123218672, - 0.121962244, - 0.126641684, - 0.126880238, - 0.123209573, - 0.125130457, - 0.126843295, - 0.123714723, - 0.122567297, - 0.123313705, - 0.121216623, - 0.12758153, - 0.126033298, - 0.130408734, - 0.117993348, - 0.127527957, - 0.121763983, - 0.121512494, - 0.12900524, - 0.124626721, - 0.123090838, - 0.128398871, - 0.127067598, - 0.126320993, - 0.121688371, - 0.127043609, - 0.123056966, - 0.127852424, - 0.122256198, - 0.125777639, - 0.125635891, - 0.128641317, - 0.125214641, - 0.127850402, - 0.121944183, - 0.127619407, - 0.12812443, - 0.123991653, - 0.126945584, - 0.122479043, - 0.129669549, - 0.127576916, - 0.124613726, - 0.128896069, - 0.125136712, - 0.12078652, - 0.123700815, - 0.124406577, - 0.127655523, - 0.125911767, - 0.123543399, - 0.127101622, - 0.12784041, - 0.120995831, - 0.123165347, - 0.124943642, - 0.128710413, - 0.125860166, - 0.125219722, - 0.125206463, - 0.126932707, - 0.128372758, - 0.121742246, - 0.125698642, - 0.123018958, - 0.120908664, - 0.124434972, - 0.126604267, - 0.122796422, - 0.125592425, - 0.128303023, - 0.127865531, - 0.128112462, - 0.127381817, - 0.121945019, - 0.121890609, - 0.124247875, - 0.127738335, - 0.125973491, - 0.128064681, - 0.123183342, - 0.122898941, - 0.12899048, - 0.121037142, - 0.127140282, - 0.12686606, - 0.127458747, - 0.121794649, - 0.123078358, - 0.124802397, - 0.123447701, - 0.12932276, - 0.128880596, - 0.119129043, - 0.123150829, - 0.129651306, - 0.12087089, - 0.12471444, - 0.127361851, - 0.125006316, - 0.122136898, - 0.123403867, - 0.119163968, - 0.121971591, - 0.129749389, - 0.118987045, - 0.120284383, - 0.126216887, - 0.120929656, - 0.125043539, - 0.123506821, - 0.122983832, - 0.1205175, - 0.127548939, - 0.12522921, - 0.124035011, - 0.123091133, - 0.121147925, - 0.127663767, - 0.120374664, - 0.121116575, - 0.122267551, - 0.122153601, - 0.127951648, - 0.128164386, - 0.125253761, - 0.125415463, - 0.122598375, - 0.128432407, - 0.130582995, - 0.126899994, - 0.128414916, - 0.126373219, - 0.123981373, - 0.121873773, - 0.125840815, - 0.127195931, - 0.124135579, - 0.12568795, - 0.122198042, - 0.12194487, - 0.122087149, - 0.122982318, - 0.126052944, - 0.129191123, - 0.126439947, - 0.127826122, - 0.125470619, - 0.122717387, - 0.12957499, - 0.127274043, - 0.125876938, - 0.123042243, - 0.120981838, - 0.12604874, - 0.127898366, - 0.12896276, - 0.124053732, - 0.128543288, - 0.12108993, - 0.122350274, - 0.125852482, - 0.126652965, - 0.12197611, - 0.130576281, - 0.125948148, - 0.122234684, - 0.123819033, - 0.123549218, - 0.128365284, - 0.122677271, - 0.127414228, - 0.118850222, - 0.128743901, - 0.126847512, - 0.124162821, - 0.127409985, - 0.120921997, - 0.123259261, - 0.121831856, - 0.120166595, - 0.119632058, - 0.128098606, - 0.1221301, - 0.121654507, - 0.123503589, - 0.126706424, - 0.12272931, - 0.124762938, - 0.124088626, - 0.123793816, - 0.121801364, - 0.128210767, - 0.129317054, - 0.118865815, - 0.123737665, - 0.1179243, - 0.12771188, - 0.120319165, - 0.123366628, - 0.123775061, - 0.124520594, - 0.124483217, - 0.122116665, - 0.126980952, - 0.123669908, - 0.127882985, - 0.125743355, - 0.122055457, - 0.124944892, - 0.125305796, - 0.127280434, - 0.125725284, - 0.128842909, - 0.121854083, - 0.127640051, - 0.127804997, - 0.120943191, - 0.123656357, - 0.130592065, - 0.129389828, - 0.126093037, - 0.12372843, - 0.127388089, - 0.12984663, - 0.119854353, - 0.122749966, - 0.125213089, - 0.123081339, - 0.127889623, - 0.126836248, - 0.127430383, - 0.125572346, - 0.123425591, - 0.122586176, - 0.127782336, - 0.123759487, - 0.128617837, - 0.128974091, - 0.123510528, - 0.126112586, - 0.123956158, - 0.12643124, - 0.127204469, - 0.128717102, - 0.128777956, - 0.126728499, - 0.127182335, - 0.119682346, - 0.122890542, - 0.122180322 + 0.118557407, + 0.129367487, + 0.119667651, + 0.123787099, + 0.124614605, + 0.126707798, + 0.125840916, + 0.120444265, + 0.12205183, + 0.124644079, + 0.130191262, + 0.123519664, + 0.120409353, + 0.119216634, + 0.13010538, + 0.129412402, + 0.125457409, + 0.121830064, + 0.116368955, + 0.126860624, + 0.122762401, + 0.124907365, + 0.125346021, + 0.122297674, + 0.123740161, + 0.128776767, + 0.123239408, + 0.126187867, + 0.122735079, + 0.124247599, + 0.127077167, + 0.121880016, + 0.120792907, + 0.12624767, + 0.12706203, + 0.120769749, + 0.123950089, + 0.126547698, + 0.122498339, + 0.13030589, + 0.127540126, + 0.127620897, + 0.121705058, + 0.116058129, + 0.11973295, + 0.123976842, + 0.121005913, + 0.119776725, + 0.124884126, + 0.129121972, + 0.123586335, + 0.120923489, + 0.123787504, + 0.118007633, + 0.119975299, + 0.122552093, + 0.122987026, + 0.122106037, + 0.124946365, + 0.128078508, + 0.126071297, + 0.124684977, + 0.12712083, + 0.125258097, + 0.128768189, + 0.119691682, + 0.122145987, + 0.122636323, + 0.13038191, + 0.121972787, + 0.1174422, + 0.11857174, + 0.116670902, + 0.128806601, + 0.124499407, + 0.125594701, + 0.125389813, + 0.126210369, + 0.118511957, + 0.127048302, + 0.128654269, + 0.122661261, + 0.121244321, + 0.125613825, + 0.130503486, + 0.123771742, + 0.12196481, + 0.119953257, + 0.124347784, + 0.127777435, + 0.127985077, + 0.129983758, + 0.125692298, + 0.119680827, + 0.12266069, + 0.129236188, + 0.125723596, + 0.126052517, + 0.127762187, + 0.129383432 ], "implementation": "rust-libp2p", - "version": "v0.51", + "version": "v0.52-quinn", "transportStack": "quic-v1" }, { "result": [ - 0.18524794, - 0.19591586, - 0.18794625, - 0.19430587, - 0.18854661, - 0.18042985, - 0.18792032, - 0.18520518, - 0.18903744, - 0.19118784, - 0.1904892, - 0.1907086, - 0.19375764, - 0.18987583, - 0.19201988, - 0.18464862, - 0.18792336, - 0.1852576, - 0.19047278, - 0.19335862, - 0.19190504, - 0.1920972, - 0.18961377, - 0.18865576, - 0.18338314, - 0.1814949, - 0.1868589, - 0.18584011, - 0.18568592, - 0.18345672, - 0.18673599, - 0.18805434, - 0.19341005, - 0.1894355, - 0.18732508, - 0.18142572, - 0.1950999, - 0.18738842, - 0.18656, - 0.18677732, - 0.1852896, - 0.19015548, - 0.18813369, - 0.1875003, - 0.1872505, - 0.1915355, - 0.18359421, - 0.19224681, - 0.19550455, - 0.1898403, - 0.18919228, - 0.18454397, - 0.18179876, - 0.18743584, - 0.19353746, - 0.18035059, - 0.18898939, - 0.19032146, - 0.19219083, - 0.19319399, - 0.18642883, - 0.19179262, - 0.1898807, - 0.18595271, - 0.1771849, - 0.19010052, - 0.19548638, - 0.18873699, - 0.18843974, - 0.18929069, - 0.18538259, - 0.19199778, - 0.18723476, - 0.18270639, - 0.1924653, - 0.19105528, - 0.18446097, - 0.1941712, - 0.19275537, - 0.18205252, - 0.18880984, - 0.18162598, - 0.18720096, - 0.18469231, - 0.19209906, - 0.18387002, - 0.18158957, - 0.18732606, - 0.18867417, - 0.19059275, - 0.18799573, - 0.18171892, - 0.19094992, - 0.17508917, - 0.18934695, - 0.19404241, - 0.18604176, - 0.19051708, - 0.17681356, - 0.19186726, - 0.193644, - 0.18876322, - 0.19445023, - 0.19391657, - 0.1923686, - 0.18509148, - 0.19180611, - 0.18317753, - 0.18923691, - 0.18348204, - 0.18443108, - 0.18465899, - 0.19423671, - 0.18829283, - 0.19155431, - 0.18782051, - 0.1904013, - 0.1803181, - 0.18520196, - 0.18516903, - 0.19338836, - 0.19188984, - 0.17700537, - 0.19144236, - 0.18716136, - 0.18656388, - 0.19015707, - 0.18361528, - 0.19082782, - 0.1800265, - 0.19511913, - 0.18467073, - 0.18545921, - 0.19101618, - 0.19066224, - 0.19137996, - 0.18701626, - 0.17869624, - 0.19145525, - 0.19452327, - 0.18502325, - 0.18511638, - 0.18884985, - 0.1862163, - 0.19592598, - 0.18634993, - 0.17895363, - 0.19242224, - 0.19178946, - 0.18049131, - 0.17920804, - 0.18324515, - 0.19579327, - 0.18329345, - 0.19029912, - 0.18928128, - 0.18610837, - 0.18968491, - 0.1829416, - 0.18846734, - 0.18896092, - 0.18879291, - 0.1879794, - 0.1854974, - 0.18452324, - 0.18303902, - 0.19204596, - 0.1895932, - 0.19313788, - 0.17639224, - 0.17703938, - 0.1847542, - 0.17546484, - 0.18713948, - 0.19117013, - 0.18638946, - 0.18162228, - 0.18729688, - 0.17699867, - 0.18693982, - 0.19052646, - 0.18156548, - 0.18709382, - 0.19278015, - 0.1896199, - 0.18952389, - 0.18640058, - 0.19075428, - 0.19322644, - 0.19208236, - 0.19192673, - 0.18374221, - 0.1917465, - 0.19248451, - 0.19243759, - 0.1917859, - 0.18543811, - 0.18505703, - 0.1908011, - 0.18557584, - 0.18018146, - 0.18869944, - 0.19370513, - 0.19017862, - 0.19141689, - 0.18312092, - 0.19299868, - 0.19368888, - 0.18976845, - 0.18727216, - 0.18706843, - 0.18768978, - 0.1833888, - 0.18748814, - 0.18876882, - 0.18915719, - 0.18461412, - 0.18649657, - 0.17689373, - 0.19010153, - 0.19569857, - 0.18293121, - 0.18309419, - 0.18818483, - 0.18902631, - 0.18812412, - 0.18628155, - 0.18650894, - 0.1829142, - 0.18748952, - 0.1804082, - 0.18561281, - 0.18513432, - 0.18402345, - 0.1915269, - 0.18955414, - 0.1772279, - 0.18903598, - 0.18152907, - 0.18848369, - 0.17757688, - 0.18615861, - 0.1935507, - 0.18890674, - 0.18511511, - 0.19113828, - 0.18684058, - 0.1854391, - 0.19129044, - 0.19189744, - 0.18676503, - 0.18026575, - 0.1781368, - 0.1936407, - 0.19122945, - 0.18413998, - 0.18613681, - 0.18325199, - 0.18867755, - 0.18140174, - 0.18767534, - 0.18975246, - 0.18142007, - 0.1834588, - 0.18874815, - 0.1910428, - 0.18121667, - 0.18741111, - 0.19014554, - 0.18512729, - 0.19320841, - 0.188819, - 0.18620905, - 0.18759724, - 0.18503727, - 0.17987268, - 0.18218672, - 0.18483171, - 0.19372337, - 0.19160135, - 0.19407468, - 0.18704776, - 0.18870555, - 0.18681976, - 0.19176313, - 0.1850153, - 0.19045642, - 0.18986188, - 0.19229676, - 0.18889639, - 0.18845104, - 0.1938119, - 0.19328597, - 0.18485154, - 0.1846728, - 0.19324027, - 0.18908314, - 0.19424601, - 0.19135652, - 0.18129922, - 0.18344013, - 0.19006315, - 0.18662606, - 0.18558776, - 0.1920658, - 0.19044772, - 0.17981257, - 0.1929344, - 0.19212542, - 0.19316268, - 0.18213168, - 0.18900198, - 0.17883952, - 0.19055045, - 0.18772106, - 0.18837062, - 0.18485804, - 0.1816302, - 0.18554497, - 0.18169215, - 0.18909901, - 0.18699868, - 0.18630879, - 0.19151002, - 0.18277721, - 0.18154804, - 0.18197079, - 0.1924471, - 0.19137815, - 0.19023483, - 0.18120018, - 0.18717463, - 0.18973036, - 0.18612172, - 0.1933415, - 0.18388808, - 0.1926496, - 0.18669227, - 0.19370985, - 0.18980293, - 0.1818448, - 0.191825, - 0.19179839, - 0.18053931, - 0.18802343, - 0.18753482, - 0.18471532, - 0.18307956, - 0.18840198, - 0.18788482, - 0.19364427, - 0.19532135, - 0.1894343, - 0.19087546, - 0.19106166, - 0.18924148, - 0.17970476, - 0.18528299, - 0.17849615, - 0.19079487, - 0.18791576, - 0.18569219, - 0.18868266, - 0.19195792, - 0.1960681, - 0.19172007, - 0.19232918, - 0.18723945, - 0.19049202, - 0.19443652, - 0.18845406, - 0.1869535, - 0.19019918, - 0.18017761, - 0.18612966, - 0.18490861, - 0.18453631, - 0.18766353, - 0.19128367, - 0.18566437, - 0.19463056, - 0.18422556, - 0.19562812, - 0.18341747, - 0.18361051, - 0.18452011, - 0.1852424, - 0.1884736, - 0.191309, - 0.18567751, - 0.18804386, - 0.18694726, - 0.18783243, - 0.19160694, - 0.19284923, - 0.18996094, - 0.19119658, - 0.18650064, - 0.19081415, - 0.19098322, - 0.18615815, - 0.1876749, - 0.18875204, - 0.18435673, - 0.18991607, - 0.18332464, - 0.18626732, - 0.18806148, - 0.18405925, - 0.19032763, - 0.1796134, - 0.19125262, - 0.1934207, - 0.18837142, - 0.19013134, - 0.18419896, - 0.19153322, - 0.18478127, - 0.18782775, - 0.18470383, - 0.1784864, - 0.19352543, - 0.19159181, - 0.18225853, - 0.18191224, - 0.1780829, - 0.18728504, - 0.19113885, - 0.19069141, - 0.18463032, - 0.17854065, - 0.18462192, - 0.18920869, - 0.18359956, - 0.18052056, - 0.19069646, - 0.19608122, - 0.18474232, - 0.17949478, - 0.19180478, - 0.18347996, - 0.18630701, - 0.18451412, - 0.18426535, - 0.18745072, - 0.19018869, - 0.19284503, - 0.18088777, - 0.18872002, - 0.18147682, - 0.18506354, - 0.18446796, - 0.18425767, - 0.19375171, - 0.19163328, - 0.19096859, - 0.18770754, - 0.18276449, - 0.18884858, - 0.19428355, - 0.1912395, - 0.19365346, - 0.18364209, - 0.18452744, - 0.17526086, - 0.19227587, - 0.19494994, - 0.18482134, - 0.17863503, - 0.18615724, - 0.18223217, - 0.18360369, - 0.18150704, - 0.18638352, - 0.18614048, - 0.19086057, - 0.19260077, - 0.18365768, - 0.1867621, - 0.18591444, - 0.18595347, - 0.18699345, - 0.19013655, - 0.19243863, - 0.17720611, - 0.1847709, - 0.18767647, - 0.1918419, - 0.19317268, - 0.18340749, - 0.19033617, - 0.18988234, - 0.17674725, - 0.18042941, - 0.1853999, - 0.1864383, - 0.19038017, - 0.19341215, - 0.18896578, - 0.18756945, - 0.19396606, - 0.17685246, - 0.18621211, - 0.18899478, - 0.18346664, - 0.18489602, - 0.18596123, - 0.19468644, - 0.18998958, - 0.18466775, - 0.18569121, - 0.18893069, - 0.18735223, - 0.18268748, - 0.18904209, - 0.19176732, - 0.18544976, - 0.18457036, - 0.18594328, - 0.18683904, - 0.18347412, - 0.18196584, - 0.19370376, - 0.19318762, - 0.19214694, - 0.18547086, - 0.18764608, - 0.18787856, - 0.18934245, - 0.18028358, - 0.18880798, - 0.18400767, - 0.19365738, - 0.19417077, - 0.19163826, - 0.1871758, - 0.19313608, - 0.18893112, - 0.19657317, - 0.18128586, - 0.17593937, - 0.18906105, - 0.1935324, - 0.18952669, - 0.18111193, - 0.19017942, - 0.18277681, - 0.19343413, - 0.1872557, - 0.19190304, - 0.19466734, - 0.18614785, - 0.18788727, - 0.18607792, - 0.1867022, - 0.1889459, - 0.18052, - 0.18883474, - 0.1800873, - 0.18911181, - 0.19120799, - 0.1917927, - 0.19357534, - 0.18032679, - 0.18736538, - 0.18581453, - 0.1912708, - 0.18918255, - 0.18970996, - 0.18809263, - 0.18620972, - 0.1908646, - 0.19203587, - 0.19012062, - 0.17687032, - 0.19059464, - 0.1849498, - 0.19057325, - 0.17894469, - 0.1864818, - 0.18983693, - 0.1948062, - 0.19363369, - 0.18786985, - 0.18500079, - 0.18485284, - 0.19187938, - 0.18808393, - 0.18465404, - 0.17723341, - 0.18322611, - 0.19639507, - 0.18483758, - 0.18291178, - 0.18642865, - 0.19183007, - 0.18510501, - 0.19059977, - 0.19005772, - 0.19116472, - 0.18791269, - 0.18633656, - 0.1896293, - 0.18651503, - 0.1949546, - 0.18250239, - 0.18987599, - 0.17833613, - 0.19000189, - 0.18769841, - 0.18325391, - 0.18705507, - 0.18601859, - 0.1847015, - 0.18413983, - 0.18925229, - 0.18645042, - 0.18734767, - 0.18631223, - 0.1773735, - 0.1911044, - 0.17884104, - 0.18753575, - 0.17563751, - 0.18343766, - 0.19169809, - 0.17871672, - 0.19150074, - 0.18967196, - 0.18736611, - 0.1919503, - 0.1848084, - 0.18440166, - 0.18747635, - 0.18949722, - 0.1960136, - 0.19044293, - 0.18854968, - 0.18916698, - 0.1842706, - 0.19627984, - 0.1934773, - 0.18841065, - 0.1820662, - 0.18558323, - 0.187851, - 0.1895967, - 0.18293783, - 0.18673748, - 0.18456462, - 0.18580535, - 0.1903732, - 0.18762349, - 0.18252088, - 0.1774874, - 0.188435, - 0.19018726, - 0.18314803, - 0.18985619, - 0.18445681, - 0.1918975, - 0.18494177, - 0.19153363, - 0.19145931, - 0.19303991, - 0.187884, - 0.19005246, - 0.18713364, - 0.18636099, - 0.17827454, - 0.18503997, - 0.18458563, - 0.17507657, - 0.18553019, - 0.18889783, - 0.19107404, - 0.19433635, - 0.18595009, - 0.1891247, - 0.19354814, - 0.18013677, - 0.18387862, - 0.18928015, - 0.1911583, - 0.19411966, - 0.17965546, - 0.1826555, - 0.18442343, - 0.18400696, - 0.1846489, - 0.18457966, - 0.18482421, - 0.186002, - 0.18880433, - 0.18864326, - 0.18796283, - 0.19276671, - 0.18305169, - 0.18376891, - 0.18453082, - 0.18611465, - 0.18614456, - 0.1862241, - 0.1908965, - 0.18873484, - 0.1940514, - 0.1872482, - 0.19248074, - 0.18927845, - 0.17659658, - 0.18377775, - 0.19198509, - 0.18759729, - 0.18337385, - 0.19082141, - 0.18308872, - 0.1875434, - 0.19367637, - 0.19386756, - 0.19227947, - 0.19340345, - 0.1887513, - 0.18982333, - 0.1860038, - 0.18730503, - 0.1866988, - 0.18173814, - 0.1863281, - 0.19399753, - 0.19049987, - 0.18766856, - 0.18876942, - 0.18720753, - 0.188302, - 0.19355738, - 0.18499444, - 0.19016661, - 0.18458542, - 0.17879796, - 0.18846872, - 0.19091451, - 0.18610035, - 0.18763839, - 0.19129188, - 0.1750825, - 0.19352566, - 0.18610162, - 0.18609174, - 0.18404521, - 0.18979047, - 0.19500081, - 0.1875946, - 0.1869609, - 0.18412253, - 0.19109114, - 0.19232842, - 0.19125354, - 0.18014143, - 0.18060516, - 0.18162686, - 0.18691278, - 0.1844199, - 0.1912215, - 0.18728912, - 0.18832475, - 0.183075, - 0.18708476, - 0.18762273, - 0.18135269, - 0.18880214, - 0.19133823, - 0.17720762, - 0.17996627, - 0.19164169, - 0.18833254, - 0.19102228, - 0.19447245, - 0.18132246, - 0.19372949, - 0.19276187, - 0.19079621, - 0.18625061, - 0.18882757, - 0.19314504, - 0.18237343, - 0.18839873, - 0.19045521, - 0.19312134, - 0.19095148, - 0.19057584, - 0.18735133, - 0.18135402, - 0.18340158, - 0.183522, - 0.17962545, - 0.18389851, - 0.18712981, - 0.18718822, - 0.18614963, - 0.18444254, - 0.1939569, - 0.19320072, - 0.18803735, - 0.17520604, - 0.18348356, - 0.18744968, - 0.19496496, - 0.18637691, - 0.17892247, - 0.18706241, - 0.18969901, - 0.18619393, - 0.191969, - 0.19370082, - 0.19241337, - 0.1781465, - 0.1848462, - 0.1885704, - 0.19183445, - 0.1935026, - 0.18533275, - 0.18172206, - 0.18906221, - 0.18950513, - 0.18326128, - 0.18611991, - 0.18538944, - 0.19186778, - 0.18567774, - 0.19148552, - 0.19196652, - 0.18752776, - 0.19582267, - 0.18985444, - 0.19485874, - 0.18906131, - 0.18347046, - 0.1816845, - 0.1910355, - 0.19383648, - 0.1889277, - 0.18581787, - 0.1801495, - 0.19108605, - 0.192792, - 0.18321748, - 0.19185306, - 0.18041229, - 0.19335009, - 0.18966109, - 0.18572006, - 0.1820242, - 0.19376683, - 0.18522754, - 0.19392629, - 0.18494494, - 0.18268901, - 0.18357557, - 0.18529353, - 0.18622844, - 0.18632713, - 0.18934643, - 0.18644169, - 0.18134576, - 0.18412821, - 0.19020668, - 0.1830647, - 0.18161058, - 0.1854414, - 0.19151825, - 0.18907265, - 0.18841116, - 0.18465431, - 0.19188471, - 0.18623483, - 0.1930334, - 0.18624929, - 0.18669517, - 0.18834542, - 0.17718652, - 0.19196948, - 0.18198931, - 0.18757853, - 0.19110017, - 0.18900405, - 0.18392175, - 0.18292536, - 0.18605357, - 0.19201787, - 0.18791941, - 0.18860418, - 0.19175616, - 0.1833055, - 0.19468476, - 0.18844387, - 0.19018388, - 0.18257552, - 0.18325597, - 0.1831569, - 0.18405952, - 0.1841893, - 0.19270279, - 0.18473738, - 0.19154595, - 0.18925674, - 0.18820097, - 0.18990457, - 0.18342479, - 0.1883575, - 0.18609914, - 0.18407565, - 0.18555853, - 0.186173, - 0.18632352, - 0.18489523, - 0.18325795, - 0.18894415, - 0.18730015, - 0.18012197, - 0.18721719, - 0.19199906, - 0.18162072, - 0.19100372, - 0.18344215, - 0.18284963, - 0.1900041, - 0.18487018, - 0.19348997, - 0.19345942, - 0.18446274, - 0.1883541, - 0.18453799, - 0.18518706, - 0.19285399, - 0.19113672, - 0.18961784, - 0.18165508, - 0.19008589, - 0.19005103, - 0.19012193, - 0.1865979, - 0.18314604, - 0.18323402, - 0.19439068, - 0.18983452, - 0.189389, - 0.18690363, - 0.18561633, - 0.18531574, - 0.19328548, - 0.17741984, - 0.19136788, - 0.1901003, - 0.19243135, - 0.1915578, - 0.1933532, - 0.18713564, - 0.18331595, - 0.18305627, - 0.18874313, - 0.19292498, - 0.18575555, - 0.19544935, - 0.18991081, - 0.19623516, - 0.18130925, - 0.18657489, - 0.18727171, - 0.18466525, - 0.18829219, - 0.19558918, - 0.18271032, - 0.1927778, - 0.18632072, - 0.19245307, - 0.17867348, - 0.18664844, - 0.17901124, - 0.18634723, - 0.18164803, - 0.18581408, - 0.18963115, - 0.18893193, - 0.18861178, - 0.18145634, - 0.19621325, - 0.18438685, - 0.18182021, - 0.18388388, - 0.18300377, - 0.1876391, - 0.1915926, - 0.1832556, - 0.19337611, - 0.180336, - 0.1814114, - 0.1861167, - 0.18693757, - 0.17517857, - 0.18050852 + 0.18508218, + 0.17827375, + 0.19396462, + 0.18589123, + 0.19046028, + 0.1881602, + 0.18642539, + 0.1828627, + 0.18226781, + 0.1905887, + 0.18362504, + 0.18692651, + 0.18103275, + 0.18688953, + 0.17596821, + 0.18337077, + 0.19246833, + 0.18802053, + 0.18150024, + 0.19313905, + 0.18757653, + 0.18504354, + 0.18139851, + 0.18307193, + 0.18498154, + 0.18468052, + 0.1806075, + 0.18616264, + 0.188107, + 0.18439338, + 0.1845541, + 0.18922906, + 0.18627962, + 0.18337129, + 0.185091, + 0.19043624, + 0.18413623, + 0.17684413, + 0.19268216, + 0.18940519, + 0.1918334, + 0.18848182, + 0.19122635, + 0.18842778, + 0.18248205, + 0.18743384, + 0.18937829, + 0.18610607, + 0.17816359, + 0.1898336, + 0.1831328, + 0.18520987, + 0.18742532, + 0.17631459, + 0.1826238, + 0.18826276, + 0.18738666, + 0.18630262, + 0.18808877, + 0.1941709, + 0.18078187, + 0.18140486, + 0.1902356, + 0.18131192, + 0.19120483, + 0.19176443, + 0.18443212, + 0.18308993, + 0.18747921, + 0.1781338, + 0.19196792, + 0.18435647, + 0.18590584, + 0.18536775, + 0.18091542, + 0.18665215, + 0.18698396, + 0.18342577, + 0.18887636, + 0.17977275, + 0.18322293, + 0.1806967, + 0.18432827, + 0.17821229, + 0.1867172, + 0.18280798, + 0.19545014, + 0.17992744, + 0.18349244, + 0.18148965, + 0.1886546, + 0.18667959, + 0.18530564, + 0.18633217, + 0.18802744, + 0.1814845, + 0.18673931, + 0.18262185, + 0.19048353, + 0.18660142 ], "implementation": "https", "version": "v0.1", @@ -3209,1006 +721,106 @@ }, { "result": [ - 0.061098557, - 0.122677565, - 0.06257435, - 0.12778594, - 0.06030236, - 0.120866634, - 0.059993576, - 0.11949572, - 0.063703716, - 0.12161578, - 0.12833966, - 0.060368165, - 0.06083092, - 0.06434434, - 0.06212958, - 0.064340495, - 0.06267771, - 0.05979742, - 0.12569734, - 0.12185507, - 0.060186822, - 0.12204336, - 0.1253036, - 0.06388343, - 0.12525854, - 0.060852796, - 0.12181904, - 0.12621278, - 0.06088263, - 0.06077933, - 0.122408405, - 0.062213145, - 0.062452976, - 0.11801532, - 0.061045542, - 0.061853305, - 0.061790224, - 0.06273316, - 0.06274884, - 0.12646689, - 0.12734273, - 0.12246875, - 0.1249662, - 0.061987977, - 0.11975378, - 0.061279792, - 0.1268083, - 0.12563269, - 0.12662059, - 0.12286781, - 0.12367272, - 0.11728802, - 0.12375009, - 0.06279944, - 0.12192425, - 0.06239667, - 0.12655386, - 0.06404017, - 0.064299986, - 0.12665547, - 0.06050855, - 0.06136467, - 0.060857967, - 0.061802648, - 0.12003638, - 0.12764299, - 0.12649962, - 0.061260782, - 0.12821585, - 0.060611945, - 0.05921954, - 0.12346959, - 0.12886742, - 0.12087482, - 0.06347828, - 0.12528199, - 0.12031462, - 0.0639886, - 0.06375981, - 0.062880166, - 0.12184213, - 0.12205527, - 0.1265297, - 0.06211663, - 0.123978555, - 0.12635484, - 0.12275845, - 0.06304368, - 0.061689246, - 0.11894658, - 0.06258468, - 0.120178185, - 0.065006085, - 0.0614003, - 0.06413384, - 0.06079768, - 0.12121103, - 0.06176101, - 0.061813965, - 0.12407761, - 0.06251261, - 0.1257532, - 0.063454546, - 0.12669946, - 0.12516311, - 0.062470052, - 0.06350435, - 0.06023116, - 0.12063188, - 0.12461037, - 0.063436404, - 0.11992528, - 0.0627828, - 0.06090916, - 0.06218947, - 0.06533247, - 0.1251869, - 0.061812624, - 0.06406887, - 0.06068265, - 0.12016556, - 0.12591602, - 0.1255677, - 0.12684308, - 0.060802583, - 0.12464005, - 0.06320735, - 0.062168337, - 0.062212307, - 0.12706186, - 0.061864033, - 0.059248224, - 0.12288502, - 0.061336495, - 0.06262787, - 0.06167879, - 0.12735505, - 0.061855666, - 0.061602697, - 0.06014244, - 0.060404032, - 0.060984675, - 0.12594001, - 0.062800124, - 0.062351476, - 0.06164358, - 0.06446282, - 0.06223159, - 0.06269588, - 0.06364729, - 0.12880242, - 0.12187908, - 0.06106908, - 0.060302358, - 0.06079494, - 0.12459275, - 0.06158942, - 0.12282457, - 0.116887435, - 0.12473626, - 0.1240523, - 0.12327415, - 0.12284162, - 0.124004245, - 0.06136621, - 0.12402576, - 0.12296199, - 0.06371356, - 0.12377531, - 0.12236627, - 0.12501334, - 0.06215816, - 0.12511283, - 0.06324485, - 0.06353244, - 0.12514012, - 0.12459142, - 0.062042885, - 0.11690081, - 0.06428719, - 0.12253537, - 0.061031543, - 0.06271566, - 0.11956, - 0.12740672, - 0.12106079, - 0.064277776, - 0.06302115, - 0.06078906, - 0.058266472, - 0.06300843, - 0.12190898, - 0.05923906, - 0.1181524, - 0.06096946, - 0.122085094, - 0.059712157, - 0.061239794, - 0.059939064, - 0.060928002, - 0.12593703, - 0.11892305, - 0.06272017, - 0.064566515, - 0.12500943, - 0.06372904, - 0.06234713, - 0.12592904, - 0.11872868, - 0.12349243, - 0.06395257, - 0.1254166, - 0.062703826, - 0.06210299, - 0.06329495, - 0.059193835, - 0.06371434, - 0.06042314, - 0.12626241, - 0.12590183, - 0.06360637, - 0.06365295, - 0.059588425, - 0.12816073, - 0.12911351, - 0.122024596, - 0.12822922, - 0.06087176, - 0.06288519, - 0.062819794, - 0.061675992, - 0.12638642, - 0.11536737, - 0.121176355, - 0.06313858, - 0.062790245, - 0.12160163, - 0.12305948, - 0.061529107, - 0.12033623, - 0.06349496, - 0.1205994, - 0.06288893, - 0.122656286, - 0.124886885, - 0.12304814, - 0.11650175, - 0.06180165, - 0.06174836, - 0.060449217, - 0.06156516, - 0.11905319, - 0.11786273, - 0.063385285, - 0.061827533, - 0.060296495, - 0.12642768, - 0.12568541, - 0.060418844, - 0.12155877, - 0.0630776, - 0.060743947, - 0.11996708, - 0.12793581, - 0.06313965, - 0.1284523, - 0.1255258, - 0.11923882, - 0.12739412, - 0.062143434, - 0.12604997, - 0.062129293, - 0.12340442, - 0.12136363, - 0.12741889, - 0.060423043, - 0.060728177, - 0.063859165, - 0.12740701, - 0.061496567, - 0.12379834, - 0.123021364, - 0.122087, - 0.12207956, - 0.06427016, - 0.061886005, - 0.06274253, - 0.120108515, - 0.061090786, - 0.063569725, - 0.060752984, - 0.062854566, - 0.12819423, - 0.06261461, - 0.12504536, - 0.06347985, - 0.063427135, - 0.06226781, - 0.12977119, - 0.064651854, - 0.124234535, - 0.061459504, - 0.12986355, - 0.119209856, - 0.124751404, - 0.063733175, - 0.12614915, - 0.12631008, - 0.12482989, - 0.12034548, - 0.1224444, - 0.06347581, - 0.118853256, - 0.124902815, - 0.061748292, - 0.1272086, - 0.061634257, - 0.06182192, - 0.12184995, - 0.060232755, - 0.12607664, - 0.06371958, - 0.12011516, - 0.061288483, - 0.117623225, - 0.12403134, - 0.12314628, - 0.06067355, - 0.12679115, - 0.060680486, - 0.122696385, - 0.06344334, - 0.06192609, - 0.061302215, - 0.062244542, - 0.061868303, - 0.0619339, - 0.06382878, - 0.1273313, - 0.06337379, - 0.06319447, - 0.12662446, - 0.12401527, - 0.122991055, - 0.12641264, - 0.12264216, - 0.06309408, - 0.122137345, - 0.06408302, - 0.12173261, - 0.12841131, - 0.124441914, - 0.12634987, - 0.061986707, - 0.064391375, - 0.063534975, - 0.122105986, - 0.064148754, - 0.12087193, - 0.1275767, - 0.124816924, - 0.12768798, - 0.123407744, - 0.06090919, - 0.06412758, - 0.062706694, - 0.061906293, - 0.12088335, - 0.06230492, - 0.12216677, - 0.12617236, - 0.12092181, - 0.11947854, - 0.118327886, - 0.116609104, - 0.121868506, - 0.11771331, - 0.06424832, - 0.12217119, - 0.0631032, - 0.06383693, - 0.12570591, - 0.12525968, - 0.12170119, - 0.12865895, - 0.12331589, - 0.12220424, - 0.061786372, - 0.12108162, - 0.060363963, - 0.063529514, - 0.06174939, - 0.12166741, - 0.119854756, - 0.11992821, - 0.12016259, - 0.12408515, - 0.1259497, - 0.12625326, - 0.059979994, - 0.063992456, - 0.06296323, - 0.12201907, - 0.06289185, - 0.060920395, - 0.06245094, - 0.12098013, - 0.063023835, - 0.12112317, - 0.061431702, - 0.12099802, - 0.060997713, - 0.06069562, - 0.1156374, - 0.06259204, - 0.121108875, - 0.061397847, - 0.061364565, - 0.12683481, - 0.1239895, - 0.12199623, - 0.12371302, - 0.06303822, - 0.123904705, - 0.06373938, - 0.12497988, - 0.06168437, - 0.061762985, - 0.062048923, - 0.060569096, - 0.061622765, - 0.12302462, - 0.11988064, - 0.060922846, - 0.12258299, - 0.06397334, - 0.058766793, - 0.12462706, - 0.11554163, - 0.061670348, - 0.06131367, - 0.118854515, - 0.12172762, - 0.0623502, - 0.06330903, - 0.061860055, - 0.06376819, - 0.06276494, - 0.06357121, - 0.12506407, - 0.12192823, - 0.0631195, - 0.12576704, - 0.06327021, - 0.05920159, - 0.12185841, - 0.1259599, - 0.06408476, - 0.12770161, - 0.1230431, - 0.12211784, - 0.12576449, - 0.11961059, - 0.06351152, - 0.1198752, - 0.06525488, - 0.121781625, - 0.12638734, - 0.06251528, - 0.06206309, - 0.063542515, - 0.06260917, - 0.12898925, - 0.062839456, - 0.061699014, - 0.12500338, - 0.062399905, - 0.063459046, - 0.116890036, - 0.058163855, - 0.060898986, - 0.121976696, - 0.12382451, - 0.06117277, - 0.061463483, - 0.062992096, - 0.12517282, - 0.12353551, - 0.06262687, - 0.06173612, - 0.061540145, - 0.12567279, - 0.12238838, - 0.12654354, - 0.12621146, - 0.06135368, - 0.12203463, - 0.06126906, - 0.06451874, - 0.121368885, - 0.060720246, - 0.063681684, - 0.0614191, - 0.064739615, - 0.064481474, - 0.12318916, - 0.06012208, - 0.12376385, - 0.060099784, - 0.120980844, - 0.06292485, - 0.061602972, - 0.06365584, - 0.0627104, - 0.063658886, - 0.11705061, - 0.06329363, - 0.121781625, - 0.12226321, - 0.060202073, - 0.12614657, - 0.061373, - 0.12353117, - 0.062471054, - 0.061343413, - 0.06418777, - 0.059270855, - 0.05882358, - 0.062205672, - 0.061868347, - 0.06340579, - 0.061123636, - 0.060697723, - 0.11871503, - 0.06212448, - 0.0636004, - 0.06491019, - 0.06427115, - 0.062795274, - 0.060539242, - 0.12750514, - 0.059909165, - 0.06354641, - 0.06120478, - 0.12920457, - 0.124803066, - 0.12569822, - 0.06234273, - 0.062379815, - 0.12301076, - 0.062037356, - 0.12706876, - 0.12775217, - 0.12815405, - 0.06502236, - 0.12418637, - 0.06366649, - 0.12165575, - 0.12473314, - 0.12309331, - 0.12540075, - 0.12773722, - 0.063183725, - 0.06194332, - 0.063115165, - 0.064503685, - 0.06362732, - 0.12624387, - 0.06288168, - 0.06080931, - 0.1206144, - 0.06183651, - 0.12972994, - 0.0627913, - 0.12643975, - 0.12600654, - 0.060561165, - 0.11908015, - 0.12842998, - 0.12820502, - 0.06314017, - 0.12675942, - 0.12744254, - 0.12307789, - 0.06124741, - 0.12446348, - 0.06025077, - 0.12062515, - 0.11767954, - 0.12114841, - 0.06347565, - 0.062389165, - 0.12471357, - 0.1267419, - 0.062019248, - 0.123556465, - 0.12412642, - 0.12194713, - 0.12459946, - 0.06373942, - 0.12405623, - 0.12525746, - 0.06053102, - 0.11909608, - 0.12103986, - 0.11888951, - 0.06283265, - 0.12484604, - 0.059830666, - 0.123886466, - 0.058721878, - 0.06505489, - 0.12024162, - 0.12088557, - 0.06497758, - 0.12537232, - 0.118689604, - 0.1185964, - 0.12487768, - 0.06234484, - 0.063239455, - 0.12181302, - 0.12500143, - 0.06144439, - 0.123892695, - 0.06322356, - 0.06075873, - 0.06400462, - 0.12386324, - 0.11797801, - 0.063977085, - 0.0610135, - 0.062170736, - 0.060455892, - 0.12700762, - 0.06192173, - 0.12656504, - 0.06069817, - 0.062323034, - 0.061751295, - 0.061373767, - 0.124465905, - 0.12777765, - 0.12406513, - 0.12224693, - 0.12786247, - 0.124376014, - 0.06329137, - 0.061780103, - 0.12600783, - 0.121166356, - 0.06139451, - 0.122465454, - 0.060811177, - 0.060406227, - 0.060910862, - 0.123562105, - 0.12718882, - 0.12698865, - 0.12500887, - 0.12385456, - 0.06134381, - 0.12768099, - 0.1207425, - 0.12633103, - 0.11933334, - 0.12735344, - 0.1217412, - 0.06198373, - 0.061577167, - 0.06328106, - 0.12780821, - 0.119899355, - 0.11884217, - 0.06499533, - 0.06288517, - 0.12572709, - 0.06370967, - 0.06299336, - 0.12635015, - 0.12317125, - 0.123528235, - 0.062334333, - 0.121721454, - 0.063040406, - 0.060503077, - 0.12710865, - 0.12593082, - 0.1253199, - 0.12506114, - 0.06298848, - 0.12187009, - 0.06138891, - 0.06143218, - 0.122595355, - 0.12975028, - 0.061990198, - 0.058604315, - 0.062395692, - 0.064368166, - 0.12264681, - 0.12276988, - 0.05964031, - 0.062926926, - 0.124987945, - 0.06080277, - 0.058830444, - 0.12656274, - 0.06184245, - 0.06136579, - 0.06321543, - 0.11963763, - 0.12161548, - 0.12862557, - 0.06399388, - 0.062242173, - 0.12279626, - 0.12319045, - 0.058754504, - 0.064145856, - 0.12058943, - 0.12828861, - 0.06317596, - 0.061631527, - 0.06312177, - 0.061301287, - 0.12093809, - 0.124914594, - 0.06147969, - 0.12385189, - 0.1215742, - 0.062185816, - 0.12535793, - 0.06329084, - 0.12793434, - 0.12645, - 0.11965113, - 0.062352303, - 0.12161365, - 0.06285597, - 0.06130183, - 0.12684996, - 0.12684952, - 0.06215544, - 0.06363185, - 0.06042371, - 0.12557791, - 0.12269417, - 0.062173452, - 0.059899837, - 0.12786733, - 0.12386554, - 0.063487515, - 0.0636747, - 0.058852226, - 0.0626843, - 0.0625849, - 0.12451706, - 0.12167628, - 0.063683465, - 0.060833704, - 0.12347144, - 0.11772073, - 0.0647329, - 0.059449628, - 0.124460675, - 0.12304892, - 0.061370965, - 0.12278317, - 0.058206007, - 0.121803716, - 0.06251409, - 0.11924211, - 0.12743121, - 0.12565333, - 0.06275442, - 0.06352349, - 0.064351365, - 0.060097106, - 0.060317084, - 0.059768893, - 0.121791475, - 0.060224358, - 0.12532583, - 0.060764983, - 0.12077303, - 0.123844974, - 0.061764415, - 0.06125195, - 0.061555646, - 0.1236463, - 0.12514667, - 0.121424094, - 0.06172146, - 0.059762105, - 0.061486755, - 0.12457161, - 0.06326, - 0.0633896, - 0.062122516, - 0.12490207, - 0.06013389, - 0.06422362, - 0.061419457, - 0.12797524, - 0.12363866, - 0.12677658, - 0.06458394, - 0.060979757, - 0.12931338, - 0.06284752, - 0.06489921, - 0.12469534, - 0.06318158, - 0.12170537, - 0.12484324, - 0.12612495, - 0.1209938, - 0.118906245, - 0.061212316, - 0.12493468, - 0.12464009, - 0.062752806, - 0.12467642, - 0.0641423, - 0.1216294, - 0.1209582, - 0.060991958, - 0.061422933, - 0.12068459, - 0.12475638, - 0.123843476, - 0.122518815, - 0.061314374, - 0.06219265, - 0.12691875, - 0.06432875, - 0.06161244, - 0.06424724, - 0.06116942, - 0.121044785, - 0.06375235, - 0.06220792, - 0.12819417, - 0.12613277, - 0.11891829, - 0.058808018, - 0.06262901, - 0.121994704, - 0.061623022, - 0.12825878, - 0.12834923, - 0.12071676, - 0.12824294, - 0.12575309, - 0.06282522, - 0.12272275, - 0.06211538, - 0.124622494, - 0.12678842, - 0.12780456, - 0.12441278, - 0.118889384, - 0.12368323, - 0.06412907, - 0.06477927, - 0.06295068, - 0.058761925, - 0.062899806, - 0.059340063, - 0.058894932, - 0.11965655, - 0.124077566, - 0.058743656, - 0.11864628, - 0.119751774, - 0.06273457, - 0.12221417, - 0.121467434, - 0.120936885, - 0.12601312, - 0.1223208, - 0.06136741, - 0.0621674, - 0.124620505, - 0.12186019, - 0.06125989, - 0.06387756, - 0.06309048, - 0.06115474, - 0.060864925, - 0.12950446, - 0.12746058, - 0.12202926, - 0.061019138, - 0.12981099, - 0.061455812, - 0.11971428, - 0.0618985, - 0.12580271, - 0.062671095, - 0.061790176, - 0.123100474, - 0.12115817, - 0.062172294, - 0.0630974, - 0.1292075, - 0.12558155, - 0.060595244, - 0.061124552, - 0.06314932, - 0.06279811, - 0.064531155, - 0.062105816, - 0.124226145, - 0.12298026, - 0.12305574, - 0.061293487, - 0.061830226, - 0.060254183, - 0.1243921, - 0.12491277, - 0.06284794, - 0.06113546, - 0.063198164, - 0.12285613, - 0.0652593, - 0.12114529, - 0.06356058, - 0.12355269, - 0.06334004, - 0.061988022, - 0.06371018, - 0.12684947, - 0.062222466, - 0.06452483, - 0.061369646, - 0.058641843, - 0.058024712, - 0.059255727, - 0.06142778, - 0.061520416, - 0.12299057, - 0.1240438, - 0.062762305, - 0.1233913, - 0.06354816, - 0.060491633, - 0.12533638, - 0.120681874, - 0.12654531, - 0.12492515, - 0.12168613, - 0.120121546, - 0.059344687, - 0.12227504, - 0.059349224, - 0.061782755, - 0.12443372, - 0.12758052, - 0.12190324, - 0.06323058, - 0.06377576, - 0.11574595, - 0.061041545, - 0.06135239, - 0.063873164, - 0.11965734, - 0.12018278, - 0.061995443, - 0.06311943, - 0.062282298, - 0.117936656, - 0.06358508, - 0.12773158, - 0.12461038, - 0.12293449, - 0.060854096, - 0.06118873, - 0.062328547, - 0.11787681, - 0.061586753, - 0.06342965, - 0.12292409, - 0.119889475, - 0.12385673, - 0.061602287, - 0.061503604, - 0.122390024, - 0.12681009, - 0.06074304, - 0.063694805, - 0.06460628, - 0.12174, - 0.062427726, - 0.060504176, - 0.06104154, - 0.060948625, - 0.0609405, - 0.12081094 + 0.1209757, + 0.06461716, + 0.12208053, + 0.12628755, + 0.06423461, + 0.06466026, + 0.064468525, + 0.06150949, + 0.11556627, + 0.061117724, + 0.058900986, + 0.061541364, + 0.06421713, + 0.122391485, + 0.11854764, + 0.062412735, + 0.06344445, + 0.061374705, + 0.12119607, + 0.062948525, + 0.06296972, + 0.12764546, + 0.11927321, + 0.0638416, + 0.061785944, + 0.12657091, + 0.1185081, + 0.06205789, + 0.11753894, + 0.061609462, + 0.06306059, + 0.06364906, + 0.06057426, + 0.060378436, + 0.12644039, + 0.12533869, + 0.060731113, + 0.06401904, + 0.059758253, + 0.12701069, + 0.060719486, + 0.06508966, + 0.06079837, + 0.06062171, + 0.06261868, + 0.06443974, + 0.06011311, + 0.12656412, + 0.065150805, + 0.06208207, + 0.12525532, + 0.061621383, + 0.12625502, + 0.06314558, + 0.062638484, + 0.11895386, + 0.12088632, + 0.06210899, + 0.11629793, + 0.12670578, + 0.12395031, + 0.0617258, + 0.12547764, + 0.06341616, + 0.1256299, + 0.12809217, + 0.12414447, + 0.12216654, + 0.06081755, + 0.12818258, + 0.06282046, + 0.0627884, + 0.06078054, + 0.11904393, + 0.058164127, + 0.12659164, + 0.12188251, + 0.1282394, + 0.06425848, + 0.12467589, + 0.06436521, + 0.06368547, + 0.06265833, + 0.05915497, + 0.1225124, + 0.063117616, + 0.12640329, + 0.1262788, + 0.060370248, + 0.06139333, + 0.060157556, + 0.12261276, + 0.06478592, + 0.11583861, + 0.06183816, + 0.059078258, + 0.064146996, + 0.058531176, + 0.118616395, + 0.11897062 ], "implementation": "go-libp2p", "version": "v0.27", @@ -4216,1006 +828,106 @@ }, { "result": [ - 0.05979386, - 0.0614989, - 0.062057644, - 0.0629346, - 0.06084253, - 0.06274704, - 0.060138498, - 0.06168313, - 0.06249221, - 0.059208173, - 0.06315577, - 0.064342216, - 0.060861632, - 0.06126036, - 0.0606333, - 0.06253317, - 0.060403556, - 0.06038483, - 0.0645132, - 0.0636985, - 0.061929233, - 0.061765026, - 0.059337232, - 0.06328489, - 0.06281512, - 0.06109722, - 0.061478745, - 0.061853956, - 0.06432052, - 0.06203753, - 0.061623573, - 0.062024113, - 0.06343448, - 0.061724402, - 0.061243206, - 0.06135625, - 0.06527555, - 0.06260956, - 0.063790575, - 0.062603205, - 0.06271221, - 0.060480125, - 0.063212246, - 0.06289105, - 0.06414841, - 0.06258399, - 0.062755905, - 0.06096968, - 0.060282093, - 0.06320078, - 0.06204031, - 0.062469658, - 0.060154475, - 0.06227841, - 0.061607603, - 0.06294187, - 0.061856747, - 0.06370741, - 0.06157508, - 0.06274756, - 0.062030185, - 0.061531935, - 0.060438696, - 0.06317379, - 0.06250942, - 0.062877975, - 0.06079161, - 0.061781704, - 0.06282605, - 0.060677525, - 0.060185745, - 0.059562013, - 0.06184914, - 0.062941395, - 0.06266841, - 0.06186885, - 0.06369873, - 0.06320667, - 0.06289801, - 0.05978253, - 0.06366667, - 0.06116066, - 0.06428175, - 0.062050518, - 0.063048184, - 0.06055832, - 0.063025385, - 0.062117364, - 0.062324926, - 0.059716098, - 0.062684886, - 0.061443537, - 0.059105065, - 0.06423332, - 0.06210462, - 0.061752487, - 0.05933307, - 0.06337844, - 0.06265861, - 0.061626848, - 0.062014375, - 0.061660185, - 0.06400093, - 0.06269735, - 0.060753748, - 0.06418341, - 0.060211968, - 0.063170485, - 0.063441835, - 0.06301364, - 0.061521634, - 0.05989454, - 0.06359335, - 0.06003695, - 0.060188636, - 0.061473362, - 0.061123997, - 0.06094188, - 0.06238059, - 0.06219674, - 0.061772026, - 0.06302244, - 0.06217494, - 0.06420405, - 0.06289659, - 0.062873684, - 0.06372151, - 0.063877866, - 0.06170014, - 0.061899442, - 0.05930521, - 0.061791964, - 0.065101504, - 0.064989276, - 0.062589176, - 0.063712336, - 0.063643016, - 0.062825225, - 0.060757287, - 0.06384424, - 0.060841434, - 0.060667887, - 0.06038359, - 0.06306893, - 0.06158978, - 0.06308526, - 0.062179074, - 0.061404727, - 0.06363155, - 0.06086258, - 0.061433226, - 0.06251437, - 0.06185469, - 0.06378106, - 0.060349714, - 0.0617683, - 0.061294287, - 0.061439868, - 0.062053643, - 0.06141682, - 0.06316865, - 0.06431798, - 0.060288608, - 0.060308624, - 0.062582314, - 0.06297855, - 0.06232935, - 0.06172678, - 0.06423594, - 0.06368951, - 0.0627127, - 0.063415445, - 0.06462346, - 0.060237568, - 0.060226552, - 0.06392753, - 0.06298952, - 0.06081873, - 0.060775157, - 0.06408355, - 0.06211819, - 0.061403032, - 0.0643188, - 0.06205648, - 0.061182167, - 0.06278589, - 0.06137354, - 0.06444163, - 0.062767684, - 0.059858225, - 0.059899423, - 0.061598144, - 0.060082808, - 0.061800536, - 0.061146166, - 0.06150874, - 0.06220255, - 0.06374253, - 0.062975585, - 0.060746208, - 0.06361366, - 0.06064718, - 0.060326252, - 0.063673995, - 0.060362574, - 0.061759576, - 0.06434878, - 0.061801597, - 0.061751597, - 0.06268712, - 0.06439896, - 0.06359741, - 0.05931582, - 0.06360835, - 0.063618176, - 0.06148455, - 0.062682614, - 0.06508584, - 0.061175767, - 0.05927704, - 0.062290452, - 0.06253745, - 0.061925694, - 0.06459632, - 0.06180387, - 0.06227639, - 0.06159579, - 0.0617276, - 0.06339555, - 0.061987013, - 0.063767575, - 0.063278936, - 0.059473924, - 0.06335779, - 0.06458398, - 0.062495936, - 0.06226176, - 0.061254166, - 0.060763113, - 0.05875846, - 0.063741535, - 0.0609447, - 0.062923096, - 0.061072174, - 0.06363208, - 0.06420087, - 0.06207967, - 0.062252656, - 0.062823534, - 0.06353428, - 0.06304217, - 0.06528387, - 0.061899245, - 0.062377892, - 0.0636287, - 0.06358076, - 0.06275488, - 0.06503346, - 0.061556514, - 0.063839406, - 0.06246073, - 0.061890773, - 0.061340466, - 0.059371043, - 0.06015841, - 0.06289169, - 0.061485823, - 0.06227495, - 0.062264785, - 0.06239975, - 0.062895074, - 0.06374545, - 0.061236992, - 0.061852027, - 0.06423213, - 0.06392515, - 0.06014145, - 0.06428697, - 0.060686026, - 0.06354961, - 0.05985496, - 0.062677056, - 0.063709125, - 0.0621901, - 0.06230828, - 0.062765874, - 0.061910443, - 0.061705038, - 0.06363215, - 0.060811654, - 0.060879894, - 0.06282529, - 0.06075783, - 0.062227864, - 0.062732086, - 0.06360908, - 0.064911544, - 0.064153045, - 0.06169243, - 0.059889056, - 0.063457906, - 0.06365491, - 0.063651316, - 0.062058754, - 0.060719453, - 0.06034434, - 0.061166268, - 0.06277938, - 0.06292052, - 0.059201546, - 0.063161284, - 0.060935717, - 0.062285367, - 0.06371709, - 0.06281371, - 0.06152243, - 0.061419237, - 0.0601426, - 0.06225559, - 0.06233074, - 0.06439434, - 0.06165969, - 0.06076728, - 0.064408936, - 0.06293402, - 0.062192105, - 0.063760415, - 0.060685128, - 0.0644389, - 0.06314484, - 0.063121825, - 0.060743947, - 0.063668795, - 0.060660604, - 0.06271744, - 0.058328543, - 0.061411858, - 0.06189554, - 0.060102962, - 0.06431615, - 0.060885288, - 0.06374258, - 0.061255485, - 0.060424276, - 0.06279205, - 0.061910532, - 0.064550266, - 0.06110153, - 0.061334394, - 0.059249654, - 0.061582856, - 0.06166638, - 0.061446104, - 0.06369511, - 0.06147995, - 0.062022746, - 0.06435338, - 0.062320136, - 0.061921295, - 0.060921602, - 0.06372469, - 0.059915196, - 0.06441641, - 0.062130637, - 0.06195945, - 0.06069592, - 0.061742913, - 0.06417632, - 0.06350658, - 0.061873604, - 0.06091348, - 0.061492123, - 0.059304368, - 0.06412135, - 0.060104094, - 0.0637707, - 0.06258704, - 0.06350975, - 0.061825927, - 0.062071595, - 0.06430397, - 0.06437954, - 0.06046731, - 0.06410612, - 0.06244289, - 0.060224306, - 0.06141761, - 0.063339286, - 0.06368062, - 0.06120493, - 0.06137541, - 0.0594094, - 0.06267729, - 0.062760755, - 0.06237015, - 0.06215682, - 0.06228235, - 0.06282457, - 0.061552323, - 0.062088117, - 0.061403822, - 0.063143015, - 0.0618638, - 0.06165682, - 0.06284204, - 0.061789196, - 0.06313249, - 0.06179003, - 0.05904246, - 0.06340823, - 0.061967406, - 0.061541617, - 0.0637321, - 0.06195906, - 0.06358925, - 0.06425526, - 0.061410718, - 0.062804185, - 0.060278904, - 0.061348844, - 0.061958287, - 0.06306985, - 0.063841216, - 0.06377952, - 0.06095326, - 0.062317584, - 0.061831135, - 0.06287976, - 0.061591603, - 0.06335574, - 0.063638054, - 0.06300621, - 0.06183161, - 0.060828935, - 0.06424561, - 0.062007222, - 0.060872953, - 0.061587926, - 0.05841837, - 0.06090226, - 0.062893264, - 0.06187206, - 0.06366404, - 0.06215531, - 0.0640752, - 0.061135575, - 0.061393812, - 0.06363099, - 0.062193226, - 0.061784647, - 0.06169515, - 0.061955925, - 0.06236186, - 0.06310956, - 0.06434095, - 0.058605157, - 0.058241893, - 0.061688866, - 0.06202439, - 0.06189997, - 0.062434703, - 0.06232555, - 0.064332396, - 0.0618414, - 0.061250456, - 0.059787028, - 0.060930777, - 0.062661715, - 0.06380334, - 0.060944274, - 0.06418719, - 0.06348855, - 0.06316795, - 0.060639746, - 0.06297868, - 0.06227127, - 0.059747573, - 0.0640002, - 0.06148571, - 0.0607764, - 0.062461674, - 0.062380627, - 0.06278742, - 0.06357981, - 0.06163896, - 0.06327241, - 0.062274482, - 0.06381744, - 0.06347626, - 0.05827588, - 0.061138034, - 0.0632151, - 0.060229123, - 0.061270114, - 0.06267246, - 0.062692106, - 0.06231539, - 0.060769193, - 0.061368532, - 0.06075751, - 0.05929716, - 0.06179103, - 0.06419418, - 0.0624434, - 0.06092033, - 0.06116908, - 0.062283907, - 0.06174217, - 0.062652595, - 0.062773764, - 0.064602576, - 0.0629032, - 0.06079287, - 0.06312732, - 0.06256519, - 0.06322814, - 0.061317157, - 0.062558144, - 0.059749406, - 0.05980088, - 0.06146816, - 0.059700225, - 0.05925501, - 0.058709715, - 0.06263208, - 0.0635892, - 0.06127754, - 0.058073636, - 0.060395606, - 0.062980175, - 0.062253, - 0.063260496, - 0.06042692, - 0.06323225, - 0.06320897, - 0.06155976, - 0.06341107, - 0.06461691, - 0.06509862, - 0.059244685, - 0.06372436, - 0.06423378, - 0.060984038, - 0.06346932, - 0.062351085, - 0.062750496, - 0.06232268, - 0.062089987, - 0.0628622, - 0.06171485, - 0.061235707, - 0.062559515, - 0.06216701, - 0.06365875, - 0.06377454, - 0.06374699, - 0.061479732, - 0.06068172, - 0.06138454, - 0.06152995, - 0.063729495, - 0.05916323, - 0.06041075, - 0.064493924, - 0.06286075, - 0.0639641, - 0.0598729, - 0.06281571, - 0.062856816, - 0.06194866, - 0.06313351, - 0.061772507, - 0.06380168, - 0.06276818, - 0.061157312, - 0.063751616, - 0.063188456, - 0.060277607, - 0.06325138, - 0.06512414, - 0.061305415, - 0.062273193, - 0.060417358, - 0.061609734, - 0.062217303, - 0.060880408, - 0.060569335, - 0.061913934, - 0.06444328, - 0.060207047, - 0.06164716, - 0.064480714, - 0.06273292, - 0.06335622, - 0.062218167, - 0.062090505, - 0.06155317, - 0.0627704, - 0.060952976, - 0.06328552, - 0.062280163, - 0.061459187, - 0.061888028, - 0.05970221, - 0.062122222, - 0.0597407, - 0.058327984, - 0.061222583, - 0.062315445, - 0.061566573, - 0.063535646, - 0.06215149, - 0.062856615, - 0.06197932, - 0.06155451, - 0.06445024, - 0.064445965, - 0.062247932, - 0.05917135, - 0.060923513, - 0.06136525, - 0.062816456, - 0.061488234, - 0.063800745, - 0.061575547, - 0.06130228, - 0.06310618, - 0.061906185, - 0.06272591, - 0.06368562, - 0.06079202, - 0.061001748, - 0.05997783, - 0.061381154, - 0.06371883, - 0.06344037, - 0.06214938, - 0.061319023, - 0.059773207, - 0.06115178, - 0.06529025, - 0.06371798, - 0.064129755, - 0.06255588, - 0.0609593, - 0.060296375, - 0.063391164, - 0.0643208, - 0.06268255, - 0.06369317, - 0.061821412, - 0.06421077, - 0.06086433, - 0.061842367, - 0.06279925, - 0.06290217, - 0.059898548, - 0.06383062, - 0.060675934, - 0.06276366, - 0.059785724, - 0.06269804, - 0.060327776, - 0.06355544, - 0.061033607, - 0.06177277, - 0.06356359, - 0.064168565, - 0.059250753, - 0.06369532, - 0.061907504, - 0.061360195, - 0.061452452, - 0.06331769, - 0.06321592, - 0.063089624, - 0.06084608, - 0.062607065, - 0.060414653, - 0.06371047, - 0.059321288, - 0.062762626, - 0.0621076, - 0.061927795, - 0.062539496, - 0.062565565, - 0.06356398, - 0.064264365, - 0.06326479, - 0.062072203, - 0.061838903, - 0.0646521, - 0.061973702, - 0.06420902, - 0.0646915, - 0.063238904, - 0.06356952, - 0.06360718, - 0.060874417, - 0.06041922, - 0.059130058, - 0.06118578, - 0.062250856, - 0.06410639, - 0.06399072, - 0.06508581, - 0.06090668, - 0.06323747, - 0.061443124, - 0.05976701, - 0.058848005, - 0.062373713, - 0.061365414, - 0.06444588, - 0.062794365, - 0.06412159, - 0.062258974, - 0.06310725, - 0.06228619, - 0.06436208, - 0.063303985, - 0.060171414, - 0.061232474, - 0.06084174, - 0.06357324, - 0.06345992, - 0.063671134, - 0.06068351, - 0.06430609, - 0.06265557, - 0.06110075, - 0.065136455, - 0.059910703, - 0.062354036, - 0.060344014, - 0.060081746, - 0.06356441, - 0.060783196, - 0.062382977, - 0.059761215, - 0.06524583, - 0.061889578, - 0.061759107, - 0.06311186, - 0.06324214, - 0.059268165, - 0.061348207, - 0.062435903, - 0.06089429, - 0.06205786, - 0.06321492, - 0.06324156, - 0.06433786, - 0.063115135, - 0.06017287, - 0.06384268, - 0.060110845, - 0.06353545, - 0.062320348, - 0.063262254, - 0.06040462, - 0.059825834, - 0.06250469, - 0.060704, - 0.064890765, - 0.063007, - 0.060435154, - 0.06327815, - 0.06226422, - 0.059748843, - 0.06419631, - 0.059847493, - 0.061958812, - 0.062139746, - 0.06102512, - 0.063417464, - 0.06405791, - 0.06408854, - 0.061629616, - 0.062317874, - 0.06070151, - 0.062802985, - 0.064530745, - 0.061835118, - 0.06349172, - 0.06439148, - 0.06257857, - 0.0618435, - 0.0612463, - 0.059314977, - 0.061835606, - 0.06318485, - 0.05846553, - 0.060747154, - 0.06253624, - 0.06424052, - 0.06300817, - 0.0630872, - 0.06407303, - 0.06270849, - 0.06360294, - 0.06182536, - 0.0586877, - 0.06257508, - 0.06314644, - 0.06328054, - 0.06294638, - 0.06332351, - 0.061097328, - 0.062281944, - 0.060740136, - 0.061762482, - 0.06446493, - 0.060947508, - 0.06283282, - 0.060200904, - 0.05975719, - 0.061399903, - 0.06280819, - 0.062469244, - 0.061885603, - 0.06447722, - 0.061538026, - 0.059892207, - 0.061727017, - 0.062140662, - 0.060860913, - 0.063015096, - 0.061284184, - 0.06312262, - 0.061938345, - 0.06316551, - 0.060360573, - 0.064449936, - 0.06348923, - 0.06360755, - 0.064326376, - 0.06164371, - 0.059297927, - 0.061783917, - 0.06138533, - 0.06091118, - 0.062749654, - 0.063602544, - 0.06233289, - 0.064593695, - 0.05826391, - 0.06234892, - 0.06219125, - 0.061189026, - 0.058916453, - 0.06258262, - 0.061358728, - 0.06322487, - 0.06004748, - 0.06125965, - 0.06091724, - 0.062283725, - 0.062124405, - 0.06136791, - 0.060872372, - 0.0632676, - 0.060370337, - 0.06493723, - 0.06232615, - 0.06304331, - 0.061939873, - 0.05980563, - 0.060403984, - 0.064906195, - 0.06342987, - 0.06201962, - 0.062731, - 0.060963932, - 0.06344547, - 0.0609048, - 0.06363733, - 0.0628294, - 0.06383475, - 0.06265264, - 0.063161425, - 0.060189433, - 0.06246286, - 0.061266206, - 0.06319767, - 0.062539175, - 0.06061273, - 0.058746524, - 0.061816245, - 0.06374292, - 0.063560665, - 0.06317224, - 0.063223965, - 0.06303183, - 0.062025357, - 0.06335688, - 0.06375669, - 0.064367265, - 0.06306756, - 0.06368245, - 0.0640907, - 0.06307405, - 0.061457425, - 0.060045425, - 0.061761852, - 0.061942898, - 0.06431174, - 0.05982536, - 0.061410792, - 0.061968915, - 0.0620733, - 0.06280793, - 0.06380812, - 0.06142668, - 0.061766844, - 0.0649119, - 0.060845394, - 0.063008584, - 0.064966306, - 0.05803107, - 0.062541865, - 0.06417117, - 0.060877066, - 0.06134829, - 0.060287263, - 0.06326362, - 0.061103053, - 0.06101631, - 0.060647454, - 0.06449227, - 0.06128844, - 0.06360569, - 0.06276879, - 0.06486922, - 0.06345363, - 0.06441076, - 0.060451847, - 0.0627912, - 0.061479166, - 0.06382031, - 0.06380985, - 0.059796836, - 0.060898013, - 0.061231285, - 0.061917424, - 0.0632277, - 0.061581664, - 0.059430394, - 0.06280849, - 0.060878523, - 0.06413634, - 0.061140038, - 0.06255095, - 0.06420944, - 0.061289538, - 0.06400026, - 0.06187256, - 0.06394408, - 0.06375153, - 0.06455168, - 0.06363476, - 0.06296707, - 0.063756734, - 0.060728095, - 0.060522046, - 0.060161687, - 0.06463918, - 0.064323545, - 0.05979955, - 0.062341843, - 0.06195332, - 0.061778024, - 0.06386776, - 0.06293185, - 0.06279565, - 0.06321745, - 0.06185388, - 0.06234759, - 0.061229877, - 0.06357985, - 0.05862019, - 0.061321087, - 0.060375992, - 0.0618004, - 0.061773814, - 0.06298199, - 0.062774315, - 0.061376244, - 0.06185918, - 0.06464773, - 0.061283413, - 0.06282341, - 0.06262298, - 0.063581094, - 0.06085791, - 0.06366299, - 0.06178756, - 0.06369349, - 0.06303738, - 0.060733046 + 0.06345447, + 0.061587356, + 0.06172834, + 0.063658975, + 0.062401403, + 0.06272092, + 0.062954806, + 0.061134584, + 0.06287806, + 0.059102934, + 0.061779834, + 0.059013218, + 0.063302524, + 0.06478104, + 0.063023314, + 0.064325534, + 0.06295493, + 0.06332099, + 0.06492679, + 0.06060422, + 0.0626502, + 0.062015872, + 0.062239226, + 0.06217321, + 0.061391417, + 0.06288373, + 0.05990264, + 0.06327026, + 0.061320774, + 0.06497625, + 0.062249515, + 0.063625515, + 0.06403047, + 0.06253672, + 0.062313348, + 0.064202726, + 0.06206468, + 0.063333996, + 0.060909577, + 0.06468787, + 0.061171666, + 0.06333959, + 0.05857594, + 0.061285447, + 0.06001074, + 0.061667416, + 0.0626718, + 0.062484693, + 0.061498515, + 0.06310085, + 0.0616859, + 0.060247444, + 0.061949845, + 0.062382776, + 0.0649927, + 0.06444447, + 0.0637225, + 0.062274076, + 0.06135238, + 0.061473493, + 0.06365285, + 0.061756827, + 0.061779466, + 0.061847936, + 0.061907496, + 0.061833415, + 0.06341758, + 0.061410118, + 0.058665663, + 0.06232912, + 0.060347583, + 0.06289555, + 0.061114322, + 0.060711324, + 0.060766414, + 0.06345203, + 0.0639523, + 0.059675116, + 0.059893943, + 0.063581206, + 0.064657755, + 0.059562646, + 0.06305082, + 0.06067777, + 0.06356179, + 0.060934655, + 0.0634944, + 0.0639623, + 0.06420106, + 0.063125364, + 0.059076265, + 0.060855072, + 0.060172576, + 0.06149475, + 0.061990738, + 0.062807135, + 0.06066843, + 0.061482836, + 0.059808012, + 0.062721476 ], "implementation": "go-libp2p", "version": "v0.27", diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index 7247e185c..3e5e44917 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -17,7 +17,7 @@ async function main(clientPublicIP: string, serverPublicIP: string) { uploadBytes: 100 << 20, downloadBytes: 0, unit: "bit/s", - iterations: 10, + iterations: 5, }), runBenchmarkAcrossVersions({ name: "Single Connection throughput – Download 100 MiB", @@ -26,7 +26,7 @@ async function main(clientPublicIP: string, serverPublicIP: string) { uploadBytes: 0, downloadBytes: 100 << 20, unit: "bit/s", - iterations: 10, + iterations: 5, }), runBenchmarkAcrossVersions({ name: "Connection establishment + 1 byte round trip latencies", @@ -35,7 +35,7 @@ async function main(clientPublicIP: string, serverPublicIP: string) { uploadBytes: 1, downloadBytes: 1, unit: "s", - iterations: 1000, + iterations: 100, }), ], }; diff --git a/perf/runner/src/versions.ts b/perf/runner/src/versions.ts index 913b82af8..7274fea81 100644 --- a/perf/runner/src/versions.ts +++ b/perf/runner/src/versions.ts @@ -10,6 +10,11 @@ export const versions: Array = [ implementation: "rust-libp2p", transportStacks: ["tcp", "quic-v1"] }, + { + id: "v0.52-quinn", + implementation: "rust-libp2p", + transportStacks: ["tcp", "quic-v1"] + }, { id: "v0.1", implementation: "https", From 9ed7f1ab07759e4d18618ddbcfed73d0d04cefc9 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Fri, 12 May 2023 20:20:36 +0900 Subject: [PATCH 081/143] Add quic-go v0.34 --- perf/impl/Makefile | 11 +- perf/impl/go-libp2p/v0.27/Makefile | 3 + perf/impl/go-libp2p/v0.27/main.go | 16 +- perf/impl/https/v0.1/Makefile | 3 + perf/impl/https/v0.1/main.go | 6 +- perf/impl/quic-go/.gitignore | 4 + perf/impl/quic-go/v0.34/Makefile | 23 + perf/impl/rust-libp2p/v0.52-quinn/Makefile | 2 +- perf/impl/rust-libp2p/v0.52/Makefile | 2 +- perf/runner/benchmark-results.json | 1671 +++++++++++--------- perf/runner/src/index.ts | 4 +- perf/runner/src/versions.ts | 7 +- 12 files changed, 969 insertions(+), 783 deletions(-) create mode 100644 perf/impl/quic-go/.gitignore create mode 100644 perf/impl/quic-go/v0.34/Makefile diff --git a/perf/impl/Makefile b/perf/impl/Makefile index e744dd1aa..f7474f845 100644 --- a/perf/impl/Makefile +++ b/perf/impl/Makefile @@ -1,14 +1,21 @@ GO_SUBDIRS := $(wildcard go-libp2p/*/.) RUST_SUBDIRS := $(wildcard rust-libp2p/*/.) HTTPS_SUBDIRS := $(wildcard https/*/.) +QUIC_GO_SUBDIRS := $(wildcard quic-go/*/.) -all: $(RUST_SUBDIRS) $(GO_SUBDIRS) $(HTTPS_SUBDIRS) +all: $(RUST_SUBDIRS) $(GO_SUBDIRS) $(HTTPS_SUBDIRS) $(QUIC_GO_SUBDIRS) $(RUST_SUBDIRS): $(MAKE) -C $@ $(GO_SUBDIRS): $(MAKE) -C $@ $(HTTPS_SUBDIRS): $(MAKE) -C $@ +$(QUIC_GO_SUBDIRS): + $(MAKE) -C $@ + +clean: $(RUST_SUBDIRS:%=%clean) $(GO_SUBDIRS:%=%clean) $(HTTPS_SUBDIRS:%=%clean) $(QUIC_GO_SUBDIRS:%=%clean) +%clean: + $(MAKE) -C $* clean -.PHONY: $(GO_SUBDIRS) $(RUST_SUBDIRS) $(HTTPS_SUBDIRS) all +.PHONY: $(RUST_SUBDIRS) $(GO_SUBDIRS) $(HTTPS_SUBDIRS) $(QUIC_GO_SUBDIRS) all clean diff --git a/perf/impl/go-libp2p/v0.27/Makefile b/perf/impl/go-libp2p/v0.27/Makefile index 9668f0c42..3742d184b 100644 --- a/perf/impl/go-libp2p/v0.27/Makefile +++ b/perf/impl/go-libp2p/v0.27/Makefile @@ -3,4 +3,7 @@ all: perf perf: docker run --rm --user "$(shell id -u):$(shell id -g)" -v "$(shell pwd)":/usr/src/myapp -w /usr/src/myapp -e GOCACHE=/usr/src/myapp/.cache golang:1.20 go build -o perf . +clean: + rm perf + .PHONY: all diff --git a/perf/impl/go-libp2p/v0.27/main.go b/perf/impl/go-libp2p/v0.27/main.go index 7354f8a8c..c341e03b6 100644 --- a/perf/impl/go-libp2p/v0.27/main.go +++ b/perf/impl/go-libp2p/v0.27/main.go @@ -6,6 +6,7 @@ import ( "flag" "fmt" "time" + "strings" "github.com/libp2p/go-libp2p" "github.com/libp2p/go-libp2p/core/peer" @@ -15,7 +16,7 @@ import ( func main() { runServer := flag.Bool("run-server", false, "Should run as server") - serverIPAddr := flag.String("server-ip-address", "", "Server address") + serverAddr := flag.String("server-address", "", "Server address") transport := flag.String("transport", "tcp", "Transport to use") secretKeySeed := flag.Uint64("secret-key-seed", 0, "Server secret key seed") uploadBytes := flag.Uint64("upload-bytes", 0, "Upload bytes") @@ -49,12 +50,21 @@ func main() { select {} // run forever, exit on interrupt } + ipPort := strings.Split(*serverAddr, ":") + if len(ipPort) != 2 { + fmt.Println("Invalid server address format. Expected format: 'ip:port'") + return + } + + ip := ipPort[0] + port := ipPort[1] + var multiAddrStr string switch *transport { case "tcp": - multiAddrStr = fmt.Sprintf("/ip4/%s/tcp/4001/p2p/12D3KooWDpJ7As7BWAwRMfu1VU2WCqNjvq387JEYKDBj4kx6nXTN", *serverIPAddr) + multiAddrStr = fmt.Sprintf("/ip4/%s/tcp/%s/p2p/12D3KooWDpJ7As7BWAwRMfu1VU2WCqNjvq387JEYKDBj4kx6nXTN", ip, port) case "quic-v1": - multiAddrStr = fmt.Sprintf("/ip4/%s/udp/4001/quic-v1/p2p/12D3KooWDpJ7As7BWAwRMfu1VU2WCqNjvq387JEYKDBj4kx6nXTN", *serverIPAddr) + multiAddrStr = fmt.Sprintf("/ip4/%s/udp/%s/quic-v1/p2p/12D3KooWDpJ7As7BWAwRMfu1VU2WCqNjvq387JEYKDBj4kx6nXTN", ip, port) default: fmt.Println("Invalid transport. Accepted values: 'tcp' or 'quic-v1'") return diff --git a/perf/impl/https/v0.1/Makefile b/perf/impl/https/v0.1/Makefile index 9668f0c42..3742d184b 100644 --- a/perf/impl/https/v0.1/Makefile +++ b/perf/impl/https/v0.1/Makefile @@ -3,4 +3,7 @@ all: perf perf: docker run --rm --user "$(shell id -u):$(shell id -g)" -v "$(shell pwd)":/usr/src/myapp -w /usr/src/myapp -e GOCACHE=/usr/src/myapp/.cache golang:1.20 go build -o perf . +clean: + rm perf + .PHONY: all diff --git a/perf/impl/https/v0.1/main.go b/perf/impl/https/v0.1/main.go index 09dca12f3..f2524d22c 100644 --- a/perf/impl/https/v0.1/main.go +++ b/perf/impl/https/v0.1/main.go @@ -146,7 +146,7 @@ type Latencies struct { func main() { runServer := flag.Bool("run-server", false, "Should run as server") - serverIPAddr := flag.String("server-ip-address", "", "Server address") + serverAddr := flag.String("server-address", "", "Server address") _ = flag.String("transport", "", "Transport to use") _ = flag.Uint64("secret-key-seed", 0, "Server secret key seed") uploadBytes := flag.Uint64("upload-bytes", 0, "Upload bytes") @@ -178,13 +178,13 @@ func main() { } } else { // Client mode - if *serverIPAddr == "" { + if *serverAddr == "" { fmt.Println("Error: Please provide valid server-address flags for client mode.") return } // Run the client and print the results - durations, err := runClient(fmt.Sprintf("%s:%d", *serverIPAddr, 4001), *uploadBytes, *downloadBytes) + durations, err := runClient(*serverAddr, *uploadBytes, *downloadBytes) if err != nil { panic(err) } diff --git a/perf/impl/quic-go/.gitignore b/perf/impl/quic-go/.gitignore new file mode 100644 index 000000000..6652a25c1 --- /dev/null +++ b/perf/impl/quic-go/.gitignore @@ -0,0 +1,4 @@ +go-libp2p-*.zip +go-libp2p-* +go-libp2p-*/* +image.json diff --git a/perf/impl/quic-go/v0.34/Makefile b/perf/impl/quic-go/v0.34/Makefile new file mode 100644 index 000000000..b8c4a51af --- /dev/null +++ b/perf/impl/quic-go/v0.34/Makefile @@ -0,0 +1,23 @@ +commitSha := b3ed7966a563d528b7aa19265cbca929bf2bc73f + +all: perf + +perf: perf-${commitSha} + docker run --rm --user "$(shell id -u):$(shell id -g)" -v "$(shell pwd)/perf-${commitSha}":/usr/src/myapp -w /usr/src/myapp -e GOCACHE=/usr/src/myapp/.cache golang:1.20 go build -o perf cmd/main.go + cp perf-${commitSha}/perf . + +perf-${commitSha}: perf-${commitSha}.zip + unzip -o perf-${commitSha}.zip + +perf-${commitSha}.zip: + # TODO: Depend on upstream, not mxinden + wget -O $@ "https://github.com/mxinden/perf/archive/${commitSha}.zip" + +clean: + rm perf-*.zip + rm -rf perf-* + rm perf + +.PHONY: clean + + diff --git a/perf/impl/rust-libp2p/v0.52-quinn/Makefile b/perf/impl/rust-libp2p/v0.52-quinn/Makefile index cab8e16ec..7211ff749 100644 --- a/perf/impl/rust-libp2p/v0.52-quinn/Makefile +++ b/perf/impl/rust-libp2p/v0.52-quinn/Makefile @@ -1,4 +1,4 @@ -commitSha := d795f5c29271aa0af117f8e599ef07c2b874f2ad +commitSha := bb75989700e64318203027e7f6fe284a0e86a1e5 all: perf diff --git a/perf/impl/rust-libp2p/v0.52/Makefile b/perf/impl/rust-libp2p/v0.52/Makefile index 0370d10da..4a649348a 100644 --- a/perf/impl/rust-libp2p/v0.52/Makefile +++ b/perf/impl/rust-libp2p/v0.52/Makefile @@ -1,4 +1,4 @@ -commitSha := 59d8f3f02ce0b72320202bf43c84a8060f3db545 +commitSha := 08e4276e048f4d90c064960e689f41e4f30c80b9 all: perf diff --git a/perf/runner/benchmark-results.json b/perf/runner/benchmark-results.json index 5650ccd39..8be09bbc4 100644 --- a/perf/runner/benchmark-results.json +++ b/perf/runner/benchmark-results.json @@ -6,11 +6,23 @@ "results": [ { "result": [ - 23701616.745669935, - 23564988.770569358, - 23768107.96211605, - 23895253.60271939, - 24121270.555884488 + 435320241.80629236, + 462446477.6844952, + 475363041.5589508, + 509933685.4627763, + 471298443.2210251 + ], + "implementation": "quic-go", + "version": "v0.34", + "transportStack": "quic-v1" + }, + { + "result": [ + 23381807.27959374, + 21901887.85143298, + 23537633.11975275, + 21586885.43245907, + 23600338.194453776 ], "implementation": "rust-libp2p", "version": "v0.52", @@ -18,11 +30,11 @@ }, { "result": [ - 60527725.15704369, - 112086701.2038308, - 59383136.817177296, - 93718796.0597939, - 53484638.28892967 + 100840537.4994737, + 38326187.69827259, + 147477357.25609776, + 45194921.52350153, + 52954165.524267666 ], "implementation": "rust-libp2p", "version": "v0.52", @@ -30,11 +42,11 @@ }, { "result": [ - 21659297.726486947, - 23341807.105683643, - 24440617.614624586, - 18126934.246367745, - 23461274.56785629 + 24161158.138433795, + 24192381.68011527, + 23879046.91163901, + 23570392.07680671, + 21379295.93906058 ], "implementation": "rust-libp2p", "version": "v0.52-quinn", @@ -42,11 +54,11 @@ }, { "result": [ - 598711379.7225211, - 591781449.138027, - 582198651.4344352, - 590642765.9369774, - 592932026.4174708 + 573591970.784021, + 604555310.7696401, + 607828595.438483, + 591819193.9918051, + 588437784.4712127 ], "implementation": "rust-libp2p", "version": "v0.52-quinn", @@ -54,11 +66,11 @@ }, { "result": [ - 320123546.2157083, - 287017747.27790856, - 289747311.88868153, - 304736385.6227017, - 301275270.28947985 + 292021799.78984165, + 315032597.9525266, + 309568924.0421708, + 303076027.62170845, + 309355291.00080323 ], "implementation": "https", "version": "v0.1", @@ -66,11 +78,11 @@ }, { "result": [ - 261420844.58865663, - 258947455.50396326, - 296402214.2340132, - 265921548.55804124, - 259887446.03497446 + 283421085.12878627, + 286352411.8697239, + 278521554.8371451, + 271417461.01803356, + 279325066.62542135 ], "implementation": "go-libp2p", "version": "v0.27", @@ -78,11 +90,11 @@ }, { "result": [ - 628832315.7402982, - 594272922.0905726, - 639138563.3956187, - 611439043.7343302, - 611676769.0290568 + 610655441.7482173, + 626991523.5963205, + 664316544.0050887, + 632857467.2598459, + 611629672.9717267 ], "implementation": "go-libp2p", "version": "v0.27", @@ -96,11 +108,23 @@ "results": [ { "result": [ - 21859218.35949858, - 22991658.49578649, - 22903708.736048177, - 21645182.48414714, - 23933206.451734085 + 448777293.557613, + 461280030.79376423, + 458043464.01659936, + 445888770.8277632, + 432937173.9529852 + ], + "implementation": "quic-go", + "version": "v0.34", + "transportStack": "quic-v1" + }, + { + "result": [ + 21889412.52101773, + 23504449.538378894, + 20908064.473324146, + 21953690.200359866, + 23269158.332127962 ], "implementation": "rust-libp2p", "version": "v0.52", @@ -108,11 +132,11 @@ }, { "result": [ - 61102162.20841612, - 54729708.83313513, - 56295578.18206124, - 36830452.12378539, - 49140084.48640002 + 73022095.1847857, + 76160978.80535968, + 59148624.01441467, + 70576374.51409109, + 63773177.19255882 ], "implementation": "rust-libp2p", "version": "v0.52", @@ -120,11 +144,11 @@ }, { "result": [ - 22004219.352436535, - 20360608.348313875, - 20307238.416551843, - 23224103.48448984, - 21804939.700141765 + 22587624.866531868, + 24414898.66335401, + 23811463.163371466, + 23547219.7773905, + 23205415.833136484 ], "implementation": "rust-libp2p", "version": "v0.52-quinn", @@ -132,11 +156,11 @@ }, { "result": [ - 565206615.0914382, - 552048564.9754207, - 566336025.6309482, - 536528916.6219866, - 550925357.413946 + 550828439.6740036, + 589309740.2823771, + 558223397.0865445, + 611508833.8583512, + 558398694.4397224 ], "implementation": "rust-libp2p", "version": "v0.52-quinn", @@ -144,11 +168,11 @@ }, { "result": [ - 290975609.214642, - 285034167.642309, - 270358487.8064848, - 290322884.3128471, - 301395769.4258094 + 293112703.62440014, + 282399739.03146064, + 281159493.05536443, + 288963835.2215322, + 263303217.0979503 ], "implementation": "https", "version": "v0.1", @@ -156,11 +180,11 @@ }, { "result": [ - 266913680.74652013, - 249876426.17774028, - 289400328.90854543, - 283239214.10528994, - 273524793.9851862 + 249851389.70506987, + 259195569.39946565, + 269336124.61948353, + 278082719.5022667, + 276514656.8186941 ], "implementation": "go-libp2p", "version": "v0.27", @@ -168,11 +192,11 @@ }, { "result": [ - 622977854.4751083, - 609599375.1550595, - 602416788.7738562, - 618645789.0075171, - 632490240.0137044 + 624211179.4161563, + 619019630.4584877, + 631530908.027894, + 633759543.7624654, + 656258972.2515203 ], "implementation": "go-libp2p", "version": "v0.27", @@ -186,106 +210,213 @@ "results": [ { "result": [ - 0.121668012, - 0.123000392, - 0.127693453, - 0.123231776, - 0.123124538, - 0.125658405, - 0.120361009, - 0.126443177, - 0.128725699, - 0.121334477, - 0.12831772, - 0.117532734, - 0.118266945, - 0.130229082, - 0.126765808, - 0.125253034, - 0.123286472, - 0.126963299, - 0.124444743, - 0.126882678, - 0.126614962, - 0.127512811, - 0.122462116, - 0.121208318, - 0.124182478, - 0.12505566, - 0.121931139, - 0.122974075, - 0.125640081, - 0.126845649, - 0.12271998, - 0.128926577, - 0.120380985, - 0.125778955, - 0.123167886, - 0.121142183, - 0.122787015, - 0.116969866, - 0.12120843, - 0.117270687, - 0.126814855, - 0.121397685, - 0.127229493, - 0.122751628, - 0.123687011, - 0.120407503, - 0.120348949, - 0.126937061, - 0.127140672, - 0.121615844, - 0.126490974, - 0.118205311, - 0.124128839, - 0.128267264, - 0.122984583, - 0.120176646, - 0.127905556, - 0.124160334, - 0.119235456, - 0.126607342, - 0.118668612, - 0.122134476, - 0.127110837, - 0.120589302, - 0.128735324, - 0.127164689, - 0.118998502, - 0.124764522, - 0.116193189, - 0.128063609, - 0.128245819, - 0.126933977, - 0.120283207, - 0.118072403, - 0.125990765, - 0.119276354, - 0.124195797, - 0.123102047, - 0.122362328, - 0.121438051, - 0.128272019, - 0.120334685, - 0.123455526, - 0.124274642, - 0.129863493, - 0.121329692, - 0.126005196, - 0.125203923, - 0.124486318, - 0.126084956, - 0.122785597, - 0.123777539, - 0.127155058, - 0.124022086, - 0.125246687, - 0.121254402, - 0.126043768, - 0.121255262, - 0.128978981, - 0.122426607 + 0.061844, + 0.060812, + 0.064498, + 0.064043, + 0.061386, + 0.060946, + 0.06238, + 0.061818, + 0.064433, + 0.06274, + 0.061558, + 0.063609, + 0.060651, + 0.06147, + 0.061429, + 0.059969, + 0.062733, + 0.064341, + 0.063715, + 0.061319, + 0.061088, + 0.063286, + 0.060601, + 0.063792, + 0.060162, + 0.060262, + 0.063832, + 0.062896, + 0.063419, + 0.059286, + 0.063057, + 0.063882, + 0.060774, + 0.062657, + 0.060985, + 0.063732, + 0.060174, + 0.063188, + 0.06291, + 0.061847, + 0.061211, + 0.062445, + 0.060822, + 0.064912, + 0.060225, + 0.062747, + 0.062336, + 0.060193, + 0.06219, + 0.063041, + 0.063504, + 0.062863, + 0.063858, + 0.064987, + 0.062832, + 0.06187, + 0.058821, + 0.064135, + 0.060797, + 0.060238, + 0.061865, + 0.064013, + 0.06353, + 0.063741, + 0.064215, + 0.061853, + 0.058321, + 0.061557, + 0.061819, + 0.063638, + 0.062889, + 0.06219, + 0.061522, + 0.05992, + 0.060657, + 0.063387, + 0.065381, + 0.06112, + 0.061093, + 0.063451, + 0.060852, + 0.062248, + 0.06378, + 0.062359, + 0.063149, + 0.061366, + 0.062292, + 0.061705, + 0.064492, + 0.062759, + 0.063921, + 0.06357, + 0.061255, + 0.063653, + 0.063414, + 0.061371, + 0.060681, + 0.064536, + 0.064871, + 0.06347 + ], + "implementation": "quic-go", + "version": "v0.34", + "transportStack": "quic-v1" + }, + { + "result": [ + 0.128810821, + 0.11895941, + 0.121518826, + 0.124296826, + 0.125208181, + 0.12756805, + 0.120218913, + 0.122111868, + 0.125701156, + 0.128772417, + 0.121938049, + 0.126827548, + 0.124940291, + 0.12381437, + 0.127521897, + 0.128542032, + 0.121752046, + 0.126816558, + 0.123061619, + 0.126796245, + 0.126958498, + 0.127067322, + 0.128637924, + 0.121366327, + 0.126631675, + 0.125409446, + 0.117889903, + 0.126985695, + 0.126790753, + 0.124978339, + 0.127043732, + 0.126684459, + 0.125256476, + 0.12225627, + 0.124115083, + 0.117041588, + 0.125262189, + 0.128967085, + 0.129031031, + 0.125112407, + 0.126721055, + 0.125143915, + 0.118668622, + 0.124310869, + 0.125345777, + 0.126870855, + 0.121538119, + 0.124655614, + 0.126279941, + 0.118298183, + 0.123611112, + 0.125974278, + 0.128103987, + 0.121444203, + 0.122595101, + 0.122275104, + 0.127966845, + 0.124962452, + 0.126072013, + 0.125261719, + 0.124279103, + 0.129820791, + 0.123115944, + 0.125915587, + 0.122744207, + 0.124320676, + 0.124873046, + 0.12493174, + 0.122274751, + 0.12794246, + 0.12869228, + 0.129485812, + 0.126240319, + 0.128042359, + 0.122645822, + 0.124983185, + 0.124049422, + 0.124562946, + 0.121831357, + 0.125692616, + 0.127252645, + 0.124477347, + 0.126989965, + 0.123457347, + 0.127158966, + 0.119774957, + 0.12809126, + 0.122892908, + 0.122387428, + 0.129058154, + 0.127130387, + 0.126774223, + 0.125051486, + 0.128280643, + 0.124146519, + 0.126507378, + 0.124358351, + 0.127251832, + 0.128305745, + 0.122038288 ], "implementation": "rust-libp2p", "version": "v0.52", @@ -293,106 +424,106 @@ }, { "result": [ - 0.126883463, - 0.12538224, - 0.123134364, - 0.12737136, - 0.121799092, - 0.124956805, - 0.126123851, - 0.117873119, - 0.125493333, - 0.121649485, - 0.126709666, - 0.11942479, - 0.124546341, - 0.118529438, - 0.116460941, - 0.12572109, - 0.123938435, - 0.125756721, - 0.128857506, - 0.126463729, - 0.122223522, - 0.12583961, - 0.120286306, - 0.128311277, - 0.125954085, - 0.121983192, - 0.124060722, - 0.122538973, - 0.126785897, - 0.120957402, - 0.123502961, - 0.123830362, - 0.124850685, - 0.126366687, - 0.120130544, - 0.118665904, - 0.125876896, - 0.128981173, - 0.120752317, - 0.124941562, - 0.123956285, - 0.124938191, - 0.124663306, - 0.124846437, - 0.126677991, - 0.124822669, - 0.127923591, - 0.124036037, - 0.123910824, - 0.126894403, - 0.123577666, - 0.120992105, - 0.123911974, - 0.124894422, - 0.122978923, - 0.121060815, - 0.122954924, - 0.127416864, - 0.119421557, - 0.125364864, - 0.120559324, - 0.124617211, - 0.124722713, - 0.119713567, - 0.127457278, - 0.125679225, - 0.11973738, - 0.127460038, - 0.125684705, - 0.122846931, - 0.127471934, - 0.123463713, - 0.120471438, - 0.125448357, - 0.121660507, - 0.127548786, - 0.125639927, - 0.120749636, - 0.126304243, - 0.125666811, - 0.121775029, - 0.123253337, - 0.122788874, - 0.125393396, - 0.124702624, - 0.126657172, - 0.122066806, - 0.126401868, - 0.122805884, - 0.12097563, - 0.126559744, - 0.12702369, - 0.12677153, - 0.12554372, - 0.118692872, - 0.121635023, - 0.117703287, - 0.126238107, - 0.118291747, - 0.121902887 + 0.121638386, + 0.126176593, + 0.122701884, + 0.120434531, + 0.118521181, + 0.123873272, + 0.128721155, + 0.12317771, + 0.127206924, + 0.120766014, + 0.120428003, + 0.118290338, + 0.122757969, + 0.126194686, + 0.11985839, + 0.120956738, + 0.121434572, + 0.127416901, + 0.123697882, + 0.121804597, + 0.11774889, + 0.121356171, + 0.128687138, + 0.129935159, + 0.123232552, + 0.127086408, + 0.129637441, + 0.125922799, + 0.12695309, + 0.127842447, + 0.12484894, + 0.121894497, + 0.122919246, + 0.128477556, + 0.127059562, + 0.130036115, + 0.120669102, + 0.122980392, + 0.120594058, + 0.123719685, + 0.122860411, + 0.128217367, + 0.125800635, + 0.127461002, + 0.124600686, + 0.128388792, + 0.117979162, + 0.1270774, + 0.120534055, + 0.125575045, + 0.129278222, + 0.124919488, + 0.118470678, + 0.122680309, + 0.123463389, + 0.122419104, + 0.127479313, + 0.124849304, + 0.12502092, + 0.126722165, + 0.119884909, + 0.12099244, + 0.126538594, + 0.119638965, + 0.126270377, + 0.120434169, + 0.117883688, + 0.129403025, + 0.129336352, + 0.1283931, + 0.124971981, + 0.128905604, + 0.128751375, + 0.119683761, + 0.126156156, + 0.119506494, + 0.130266613, + 0.125890439, + 0.123997921, + 0.124674051, + 0.124586697, + 0.123641013, + 0.128439877, + 0.127489288, + 0.118514586, + 0.121378506, + 0.128853261, + 0.124959584, + 0.127574412, + 0.118657886, + 0.116321579, + 0.121985042, + 0.121523185, + 0.126034191, + 0.125356225, + 0.127142548, + 0.123616072, + 0.118618765, + 0.125074252, + 0.128771719 ], "implementation": "rust-libp2p", "version": "v0.52", @@ -400,106 +531,106 @@ }, { "result": [ - 0.124315652, - 0.121658459, - 0.121978059, - 0.125725367, - 0.123770634, - 0.126169429, - 0.125424312, - 0.126852017, - 0.12691487, - 0.123335063, - 0.128619882, - 0.129003958, - 0.128305455, - 0.123803246, - 0.127337054, - 0.119584031, - 0.123829083, - 0.121247496, - 0.123342974, - 0.125432113, - 0.12390778, - 0.123019476, - 0.128228822, - 0.122530866, - 0.121467182, - 0.120360188, - 0.126406114, - 0.123919693, - 0.12061101, - 0.127078076, - 0.12518106, - 0.11663799, - 0.119261925, - 0.126347965, - 0.124364942, - 0.125407826, - 0.126926461, - 0.127437222, - 0.123449448, - 0.12515775, - 0.124936097, - 0.125199553, - 0.123439156, - 0.127136409, - 0.124054663, - 0.125724079, - 0.126195438, - 0.126478938, - 0.125315968, - 0.128619611, - 0.11759313, - 0.123536449, - 0.120022765, - 0.125455602, - 0.119138372, - 0.123676893, - 0.127000281, - 0.121461803, - 0.126330562, - 0.121516877, - 0.122947556, - 0.127346599, - 0.125578892, - 0.128326931, - 0.123508164, - 0.123872963, - 0.127233331, - 0.122260664, - 0.125195453, - 0.12817221, - 0.126158351, - 0.118174291, - 0.123701352, - 0.12451043, - 0.120254365, - 0.121505816, - 0.116487015, - 0.126388, - 0.128826347, - 0.118316885, - 0.123724796, - 0.12340504, - 0.123107616, - 0.12592937, - 0.126964881, - 0.12131946, - 0.126608409, - 0.124057196, - 0.127262084, - 0.121555089, - 0.128254834, - 0.122932987, - 0.119506728, - 0.124428119, - 0.128196456, - 0.125987807, - 0.1212543, - 0.127470287, - 0.122801434, - 0.122770552 + 0.124661061, + 0.12666085, + 0.124948202, + 0.124568833, + 0.124045992, + 0.128241753, + 0.123874733, + 0.124012789, + 0.12073158, + 0.118419749, + 0.126962943, + 0.12367641, + 0.124317628, + 0.126468435, + 0.121397857, + 0.123537256, + 0.122644366, + 0.121047882, + 0.12132538, + 0.13005451, + 0.125769741, + 0.12357725, + 0.121436973, + 0.123244156, + 0.125518943, + 0.123490337, + 0.121295528, + 0.122848631, + 0.12384361, + 0.125602128, + 0.125866821, + 0.125491231, + 0.123595256, + 0.12107832, + 0.123667392, + 0.128148293, + 0.128210277, + 0.125481915, + 0.118185453, + 0.11910785, + 0.122465858, + 0.123394574, + 0.128029041, + 0.124013094, + 0.116141826, + 0.126822987, + 0.122071701, + 0.127476779, + 0.126545798, + 0.122637859, + 0.119323896, + 0.127275786, + 0.125091818, + 0.126719698, + 0.121606431, + 0.115832786, + 0.128450729, + 0.127843301, + 0.126985324, + 0.122380118, + 0.124166746, + 0.1254551, + 0.128034204, + 0.12526099, + 0.12823865, + 0.124217197, + 0.126298442, + 0.128756156, + 0.127425191, + 0.123403441, + 0.123417427, + 0.123691094, + 0.12834209, + 0.125943255, + 0.118467554, + 0.127053317, + 0.119377459, + 0.122853148, + 0.121472273, + 0.126035102, + 0.123128685, + 0.126970231, + 0.122753662, + 0.127354454, + 0.128136556, + 0.121278536, + 0.123023842, + 0.122975992, + 0.125964641, + 0.130141845, + 0.127186949, + 0.123113166, + 0.128091911, + 0.125129569, + 0.123579311, + 0.120344549, + 0.121655301, + 0.121349649, + 0.122655619, + 0.126600143 ], "implementation": "rust-libp2p", "version": "v0.52-quinn", @@ -507,106 +638,106 @@ }, { "result": [ - 0.118557407, - 0.129367487, - 0.119667651, - 0.123787099, - 0.124614605, - 0.126707798, - 0.125840916, - 0.120444265, - 0.12205183, - 0.124644079, - 0.130191262, - 0.123519664, - 0.120409353, - 0.119216634, - 0.13010538, - 0.129412402, - 0.125457409, - 0.121830064, - 0.116368955, - 0.126860624, - 0.122762401, - 0.124907365, - 0.125346021, - 0.122297674, - 0.123740161, - 0.128776767, - 0.123239408, - 0.126187867, - 0.122735079, - 0.124247599, - 0.127077167, - 0.121880016, - 0.120792907, - 0.12624767, - 0.12706203, - 0.120769749, - 0.123950089, - 0.126547698, - 0.122498339, - 0.13030589, - 0.127540126, - 0.127620897, - 0.121705058, - 0.116058129, - 0.11973295, - 0.123976842, - 0.121005913, - 0.119776725, - 0.124884126, - 0.129121972, - 0.123586335, - 0.120923489, - 0.123787504, - 0.118007633, - 0.119975299, - 0.122552093, - 0.122987026, - 0.122106037, - 0.124946365, - 0.128078508, - 0.126071297, - 0.124684977, - 0.12712083, - 0.125258097, - 0.128768189, - 0.119691682, - 0.122145987, - 0.122636323, - 0.13038191, - 0.121972787, - 0.1174422, - 0.11857174, - 0.116670902, - 0.128806601, - 0.124499407, - 0.125594701, - 0.125389813, - 0.126210369, - 0.118511957, - 0.127048302, - 0.128654269, - 0.122661261, - 0.121244321, - 0.125613825, - 0.130503486, - 0.123771742, - 0.12196481, - 0.119953257, - 0.124347784, - 0.127777435, - 0.127985077, - 0.129983758, - 0.125692298, - 0.119680827, - 0.12266069, - 0.129236188, - 0.125723596, - 0.126052517, - 0.127762187, - 0.129383432 + 0.12684016, + 0.12787694, + 0.118462224, + 0.123904218, + 0.126477623, + 0.123935841, + 0.126778081, + 0.125846043, + 0.123029594, + 0.126034621, + 0.12726689, + 0.123164857, + 0.121562369, + 0.122446596, + 0.123654836, + 0.128929269, + 0.123165163, + 0.122616732, + 0.123250636, + 0.118295773, + 0.118681742, + 0.126558261, + 0.124888273, + 0.129237733, + 0.125315486, + 0.127766617, + 0.127644897, + 0.125945531, + 0.126859267, + 0.123596342, + 0.125339725, + 0.123815043, + 0.118871193, + 0.122167573, + 0.125805479, + 0.126346935, + 0.119080207, + 0.126124759, + 0.121023049, + 0.120482238, + 0.126161436, + 0.124227892, + 0.123465022, + 0.126162075, + 0.123742666, + 0.130353991, + 0.126821519, + 0.12448274, + 0.119747123, + 0.127110177, + 0.129082529, + 0.125762343, + 0.126044395, + 0.125685232, + 0.121161191, + 0.125794005, + 0.122526251, + 0.126052182, + 0.127597427, + 0.127996277, + 0.127985791, + 0.121157802, + 0.125318645, + 0.125642869, + 0.125664951, + 0.125770543, + 0.121862972, + 0.125665932, + 0.125496173, + 0.117887783, + 0.124100852, + 0.125700708, + 0.12191504, + 0.125854908, + 0.124363339, + 0.128333875, + 0.123947871, + 0.122178828, + 0.127100456, + 0.123816263, + 0.126165053, + 0.126485832, + 0.121735062, + 0.126152413, + 0.120870896, + 0.125941683, + 0.127820166, + 0.123999461, + 0.12476956, + 0.122320644, + 0.125705821, + 0.125773358, + 0.126226384, + 0.118833228, + 0.126462616, + 0.127197668, + 0.123003866, + 0.118915038, + 0.127497232, + 0.124705971 ], "implementation": "rust-libp2p", "version": "v0.52-quinn", @@ -614,106 +745,106 @@ }, { "result": [ - 0.18508218, - 0.17827375, - 0.19396462, - 0.18589123, - 0.19046028, - 0.1881602, - 0.18642539, - 0.1828627, - 0.18226781, - 0.1905887, - 0.18362504, - 0.18692651, - 0.18103275, - 0.18688953, - 0.17596821, - 0.18337077, - 0.19246833, - 0.18802053, - 0.18150024, - 0.19313905, - 0.18757653, - 0.18504354, - 0.18139851, - 0.18307193, - 0.18498154, - 0.18468052, - 0.1806075, - 0.18616264, - 0.188107, - 0.18439338, - 0.1845541, - 0.18922906, - 0.18627962, - 0.18337129, - 0.185091, - 0.19043624, - 0.18413623, - 0.17684413, - 0.19268216, - 0.18940519, - 0.1918334, - 0.18848182, - 0.19122635, - 0.18842778, - 0.18248205, - 0.18743384, - 0.18937829, - 0.18610607, - 0.17816359, - 0.1898336, - 0.1831328, - 0.18520987, - 0.18742532, - 0.17631459, - 0.1826238, - 0.18826276, - 0.18738666, - 0.18630262, - 0.18808877, - 0.1941709, - 0.18078187, - 0.18140486, - 0.1902356, - 0.18131192, - 0.19120483, - 0.19176443, - 0.18443212, - 0.18308993, - 0.18747921, - 0.1781338, - 0.19196792, - 0.18435647, - 0.18590584, - 0.18536775, - 0.18091542, - 0.18665215, - 0.18698396, - 0.18342577, - 0.18887636, - 0.17977275, - 0.18322293, - 0.1806967, - 0.18432827, - 0.17821229, - 0.1867172, - 0.18280798, - 0.19545014, - 0.17992744, - 0.18349244, - 0.18148965, - 0.1886546, - 0.18667959, - 0.18530564, - 0.18633217, - 0.18802744, - 0.1814845, - 0.18673931, - 0.18262185, - 0.19048353, - 0.18660142 + 0.18501733, + 0.18923008, + 0.18049216, + 0.19340678, + 0.1861875, + 0.1914942, + 0.18575798, + 0.19520913, + 0.18010223, + 0.19124515, + 0.1811332, + 0.19085026, + 0.18030554, + 0.18751548, + 0.183921, + 0.18907401, + 0.19030528, + 0.18198135, + 0.178762, + 0.1883241, + 0.18783239, + 0.188024, + 0.18608308, + 0.19024466, + 0.18471646, + 0.19437698, + 0.19007832, + 0.19379516, + 0.19018622, + 0.18439801, + 0.19320713, + 0.1921831, + 0.18576838, + 0.18736668, + 0.18765777, + 0.18439884, + 0.18509425, + 0.18425712, + 0.19181487, + 0.17813952, + 0.1922556, + 0.18742092, + 0.18172316, + 0.19022168, + 0.1865288, + 0.19128017, + 0.19162115, + 0.19370575, + 0.18444578, + 0.18895054, + 0.19003198, + 0.18962732, + 0.1905909, + 0.17974056, + 0.18016237, + 0.19035481, + 0.19284406, + 0.18282667, + 0.18866986, + 0.18624999, + 0.18460633, + 0.19283867, + 0.19002372, + 0.1847342, + 0.1893068, + 0.19573985, + 0.18462518, + 0.18524133, + 0.17935291, + 0.19063331, + 0.186608, + 0.18565576, + 0.1804417, + 0.1870286, + 0.19152515, + 0.19481224, + 0.18663289, + 0.18008529, + 0.18801773, + 0.17731303, + 0.1862143, + 0.19154595, + 0.17947997, + 0.19300668, + 0.18554401, + 0.18398392, + 0.18498778, + 0.19375242, + 0.18138859, + 0.1811724, + 0.18747015, + 0.18788917, + 0.1776267, + 0.18833229, + 0.19307281, + 0.19632874, + 0.18851216, + 0.1914809, + 0.18993904, + 0.1906922 ], "implementation": "https", "version": "v0.1", @@ -721,106 +852,106 @@ }, { "result": [ - 0.1209757, - 0.06461716, - 0.12208053, - 0.12628755, - 0.06423461, - 0.06466026, - 0.064468525, - 0.06150949, - 0.11556627, - 0.061117724, - 0.058900986, - 0.061541364, - 0.06421713, - 0.122391485, - 0.11854764, - 0.062412735, - 0.06344445, - 0.061374705, - 0.12119607, - 0.062948525, - 0.06296972, - 0.12764546, - 0.11927321, - 0.0638416, - 0.061785944, - 0.12657091, - 0.1185081, - 0.06205789, - 0.11753894, - 0.061609462, - 0.06306059, - 0.06364906, - 0.06057426, - 0.060378436, - 0.12644039, - 0.12533869, - 0.060731113, - 0.06401904, - 0.059758253, - 0.12701069, - 0.060719486, - 0.06508966, - 0.06079837, - 0.06062171, - 0.06261868, - 0.06443974, - 0.06011311, - 0.12656412, - 0.065150805, - 0.06208207, - 0.12525532, - 0.061621383, - 0.12625502, - 0.06314558, - 0.062638484, - 0.11895386, - 0.12088632, - 0.06210899, - 0.11629793, - 0.12670578, - 0.12395031, - 0.0617258, - 0.12547764, - 0.06341616, - 0.1256299, - 0.12809217, - 0.12414447, - 0.12216654, - 0.06081755, - 0.12818258, - 0.06282046, - 0.0627884, - 0.06078054, - 0.11904393, - 0.058164127, - 0.12659164, - 0.12188251, - 0.1282394, - 0.06425848, - 0.12467589, - 0.06436521, - 0.06368547, - 0.06265833, - 0.05915497, - 0.1225124, - 0.063117616, - 0.12640329, - 0.1262788, - 0.060370248, - 0.06139333, - 0.060157556, - 0.12261276, - 0.06478592, - 0.11583861, - 0.06183816, - 0.059078258, - 0.064146996, - 0.058531176, - 0.118616395, - 0.11897062 + 0.12175053, + 0.12605117, + 0.062221505, + 0.064337306, + 0.06010179, + 0.12711148, + 0.064213164, + 0.06219794, + 0.0616432, + 0.06224148, + 0.12437741, + 0.124406956, + 0.123852775, + 0.06070982, + 0.061578356, + 0.12111463, + 0.061252847, + 0.062286936, + 0.12250666, + 0.124051794, + 0.12347304, + 0.12263592, + 0.061597213, + 0.12196436, + 0.12330579, + 0.12485951, + 0.065018356, + 0.1218975, + 0.06416536, + 0.123087086, + 0.11792626, + 0.06486279, + 0.063403375, + 0.12562172, + 0.12446013, + 0.12691544, + 0.061206095, + 0.12253202, + 0.06276382, + 0.0628887, + 0.12503381, + 0.12402258, + 0.12443091, + 0.06201959, + 0.124864705, + 0.06484924, + 0.12805285, + 0.12085704, + 0.0625735, + 0.06436527, + 0.061899476, + 0.0617264, + 0.060473114, + 0.121796444, + 0.060230102, + 0.1189248, + 0.061669014, + 0.12606362, + 0.11739062, + 0.059744567, + 0.063605405, + 0.12625213, + 0.05962251, + 0.062324256, + 0.061505187, + 0.062143754, + 0.12310354, + 0.1262308, + 0.064093925, + 0.06264479, + 0.06223176, + 0.061603207, + 0.06411232, + 0.1216119, + 0.120782696, + 0.12754712, + 0.06035197, + 0.06186887, + 0.061882492, + 0.123415925, + 0.12336662, + 0.060795, + 0.1256234, + 0.12385519, + 0.121189505, + 0.06292543, + 0.06396173, + 0.063336305, + 0.061943702, + 0.12251919, + 0.12286289, + 0.0646475, + 0.06282486, + 0.059680667, + 0.11962047, + 0.122115314, + 0.061046507, + 0.11942746, + 0.12901482, + 0.061321888 ], "implementation": "go-libp2p", "version": "v0.27", @@ -828,106 +959,106 @@ }, { "result": [ - 0.06345447, - 0.061587356, - 0.06172834, - 0.063658975, - 0.062401403, - 0.06272092, - 0.062954806, - 0.061134584, - 0.06287806, - 0.059102934, - 0.061779834, - 0.059013218, - 0.063302524, - 0.06478104, - 0.063023314, - 0.064325534, - 0.06295493, - 0.06332099, - 0.06492679, - 0.06060422, - 0.0626502, - 0.062015872, - 0.062239226, - 0.06217321, - 0.061391417, - 0.06288373, - 0.05990264, - 0.06327026, - 0.061320774, - 0.06497625, - 0.062249515, - 0.063625515, - 0.06403047, - 0.06253672, - 0.062313348, - 0.064202726, - 0.06206468, - 0.063333996, - 0.060909577, - 0.06468787, - 0.061171666, - 0.06333959, - 0.05857594, - 0.061285447, - 0.06001074, - 0.061667416, - 0.0626718, - 0.062484693, - 0.061498515, - 0.06310085, - 0.0616859, - 0.060247444, - 0.061949845, - 0.062382776, - 0.0649927, - 0.06444447, - 0.0637225, - 0.062274076, - 0.06135238, - 0.061473493, - 0.06365285, - 0.061756827, - 0.061779466, - 0.061847936, - 0.061907496, - 0.061833415, - 0.06341758, - 0.061410118, - 0.058665663, - 0.06232912, - 0.060347583, - 0.06289555, - 0.061114322, - 0.060711324, - 0.060766414, - 0.06345203, - 0.0639523, - 0.059675116, - 0.059893943, - 0.063581206, - 0.064657755, - 0.059562646, - 0.06305082, - 0.06067777, - 0.06356179, - 0.060934655, - 0.0634944, - 0.0639623, - 0.06420106, - 0.063125364, - 0.059076265, - 0.060855072, - 0.060172576, - 0.06149475, - 0.061990738, - 0.062807135, - 0.06066843, - 0.061482836, - 0.059808012, - 0.062721476 + 0.06355237, + 0.060595006, + 0.057849895, + 0.06282445, + 0.06296295, + 0.062263384, + 0.061361652, + 0.06254827, + 0.06433191, + 0.06295908, + 0.06020783, + 0.06206818, + 0.06415346, + 0.061035052, + 0.062093258, + 0.06068142, + 0.062790394, + 0.061855037, + 0.064258575, + 0.06315244, + 0.060516555, + 0.062103324, + 0.06264966, + 0.06414131, + 0.06311047, + 0.0625298, + 0.061776433, + 0.06273881, + 0.06170282, + 0.06281448, + 0.062988296, + 0.061229974, + 0.062824264, + 0.063056946, + 0.061289493, + 0.0618638, + 0.06419081, + 0.062534384, + 0.06306849, + 0.061164565, + 0.061782323, + 0.060750503, + 0.06232041, + 0.062688634, + 0.06288993, + 0.061291166, + 0.060801283, + 0.06262256, + 0.05938406, + 0.06302028, + 0.060640726, + 0.06088046, + 0.06421143, + 0.058525525, + 0.06261851, + 0.06381055, + 0.060679577, + 0.06420371, + 0.062607035, + 0.06299439, + 0.061227873, + 0.06349264, + 0.06293519, + 0.061481, + 0.06365487, + 0.06260477, + 0.061818447, + 0.06258338, + 0.06283006, + 0.062424313, + 0.060585, + 0.06441027, + 0.05968948, + 0.061911583, + 0.061627526, + 0.0635312, + 0.060969494, + 0.062054284, + 0.061562333, + 0.058623374, + 0.06401842, + 0.062325384, + 0.064899884, + 0.061992045, + 0.060320485, + 0.063530885, + 0.06308903, + 0.06090222, + 0.061143447, + 0.05967578, + 0.061819967, + 0.062941566, + 0.06371909, + 0.062264062, + 0.064133525, + 0.06456559, + 0.062039033, + 0.062669404, + 0.06257181, + 0.061231002 ], "implementation": "go-libp2p", "version": "v0.27", diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index 3e5e44917..9af037532 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -70,7 +70,7 @@ function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Bench const killSTDOUT = execCommand(killCMD); console.error(killSTDOUT); - let serverCMD = `ssh ec2-user@${args.serverPublicIP} 'nohup ./impl/${version.implementation}/${version.id}/perf --run-server --secret-key-seed 0 > server.log 2>&1 & echo \$! > pidfile '`; + let serverCMD = `ssh ec2-user@${args.serverPublicIP} 'nohup ./impl/${version.implementation}/${version.id}/perf --run-server --server-address 0.0.0.0:4001 --secret-key-seed 0 > server.log 2>&1 & echo \$! > pidfile '`; const serverSTDOUT = execCommand(serverCMD); console.error(serverSTDOUT); @@ -129,7 +129,7 @@ interface Latencies { function runClient(args: ArgsRunBenchmark): Latencies { console.error(`=== Starting client ${args.implementation}/${args.id}/${args.transportStack}`); - const perfCMD = `./impl/${args.implementation}/${args.id}/perf --server-ip-address ${args.serverPublicIP} --transport ${args.transportStack} --upload-bytes ${args.uploadBytes} --download-bytes ${args.downloadBytes}` + const perfCMD = `./impl/${args.implementation}/${args.id}/perf --server-address ${args.serverPublicIP}:4001 --transport ${args.transportStack} --upload-bytes ${args.uploadBytes} --download-bytes ${args.downloadBytes}` const cmd = `ssh ec2-user@${args.clientPublicIP} 'for i in {1..${args.iterations}}; do ${perfCMD}; done'` const stdout = execCommand(cmd); diff --git a/perf/runner/src/versions.ts b/perf/runner/src/versions.ts index 7274fea81..e43e95e6d 100644 --- a/perf/runner/src/versions.ts +++ b/perf/runner/src/versions.ts @@ -1,10 +1,15 @@ export type Version = { id: string, - implementation: "go-libp2p" | "js-libp2p" | "nim-libp2p" | "rust-libp2p" | "zig-libp2p" | "https", + implementation: "go-libp2p" | "js-libp2p" | "nim-libp2p" | "rust-libp2p" | "zig-libp2p" | "https" | "quic-go", transportStacks: string[], } export const versions: Array = [ + { + id: "v0.34", + implementation: "quic-go", + transportStacks: ["quic-v1"] + }, { id: "v0.52", implementation: "rust-libp2p", From d6a7cd108bc7a10dac9eb1d6cfd2c36be245b75e Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Mon, 15 May 2023 11:57:00 +0300 Subject: [PATCH 082/143] simplify code for the HTTPS perf impl --- perf/impl/https/v0.1/main.go | 48 ++++++++++++++---------------------- 1 file changed, 18 insertions(+), 30 deletions(-) diff --git a/perf/impl/https/v0.1/main.go b/perf/impl/https/v0.1/main.go index f2524d22c..b0b2a0f4b 100644 --- a/perf/impl/https/v0.1/main.go +++ b/perf/impl/https/v0.1/main.go @@ -15,6 +15,7 @@ import ( "fmt" "io" "io/ioutil" + "log" "math/big" "net" "net/http" @@ -28,9 +29,8 @@ const ( func handleRequest(w http.ResponseWriter, r *http.Request) { // Read the big-endian bytesToSend value var bytesToSend uint64 - err := binary.Read(r.Body, binary.BigEndian, &bytesToSend) - if err != nil { - http.Error(w, "Failed to read u64 value", http.StatusBadRequest) + if err := binary.Read(r.Body, binary.BigEndian, &bytesToSend); err != nil { + http.Error(w, "failed to read uint64 value", http.StatusBadRequest) return } @@ -54,9 +54,7 @@ func handleRequest(w http.ResponseWriter, r *http.Request) { } } -func runClient(serverAddr string, uploadBytes, downloadBytes uint64) ([]time.Duration, error) { - durations := make([]time.Duration, 1) - +func runClient(serverAddr string, uploadBytes, downloadBytes uint64) (time.Duration, error) { client := &http.Client{ Transport: &http.Transport{ TLSClientConfig: &tls.Config{ @@ -71,22 +69,19 @@ func runClient(serverAddr string, uploadBytes, downloadBytes uint64) ([]time.Dur startTime := time.Now() resp, err := client.Post(fmt.Sprintf("https://%s/", serverAddr), "application/octet-stream", bytes.NewReader(reqBody)) if err != nil { - return durations, err + return 0, err } respBody, err := ioutil.ReadAll(resp.Body) if err != nil { - fmt.Printf("Error reading response: %v\n", err) - return durations, err - } else if uint64(len(respBody)) != downloadBytes { - fmt.Printf("Expected %d bytes in response, but received %d\n", downloadBytes, len(respBody)) - return durations, err + return 0, fmt.Errorf("error reading response: %w\n", err) + } + defer resp.Body.Close() + if uint64(len(respBody)) != downloadBytes { + return 0, fmt.Errorf("expected %d bytes in response, but received %d\n", downloadBytes, len(respBody)) } - resp.Body.Close() - - durations[0] = time.Since(startTime) - return durations, nil + return time.Since(startTime), nil } func generateEphemeralCertificate() (tls.Certificate, error) { @@ -141,7 +136,7 @@ func generateEphemeralCertificate() (tls.Certificate, error) { } type Latencies struct { - Latencies []float32 `json:"latencies"` + Latencies []float64 `json:"latencies"` } func main() { @@ -157,8 +152,7 @@ func main() { // Generate an ephemeral TLS certificate and private key cert, err := generateEphemeralCertificate() if err != nil { - fmt.Printf("Error generating ephemeral certificate: %v\n", err) - return + log.Fatalf("Error generating ephemeral certificate: %v\n", err) } // Create a new HTTPS server with the ephemeral certificate @@ -179,31 +173,25 @@ func main() { } else { // Client mode if *serverAddr == "" { - fmt.Println("Error: Please provide valid server-address flags for client mode.") - return + flag.Usage() + log.Fatal("Error: Please provide valid server-address flags for client mode.") } // Run the client and print the results - durations, err := runClient(*serverAddr, *uploadBytes, *downloadBytes) + d, err := runClient(*serverAddr, *uploadBytes, *downloadBytes) if err != nil { - panic(err) + log.Fatal(err) } // Convert durations to seconds and marshal as JSON - timesS := make([]float32, 0, len(durations)) - for _, d := range durations { - timesS = append(timesS, float32(d.Seconds())) - } - latencies := Latencies{ - Latencies: timesS, + Latencies: []float64{d.Seconds()}, } jsonB, err := json.Marshal(latencies) if err != nil { panic(err) } - fmt.Println(string(jsonB)) } } From eff32dec610b416a85b94a88af7cec49bad7e179 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 17 May 2023 13:39:11 +0900 Subject: [PATCH 083/143] Run ping and iperf and commit results --- perf/runner/benchmark-results.json | 1932 ++++++++++++---------- perf/runner/src/benchmark-result-type.ts | 12 + perf/runner/src/index.ts | 122 +- perf/terraform/user-data.sh | 6 +- 4 files changed, 1158 insertions(+), 914 deletions(-) diff --git a/perf/runner/benchmark-results.json b/perf/runner/benchmark-results.json index 8be09bbc4..5d6d59bc2 100644 --- a/perf/runner/benchmark-results.json +++ b/perf/runner/benchmark-results.json @@ -6,11 +6,11 @@ "results": [ { "result": [ - 435320241.80629236, - 462446477.6844952, - 475363041.5589508, - 509933685.4627763, - 471298443.2210251 + 474417794.4677891, + 462379438.94531333, + 474882957.87389225, + 472889626.4961351, + 462063624.4358198 ], "implementation": "quic-go", "version": "v0.34", @@ -18,11 +18,11 @@ }, { "result": [ - 23381807.27959374, - 21901887.85143298, - 23537633.11975275, - 21586885.43245907, - 23600338.194453776 + 22559790.023022857, + 23524227.44536793, + 23250305.27441416, + 21922422.459196728, + 23649472.46812365 ], "implementation": "rust-libp2p", "version": "v0.52", @@ -30,11 +30,11 @@ }, { "result": [ - 100840537.4994737, - 38326187.69827259, - 147477357.25609776, - 45194921.52350153, - 52954165.524267666 + 97914043.1904787, + 62144199.76990087, + 63872198.500458345, + 53970207.98926865, + 53260172.94150097 ], "implementation": "rust-libp2p", "version": "v0.52", @@ -42,11 +42,11 @@ }, { "result": [ - 24161158.138433795, - 24192381.68011527, - 23879046.91163901, - 23570392.07680671, - 21379295.93906058 + 23515757.013399474, + 20215257.089284617, + 21073574.43878669, + 23751335.214581426, + 23870734.957599763 ], "implementation": "rust-libp2p", "version": "v0.52-quinn", @@ -54,11 +54,11 @@ }, { "result": [ - 573591970.784021, - 604555310.7696401, - 607828595.438483, - 591819193.9918051, - 588437784.4712127 + 585071224.6885961, + 564122883.0005387, + 601602222.2636776, + 573379487.0183829, + 593773818.090205 ], "implementation": "rust-libp2p", "version": "v0.52-quinn", @@ -66,11 +66,11 @@ }, { "result": [ - 292021799.78984165, - 315032597.9525266, - 309568924.0421708, - 303076027.62170845, - 309355291.00080323 + 307504345.4815674, + 307049864.1607806, + 305569317.1787684, + 299933512.2271783, + 309573869.6461722 ], "implementation": "https", "version": "v0.1", @@ -78,11 +78,11 @@ }, { "result": [ - 283421085.12878627, - 286352411.8697239, - 278521554.8371451, - 271417461.01803356, - 279325066.62542135 + 287800980.76480824, + 281363671.0025105, + 283999135.7410029, + 275834039.9122788, + 276217724.6617089 ], "implementation": "go-libp2p", "version": "v0.27", @@ -90,11 +90,11 @@ }, { "result": [ - 610655441.7482173, - 626991523.5963205, - 664316544.0050887, - 632857467.2598459, - 611629672.9717267 + 625064165.3990065, + 624672569.5981356, + 631085113.8804889, + 622547375.9986345, + 618318290.2512397 ], "implementation": "go-libp2p", "version": "v0.27", @@ -108,11 +108,11 @@ "results": [ { "result": [ - 448777293.557613, - 461280030.79376423, - 458043464.01659936, - 445888770.8277632, - 432937173.9529852 + 448653441.94081503, + 463726224.559235, + 462576532.17370397, + 453282684.05169034, + 454557218.14672446 ], "implementation": "quic-go", "version": "v0.34", @@ -120,11 +120,11 @@ }, { "result": [ - 21889412.52101773, - 23504449.538378894, - 20908064.473324146, - 21953690.200359866, - 23269158.332127962 + 24272938.352030843, + 23612409.98601879, + 23889319.88239235, + 19732456.44340771, + 22556224.638749085 ], "implementation": "rust-libp2p", "version": "v0.52", @@ -132,11 +132,11 @@ }, { "result": [ - 73022095.1847857, - 76160978.80535968, - 59148624.01441467, - 70576374.51409109, - 63773177.19255882 + 69297405.7025867, + 61729457.91142594, + 102231401.68700998, + 86695376.69219294, + 78425397.4811756 ], "implementation": "rust-libp2p", "version": "v0.52", @@ -144,11 +144,11 @@ }, { "result": [ - 22587624.866531868, - 24414898.66335401, - 23811463.163371466, - 23547219.7773905, - 23205415.833136484 + 23926321.026550617, + 20128513.3682652, + 20875194.244746435, + 23317750.232327037, + 20751075.591506794 ], "implementation": "rust-libp2p", "version": "v0.52-quinn", @@ -156,11 +156,11 @@ }, { "result": [ - 550828439.6740036, - 589309740.2823771, - 558223397.0865445, - 611508833.8583512, - 558398694.4397224 + 559411761.0686907, + 571742866.2255255, + 579268122.7634223, + 570463202.2884122, + 585325675.8765239 ], "implementation": "rust-libp2p", "version": "v0.52-quinn", @@ -168,11 +168,11 @@ }, { "result": [ - 293112703.62440014, - 282399739.03146064, - 281159493.05536443, - 288963835.2215322, - 263303217.0979503 + 291350547.4332152, + 296929637.4548476, + 291724194.3388055, + 275856537.2664585, + 293531211.03252536 ], "implementation": "https", "version": "v0.1", @@ -180,11 +180,11 @@ }, { "result": [ - 249851389.70506987, - 259195569.39946565, - 269336124.61948353, - 278082719.5022667, - 276514656.8186941 + 294573484.43656474, + 194025762.6628138, + 271838526.3971789, + 280037017.7564919, + 275937812.17766625 ], "implementation": "go-libp2p", "version": "v0.27", @@ -192,11 +192,11 @@ }, { "result": [ - 624211179.4161563, - 619019630.4584877, - 631530908.027894, - 633759543.7624654, - 656258972.2515203 + 613930753.6595503, + 607861599.6267879, + 624022469.1317983, + 611036643.079215, + 650071566.2349961 ], "implementation": "go-libp2p", "version": "v0.27", @@ -210,106 +210,106 @@ "results": [ { "result": [ + 0.064579, + 0.060944, + 0.060945, + 0.061542, + 0.063956, + 0.06269, + 0.064515, + 0.061967, + 0.062341, + 0.059849, + 0.063182, + 0.06394, + 0.059044, + 0.062294, + 0.061589, + 0.061087, + 0.063577, + 0.060209, + 0.064296, + 0.061301, + 0.062809, + 0.062883, + 0.063709, + 0.062143, + 0.062201, + 0.063141, + 0.061195, + 0.062346, + 0.060194, + 0.06118, + 0.061657, + 0.060901, + 0.064545, + 0.062013, + 0.062017, + 0.063399, + 0.061698, + 0.06354, + 0.062906, + 0.060566, + 0.062388, + 0.063037, + 0.062056, + 0.06173, + 0.061789, + 0.060722, + 0.062722, + 0.05967, + 0.06231, + 0.064521, + 0.0639, + 0.061779, + 0.059782, + 0.062073, + 0.061339, + 0.06111, + 0.06271, + 0.062378, + 0.059953, + 0.062484, + 0.064898, + 0.061991, + 0.06178, + 0.060356, + 0.061167, + 0.062737, + 0.064511, + 0.064355, + 0.061649, + 0.062309, + 0.05873, + 0.063992, + 0.060622, + 0.063957, + 0.06042, + 0.063722, + 0.065111, + 0.061298, 0.061844, - 0.060812, - 0.064498, - 0.064043, - 0.061386, - 0.060946, - 0.06238, - 0.061818, - 0.064433, - 0.06274, - 0.061558, - 0.063609, - 0.060651, - 0.06147, - 0.061429, - 0.059969, - 0.062733, - 0.064341, - 0.063715, - 0.061319, - 0.061088, - 0.063286, - 0.060601, - 0.063792, - 0.060162, - 0.060262, - 0.063832, - 0.062896, - 0.063419, - 0.059286, - 0.063057, - 0.063882, - 0.060774, - 0.062657, - 0.060985, - 0.063732, - 0.060174, - 0.063188, - 0.06291, - 0.061847, - 0.061211, - 0.062445, - 0.060822, - 0.064912, - 0.060225, - 0.062747, - 0.062336, - 0.060193, - 0.06219, - 0.063041, - 0.063504, - 0.062863, - 0.063858, - 0.064987, - 0.062832, - 0.06187, - 0.058821, - 0.064135, - 0.060797, - 0.060238, - 0.061865, - 0.064013, - 0.06353, - 0.063741, - 0.064215, - 0.061853, - 0.058321, - 0.061557, - 0.061819, - 0.063638, - 0.062889, - 0.06219, - 0.061522, - 0.05992, - 0.060657, - 0.063387, - 0.065381, - 0.06112, - 0.061093, - 0.063451, - 0.060852, - 0.062248, - 0.06378, - 0.062359, - 0.063149, - 0.061366, - 0.062292, - 0.061705, - 0.064492, - 0.062759, - 0.063921, - 0.06357, - 0.061255, - 0.063653, - 0.063414, - 0.061371, - 0.060681, - 0.064536, - 0.064871, - 0.06347 + 0.062755, + 0.059129, + 0.064224, + 0.061444, + 0.063544, + 0.061742, + 0.061421, + 0.060401, + 0.060902, + 0.060213, + 0.060572, + 0.06131, + 0.063109, + 0.062811, + 0.063055, + 0.060727, + 0.063729, + 0.060345, + 0.063429, + 0.062308, + 0.062516 ], "implementation": "quic-go", "version": "v0.34", @@ -317,106 +317,106 @@ }, { "result": [ - 0.128810821, - 0.11895941, - 0.121518826, - 0.124296826, - 0.125208181, - 0.12756805, - 0.120218913, - 0.122111868, - 0.125701156, - 0.128772417, - 0.121938049, - 0.126827548, - 0.124940291, - 0.12381437, - 0.127521897, - 0.128542032, - 0.121752046, - 0.126816558, - 0.123061619, - 0.126796245, - 0.126958498, - 0.127067322, - 0.128637924, - 0.121366327, - 0.126631675, - 0.125409446, - 0.117889903, - 0.126985695, - 0.126790753, - 0.124978339, - 0.127043732, - 0.126684459, - 0.125256476, - 0.12225627, - 0.124115083, - 0.117041588, - 0.125262189, - 0.128967085, - 0.129031031, - 0.125112407, - 0.126721055, - 0.125143915, - 0.118668622, - 0.124310869, - 0.125345777, - 0.126870855, - 0.121538119, - 0.124655614, - 0.126279941, - 0.118298183, - 0.123611112, - 0.125974278, - 0.128103987, - 0.121444203, - 0.122595101, - 0.122275104, - 0.127966845, - 0.124962452, - 0.126072013, - 0.125261719, - 0.124279103, - 0.129820791, - 0.123115944, - 0.125915587, - 0.122744207, - 0.124320676, - 0.124873046, - 0.12493174, - 0.122274751, - 0.12794246, - 0.12869228, - 0.129485812, - 0.126240319, - 0.128042359, - 0.122645822, - 0.124983185, - 0.124049422, - 0.124562946, - 0.121831357, - 0.125692616, - 0.127252645, - 0.124477347, - 0.126989965, - 0.123457347, - 0.127158966, - 0.119774957, - 0.12809126, - 0.122892908, - 0.122387428, - 0.129058154, - 0.127130387, - 0.126774223, - 0.125051486, - 0.128280643, - 0.124146519, - 0.126507378, - 0.124358351, - 0.127251832, - 0.128305745, - 0.122038288 + 0.122715925, + 0.127124448, + 0.121573012, + 0.125906511, + 0.127302257, + 0.125352371, + 0.125129702, + 0.12703777, + 0.129780454, + 0.118550991, + 0.123669909, + 0.126316689, + 0.121789977, + 0.125626583, + 0.122627308, + 0.125469638, + 0.127044056, + 0.123687654, + 0.128611206, + 0.126986414, + 0.123012026, + 0.126895423, + 0.122507683, + 0.121942506, + 0.125055835, + 0.12696239, + 0.12349714, + 0.124357935, + 0.126650479, + 0.121348162, + 0.122212146, + 0.125051765, + 0.127926954, + 0.126393692, + 0.125641423, + 0.122094834, + 0.124283215, + 0.122303441, + 0.123888695, + 0.118580559, + 0.125534447, + 0.122686587, + 0.121562405, + 0.118679206, + 0.126558623, + 0.123274264, + 0.128709089, + 0.122038062, + 0.126971841, + 0.120171029, + 0.125907948, + 0.127567269, + 0.126929345, + 0.127990138, + 0.121128658, + 0.130110072, + 0.126430485, + 0.125317296, + 0.126514898, + 0.122524788, + 0.127961859, + 0.126974916, + 0.122930433, + 0.125603056, + 0.125059727, + 0.121408205, + 0.125885733, + 0.129569046, + 0.12771782, + 0.124511652, + 0.129487102, + 0.11791064, + 0.126702346, + 0.123800182, + 0.121010069, + 0.122962977, + 0.128027393, + 0.124910468, + 0.128341771, + 0.126707544, + 0.120048588, + 0.12585114, + 0.124321148, + 0.126181425, + 0.126745848, + 0.125849498, + 0.120176737, + 0.128033079, + 0.123988207, + 0.128038394, + 0.121757578, + 0.12975601, + 0.123614173, + 0.125360164, + 0.125061549, + 0.12331277, + 0.121497094, + 0.117434269, + 0.124326885, + 0.127797534 ], "implementation": "rust-libp2p", "version": "v0.52", @@ -424,106 +424,106 @@ }, { "result": [ - 0.121638386, - 0.126176593, - 0.122701884, - 0.120434531, - 0.118521181, - 0.123873272, - 0.128721155, - 0.12317771, - 0.127206924, - 0.120766014, - 0.120428003, - 0.118290338, - 0.122757969, - 0.126194686, - 0.11985839, - 0.120956738, - 0.121434572, - 0.127416901, - 0.123697882, - 0.121804597, - 0.11774889, - 0.121356171, - 0.128687138, - 0.129935159, - 0.123232552, - 0.127086408, - 0.129637441, - 0.125922799, - 0.12695309, - 0.127842447, - 0.12484894, - 0.121894497, - 0.122919246, - 0.128477556, - 0.127059562, - 0.130036115, - 0.120669102, - 0.122980392, - 0.120594058, - 0.123719685, - 0.122860411, - 0.128217367, - 0.125800635, - 0.127461002, - 0.124600686, - 0.128388792, - 0.117979162, - 0.1270774, - 0.120534055, - 0.125575045, - 0.129278222, - 0.124919488, - 0.118470678, - 0.122680309, - 0.123463389, - 0.122419104, - 0.127479313, - 0.124849304, - 0.12502092, - 0.126722165, - 0.119884909, - 0.12099244, - 0.126538594, - 0.119638965, - 0.126270377, - 0.120434169, - 0.117883688, - 0.129403025, - 0.129336352, - 0.1283931, - 0.124971981, - 0.128905604, - 0.128751375, - 0.119683761, - 0.126156156, - 0.119506494, - 0.130266613, - 0.125890439, - 0.123997921, - 0.124674051, - 0.124586697, - 0.123641013, - 0.128439877, - 0.127489288, - 0.118514586, - 0.121378506, - 0.128853261, - 0.124959584, - 0.127574412, - 0.118657886, - 0.116321579, - 0.121985042, - 0.121523185, - 0.126034191, - 0.125356225, - 0.127142548, - 0.123616072, - 0.118618765, - 0.125074252, - 0.128771719 + 0.121707515, + 0.128801803, + 0.127173393, + 0.12203573, + 0.129275265, + 0.12549095, + 0.128214, + 0.121735446, + 0.127532346, + 0.119361628, + 0.118447956, + 0.129920753, + 0.126210958, + 0.124916155, + 0.125518415, + 0.11968721, + 0.12181213, + 0.123928141, + 0.120680189, + 0.117585023, + 0.122614746, + 0.124692617, + 0.125742997, + 0.12375858, + 0.122790845, + 0.119180889, + 0.123678511, + 0.121270819, + 0.119821604, + 0.122695971, + 0.122649311, + 0.12340031, + 0.123333732, + 0.122848835, + 0.125697671, + 0.125758284, + 0.12173868, + 0.126956284, + 0.126987555, + 0.124533543, + 0.127533438, + 0.127724548, + 0.126665105, + 0.126241018, + 0.121491544, + 0.121806322, + 0.12638353, + 0.120439935, + 0.123773927, + 0.126178343, + 0.126442869, + 0.12889338, + 0.124366966, + 0.124445287, + 0.126543654, + 0.121577143, + 0.12396604, + 0.119942821, + 0.125978505, + 0.126005413, + 0.126084914, + 0.1257898, + 0.123553556, + 0.124876738, + 0.123706907, + 0.128767005, + 0.126555259, + 0.126745421, + 0.128428215, + 0.121598376, + 0.123587744, + 0.126553668, + 0.129035719, + 0.129142643, + 0.125418344, + 0.12757949, + 0.124426021, + 0.12505166, + 0.128472131, + 0.122041698, + 0.127306288, + 0.122781084, + 0.124002159, + 0.122610878, + 0.121600324, + 0.125144609, + 0.124892501, + 0.124478677, + 0.125708894, + 0.123793718, + 0.126234439, + 0.119904332, + 0.124661981, + 0.119277828, + 0.126381974, + 0.127187378, + 0.124550968, + 0.124253532, + 0.128331505, + 0.122850273 ], "implementation": "rust-libp2p", "version": "v0.52", @@ -531,106 +531,106 @@ }, { "result": [ - 0.124661061, - 0.12666085, - 0.124948202, - 0.124568833, - 0.124045992, - 0.128241753, - 0.123874733, - 0.124012789, - 0.12073158, - 0.118419749, - 0.126962943, - 0.12367641, - 0.124317628, - 0.126468435, - 0.121397857, - 0.123537256, - 0.122644366, - 0.121047882, - 0.12132538, - 0.13005451, - 0.125769741, - 0.12357725, - 0.121436973, - 0.123244156, - 0.125518943, - 0.123490337, - 0.121295528, - 0.122848631, - 0.12384361, - 0.125602128, - 0.125866821, - 0.125491231, - 0.123595256, - 0.12107832, - 0.123667392, - 0.128148293, - 0.128210277, - 0.125481915, - 0.118185453, - 0.11910785, - 0.122465858, - 0.123394574, - 0.128029041, - 0.124013094, - 0.116141826, - 0.126822987, - 0.122071701, - 0.127476779, - 0.126545798, - 0.122637859, - 0.119323896, - 0.127275786, - 0.125091818, - 0.126719698, - 0.121606431, - 0.115832786, - 0.128450729, - 0.127843301, - 0.126985324, - 0.122380118, - 0.124166746, - 0.1254551, - 0.128034204, - 0.12526099, - 0.12823865, - 0.124217197, - 0.126298442, - 0.128756156, - 0.127425191, - 0.123403441, - 0.123417427, - 0.123691094, - 0.12834209, - 0.125943255, - 0.118467554, - 0.127053317, - 0.119377459, - 0.122853148, - 0.121472273, - 0.126035102, - 0.123128685, - 0.126970231, - 0.122753662, - 0.127354454, - 0.128136556, - 0.121278536, - 0.123023842, - 0.122975992, - 0.125964641, - 0.130141845, - 0.127186949, - 0.123113166, - 0.128091911, - 0.125129569, - 0.123579311, - 0.120344549, - 0.121655301, - 0.121349649, - 0.122655619, - 0.126600143 + 0.128362261, + 0.126974278, + 0.125209141, + 0.122478945, + 0.117911986, + 0.116095817, + 0.124959141, + 0.125756739, + 0.128335986, + 0.125726331, + 0.118181358, + 0.120345076, + 0.12242772, + 0.124040551, + 0.125110288, + 0.123458389, + 0.121838884, + 0.127500984, + 0.127768907, + 0.122212982, + 0.122943258, + 0.123161507, + 0.127111568, + 0.123310993, + 0.123213121, + 0.123767718, + 0.127042794, + 0.120839857, + 0.127389072, + 0.125810606, + 0.127263445, + 0.127041749, + 0.124195083, + 0.125509928, + 0.119438648, + 0.122741521, + 0.123372778, + 0.127218273, + 0.125306606, + 0.124161507, + 0.124337468, + 0.121891076, + 0.123820172, + 0.126025466, + 0.12305152, + 0.120562871, + 0.125064174, + 0.125295643, + 0.122418842, + 0.123800525, + 0.127377915, + 0.124627402, + 0.129596133, + 0.121294048, + 0.123538814, + 0.121330579, + 0.125817884, + 0.120125252, + 0.124828404, + 0.126228584, + 0.124643316, + 0.124133949, + 0.12555157, + 0.126654323, + 0.123863847, + 0.125109418, + 0.121396406, + 0.121922919, + 0.119363959, + 0.121316, + 0.124821908, + 0.123410049, + 0.128707592, + 0.128975092, + 0.126517254, + 0.125092471, + 0.124701187, + 0.128433471, + 0.121606757, + 0.125306534, + 0.125994173, + 0.128461663, + 0.129044853, + 0.124354511, + 0.124206632, + 0.127762554, + 0.125848027, + 0.128659755, + 0.124867895, + 0.129038829, + 0.125183253, + 0.122072325, + 0.127442787, + 0.121594553, + 0.120573359, + 0.128691182, + 0.125449276, + 0.123658969, + 0.117432469, + 0.122085672 ], "implementation": "rust-libp2p", "version": "v0.52-quinn", @@ -638,106 +638,106 @@ }, { "result": [ - 0.12684016, - 0.12787694, - 0.118462224, - 0.123904218, - 0.126477623, - 0.123935841, - 0.126778081, - 0.125846043, - 0.123029594, - 0.126034621, - 0.12726689, - 0.123164857, - 0.121562369, - 0.122446596, - 0.123654836, - 0.128929269, - 0.123165163, - 0.122616732, - 0.123250636, - 0.118295773, - 0.118681742, - 0.126558261, - 0.124888273, - 0.129237733, - 0.125315486, - 0.127766617, - 0.127644897, - 0.125945531, - 0.126859267, - 0.123596342, - 0.125339725, - 0.123815043, - 0.118871193, - 0.122167573, - 0.125805479, - 0.126346935, - 0.119080207, - 0.126124759, - 0.121023049, - 0.120482238, - 0.126161436, - 0.124227892, - 0.123465022, - 0.126162075, - 0.123742666, - 0.130353991, - 0.126821519, - 0.12448274, - 0.119747123, - 0.127110177, - 0.129082529, - 0.125762343, - 0.126044395, - 0.125685232, - 0.121161191, - 0.125794005, - 0.122526251, - 0.126052182, - 0.127597427, - 0.127996277, - 0.127985791, - 0.121157802, - 0.125318645, - 0.125642869, - 0.125664951, - 0.125770543, - 0.121862972, - 0.125665932, - 0.125496173, - 0.117887783, - 0.124100852, - 0.125700708, - 0.12191504, - 0.125854908, - 0.124363339, - 0.128333875, - 0.123947871, - 0.122178828, - 0.127100456, - 0.123816263, - 0.126165053, - 0.126485832, - 0.121735062, - 0.126152413, - 0.120870896, - 0.125941683, - 0.127820166, - 0.123999461, - 0.12476956, - 0.122320644, - 0.125705821, - 0.125773358, - 0.126226384, - 0.118833228, - 0.126462616, - 0.127197668, - 0.123003866, - 0.118915038, - 0.127497232, - 0.124705971 + 0.122869092, + 0.124431337, + 0.121906357, + 0.12481637, + 0.123631485, + 0.128678585, + 0.12715589, + 0.124518795, + 0.127337365, + 0.121102766, + 0.129984143, + 0.124431175, + 0.126226568, + 0.127645335, + 0.12484697, + 0.116446578, + 0.126420334, + 0.123049674, + 0.129097038, + 0.123198643, + 0.122508219, + 0.125564519, + 0.127069507, + 0.127175482, + 0.123345005, + 0.125915854, + 0.123364639, + 0.125165529, + 0.121041757, + 0.125752638, + 0.121730128, + 0.122520839, + 0.122881744, + 0.118197054, + 0.129109406, + 0.119760859, + 0.121579651, + 0.123015365, + 0.124035746, + 0.121953811, + 0.127326842, + 0.124871855, + 0.124730581, + 0.128684427, + 0.125044175, + 0.123623325, + 0.12237024, + 0.12263113, + 0.12433283, + 0.127582131, + 0.127442608, + 0.116619518, + 0.123824085, + 0.126220481, + 0.122113569, + 0.122649946, + 0.125875889, + 0.124814869, + 0.126290179, + 0.117367979, + 0.130287339, + 0.123797236, + 0.123239229, + 0.126985958, + 0.123583062, + 0.127592197, + 0.130333173, + 0.123063744, + 0.127598218, + 0.128295651, + 0.123817878, + 0.125764103, + 0.127565743, + 0.125545829, + 0.122122535, + 0.129621365, + 0.123257095, + 0.122509796, + 0.121009418, + 0.121594043, + 0.123473622, + 0.121534117, + 0.126163876, + 0.125333605, + 0.127195612, + 0.127351547, + 0.121993222, + 0.126615676, + 0.12552833, + 0.125550059, + 0.121579893, + 0.123527856, + 0.122079774, + 0.118737994, + 0.121930564, + 0.12874218, + 0.122401843, + 0.118570637, + 0.118821407, + 0.128929798 ], "implementation": "rust-libp2p", "version": "v0.52-quinn", @@ -745,106 +745,106 @@ }, { "result": [ - 0.18501733, - 0.18923008, - 0.18049216, - 0.19340678, - 0.1861875, - 0.1914942, - 0.18575798, - 0.19520913, - 0.18010223, - 0.19124515, - 0.1811332, - 0.19085026, - 0.18030554, - 0.18751548, - 0.183921, - 0.18907401, - 0.19030528, - 0.18198135, - 0.178762, - 0.1883241, - 0.18783239, - 0.188024, - 0.18608308, - 0.19024466, - 0.18471646, - 0.19437698, - 0.19007832, - 0.19379516, - 0.19018622, - 0.18439801, - 0.19320713, - 0.1921831, - 0.18576838, - 0.18736668, - 0.18765777, - 0.18439884, - 0.18509425, - 0.18425712, - 0.19181487, - 0.17813952, - 0.1922556, - 0.18742092, - 0.18172316, - 0.19022168, - 0.1865288, - 0.19128017, - 0.19162115, - 0.19370575, - 0.18444578, - 0.18895054, - 0.19003198, - 0.18962732, - 0.1905909, - 0.17974056, - 0.18016237, - 0.19035481, - 0.19284406, - 0.18282667, - 0.18866986, - 0.18624999, - 0.18460633, - 0.19283867, - 0.19002372, - 0.1847342, - 0.1893068, - 0.19573985, - 0.18462518, - 0.18524133, - 0.17935291, - 0.19063331, - 0.186608, - 0.18565576, - 0.1804417, - 0.1870286, - 0.19152515, - 0.19481224, - 0.18663289, - 0.18008529, - 0.18801773, - 0.17731303, - 0.1862143, - 0.19154595, - 0.17947997, - 0.19300668, - 0.18554401, - 0.18398392, - 0.18498778, - 0.19375242, - 0.18138859, - 0.1811724, - 0.18747015, - 0.18788917, - 0.1776267, - 0.18833229, - 0.19307281, - 0.19632874, - 0.18851216, - 0.1914809, - 0.18993904, - 0.1906922 + 0.193955357, + 0.191838393, + 0.185707525, + 0.18439625, + 0.186092025, + 0.192814661, + 0.194410659, + 0.177698505, + 0.18397452, + 0.187375445, + 0.178686736, + 0.196266966, + 0.183676011, + 0.184100187, + 0.186398869, + 0.182792861, + 0.189500162, + 0.189730036, + 0.186554174, + 0.188403543, + 0.181595044, + 0.186891767, + 0.183568489, + 0.19310424, + 0.189837993, + 0.185709836, + 0.183880019, + 0.193767547, + 0.184314979, + 0.185259607, + 0.185158266, + 0.190057896, + 0.189713413, + 0.191629849, + 0.191103107, + 0.175275143, + 0.176528765, + 0.189455681, + 0.184480953, + 0.190791032, + 0.19110977, + 0.190078192, + 0.188819448, + 0.186047966, + 0.193759489, + 0.188825484, + 0.18713003, + 0.192682084, + 0.189891408, + 0.179442502, + 0.185840191, + 0.184212219, + 0.191268782, + 0.196474109, + 0.185797899, + 0.191178143, + 0.17996502, + 0.187223957, + 0.176518985, + 0.183058273, + 0.186481493, + 0.180805715, + 0.186388054, + 0.187049193, + 0.189086, + 0.180250814, + 0.179878324, + 0.191650656, + 0.177340718, + 0.177939012, + 0.186688349, + 0.193248071, + 0.189210006, + 0.184335885, + 0.195558318, + 0.191457144, + 0.190901391, + 0.183383845, + 0.185011959, + 0.183901911, + 0.188519315, + 0.182465856, + 0.188253398, + 0.187399945, + 0.186252925, + 0.186366281, + 0.190913025, + 0.191512127, + 0.188510364, + 0.191454509, + 0.193756964, + 0.187253431, + 0.185228882, + 0.184869075, + 0.190203354, + 0.188588841, + 0.185568816, + 0.189995959, + 0.188487615, + 0.185556762 ], "implementation": "https", "version": "v0.1", @@ -852,106 +852,106 @@ }, { "result": [ - 0.12175053, - 0.12605117, - 0.062221505, - 0.064337306, - 0.06010179, - 0.12711148, - 0.064213164, - 0.06219794, - 0.0616432, - 0.06224148, - 0.12437741, - 0.124406956, - 0.123852775, - 0.06070982, - 0.061578356, - 0.12111463, - 0.061252847, - 0.062286936, - 0.12250666, - 0.124051794, - 0.12347304, - 0.12263592, - 0.061597213, - 0.12196436, - 0.12330579, - 0.12485951, - 0.065018356, - 0.1218975, - 0.06416536, - 0.123087086, - 0.11792626, - 0.06486279, - 0.063403375, - 0.12562172, - 0.12446013, - 0.12691544, - 0.061206095, - 0.12253202, - 0.06276382, - 0.0628887, - 0.12503381, - 0.12402258, - 0.12443091, - 0.06201959, - 0.124864705, - 0.06484924, - 0.12805285, - 0.12085704, - 0.0625735, - 0.06436527, - 0.061899476, - 0.0617264, - 0.060473114, - 0.121796444, - 0.060230102, - 0.1189248, - 0.061669014, - 0.12606362, - 0.11739062, - 0.059744567, - 0.063605405, - 0.12625213, - 0.05962251, - 0.062324256, - 0.061505187, - 0.062143754, - 0.12310354, - 0.1262308, - 0.064093925, - 0.06264479, - 0.06223176, - 0.061603207, - 0.06411232, - 0.1216119, - 0.120782696, - 0.12754712, - 0.06035197, - 0.06186887, - 0.061882492, - 0.123415925, - 0.12336662, - 0.060795, - 0.1256234, - 0.12385519, - 0.121189505, - 0.06292543, - 0.06396173, - 0.063336305, - 0.061943702, - 0.12251919, - 0.12286289, - 0.0646475, - 0.06282486, - 0.059680667, - 0.11962047, - 0.122115314, - 0.061046507, - 0.11942746, - 0.12901482, - 0.061321888 + 0.12627353, + 0.06322796, + 0.06239489, + 0.1264109, + 0.06442711, + 0.06288316, + 0.063423015, + 0.06305939, + 0.061200827, + 0.06405955, + 0.12528613, + 0.063808054, + 0.12575996, + 0.06232856, + 0.062106553, + 0.061742485, + 0.06300427, + 0.06365775, + 0.1264044, + 0.064532995, + 0.062343795, + 0.06286557, + 0.060364634, + 0.05971806, + 0.12353807, + 0.06258439, + 0.05929562, + 0.05972196, + 0.06360545, + 0.12925683, + 0.12601632, + 0.06344326, + 0.05966915, + 0.122336626, + 0.05977495, + 0.062246505, + 0.12645358, + 0.059061892, + 0.060633846, + 0.0607769, + 0.06428798, + 0.061549623, + 0.06140744, + 0.061188623, + 0.06331852, + 0.06342848, + 0.06377816, + 0.060076326, + 0.06246733, + 0.06367062, + 0.06297103, + 0.12433892, + 0.123757996, + 0.062185377, + 0.12267204, + 0.12601005, + 0.061688837, + 0.06108504, + 0.06469098, + 0.116891906, + 0.061518755, + 0.062108494, + 0.060667146, + 0.05975515, + 0.06373088, + 0.063342385, + 0.06419214, + 0.06232956, + 0.12768248, + 0.12530807, + 0.124848306, + 0.059195627, + 0.122880735, + 0.06024516, + 0.12394544, + 0.1219183, + 0.060800288, + 0.059110496, + 0.11872565, + 0.06012269, + 0.12392691, + 0.06155718, + 0.062292572, + 0.06255667, + 0.063000515, + 0.063261345, + 0.06152581, + 0.059689485, + 0.0626661, + 0.062457502, + 0.12794977, + 0.12336585, + 0.11849746, + 0.06303405, + 0.061456848, + 0.05913779, + 0.0627896, + 0.06271503, + 0.122967996, + 0.06494464 ], "implementation": "go-libp2p", "version": "v0.27", @@ -959,106 +959,106 @@ }, { "result": [ - 0.06355237, - 0.060595006, - 0.057849895, - 0.06282445, - 0.06296295, - 0.062263384, - 0.061361652, - 0.06254827, - 0.06433191, - 0.06295908, - 0.06020783, - 0.06206818, - 0.06415346, - 0.061035052, - 0.062093258, - 0.06068142, - 0.062790394, - 0.061855037, - 0.064258575, - 0.06315244, - 0.060516555, - 0.062103324, - 0.06264966, - 0.06414131, - 0.06311047, - 0.0625298, - 0.061776433, - 0.06273881, - 0.06170282, - 0.06281448, - 0.062988296, - 0.061229974, - 0.062824264, - 0.063056946, - 0.061289493, - 0.0618638, - 0.06419081, - 0.062534384, - 0.06306849, - 0.061164565, - 0.061782323, - 0.060750503, - 0.06232041, - 0.062688634, - 0.06288993, - 0.061291166, - 0.060801283, - 0.06262256, - 0.05938406, - 0.06302028, - 0.060640726, - 0.06088046, - 0.06421143, - 0.058525525, - 0.06261851, - 0.06381055, - 0.060679577, - 0.06420371, - 0.062607035, - 0.06299439, - 0.061227873, - 0.06349264, - 0.06293519, - 0.061481, - 0.06365487, - 0.06260477, - 0.061818447, - 0.06258338, - 0.06283006, - 0.062424313, - 0.060585, - 0.06441027, - 0.05968948, - 0.061911583, - 0.061627526, - 0.0635312, - 0.060969494, - 0.062054284, - 0.061562333, - 0.058623374, - 0.06401842, - 0.062325384, - 0.064899884, - 0.061992045, - 0.060320485, - 0.063530885, - 0.06308903, - 0.06090222, - 0.061143447, - 0.05967578, - 0.061819967, - 0.062941566, - 0.06371909, - 0.062264062, - 0.064133525, - 0.06456559, - 0.062039033, - 0.062669404, - 0.06257181, - 0.061231002 + 0.06101121, + 0.06183345, + 0.06328221, + 0.06359649, + 0.0591485, + 0.06150341, + 0.06321516, + 0.059354752, + 0.060649384, + 0.06407967, + 0.058438282, + 0.059767395, + 0.061387077, + 0.06037511, + 0.06323172, + 0.06312479, + 0.063504405, + 0.06205196, + 0.062478967, + 0.06400248, + 0.06393319, + 0.06423314, + 0.06364058, + 0.06267748, + 0.061100945, + 0.0648428, + 0.06347108, + 0.063163914, + 0.06385114, + 0.065090336, + 0.062373925, + 0.06277121, + 0.06134507, + 0.061121274, + 0.06150395, + 0.061843053, + 0.06145542, + 0.0640399, + 0.06122422, + 0.06312072, + 0.05970491, + 0.06252107, + 0.063160375, + 0.065689474, + 0.0632885, + 0.06359938, + 0.06314578, + 0.05955939, + 0.060351036, + 0.05965191, + 0.061822657, + 0.060839895, + 0.06424156, + 0.060968608, + 0.064368546, + 0.062631555, + 0.06413804, + 0.06169937, + 0.064843975, + 0.06259285, + 0.064223975, + 0.0629793, + 0.061221484, + 0.06005889, + 0.06414129, + 0.062234107, + 0.063722774, + 0.06349979, + 0.062076468, + 0.061836954, + 0.062146034, + 0.060848385, + 0.0603355, + 0.064369574, + 0.0601086, + 0.064040475, + 0.05995296, + 0.06273966, + 0.06202841, + 0.061105706, + 0.060701724, + 0.061544996, + 0.062079486, + 0.064370014, + 0.06366293, + 0.059759732, + 0.06280063, + 0.05913446, + 0.06253907, + 0.063633665, + 0.061118312, + 0.062750965, + 0.064076975, + 0.06203803, + 0.06192361, + 0.06401403, + 0.06400168, + 0.06163904, + 0.06354152, + 0.060942505 ], "implementation": "go-libp2p", "version": "v0.27", @@ -1066,5 +1066,177 @@ } ] } - ] + ], + "pings": { + "unit": "s", + "results": [ + 0.0611, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.0611, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.0613, + 0.061, + 0.061 + ] + }, + "iperf": { + "unit": "bit/s", + "results": [ + 3260000000, + 3260000000, + 3250000000, + 3250000000, + 3250000000, + 3250000000, + 3250000000, + 3250000000, + 3250000000, + 3250000000, + 3250000000, + 3250000000, + 3250000000, + 3250000000, + 3250000000, + 3250000000, + 3250000000, + 3250000000, + 3250000000, + 3260000000, + 3260000000, + 3250000000, + 3250000000, + 3250000000, + 3250000000, + 3250000000, + 3250000000, + 3250000000, + 3250000000, + 3250000000, + 3260000000, + 3260000000, + 3260000000, + 3230000000, + 3200000000, + 3190000000, + 3180000000, + 3180000000, + 3200000000, + 3240000000, + 3240000000, + 3250000000, + 3240000000, + 3250000000, + 3250000000, + 3240000000, + 3240000000, + 3250000000, + 3250000000, + 3250000000, + 3270000000, + 3280000000, + 3280000000, + 3280000000, + 3280000000, + 3270000000, + 3270000000, + 3280000000, + 3280000000, + 3270000000, + 3250000000, + 3050000000 + ] + } } \ No newline at end of file diff --git a/perf/runner/src/benchmark-result-type.ts b/perf/runner/src/benchmark-result-type.ts index 32b256d31..b3ceaadab 100644 --- a/perf/runner/src/benchmark-result-type.ts +++ b/perf/runner/src/benchmark-result-type.ts @@ -1,9 +1,21 @@ export type BenchmarkResults = { benchmarks: Benchmark[], + pings: PingResults, + iperf: IperfResults, // For referencing this schema in JSON "$schema"?: string }; +export type PingResults = { + unit: "s", + results: number[] +}; + +export type IperfResults = { + unit: "bit/s", + results: number[] +}; + export type Benchmark = { name: string, unit: "bit/s" | "s", diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index 9af037532..3d2fd5ce8 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -2,42 +2,49 @@ import { execSync } from 'child_process'; import { versions } from './versions'; import yargs from 'yargs'; import fs from 'fs'; -import { BenchmarkResults, Benchmark, Result } from './benchmark-result-type'; +import { BenchmarkResults, Benchmark, Result, IperfResults, PingResults } from './benchmark-result-type'; async function main(clientPublicIP: string, serverPublicIP: string) { + const pings = runPing(clientPublicIP, serverPublicIP); + const iperf = runIPerf(clientPublicIP, serverPublicIP); + copyAndBuildPerfImplementations(serverPublicIP); copyAndBuildPerfImplementations(clientPublicIP); + const benchmarks = [ + runBenchmarkAcrossVersions({ + name: "Single Connection throughput – Upload 100 MiB", + clientPublicIP, + serverPublicIP, + uploadBytes: 100 << 20, + downloadBytes: 0, + unit: "bit/s", + iterations: 5, + }), + runBenchmarkAcrossVersions({ + name: "Single Connection throughput – Download 100 MiB", + clientPublicIP, + serverPublicIP, + uploadBytes: 0, + downloadBytes: 100 << 20, + unit: "bit/s", + iterations: 5, + }), + runBenchmarkAcrossVersions({ + name: "Connection establishment + 1 byte round trip latencies", + clientPublicIP, + serverPublicIP, + uploadBytes: 1, + downloadBytes: 1, + unit: "s", + iterations: 100, + }), + ]; + const benchmarkResults: BenchmarkResults = { - benchmarks: [ - runBenchmarkAcrossVersions({ - name: "Single Connection throughput – Upload 100 MiB", - clientPublicIP, - serverPublicIP, - uploadBytes: 100 << 20, - downloadBytes: 0, - unit: "bit/s", - iterations: 5, - }), - runBenchmarkAcrossVersions({ - name: "Single Connection throughput – Download 100 MiB", - clientPublicIP, - serverPublicIP, - uploadBytes: 0, - downloadBytes: 100 << 20, - unit: "bit/s", - iterations: 5, - }), - runBenchmarkAcrossVersions({ - name: "Connection establishment + 1 byte round trip latencies", - clientPublicIP, - serverPublicIP, - uploadBytes: 1, - downloadBytes: 1, - unit: "s", - iterations: 100, - }), - ], + benchmarks, + pings, + iperf, }; // Save results to benchmark-results.json @@ -46,6 +53,57 @@ async function main(clientPublicIP: string, serverPublicIP: string) { console.error("== done"); } +function runPing(clientPublicIP: string, serverPublicIP: string): PingResults { + console.error(`= run 100 pings from client to server`); + + let cmd = `ssh ec2-user@${clientPublicIP} 'ping -c 100 ${serverPublicIP}'`; + const stdout = execCommand(cmd).toString(); + + // Extract the time from each ping + const lines = stdout.split('\n'); + const times = lines + .map(line => { + const match = line.match(/time=(.*) ms/); + return match ? parseFloat(match[1]) / 1000 : null; // Convert from ms to s + }) + .filter((time): time is number => time !== null); // Remove any null values and ensure that array contains only numbers + + return { unit: "s", results: times } +} + +function runIPerf(clientPublicIP: string, serverPublicIP: string): IperfResults { + console.error(`= run 60 iPerf UDP from client to server`); + + let killCMD = `ssh ec2-user@${serverPublicIP} 'kill $(cat pidfile); rm pidfile; rm server.log || true'`; + const killSTDOUT = execCommand(killCMD); + console.error(killSTDOUT); + + let serverCMD = `ssh ec2-user@${serverPublicIP} 'nohup iperf3 -s > server.log 2>&1 & echo \$! > pidfile '`; + const serverSTDOUT = execCommand(serverCMD); + console.error(serverSTDOUT); + + let cmd = `ssh ec2-user@${clientPublicIP} 'iperf3 -c ${serverPublicIP} -u -b 25g -t 60'`; + const stdout = execSync(cmd).toString(); + + // Extract the bitrate from each relevant line + const lines = stdout.split('\n'); + const bitrates = lines + .map(line => { + const match = line.match(/(\d+(?:\.\d+)?) (\w)bits\/sec/); // Matches and captures the number and unit before "bits/sec" + if (match) { + const value = parseFloat(match[1]); + const unit = match[2]; + // Convert value to bits/sec + const multiplier = unit === 'G' ? 1e9 : unit === 'M' ? 1e6 : unit === 'K' ? 1e3 : 1; + return value * multiplier; + } + return null; + }) + .filter((bitrate): bitrate is number => bitrate !== null); // Remove any null values + + return { unit: "bit/s", results: bitrates} +} + interface ArgsRunBenchmarkAcrossVersions { name: string, clientPublicIP: string; @@ -163,10 +221,10 @@ function execCommand(cmd: string): string { function copyAndBuildPerfImplementations(ip: string) { const stdout = execCommand(`rsync -avz --progress ../impl ec2-user@${ip}:/home/ec2-user`); - console.log(stdout.toString()); + console.error(stdout.toString()); const stdout2 = execCommand(`ssh ec2-user@${ip} 'cd impl && make'`); - console.log(stdout2.toString()); + console.error(stdout2.toString()); } const argv = yargs diff --git a/perf/terraform/user-data.sh b/perf/terraform/user-data.sh index f6fcb3e74..d1026af3d 100644 --- a/perf/terraform/user-data.sh +++ b/perf/terraform/user-data.sh @@ -1,5 +1,9 @@ #!/bin/bash +sudo yum install make -y + +sudo yum -y install iperf3 + # Bump UDP receive buffer size. See https://github.com/quic-go/quic-go/wiki/UDP-Receive-Buffer-Size. sudo sysctl -w net.core.rmem_max=2500000 @@ -8,5 +12,3 @@ sudo yum install docker -y sudo systemctl enable docker sudo systemctl start docker sudo usermod -aG docker ec2-user - -sudo yum install make -y From 8ff591f6f67ec0c1c40e38394646a8a54c244dee Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 17 May 2023 13:44:37 +0900 Subject: [PATCH 084/143] Move rust-libp2p quinn from being different version to different implementation --- perf/impl/Makefile | 9 +- .../v0.52}/Makefile | 0 perf/runner/benchmark-results.json | 1983 ++++++++--------- perf/runner/src/versions.ts | 8 +- 4 files changed, 936 insertions(+), 1064 deletions(-) rename perf/impl/{rust-libp2p/v0.52-quinn => rust-libp2p-quinn/v0.52}/Makefile (100%) diff --git a/perf/impl/Makefile b/perf/impl/Makefile index f7474f845..29e9ea363 100644 --- a/perf/impl/Makefile +++ b/perf/impl/Makefile @@ -1,11 +1,14 @@ GO_SUBDIRS := $(wildcard go-libp2p/*/.) RUST_SUBDIRS := $(wildcard rust-libp2p/*/.) +RUST_QUINN_SUBDIRS := $(wildcard rust-libp2p-quinn/*/.) HTTPS_SUBDIRS := $(wildcard https/*/.) QUIC_GO_SUBDIRS := $(wildcard quic-go/*/.) -all: $(RUST_SUBDIRS) $(GO_SUBDIRS) $(HTTPS_SUBDIRS) $(QUIC_GO_SUBDIRS) +all: $(RUST_SUBDIRS) $(RUST_QUINN_SUBDIRS) $(GO_SUBDIRS) $(HTTPS_SUBDIRS) $(QUIC_GO_SUBDIRS) $(RUST_SUBDIRS): $(MAKE) -C $@ +$(RUST_QUINN_SUBDIRS): + $(MAKE) -C $@ $(GO_SUBDIRS): $(MAKE) -C $@ $(HTTPS_SUBDIRS): @@ -13,9 +16,9 @@ $(HTTPS_SUBDIRS): $(QUIC_GO_SUBDIRS): $(MAKE) -C $@ -clean: $(RUST_SUBDIRS:%=%clean) $(GO_SUBDIRS:%=%clean) $(HTTPS_SUBDIRS:%=%clean) $(QUIC_GO_SUBDIRS:%=%clean) +clean: $(RUST_SUBDIRS:%=%clean) $(RUST_QUINN_SUBDIRS:%=%clean) $(GO_SUBDIRS:%=%clean) $(HTTPS_SUBDIRS:%=%clean) $(QUIC_GO_SUBDIRS:%=%clean) %clean: $(MAKE) -C $* clean -.PHONY: $(RUST_SUBDIRS) $(GO_SUBDIRS) $(HTTPS_SUBDIRS) $(QUIC_GO_SUBDIRS) all clean +.PHONY: $(RUST_SUBDIRS) $(RUST_QUINN_SUBDIRS) $(GO_SUBDIRS) $(HTTPS_SUBDIRS) $(QUIC_GO_SUBDIRS) all clean diff --git a/perf/impl/rust-libp2p/v0.52-quinn/Makefile b/perf/impl/rust-libp2p-quinn/v0.52/Makefile similarity index 100% rename from perf/impl/rust-libp2p/v0.52-quinn/Makefile rename to perf/impl/rust-libp2p-quinn/v0.52/Makefile diff --git a/perf/runner/benchmark-results.json b/perf/runner/benchmark-results.json index 5d6d59bc2..5ea4f4d87 100644 --- a/perf/runner/benchmark-results.json +++ b/perf/runner/benchmark-results.json @@ -6,11 +6,11 @@ "results": [ { "result": [ - 474417794.4677891, - 462379438.94531333, - 474882957.87389225, - 472889626.4961351, - 462063624.4358198 + 476723778.8248372, + 461660061.64927495, + 482555957.5924573, + 477675526.484072, + 454270690.6168601 ], "implementation": "quic-go", "version": "v0.34", @@ -18,11 +18,11 @@ }, { "result": [ - 22559790.023022857, - 23524227.44536793, - 23250305.27441416, - 21922422.459196728, - 23649472.46812365 + 23765074.98195795, + 22951785.20901357, + 21295876.480998363, + 20670355.201553, + 22423122.172141254 ], "implementation": "rust-libp2p", "version": "v0.52", @@ -30,11 +30,11 @@ }, { "result": [ - 97914043.1904787, - 62144199.76990087, - 63872198.500458345, - 53970207.98926865, - 53260172.94150097 + 36852744.228101, + 43840643.78511356, + 57316078.625662796, + 52626915.16678075, + 105155556.02028346 ], "implementation": "rust-libp2p", "version": "v0.52", @@ -42,35 +42,23 @@ }, { "result": [ - 23515757.013399474, - 20215257.089284617, - 21073574.43878669, - 23751335.214581426, - 23870734.957599763 + 587621511.1614571, + 563901201.5760119, + 558907605.1141443, + 592131180.9976248, + 580282064.2821823 ], - "implementation": "rust-libp2p", - "version": "v0.52-quinn", - "transportStack": "tcp" - }, - { - "result": [ - 585071224.6885961, - 564122883.0005387, - 601602222.2636776, - 573379487.0183829, - 593773818.090205 - ], - "implementation": "rust-libp2p", - "version": "v0.52-quinn", + "implementation": "rust-libp2p-quinn", + "version": "v0.52", "transportStack": "quic-v1" }, { "result": [ - 307504345.4815674, - 307049864.1607806, - 305569317.1787684, - 299933512.2271783, - 309573869.6461722 + 303350936.8223497, + 286964977.924173, + 315075038.70949465, + 283952075.21250784, + 294792314.516067 ], "implementation": "https", "version": "v0.1", @@ -78,11 +66,11 @@ }, { "result": [ - 287800980.76480824, - 281363671.0025105, - 283999135.7410029, - 275834039.9122788, - 276217724.6617089 + 248955230.98554525, + 287854438.84119874, + 272133599.2185647, + 279250074.1516996, + 253393667.34529442 ], "implementation": "go-libp2p", "version": "v0.27", @@ -90,11 +78,11 @@ }, { "result": [ - 625064165.3990065, - 624672569.5981356, - 631085113.8804889, - 622547375.9986345, - 618318290.2512397 + 628532042.7331849, + 617444244.3285623, + 625160545.3616196, + 620091153.002094, + 606479285.7655139 ], "implementation": "go-libp2p", "version": "v0.27", @@ -108,11 +96,11 @@ "results": [ { "result": [ - 448653441.94081503, - 463726224.559235, - 462576532.17370397, - 453282684.05169034, - 454557218.14672446 + 476749517.7722385, + 467811983.10466784, + 446846915.95167285, + 440905820.23930603, + 442712191.435396 ], "implementation": "quic-go", "version": "v0.34", @@ -120,11 +108,11 @@ }, { "result": [ - 24272938.352030843, - 23612409.98601879, - 23889319.88239235, - 19732456.44340771, - 22556224.638749085 + 23489986.277543712, + 23989190.127659697, + 22047202.20693784, + 23535688.679104857, + 23750819.898304287 ], "implementation": "rust-libp2p", "version": "v0.52", @@ -132,11 +120,11 @@ }, { "result": [ - 69297405.7025867, - 61729457.91142594, - 102231401.68700998, - 86695376.69219294, - 78425397.4811756 + 48010448.5791753, + 63604116.19768055, + 68905977.78654173, + 52916573.41143532, + 80712143.69185075 ], "implementation": "rust-libp2p", "version": "v0.52", @@ -144,35 +132,23 @@ }, { "result": [ - 23926321.026550617, - 20128513.3682652, - 20875194.244746435, - 23317750.232327037, - 20751075.591506794 + 583364875.6727204, + 574905132.1426404, + 576181208.0931789, + 556790173.646611, + 584184486.9257556 ], - "implementation": "rust-libp2p", - "version": "v0.52-quinn", - "transportStack": "tcp" - }, - { - "result": [ - 559411761.0686907, - 571742866.2255255, - 579268122.7634223, - 570463202.2884122, - 585325675.8765239 - ], - "implementation": "rust-libp2p", - "version": "v0.52-quinn", + "implementation": "rust-libp2p-quinn", + "version": "v0.52", "transportStack": "quic-v1" }, { "result": [ - 291350547.4332152, - 296929637.4548476, - 291724194.3388055, - 275856537.2664585, - 293531211.03252536 + 275173785.9263513, + 289390075.919085, + 290850417.7955512, + 249953022.7856405, + 281877043.9985076 ], "implementation": "https", "version": "v0.1", @@ -180,11 +156,11 @@ }, { "result": [ - 294573484.43656474, - 194025762.6628138, - 271838526.3971789, - 280037017.7564919, - 275937812.17766625 + 273784647.29723024, + 272677630.60313463, + 270261907.5924625, + 277904300.24740565, + 280673597.2540147 ], "implementation": "go-libp2p", "version": "v0.27", @@ -192,11 +168,11 @@ }, { "result": [ - 613930753.6595503, - 607861599.6267879, - 624022469.1317983, - 611036643.079215, - 650071566.2349961 + 611693361.4131863, + 616559070.6479324, + 670183088.6106693, + 622577916.6065818, + 638752777.1129873 ], "implementation": "go-libp2p", "version": "v0.27", @@ -210,106 +186,106 @@ "results": [ { "result": [ - 0.064579, - 0.060944, - 0.060945, - 0.061542, - 0.063956, - 0.06269, - 0.064515, - 0.061967, - 0.062341, - 0.059849, - 0.063182, - 0.06394, - 0.059044, - 0.062294, - 0.061589, - 0.061087, - 0.063577, - 0.060209, - 0.064296, - 0.061301, - 0.062809, - 0.062883, - 0.063709, - 0.062143, - 0.062201, - 0.063141, - 0.061195, - 0.062346, - 0.060194, - 0.06118, - 0.061657, - 0.060901, - 0.064545, - 0.062013, - 0.062017, - 0.063399, - 0.061698, - 0.06354, - 0.062906, - 0.060566, - 0.062388, - 0.063037, - 0.062056, - 0.06173, - 0.061789, - 0.060722, - 0.062722, - 0.05967, - 0.06231, - 0.064521, - 0.0639, - 0.061779, - 0.059782, - 0.062073, - 0.061339, - 0.06111, - 0.06271, - 0.062378, - 0.059953, - 0.062484, - 0.064898, - 0.061991, - 0.06178, - 0.060356, - 0.061167, - 0.062737, - 0.064511, - 0.064355, - 0.061649, - 0.062309, - 0.05873, - 0.063992, - 0.060622, - 0.063957, - 0.06042, - 0.063722, - 0.065111, - 0.061298, - 0.061844, - 0.062755, - 0.059129, - 0.064224, - 0.061444, + 0.060905, + 0.062693, + 0.063777, + 0.063916, + 0.059215, + 0.065067, + 0.062213, + 0.064145, + 0.062774, + 0.062359, + 0.06166, + 0.061706, + 0.060264, + 0.060664, + 0.063287, + 0.061812, + 0.0629, + 0.059316, + 0.05919, + 0.062934, + 0.063118, + 0.060439, + 0.064315, + 0.062508, + 0.063761, + 0.063315, + 0.061367, + 0.062988, + 0.059807, + 0.060197, + 0.060838, + 0.062964, + 0.06223, + 0.062095, + 0.062096, + 0.064432, + 0.063195, + 0.065238, + 0.061205, + 0.062939, + 0.063537, + 0.06006, + 0.060019, + 0.064216, + 0.060701, + 0.062679, + 0.062253, + 0.064651, + 0.062843, + 0.060521, + 0.060848, + 0.059283, + 0.062424, + 0.061856, + 0.063087, + 0.063297, + 0.061369, 0.063544, - 0.061742, - 0.061421, - 0.060401, - 0.060902, - 0.060213, - 0.060572, - 0.06131, - 0.063109, - 0.062811, - 0.063055, - 0.060727, - 0.063729, + 0.062058, + 0.062173, + 0.062172, + 0.061188, + 0.063542, + 0.061727, + 0.061679, + 0.06286, + 0.060542, + 0.058694, + 0.061641, + 0.06066, + 0.061464, + 0.060379, + 0.062796, + 0.062687, + 0.062132, + 0.063595, + 0.064073, + 0.061627, + 0.060453, + 0.062774, + 0.063695, 0.060345, - 0.063429, - 0.062308, - 0.062516 + 0.061924, + 0.060824, + 0.059899, + 0.063754, + 0.062419, + 0.063831, + 0.064334, + 0.061046, + 0.061326, + 0.060717, + 0.064362, + 0.061458, + 0.058738, + 0.065154, + 0.062657, + 0.061958, + 0.062341, + 0.060581 ], "implementation": "quic-go", "version": "v0.34", @@ -317,106 +293,106 @@ }, { "result": [ - 0.122715925, - 0.127124448, - 0.121573012, - 0.125906511, - 0.127302257, - 0.125352371, - 0.125129702, - 0.12703777, - 0.129780454, - 0.118550991, - 0.123669909, - 0.126316689, - 0.121789977, - 0.125626583, - 0.122627308, - 0.125469638, - 0.127044056, - 0.123687654, - 0.128611206, - 0.126986414, - 0.123012026, - 0.126895423, - 0.122507683, - 0.121942506, - 0.125055835, - 0.12696239, - 0.12349714, - 0.124357935, - 0.126650479, - 0.121348162, - 0.122212146, - 0.125051765, - 0.127926954, - 0.126393692, - 0.125641423, - 0.122094834, - 0.124283215, - 0.122303441, - 0.123888695, - 0.118580559, - 0.125534447, - 0.122686587, - 0.121562405, - 0.118679206, - 0.126558623, - 0.123274264, - 0.128709089, - 0.122038062, - 0.126971841, - 0.120171029, - 0.125907948, - 0.127567269, - 0.126929345, - 0.127990138, - 0.121128658, - 0.130110072, - 0.126430485, - 0.125317296, - 0.126514898, - 0.122524788, - 0.127961859, - 0.126974916, - 0.122930433, - 0.125603056, - 0.125059727, - 0.121408205, - 0.125885733, - 0.129569046, - 0.12771782, - 0.124511652, - 0.129487102, - 0.11791064, - 0.126702346, - 0.123800182, - 0.121010069, - 0.122962977, - 0.128027393, - 0.124910468, - 0.128341771, - 0.126707544, - 0.120048588, - 0.12585114, - 0.124321148, - 0.126181425, - 0.126745848, - 0.125849498, - 0.120176737, - 0.128033079, - 0.123988207, - 0.128038394, - 0.121757578, - 0.12975601, - 0.123614173, - 0.125360164, - 0.125061549, - 0.12331277, - 0.121497094, - 0.117434269, - 0.124326885, - 0.127797534 + 0.121888817, + 0.126782828, + 0.126859234, + 0.126965903, + 0.121345578, + 0.126970089, + 0.122916614, + 0.127229748, + 0.127958864, + 0.117392392, + 0.125142897, + 0.122582385, + 0.124210822, + 0.123212725, + 0.121609478, + 0.125591431, + 0.124393383, + 0.128508447, + 0.120189564, + 0.124491921, + 0.122433356, + 0.117685992, + 0.122549189, + 0.120312995, + 0.125653765, + 0.122658262, + 0.124246051, + 0.122707117, + 0.122249119, + 0.12836673, + 0.122185442, + 0.118225327, + 0.130252955, + 0.125181184, + 0.121933468, + 0.130320394, + 0.122924563, + 0.117190831, + 0.127240584, + 0.125941095, + 0.130037099, + 0.128214222, + 0.128375952, + 0.122292666, + 0.119872308, + 0.124913874, + 0.127900565, + 0.124113457, + 0.121933097, + 0.125857287, + 0.12300402, + 0.124099483, + 0.12403564, + 0.118360141, + 0.122514163, + 0.125541903, + 0.126257782, + 0.129793511, + 0.128186572, + 0.122885629, + 0.120463873, + 0.122983595, + 0.125317978, + 0.121499828, + 0.127062349, + 0.123207304, + 0.124742893, + 0.125320406, + 0.119497825, + 0.126564094, + 0.124233296, + 0.122960197, + 0.124953109, + 0.125312498, + 0.124311479, + 0.124084743, + 0.124361733, + 0.126374126, + 0.127021601, + 0.121649422, + 0.127137925, + 0.123952327, + 0.125233014, + 0.12549781, + 0.124144517, + 0.128430317, + 0.123832155, + 0.120157176, + 0.12490297, + 0.119267766, + 0.124355495, + 0.12542756, + 0.127275064, + 0.123099353, + 0.126169216, + 0.122649968, + 0.122518246, + 0.125608568, + 0.125058112, + 0.128857953 ], "implementation": "rust-libp2p", "version": "v0.52", @@ -424,106 +400,106 @@ }, { "result": [ - 0.121707515, - 0.128801803, - 0.127173393, - 0.12203573, - 0.129275265, - 0.12549095, - 0.128214, - 0.121735446, - 0.127532346, - 0.119361628, - 0.118447956, - 0.129920753, - 0.126210958, - 0.124916155, - 0.125518415, - 0.11968721, - 0.12181213, - 0.123928141, - 0.120680189, - 0.117585023, - 0.122614746, - 0.124692617, - 0.125742997, - 0.12375858, - 0.122790845, - 0.119180889, - 0.123678511, - 0.121270819, - 0.119821604, - 0.122695971, - 0.122649311, - 0.12340031, - 0.123333732, - 0.122848835, - 0.125697671, - 0.125758284, - 0.12173868, - 0.126956284, - 0.126987555, - 0.124533543, - 0.127533438, - 0.127724548, - 0.126665105, - 0.126241018, - 0.121491544, - 0.121806322, - 0.12638353, - 0.120439935, - 0.123773927, - 0.126178343, - 0.126442869, - 0.12889338, - 0.124366966, - 0.124445287, - 0.126543654, - 0.121577143, - 0.12396604, - 0.119942821, - 0.125978505, - 0.126005413, - 0.126084914, - 0.1257898, - 0.123553556, - 0.124876738, - 0.123706907, - 0.128767005, - 0.126555259, - 0.126745421, - 0.128428215, - 0.121598376, - 0.123587744, - 0.126553668, - 0.129035719, - 0.129142643, - 0.125418344, - 0.12757949, - 0.124426021, - 0.12505166, - 0.128472131, - 0.122041698, - 0.127306288, - 0.122781084, - 0.124002159, - 0.122610878, - 0.121600324, - 0.125144609, - 0.124892501, - 0.124478677, - 0.125708894, - 0.123793718, - 0.126234439, - 0.119904332, - 0.124661981, - 0.119277828, - 0.126381974, - 0.127187378, - 0.124550968, - 0.124253532, - 0.128331505, - 0.122850273 + 0.123959359, + 0.128597196, + 0.123645688, + 0.130001428, + 0.124287541, + 0.123489402, + 0.125663892, + 0.123268351, + 0.122893342, + 0.127601611, + 0.121443287, + 0.129990906, + 0.128984907, + 0.128755368, + 0.129821243, + 0.124287624, + 0.124759911, + 0.124384119, + 0.123781065, + 0.120626181, + 0.12425869, + 0.12484441, + 0.12554865, + 0.125071262, + 0.12328017, + 0.122791009, + 0.120896344, + 0.127605179, + 0.124412144, + 0.120545436, + 0.123343967, + 0.118978727, + 0.129852487, + 0.122387598, + 0.126926089, + 0.121785762, + 0.122798827, + 0.12720546, + 0.122693981, + 0.128857639, + 0.125739272, + 0.128852421, + 0.127223553, + 0.119462895, + 0.119503469, + 0.123971461, + 0.123001193, + 0.12538024, + 0.123656653, + 0.124206933, + 0.118723028, + 0.12171365, + 0.119679975, + 0.122688169, + 0.125532105, + 0.12467729, + 0.124548614, + 0.129949256, + 0.123589179, + 0.128655684, + 0.12706172, + 0.117397611, + 0.128028486, + 0.116589448, + 0.126781356, + 0.119530489, + 0.122856364, + 0.130406857, + 0.121626124, + 0.121430065, + 0.12317439, + 0.122788656, + 0.125830146, + 0.120794874, + 0.123413219, + 0.12540847, + 0.125231494, + 0.127017699, + 0.128824795, + 0.122608789, + 0.12601121, + 0.128660477, + 0.120707209, + 0.126615777, + 0.126164541, + 0.124650646, + 0.127625659, + 0.12996521, + 0.125899154, + 0.124287427, + 0.128696832, + 0.122317405, + 0.128389197, + 0.123922631, + 0.122882846, + 0.123757482, + 0.122617909, + 0.120690875, + 0.125843553, + 0.124550335 ], "implementation": "rust-libp2p", "version": "v0.52", @@ -531,320 +507,213 @@ }, { "result": [ - 0.128362261, - 0.126974278, - 0.125209141, - 0.122478945, - 0.117911986, - 0.116095817, - 0.124959141, - 0.125756739, - 0.128335986, - 0.125726331, - 0.118181358, - 0.120345076, - 0.12242772, - 0.124040551, - 0.125110288, - 0.123458389, - 0.121838884, - 0.127500984, - 0.127768907, - 0.122212982, - 0.122943258, - 0.123161507, - 0.127111568, - 0.123310993, - 0.123213121, - 0.123767718, - 0.127042794, - 0.120839857, - 0.127389072, - 0.125810606, - 0.127263445, - 0.127041749, - 0.124195083, - 0.125509928, - 0.119438648, - 0.122741521, - 0.123372778, - 0.127218273, - 0.125306606, - 0.124161507, - 0.124337468, - 0.121891076, - 0.123820172, - 0.126025466, - 0.12305152, - 0.120562871, - 0.125064174, - 0.125295643, - 0.122418842, - 0.123800525, - 0.127377915, - 0.124627402, - 0.129596133, - 0.121294048, - 0.123538814, - 0.121330579, - 0.125817884, - 0.120125252, - 0.124828404, - 0.126228584, - 0.124643316, - 0.124133949, - 0.12555157, - 0.126654323, - 0.123863847, - 0.125109418, - 0.121396406, - 0.121922919, - 0.119363959, - 0.121316, - 0.124821908, - 0.123410049, - 0.128707592, - 0.128975092, - 0.126517254, - 0.125092471, - 0.124701187, - 0.128433471, - 0.121606757, - 0.125306534, - 0.125994173, - 0.128461663, - 0.129044853, - 0.124354511, - 0.124206632, - 0.127762554, - 0.125848027, - 0.128659755, - 0.124867895, - 0.129038829, - 0.125183253, - 0.122072325, - 0.127442787, - 0.121594553, - 0.120573359, - 0.128691182, - 0.125449276, - 0.123658969, - 0.117432469, - 0.122085672 + 0.122959542, + 0.119172675, + 0.125785294, + 0.126732788, + 0.123672372, + 0.122138243, + 0.126820962, + 0.117703982, + 0.121954058, + 0.129110022, + 0.121741465, + 0.122407037, + 0.128858718, + 0.122529362, + 0.127466221, + 0.125633069, + 0.119739364, + 0.123356493, + 0.124873061, + 0.125838178, + 0.123822604, + 0.122621485, + 0.11614474, + 0.125800241, + 0.125986944, + 0.123546427, + 0.12685109, + 0.124864405, + 0.127437272, + 0.120370643, + 0.12721763, + 0.126592135, + 0.126560378, + 0.126423394, + 0.126787974, + 0.126224178, + 0.124837033, + 0.122792976, + 0.118061026, + 0.121845087, + 0.127258613, + 0.124904702, + 0.127376706, + 0.127589659, + 0.124485193, + 0.118824468, + 0.119617282, + 0.125763166, + 0.123484596, + 0.119797443, + 0.123008176, + 0.124559505, + 0.123062307, + 0.122636111, + 0.122872824, + 0.127815039, + 0.123764546, + 0.12278435, + 0.12523011, + 0.128936106, + 0.125786657, + 0.128800882, + 0.124278561, + 0.123605532, + 0.122974343, + 0.124353989, + 0.124479834, + 0.12473513, + 0.125646413, + 0.126160902, + 0.127421353, + 0.126007554, + 0.119885787, + 0.12217969, + 0.125820539, + 0.12553983, + 0.123063438, + 0.128444153, + 0.128793941, + 0.120125912, + 0.126360148, + 0.125571942, + 0.117775383, + 0.122981545, + 0.123144694, + 0.122741415, + 0.126264734, + 0.12555531, + 0.128356452, + 0.122931322, + 0.123081991, + 0.123462915, + 0.129979852, + 0.11673056, + 0.127034126, + 0.123508588, + 0.122462002, + 0.123825054, + 0.12687055, + 0.128212266 ], - "implementation": "rust-libp2p", - "version": "v0.52-quinn", - "transportStack": "tcp" - }, - { - "result": [ - 0.122869092, - 0.124431337, - 0.121906357, - 0.12481637, - 0.123631485, - 0.128678585, - 0.12715589, - 0.124518795, - 0.127337365, - 0.121102766, - 0.129984143, - 0.124431175, - 0.126226568, - 0.127645335, - 0.12484697, - 0.116446578, - 0.126420334, - 0.123049674, - 0.129097038, - 0.123198643, - 0.122508219, - 0.125564519, - 0.127069507, - 0.127175482, - 0.123345005, - 0.125915854, - 0.123364639, - 0.125165529, - 0.121041757, - 0.125752638, - 0.121730128, - 0.122520839, - 0.122881744, - 0.118197054, - 0.129109406, - 0.119760859, - 0.121579651, - 0.123015365, - 0.124035746, - 0.121953811, - 0.127326842, - 0.124871855, - 0.124730581, - 0.128684427, - 0.125044175, - 0.123623325, - 0.12237024, - 0.12263113, - 0.12433283, - 0.127582131, - 0.127442608, - 0.116619518, - 0.123824085, - 0.126220481, - 0.122113569, - 0.122649946, - 0.125875889, - 0.124814869, - 0.126290179, - 0.117367979, - 0.130287339, - 0.123797236, - 0.123239229, - 0.126985958, - 0.123583062, - 0.127592197, - 0.130333173, - 0.123063744, - 0.127598218, - 0.128295651, - 0.123817878, - 0.125764103, - 0.127565743, - 0.125545829, - 0.122122535, - 0.129621365, - 0.123257095, - 0.122509796, - 0.121009418, - 0.121594043, - 0.123473622, - 0.121534117, - 0.126163876, - 0.125333605, - 0.127195612, - 0.127351547, - 0.121993222, - 0.126615676, - 0.12552833, - 0.125550059, - 0.121579893, - 0.123527856, - 0.122079774, - 0.118737994, - 0.121930564, - 0.12874218, - 0.122401843, - 0.118570637, - 0.118821407, - 0.128929798 - ], - "implementation": "rust-libp2p", - "version": "v0.52-quinn", + "implementation": "rust-libp2p-quinn", + "version": "v0.52", "transportStack": "quic-v1" }, { "result": [ - 0.193955357, - 0.191838393, - 0.185707525, - 0.18439625, - 0.186092025, - 0.192814661, - 0.194410659, - 0.177698505, - 0.18397452, - 0.187375445, - 0.178686736, - 0.196266966, - 0.183676011, - 0.184100187, - 0.186398869, - 0.182792861, - 0.189500162, - 0.189730036, - 0.186554174, - 0.188403543, - 0.181595044, - 0.186891767, - 0.183568489, - 0.19310424, - 0.189837993, - 0.185709836, - 0.183880019, - 0.193767547, - 0.184314979, - 0.185259607, - 0.185158266, - 0.190057896, - 0.189713413, - 0.191629849, - 0.191103107, - 0.175275143, - 0.176528765, - 0.189455681, - 0.184480953, - 0.190791032, - 0.19110977, - 0.190078192, - 0.188819448, - 0.186047966, - 0.193759489, - 0.188825484, - 0.18713003, - 0.192682084, - 0.189891408, - 0.179442502, - 0.185840191, - 0.184212219, - 0.191268782, - 0.196474109, - 0.185797899, - 0.191178143, - 0.17996502, - 0.187223957, - 0.176518985, - 0.183058273, - 0.186481493, - 0.180805715, - 0.186388054, - 0.187049193, - 0.189086, - 0.180250814, - 0.179878324, - 0.191650656, - 0.177340718, - 0.177939012, - 0.186688349, - 0.193248071, - 0.189210006, - 0.184335885, - 0.195558318, - 0.191457144, - 0.190901391, - 0.183383845, - 0.185011959, - 0.183901911, - 0.188519315, - 0.182465856, - 0.188253398, - 0.187399945, - 0.186252925, - 0.186366281, - 0.190913025, - 0.191512127, - 0.188510364, - 0.191454509, - 0.193756964, - 0.187253431, - 0.185228882, - 0.184869075, - 0.190203354, - 0.188588841, - 0.185568816, - 0.189995959, - 0.188487615, - 0.185556762 + 0.192671927, + 0.187084065, + 0.175552916, + 0.187811443, + 0.181258092, + 0.178773915, + 0.184407282, + 0.188750984, + 0.190404653, + 0.193972946, + 0.19422714, + 0.193197157, + 0.184601995, + 0.189156641, + 0.18273711, + 0.193186608, + 0.183927795, + 0.186934131, + 0.190958771, + 0.188215948, + 0.18861096, + 0.179376037, + 0.188882707, + 0.188415451, + 0.188407497, + 0.184104996, + 0.185211475, + 0.190927007, + 0.187903707, + 0.187873183, + 0.181277743, + 0.176737817, + 0.182318449, + 0.191423202, + 0.19175423, + 0.187261063, + 0.187676617, + 0.189906142, + 0.190087361, + 0.194984876, + 0.184127509, + 0.193655673, + 0.191078817, + 0.184833035, + 0.189227263, + 0.184552453, + 0.188669053, + 0.19358092, + 0.180715816, + 0.189203468, + 0.188271142, + 0.191769747, + 0.188152263, + 0.1867012, + 0.19014576, + 0.182390004, + 0.18906202, + 0.187748528, + 0.193902019, + 0.176506366, + 0.186957762, + 0.180437455, + 0.189908086, + 0.188197305, + 0.186395375, + 0.188896764, + 0.188705668, + 0.187787773, + 0.186169419, + 0.187004826, + 0.195038059, + 0.192884548, + 0.1842106, + 0.181043471, + 0.185891909, + 0.183180241, + 0.191562036, + 0.179581737, + 0.191640308, + 0.188553541, + 0.184342605, + 0.188902344, + 0.189128194, + 0.178105402, + 0.188325638, + 0.195453313, + 0.180009013, + 0.184322314, + 0.186855893, + 0.191625024, + 0.190000384, + 0.193639647, + 0.190116934, + 0.176320468, + 0.18824858, + 0.195421926, + 0.183409955, + 0.184970207, + 0.184079156, + 0.194087143 ], "implementation": "https", "version": "v0.1", @@ -852,106 +721,106 @@ }, { "result": [ - 0.12627353, - 0.06322796, - 0.06239489, - 0.1264109, - 0.06442711, - 0.06288316, - 0.063423015, - 0.06305939, - 0.061200827, - 0.06405955, - 0.12528613, - 0.063808054, - 0.12575996, - 0.06232856, - 0.062106553, - 0.061742485, - 0.06300427, - 0.06365775, - 0.1264044, - 0.064532995, - 0.062343795, - 0.06286557, - 0.060364634, - 0.05971806, - 0.12353807, - 0.06258439, - 0.05929562, - 0.05972196, - 0.06360545, - 0.12925683, - 0.12601632, - 0.06344326, - 0.05966915, - 0.122336626, - 0.05977495, - 0.062246505, - 0.12645358, - 0.059061892, - 0.060633846, - 0.0607769, - 0.06428798, - 0.061549623, - 0.06140744, - 0.061188623, - 0.06331852, - 0.06342848, - 0.06377816, - 0.060076326, - 0.06246733, - 0.06367062, - 0.06297103, - 0.12433892, - 0.123757996, - 0.062185377, - 0.12267204, - 0.12601005, - 0.061688837, - 0.06108504, - 0.06469098, - 0.116891906, - 0.061518755, - 0.062108494, - 0.060667146, - 0.05975515, - 0.06373088, - 0.063342385, - 0.06419214, - 0.06232956, - 0.12768248, - 0.12530807, - 0.124848306, - 0.059195627, - 0.122880735, - 0.06024516, - 0.12394544, - 0.1219183, - 0.060800288, - 0.059110496, - 0.11872565, - 0.06012269, - 0.12392691, - 0.06155718, - 0.062292572, - 0.06255667, - 0.063000515, - 0.063261345, - 0.06152581, - 0.059689485, - 0.0626661, - 0.062457502, - 0.12794977, - 0.12336585, - 0.11849746, - 0.06303405, - 0.061456848, - 0.05913779, - 0.0627896, - 0.06271503, - 0.122967996, - 0.06494464 + 0.12284586, + 0.06356202, + 0.12617074, + 0.06282493, + 0.061815616, + 0.06362352, + 0.06082869, + 0.06432958, + 0.06315876, + 0.05908363, + 0.059232745, + 0.06027314, + 0.06502242, + 0.06328234, + 0.061135743, + 0.11751851, + 0.06007697, + 0.064317785, + 0.06128055, + 0.06401471, + 0.059891384, + 0.05860705, + 0.12133849, + 0.12717538, + 0.061451755, + 0.06018901, + 0.11672092, + 0.06269691, + 0.06361394, + 0.06001403, + 0.06319442, + 0.06324474, + 0.063566454, + 0.12721281, + 0.060657468, + 0.0618096, + 0.061807435, + 0.06388281, + 0.06334745, + 0.061351903, + 0.12644267, + 0.12629794, + 0.062263668, + 0.06421475, + 0.12943149, + 0.121865, + 0.06291233, + 0.12243436, + 0.06256572, + 0.12848657, + 0.06077569, + 0.060444485, + 0.06363407, + 0.12646717, + 0.06351031, + 0.0631581, + 0.12270894, + 0.0599375, + 0.12944615, + 0.1250837, + 0.062131096, + 0.060755134, + 0.06263599, + 0.05924945, + 0.06132086, + 0.12614691, + 0.063863166, + 0.06162121, + 0.062112417, + 0.06403672, + 0.06430894, + 0.06130885, + 0.12177931, + 0.061753605, + 0.06193953, + 0.05830817, + 0.06351672, + 0.059269108, + 0.12591228, + 0.064268105, + 0.06267702, + 0.06346971, + 0.06311837, + 0.0613091, + 0.06413541, + 0.0637649, + 0.12228569, + 0.12099567, + 0.06344195, + 0.06298874, + 0.061688073, + 0.06130069, + 0.06347542, + 0.06192032, + 0.062345494, + 0.06341245, + 0.062392864, + 0.06395089, + 0.06433641, + 0.062004086 ], "implementation": "go-libp2p", "version": "v0.27", @@ -959,106 +828,106 @@ }, { "result": [ - 0.06101121, - 0.06183345, - 0.06328221, - 0.06359649, - 0.0591485, - 0.06150341, - 0.06321516, - 0.059354752, - 0.060649384, - 0.06407967, - 0.058438282, - 0.059767395, - 0.061387077, - 0.06037511, - 0.06323172, - 0.06312479, - 0.063504405, - 0.06205196, - 0.062478967, - 0.06400248, - 0.06393319, - 0.06423314, - 0.06364058, - 0.06267748, - 0.061100945, - 0.0648428, - 0.06347108, - 0.063163914, - 0.06385114, - 0.065090336, - 0.062373925, - 0.06277121, - 0.06134507, - 0.061121274, - 0.06150395, - 0.061843053, - 0.06145542, - 0.0640399, - 0.06122422, - 0.06312072, - 0.05970491, - 0.06252107, - 0.063160375, - 0.065689474, - 0.0632885, - 0.06359938, - 0.06314578, - 0.05955939, - 0.060351036, - 0.05965191, - 0.061822657, - 0.060839895, - 0.06424156, - 0.060968608, - 0.064368546, - 0.062631555, - 0.06413804, - 0.06169937, - 0.064843975, - 0.06259285, - 0.064223975, - 0.0629793, - 0.061221484, - 0.06005889, - 0.06414129, - 0.062234107, - 0.063722774, - 0.06349979, - 0.062076468, - 0.061836954, - 0.062146034, - 0.060848385, - 0.0603355, - 0.064369574, - 0.0601086, - 0.064040475, - 0.05995296, - 0.06273966, - 0.06202841, - 0.061105706, - 0.060701724, - 0.061544996, - 0.062079486, - 0.064370014, - 0.06366293, - 0.059759732, - 0.06280063, - 0.05913446, - 0.06253907, - 0.063633665, - 0.061118312, - 0.062750965, - 0.064076975, - 0.06203803, - 0.06192361, - 0.06401403, - 0.06400168, - 0.06163904, - 0.06354152, - 0.060942505 + 0.06310233, + 0.06396904, + 0.061068095, + 0.06014748, + 0.061020043, + 0.061951455, + 0.06262575, + 0.061502624, + 0.06292979, + 0.062413953, + 0.06068053, + 0.061095, + 0.06352485, + 0.063265964, + 0.06007536, + 0.06358303, + 0.06369051, + 0.06305469, + 0.060174923, + 0.065094024, + 0.060472313, + 0.06494354, + 0.061717723, + 0.06155924, + 0.0621861, + 0.06177255, + 0.062224697, + 0.06117516, + 0.062988505, + 0.06410115, + 0.06282853, + 0.06439072, + 0.063188635, + 0.062161375, + 0.06147264, + 0.064257845, + 0.064405486, + 0.062159687, + 0.062297147, + 0.061637852, + 0.06016042, + 0.061473973, + 0.061981115, + 0.06444071, + 0.0607793, + 0.06296811, + 0.06263472, + 0.062778644, + 0.060931776, + 0.061821148, + 0.06353392, + 0.060889225, + 0.06347669, + 0.06429089, + 0.060341045, + 0.06401452, + 0.06424325, + 0.06072287, + 0.060300607, + 0.061922014, + 0.06056163, + 0.0633675, + 0.06412715, + 0.06494307, + 0.06391485, + 0.0580077, + 0.06350252, + 0.063422434, + 0.061420485, + 0.0620956, + 0.06521214, + 0.062092576, + 0.0622884, + 0.06318063, + 0.061394177, + 0.06411254, + 0.060078748, + 0.062312506, + 0.061563957, + 0.06315601, + 0.06415131, + 0.06386827, + 0.064262696, + 0.062073503, + 0.061300326, + 0.06398816, + 0.065058194, + 0.061822336, + 0.061251495, + 0.06363339, + 0.06366372, + 0.06278822, + 0.0629387, + 0.06343747, + 0.06232634, + 0.06368589, + 0.06327905, + 0.06165553, + 0.06013382, + 0.06105537 ], "implementation": "go-libp2p", "version": "v0.27", @@ -1070,173 +939,173 @@ "pings": { "unit": "s", "results": [ - 0.0611, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.0611, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.0613, - 0.061, - 0.061 + 0.061799999999999994, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061799999999999994, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061799999999999994, + 0.061700000000000005, + 0.061700000000000005, + 0.061799999999999994, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061799999999999994, + 0.062, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061799999999999994, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061799999999999994, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061799999999999994, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061799999999999994, + 0.061799999999999994, + 0.061799999999999994, + 0.061700000000000005, + 0.0619, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.0621, + 0.061700000000000005, + 0.061799999999999994, + 0.061700000000000005, + 0.061799999999999994, + 0.061700000000000005, + 0.061700000000000005, + 0.061799999999999994, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605, + 0.0605 ] }, "iperf": { "unit": "bit/s", "results": [ - 3260000000, - 3260000000, - 3250000000, - 3250000000, - 3250000000, - 3250000000, - 3250000000, - 3250000000, - 3250000000, - 3250000000, - 3250000000, - 3250000000, - 3250000000, - 3250000000, - 3250000000, - 3250000000, - 3250000000, - 3250000000, - 3250000000, - 3260000000, - 3260000000, - 3250000000, - 3250000000, - 3250000000, - 3250000000, - 3250000000, - 3250000000, - 3250000000, - 3250000000, - 3250000000, - 3260000000, - 3260000000, - 3260000000, - 3230000000, - 3200000000, - 3190000000, - 3180000000, - 3180000000, - 3200000000, - 3240000000, - 3240000000, - 3250000000, - 3240000000, - 3250000000, - 3250000000, - 3240000000, - 3240000000, - 3250000000, - 3250000000, - 3250000000, + 3290000000, + 3290000000, + 3280000000, + 3280000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, 3270000000, 3280000000, 3280000000, 3280000000, 3280000000, + 3280000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3290000000, + 3280000000, + 3280000000, + 3280000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, 3270000000, 3270000000, 3280000000, 3280000000, 3270000000, - 3250000000, - 3050000000 + 3130000000 ] } } \ No newline at end of file diff --git a/perf/runner/src/versions.ts b/perf/runner/src/versions.ts index e43e95e6d..11aa98a3a 100644 --- a/perf/runner/src/versions.ts +++ b/perf/runner/src/versions.ts @@ -1,6 +1,6 @@ export type Version = { id: string, - implementation: "go-libp2p" | "js-libp2p" | "nim-libp2p" | "rust-libp2p" | "zig-libp2p" | "https" | "quic-go", + implementation: "go-libp2p" | "js-libp2p" | "nim-libp2p" | "rust-libp2p" | "rust-libp2p-quinn" | "zig-libp2p" | "https" | "quic-go", transportStacks: string[], } @@ -16,9 +16,9 @@ export const versions: Array = [ transportStacks: ["tcp", "quic-v1"] }, { - id: "v0.52-quinn", - implementation: "rust-libp2p", - transportStacks: ["tcp", "quic-v1"] + id: "v0.52", + implementation: "rust-libp2p-quinn", + transportStacks: ["quic-v1"] }, { id: "v0.1", From 9b3d61a991b7f99c82783961f679bfaf2af7daa4 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 18 May 2023 17:09:31 +0900 Subject: [PATCH 085/143] fix(quic-go): use upstream With https://github.com/quic-go/perf/pull/5 and https://github.com/quic-go/perf/pull/4 one can use the upstream implementation directly. --- perf/impl/quic-go/v0.34/Makefile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/perf/impl/quic-go/v0.34/Makefile b/perf/impl/quic-go/v0.34/Makefile index b8c4a51af..d8c1cedc1 100644 --- a/perf/impl/quic-go/v0.34/Makefile +++ b/perf/impl/quic-go/v0.34/Makefile @@ -1,4 +1,4 @@ -commitSha := b3ed7966a563d528b7aa19265cbca929bf2bc73f +commitSha := 5ef52595604bee86e75d9692d08441ed6c208668 all: perf @@ -10,8 +10,7 @@ perf-${commitSha}: perf-${commitSha}.zip unzip -o perf-${commitSha}.zip perf-${commitSha}.zip: - # TODO: Depend on upstream, not mxinden - wget -O $@ "https://github.com/mxinden/perf/archive/${commitSha}.zip" + wget -O $@ "https://github.com/quic-go/perf/archive/${commitSha}.zip" clean: rm perf-*.zip From a91159bba21133ac76fde2f7ddc6c27ec2ac1382 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Fri, 19 May 2023 16:07:21 +0900 Subject: [PATCH 086/143] Have rsync adhere to .gitignore --- perf/runner/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index 3d2fd5ce8..76de3f9dc 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -220,7 +220,7 @@ function execCommand(cmd: string): string { } function copyAndBuildPerfImplementations(ip: string) { - const stdout = execCommand(`rsync -avz --progress ../impl ec2-user@${ip}:/home/ec2-user`); + const stdout = execCommand(`rsync -avz --progress --filter=':- .gitignore' ../impl ec2-user@${ip}:/home/ec2-user`); console.error(stdout.toString()); const stdout2 = execCommand(`ssh ec2-user@${ip} 'cd impl && make'`); From c5de2c7b1b2f3475aa6565b4ef07f11ab411129a Mon Sep 17 00:00:00 2001 From: Max Inden Date: Fri, 19 May 2023 18:23:01 +0900 Subject: [PATCH 087/143] Change implementation output format - Makes emited values self-describing. - Ensures accounting of connection establishment. - Allows differentiation in subsequent data analysis. --- perf/README.md | 5 +- perf/impl/go-libp2p/v0.27/.gitignore | 3 + perf/impl/go-libp2p/v0.27/Makefile | 8 +- perf/impl/go-libp2p/v0.27/main.go | 39 +- perf/impl/go-libp2p/v0.27/perf.go | 21 +- perf/impl/https/.gitignore | 1 + perf/impl/https/v0.1/Makefile | 4 +- perf/impl/https/v0.1/main.go | 31 +- perf/impl/quic-go/v0.34/Makefile | 9 +- perf/impl/rust-libp2p-quinn/v0.52/Makefile | 2 +- perf/impl/rust-libp2p/v0.52/Makefile | 2 +- perf/runner/benchmark-results.json | 4800 ++++++++++++++++---- perf/runner/src/benchmark-result-type.ts | 14 +- perf/runner/src/index.ts | 34 +- 14 files changed, 3963 insertions(+), 1010 deletions(-) create mode 100644 perf/impl/go-libp2p/v0.27/.gitignore diff --git a/perf/README.md b/perf/README.md index 69031d1f5..4fd2f544e 100644 --- a/perf/README.md +++ b/perf/README.md @@ -41,6 +41,9 @@ Benchmark results can be visualized with https://observablehq.com/@mxinden-works - `--download-bytes` number of bytes to upload per stream. - Output - Logging MUST go to stderr. - - Measurement output is printed to stdout as JSON in the form of `{ latencies: [ 1.0, 42.0 ]}`. + - Measurement output is printed to stdout as JSON in the form of: + ```json + {"connectionEstablishedSeconds":0.246442851,"uploadSeconds":0.000002077,"DownloadSeconds":0.060712241} + ``` 2. Reference implementation in `runner/src/versions.ts`. diff --git a/perf/impl/go-libp2p/v0.27/.gitignore b/perf/impl/go-libp2p/v0.27/.gitignore new file mode 100644 index 000000000..d06b4219a --- /dev/null +++ b/perf/impl/go-libp2p/v0.27/.gitignore @@ -0,0 +1,3 @@ +perf +.cache +v0.27 \ No newline at end of file diff --git a/perf/impl/go-libp2p/v0.27/Makefile b/perf/impl/go-libp2p/v0.27/Makefile index 3742d184b..061ec78ef 100644 --- a/perf/impl/go-libp2p/v0.27/Makefile +++ b/perf/impl/go-libp2p/v0.27/Makefile @@ -1,9 +1,13 @@ +GO_FILES := $(wildcard *.go) + all: perf -perf: +perf: $(GO_FILES) docker run --rm --user "$(shell id -u):$(shell id -g)" -v "$(shell pwd)":/usr/src/myapp -w /usr/src/myapp -e GOCACHE=/usr/src/myapp/.cache golang:1.20 go build -o perf . clean: rm perf + rm .cache + rm v0.27 -.PHONY: all +.PHONY: all clean diff --git a/perf/impl/go-libp2p/v0.27/main.go b/perf/impl/go-libp2p/v0.27/main.go index c341e03b6..0772727eb 100644 --- a/perf/impl/go-libp2p/v0.27/main.go +++ b/perf/impl/go-libp2p/v0.27/main.go @@ -5,12 +5,12 @@ import ( "encoding/json" "flag" "fmt" - "time" "strings" + "time" "github.com/libp2p/go-libp2p" - "github.com/libp2p/go-libp2p/core/peer" "github.com/libp2p/go-libp2p/core/crypto" + "github.com/libp2p/go-libp2p/core/peer" "github.com/multiformats/go-multiaddr" ) @@ -23,13 +23,12 @@ func main() { downloadBytes := flag.Uint64("download-bytes", 0, "Download bytes") flag.Parse() - var opts []libp2p.Option - if *runServer { + if *runServer { opts = append(opts, libp2p.ListenAddrStrings("/ip4/0.0.0.0/tcp/4001", "/ip4/0.0.0.0/udp/4001/quic-v1")) // TODO: Fake identity. For testing only. - priv, _, err := crypto.GenerateEd25519Key(&simpleReader{seed:uint8(*secretKeySeed)}) + priv, _, err := crypto.GenerateEd25519Key(&simpleReader{seed: uint8(*secretKeySeed)}) if err != nil { panic(err) } @@ -75,31 +74,23 @@ func main() { panic(err) } + start := time.Now() err = h.Connect(context.Background(), *serverInfo) if err != nil { panic(err) } + connectionEstablished := time.Since(start) - times := make([]time.Duration, 0, 1) - - start := time.Now() - err = perf.RunPerf(context.Background(), serverInfo.ID, uint64(*uploadBytes), uint64(*downloadBytes)) + upload, download, err := perf.RunPerf(context.Background(), serverInfo.ID, uint64(*uploadBytes), uint64(*downloadBytes)) if err != nil { panic(err) } - times = append(times, time.Since(start)) - - // float32 because json - timesS := make([]float32, 0, len(times)) - for _, t := range times { - timesS = append(timesS, float32(t.Seconds())) - } - - latencies := Latencies{ - Latencies: timesS, - } - jsonB, err := json.Marshal(latencies) + jsonB, err := json.Marshal(Result{ + ConnectionEstablishedSeconds: connectionEstablished.Seconds(), + UploadSeconds: upload.Seconds(), + DownloadSeconds: download.Seconds(), + }) if err != nil { panic(err) } @@ -107,8 +98,10 @@ func main() { fmt.Println(string(jsonB)) } -type Latencies struct { - Latencies []float32 `json:"latencies"` +type Result struct { + ConnectionEstablishedSeconds float64 `json:"connectionEstablishedSeconds"` + UploadSeconds float64 `json:"uploadSeconds"` + DownloadSeconds float64 `json: "downloadSeconds"` } type simpleReader struct { diff --git a/perf/impl/go-libp2p/v0.27/perf.go b/perf/impl/go-libp2p/v0.27/perf.go index cc7096bcb..7a3e2b7a3 100644 --- a/perf/impl/go-libp2p/v0.27/perf.go +++ b/perf/impl/go-libp2p/v0.27/perf.go @@ -5,6 +5,7 @@ import ( "encoding/binary" "fmt" "io" + "time" logging "github.com/ipfs/go-log/v2" pool "github.com/libp2p/go-buffer-pool" @@ -93,10 +94,10 @@ func (ps *PerfService) drainStream(ctx context.Context, s network.Stream, buf [] } } -func (ps *PerfService) RunPerf(ctx context.Context, p peer.ID, bytesToSend uint64, bytesToRecv uint64) error { +func (ps *PerfService) RunPerf(ctx context.Context, p peer.ID, bytesToSend uint64, bytesToRecv uint64) (time.Duration, time.Duration, error) { s, err := ps.Host.NewStream(ctx, p, ID) if err != nil { - return err + return 0, 0, err } buf := pool.Get(BlockSize) @@ -107,22 +108,26 @@ func (ps *PerfService) RunPerf(ctx context.Context, p peer.ID, bytesToSend uint6 _, err = s.Write(sizeBuf) if err != nil { - - return err + return 0, 0, err } + sendStart := time.Now() err = ps.sendBytes(ctx, s, bytesToSend, buf) if err != nil { - return err + return 0, 0, err } + sendDuration := time.Since(sendStart) + recvStart := time.Now() recvd, err := ps.drainStream(ctx, s, buf) if err != nil { - return err + return sendDuration, 0, err } + recvDuration := time.Since(recvStart) if recvd != bytesToRecv { - return fmt.Errorf("expected to recv %d bytes, got %d", bytesToRecv, recvd) + return sendDuration, recvDuration, fmt.Errorf("expected to recv %d bytes, got %d", bytesToRecv, recvd) } - return err + + return sendDuration, recvDuration, nil } diff --git a/perf/impl/https/.gitignore b/perf/impl/https/.gitignore index 6652a25c1..819c818b2 100644 --- a/perf/impl/https/.gitignore +++ b/perf/impl/https/.gitignore @@ -2,3 +2,4 @@ go-libp2p-*.zip go-libp2p-* go-libp2p-*/* image.json +https diff --git a/perf/impl/https/v0.1/Makefile b/perf/impl/https/v0.1/Makefile index 3742d184b..7df62c287 100644 --- a/perf/impl/https/v0.1/Makefile +++ b/perf/impl/https/v0.1/Makefile @@ -1,6 +1,8 @@ +GO_FILES := $(wildcard *.go) + all: perf -perf: +perf: $(GO_FILES) docker run --rm --user "$(shell id -u):$(shell id -g)" -v "$(shell pwd)":/usr/src/myapp -w /usr/src/myapp -e GOCACHE=/usr/src/myapp/.cache golang:1.20 go build -o perf . clean: diff --git a/perf/impl/https/v0.1/main.go b/perf/impl/https/v0.1/main.go index b0b2a0f4b..9dc952d45 100644 --- a/perf/impl/https/v0.1/main.go +++ b/perf/impl/https/v0.1/main.go @@ -54,7 +54,7 @@ func handleRequest(w http.ResponseWriter, r *http.Request) { } } -func runClient(serverAddr string, uploadBytes, downloadBytes uint64) (time.Duration, error) { +func runClient(serverAddr string, uploadBytes, downloadBytes uint64) (time.Duration, time.Duration, error) { client := &http.Client{ Transport: &http.Transport{ TLSClientConfig: &tls.Config{ @@ -69,19 +69,20 @@ func runClient(serverAddr string, uploadBytes, downloadBytes uint64) (time.Durat startTime := time.Now() resp, err := client.Post(fmt.Sprintf("https://%s/", serverAddr), "application/octet-stream", bytes.NewReader(reqBody)) if err != nil { - return 0, err + return 0, 0, err } + uploadDoneTime := time.Now() respBody, err := ioutil.ReadAll(resp.Body) if err != nil { - return 0, fmt.Errorf("error reading response: %w\n", err) + return 0, 0, fmt.Errorf("error reading response: %w\n", err) } defer resp.Body.Close() if uint64(len(respBody)) != downloadBytes { - return 0, fmt.Errorf("expected %d bytes in response, but received %d\n", downloadBytes, len(respBody)) + return 0, 0, fmt.Errorf("expected %d bytes in response, but received %d\n", downloadBytes, len(respBody)) } - return time.Since(startTime), nil + return uploadDoneTime.Sub(startTime), time.Since(uploadDoneTime), nil } func generateEphemeralCertificate() (tls.Certificate, error) { @@ -135,8 +136,10 @@ func generateEphemeralCertificate() (tls.Certificate, error) { return cert, nil } -type Latencies struct { - Latencies []float64 `json:"latencies"` +type Result struct { + ConnectionEstablishedSeconds float64 `json:"connectionEstablishedSeconds"` + UploadSeconds float64 `json:"uploadSeconds"` + DownloadSeconds float64 `json: "downloadSeconds"` } func main() { @@ -178,17 +181,17 @@ func main() { } // Run the client and print the results - d, err := runClient(*serverAddr, *uploadBytes, *downloadBytes) + upload, download, err := runClient(*serverAddr, *uploadBytes, *downloadBytes) if err != nil { log.Fatal(err) } - // Convert durations to seconds and marshal as JSON - latencies := Latencies{ - Latencies: []float64{d.Seconds()}, - } - - jsonB, err := json.Marshal(latencies) + jsonB, err := json.Marshal(Result{ + // TODO: Ideally we would be able to measure the Go std TCP+TLS connection establishment time. + ConnectionEstablishedSeconds: 0, + UploadSeconds: upload.Seconds(), + DownloadSeconds: download.Seconds(), + }) if err != nil { panic(err) } diff --git a/perf/impl/quic-go/v0.34/Makefile b/perf/impl/quic-go/v0.34/Makefile index d8c1cedc1..b3e08dd5c 100644 --- a/perf/impl/quic-go/v0.34/Makefile +++ b/perf/impl/quic-go/v0.34/Makefile @@ -1,4 +1,4 @@ -commitSha := 5ef52595604bee86e75d9692d08441ed6c208668 +commitSha := d6c70ce629c3df1ac0ad71baafc2d6e53d02de40 all: perf @@ -10,13 +10,16 @@ perf-${commitSha}: perf-${commitSha}.zip unzip -o perf-${commitSha}.zip perf-${commitSha}.zip: - wget -O $@ "https://github.com/quic-go/perf/archive/${commitSha}.zip" + # TODO: Use upstream + wget -O $@ "https://github.com/mxinden/perf/archive/${commitSha}.zip" clean: rm perf-*.zip rm -rf perf-* rm perf + rm .cache + rm v0.27 -.PHONY: clean +.PHONY: all clean diff --git a/perf/impl/rust-libp2p-quinn/v0.52/Makefile b/perf/impl/rust-libp2p-quinn/v0.52/Makefile index 7211ff749..2314aa9e1 100644 --- a/perf/impl/rust-libp2p-quinn/v0.52/Makefile +++ b/perf/impl/rust-libp2p-quinn/v0.52/Makefile @@ -1,4 +1,4 @@ -commitSha := bb75989700e64318203027e7f6fe284a0e86a1e5 +commitSha := f91afe9e64ed89441f45a1bb3261c3930da040d1 all: perf diff --git a/perf/impl/rust-libp2p/v0.52/Makefile b/perf/impl/rust-libp2p/v0.52/Makefile index 4a649348a..9565472bd 100644 --- a/perf/impl/rust-libp2p/v0.52/Makefile +++ b/perf/impl/rust-libp2p/v0.52/Makefile @@ -1,4 +1,4 @@ -commitSha := 08e4276e048f4d90c064960e689f41e4f30c80b9 +commitSha := fa6886cd73d09b9b0ff0b7ce6334a42d760ddf88 all: perf diff --git a/perf/runner/benchmark-results.json b/perf/runner/benchmark-results.json index 5ea4f4d87..84b879146 100644 --- a/perf/runner/benchmark-results.json +++ b/perf/runner/benchmark-results.json @@ -6,11 +6,31 @@ "results": [ { "result": [ - 476723778.8248372, - 461660061.64927495, - 482555957.5924573, - 477675526.484072, - 454270690.6168601 + { + "connectionEstablishedSeconds": 0.064615047, + "uploadSeconds": 0.988964167, + "DownloadSeconds": 1.19e-7 + }, + { + "connectionEstablishedSeconds": 0.064595, + "uploadSeconds": 1.006270274, + "DownloadSeconds": 5.7e-8 + }, + { + "connectionEstablishedSeconds": 0.061957379, + "uploadSeconds": 0.967206045, + "DownloadSeconds": 1.5e-7 + }, + { + "connectionEstablishedSeconds": 0.066333628, + "uploadSeconds": 1.041923666, + "DownloadSeconds": 8.1e-8 + }, + { + "connectionEstablishedSeconds": 0.064395005, + "uploadSeconds": 1.001865646, + "DownloadSeconds": 1.51e-7 + } ], "implementation": "quic-go", "version": "v0.34", @@ -18,11 +38,31 @@ }, { "result": [ - 23765074.98195795, - 22951785.20901357, - 21295876.480998363, - 20670355.201553, - 22423122.172141254 + { + "connection_established_seconds": 0.130085386, + "upload_seconds": 37.706576579, + "download_seconds": 0.06323964 + }, + { + "connection_established_seconds": 0.126073934, + "upload_seconds": 35.394770671, + "download_seconds": 0.062791976 + }, + { + "connection_established_seconds": 0.118604112, + "upload_seconds": 34.323311088, + "download_seconds": 0.059298347 + }, + { + "connection_established_seconds": 0.124873844, + "upload_seconds": 35.669218402, + "download_seconds": 0.063715144 + }, + { + "connection_established_seconds": 0.127441566, + "upload_seconds": 35.740599168, + "download_seconds": 0.063565162 + } ], "implementation": "rust-libp2p", "version": "v0.52", @@ -30,11 +70,31 @@ }, { "result": [ - 36852744.228101, - 43840643.78511356, - 57316078.625662796, - 52626915.16678075, - 105155556.02028346 + { + "connection_established_seconds": 0.065548222, + "upload_seconds": 14.530045427, + "download_seconds": 0.000076453 + }, + { + "connection_established_seconds": 0.065969131, + "upload_seconds": 9.529083867, + "download_seconds": 0.000050095 + }, + { + "connection_established_seconds": 0.066708447, + "upload_seconds": 12.083736464, + "download_seconds": 0.000108361 + }, + { + "connection_established_seconds": 0.062826795, + "upload_seconds": 8.016417861, + "download_seconds": 0.000057748 + }, + { + "connection_established_seconds": 0.061946997, + "upload_seconds": 15.177270054, + "download_seconds": 0.000040064 + } ], "implementation": "rust-libp2p", "version": "v0.52", @@ -42,11 +102,31 @@ }, { "result": [ - 587621511.1614571, - 563901201.5760119, - 558907605.1141443, - 592131180.9976248, - 580282064.2821823 + { + "connection_established_seconds": 0.065995905, + "upload_seconds": 1.485719002, + "download_seconds": 0.000553305 + }, + { + "connection_established_seconds": 0.063538531, + "upload_seconds": 1.395860033, + "download_seconds": 0.000067559 + }, + { + "connection_established_seconds": 0.065835491, + "upload_seconds": 1.454903434, + "download_seconds": 0.00003936 + }, + { + "connection_established_seconds": 0.062994266, + "upload_seconds": 1.390279352, + "download_seconds": 0.000037439 + }, + { + "connection_established_seconds": 0.061966219, + "upload_seconds": 1.365005507, + "download_seconds": 0.000038552 + } ], "implementation": "rust-libp2p-quinn", "version": "v0.52", @@ -54,11 +134,31 @@ }, { "result": [ - 303350936.8223497, - 286964977.924173, - 315075038.70949465, - 283952075.21250784, - 294792314.516067 + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 2.874647174, + "DownloadSeconds": 0.000004258 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 2.834617305, + "DownloadSeconds": 0.000002323 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 2.7802673049999997, + "DownloadSeconds": 0.000002272 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 2.875364372, + "DownloadSeconds": 0.000004399 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 2.886239104, + "DownloadSeconds": 0.000004495 + } ], "implementation": "https", "version": "v0.1", @@ -66,11 +166,31 @@ }, { "result": [ - 248955230.98554525, - 287854438.84119874, - 272133599.2185647, - 279250074.1516996, - 253393667.34529442 + { + "connectionEstablishedSeconds": 0.251550611, + "uploadSeconds": 2.846900655, + "DownloadSeconds": 0.123533731 + }, + { + "connectionEstablishedSeconds": 0.242425913, + "uploadSeconds": 2.795257683, + "DownloadSeconds": 0.118580522 + }, + { + "connectionEstablishedSeconds": 0.246873845, + "uploadSeconds": 3.063707114, + "DownloadSeconds": 0.121986488 + }, + { + "connectionEstablishedSeconds": 0.249576396, + "uploadSeconds": 3.085365409, + "DownloadSeconds": 0.122945992 + }, + { + "connectionEstablishedSeconds": 0.245968516, + "uploadSeconds": 2.773947588, + "DownloadSeconds": 0.120331421 + } ], "implementation": "go-libp2p", "version": "v0.27", @@ -78,17 +198,41 @@ }, { "result": [ - 628532042.7331849, - 617444244.3285623, - 625160545.3616196, - 620091153.002094, - 606479285.7655139 + { + "connectionEstablishedSeconds": 0.126053411, + "uploadSeconds": 1.260300357, + "DownloadSeconds": 0.061025325 + }, + { + "connectionEstablishedSeconds": 0.1235829, + "uploadSeconds": 1.221448272, + "DownloadSeconds": 0.059113222 + }, + { + "connectionEstablishedSeconds": 0.12598381, + "uploadSeconds": 1.248171035, + "DownloadSeconds": 0.060479591 + }, + { + "connectionEstablishedSeconds": 0.127167588, + "uploadSeconds": 1.270804783, + "DownloadSeconds": 0.060895254 + }, + { + "connectionEstablishedSeconds": 0.12712039, + "uploadSeconds": 1.276295741, + "DownloadSeconds": 0.061811092 + } ], "implementation": "go-libp2p", "version": "v0.27", "transportStack": "quic-v1" } - ] + ], + "parameters": { + "uploadBytes": 104857600, + "downloadBytes": 0 + } }, { "name": "Single Connection throughput – Download 100 MiB", @@ -96,11 +240,31 @@ "results": [ { "result": [ - 476749517.7722385, - 467811983.10466784, - 446846915.95167285, - 440905820.23930603, - 442712191.435396 + { + "connectionEstablishedSeconds": 0.061999713, + "uploadSeconds": 4.39e-7, + "DownloadSeconds": 1.028321192 + }, + { + "connectionEstablishedSeconds": 0.064917296, + "uploadSeconds": 5.56e-7, + "DownloadSeconds": 1.061596996 + }, + { + "connectionEstablishedSeconds": 0.066126296, + "uploadSeconds": 7.02e-7, + "DownloadSeconds": 1.087863123 + }, + { + "connectionEstablishedSeconds": 0.062688429, + "uploadSeconds": 5.69e-7, + "DownloadSeconds": 1.042664418 + }, + { + "connectionEstablishedSeconds": 0.062954018, + "uploadSeconds": 5.47e-7, + "DownloadSeconds": 1.0342652 + } ], "implementation": "quic-go", "version": "v0.34", @@ -108,11 +272,31 @@ }, { "result": [ - 23489986.277543712, - 23989190.127659697, - 22047202.20693784, - 23535688.679104857, - 23750819.898304287 + { + "connection_established_seconds": 0.12706415, + "upload_seconds": 0.063256119, + "download_seconds": 35.974620608 + }, + { + "connection_established_seconds": 0.127749712, + "upload_seconds": 0.063366234, + "download_seconds": 41.601253149 + }, + { + "connection_established_seconds": 0.122257267, + "upload_seconds": 0.060835769, + "download_seconds": 34.346292556 + }, + { + "connection_established_seconds": 0.128953805, + "upload_seconds": 0.064083786, + "download_seconds": 42.747025706 + }, + { + "connection_established_seconds": 0.1210829, + "upload_seconds": 0.060118424, + "download_seconds": 34.064101133 + } ], "implementation": "rust-libp2p", "version": "v0.52", @@ -120,11 +304,31 @@ }, { "result": [ - 48010448.5791753, - 63604116.19768055, - 68905977.78654173, - 52916573.41143532, - 80712143.69185075 + { + "connection_established_seconds": 0.066243543, + "upload_seconds": 0.129079158, + "download_seconds": 10.54329554 + }, + { + "connection_established_seconds": 0.063366265, + "upload_seconds": 0.123480025, + "download_seconds": 13.530595282 + }, + { + "connection_established_seconds": 0.063453185, + "upload_seconds": 0.123524922, + "download_seconds": 12.251153406 + }, + { + "connection_established_seconds": 0.063395541, + "upload_seconds": 0.123495377, + "download_seconds": 10.753483627 + }, + { + "connection_established_seconds": 0.063278224, + "upload_seconds": 0.123278503, + "download_seconds": 13.267019601 + } ], "implementation": "rust-libp2p", "version": "v0.52", @@ -132,11 +336,31 @@ }, { "result": [ - 583364875.6727204, - 574905132.1426404, - 576181208.0931789, - 556790173.646611, - 584184486.9257556 + { + "connection_established_seconds": 0.06488199, + "upload_seconds": 0.125932155, + "download_seconds": 1.3633550589999999 + }, + { + "connection_established_seconds": 0.064353019, + "upload_seconds": 0.125460117, + "download_seconds": 1.3598140189999999 + }, + { + "connection_established_seconds": 0.062296858, + "upload_seconds": 0.12124451, + "download_seconds": 1.313197081 + }, + { + "connection_established_seconds": 0.065277725, + "upload_seconds": 0.127151015, + "download_seconds": 1.415552125 + }, + { + "connection_established_seconds": 0.064746505, + "upload_seconds": 0.126296331, + "download_seconds": 1.373616806 + } ], "implementation": "rust-libp2p-quinn", "version": "v0.52", @@ -144,11 +368,31 @@ }, { "result": [ - 275173785.9263513, - 289390075.919085, - 290850417.7955512, - 249953022.7856405, - 281877043.9985076 + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.187967569, + "DownloadSeconds": 2.7059459219999997 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.185706236, + "DownloadSeconds": 2.61942649 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.192289066, + "DownloadSeconds": 2.716054685 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.191801605, + "DownloadSeconds": 2.802501777 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.193762824, + "DownloadSeconds": 3.006738304 + } ], "implementation": "https", "version": "v0.1", @@ -156,11 +400,31 @@ }, { "result": [ - 273784647.29723024, - 272677630.60313463, - 270261907.5924625, - 277904300.24740565, - 280673597.2540147 + { + "connectionEstablishedSeconds": 0.249739662, + "uploadSeconds": 0.000002098, + "DownloadSeconds": 2.9350942460000002 + }, + { + "connectionEstablishedSeconds": 0.254077537, + "uploadSeconds": 0.000001776, + "DownloadSeconds": 2.99984772 + }, + { + "connectionEstablishedSeconds": 0.26064741, + "uploadSeconds": 0.000002265, + "DownloadSeconds": 3.07579614 + }, + { + "connectionEstablishedSeconds": 0.248876875, + "uploadSeconds": 0.000001814, + "DownloadSeconds": 3.109052261 + }, + { + "connectionEstablishedSeconds": 0.257652776, + "uploadSeconds": 0.000001835, + "DownloadSeconds": 3.094898801 + } ], "implementation": "go-libp2p", "version": "v0.27", @@ -168,17 +432,41 @@ }, { "result": [ - 611693361.4131863, - 616559070.6479324, - 670183088.6106693, - 622577916.6065818, - 638752777.1129873 + { + "connectionEstablishedSeconds": 0.129198968, + "uploadSeconds": 0.000001513, + "DownloadSeconds": 1.336376132 + }, + { + "connectionEstablishedSeconds": 0.128866615, + "uploadSeconds": 0.000001247, + "DownloadSeconds": 1.357847528 + }, + { + "connectionEstablishedSeconds": 0.128139163, + "uploadSeconds": 0.000001393, + "DownloadSeconds": 1.343668511 + }, + { + "connectionEstablishedSeconds": 0.130263946, + "uploadSeconds": 0.000001313, + "DownloadSeconds": 1.353385803 + }, + { + "connectionEstablishedSeconds": 0.124757242, + "uploadSeconds": 0.000001468, + "DownloadSeconds": 1.3143922639999999 + } ], "implementation": "go-libp2p", "version": "v0.27", "transportStack": "quic-v1" } - ] + ], + "parameters": { + "uploadBytes": 0, + "downloadBytes": 104857600 + } }, { "name": "Connection establishment + 1 byte round trip latencies", @@ -186,106 +474,506 @@ "results": [ { "result": [ - 0.060905, - 0.062693, - 0.063777, - 0.063916, - 0.059215, - 0.065067, - 0.062213, - 0.064145, - 0.062774, - 0.062359, - 0.06166, - 0.061706, - 0.060264, - 0.060664, - 0.063287, - 0.061812, - 0.0629, - 0.059316, - 0.05919, - 0.062934, - 0.063118, - 0.060439, - 0.064315, - 0.062508, - 0.063761, - 0.063315, - 0.061367, - 0.062988, - 0.059807, - 0.060197, - 0.060838, - 0.062964, - 0.06223, - 0.062095, - 0.062096, - 0.064432, - 0.063195, - 0.065238, - 0.061205, - 0.062939, - 0.063537, - 0.06006, - 0.060019, - 0.064216, - 0.060701, - 0.062679, - 0.062253, - 0.064651, - 0.062843, - 0.060521, - 0.060848, - 0.059283, - 0.062424, - 0.061856, - 0.063087, - 0.063297, - 0.061369, - 0.063544, - 0.062058, - 0.062173, - 0.062172, - 0.061188, - 0.063542, - 0.061727, - 0.061679, - 0.06286, - 0.060542, - 0.058694, - 0.061641, - 0.06066, - 0.061464, - 0.060379, - 0.062796, - 0.062687, - 0.062132, - 0.063595, - 0.064073, - 0.061627, - 0.060453, - 0.062774, - 0.063695, - 0.060345, - 0.061924, - 0.060824, - 0.059899, - 0.063754, - 0.062419, - 0.063831, - 0.064334, - 0.061046, - 0.061326, - 0.060717, - 0.064362, - 0.061458, - 0.058738, - 0.065154, - 0.062657, - 0.061958, - 0.062341, - 0.060581 + { + "connectionEstablishedSeconds": 0.065069473, + "uploadSeconds": 0.000001866, + "DownloadSeconds": 0.062256472 + }, + { + "connectionEstablishedSeconds": 0.064288585, + "uploadSeconds": 0.000002063, + "DownloadSeconds": 0.06233876 + }, + { + "connectionEstablishedSeconds": 0.064484789, + "uploadSeconds": 0.000002073, + "DownloadSeconds": 0.062723672 + }, + { + "connectionEstablishedSeconds": 0.062385008, + "uploadSeconds": 0.000001881, + "DownloadSeconds": 0.060628645 + }, + { + "connectionEstablishedSeconds": 0.063304243, + "uploadSeconds": 0.000001961, + "DownloadSeconds": 0.061635519 + }, + { + "connectionEstablishedSeconds": 0.063332073, + "uploadSeconds": 8.86e-7, + "DownloadSeconds": 0.061448365 + }, + { + "connectionEstablishedSeconds": 0.062947885, + "uploadSeconds": 8.13e-7, + "DownloadSeconds": 0.0612649 + }, + { + "connectionEstablishedSeconds": 0.065377389, + "uploadSeconds": 7.24e-7, + "DownloadSeconds": 0.063726463 + }, + { + "connectionEstablishedSeconds": 0.06389184, + "uploadSeconds": 0.000001823, + "DownloadSeconds": 0.062134002 + }, + { + "connectionEstablishedSeconds": 0.06182418, + "uploadSeconds": 0.000001945, + "DownloadSeconds": 0.060201813 + }, + { + "connectionEstablishedSeconds": 0.062630776, + "uploadSeconds": 0.000001825, + "DownloadSeconds": 0.060914704 + }, + { + "connectionEstablishedSeconds": 0.06616315, + "uploadSeconds": 0.000001876, + "DownloadSeconds": 0.064389835 + }, + { + "connectionEstablishedSeconds": 0.060004119, + "uploadSeconds": 0.000001963, + "DownloadSeconds": 0.058251497 + }, + { + "connectionEstablishedSeconds": 0.064923606, + "uploadSeconds": 8.29e-7, + "DownloadSeconds": 0.063041205 + }, + { + "connectionEstablishedSeconds": 0.064839276, + "uploadSeconds": 0.000001954, + "DownloadSeconds": 0.063133865 + }, + { + "connectionEstablishedSeconds": 0.063852939, + "uploadSeconds": 0.000001953, + "DownloadSeconds": 0.062121333 + }, + { + "connectionEstablishedSeconds": 0.064406821, + "uploadSeconds": 8.09e-7, + "DownloadSeconds": 0.064277535 + }, + { + "connectionEstablishedSeconds": 0.063644647, + "uploadSeconds": 0.00000193, + "DownloadSeconds": 0.061865325 + }, + { + "connectionEstablishedSeconds": 0.06144155, + "uploadSeconds": 0.000001766, + "DownloadSeconds": 0.059727007 + }, + { + "connectionEstablishedSeconds": 0.060326476, + "uploadSeconds": 0.000001896, + "DownloadSeconds": 0.058577622 + }, + { + "connectionEstablishedSeconds": 0.062268388, + "uploadSeconds": 8.54e-7, + "DownloadSeconds": 0.060703616 + }, + { + "connectionEstablishedSeconds": 0.06514159, + "uploadSeconds": 0.000001883, + "DownloadSeconds": 0.063407356 + }, + { + "connectionEstablishedSeconds": 0.06609423, + "uploadSeconds": 0.000001916, + "DownloadSeconds": 0.06438571 + }, + { + "connectionEstablishedSeconds": 0.06248634, + "uploadSeconds": 0.000001957, + "DownloadSeconds": 0.060845688 + }, + { + "connectionEstablishedSeconds": 0.059670474, + "uploadSeconds": 0.000001877, + "DownloadSeconds": 0.058048044 + }, + { + "connectionEstablishedSeconds": 0.064270199, + "uploadSeconds": 0.000001983, + "DownloadSeconds": 0.062635036 + }, + { + "connectionEstablishedSeconds": 0.06429604, + "uploadSeconds": 7.7e-7, + "DownloadSeconds": 0.062659615 + }, + { + "connectionEstablishedSeconds": 0.064919854, + "uploadSeconds": 0.000001919, + "DownloadSeconds": 0.063192498 + }, + { + "connectionEstablishedSeconds": 0.065954302, + "uploadSeconds": 0.00000183, + "DownloadSeconds": 0.064251883 + }, + { + "connectionEstablishedSeconds": 0.064098869, + "uploadSeconds": 7.44e-7, + "DownloadSeconds": 0.062482036 + }, + { + "connectionEstablishedSeconds": 0.062022221, + "uploadSeconds": 8.36e-7, + "DownloadSeconds": 0.060461973 + }, + { + "connectionEstablishedSeconds": 0.064627862, + "uploadSeconds": 0.000001859, + "DownloadSeconds": 0.062912864 + }, + { + "connectionEstablishedSeconds": 0.066653299, + "uploadSeconds": 7.84e-7, + "DownloadSeconds": 0.065027545 + }, + { + "connectionEstablishedSeconds": 0.063758312, + "uploadSeconds": 0.000001955, + "DownloadSeconds": 0.061661263 + }, + { + "connectionEstablishedSeconds": 0.065877464, + "uploadSeconds": 0.000002, + "DownloadSeconds": 0.06417309 + }, + { + "connectionEstablishedSeconds": 0.064380299, + "uploadSeconds": 8.84e-7, + "DownloadSeconds": 0.062695264 + }, + { + "connectionEstablishedSeconds": 0.066849312, + "uploadSeconds": 0.000001934, + "DownloadSeconds": 0.06515325 + }, + { + "connectionEstablishedSeconds": 0.065114281, + "uploadSeconds": 8.7e-7, + "DownloadSeconds": 0.063618019 + }, + { + "connectionEstablishedSeconds": 0.060301618, + "uploadSeconds": 8.29e-7, + "DownloadSeconds": 0.058627961 + }, + { + "connectionEstablishedSeconds": 0.061927104, + "uploadSeconds": 0.000001807, + "DownloadSeconds": 0.060320047 + }, + { + "connectionEstablishedSeconds": 0.061410291, + "uploadSeconds": 7.8e-7, + "DownloadSeconds": 0.059774255 + }, + { + "connectionEstablishedSeconds": 0.060291912, + "uploadSeconds": 0.000001748, + "DownloadSeconds": 0.058655747 + }, + { + "connectionEstablishedSeconds": 0.064003172, + "uploadSeconds": 0.0000019, + "DownloadSeconds": 0.062414151 + }, + { + "connectionEstablishedSeconds": 0.062299025, + "uploadSeconds": 0.000001929, + "DownloadSeconds": 0.060600816 + }, + { + "connectionEstablishedSeconds": 0.063780385, + "uploadSeconds": 0.000001764, + "DownloadSeconds": 0.062150151 + }, + { + "connectionEstablishedSeconds": 0.064086724, + "uploadSeconds": 0.000001943, + "DownloadSeconds": 0.062438543 + }, + { + "connectionEstablishedSeconds": 0.061971952, + "uploadSeconds": 7.16e-7, + "DownloadSeconds": 0.060368773 + }, + { + "connectionEstablishedSeconds": 0.063038818, + "uploadSeconds": 0.000001832, + "DownloadSeconds": 0.06087449 + }, + { + "connectionEstablishedSeconds": 0.066742315, + "uploadSeconds": 0.00000196, + "DownloadSeconds": 0.065181044 + }, + { + "connectionEstablishedSeconds": 0.065213307, + "uploadSeconds": 0.000001839, + "DownloadSeconds": 0.063552711 + }, + { + "connectionEstablishedSeconds": 0.061494505, + "uploadSeconds": 7.04e-7, + "DownloadSeconds": 0.059872531 + }, + { + "connectionEstablishedSeconds": 0.061478888, + "uploadSeconds": 0.000001866, + "DownloadSeconds": 0.059847426 + }, + { + "connectionEstablishedSeconds": 0.06497519, + "uploadSeconds": 0.000001808, + "DownloadSeconds": 0.06337211 + }, + { + "connectionEstablishedSeconds": 0.065036928, + "uploadSeconds": 0.000001851, + "DownloadSeconds": 0.063292299 + }, + { + "connectionEstablishedSeconds": 0.06468815, + "uploadSeconds": 0.000001992, + "DownloadSeconds": 0.063006364 + }, + { + "connectionEstablishedSeconds": 0.06523528, + "uploadSeconds": 0.000001856, + "DownloadSeconds": 0.063706587 + }, + { + "connectionEstablishedSeconds": 0.064295975, + "uploadSeconds": 0.000001796, + "DownloadSeconds": 0.062484971 + }, + { + "connectionEstablishedSeconds": 0.061726106, + "uploadSeconds": 8.4e-7, + "DownloadSeconds": 0.060078095 + }, + { + "connectionEstablishedSeconds": 0.062668852, + "uploadSeconds": 0.00000191, + "DownloadSeconds": 0.060334766 + }, + { + "connectionEstablishedSeconds": 0.064838194, + "uploadSeconds": 0.00000196, + "DownloadSeconds": 0.063181639 + }, + { + "connectionEstablishedSeconds": 0.06429928, + "uploadSeconds": 0.000001752, + "DownloadSeconds": 0.062645255 + }, + { + "connectionEstablishedSeconds": 0.059668224, + "uploadSeconds": 0.000001862, + "DownloadSeconds": 0.058021052 + }, + { + "connectionEstablishedSeconds": 0.06296264, + "uploadSeconds": 0.000001912, + "DownloadSeconds": 0.061298395 + }, + { + "connectionEstablishedSeconds": 0.059958842, + "uploadSeconds": 0.000001862, + "DownloadSeconds": 0.058318696 + }, + { + "connectionEstablishedSeconds": 0.063492431, + "uploadSeconds": 7.18e-7, + "DownloadSeconds": 0.06173307 + }, + { + "connectionEstablishedSeconds": 0.06592515, + "uploadSeconds": 0.00000176, + "DownloadSeconds": 0.064247585 + }, + { + "connectionEstablishedSeconds": 0.064512627, + "uploadSeconds": 0.000001836, + "DownloadSeconds": 0.062787141 + }, + { + "connectionEstablishedSeconds": 0.063431219, + "uploadSeconds": 7.89e-7, + "DownloadSeconds": 0.061738575 + }, + { + "connectionEstablishedSeconds": 0.062946175, + "uploadSeconds": 7.77e-7, + "DownloadSeconds": 0.061326043 + }, + { + "connectionEstablishedSeconds": 0.063931168, + "uploadSeconds": 7.83e-7, + "DownloadSeconds": 0.062336508 + }, + { + "connectionEstablishedSeconds": 0.062151404, + "uploadSeconds": 0.000001791, + "DownloadSeconds": 0.059868496 + }, + { + "connectionEstablishedSeconds": 0.062883368, + "uploadSeconds": 7.56e-7, + "DownloadSeconds": 0.061280069 + }, + { + "connectionEstablishedSeconds": 0.064648947, + "uploadSeconds": 0.000001843, + "DownloadSeconds": 0.063037667 + }, + { + "connectionEstablishedSeconds": 0.060729236, + "uploadSeconds": 7.3e-7, + "DownloadSeconds": 0.059125773 + }, + { + "connectionEstablishedSeconds": 0.063317758, + "uploadSeconds": 0.000001834, + "DownloadSeconds": 0.061730434 + }, + { + "connectionEstablishedSeconds": 0.066656664, + "uploadSeconds": 7.91e-7, + "DownloadSeconds": 0.064998067 + }, + { + "connectionEstablishedSeconds": 0.06258373, + "uploadSeconds": 0.000002, + "DownloadSeconds": 0.060890619 + }, + { + "connectionEstablishedSeconds": 0.06319078, + "uploadSeconds": 6.89e-7, + "DownloadSeconds": 0.061459901 + }, + { + "connectionEstablishedSeconds": 0.064543424, + "uploadSeconds": 0.000001756, + "DownloadSeconds": 0.063178255 + }, + { + "connectionEstablishedSeconds": 0.062345482, + "uploadSeconds": 0.000001939, + "DownloadSeconds": 0.060653297 + }, + { + "connectionEstablishedSeconds": 0.061808393, + "uploadSeconds": 0.000001924, + "DownloadSeconds": 0.060171952 + }, + { + "connectionEstablishedSeconds": 0.065829336, + "uploadSeconds": 0.000001791, + "DownloadSeconds": 0.064152923 + }, + { + "connectionEstablishedSeconds": 0.061952759, + "uploadSeconds": 0.000001878, + "DownloadSeconds": 0.060281317 + }, + { + "connectionEstablishedSeconds": 0.064850571, + "uploadSeconds": 0.000001778, + "DownloadSeconds": 0.063198825 + }, + { + "connectionEstablishedSeconds": 0.063476523, + "uploadSeconds": 7.43e-7, + "DownloadSeconds": 0.061770307 + }, + { + "connectionEstablishedSeconds": 0.066471319, + "uploadSeconds": 8.72e-7, + "DownloadSeconds": 0.064391845 + }, + { + "connectionEstablishedSeconds": 0.064264771, + "uploadSeconds": 0.000001808, + "DownloadSeconds": 0.062746709 + }, + { + "connectionEstablishedSeconds": 0.063894644, + "uploadSeconds": 7.2e-7, + "DownloadSeconds": 0.062251002 + }, + { + "connectionEstablishedSeconds": 0.063922439, + "uploadSeconds": 0.000001856, + "DownloadSeconds": 0.062219476 + }, + { + "connectionEstablishedSeconds": 0.066209402, + "uploadSeconds": 7.94e-7, + "DownloadSeconds": 0.064478021 + }, + { + "connectionEstablishedSeconds": 0.063985061, + "uploadSeconds": 8.04e-7, + "DownloadSeconds": 0.062304085 + }, + { + "connectionEstablishedSeconds": 0.062835992, + "uploadSeconds": 8.01e-7, + "DownloadSeconds": 0.061305266 + }, + { + "connectionEstablishedSeconds": 0.061206315, + "uploadSeconds": 0.000001983, + "DownloadSeconds": 0.059519765 + }, + { + "connectionEstablishedSeconds": 0.063490488, + "uploadSeconds": 0.000001799, + "DownloadSeconds": 0.06185446 + }, + { + "connectionEstablishedSeconds": 0.062635641, + "uploadSeconds": 0.00000199, + "DownloadSeconds": 0.060952837 + }, + { + "connectionEstablishedSeconds": 0.065738211, + "uploadSeconds": 0.000001799, + "DownloadSeconds": 0.064081999 + }, + { + "connectionEstablishedSeconds": 0.063443249, + "uploadSeconds": 0.000001864, + "DownloadSeconds": 0.061807711 + }, + { + "connectionEstablishedSeconds": 0.062892786, + "uploadSeconds": 0.000001823, + "DownloadSeconds": 0.061237758 + }, + { + "connectionEstablishedSeconds": 0.063952929, + "uploadSeconds": 0.000001745, + "DownloadSeconds": 0.062293249 + }, + { + "connectionEstablishedSeconds": 0.06369205, + "uploadSeconds": 7.4e-7, + "DownloadSeconds": 0.06221562 + } ], "implementation": "quic-go", "version": "v0.34", @@ -293,106 +981,506 @@ }, { "result": [ - 0.121888817, - 0.126782828, - 0.126859234, - 0.126965903, - 0.121345578, - 0.126970089, - 0.122916614, - 0.127229748, - 0.127958864, - 0.117392392, - 0.125142897, - 0.122582385, - 0.124210822, - 0.123212725, - 0.121609478, - 0.125591431, - 0.124393383, - 0.128508447, - 0.120189564, - 0.124491921, - 0.122433356, - 0.117685992, - 0.122549189, - 0.120312995, - 0.125653765, - 0.122658262, - 0.124246051, - 0.122707117, - 0.122249119, - 0.12836673, - 0.122185442, - 0.118225327, - 0.130252955, - 0.125181184, - 0.121933468, - 0.130320394, - 0.122924563, - 0.117190831, - 0.127240584, - 0.125941095, - 0.130037099, - 0.128214222, - 0.128375952, - 0.122292666, - 0.119872308, - 0.124913874, - 0.127900565, - 0.124113457, - 0.121933097, - 0.125857287, - 0.12300402, - 0.124099483, - 0.12403564, - 0.118360141, - 0.122514163, - 0.125541903, - 0.126257782, - 0.129793511, - 0.128186572, - 0.122885629, - 0.120463873, - 0.122983595, - 0.125317978, - 0.121499828, - 0.127062349, - 0.123207304, - 0.124742893, - 0.125320406, - 0.119497825, - 0.126564094, - 0.124233296, - 0.122960197, - 0.124953109, - 0.125312498, - 0.124311479, - 0.124084743, - 0.124361733, - 0.126374126, - 0.127021601, - 0.121649422, - 0.127137925, - 0.123952327, - 0.125233014, - 0.12549781, - 0.124144517, - 0.128430317, - 0.123832155, - 0.120157176, - 0.12490297, - 0.119267766, - 0.124355495, - 0.12542756, - 0.127275064, - 0.123099353, - 0.126169216, - 0.122649968, - 0.122518246, - 0.125608568, - 0.125058112, - 0.128857953 + { + "connection_established_seconds": 0.124145125, + "upload_seconds": 0.061859659, + "download_seconds": 0.061728155 + }, + { + "connection_established_seconds": 0.125843822, + "upload_seconds": 0.062567003, + "download_seconds": 0.062580374 + }, + { + "connection_established_seconds": 0.128356336, + "upload_seconds": 0.063803389, + "download_seconds": 0.06394792 + }, + { + "connection_established_seconds": 0.125477543, + "upload_seconds": 0.062407752, + "download_seconds": 0.062384645 + }, + { + "connection_established_seconds": 0.121965219, + "upload_seconds": 0.060644372, + "download_seconds": 0.060629723 + }, + { + "connection_established_seconds": 0.123418626, + "upload_seconds": 0.061339105, + "download_seconds": 0.061357789 + }, + { + "connection_established_seconds": 0.12581403, + "upload_seconds": 0.062546744, + "download_seconds": 0.062553167 + }, + { + "connection_established_seconds": 0.124444099, + "upload_seconds": 0.061550699, + "download_seconds": 0.061594448 + }, + { + "connection_established_seconds": 0.126029087, + "upload_seconds": 0.06264191, + "download_seconds": 0.062662179 + }, + { + "connection_established_seconds": 0.12795165, + "upload_seconds": 0.063613922, + "download_seconds": 0.063630625 + }, + { + "connection_established_seconds": 0.125703903, + "upload_seconds": 0.062461812, + "download_seconds": 0.062475161 + }, + { + "connection_established_seconds": 0.125912662, + "upload_seconds": 0.062574314, + "download_seconds": 0.062594162 + }, + { + "connection_established_seconds": 0.124266318, + "upload_seconds": 0.061767835, + "download_seconds": 0.061794058 + }, + { + "connection_established_seconds": 0.122011611, + "upload_seconds": 0.060626943, + "download_seconds": 0.060894199 + }, + { + "connection_established_seconds": 0.122673098, + "upload_seconds": 0.060966735, + "download_seconds": 0.061010991 + }, + { + "connection_established_seconds": 0.124042209, + "upload_seconds": 0.061603136, + "download_seconds": 0.061670242 + }, + { + "connection_established_seconds": 0.119048947, + "upload_seconds": 0.058947587, + "download_seconds": 0.059002538 + }, + { + "connection_established_seconds": 0.128934417, + "upload_seconds": 0.064095484, + "download_seconds": 0.064128754 + }, + { + "connection_established_seconds": 0.122362305, + "upload_seconds": 0.060785743, + "download_seconds": 0.060800834 + }, + { + "connection_established_seconds": 0.121230527, + "upload_seconds": 0.060245036, + "download_seconds": 0.060381548 + }, + { + "connection_established_seconds": 0.124992226, + "upload_seconds": 0.062181934, + "download_seconds": 0.06209275 + }, + { + "connection_established_seconds": 0.127526691, + "upload_seconds": 0.063399351, + "download_seconds": 0.063405159 + }, + { + "connection_established_seconds": 0.124249699, + "upload_seconds": 0.061870978, + "download_seconds": 0.061780321 + }, + { + "connection_established_seconds": 0.126347503, + "upload_seconds": 0.062858753, + "download_seconds": 0.062814028 + }, + { + "connection_established_seconds": 0.11682585, + "upload_seconds": 0.058026417, + "download_seconds": 0.058059279 + }, + { + "connection_established_seconds": 0.122583849, + "upload_seconds": 0.060917102, + "download_seconds": 0.060954055 + }, + { + "connection_established_seconds": 0.123544343, + "upload_seconds": 0.06142371, + "download_seconds": 0.061420304 + }, + { + "connection_established_seconds": 0.12710688, + "upload_seconds": 0.063145252, + "download_seconds": 0.063224586 + }, + { + "connection_established_seconds": 0.127842154, + "upload_seconds": 0.063501412, + "download_seconds": 0.063566842 + }, + { + "connection_established_seconds": 0.123062881, + "upload_seconds": 0.061182822, + "download_seconds": 0.061162174 + }, + { + "connection_established_seconds": 0.12615966, + "upload_seconds": 0.062682485, + "download_seconds": 0.062684356 + }, + { + "connection_established_seconds": 0.120560034, + "upload_seconds": 0.059891731, + "download_seconds": 0.059905717 + }, + { + "connection_established_seconds": 0.120055808, + "upload_seconds": 0.059680657, + "download_seconds": 0.059689754 + }, + { + "connection_established_seconds": 0.117916772, + "upload_seconds": 0.058567597, + "download_seconds": 0.058605824 + }, + { + "connection_established_seconds": 0.124189356, + "upload_seconds": 0.061700699, + "download_seconds": 0.061744668 + }, + { + "connection_established_seconds": 0.122986734, + "upload_seconds": 0.061131076, + "download_seconds": 0.061157656 + }, + { + "connection_established_seconds": 0.123495903, + "upload_seconds": 0.061318598, + "download_seconds": 0.061348062 + }, + { + "connection_established_seconds": 0.11902555, + "upload_seconds": 0.059132276, + "download_seconds": 0.05916622 + }, + { + "connection_established_seconds": 0.128687472, + "upload_seconds": 0.064000216, + "download_seconds": 0.063988446 + }, + { + "connection_established_seconds": 0.121696737, + "upload_seconds": 0.060479899, + "download_seconds": 0.060491725 + }, + { + "connection_established_seconds": 0.12475878, + "upload_seconds": 0.062033193, + "download_seconds": 0.062057929 + }, + { + "connection_established_seconds": 0.128872156, + "upload_seconds": 0.06408639, + "download_seconds": 0.064089976 + }, + { + "connection_established_seconds": 0.121594455, + "upload_seconds": 0.06041272, + "download_seconds": 0.060461311 + }, + { + "connection_established_seconds": 0.124767425, + "upload_seconds": 0.062014862, + "download_seconds": 0.062043844 + }, + { + "connection_established_seconds": 0.126761906, + "upload_seconds": 0.062920659, + "download_seconds": 0.062972128 + }, + { + "connection_established_seconds": 0.124931648, + "upload_seconds": 0.062079875, + "download_seconds": 0.062108369 + }, + { + "connection_established_seconds": 0.122642546, + "upload_seconds": 0.060930495, + "download_seconds": 0.060985003 + }, + { + "connection_established_seconds": 0.127321614, + "upload_seconds": 0.063321951, + "download_seconds": 0.06330981 + }, + { + "connection_established_seconds": 0.126709211, + "upload_seconds": 0.062986201, + "download_seconds": 0.063011283 + }, + { + "connection_established_seconds": 0.127663243, + "upload_seconds": 0.063264135, + "download_seconds": 0.063304528 + }, + { + "connection_established_seconds": 0.120960863, + "upload_seconds": 0.060081181, + "download_seconds": 0.060120516 + }, + { + "connection_established_seconds": 0.123381844, + "upload_seconds": 0.061365268, + "download_seconds": 0.061315441 + }, + { + "connection_established_seconds": 0.128545917, + "upload_seconds": 0.063891788, + "download_seconds": 0.06394697 + }, + { + "connection_established_seconds": 0.117939599, + "upload_seconds": 0.058599891, + "download_seconds": 0.058641942 + }, + { + "connection_established_seconds": 0.119184747, + "upload_seconds": 0.059090548, + "download_seconds": 0.059103432 + }, + { + "connection_established_seconds": 0.119225496, + "upload_seconds": 0.05922733, + "download_seconds": 0.059264784 + }, + { + "connection_established_seconds": 0.122905732, + "upload_seconds": 0.061065736, + "download_seconds": 0.061151848 + }, + { + "connection_established_seconds": 0.125260299, + "upload_seconds": 0.062258568, + "download_seconds": 0.062296567 + }, + { + "connection_established_seconds": 0.125666793, + "upload_seconds": 0.06246034, + "download_seconds": 0.062490292 + }, + { + "connection_established_seconds": 0.130158543, + "upload_seconds": 0.064693106, + "download_seconds": 0.06471281 + }, + { + "connection_established_seconds": 0.123926745, + "upload_seconds": 0.061615685, + "download_seconds": 0.061623424 + }, + { + "connection_established_seconds": 0.12913928, + "upload_seconds": 0.064184865, + "download_seconds": 0.064204226 + }, + { + "connection_established_seconds": 0.120888422, + "upload_seconds": 0.060079159, + "download_seconds": 0.060075203 + }, + { + "connection_established_seconds": 0.121925559, + "upload_seconds": 0.06058572, + "download_seconds": 0.060601655 + }, + { + "connection_established_seconds": 0.12744737, + "upload_seconds": 0.063359326, + "download_seconds": 0.063369463 + }, + { + "connection_established_seconds": 0.121927453, + "upload_seconds": 0.060578582, + "download_seconds": 0.060592778 + }, + { + "connection_established_seconds": 0.12108071, + "upload_seconds": 0.060175648, + "download_seconds": 0.060614869 + }, + { + "connection_established_seconds": 0.127892119, + "upload_seconds": 0.063587952, + "download_seconds": 0.063609969 + }, + { + "connection_established_seconds": 0.120905003, + "upload_seconds": 0.060085677, + "download_seconds": 0.060124089 + }, + { + "connection_established_seconds": 0.120594857, + "upload_seconds": 0.059925071, + "download_seconds": 0.059965372 + }, + { + "connection_established_seconds": 0.126257335, + "upload_seconds": 0.062704273, + "download_seconds": 0.062742059 + }, + { + "connection_established_seconds": 0.125894135, + "upload_seconds": 0.062578119, + "download_seconds": 0.062602191 + }, + { + "connection_established_seconds": 0.123692801, + "upload_seconds": 0.061494169, + "download_seconds": 0.061509289 + }, + { + "connection_established_seconds": 0.125885482, + "upload_seconds": 0.062573749, + "download_seconds": 0.062580884 + }, + { + "connection_established_seconds": 0.12775227, + "upload_seconds": 0.063489935, + "download_seconds": 0.063545142 + }, + { + "connection_established_seconds": 0.124090919, + "upload_seconds": 0.061676606, + "download_seconds": 0.061714668 + }, + { + "connection_established_seconds": 0.127768893, + "upload_seconds": 0.063489949, + "download_seconds": 0.063512222 + }, + { + "connection_established_seconds": 0.121857213, + "upload_seconds": 0.060515969, + "download_seconds": 0.060548248 + }, + { + "connection_established_seconds": 0.120858895, + "upload_seconds": 0.059936957, + "download_seconds": 0.059978208 + }, + { + "connection_established_seconds": 0.125957099, + "upload_seconds": 0.062588604, + "download_seconds": 0.062638697 + }, + { + "connection_established_seconds": 0.128928719, + "upload_seconds": 0.064153287, + "download_seconds": 0.064156072 + }, + { + "connection_established_seconds": 0.123693096, + "upload_seconds": 0.061581606, + "download_seconds": 0.061498676 + }, + { + "connection_established_seconds": 0.11974957, + "upload_seconds": 0.059490641, + "download_seconds": 0.059520038 + }, + { + "connection_established_seconds": 0.127675593, + "upload_seconds": 0.063485346, + "download_seconds": 0.063516515 + }, + { + "connection_established_seconds": 0.129245549, + "upload_seconds": 0.064255694, + "download_seconds": 0.064269179 + }, + { + "connection_established_seconds": 0.130277486, + "upload_seconds": 0.064766765, + "download_seconds": 0.064795694 + }, + { + "connection_established_seconds": 0.127990056, + "upload_seconds": 0.063648257, + "download_seconds": 0.063665452 + }, + { + "connection_established_seconds": 0.127237517, + "upload_seconds": 0.063228796, + "download_seconds": 0.063325575 + }, + { + "connection_established_seconds": 0.126827288, + "upload_seconds": 0.063057107, + "download_seconds": 0.063060423 + }, + { + "connection_established_seconds": 0.128076095, + "upload_seconds": 0.063600281, + "download_seconds": 0.063563121 + }, + { + "connection_established_seconds": 0.126112736, + "upload_seconds": 0.062712107, + "download_seconds": 0.062709074 + }, + { + "connection_established_seconds": 0.126037179, + "upload_seconds": 0.062549752, + "download_seconds": 0.062570997 + }, + { + "connection_established_seconds": 0.124178306, + "upload_seconds": 0.061731673, + "download_seconds": 0.061729123 + }, + { + "connection_established_seconds": 0.122969035, + "upload_seconds": 0.061091485, + "download_seconds": 0.061125026 + }, + { + "connection_established_seconds": 0.126242854, + "upload_seconds": 0.062729515, + "download_seconds": 0.062781941 + }, + { + "connection_established_seconds": 0.12955639, + "upload_seconds": 0.064371501, + "download_seconds": 0.064425928 + }, + { + "connection_established_seconds": 0.123962068, + "upload_seconds": 0.061665617, + "download_seconds": 0.061628992 + }, + { + "connection_established_seconds": 0.12504171, + "upload_seconds": 0.062189832, + "download_seconds": 0.06221121 + }, + { + "connection_established_seconds": 0.130446313, + "upload_seconds": 0.064829082, + "download_seconds": 0.064873804 + }, + { + "connection_established_seconds": 0.129508575, + "upload_seconds": 0.064349556, + "download_seconds": 0.064360501 + } ], "implementation": "rust-libp2p", "version": "v0.52", @@ -400,106 +1488,506 @@ }, { "result": [ - 0.123959359, - 0.128597196, - 0.123645688, - 0.130001428, - 0.124287541, - 0.123489402, - 0.125663892, - 0.123268351, - 0.122893342, - 0.127601611, - 0.121443287, - 0.129990906, - 0.128984907, - 0.128755368, - 0.129821243, - 0.124287624, - 0.124759911, - 0.124384119, - 0.123781065, - 0.120626181, - 0.12425869, - 0.12484441, - 0.12554865, - 0.125071262, - 0.12328017, - 0.122791009, - 0.120896344, - 0.127605179, - 0.124412144, - 0.120545436, - 0.123343967, - 0.118978727, - 0.129852487, - 0.122387598, - 0.126926089, - 0.121785762, - 0.122798827, - 0.12720546, - 0.122693981, - 0.128857639, - 0.125739272, - 0.128852421, - 0.127223553, - 0.119462895, - 0.119503469, - 0.123971461, - 0.123001193, - 0.12538024, - 0.123656653, - 0.124206933, - 0.118723028, - 0.12171365, - 0.119679975, - 0.122688169, - 0.125532105, - 0.12467729, - 0.124548614, - 0.129949256, - 0.123589179, - 0.128655684, - 0.12706172, - 0.117397611, - 0.128028486, - 0.116589448, - 0.126781356, - 0.119530489, - 0.122856364, - 0.130406857, - 0.121626124, - 0.121430065, - 0.12317439, - 0.122788656, - 0.125830146, - 0.120794874, - 0.123413219, - 0.12540847, - 0.125231494, - 0.127017699, - 0.128824795, - 0.122608789, - 0.12601121, - 0.128660477, - 0.120707209, - 0.126615777, - 0.126164541, - 0.124650646, - 0.127625659, - 0.12996521, - 0.125899154, - 0.124287427, - 0.128696832, - 0.122317405, - 0.128389197, - 0.123922631, - 0.122882846, - 0.123757482, - 0.122617909, - 0.120690875, - 0.125843553, - 0.124550335 + { + "connection_established_seconds": 0.064777868, + "upload_seconds": 0.125998204, + "download_seconds": 0.000075636 + }, + { + "connection_established_seconds": 0.06294562, + "upload_seconds": 0.12275897, + "download_seconds": 0.000073667 + }, + { + "connection_established_seconds": 0.064982803, + "upload_seconds": 0.126651951, + "download_seconds": 0.000069897 + }, + { + "connection_established_seconds": 0.063169272, + "upload_seconds": 0.123140985, + "download_seconds": 0.000078117 + }, + { + "connection_established_seconds": 0.061480717, + "upload_seconds": 0.119770789, + "download_seconds": 0.000080836 + }, + { + "connection_established_seconds": 0.064885998, + "upload_seconds": 0.126467413, + "download_seconds": 0.000045782 + }, + { + "connection_established_seconds": 0.063326276, + "upload_seconds": 0.123218016, + "download_seconds": 0.000074582 + }, + { + "connection_established_seconds": 0.065046438, + "upload_seconds": 0.126780176, + "download_seconds": 0.000073816 + }, + { + "connection_established_seconds": 0.062702721, + "upload_seconds": 0.122423041, + "download_seconds": 0.000073728 + }, + { + "connection_established_seconds": 0.065586164, + "upload_seconds": 0.127955324, + "download_seconds": 0.000080008 + }, + { + "connection_established_seconds": 0.066246125, + "upload_seconds": 0.129010614, + "download_seconds": 0.000081791 + }, + { + "connection_established_seconds": 0.064241739, + "upload_seconds": 0.125201385, + "download_seconds": 0.000082527 + }, + { + "connection_established_seconds": 0.063676962, + "upload_seconds": 0.124129189, + "download_seconds": 0.000092577 + }, + { + "connection_established_seconds": 0.061776373, + "upload_seconds": 0.120380327, + "download_seconds": 0.000088589 + }, + { + "connection_established_seconds": 0.064540106, + "upload_seconds": 0.125817512, + "download_seconds": 0.000063514 + }, + { + "connection_established_seconds": 0.06378064, + "upload_seconds": 0.124386111, + "download_seconds": 0.000071957 + }, + { + "connection_established_seconds": 0.063139452, + "upload_seconds": 0.12295606, + "download_seconds": 0.000080053 + }, + { + "connection_established_seconds": 0.062069621, + "upload_seconds": 0.120622443, + "download_seconds": 0.000053712 + }, + { + "connection_established_seconds": 0.062981833, + "upload_seconds": 0.12289405, + "download_seconds": 0.00008086 + }, + { + "connection_established_seconds": 0.064930467, + "upload_seconds": 0.126605086, + "download_seconds": 0.000082813 + }, + { + "connection_established_seconds": 0.06285884, + "upload_seconds": 0.122514956, + "download_seconds": 0.000093668 + }, + { + "connection_established_seconds": 0.061271851, + "upload_seconds": 0.119193715, + "download_seconds": 0.000082919 + }, + { + "connection_established_seconds": 0.064243355, + "upload_seconds": 0.125646122, + "download_seconds": 0.000087232 + }, + { + "connection_established_seconds": 0.063067288, + "upload_seconds": 0.122717381, + "download_seconds": 0.000073586 + }, + { + "connection_established_seconds": 0.0665023, + "upload_seconds": 0.129655903, + "download_seconds": 0.000069867 + }, + { + "connection_established_seconds": 0.064118954, + "upload_seconds": 0.124881153, + "download_seconds": 0.000059721 + }, + { + "connection_established_seconds": 0.063248922, + "upload_seconds": 0.123328557, + "download_seconds": 0.000078478 + }, + { + "connection_established_seconds": 0.061599504, + "upload_seconds": 0.119807769, + "download_seconds": 0.000086405 + }, + { + "connection_established_seconds": 0.063174339, + "upload_seconds": 0.123168493, + "download_seconds": 0.000078535 + }, + { + "connection_established_seconds": 0.064735618, + "upload_seconds": 0.12625337, + "download_seconds": 0.000055502 + }, + { + "connection_established_seconds": 0.062365727, + "upload_seconds": 0.121573982, + "download_seconds": 0.000067009 + }, + { + "connection_established_seconds": 0.062613185, + "upload_seconds": 0.122205546, + "download_seconds": 0.00006355 + }, + { + "connection_established_seconds": 0.063637113, + "upload_seconds": 0.124060759, + "download_seconds": 0.000104106 + }, + { + "connection_established_seconds": 0.065089764, + "upload_seconds": 0.127116541, + "download_seconds": 0.000069329 + }, + { + "connection_established_seconds": 0.063268963, + "upload_seconds": 0.123293679, + "download_seconds": 0.000070154 + }, + { + "connection_established_seconds": 0.064351409, + "upload_seconds": 0.125566891, + "download_seconds": 0.000081906 + }, + { + "connection_established_seconds": 0.063977541, + "upload_seconds": 0.124605088, + "download_seconds": 0.000090947 + }, + { + "connection_established_seconds": 0.064431774, + "upload_seconds": 0.125293052, + "download_seconds": 0.000097249 + }, + { + "connection_established_seconds": 0.062392999, + "upload_seconds": 0.12150546, + "download_seconds": 0.000089871 + }, + { + "connection_established_seconds": 0.065171834, + "upload_seconds": 0.126893219, + "download_seconds": 0.00006415 + }, + { + "connection_established_seconds": 0.063419236, + "upload_seconds": 0.123194115, + "download_seconds": 0.0000752 + }, + { + "connection_established_seconds": 0.062857141, + "upload_seconds": 0.122546209, + "download_seconds": 0.000079444 + }, + { + "connection_established_seconds": 0.060385801, + "upload_seconds": 0.117631317, + "download_seconds": 0.000085714 + }, + { + "connection_established_seconds": 0.066192975, + "upload_seconds": 0.128907583, + "download_seconds": 0.00007039 + }, + { + "connection_established_seconds": 0.06264006, + "upload_seconds": 0.121778547, + "download_seconds": 0.000095732 + }, + { + "connection_established_seconds": 0.064492003, + "upload_seconds": 0.125525397, + "download_seconds": 0.000046312 + }, + { + "connection_established_seconds": 0.065256489, + "upload_seconds": 0.127060265, + "download_seconds": 0.000111949 + }, + { + "connection_established_seconds": 0.064660316, + "upload_seconds": 0.125923877, + "download_seconds": 0.000077244 + }, + { + "connection_established_seconds": 0.06355617, + "upload_seconds": 0.123885464, + "download_seconds": 0.000086419 + }, + { + "connection_established_seconds": 0.062414997, + "upload_seconds": 0.121797196, + "download_seconds": 0.00010588 + }, + { + "connection_established_seconds": 0.066173573, + "upload_seconds": 0.12932854, + "download_seconds": 0.000063044 + }, + { + "connection_established_seconds": 0.062986592, + "upload_seconds": 0.122868444, + "download_seconds": 0.000081463 + }, + { + "connection_established_seconds": 0.063503944, + "upload_seconds": 0.12384623, + "download_seconds": 0.000075366 + }, + { + "connection_established_seconds": 0.064330604, + "upload_seconds": 0.125533853, + "download_seconds": 0.000079061 + }, + { + "connection_established_seconds": 0.065544157, + "upload_seconds": 0.128015899, + "download_seconds": 0.000068859 + }, + { + "connection_established_seconds": 0.064812758, + "upload_seconds": 0.126523177, + "download_seconds": 0.000073051 + }, + { + "connection_established_seconds": 0.062981201, + "upload_seconds": 0.122817041, + "download_seconds": 0.000148614 + }, + { + "connection_established_seconds": 0.066029472, + "upload_seconds": 0.128808333, + "download_seconds": 0.000127753 + }, + { + "connection_established_seconds": 0.063809677, + "upload_seconds": 0.124393806, + "download_seconds": 0.000074221 + }, + { + "connection_established_seconds": 0.064258717, + "upload_seconds": 0.125336028, + "download_seconds": 0.000071534 + }, + { + "connection_established_seconds": 0.063431624, + "upload_seconds": 0.123813457, + "download_seconds": 0.000076783 + }, + { + "connection_established_seconds": 0.066005284, + "upload_seconds": 0.128856331, + "download_seconds": 0.000081916 + }, + { + "connection_established_seconds": 0.06587658, + "upload_seconds": 0.128505099, + "download_seconds": 0.000082519 + }, + { + "connection_established_seconds": 0.062858795, + "upload_seconds": 0.122414246, + "download_seconds": 0.000083717 + }, + { + "connection_established_seconds": 0.061783997, + "upload_seconds": 0.119334631, + "download_seconds": 0.000109582 + }, + { + "connection_established_seconds": 0.062791376, + "upload_seconds": 0.122468863, + "download_seconds": 0.000076865 + }, + { + "connection_established_seconds": 0.062901138, + "upload_seconds": 0.122598995, + "download_seconds": 0.000071515 + }, + { + "connection_established_seconds": 0.062531113, + "upload_seconds": 0.121863399, + "download_seconds": 0.000087865 + }, + { + "connection_established_seconds": 0.064976981, + "upload_seconds": 0.126558119, + "download_seconds": 0.000115422 + }, + { + "connection_established_seconds": 0.064216494, + "upload_seconds": 0.124962731, + "download_seconds": 0.000083004 + }, + { + "connection_established_seconds": 0.062264406, + "upload_seconds": 0.121360788, + "download_seconds": 0.000073056 + }, + { + "connection_established_seconds": 0.064672496, + "upload_seconds": 0.126154373, + "download_seconds": 0.000091576 + }, + { + "connection_established_seconds": 0.065740028, + "upload_seconds": 0.128227022, + "download_seconds": 0.000154756 + }, + { + "connection_established_seconds": 0.061835942, + "upload_seconds": 0.120442236, + "download_seconds": 0.000074908 + }, + { + "connection_established_seconds": 0.063429564, + "upload_seconds": 0.123661597, + "download_seconds": 0.000052419 + }, + { + "connection_established_seconds": 0.066476234, + "upload_seconds": 0.129799817, + "download_seconds": 0.000076399 + }, + { + "connection_established_seconds": 0.062667103, + "upload_seconds": 0.122210395, + "download_seconds": 0.000075119 + }, + { + "connection_established_seconds": 0.062874746, + "upload_seconds": 0.122624341, + "download_seconds": 0.000099077 + }, + { + "connection_established_seconds": 0.063208043, + "upload_seconds": 0.123244426, + "download_seconds": 0.000083971 + }, + { + "connection_established_seconds": 0.062803152, + "upload_seconds": 0.12237716, + "download_seconds": 0.000077384 + }, + { + "connection_established_seconds": 0.064475435, + "upload_seconds": 0.12574189, + "download_seconds": 0.000047054 + }, + { + "connection_established_seconds": 0.066113533, + "upload_seconds": 0.129156976, + "download_seconds": 0.000076801 + }, + { + "connection_established_seconds": 0.065250443, + "upload_seconds": 0.12746102, + "download_seconds": 0.000052761 + }, + { + "connection_established_seconds": 0.064099146, + "upload_seconds": 0.12506225, + "download_seconds": 0.000077246 + }, + { + "connection_established_seconds": 0.063758761, + "upload_seconds": 0.124206074, + "download_seconds": 0.000081693 + }, + { + "connection_established_seconds": 0.064691732, + "upload_seconds": 0.126195825, + "download_seconds": 0.000075353 + }, + { + "connection_established_seconds": 0.062189209, + "upload_seconds": 0.121311004, + "download_seconds": 0.000069429 + }, + { + "connection_established_seconds": 0.061228587, + "upload_seconds": 0.119376962, + "download_seconds": 0.00007423 + }, + { + "connection_established_seconds": 0.061882032, + "upload_seconds": 0.12067482, + "download_seconds": 0.000089354 + }, + { + "connection_established_seconds": 0.060575704, + "upload_seconds": 0.118040972, + "download_seconds": 0.000095531 + }, + { + "connection_established_seconds": 0.063224556, + "upload_seconds": 0.123390466, + "download_seconds": 0.000077311 + }, + { + "connection_established_seconds": 0.061287889, + "upload_seconds": 0.119465674, + "download_seconds": 0.000074671 + }, + { + "connection_established_seconds": 0.062176027, + "upload_seconds": 0.121133286, + "download_seconds": 0.00007535 + }, + { + "connection_established_seconds": 0.064492176, + "upload_seconds": 0.125851577, + "download_seconds": 0.000077252 + }, + { + "connection_established_seconds": 0.063885163, + "upload_seconds": 0.124464327, + "download_seconds": 0.00007576 + }, + { + "connection_established_seconds": 0.062164169, + "upload_seconds": 0.12127478, + "download_seconds": 0.000070603 + }, + { + "connection_established_seconds": 0.062933372, + "upload_seconds": 0.12266429, + "download_seconds": 0.000075274 + }, + { + "connection_established_seconds": 0.063141544, + "upload_seconds": 0.123043061, + "download_seconds": 0.000067134 + }, + { + "connection_established_seconds": 0.064007733, + "upload_seconds": 0.124852186, + "download_seconds": 0.000092172 + }, + { + "connection_established_seconds": 0.062662758, + "upload_seconds": 0.121683962, + "download_seconds": 0.000097485 + } ], "implementation": "rust-libp2p", "version": "v0.52", @@ -507,106 +1995,506 @@ }, { "result": [ - 0.122959542, - 0.119172675, - 0.125785294, - 0.126732788, - 0.123672372, - 0.122138243, - 0.126820962, - 0.117703982, - 0.121954058, - 0.129110022, - 0.121741465, - 0.122407037, - 0.128858718, - 0.122529362, - 0.127466221, - 0.125633069, - 0.119739364, - 0.123356493, - 0.124873061, - 0.125838178, - 0.123822604, - 0.122621485, - 0.11614474, - 0.125800241, - 0.125986944, - 0.123546427, - 0.12685109, - 0.124864405, - 0.127437272, - 0.120370643, - 0.12721763, - 0.126592135, - 0.126560378, - 0.126423394, - 0.126787974, - 0.126224178, - 0.124837033, - 0.122792976, - 0.118061026, - 0.121845087, - 0.127258613, - 0.124904702, - 0.127376706, - 0.127589659, - 0.124485193, - 0.118824468, - 0.119617282, - 0.125763166, - 0.123484596, - 0.119797443, - 0.123008176, - 0.124559505, - 0.123062307, - 0.122636111, - 0.122872824, - 0.127815039, - 0.123764546, - 0.12278435, - 0.12523011, - 0.128936106, - 0.125786657, - 0.128800882, - 0.124278561, - 0.123605532, - 0.122974343, - 0.124353989, - 0.124479834, - 0.12473513, - 0.125646413, - 0.126160902, - 0.127421353, - 0.126007554, - 0.119885787, - 0.12217969, - 0.125820539, - 0.12553983, - 0.123063438, - 0.128444153, - 0.128793941, - 0.120125912, - 0.126360148, - 0.125571942, - 0.117775383, - 0.122981545, - 0.123144694, - 0.122741415, - 0.126264734, - 0.12555531, - 0.128356452, - 0.122931322, - 0.123081991, - 0.123462915, - 0.129979852, - 0.11673056, - 0.127034126, - 0.123508588, - 0.122462002, - 0.123825054, - 0.12687055, - 0.128212266 + { + "connection_established_seconds": 0.065345597, + "upload_seconds": 0.126627588, + "download_seconds": 0.000079782 + }, + { + "connection_established_seconds": 0.06195985, + "upload_seconds": 0.120559278, + "download_seconds": 0.000063813 + }, + { + "connection_established_seconds": 0.065746356, + "upload_seconds": 0.1281704, + "download_seconds": 0.000042327 + }, + { + "connection_established_seconds": 0.06182322, + "upload_seconds": 0.120358159, + "download_seconds": 0.000054483 + }, + { + "connection_established_seconds": 0.063796406, + "upload_seconds": 0.124231577, + "download_seconds": 0.000042138 + }, + { + "connection_established_seconds": 0.064608911, + "upload_seconds": 0.125767583, + "download_seconds": 0.000042794 + }, + { + "connection_established_seconds": 0.065418586, + "upload_seconds": 0.127598866, + "download_seconds": 0.0000745 + }, + { + "connection_established_seconds": 0.063857974, + "upload_seconds": 0.12470036, + "download_seconds": 0.000054574 + }, + { + "connection_established_seconds": 0.064741435, + "upload_seconds": 0.126321487, + "download_seconds": 0.000049352 + }, + { + "connection_established_seconds": 0.062298059, + "upload_seconds": 0.121567394, + "download_seconds": 0.000043745 + }, + { + "connection_established_seconds": 0.062853679, + "upload_seconds": 0.1215074, + "download_seconds": 0.000068952 + }, + { + "connection_established_seconds": 0.061282703, + "upload_seconds": 0.119296348, + "download_seconds": 0.000044825 + }, + { + "connection_established_seconds": 0.065680616, + "upload_seconds": 0.128422717, + "download_seconds": 0.00004375 + }, + { + "connection_established_seconds": 0.060174806, + "upload_seconds": 0.117313557, + "download_seconds": 0.000045011 + }, + { + "connection_established_seconds": 0.064585942, + "upload_seconds": 0.126086034, + "download_seconds": 0.000043884 + }, + { + "connection_established_seconds": 0.064333531, + "upload_seconds": 0.125695507, + "download_seconds": 0.000041636 + }, + { + "connection_established_seconds": 0.063111935, + "upload_seconds": 0.122901385, + "download_seconds": 0.000043733 + }, + { + "connection_established_seconds": 0.064714655, + "upload_seconds": 0.12637165, + "download_seconds": 0.000044685 + }, + { + "connection_established_seconds": 0.062752903, + "upload_seconds": 0.122323865, + "download_seconds": 0.000060012 + }, + { + "connection_established_seconds": 0.066008082, + "upload_seconds": 0.128951116, + "download_seconds": 0.000043653 + }, + { + "connection_established_seconds": 0.064480896, + "upload_seconds": 0.125931628, + "download_seconds": 0.000061708 + }, + { + "connection_established_seconds": 0.065804323, + "upload_seconds": 0.128470453, + "download_seconds": 0.00004138 + }, + { + "connection_established_seconds": 0.064074568, + "upload_seconds": 0.125002588, + "download_seconds": 0.000074019 + }, + { + "connection_established_seconds": 0.064293037, + "upload_seconds": 0.125354149, + "download_seconds": 0.000044326 + }, + { + "connection_established_seconds": 0.062835329, + "upload_seconds": 0.122464034, + "download_seconds": 0.000046381 + }, + { + "connection_established_seconds": 0.062287958, + "upload_seconds": 0.121541381, + "download_seconds": 0.00005813 + }, + { + "connection_established_seconds": 0.063293814, + "upload_seconds": 0.123336206, + "download_seconds": 0.000049922 + }, + { + "connection_established_seconds": 0.062950057, + "upload_seconds": 0.122558901, + "download_seconds": 0.000075057 + }, + { + "connection_established_seconds": 0.064089433, + "upload_seconds": 0.125055731, + "download_seconds": 0.000049211 + }, + { + "connection_established_seconds": 0.062809583, + "upload_seconds": 0.122608524, + "download_seconds": 0.000044586 + }, + { + "connection_established_seconds": 0.063234631, + "upload_seconds": 0.123434574, + "download_seconds": 0.000044071 + }, + { + "connection_established_seconds": 0.06434445, + "upload_seconds": 0.125639794, + "download_seconds": 0.000042225 + }, + { + "connection_established_seconds": 0.064164746, + "upload_seconds": 0.125205322, + "download_seconds": 0.00005385 + }, + { + "connection_established_seconds": 0.066054385, + "upload_seconds": 0.128645324, + "download_seconds": 0.000117253 + }, + { + "connection_established_seconds": 0.064043208, + "upload_seconds": 0.124796422, + "download_seconds": 0.00004381 + }, + { + "connection_established_seconds": 0.065831828, + "upload_seconds": 0.128577677, + "download_seconds": 0.000060214 + }, + { + "connection_established_seconds": 0.060849511, + "upload_seconds": 0.118586915, + "download_seconds": 0.000043138 + }, + { + "connection_established_seconds": 0.066767867, + "upload_seconds": 0.130452973, + "download_seconds": 0.00004553 + }, + { + "connection_established_seconds": 0.06153828, + "upload_seconds": 0.119777042, + "download_seconds": 0.000074773 + }, + { + "connection_established_seconds": 0.06366191, + "upload_seconds": 0.124192021, + "download_seconds": 0.000047986 + }, + { + "connection_established_seconds": 0.062317532, + "upload_seconds": 0.121469918, + "download_seconds": 0.000050752 + }, + { + "connection_established_seconds": 0.064815759, + "upload_seconds": 0.126497739, + "download_seconds": 0.00004439 + }, + { + "connection_established_seconds": 0.065128152, + "upload_seconds": 0.127083413, + "download_seconds": 0.00004496 + }, + { + "connection_established_seconds": 0.061595343, + "upload_seconds": 0.11990911, + "download_seconds": 0.000049068 + }, + { + "connection_established_seconds": 0.06438175, + "upload_seconds": 0.125755389, + "download_seconds": 0.000054198 + }, + { + "connection_established_seconds": 0.064237585, + "upload_seconds": 0.125526082, + "download_seconds": 0.000045735 + }, + { + "connection_established_seconds": 0.066888061, + "upload_seconds": 0.130603408, + "download_seconds": 0.000062431 + }, + { + "connection_established_seconds": 0.062696867, + "upload_seconds": 0.122318473, + "download_seconds": 0.000060549 + }, + { + "connection_established_seconds": 0.062242458, + "upload_seconds": 0.121236386, + "download_seconds": 0.00004419 + }, + { + "connection_established_seconds": 0.065115077, + "upload_seconds": 0.127120581, + "download_seconds": 0.000043557 + }, + { + "connection_established_seconds": 0.061703831, + "upload_seconds": 0.120399369, + "download_seconds": 0.000076802 + }, + { + "connection_established_seconds": 0.060947387, + "upload_seconds": 0.118735343, + "download_seconds": 0.000041297 + }, + { + "connection_established_seconds": 0.062627883, + "upload_seconds": 0.122338635, + "download_seconds": 0.000062754 + }, + { + "connection_established_seconds": 0.06587111, + "upload_seconds": 0.128622617, + "download_seconds": 0.000071002 + }, + { + "connection_established_seconds": 0.061339484, + "upload_seconds": 0.119520814, + "download_seconds": 0.000044442 + }, + { + "connection_established_seconds": 0.06266093, + "upload_seconds": 0.122319167, + "download_seconds": 0.000045757 + }, + { + "connection_established_seconds": 0.059822555, + "upload_seconds": 0.116451437, + "download_seconds": 0.000051119 + }, + { + "connection_established_seconds": 0.064790049, + "upload_seconds": 0.126349844, + "download_seconds": 0.000054441 + }, + { + "connection_established_seconds": 0.060382326, + "upload_seconds": 0.117494745, + "download_seconds": 0.000066657 + }, + { + "connection_established_seconds": 0.064148746, + "upload_seconds": 0.125341426, + "download_seconds": 0.000068746 + }, + { + "connection_established_seconds": 0.064827261, + "upload_seconds": 0.126498123, + "download_seconds": 0.000046183 + }, + { + "connection_established_seconds": 0.063153185, + "upload_seconds": 0.123135312, + "download_seconds": 0.000056084 + }, + { + "connection_established_seconds": 0.064816062, + "upload_seconds": 0.126277356, + "download_seconds": 0.000057828 + }, + { + "connection_established_seconds": 0.064278199, + "upload_seconds": 0.125414573, + "download_seconds": 0.000056262 + }, + { + "connection_established_seconds": 0.062752747, + "upload_seconds": 0.122380922, + "download_seconds": 0.00004374 + }, + { + "connection_established_seconds": 0.063445685, + "upload_seconds": 0.12384881, + "download_seconds": 0.000058514 + }, + { + "connection_established_seconds": 0.061353473, + "upload_seconds": 0.11954829, + "download_seconds": 0.000046112 + }, + { + "connection_established_seconds": 0.061389462, + "upload_seconds": 0.119577677, + "download_seconds": 0.00004814 + }, + { + "connection_established_seconds": 0.06504855, + "upload_seconds": 0.126994673, + "download_seconds": 0.000045321 + }, + { + "connection_established_seconds": 0.063919567, + "upload_seconds": 0.124684165, + "download_seconds": 0.000046332 + }, + { + "connection_established_seconds": 0.063229164, + "upload_seconds": 0.123321507, + "download_seconds": 0.000067032 + }, + { + "connection_established_seconds": 0.06335159, + "upload_seconds": 0.123595726, + "download_seconds": 0.000041004 + }, + { + "connection_established_seconds": 0.065081469, + "upload_seconds": 0.126797911, + "download_seconds": 0.000043306 + }, + { + "connection_established_seconds": 0.061901279, + "upload_seconds": 0.120697729, + "download_seconds": 0.000047542 + }, + { + "connection_established_seconds": 0.064367226, + "upload_seconds": 0.125627014, + "download_seconds": 0.000045714 + }, + { + "connection_established_seconds": 0.063913815, + "upload_seconds": 0.124644766, + "download_seconds": 0.00004568 + }, + { + "connection_established_seconds": 0.06340771, + "upload_seconds": 0.123482778, + "download_seconds": 0.000044898 + }, + { + "connection_established_seconds": 0.063186517, + "upload_seconds": 0.123321763, + "download_seconds": 0.000058528 + }, + { + "connection_established_seconds": 0.064830366, + "upload_seconds": 0.126475036, + "download_seconds": 0.000043936 + }, + { + "connection_established_seconds": 0.064311509, + "upload_seconds": 0.1256985, + "download_seconds": 0.00004633 + }, + { + "connection_established_seconds": 0.064923178, + "upload_seconds": 0.126746877, + "download_seconds": 0.000053903 + }, + { + "connection_established_seconds": 0.062433534, + "upload_seconds": 0.121735648, + "download_seconds": 0.000042678 + }, + { + "connection_established_seconds": 0.0630008, + "upload_seconds": 0.122846943, + "download_seconds": 0.000069978 + }, + { + "connection_established_seconds": 0.061905677, + "upload_seconds": 0.120652533, + "download_seconds": 0.000041876 + }, + { + "connection_established_seconds": 0.061748607, + "upload_seconds": 0.120433329, + "download_seconds": 0.000051629 + }, + { + "connection_established_seconds": 0.063537551, + "upload_seconds": 0.12409735, + "download_seconds": 0.000048765 + }, + { + "connection_established_seconds": 0.065324316, + "upload_seconds": 0.127421798, + "download_seconds": 0.000050191 + }, + { + "connection_established_seconds": 0.062042321, + "upload_seconds": 0.120701257, + "download_seconds": 0.000083878 + }, + { + "connection_established_seconds": 0.065968655, + "upload_seconds": 0.128594752, + "download_seconds": 0.000046201 + }, + { + "connection_established_seconds": 0.066267306, + "upload_seconds": 0.129164475, + "download_seconds": 0.000047815 + }, + { + "connection_established_seconds": 0.063216526, + "upload_seconds": 0.123040735, + "download_seconds": 0.000048823 + }, + { + "connection_established_seconds": 0.062511579, + "upload_seconds": 0.121695004, + "download_seconds": 0.000098282 + }, + { + "connection_established_seconds": 0.06385184, + "upload_seconds": 0.124698687, + "download_seconds": 0.00004754 + }, + { + "connection_established_seconds": 0.066343358, + "upload_seconds": 0.129372553, + "download_seconds": 0.000045503 + }, + { + "connection_established_seconds": 0.063851167, + "upload_seconds": 0.124576921, + "download_seconds": 0.000073813 + }, + { + "connection_established_seconds": 0.061794819, + "upload_seconds": 0.120476674, + "download_seconds": 0.000054353 + }, + { + "connection_established_seconds": 0.062373556, + "upload_seconds": 0.121513655, + "download_seconds": 0.000064687 + }, + { + "connection_established_seconds": 0.065235287, + "upload_seconds": 0.127276967, + "download_seconds": 0.000043501 + }, + { + "connection_established_seconds": 0.063303476, + "upload_seconds": 0.123601522, + "download_seconds": 0.000054569 + }, + { + "connection_established_seconds": 0.06083302, + "upload_seconds": 0.118595803, + "download_seconds": 0.000044348 + } ], "implementation": "rust-libp2p-quinn", "version": "v0.52", @@ -614,106 +2502,506 @@ }, { "result": [ - 0.192671927, - 0.187084065, - 0.175552916, - 0.187811443, - 0.181258092, - 0.178773915, - 0.184407282, - 0.188750984, - 0.190404653, - 0.193972946, - 0.19422714, - 0.193197157, - 0.184601995, - 0.189156641, - 0.18273711, - 0.193186608, - 0.183927795, - 0.186934131, - 0.190958771, - 0.188215948, - 0.18861096, - 0.179376037, - 0.188882707, - 0.188415451, - 0.188407497, - 0.184104996, - 0.185211475, - 0.190927007, - 0.187903707, - 0.187873183, - 0.181277743, - 0.176737817, - 0.182318449, - 0.191423202, - 0.19175423, - 0.187261063, - 0.187676617, - 0.189906142, - 0.190087361, - 0.194984876, - 0.184127509, - 0.193655673, - 0.191078817, - 0.184833035, - 0.189227263, - 0.184552453, - 0.188669053, - 0.19358092, - 0.180715816, - 0.189203468, - 0.188271142, - 0.191769747, - 0.188152263, - 0.1867012, - 0.19014576, - 0.182390004, - 0.18906202, - 0.187748528, - 0.193902019, - 0.176506366, - 0.186957762, - 0.180437455, - 0.189908086, - 0.188197305, - 0.186395375, - 0.188896764, - 0.188705668, - 0.187787773, - 0.186169419, - 0.187004826, - 0.195038059, - 0.192884548, - 0.1842106, - 0.181043471, - 0.185891909, - 0.183180241, - 0.191562036, - 0.179581737, - 0.191640308, - 0.188553541, - 0.184342605, - 0.188902344, - 0.189128194, - 0.178105402, - 0.188325638, - 0.195453313, - 0.180009013, - 0.184322314, - 0.186855893, - 0.191625024, - 0.190000384, - 0.193639647, - 0.190116934, - 0.176320468, - 0.18824858, - 0.195421926, - 0.183409955, - 0.184970207, - 0.184079156, - 0.194087143 + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.192846838, + "DownloadSeconds": 0.000037175 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.187225653, + "DownloadSeconds": 0.00002122 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.180294225, + "DownloadSeconds": 0.000020804 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.188550533, + "DownloadSeconds": 0.00001889 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.187079499, + "DownloadSeconds": 0.000019885 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.183078712, + "DownloadSeconds": 0.000019767 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.179674262, + "DownloadSeconds": 0.000018376 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.189301769, + "DownloadSeconds": 0.000016046 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.179261369, + "DownloadSeconds": 0.000021543 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.195516869, + "DownloadSeconds": 0.00002226 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.191348801, + "DownloadSeconds": 0.000019777 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.187403028, + "DownloadSeconds": 0.000019978 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.194552184, + "DownloadSeconds": 0.000027462 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.187159984, + "DownloadSeconds": 0.000018502 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.190738456, + "DownloadSeconds": 0.000021419 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.192054637, + "DownloadSeconds": 0.000026524 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.180311141, + "DownloadSeconds": 0.000020699 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.191411991, + "DownloadSeconds": 0.000021317 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.188145831, + "DownloadSeconds": 0.000020147 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.186536958, + "DownloadSeconds": 0.000017486 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.18584601, + "DownloadSeconds": 0.000021541 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.178354975, + "DownloadSeconds": 0.000020018 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.178293565, + "DownloadSeconds": 0.000019429 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.186344401, + "DownloadSeconds": 0.000016421 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.193071917, + "DownloadSeconds": 0.000019174 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.190289691, + "DownloadSeconds": 0.000026341 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.188518447, + "DownloadSeconds": 0.000021059 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.19045129, + "DownloadSeconds": 0.000026429 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.186835899, + "DownloadSeconds": 0.000030147 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.183109891, + "DownloadSeconds": 0.000023588 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.185059453, + "DownloadSeconds": 0.000023165 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.185681056, + "DownloadSeconds": 0.000026437 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.183409423, + "DownloadSeconds": 0.000016582 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.184370277, + "DownloadSeconds": 0.000026094 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.192355075, + "DownloadSeconds": 0.0000183 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.184482574, + "DownloadSeconds": 0.000022659 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.185725446, + "DownloadSeconds": 0.000016072 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.188063944, + "DownloadSeconds": 0.000022491 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.180056658, + "DownloadSeconds": 0.000017605 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.188372489, + "DownloadSeconds": 0.000022438 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.192814141, + "DownloadSeconds": 0.000020323 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.187925726, + "DownloadSeconds": 0.000025641 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.187622686, + "DownloadSeconds": 0.000018206 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.187187961, + "DownloadSeconds": 0.00001939 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.182899565, + "DownloadSeconds": 0.000019681 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.185843579, + "DownloadSeconds": 0.000019817 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.188049356, + "DownloadSeconds": 0.00002526 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.195165351, + "DownloadSeconds": 0.000019705 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.186840089, + "DownloadSeconds": 0.000020557 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.18747958, + "DownloadSeconds": 0.000026473 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.185693664, + "DownloadSeconds": 0.000019646 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.193451665, + "DownloadSeconds": 0.000022524 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.194108328, + "DownloadSeconds": 0.000019511 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.189855379, + "DownloadSeconds": 0.000019748 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.182903898, + "DownloadSeconds": 0.000017027 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.191944715, + "DownloadSeconds": 0.000027435 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.191778908, + "DownloadSeconds": 0.000025572 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.190211536, + "DownloadSeconds": 0.000026185 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.184234077, + "DownloadSeconds": 0.000033723 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.185647252, + "DownloadSeconds": 0.000030603 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.183308292, + "DownloadSeconds": 0.000022054 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.180877607, + "DownloadSeconds": 0.000026982 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.180613209, + "DownloadSeconds": 0.000026944 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.19123981, + "DownloadSeconds": 0.000022695 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.188249077, + "DownloadSeconds": 0.00001968 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.188310162, + "DownloadSeconds": 0.000019461 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.192340124, + "DownloadSeconds": 0.000024555 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.188473932, + "DownloadSeconds": 0.000015915 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.186878094, + "DownloadSeconds": 0.000019374 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.185679154, + "DownloadSeconds": 0.000016414 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.180612714, + "DownloadSeconds": 0.000019835 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.192304312, + "DownloadSeconds": 0.000021444 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.188282608, + "DownloadSeconds": 0.000017187 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.183278194, + "DownloadSeconds": 0.000018204 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.184437713, + "DownloadSeconds": 0.000027936 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.185529677, + "DownloadSeconds": 0.00001732 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.193016666, + "DownloadSeconds": 0.000020431 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.195416309, + "DownloadSeconds": 0.000022508 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.183699899, + "DownloadSeconds": 0.000021716 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.185744257, + "DownloadSeconds": 0.000022602 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.189250203, + "DownloadSeconds": 0.000020598 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.185181606, + "DownloadSeconds": 0.000019866 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.18333426, + "DownloadSeconds": 0.000020514 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.193817077, + "DownloadSeconds": 0.000018949 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.18357926, + "DownloadSeconds": 0.000024613 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.179392491, + "DownloadSeconds": 0.000026305 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.190020686, + "DownloadSeconds": 0.000027925 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.192780389, + "DownloadSeconds": 0.000021992 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.189871699, + "DownloadSeconds": 0.000020478 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.195791204, + "DownloadSeconds": 0.000022177 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.183957873, + "DownloadSeconds": 0.000020035 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.186134924, + "DownloadSeconds": 0.000021316 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.186717805, + "DownloadSeconds": 0.000019271 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.193530685, + "DownloadSeconds": 0.000022671 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.186105862, + "DownloadSeconds": 0.000025304 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.18535181, + "DownloadSeconds": 0.000019895 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.184994725, + "DownloadSeconds": 0.000025617 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.188647571, + "DownloadSeconds": 0.000027329 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.190621346, + "DownloadSeconds": 0.000026131 + }, + { + "connectionEstablishedSeconds": 0, + "uploadSeconds": 0.185577895, + "DownloadSeconds": 0.000022229 + } ], "implementation": "https", "version": "v0.1", @@ -721,106 +3009,506 @@ }, { "result": [ - 0.12284586, - 0.06356202, - 0.12617074, - 0.06282493, - 0.061815616, - 0.06362352, - 0.06082869, - 0.06432958, - 0.06315876, - 0.05908363, - 0.059232745, - 0.06027314, - 0.06502242, - 0.06328234, - 0.061135743, - 0.11751851, - 0.06007697, - 0.064317785, - 0.06128055, - 0.06401471, - 0.059891384, - 0.05860705, - 0.12133849, - 0.12717538, - 0.061451755, - 0.06018901, - 0.11672092, - 0.06269691, - 0.06361394, - 0.06001403, - 0.06319442, - 0.06324474, - 0.063566454, - 0.12721281, - 0.060657468, - 0.0618096, - 0.061807435, - 0.06388281, - 0.06334745, - 0.061351903, - 0.12644267, - 0.12629794, - 0.062263668, - 0.06421475, - 0.12943149, - 0.121865, - 0.06291233, - 0.12243436, - 0.06256572, - 0.12848657, - 0.06077569, - 0.060444485, - 0.06363407, - 0.12646717, - 0.06351031, - 0.0631581, - 0.12270894, - 0.0599375, - 0.12944615, - 0.1250837, - 0.062131096, - 0.060755134, - 0.06263599, - 0.05924945, - 0.06132086, - 0.12614691, - 0.063863166, - 0.06162121, - 0.062112417, - 0.06403672, - 0.06430894, - 0.06130885, - 0.12177931, - 0.061753605, - 0.06193953, - 0.05830817, - 0.06351672, - 0.059269108, - 0.12591228, - 0.064268105, - 0.06267702, - 0.06346971, - 0.06311837, - 0.0613091, - 0.06413541, - 0.0637649, - 0.12228569, - 0.12099567, - 0.06344195, - 0.06298874, - 0.061688073, - 0.06130069, - 0.06347542, - 0.06192032, - 0.062345494, - 0.06341245, - 0.062392864, - 0.06395089, - 0.06433641, - 0.062004086 + { + "connectionEstablishedSeconds": 0.246982543, + "uploadSeconds": 0.000002333, + "DownloadSeconds": 0.060636799 + }, + { + "connectionEstablishedSeconds": 0.254987407, + "uploadSeconds": 0.000002637, + "DownloadSeconds": 0.125583931 + }, + { + "connectionEstablishedSeconds": 0.252265474, + "uploadSeconds": 0.000003042, + "DownloadSeconds": 0.124496056 + }, + { + "connectionEstablishedSeconds": 0.257593737, + "uploadSeconds": 0.000001947, + "DownloadSeconds": 0.063516924 + }, + { + "connectionEstablishedSeconds": 0.249634131, + "uploadSeconds": 0.000002236, + "DownloadSeconds": 0.061606688 + }, + { + "connectionEstablishedSeconds": 0.256219747, + "uploadSeconds": 0.000002639, + "DownloadSeconds": 0.063248102 + }, + { + "connectionEstablishedSeconds": 0.252442248, + "uploadSeconds": 0.000002197, + "DownloadSeconds": 0.062669369 + }, + { + "connectionEstablishedSeconds": 0.259427625, + "uploadSeconds": 0.000003211, + "DownloadSeconds": 0.127981684 + }, + { + "connectionEstablishedSeconds": 0.246514725, + "uploadSeconds": 0.000002665, + "DownloadSeconds": 0.121201652 + }, + { + "connectionEstablishedSeconds": 0.256074228, + "uploadSeconds": 0.000002774, + "DownloadSeconds": 0.063105187 + }, + { + "connectionEstablishedSeconds": 0.257314965, + "uploadSeconds": 0.000002128, + "DownloadSeconds": 0.063868077 + }, + { + "connectionEstablishedSeconds": 0.252954088, + "uploadSeconds": 0.000002252, + "DownloadSeconds": 0.062319815 + }, + { + "connectionEstablishedSeconds": 0.247593448, + "uploadSeconds": 0.000002732, + "DownloadSeconds": 0.061417523 + }, + { + "connectionEstablishedSeconds": 0.248485597, + "uploadSeconds": 0.000002477, + "DownloadSeconds": 0.122739395 + }, + { + "connectionEstablishedSeconds": 0.252755774, + "uploadSeconds": 0.000003128, + "DownloadSeconds": 0.12465053 + }, + { + "connectionEstablishedSeconds": 0.24678383, + "uploadSeconds": 0.000003171, + "DownloadSeconds": 0.061170425 + }, + { + "connectionEstablishedSeconds": 0.256799921, + "uploadSeconds": 0.000002516, + "DownloadSeconds": 0.063288139 + }, + { + "connectionEstablishedSeconds": 0.258533884, + "uploadSeconds": 0.000002448, + "DownloadSeconds": 0.063377461 + }, + { + "connectionEstablishedSeconds": 0.240389808, + "uploadSeconds": 0.000002816, + "DownloadSeconds": 0.117642179 + }, + { + "connectionEstablishedSeconds": 0.252817235, + "uploadSeconds": 0.000002452, + "DownloadSeconds": 0.123930684 + }, + { + "connectionEstablishedSeconds": 0.253777012, + "uploadSeconds": 0.000002057, + "DownloadSeconds": 0.062848806 + }, + { + "connectionEstablishedSeconds": 0.245131591, + "uploadSeconds": 0.000003236, + "DownloadSeconds": 0.120963083 + }, + { + "connectionEstablishedSeconds": 0.240467804, + "uploadSeconds": 0.000004461, + "DownloadSeconds": 0.118627047 + }, + { + "connectionEstablishedSeconds": 0.255467807, + "uploadSeconds": 0.000002626, + "DownloadSeconds": 0.062827272 + }, + { + "connectionEstablishedSeconds": 0.249338884, + "uploadSeconds": 0.000002342, + "DownloadSeconds": 0.121499683 + }, + { + "connectionEstablishedSeconds": 0.252348186, + "uploadSeconds": 0.000003027, + "DownloadSeconds": 0.062162683 + }, + { + "connectionEstablishedSeconds": 0.249576434, + "uploadSeconds": 0.00000247, + "DownloadSeconds": 0.061533785 + }, + { + "connectionEstablishedSeconds": 0.25301387, + "uploadSeconds": 0.000002702, + "DownloadSeconds": 0.062807451 + }, + { + "connectionEstablishedSeconds": 0.247662665, + "uploadSeconds": 0.000002964, + "DownloadSeconds": 0.122013051 + }, + { + "connectionEstablishedSeconds": 0.250252663, + "uploadSeconds": 0.000002914, + "DownloadSeconds": 0.123407763 + }, + { + "connectionEstablishedSeconds": 0.262054694, + "uploadSeconds": 0.000002659, + "DownloadSeconds": 0.06503719 + }, + { + "connectionEstablishedSeconds": 0.25894961, + "uploadSeconds": 0.000003183, + "DownloadSeconds": 0.063781309 + }, + { + "connectionEstablishedSeconds": 0.253447479, + "uploadSeconds": 0.000005445, + "DownloadSeconds": 0.125038249 + }, + { + "connectionEstablishedSeconds": 0.25890693, + "uploadSeconds": 0.000002949, + "DownloadSeconds": 0.064290345 + }, + { + "connectionEstablishedSeconds": 0.238136713, + "uploadSeconds": 0.000002751, + "DownloadSeconds": 0.058523439 + }, + { + "connectionEstablishedSeconds": 0.238031833, + "uploadSeconds": 0.00000201, + "DownloadSeconds": 0.058612018 + }, + { + "connectionEstablishedSeconds": 0.243987405, + "uploadSeconds": 0.000002645, + "DownloadSeconds": 0.120430154 + }, + { + "connectionEstablishedSeconds": 0.25092512, + "uploadSeconds": 0.000003203, + "DownloadSeconds": 0.062239462 + }, + { + "connectionEstablishedSeconds": 0.241461478, + "uploadSeconds": 0.000002746, + "DownloadSeconds": 0.05956789 + }, + { + "connectionEstablishedSeconds": 0.251482992, + "uploadSeconds": 0.00000234, + "DownloadSeconds": 0.061933183 + }, + { + "connectionEstablishedSeconds": 0.247927088, + "uploadSeconds": 0.000002999, + "DownloadSeconds": 0.061510988 + }, + { + "connectionEstablishedSeconds": 0.245592314, + "uploadSeconds": 0.000003012, + "DownloadSeconds": 0.06085414 + }, + { + "connectionEstablishedSeconds": 0.249204108, + "uploadSeconds": 0.000002654, + "DownloadSeconds": 0.06184334 + }, + { + "connectionEstablishedSeconds": 0.257982473, + "uploadSeconds": 0.000002161, + "DownloadSeconds": 0.064057546 + }, + { + "connectionEstablishedSeconds": 0.253774449, + "uploadSeconds": 0.000002049, + "DownloadSeconds": 0.062934467 + }, + { + "connectionEstablishedSeconds": 0.247291556, + "uploadSeconds": 0.000002676, + "DownloadSeconds": 0.060877055 + }, + { + "connectionEstablishedSeconds": 0.255902439, + "uploadSeconds": 0.000002621, + "DownloadSeconds": 0.063567814 + }, + { + "connectionEstablishedSeconds": 0.254482313, + "uploadSeconds": 0.000002629, + "DownloadSeconds": 0.063151743 + }, + { + "connectionEstablishedSeconds": 0.240553161, + "uploadSeconds": 0.000002261, + "DownloadSeconds": 0.059636037 + }, + { + "connectionEstablishedSeconds": 0.248356912, + "uploadSeconds": 0.000002729, + "DownloadSeconds": 0.061578029 + }, + { + "connectionEstablishedSeconds": 0.242345309, + "uploadSeconds": 0.00000288, + "DownloadSeconds": 0.060093916 + }, + { + "connectionEstablishedSeconds": 0.259227269, + "uploadSeconds": 0.000005216, + "DownloadSeconds": 0.1279868 + }, + { + "connectionEstablishedSeconds": 0.259282408, + "uploadSeconds": 0.000002551, + "DownloadSeconds": 0.063973717 + }, + { + "connectionEstablishedSeconds": 0.25319996, + "uploadSeconds": 0.000002716, + "DownloadSeconds": 0.125036282 + }, + { + "connectionEstablishedSeconds": 0.262780483, + "uploadSeconds": 0.000002704, + "DownloadSeconds": 0.064785965 + }, + { + "connectionEstablishedSeconds": 0.240429364, + "uploadSeconds": 0.000002006, + "DownloadSeconds": 0.059475532 + }, + { + "connectionEstablishedSeconds": 0.252537049, + "uploadSeconds": 0.000002748, + "DownloadSeconds": 0.06261609 + }, + { + "connectionEstablishedSeconds": 0.249712979, + "uploadSeconds": 0.000002727, + "DownloadSeconds": 0.061898698 + }, + { + "connectionEstablishedSeconds": 0.248365572, + "uploadSeconds": 0.000003349, + "DownloadSeconds": 0.061521647 + }, + { + "connectionEstablishedSeconds": 0.247755439, + "uploadSeconds": 0.000002551, + "DownloadSeconds": 0.061002033 + }, + { + "connectionEstablishedSeconds": 0.246475735, + "uploadSeconds": 0.000002701, + "DownloadSeconds": 0.061086692 + }, + { + "connectionEstablishedSeconds": 0.259489949, + "uploadSeconds": 0.000001757, + "DownloadSeconds": 0.063943852 + }, + { + "connectionEstablishedSeconds": 0.258184785, + "uploadSeconds": 0.000001873, + "DownloadSeconds": 0.063650594 + }, + { + "connectionEstablishedSeconds": 0.261070592, + "uploadSeconds": 0.000002752, + "DownloadSeconds": 0.064366046 + }, + { + "connectionEstablishedSeconds": 0.250568312, + "uploadSeconds": 0.000002142, + "DownloadSeconds": 0.123570903 + }, + { + "connectionEstablishedSeconds": 0.255666103, + "uploadSeconds": 0.000003077, + "DownloadSeconds": 0.063432424 + }, + { + "connectionEstablishedSeconds": 0.248139992, + "uploadSeconds": 0.000002787, + "DownloadSeconds": 0.122421755 + }, + { + "connectionEstablishedSeconds": 0.244705897, + "uploadSeconds": 0.000002085, + "DownloadSeconds": 0.060794925 + }, + { + "connectionEstablishedSeconds": 0.257247483, + "uploadSeconds": 0.000002563, + "DownloadSeconds": 0.12735091 + }, + { + "connectionEstablishedSeconds": 0.249235758, + "uploadSeconds": 0.00000251, + "DownloadSeconds": 0.061837351 + }, + { + "connectionEstablishedSeconds": 0.255130828, + "uploadSeconds": 0.000002263, + "DownloadSeconds": 0.063169157 + }, + { + "connectionEstablishedSeconds": 0.251280256, + "uploadSeconds": 0.000002482, + "DownloadSeconds": 0.123259335 + }, + { + "connectionEstablishedSeconds": 0.251983159, + "uploadSeconds": 0.00000274, + "DownloadSeconds": 0.124431896 + }, + { + "connectionEstablishedSeconds": 0.245704446, + "uploadSeconds": 0.000001875, + "DownloadSeconds": 0.120470878 + }, + { + "connectionEstablishedSeconds": 0.250201435, + "uploadSeconds": 0.000002586, + "DownloadSeconds": 0.061731154 + }, + { + "connectionEstablishedSeconds": 0.238093943, + "uploadSeconds": 0.00000245, + "DownloadSeconds": 0.058674458 + }, + { + "connectionEstablishedSeconds": 0.250553571, + "uploadSeconds": 0.000002285, + "DownloadSeconds": 0.061589498 + }, + { + "connectionEstablishedSeconds": 0.244439626, + "uploadSeconds": 0.000003027, + "DownloadSeconds": 0.060154682 + }, + { + "connectionEstablishedSeconds": 0.242412471, + "uploadSeconds": 0.000002316, + "DownloadSeconds": 0.059615017 + }, + { + "connectionEstablishedSeconds": 0.25048618, + "uploadSeconds": 0.000002677, + "DownloadSeconds": 0.061737041 + }, + { + "connectionEstablishedSeconds": 0.258953892, + "uploadSeconds": 0.000002587, + "DownloadSeconds": 0.063803021 + }, + { + "connectionEstablishedSeconds": 0.250412263, + "uploadSeconds": 0.0000034, + "DownloadSeconds": 0.12281949 + }, + { + "connectionEstablishedSeconds": 0.254144016, + "uploadSeconds": 0.000002754, + "DownloadSeconds": 0.06300859 + }, + { + "connectionEstablishedSeconds": 0.260298291, + "uploadSeconds": 0.000002975, + "DownloadSeconds": 0.064623551 + }, + { + "connectionEstablishedSeconds": 0.243397209, + "uploadSeconds": 0.000002481, + "DownloadSeconds": 0.059877624 + }, + { + "connectionEstablishedSeconds": 0.24772037, + "uploadSeconds": 0.000002941, + "DownloadSeconds": 0.060984094 + }, + { + "connectionEstablishedSeconds": 0.253506036, + "uploadSeconds": 0.000002337, + "DownloadSeconds": 0.062951461 + }, + { + "connectionEstablishedSeconds": 0.254973803, + "uploadSeconds": 0.000002862, + "DownloadSeconds": 0.062826139 + }, + { + "connectionEstablishedSeconds": 0.255472034, + "uploadSeconds": 0.000002332, + "DownloadSeconds": 0.063002547 + }, + { + "connectionEstablishedSeconds": 0.256008456, + "uploadSeconds": 0.000002753, + "DownloadSeconds": 0.126330132 + }, + { + "connectionEstablishedSeconds": 0.258165071, + "uploadSeconds": 0.000002056, + "DownloadSeconds": 0.063652588 + }, + { + "connectionEstablishedSeconds": 0.25799469, + "uploadSeconds": 0.000003118, + "DownloadSeconds": 0.126573181 + }, + { + "connectionEstablishedSeconds": 0.235590117, + "uploadSeconds": 0.000002624, + "DownloadSeconds": 0.057922146 + }, + { + "connectionEstablishedSeconds": 0.243184757, + "uploadSeconds": 0.000002738, + "DownloadSeconds": 0.059965651 + }, + { + "connectionEstablishedSeconds": 0.248694484, + "uploadSeconds": 0.000002604, + "DownloadSeconds": 0.061723598 + }, + { + "connectionEstablishedSeconds": 0.251370563, + "uploadSeconds": 0.000002583, + "DownloadSeconds": 0.06197375 + }, + { + "connectionEstablishedSeconds": 0.242432428, + "uploadSeconds": 0.000002486, + "DownloadSeconds": 0.060143536 + }, + { + "connectionEstablishedSeconds": 0.243723796, + "uploadSeconds": 0.000002083, + "DownloadSeconds": 0.060037652 + }, + { + "connectionEstablishedSeconds": 0.246442851, + "uploadSeconds": 0.000002077, + "DownloadSeconds": 0.060712241 + }, + { + "connectionEstablishedSeconds": 0.246539718, + "uploadSeconds": 0.000002761, + "DownloadSeconds": 0.061199242 + } ], "implementation": "go-libp2p", "version": "v0.27", @@ -828,284 +3516,530 @@ }, { "result": [ - 0.06310233, - 0.06396904, - 0.061068095, - 0.06014748, - 0.061020043, - 0.061951455, - 0.06262575, - 0.061502624, - 0.06292979, - 0.062413953, - 0.06068053, - 0.061095, - 0.06352485, - 0.063265964, - 0.06007536, - 0.06358303, - 0.06369051, - 0.06305469, - 0.060174923, - 0.065094024, - 0.060472313, - 0.06494354, - 0.061717723, - 0.06155924, - 0.0621861, - 0.06177255, - 0.062224697, - 0.06117516, - 0.062988505, - 0.06410115, - 0.06282853, - 0.06439072, - 0.063188635, - 0.062161375, - 0.06147264, - 0.064257845, - 0.064405486, - 0.062159687, - 0.062297147, - 0.061637852, - 0.06016042, - 0.061473973, - 0.061981115, - 0.06444071, - 0.0607793, - 0.06296811, - 0.06263472, - 0.062778644, - 0.060931776, - 0.061821148, - 0.06353392, - 0.060889225, - 0.06347669, - 0.06429089, - 0.060341045, - 0.06401452, - 0.06424325, - 0.06072287, - 0.060300607, - 0.061922014, - 0.06056163, - 0.0633675, - 0.06412715, - 0.06494307, - 0.06391485, - 0.0580077, - 0.06350252, - 0.063422434, - 0.061420485, - 0.0620956, - 0.06521214, - 0.062092576, - 0.0622884, - 0.06318063, - 0.061394177, - 0.06411254, - 0.060078748, - 0.062312506, - 0.061563957, - 0.06315601, - 0.06415131, - 0.06386827, - 0.064262696, - 0.062073503, - 0.061300326, - 0.06398816, - 0.065058194, - 0.061822336, - 0.061251495, - 0.06363339, - 0.06366372, - 0.06278822, - 0.0629387, - 0.06343747, - 0.06232634, - 0.06368589, - 0.06327905, - 0.06165553, - 0.06013382, - 0.06105537 + { + "connectionEstablishedSeconds": 0.132559832, + "uploadSeconds": 0.000001845, + "DownloadSeconds": 0.064081759 + }, + { + "connectionEstablishedSeconds": 0.127538862, + "uploadSeconds": 0.000001708, + "DownloadSeconds": 0.062170888 + }, + { + "connectionEstablishedSeconds": 0.130805692, + "uploadSeconds": 0.000001773, + "DownloadSeconds": 0.062955061 + }, + { + "connectionEstablishedSeconds": 0.127036422, + "uploadSeconds": 0.000001649, + "DownloadSeconds": 0.061978598 + }, + { + "connectionEstablishedSeconds": 0.127375116, + "uploadSeconds": 0.000001559, + "DownloadSeconds": 0.061272425 + }, + { + "connectionEstablishedSeconds": 0.127377704, + "uploadSeconds": 0.000001414, + "DownloadSeconds": 0.062145909 + }, + { + "connectionEstablishedSeconds": 0.125731216, + "uploadSeconds": 0.000001507, + "DownloadSeconds": 0.06135568 + }, + { + "connectionEstablishedSeconds": 0.133088001, + "uploadSeconds": 0.000001788, + "DownloadSeconds": 0.064553093 + }, + { + "connectionEstablishedSeconds": 0.129277284, + "uploadSeconds": 0.000001466, + "DownloadSeconds": 0.062234834 + }, + { + "connectionEstablishedSeconds": 0.119158102, + "uploadSeconds": 0.000001566, + "DownloadSeconds": 0.058061112 + }, + { + "connectionEstablishedSeconds": 0.130364186, + "uploadSeconds": 0.000001615, + "DownloadSeconds": 0.062807167 + }, + { + "connectionEstablishedSeconds": 0.127736162, + "uploadSeconds": 0.000001415, + "DownloadSeconds": 0.061511958 + }, + { + "connectionEstablishedSeconds": 0.1278484, + "uploadSeconds": 0.000001513, + "DownloadSeconds": 0.061515556 + }, + { + "connectionEstablishedSeconds": 0.128970078, + "uploadSeconds": 0.000001392, + "DownloadSeconds": 0.061986167 + }, + { + "connectionEstablishedSeconds": 0.128039225, + "uploadSeconds": 0.000001606, + "DownloadSeconds": 0.06170743 + }, + { + "connectionEstablishedSeconds": 0.127508048, + "uploadSeconds": 0.000001458, + "DownloadSeconds": 0.062212279 + }, + { + "connectionEstablishedSeconds": 0.133455738, + "uploadSeconds": 0.00000138, + "DownloadSeconds": 0.064288489 + }, + { + "connectionEstablishedSeconds": 0.129520369, + "uploadSeconds": 0.000001526, + "DownloadSeconds": 0.062379621 + }, + { + "connectionEstablishedSeconds": 0.126453297, + "uploadSeconds": 0.000001579, + "DownloadSeconds": 0.061700191 + }, + { + "connectionEstablishedSeconds": 0.129627112, + "uploadSeconds": 0.000001465, + "DownloadSeconds": 0.062720055 + }, + { + "connectionEstablishedSeconds": 0.134000827, + "uploadSeconds": 0.000001321, + "DownloadSeconds": 0.064357089 + }, + { + "connectionEstablishedSeconds": 0.124745152, + "uploadSeconds": 0.000001493, + "DownloadSeconds": 0.060808097 + }, + { + "connectionEstablishedSeconds": 0.127733997, + "uploadSeconds": 0.000002662, + "DownloadSeconds": 0.060965292 + }, + { + "connectionEstablishedSeconds": 0.124760848, + "uploadSeconds": 0.000001412, + "DownloadSeconds": 0.06091855 + }, + { + "connectionEstablishedSeconds": 0.133028696, + "uploadSeconds": 0.000001889, + "DownloadSeconds": 0.064165736 + }, + { + "connectionEstablishedSeconds": 0.131580179, + "uploadSeconds": 0.000009386, + "DownloadSeconds": 0.063439782 + }, + { + "connectionEstablishedSeconds": 0.13153408, + "uploadSeconds": 0.000001474, + "DownloadSeconds": 0.063494493 + }, + { + "connectionEstablishedSeconds": 0.133677377, + "uploadSeconds": 0.00000147, + "DownloadSeconds": 0.064309541 + }, + { + "connectionEstablishedSeconds": 0.129927372, + "uploadSeconds": 0.000001525, + "DownloadSeconds": 0.063450867 + }, + { + "connectionEstablishedSeconds": 0.131694963, + "uploadSeconds": 0.000001381, + "DownloadSeconds": 0.063434821 + }, + { + "connectionEstablishedSeconds": 0.127899617, + "uploadSeconds": 0.000001411, + "DownloadSeconds": 0.061525214 + }, + { + "connectionEstablishedSeconds": 0.130203328, + "uploadSeconds": 0.000001495, + "DownloadSeconds": 0.062757457 + }, + { + "connectionEstablishedSeconds": 0.128960662, + "uploadSeconds": 0.000001403, + "DownloadSeconds": 0.062074948 + }, + { + "connectionEstablishedSeconds": 0.130867787, + "uploadSeconds": 0.000001446, + "DownloadSeconds": 0.062989249 + }, + { + "connectionEstablishedSeconds": 0.127509261, + "uploadSeconds": 0.000001399, + "DownloadSeconds": 0.061493018 + }, + { + "connectionEstablishedSeconds": 0.125964276, + "uploadSeconds": 0.000001522, + "DownloadSeconds": 0.060573677 + }, + { + "connectionEstablishedSeconds": 0.127927289, + "uploadSeconds": 0.000001423, + "DownloadSeconds": 0.06157576 + }, + { + "connectionEstablishedSeconds": 0.130932601, + "uploadSeconds": 0.000001443, + "DownloadSeconds": 0.063025361 + }, + { + "connectionEstablishedSeconds": 0.131325237, + "uploadSeconds": 0.000001453, + "DownloadSeconds": 0.063283316 + }, + { + "connectionEstablishedSeconds": 0.131567611, + "uploadSeconds": 0.000001482, + "DownloadSeconds": 0.063480748 + }, + { + "connectionEstablishedSeconds": 0.127139527, + "uploadSeconds": 0.000001498, + "DownloadSeconds": 0.062091433 + }, + { + "connectionEstablishedSeconds": 0.130935865, + "uploadSeconds": 0.000001494, + "DownloadSeconds": 0.063252549 + }, + { + "connectionEstablishedSeconds": 0.126708782, + "uploadSeconds": 0.000001385, + "DownloadSeconds": 0.061000908 + }, + { + "connectionEstablishedSeconds": 0.131170813, + "uploadSeconds": 0.000001618, + "DownloadSeconds": 0.063156049 + }, + { + "connectionEstablishedSeconds": 0.127562236, + "uploadSeconds": 0.000001422, + "DownloadSeconds": 0.061339877 + }, + { + "connectionEstablishedSeconds": 0.127373514, + "uploadSeconds": 0.000001411, + "DownloadSeconds": 0.062119254 + }, + { + "connectionEstablishedSeconds": 0.124467553, + "uploadSeconds": 0.000001406, + "DownloadSeconds": 0.060622762 + }, + { + "connectionEstablishedSeconds": 0.130264415, + "uploadSeconds": 0.000001423, + "DownloadSeconds": 0.063243987 + }, + { + "connectionEstablishedSeconds": 0.129495604, + "uploadSeconds": 0.000001529, + "DownloadSeconds": 0.062278168 + }, + { + "connectionEstablishedSeconds": 0.130634463, + "uploadSeconds": 0.000001486, + "DownloadSeconds": 0.062895839 + }, + { + "connectionEstablishedSeconds": 0.130588454, + "uploadSeconds": 0.000001659, + "DownloadSeconds": 0.062499732 + }, + { + "connectionEstablishedSeconds": 0.131876225, + "uploadSeconds": 0.000001316, + "DownloadSeconds": 0.064669517 + }, + { + "connectionEstablishedSeconds": 0.1300481, + "uploadSeconds": 0.000001564, + "DownloadSeconds": 0.062634327 + }, + { + "connectionEstablishedSeconds": 0.125223091, + "uploadSeconds": 0.000001481, + "DownloadSeconds": 0.061157475 + }, + { + "connectionEstablishedSeconds": 0.129800235, + "uploadSeconds": 0.000001461, + "DownloadSeconds": 0.062495938 + }, + { + "connectionEstablishedSeconds": 0.128935513, + "uploadSeconds": 0.000001289, + "DownloadSeconds": 0.062087854 + }, + { + "connectionEstablishedSeconds": 0.131783337, + "uploadSeconds": 0.000001504, + "DownloadSeconds": 0.063374993 + }, + { + "connectionEstablishedSeconds": 0.128899161, + "uploadSeconds": 0.000001482, + "DownloadSeconds": 0.062178416 + }, + { + "connectionEstablishedSeconds": 0.131739113, + "uploadSeconds": 0.000001386, + "DownloadSeconds": 0.063473909 + }, + { + "connectionEstablishedSeconds": 0.132251676, + "uploadSeconds": 0.000001453, + "DownloadSeconds": 0.06368673 + }, + { + "connectionEstablishedSeconds": 0.131773613, + "uploadSeconds": 0.000001447, + "DownloadSeconds": 0.063479142 + }, + { + "connectionEstablishedSeconds": 0.127176818, + "uploadSeconds": 0.0000014, + "DownloadSeconds": 0.061173964 + }, + { + "connectionEstablishedSeconds": 0.128782265, + "uploadSeconds": 0.000001717, + "DownloadSeconds": 0.06190894 + }, + { + "connectionEstablishedSeconds": 0.126829132, + "uploadSeconds": 0.00000196, + "DownloadSeconds": 0.060960895 + }, + { + "connectionEstablishedSeconds": 0.130953162, + "uploadSeconds": 0.000001626, + "DownloadSeconds": 0.062989085 + }, + { + "connectionEstablishedSeconds": 0.120174779, + "uploadSeconds": 0.000001516, + "DownloadSeconds": 0.058639118 + }, + { + "connectionEstablishedSeconds": 0.12485797, + "uploadSeconds": 0.000001441, + "DownloadSeconds": 0.061003542 + }, + { + "connectionEstablishedSeconds": 0.124848685, + "uploadSeconds": 0.000001469, + "DownloadSeconds": 0.060034978 + }, + { + "connectionEstablishedSeconds": 0.131629743, + "uploadSeconds": 0.000001449, + "DownloadSeconds": 0.063505673 + }, + { + "connectionEstablishedSeconds": 0.118768582, + "uploadSeconds": 0.000001448, + "DownloadSeconds": 0.057896358 + }, + { + "connectionEstablishedSeconds": 0.132635801, + "uploadSeconds": 0.000001474, + "DownloadSeconds": 0.063932235 + }, + { + "connectionEstablishedSeconds": 0.126282233, + "uploadSeconds": 0.000001428, + "DownloadSeconds": 0.061655677 + }, + { + "connectionEstablishedSeconds": 0.130103183, + "uploadSeconds": 0.000001461, + "DownloadSeconds": 0.063143473 + }, + { + "connectionEstablishedSeconds": 0.126639755, + "uploadSeconds": 0.000001414, + "DownloadSeconds": 0.06089211 + }, + { + "connectionEstablishedSeconds": 0.130654578, + "uploadSeconds": 0.000001511, + "DownloadSeconds": 0.062895361 + }, + { + "connectionEstablishedSeconds": 0.130549247, + "uploadSeconds": 0.000001451, + "DownloadSeconds": 0.063388518 + }, + { + "connectionEstablishedSeconds": 0.121943873, + "uploadSeconds": 0.000001546, + "DownloadSeconds": 0.05863414 + }, + { + "connectionEstablishedSeconds": 0.128689427, + "uploadSeconds": 0.000001541, + "DownloadSeconds": 0.061924851 + }, + { + "connectionEstablishedSeconds": 0.125593774, + "uploadSeconds": 0.000001388, + "DownloadSeconds": 0.061346375 + }, + { + "connectionEstablishedSeconds": 0.126114403, + "uploadSeconds": 0.000001478, + "DownloadSeconds": 0.061483351 + }, + { + "connectionEstablishedSeconds": 0.124927605, + "uploadSeconds": 0.000001518, + "DownloadSeconds": 0.060145482 + }, + { + "connectionEstablishedSeconds": 0.128973538, + "uploadSeconds": 0.00000153, + "DownloadSeconds": 0.062205281 + }, + { + "connectionEstablishedSeconds": 0.128944333, + "uploadSeconds": 0.000001505, + "DownloadSeconds": 0.062992906 + }, + { + "connectionEstablishedSeconds": 0.128396058, + "uploadSeconds": 0.000001591, + "DownloadSeconds": 0.061744308 + }, + { + "connectionEstablishedSeconds": 0.123635078, + "uploadSeconds": 0.000001673, + "DownloadSeconds": 0.059731873 + }, + { + "connectionEstablishedSeconds": 0.126869663, + "uploadSeconds": 0.000001602, + "DownloadSeconds": 0.060971931 + }, + { + "connectionEstablishedSeconds": 0.129249375, + "uploadSeconds": 0.00000168, + "DownloadSeconds": 0.062236365 + }, + { + "connectionEstablishedSeconds": 0.129164979, + "uploadSeconds": 0.000001724, + "DownloadSeconds": 0.063029812 + }, + { + "connectionEstablishedSeconds": 0.133137747, + "uploadSeconds": 0.00000146, + "DownloadSeconds": 0.064202058 + }, + { + "connectionEstablishedSeconds": 0.126919816, + "uploadSeconds": 0.000001559, + "DownloadSeconds": 0.061051216 + }, + { + "connectionEstablishedSeconds": 0.129161057, + "uploadSeconds": 0.000001515, + "DownloadSeconds": 0.062148438 + }, + { + "connectionEstablishedSeconds": 0.12643837, + "uploadSeconds": 0.000001527, + "DownloadSeconds": 0.060876096 + }, + { + "connectionEstablishedSeconds": 0.12883837, + "uploadSeconds": 0.000001477, + "DownloadSeconds": 0.062117541 + }, + { + "connectionEstablishedSeconds": 0.125180919, + "uploadSeconds": 0.00000138, + "DownloadSeconds": 0.060162327 + }, + { + "connectionEstablishedSeconds": 0.128980365, + "uploadSeconds": 0.000001464, + "DownloadSeconds": 0.062863695 + }, + { + "connectionEstablishedSeconds": 0.125982137, + "uploadSeconds": 0.000001546, + "DownloadSeconds": 0.060601693 + }, + { + "connectionEstablishedSeconds": 0.122040921, + "uploadSeconds": 0.00000147, + "DownloadSeconds": 0.05863226 + }, + { + "connectionEstablishedSeconds": 0.13145477, + "uploadSeconds": 0.000001542, + "DownloadSeconds": 0.064228081 + }, + { + "connectionEstablishedSeconds": 0.128118009, + "uploadSeconds": 0.000001748, + "DownloadSeconds": 0.062337372 + }, + { + "connectionEstablishedSeconds": 0.129970686, + "uploadSeconds": 0.000001924, + "DownloadSeconds": 0.062586235 + } ], "implementation": "go-libp2p", "version": "v0.27", "transportStack": "quic-v1" } - ] + ], + "parameters": { + "uploadBytes": 1, + "downloadBytes": 1 + } } ], "pings": { "unit": "s", "results": [ - 0.061799999999999994, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061799999999999994, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061799999999999994, - 0.061700000000000005, - 0.061700000000000005, - 0.061799999999999994, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061799999999999994, - 0.062, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061799999999999994, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061799999999999994, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061799999999999994, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061799999999999994, - 0.061799999999999994, - 0.061799999999999994, - 0.061700000000000005, - 0.0619, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.0621, - 0.061700000000000005, - 0.061799999999999994, - 0.061700000000000005, - 0.061799999999999994, - 0.061700000000000005, - 0.061700000000000005, - 0.061799999999999994, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605, - 0.0605 + 0.0603 ] }, "iperf": { "unit": "bit/s", "results": [ - 3290000000, - 3290000000, 3280000000, 3280000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3280000000, - 3280000000, - 3280000000, - 3280000000, - 3280000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3290000000, - 3280000000, - 3280000000, - 3280000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3280000000, - 3280000000, - 3270000000, - 3130000000 + 3080000000 ] } } \ No newline at end of file diff --git a/perf/runner/src/benchmark-result-type.ts b/perf/runner/src/benchmark-result-type.ts index b3ceaadab..4fe15d302 100644 --- a/perf/runner/src/benchmark-result-type.ts +++ b/perf/runner/src/benchmark-result-type.ts @@ -20,15 +20,27 @@ export type Benchmark = { name: string, unit: "bit/s" | "s", results: Result[], + parameters: +} + +export type Parameters = { + uploadBytes: number, + downloadBytes: number, } export type Result = { - result: number[], + result: ResultValue[], implementation: string, transportStack: string, version: string }; +export type ResultValue = { + connectionEstablishedSeconds: number, + uploadSeconds: number, + downloadSeconds: number, +}; + export type Comparison = { name: string, result: number, diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index 76de3f9dc..588134785 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -2,7 +2,7 @@ import { execSync } from 'child_process'; import { versions } from './versions'; import yargs from 'yargs'; import fs from 'fs'; -import { BenchmarkResults, Benchmark, Result, IperfResults, PingResults } from './benchmark-result-type'; +import { BenchmarkResults, Benchmark, Result, IperfResults, PingResults, ResultValue } from './benchmark-result-type'; async function main(clientPublicIP: string, serverPublicIP: string) { const pings = runPing(clientPublicIP, serverPublicIP); @@ -133,7 +133,7 @@ function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Bench console.error(serverSTDOUT); for (const transportStack of version.transportStacks) { - const latencies = runClient({ + const result = runClient({ clientPublicIP: args.clientPublicIP, serverPublicIP: args.serverPublicIP, id: version.id, @@ -142,17 +142,10 @@ function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Bench uploadBytes: args.uploadBytes, downloadBytes: args.downloadBytes, iterations: args.iterations, - }).latencies.map(l => { - switch(args.unit) { - case "bit/s": - return (args.uploadBytes + args.downloadBytes) * 8 / l; - case "s": - return l; - } }); results.push({ - result: latencies, + result, implementation: version.implementation, version: version.id, transportStack: transportStack, @@ -164,6 +157,10 @@ function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Bench name: args.name, unit: args.unit, results, + parameters: { + uploadBytes: args.uploadBytes, + downloadBytes: args.downloadBytes, + } }; } @@ -179,28 +176,21 @@ interface ArgsRunBenchmark { iterations: number, } -interface Latencies { - latencies: number[]; -} - - -function runClient(args: ArgsRunBenchmark): Latencies { +function runClient(args: ArgsRunBenchmark): ResultValue[] { console.error(`=== Starting client ${args.implementation}/${args.id}/${args.transportStack}`); const perfCMD = `./impl/${args.implementation}/${args.id}/perf --server-address ${args.serverPublicIP}:4001 --transport ${args.transportStack} --upload-bytes ${args.uploadBytes} --download-bytes ${args.downloadBytes}` const cmd = `ssh ec2-user@${args.clientPublicIP} 'for i in {1..${args.iterations}}; do ${perfCMD}; done'` const stdout = execCommand(cmd); - // TODO: Does it really still make sense for the binary to return an array? + const lines = stdout.toString().trim().split('\n'); - const combined: Latencies = { - latencies: [], - }; + const combined: ResultValue[]= []; for (const line of lines) { - const latencies = JSON.parse(line) as Latencies; - combined.latencies.push(...latencies.latencies); + const result = JSON.parse(line) as ResultValue; + combined.push(result); } return combined; From b1408bdf2e667defaa3ac35ca3070bd301ca0b74 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Fri, 19 May 2023 18:36:55 +0900 Subject: [PATCH 088/143] Update benchmark-results.json --- perf/runner/benchmark-results.json | 162 ++++++++++++++++++++++++++++- 1 file changed, 160 insertions(+), 2 deletions(-) diff --git a/perf/runner/benchmark-results.json b/perf/runner/benchmark-results.json index 84b879146..318a6dccc 100644 --- a/perf/runner/benchmark-results.json +++ b/perf/runner/benchmark-results.json @@ -4031,7 +4031,106 @@ "pings": { "unit": "s", "results": [ - 0.0603 + 0.061, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.061, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.061700000000000005, + 0.061700000000000005, + 0.061799999999999994, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061799999999999994, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061799999999999994, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061700000000000005, + 0.061, + 0.060899999999999996, + 0.061, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.0624, + 0.0624, + 0.0624, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996, + 0.060899999999999996 ] }, "iperf": { @@ -4039,7 +4138,66 @@ "results": [ 3280000000, 3280000000, - 3080000000 + 3280000000, + 3280000000, + 3280000000, + 3280000000, + 3280000000, + 3280000000, + 3290000000, + 3290000000, + 3280000000, + 3290000000, + 3290000000, + 3280000000, + 3290000000, + 3290000000, + 3290000000, + 3290000000, + 3290000000, + 3290000000, + 3300000000, + 3290000000, + 3290000000, + 3240000000, + 3230000000, + 3240000000, + 3230000000, + 3240000000, + 3290000000, + 3290000000, + 3290000000, + 3300000000, + 3290000000, + 3280000000, + 3290000000, + 3290000000, + 3290000000, + 3290000000, + 3290000000, + 3280000000, + 3280000000, + 3280000000, + 3300000000, + 3290000000, + 3290000000, + 3280000000, + 3280000000, + 3290000000, + 3290000000, + 3290000000, + 3280000000, + 3240000000, + 3230000000, + 3230000000, + 3240000000, + 3240000000, + 3280000000, + 3290000000, + 3290000000, + 3290000000, + 3280000000, + 2920000000 ] } } \ No newline at end of file From ce948341f32839bbda2d44c33d62303d8cbdf7ae Mon Sep 17 00:00:00 2001 From: Max Inden Date: Fri, 19 May 2023 18:52:43 +0900 Subject: [PATCH 089/143] Fix field names --- perf/README.md | 2 +- perf/impl/go-libp2p/v0.27/main.go | 2 +- perf/impl/https/v0.1/main.go | 2 +- perf/impl/quic-go/v0.34/Makefile | 2 +- perf/impl/rust-libp2p-quinn/v0.52/Makefile | 2 +- perf/impl/rust-libp2p/v0.52/Makefile | 2 +- perf/runner/benchmark-results.json | 2864 ++++++++++---------- 7 files changed, 1438 insertions(+), 1438 deletions(-) diff --git a/perf/README.md b/perf/README.md index 4fd2f544e..5463f410b 100644 --- a/perf/README.md +++ b/perf/README.md @@ -43,7 +43,7 @@ Benchmark results can be visualized with https://observablehq.com/@mxinden-works - Logging MUST go to stderr. - Measurement output is printed to stdout as JSON in the form of: ```json - {"connectionEstablishedSeconds":0.246442851,"uploadSeconds":0.000002077,"DownloadSeconds":0.060712241} + {"connectionEstablishedSeconds":0.246442851,"uploadSeconds":0.000002077,"downloadSeconds":0.060712241} ``` 2. Reference implementation in `runner/src/versions.ts`. diff --git a/perf/impl/go-libp2p/v0.27/main.go b/perf/impl/go-libp2p/v0.27/main.go index 0772727eb..ca591e542 100644 --- a/perf/impl/go-libp2p/v0.27/main.go +++ b/perf/impl/go-libp2p/v0.27/main.go @@ -101,7 +101,7 @@ func main() { type Result struct { ConnectionEstablishedSeconds float64 `json:"connectionEstablishedSeconds"` UploadSeconds float64 `json:"uploadSeconds"` - DownloadSeconds float64 `json: "downloadSeconds"` + DownloadSeconds float64 `json:"downloadSeconds"` } type simpleReader struct { diff --git a/perf/impl/https/v0.1/main.go b/perf/impl/https/v0.1/main.go index 9dc952d45..fc1e97eac 100644 --- a/perf/impl/https/v0.1/main.go +++ b/perf/impl/https/v0.1/main.go @@ -139,7 +139,7 @@ func generateEphemeralCertificate() (tls.Certificate, error) { type Result struct { ConnectionEstablishedSeconds float64 `json:"connectionEstablishedSeconds"` UploadSeconds float64 `json:"uploadSeconds"` - DownloadSeconds float64 `json: "downloadSeconds"` + DownloadSeconds float64 `json:"downloadSeconds"` } func main() { diff --git a/perf/impl/quic-go/v0.34/Makefile b/perf/impl/quic-go/v0.34/Makefile index b3e08dd5c..6c3c45b3a 100644 --- a/perf/impl/quic-go/v0.34/Makefile +++ b/perf/impl/quic-go/v0.34/Makefile @@ -1,4 +1,4 @@ -commitSha := d6c70ce629c3df1ac0ad71baafc2d6e53d02de40 +commitSha := b50b0322f56ff6e332189349478063259e0a0f8c all: perf diff --git a/perf/impl/rust-libp2p-quinn/v0.52/Makefile b/perf/impl/rust-libp2p-quinn/v0.52/Makefile index 2314aa9e1..8c429563d 100644 --- a/perf/impl/rust-libp2p-quinn/v0.52/Makefile +++ b/perf/impl/rust-libp2p-quinn/v0.52/Makefile @@ -1,4 +1,4 @@ -commitSha := f91afe9e64ed89441f45a1bb3261c3930da040d1 +commitSha := df5180aab0ca44129e195d6030a9cf20eb593376 all: perf diff --git a/perf/impl/rust-libp2p/v0.52/Makefile b/perf/impl/rust-libp2p/v0.52/Makefile index 9565472bd..95b91269d 100644 --- a/perf/impl/rust-libp2p/v0.52/Makefile +++ b/perf/impl/rust-libp2p/v0.52/Makefile @@ -1,4 +1,4 @@ -commitSha := fa6886cd73d09b9b0ff0b7ce6334a42d760ddf88 +commitSha := 488f0072cb937394d6c5c4678a5504b63403316e all: perf diff --git a/perf/runner/benchmark-results.json b/perf/runner/benchmark-results.json index 318a6dccc..905fc0d08 100644 --- a/perf/runner/benchmark-results.json +++ b/perf/runner/benchmark-results.json @@ -9,27 +9,27 @@ { "connectionEstablishedSeconds": 0.064615047, "uploadSeconds": 0.988964167, - "DownloadSeconds": 1.19e-7 + "downloadSeconds": 1.19e-7 }, { "connectionEstablishedSeconds": 0.064595, "uploadSeconds": 1.006270274, - "DownloadSeconds": 5.7e-8 + "downloadSeconds": 5.7e-8 }, { "connectionEstablishedSeconds": 0.061957379, "uploadSeconds": 0.967206045, - "DownloadSeconds": 1.5e-7 + "downloadSeconds": 1.5e-7 }, { "connectionEstablishedSeconds": 0.066333628, "uploadSeconds": 1.041923666, - "DownloadSeconds": 8.1e-8 + "downloadSeconds": 8.1e-8 }, { "connectionEstablishedSeconds": 0.064395005, "uploadSeconds": 1.001865646, - "DownloadSeconds": 1.51e-7 + "downloadSeconds": 1.51e-7 } ], "implementation": "quic-go", @@ -39,29 +39,29 @@ { "result": [ { - "connection_established_seconds": 0.130085386, - "upload_seconds": 37.706576579, - "download_seconds": 0.06323964 + "connectionEstablishedSeconds": 0.130085386, + "uploadSeconds": 37.706576579, + "downloadSeconds": 0.06323964 }, { - "connection_established_seconds": 0.126073934, - "upload_seconds": 35.394770671, - "download_seconds": 0.062791976 + "connectionEstablishedSeconds": 0.126073934, + "uploadSeconds": 35.394770671, + "downloadSeconds": 0.062791976 }, { - "connection_established_seconds": 0.118604112, - "upload_seconds": 34.323311088, - "download_seconds": 0.059298347 + "connectionEstablishedSeconds": 0.118604112, + "uploadSeconds": 34.323311088, + "downloadSeconds": 0.059298347 }, { - "connection_established_seconds": 0.124873844, - "upload_seconds": 35.669218402, - "download_seconds": 0.063715144 + "connectionEstablishedSeconds": 0.124873844, + "uploadSeconds": 35.669218402, + "downloadSeconds": 0.063715144 }, { - "connection_established_seconds": 0.127441566, - "upload_seconds": 35.740599168, - "download_seconds": 0.063565162 + "connectionEstablishedSeconds": 0.127441566, + "uploadSeconds": 35.740599168, + "downloadSeconds": 0.063565162 } ], "implementation": "rust-libp2p", @@ -71,29 +71,29 @@ { "result": [ { - "connection_established_seconds": 0.065548222, - "upload_seconds": 14.530045427, - "download_seconds": 0.000076453 + "connectionEstablishedSeconds": 0.065548222, + "uploadSeconds": 14.530045427, + "downloadSeconds": 0.000076453 }, { - "connection_established_seconds": 0.065969131, - "upload_seconds": 9.529083867, - "download_seconds": 0.000050095 + "connectionEstablishedSeconds": 0.065969131, + "uploadSeconds": 9.529083867, + "downloadSeconds": 0.000050095 }, { - "connection_established_seconds": 0.066708447, - "upload_seconds": 12.083736464, - "download_seconds": 0.000108361 + "connectionEstablishedSeconds": 0.066708447, + "uploadSeconds": 12.083736464, + "downloadSeconds": 0.000108361 }, { - "connection_established_seconds": 0.062826795, - "upload_seconds": 8.016417861, - "download_seconds": 0.000057748 + "connectionEstablishedSeconds": 0.062826795, + "uploadSeconds": 8.016417861, + "downloadSeconds": 0.000057748 }, { - "connection_established_seconds": 0.061946997, - "upload_seconds": 15.177270054, - "download_seconds": 0.000040064 + "connectionEstablishedSeconds": 0.061946997, + "uploadSeconds": 15.177270054, + "downloadSeconds": 0.000040064 } ], "implementation": "rust-libp2p", @@ -103,29 +103,29 @@ { "result": [ { - "connection_established_seconds": 0.065995905, - "upload_seconds": 1.485719002, - "download_seconds": 0.000553305 + "connectionEstablishedSeconds": 0.065995905, + "uploadSeconds": 1.485719002, + "downloadSeconds": 0.000553305 }, { - "connection_established_seconds": 0.063538531, - "upload_seconds": 1.395860033, - "download_seconds": 0.000067559 + "connectionEstablishedSeconds": 0.063538531, + "uploadSeconds": 1.395860033, + "downloadSeconds": 0.000067559 }, { - "connection_established_seconds": 0.065835491, - "upload_seconds": 1.454903434, - "download_seconds": 0.00003936 + "connectionEstablishedSeconds": 0.065835491, + "uploadSeconds": 1.454903434, + "downloadSeconds": 0.00003936 }, { - "connection_established_seconds": 0.062994266, - "upload_seconds": 1.390279352, - "download_seconds": 0.000037439 + "connectionEstablishedSeconds": 0.062994266, + "uploadSeconds": 1.390279352, + "downloadSeconds": 0.000037439 }, { - "connection_established_seconds": 0.061966219, - "upload_seconds": 1.365005507, - "download_seconds": 0.000038552 + "connectionEstablishedSeconds": 0.061966219, + "uploadSeconds": 1.365005507, + "downloadSeconds": 0.000038552 } ], "implementation": "rust-libp2p-quinn", @@ -137,27 +137,27 @@ { "connectionEstablishedSeconds": 0, "uploadSeconds": 2.874647174, - "DownloadSeconds": 0.000004258 + "downloadSeconds": 0.000004258 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 2.834617305, - "DownloadSeconds": 0.000002323 + "downloadSeconds": 0.000002323 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 2.7802673049999997, - "DownloadSeconds": 0.000002272 + "downloadSeconds": 0.000002272 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 2.875364372, - "DownloadSeconds": 0.000004399 + "downloadSeconds": 0.000004399 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 2.886239104, - "DownloadSeconds": 0.000004495 + "downloadSeconds": 0.000004495 } ], "implementation": "https", @@ -169,27 +169,27 @@ { "connectionEstablishedSeconds": 0.251550611, "uploadSeconds": 2.846900655, - "DownloadSeconds": 0.123533731 + "downloadSeconds": 0.123533731 }, { "connectionEstablishedSeconds": 0.242425913, "uploadSeconds": 2.795257683, - "DownloadSeconds": 0.118580522 + "downloadSeconds": 0.118580522 }, { "connectionEstablishedSeconds": 0.246873845, "uploadSeconds": 3.063707114, - "DownloadSeconds": 0.121986488 + "downloadSeconds": 0.121986488 }, { "connectionEstablishedSeconds": 0.249576396, "uploadSeconds": 3.085365409, - "DownloadSeconds": 0.122945992 + "downloadSeconds": 0.122945992 }, { "connectionEstablishedSeconds": 0.245968516, "uploadSeconds": 2.773947588, - "DownloadSeconds": 0.120331421 + "downloadSeconds": 0.120331421 } ], "implementation": "go-libp2p", @@ -201,27 +201,27 @@ { "connectionEstablishedSeconds": 0.126053411, "uploadSeconds": 1.260300357, - "DownloadSeconds": 0.061025325 + "downloadSeconds": 0.061025325 }, { "connectionEstablishedSeconds": 0.1235829, "uploadSeconds": 1.221448272, - "DownloadSeconds": 0.059113222 + "downloadSeconds": 0.059113222 }, { "connectionEstablishedSeconds": 0.12598381, "uploadSeconds": 1.248171035, - "DownloadSeconds": 0.060479591 + "downloadSeconds": 0.060479591 }, { "connectionEstablishedSeconds": 0.127167588, "uploadSeconds": 1.270804783, - "DownloadSeconds": 0.060895254 + "downloadSeconds": 0.060895254 }, { "connectionEstablishedSeconds": 0.12712039, "uploadSeconds": 1.276295741, - "DownloadSeconds": 0.061811092 + "downloadSeconds": 0.061811092 } ], "implementation": "go-libp2p", @@ -235,7 +235,7 @@ } }, { - "name": "Single Connection throughput – Download 100 MiB", + "name": "Single Connection throughput – download 100 MiB", "unit": "bit/s", "results": [ { @@ -243,27 +243,27 @@ { "connectionEstablishedSeconds": 0.061999713, "uploadSeconds": 4.39e-7, - "DownloadSeconds": 1.028321192 + "downloadSeconds": 1.028321192 }, { "connectionEstablishedSeconds": 0.064917296, "uploadSeconds": 5.56e-7, - "DownloadSeconds": 1.061596996 + "downloadSeconds": 1.061596996 }, { "connectionEstablishedSeconds": 0.066126296, "uploadSeconds": 7.02e-7, - "DownloadSeconds": 1.087863123 + "downloadSeconds": 1.087863123 }, { "connectionEstablishedSeconds": 0.062688429, "uploadSeconds": 5.69e-7, - "DownloadSeconds": 1.042664418 + "downloadSeconds": 1.042664418 }, { "connectionEstablishedSeconds": 0.062954018, "uploadSeconds": 5.47e-7, - "DownloadSeconds": 1.0342652 + "downloadSeconds": 1.0342652 } ], "implementation": "quic-go", @@ -273,29 +273,29 @@ { "result": [ { - "connection_established_seconds": 0.12706415, - "upload_seconds": 0.063256119, - "download_seconds": 35.974620608 + "connectionEstablishedSeconds": 0.12706415, + "uploadSeconds": 0.063256119, + "downloadSeconds": 35.974620608 }, { - "connection_established_seconds": 0.127749712, - "upload_seconds": 0.063366234, - "download_seconds": 41.601253149 + "connectionEstablishedSeconds": 0.127749712, + "uploadSeconds": 0.063366234, + "downloadSeconds": 41.601253149 }, { - "connection_established_seconds": 0.122257267, - "upload_seconds": 0.060835769, - "download_seconds": 34.346292556 + "connectionEstablishedSeconds": 0.122257267, + "uploadSeconds": 0.060835769, + "downloadSeconds": 34.346292556 }, { - "connection_established_seconds": 0.128953805, - "upload_seconds": 0.064083786, - "download_seconds": 42.747025706 + "connectionEstablishedSeconds": 0.128953805, + "uploadSeconds": 0.064083786, + "downloadSeconds": 42.747025706 }, { - "connection_established_seconds": 0.1210829, - "upload_seconds": 0.060118424, - "download_seconds": 34.064101133 + "connectionEstablishedSeconds": 0.1210829, + "uploadSeconds": 0.060118424, + "downloadSeconds": 34.064101133 } ], "implementation": "rust-libp2p", @@ -305,29 +305,29 @@ { "result": [ { - "connection_established_seconds": 0.066243543, - "upload_seconds": 0.129079158, - "download_seconds": 10.54329554 + "connectionEstablishedSeconds": 0.066243543, + "uploadSeconds": 0.129079158, + "downloadSeconds": 10.54329554 }, { - "connection_established_seconds": 0.063366265, - "upload_seconds": 0.123480025, - "download_seconds": 13.530595282 + "connectionEstablishedSeconds": 0.063366265, + "uploadSeconds": 0.123480025, + "downloadSeconds": 13.530595282 }, { - "connection_established_seconds": 0.063453185, - "upload_seconds": 0.123524922, - "download_seconds": 12.251153406 + "connectionEstablishedSeconds": 0.063453185, + "uploadSeconds": 0.123524922, + "downloadSeconds": 12.251153406 }, { - "connection_established_seconds": 0.063395541, - "upload_seconds": 0.123495377, - "download_seconds": 10.753483627 + "connectionEstablishedSeconds": 0.063395541, + "uploadSeconds": 0.123495377, + "downloadSeconds": 10.753483627 }, { - "connection_established_seconds": 0.063278224, - "upload_seconds": 0.123278503, - "download_seconds": 13.267019601 + "connectionEstablishedSeconds": 0.063278224, + "uploadSeconds": 0.123278503, + "downloadSeconds": 13.267019601 } ], "implementation": "rust-libp2p", @@ -337,29 +337,29 @@ { "result": [ { - "connection_established_seconds": 0.06488199, - "upload_seconds": 0.125932155, - "download_seconds": 1.3633550589999999 + "connectionEstablishedSeconds": 0.06488199, + "uploadSeconds": 0.125932155, + "downloadSeconds": 1.3633550589999999 }, { - "connection_established_seconds": 0.064353019, - "upload_seconds": 0.125460117, - "download_seconds": 1.3598140189999999 + "connectionEstablishedSeconds": 0.064353019, + "uploadSeconds": 0.125460117, + "downloadSeconds": 1.3598140189999999 }, { - "connection_established_seconds": 0.062296858, - "upload_seconds": 0.12124451, - "download_seconds": 1.313197081 + "connectionEstablishedSeconds": 0.062296858, + "uploadSeconds": 0.12124451, + "downloadSeconds": 1.313197081 }, { - "connection_established_seconds": 0.065277725, - "upload_seconds": 0.127151015, - "download_seconds": 1.415552125 + "connectionEstablishedSeconds": 0.065277725, + "uploadSeconds": 0.127151015, + "downloadSeconds": 1.415552125 }, { - "connection_established_seconds": 0.064746505, - "upload_seconds": 0.126296331, - "download_seconds": 1.373616806 + "connectionEstablishedSeconds": 0.064746505, + "uploadSeconds": 0.126296331, + "downloadSeconds": 1.373616806 } ], "implementation": "rust-libp2p-quinn", @@ -371,27 +371,27 @@ { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.187967569, - "DownloadSeconds": 2.7059459219999997 + "downloadSeconds": 2.7059459219999997 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.185706236, - "DownloadSeconds": 2.61942649 + "downloadSeconds": 2.61942649 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.192289066, - "DownloadSeconds": 2.716054685 + "downloadSeconds": 2.716054685 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.191801605, - "DownloadSeconds": 2.802501777 + "downloadSeconds": 2.802501777 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.193762824, - "DownloadSeconds": 3.006738304 + "downloadSeconds": 3.006738304 } ], "implementation": "https", @@ -403,27 +403,27 @@ { "connectionEstablishedSeconds": 0.249739662, "uploadSeconds": 0.000002098, - "DownloadSeconds": 2.9350942460000002 + "downloadSeconds": 2.9350942460000002 }, { "connectionEstablishedSeconds": 0.254077537, "uploadSeconds": 0.000001776, - "DownloadSeconds": 2.99984772 + "downloadSeconds": 2.99984772 }, { "connectionEstablishedSeconds": 0.26064741, "uploadSeconds": 0.000002265, - "DownloadSeconds": 3.07579614 + "downloadSeconds": 3.07579614 }, { "connectionEstablishedSeconds": 0.248876875, "uploadSeconds": 0.000001814, - "DownloadSeconds": 3.109052261 + "downloadSeconds": 3.109052261 }, { "connectionEstablishedSeconds": 0.257652776, "uploadSeconds": 0.000001835, - "DownloadSeconds": 3.094898801 + "downloadSeconds": 3.094898801 } ], "implementation": "go-libp2p", @@ -435,27 +435,27 @@ { "connectionEstablishedSeconds": 0.129198968, "uploadSeconds": 0.000001513, - "DownloadSeconds": 1.336376132 + "downloadSeconds": 1.336376132 }, { "connectionEstablishedSeconds": 0.128866615, "uploadSeconds": 0.000001247, - "DownloadSeconds": 1.357847528 + "downloadSeconds": 1.357847528 }, { "connectionEstablishedSeconds": 0.128139163, "uploadSeconds": 0.000001393, - "DownloadSeconds": 1.343668511 + "downloadSeconds": 1.343668511 }, { "connectionEstablishedSeconds": 0.130263946, "uploadSeconds": 0.000001313, - "DownloadSeconds": 1.353385803 + "downloadSeconds": 1.353385803 }, { "connectionEstablishedSeconds": 0.124757242, "uploadSeconds": 0.000001468, - "DownloadSeconds": 1.3143922639999999 + "downloadSeconds": 1.3143922639999999 } ], "implementation": "go-libp2p", @@ -477,502 +477,502 @@ { "connectionEstablishedSeconds": 0.065069473, "uploadSeconds": 0.000001866, - "DownloadSeconds": 0.062256472 + "downloadSeconds": 0.062256472 }, { "connectionEstablishedSeconds": 0.064288585, "uploadSeconds": 0.000002063, - "DownloadSeconds": 0.06233876 + "downloadSeconds": 0.06233876 }, { "connectionEstablishedSeconds": 0.064484789, "uploadSeconds": 0.000002073, - "DownloadSeconds": 0.062723672 + "downloadSeconds": 0.062723672 }, { "connectionEstablishedSeconds": 0.062385008, "uploadSeconds": 0.000001881, - "DownloadSeconds": 0.060628645 + "downloadSeconds": 0.060628645 }, { "connectionEstablishedSeconds": 0.063304243, "uploadSeconds": 0.000001961, - "DownloadSeconds": 0.061635519 + "downloadSeconds": 0.061635519 }, { "connectionEstablishedSeconds": 0.063332073, "uploadSeconds": 8.86e-7, - "DownloadSeconds": 0.061448365 + "downloadSeconds": 0.061448365 }, { "connectionEstablishedSeconds": 0.062947885, "uploadSeconds": 8.13e-7, - "DownloadSeconds": 0.0612649 + "downloadSeconds": 0.0612649 }, { "connectionEstablishedSeconds": 0.065377389, "uploadSeconds": 7.24e-7, - "DownloadSeconds": 0.063726463 + "downloadSeconds": 0.063726463 }, { "connectionEstablishedSeconds": 0.06389184, "uploadSeconds": 0.000001823, - "DownloadSeconds": 0.062134002 + "downloadSeconds": 0.062134002 }, { "connectionEstablishedSeconds": 0.06182418, "uploadSeconds": 0.000001945, - "DownloadSeconds": 0.060201813 + "downloadSeconds": 0.060201813 }, { "connectionEstablishedSeconds": 0.062630776, "uploadSeconds": 0.000001825, - "DownloadSeconds": 0.060914704 + "downloadSeconds": 0.060914704 }, { "connectionEstablishedSeconds": 0.06616315, "uploadSeconds": 0.000001876, - "DownloadSeconds": 0.064389835 + "downloadSeconds": 0.064389835 }, { "connectionEstablishedSeconds": 0.060004119, "uploadSeconds": 0.000001963, - "DownloadSeconds": 0.058251497 + "downloadSeconds": 0.058251497 }, { "connectionEstablishedSeconds": 0.064923606, "uploadSeconds": 8.29e-7, - "DownloadSeconds": 0.063041205 + "downloadSeconds": 0.063041205 }, { "connectionEstablishedSeconds": 0.064839276, "uploadSeconds": 0.000001954, - "DownloadSeconds": 0.063133865 + "downloadSeconds": 0.063133865 }, { "connectionEstablishedSeconds": 0.063852939, "uploadSeconds": 0.000001953, - "DownloadSeconds": 0.062121333 + "downloadSeconds": 0.062121333 }, { "connectionEstablishedSeconds": 0.064406821, "uploadSeconds": 8.09e-7, - "DownloadSeconds": 0.064277535 + "downloadSeconds": 0.064277535 }, { "connectionEstablishedSeconds": 0.063644647, "uploadSeconds": 0.00000193, - "DownloadSeconds": 0.061865325 + "downloadSeconds": 0.061865325 }, { "connectionEstablishedSeconds": 0.06144155, "uploadSeconds": 0.000001766, - "DownloadSeconds": 0.059727007 + "downloadSeconds": 0.059727007 }, { "connectionEstablishedSeconds": 0.060326476, "uploadSeconds": 0.000001896, - "DownloadSeconds": 0.058577622 + "downloadSeconds": 0.058577622 }, { "connectionEstablishedSeconds": 0.062268388, "uploadSeconds": 8.54e-7, - "DownloadSeconds": 0.060703616 + "downloadSeconds": 0.060703616 }, { "connectionEstablishedSeconds": 0.06514159, "uploadSeconds": 0.000001883, - "DownloadSeconds": 0.063407356 + "downloadSeconds": 0.063407356 }, { "connectionEstablishedSeconds": 0.06609423, "uploadSeconds": 0.000001916, - "DownloadSeconds": 0.06438571 + "downloadSeconds": 0.06438571 }, { "connectionEstablishedSeconds": 0.06248634, "uploadSeconds": 0.000001957, - "DownloadSeconds": 0.060845688 + "downloadSeconds": 0.060845688 }, { "connectionEstablishedSeconds": 0.059670474, "uploadSeconds": 0.000001877, - "DownloadSeconds": 0.058048044 + "downloadSeconds": 0.058048044 }, { "connectionEstablishedSeconds": 0.064270199, "uploadSeconds": 0.000001983, - "DownloadSeconds": 0.062635036 + "downloadSeconds": 0.062635036 }, { "connectionEstablishedSeconds": 0.06429604, "uploadSeconds": 7.7e-7, - "DownloadSeconds": 0.062659615 + "downloadSeconds": 0.062659615 }, { "connectionEstablishedSeconds": 0.064919854, "uploadSeconds": 0.000001919, - "DownloadSeconds": 0.063192498 + "downloadSeconds": 0.063192498 }, { "connectionEstablishedSeconds": 0.065954302, "uploadSeconds": 0.00000183, - "DownloadSeconds": 0.064251883 + "downloadSeconds": 0.064251883 }, { "connectionEstablishedSeconds": 0.064098869, "uploadSeconds": 7.44e-7, - "DownloadSeconds": 0.062482036 + "downloadSeconds": 0.062482036 }, { "connectionEstablishedSeconds": 0.062022221, "uploadSeconds": 8.36e-7, - "DownloadSeconds": 0.060461973 + "downloadSeconds": 0.060461973 }, { "connectionEstablishedSeconds": 0.064627862, "uploadSeconds": 0.000001859, - "DownloadSeconds": 0.062912864 + "downloadSeconds": 0.062912864 }, { "connectionEstablishedSeconds": 0.066653299, "uploadSeconds": 7.84e-7, - "DownloadSeconds": 0.065027545 + "downloadSeconds": 0.065027545 }, { "connectionEstablishedSeconds": 0.063758312, "uploadSeconds": 0.000001955, - "DownloadSeconds": 0.061661263 + "downloadSeconds": 0.061661263 }, { "connectionEstablishedSeconds": 0.065877464, "uploadSeconds": 0.000002, - "DownloadSeconds": 0.06417309 + "downloadSeconds": 0.06417309 }, { "connectionEstablishedSeconds": 0.064380299, "uploadSeconds": 8.84e-7, - "DownloadSeconds": 0.062695264 + "downloadSeconds": 0.062695264 }, { "connectionEstablishedSeconds": 0.066849312, "uploadSeconds": 0.000001934, - "DownloadSeconds": 0.06515325 + "downloadSeconds": 0.06515325 }, { "connectionEstablishedSeconds": 0.065114281, "uploadSeconds": 8.7e-7, - "DownloadSeconds": 0.063618019 + "downloadSeconds": 0.063618019 }, { "connectionEstablishedSeconds": 0.060301618, "uploadSeconds": 8.29e-7, - "DownloadSeconds": 0.058627961 + "downloadSeconds": 0.058627961 }, { "connectionEstablishedSeconds": 0.061927104, "uploadSeconds": 0.000001807, - "DownloadSeconds": 0.060320047 + "downloadSeconds": 0.060320047 }, { "connectionEstablishedSeconds": 0.061410291, "uploadSeconds": 7.8e-7, - "DownloadSeconds": 0.059774255 + "downloadSeconds": 0.059774255 }, { "connectionEstablishedSeconds": 0.060291912, "uploadSeconds": 0.000001748, - "DownloadSeconds": 0.058655747 + "downloadSeconds": 0.058655747 }, { "connectionEstablishedSeconds": 0.064003172, "uploadSeconds": 0.0000019, - "DownloadSeconds": 0.062414151 + "downloadSeconds": 0.062414151 }, { "connectionEstablishedSeconds": 0.062299025, "uploadSeconds": 0.000001929, - "DownloadSeconds": 0.060600816 + "downloadSeconds": 0.060600816 }, { "connectionEstablishedSeconds": 0.063780385, "uploadSeconds": 0.000001764, - "DownloadSeconds": 0.062150151 + "downloadSeconds": 0.062150151 }, { "connectionEstablishedSeconds": 0.064086724, "uploadSeconds": 0.000001943, - "DownloadSeconds": 0.062438543 + "downloadSeconds": 0.062438543 }, { "connectionEstablishedSeconds": 0.061971952, "uploadSeconds": 7.16e-7, - "DownloadSeconds": 0.060368773 + "downloadSeconds": 0.060368773 }, { "connectionEstablishedSeconds": 0.063038818, "uploadSeconds": 0.000001832, - "DownloadSeconds": 0.06087449 + "downloadSeconds": 0.06087449 }, { "connectionEstablishedSeconds": 0.066742315, "uploadSeconds": 0.00000196, - "DownloadSeconds": 0.065181044 + "downloadSeconds": 0.065181044 }, { "connectionEstablishedSeconds": 0.065213307, "uploadSeconds": 0.000001839, - "DownloadSeconds": 0.063552711 + "downloadSeconds": 0.063552711 }, { "connectionEstablishedSeconds": 0.061494505, "uploadSeconds": 7.04e-7, - "DownloadSeconds": 0.059872531 + "downloadSeconds": 0.059872531 }, { "connectionEstablishedSeconds": 0.061478888, "uploadSeconds": 0.000001866, - "DownloadSeconds": 0.059847426 + "downloadSeconds": 0.059847426 }, { "connectionEstablishedSeconds": 0.06497519, "uploadSeconds": 0.000001808, - "DownloadSeconds": 0.06337211 + "downloadSeconds": 0.06337211 }, { "connectionEstablishedSeconds": 0.065036928, "uploadSeconds": 0.000001851, - "DownloadSeconds": 0.063292299 + "downloadSeconds": 0.063292299 }, { "connectionEstablishedSeconds": 0.06468815, "uploadSeconds": 0.000001992, - "DownloadSeconds": 0.063006364 + "downloadSeconds": 0.063006364 }, { "connectionEstablishedSeconds": 0.06523528, "uploadSeconds": 0.000001856, - "DownloadSeconds": 0.063706587 + "downloadSeconds": 0.063706587 }, { "connectionEstablishedSeconds": 0.064295975, "uploadSeconds": 0.000001796, - "DownloadSeconds": 0.062484971 + "downloadSeconds": 0.062484971 }, { "connectionEstablishedSeconds": 0.061726106, "uploadSeconds": 8.4e-7, - "DownloadSeconds": 0.060078095 + "downloadSeconds": 0.060078095 }, { "connectionEstablishedSeconds": 0.062668852, "uploadSeconds": 0.00000191, - "DownloadSeconds": 0.060334766 + "downloadSeconds": 0.060334766 }, { "connectionEstablishedSeconds": 0.064838194, "uploadSeconds": 0.00000196, - "DownloadSeconds": 0.063181639 + "downloadSeconds": 0.063181639 }, { "connectionEstablishedSeconds": 0.06429928, "uploadSeconds": 0.000001752, - "DownloadSeconds": 0.062645255 + "downloadSeconds": 0.062645255 }, { "connectionEstablishedSeconds": 0.059668224, "uploadSeconds": 0.000001862, - "DownloadSeconds": 0.058021052 + "downloadSeconds": 0.058021052 }, { "connectionEstablishedSeconds": 0.06296264, "uploadSeconds": 0.000001912, - "DownloadSeconds": 0.061298395 + "downloadSeconds": 0.061298395 }, { "connectionEstablishedSeconds": 0.059958842, "uploadSeconds": 0.000001862, - "DownloadSeconds": 0.058318696 + "downloadSeconds": 0.058318696 }, { "connectionEstablishedSeconds": 0.063492431, "uploadSeconds": 7.18e-7, - "DownloadSeconds": 0.06173307 + "downloadSeconds": 0.06173307 }, { "connectionEstablishedSeconds": 0.06592515, "uploadSeconds": 0.00000176, - "DownloadSeconds": 0.064247585 + "downloadSeconds": 0.064247585 }, { "connectionEstablishedSeconds": 0.064512627, "uploadSeconds": 0.000001836, - "DownloadSeconds": 0.062787141 + "downloadSeconds": 0.062787141 }, { "connectionEstablishedSeconds": 0.063431219, "uploadSeconds": 7.89e-7, - "DownloadSeconds": 0.061738575 + "downloadSeconds": 0.061738575 }, { "connectionEstablishedSeconds": 0.062946175, "uploadSeconds": 7.77e-7, - "DownloadSeconds": 0.061326043 + "downloadSeconds": 0.061326043 }, { "connectionEstablishedSeconds": 0.063931168, "uploadSeconds": 7.83e-7, - "DownloadSeconds": 0.062336508 + "downloadSeconds": 0.062336508 }, { "connectionEstablishedSeconds": 0.062151404, "uploadSeconds": 0.000001791, - "DownloadSeconds": 0.059868496 + "downloadSeconds": 0.059868496 }, { "connectionEstablishedSeconds": 0.062883368, "uploadSeconds": 7.56e-7, - "DownloadSeconds": 0.061280069 + "downloadSeconds": 0.061280069 }, { "connectionEstablishedSeconds": 0.064648947, "uploadSeconds": 0.000001843, - "DownloadSeconds": 0.063037667 + "downloadSeconds": 0.063037667 }, { "connectionEstablishedSeconds": 0.060729236, "uploadSeconds": 7.3e-7, - "DownloadSeconds": 0.059125773 + "downloadSeconds": 0.059125773 }, { "connectionEstablishedSeconds": 0.063317758, "uploadSeconds": 0.000001834, - "DownloadSeconds": 0.061730434 + "downloadSeconds": 0.061730434 }, { "connectionEstablishedSeconds": 0.066656664, "uploadSeconds": 7.91e-7, - "DownloadSeconds": 0.064998067 + "downloadSeconds": 0.064998067 }, { "connectionEstablishedSeconds": 0.06258373, "uploadSeconds": 0.000002, - "DownloadSeconds": 0.060890619 + "downloadSeconds": 0.060890619 }, { "connectionEstablishedSeconds": 0.06319078, "uploadSeconds": 6.89e-7, - "DownloadSeconds": 0.061459901 + "downloadSeconds": 0.061459901 }, { "connectionEstablishedSeconds": 0.064543424, "uploadSeconds": 0.000001756, - "DownloadSeconds": 0.063178255 + "downloadSeconds": 0.063178255 }, { "connectionEstablishedSeconds": 0.062345482, "uploadSeconds": 0.000001939, - "DownloadSeconds": 0.060653297 + "downloadSeconds": 0.060653297 }, { "connectionEstablishedSeconds": 0.061808393, "uploadSeconds": 0.000001924, - "DownloadSeconds": 0.060171952 + "downloadSeconds": 0.060171952 }, { "connectionEstablishedSeconds": 0.065829336, "uploadSeconds": 0.000001791, - "DownloadSeconds": 0.064152923 + "downloadSeconds": 0.064152923 }, { "connectionEstablishedSeconds": 0.061952759, "uploadSeconds": 0.000001878, - "DownloadSeconds": 0.060281317 + "downloadSeconds": 0.060281317 }, { "connectionEstablishedSeconds": 0.064850571, "uploadSeconds": 0.000001778, - "DownloadSeconds": 0.063198825 + "downloadSeconds": 0.063198825 }, { "connectionEstablishedSeconds": 0.063476523, "uploadSeconds": 7.43e-7, - "DownloadSeconds": 0.061770307 + "downloadSeconds": 0.061770307 }, { "connectionEstablishedSeconds": 0.066471319, "uploadSeconds": 8.72e-7, - "DownloadSeconds": 0.064391845 + "downloadSeconds": 0.064391845 }, { "connectionEstablishedSeconds": 0.064264771, "uploadSeconds": 0.000001808, - "DownloadSeconds": 0.062746709 + "downloadSeconds": 0.062746709 }, { "connectionEstablishedSeconds": 0.063894644, "uploadSeconds": 7.2e-7, - "DownloadSeconds": 0.062251002 + "downloadSeconds": 0.062251002 }, { "connectionEstablishedSeconds": 0.063922439, "uploadSeconds": 0.000001856, - "DownloadSeconds": 0.062219476 + "downloadSeconds": 0.062219476 }, { "connectionEstablishedSeconds": 0.066209402, "uploadSeconds": 7.94e-7, - "DownloadSeconds": 0.064478021 + "downloadSeconds": 0.064478021 }, { "connectionEstablishedSeconds": 0.063985061, "uploadSeconds": 8.04e-7, - "DownloadSeconds": 0.062304085 + "downloadSeconds": 0.062304085 }, { "connectionEstablishedSeconds": 0.062835992, "uploadSeconds": 8.01e-7, - "DownloadSeconds": 0.061305266 + "downloadSeconds": 0.061305266 }, { "connectionEstablishedSeconds": 0.061206315, "uploadSeconds": 0.000001983, - "DownloadSeconds": 0.059519765 + "downloadSeconds": 0.059519765 }, { "connectionEstablishedSeconds": 0.063490488, "uploadSeconds": 0.000001799, - "DownloadSeconds": 0.06185446 + "downloadSeconds": 0.06185446 }, { "connectionEstablishedSeconds": 0.062635641, "uploadSeconds": 0.00000199, - "DownloadSeconds": 0.060952837 + "downloadSeconds": 0.060952837 }, { "connectionEstablishedSeconds": 0.065738211, "uploadSeconds": 0.000001799, - "DownloadSeconds": 0.064081999 + "downloadSeconds": 0.064081999 }, { "connectionEstablishedSeconds": 0.063443249, "uploadSeconds": 0.000001864, - "DownloadSeconds": 0.061807711 + "downloadSeconds": 0.061807711 }, { "connectionEstablishedSeconds": 0.062892786, "uploadSeconds": 0.000001823, - "DownloadSeconds": 0.061237758 + "downloadSeconds": 0.061237758 }, { "connectionEstablishedSeconds": 0.063952929, "uploadSeconds": 0.000001745, - "DownloadSeconds": 0.062293249 + "downloadSeconds": 0.062293249 }, { "connectionEstablishedSeconds": 0.06369205, "uploadSeconds": 7.4e-7, - "DownloadSeconds": 0.06221562 + "downloadSeconds": 0.06221562 } ], "implementation": "quic-go", @@ -982,504 +982,504 @@ { "result": [ { - "connection_established_seconds": 0.124145125, - "upload_seconds": 0.061859659, - "download_seconds": 0.061728155 + "connectionEstablishedSeconds": 0.124145125, + "uploadSeconds": 0.061859659, + "downloadSeconds": 0.061728155 }, { - "connection_established_seconds": 0.125843822, - "upload_seconds": 0.062567003, - "download_seconds": 0.062580374 + "connectionEstablishedSeconds": 0.125843822, + "uploadSeconds": 0.062567003, + "downloadSeconds": 0.062580374 }, { - "connection_established_seconds": 0.128356336, - "upload_seconds": 0.063803389, - "download_seconds": 0.06394792 + "connectionEstablishedSeconds": 0.128356336, + "uploadSeconds": 0.063803389, + "downloadSeconds": 0.06394792 }, { - "connection_established_seconds": 0.125477543, - "upload_seconds": 0.062407752, - "download_seconds": 0.062384645 + "connectionEstablishedSeconds": 0.125477543, + "uploadSeconds": 0.062407752, + "downloadSeconds": 0.062384645 }, { - "connection_established_seconds": 0.121965219, - "upload_seconds": 0.060644372, - "download_seconds": 0.060629723 + "connectionEstablishedSeconds": 0.121965219, + "uploadSeconds": 0.060644372, + "downloadSeconds": 0.060629723 }, { - "connection_established_seconds": 0.123418626, - "upload_seconds": 0.061339105, - "download_seconds": 0.061357789 + "connectionEstablishedSeconds": 0.123418626, + "uploadSeconds": 0.061339105, + "downloadSeconds": 0.061357789 }, { - "connection_established_seconds": 0.12581403, - "upload_seconds": 0.062546744, - "download_seconds": 0.062553167 + "connectionEstablishedSeconds": 0.12581403, + "uploadSeconds": 0.062546744, + "downloadSeconds": 0.062553167 }, { - "connection_established_seconds": 0.124444099, - "upload_seconds": 0.061550699, - "download_seconds": 0.061594448 + "connectionEstablishedSeconds": 0.124444099, + "uploadSeconds": 0.061550699, + "downloadSeconds": 0.061594448 }, { - "connection_established_seconds": 0.126029087, - "upload_seconds": 0.06264191, - "download_seconds": 0.062662179 + "connectionEstablishedSeconds": 0.126029087, + "uploadSeconds": 0.06264191, + "downloadSeconds": 0.062662179 }, { - "connection_established_seconds": 0.12795165, - "upload_seconds": 0.063613922, - "download_seconds": 0.063630625 + "connectionEstablishedSeconds": 0.12795165, + "uploadSeconds": 0.063613922, + "downloadSeconds": 0.063630625 }, { - "connection_established_seconds": 0.125703903, - "upload_seconds": 0.062461812, - "download_seconds": 0.062475161 + "connectionEstablishedSeconds": 0.125703903, + "uploadSeconds": 0.062461812, + "downloadSeconds": 0.062475161 }, { - "connection_established_seconds": 0.125912662, - "upload_seconds": 0.062574314, - "download_seconds": 0.062594162 + "connectionEstablishedSeconds": 0.125912662, + "uploadSeconds": 0.062574314, + "downloadSeconds": 0.062594162 }, { - "connection_established_seconds": 0.124266318, - "upload_seconds": 0.061767835, - "download_seconds": 0.061794058 + "connectionEstablishedSeconds": 0.124266318, + "uploadSeconds": 0.061767835, + "downloadSeconds": 0.061794058 }, { - "connection_established_seconds": 0.122011611, - "upload_seconds": 0.060626943, - "download_seconds": 0.060894199 + "connectionEstablishedSeconds": 0.122011611, + "uploadSeconds": 0.060626943, + "downloadSeconds": 0.060894199 }, { - "connection_established_seconds": 0.122673098, - "upload_seconds": 0.060966735, - "download_seconds": 0.061010991 + "connectionEstablishedSeconds": 0.122673098, + "uploadSeconds": 0.060966735, + "downloadSeconds": 0.061010991 }, { - "connection_established_seconds": 0.124042209, - "upload_seconds": 0.061603136, - "download_seconds": 0.061670242 + "connectionEstablishedSeconds": 0.124042209, + "uploadSeconds": 0.061603136, + "downloadSeconds": 0.061670242 }, { - "connection_established_seconds": 0.119048947, - "upload_seconds": 0.058947587, - "download_seconds": 0.059002538 + "connectionEstablishedSeconds": 0.119048947, + "uploadSeconds": 0.058947587, + "downloadSeconds": 0.059002538 }, { - "connection_established_seconds": 0.128934417, - "upload_seconds": 0.064095484, - "download_seconds": 0.064128754 + "connectionEstablishedSeconds": 0.128934417, + "uploadSeconds": 0.064095484, + "downloadSeconds": 0.064128754 }, { - "connection_established_seconds": 0.122362305, - "upload_seconds": 0.060785743, - "download_seconds": 0.060800834 + "connectionEstablishedSeconds": 0.122362305, + "uploadSeconds": 0.060785743, + "downloadSeconds": 0.060800834 }, { - "connection_established_seconds": 0.121230527, - "upload_seconds": 0.060245036, - "download_seconds": 0.060381548 + "connectionEstablishedSeconds": 0.121230527, + "uploadSeconds": 0.060245036, + "downloadSeconds": 0.060381548 }, { - "connection_established_seconds": 0.124992226, - "upload_seconds": 0.062181934, - "download_seconds": 0.06209275 + "connectionEstablishedSeconds": 0.124992226, + "uploadSeconds": 0.062181934, + "downloadSeconds": 0.06209275 }, { - "connection_established_seconds": 0.127526691, - "upload_seconds": 0.063399351, - "download_seconds": 0.063405159 + "connectionEstablishedSeconds": 0.127526691, + "uploadSeconds": 0.063399351, + "downloadSeconds": 0.063405159 }, { - "connection_established_seconds": 0.124249699, - "upload_seconds": 0.061870978, - "download_seconds": 0.061780321 + "connectionEstablishedSeconds": 0.124249699, + "uploadSeconds": 0.061870978, + "downloadSeconds": 0.061780321 }, { - "connection_established_seconds": 0.126347503, - "upload_seconds": 0.062858753, - "download_seconds": 0.062814028 + "connectionEstablishedSeconds": 0.126347503, + "uploadSeconds": 0.062858753, + "downloadSeconds": 0.062814028 }, { - "connection_established_seconds": 0.11682585, - "upload_seconds": 0.058026417, - "download_seconds": 0.058059279 + "connectionEstablishedSeconds": 0.11682585, + "uploadSeconds": 0.058026417, + "downloadSeconds": 0.058059279 }, { - "connection_established_seconds": 0.122583849, - "upload_seconds": 0.060917102, - "download_seconds": 0.060954055 + "connectionEstablishedSeconds": 0.122583849, + "uploadSeconds": 0.060917102, + "downloadSeconds": 0.060954055 }, { - "connection_established_seconds": 0.123544343, - "upload_seconds": 0.06142371, - "download_seconds": 0.061420304 + "connectionEstablishedSeconds": 0.123544343, + "uploadSeconds": 0.06142371, + "downloadSeconds": 0.061420304 }, { - "connection_established_seconds": 0.12710688, - "upload_seconds": 0.063145252, - "download_seconds": 0.063224586 + "connectionEstablishedSeconds": 0.12710688, + "uploadSeconds": 0.063145252, + "downloadSeconds": 0.063224586 }, { - "connection_established_seconds": 0.127842154, - "upload_seconds": 0.063501412, - "download_seconds": 0.063566842 + "connectionEstablishedSeconds": 0.127842154, + "uploadSeconds": 0.063501412, + "downloadSeconds": 0.063566842 }, { - "connection_established_seconds": 0.123062881, - "upload_seconds": 0.061182822, - "download_seconds": 0.061162174 + "connectionEstablishedSeconds": 0.123062881, + "uploadSeconds": 0.061182822, + "downloadSeconds": 0.061162174 }, { - "connection_established_seconds": 0.12615966, - "upload_seconds": 0.062682485, - "download_seconds": 0.062684356 + "connectionEstablishedSeconds": 0.12615966, + "uploadSeconds": 0.062682485, + "downloadSeconds": 0.062684356 }, { - "connection_established_seconds": 0.120560034, - "upload_seconds": 0.059891731, - "download_seconds": 0.059905717 + "connectionEstablishedSeconds": 0.120560034, + "uploadSeconds": 0.059891731, + "downloadSeconds": 0.059905717 }, { - "connection_established_seconds": 0.120055808, - "upload_seconds": 0.059680657, - "download_seconds": 0.059689754 + "connectionEstablishedSeconds": 0.120055808, + "uploadSeconds": 0.059680657, + "downloadSeconds": 0.059689754 }, { - "connection_established_seconds": 0.117916772, - "upload_seconds": 0.058567597, - "download_seconds": 0.058605824 + "connectionEstablishedSeconds": 0.117916772, + "uploadSeconds": 0.058567597, + "downloadSeconds": 0.058605824 }, { - "connection_established_seconds": 0.124189356, - "upload_seconds": 0.061700699, - "download_seconds": 0.061744668 + "connectionEstablishedSeconds": 0.124189356, + "uploadSeconds": 0.061700699, + "downloadSeconds": 0.061744668 }, { - "connection_established_seconds": 0.122986734, - "upload_seconds": 0.061131076, - "download_seconds": 0.061157656 + "connectionEstablishedSeconds": 0.122986734, + "uploadSeconds": 0.061131076, + "downloadSeconds": 0.061157656 }, { - "connection_established_seconds": 0.123495903, - "upload_seconds": 0.061318598, - "download_seconds": 0.061348062 + "connectionEstablishedSeconds": 0.123495903, + "uploadSeconds": 0.061318598, + "downloadSeconds": 0.061348062 }, { - "connection_established_seconds": 0.11902555, - "upload_seconds": 0.059132276, - "download_seconds": 0.05916622 + "connectionEstablishedSeconds": 0.11902555, + "uploadSeconds": 0.059132276, + "downloadSeconds": 0.05916622 }, { - "connection_established_seconds": 0.128687472, - "upload_seconds": 0.064000216, - "download_seconds": 0.063988446 + "connectionEstablishedSeconds": 0.128687472, + "uploadSeconds": 0.064000216, + "downloadSeconds": 0.063988446 }, { - "connection_established_seconds": 0.121696737, - "upload_seconds": 0.060479899, - "download_seconds": 0.060491725 + "connectionEstablishedSeconds": 0.121696737, + "uploadSeconds": 0.060479899, + "downloadSeconds": 0.060491725 }, { - "connection_established_seconds": 0.12475878, - "upload_seconds": 0.062033193, - "download_seconds": 0.062057929 + "connectionEstablishedSeconds": 0.12475878, + "uploadSeconds": 0.062033193, + "downloadSeconds": 0.062057929 }, { - "connection_established_seconds": 0.128872156, - "upload_seconds": 0.06408639, - "download_seconds": 0.064089976 + "connectionEstablishedSeconds": 0.128872156, + "uploadSeconds": 0.06408639, + "downloadSeconds": 0.064089976 }, { - "connection_established_seconds": 0.121594455, - "upload_seconds": 0.06041272, - "download_seconds": 0.060461311 + "connectionEstablishedSeconds": 0.121594455, + "uploadSeconds": 0.06041272, + "downloadSeconds": 0.060461311 }, { - "connection_established_seconds": 0.124767425, - "upload_seconds": 0.062014862, - "download_seconds": 0.062043844 + "connectionEstablishedSeconds": 0.124767425, + "uploadSeconds": 0.062014862, + "downloadSeconds": 0.062043844 }, { - "connection_established_seconds": 0.126761906, - "upload_seconds": 0.062920659, - "download_seconds": 0.062972128 + "connectionEstablishedSeconds": 0.126761906, + "uploadSeconds": 0.062920659, + "downloadSeconds": 0.062972128 }, { - "connection_established_seconds": 0.124931648, - "upload_seconds": 0.062079875, - "download_seconds": 0.062108369 + "connectionEstablishedSeconds": 0.124931648, + "uploadSeconds": 0.062079875, + "downloadSeconds": 0.062108369 }, { - "connection_established_seconds": 0.122642546, - "upload_seconds": 0.060930495, - "download_seconds": 0.060985003 + "connectionEstablishedSeconds": 0.122642546, + "uploadSeconds": 0.060930495, + "downloadSeconds": 0.060985003 }, { - "connection_established_seconds": 0.127321614, - "upload_seconds": 0.063321951, - "download_seconds": 0.06330981 + "connectionEstablishedSeconds": 0.127321614, + "uploadSeconds": 0.063321951, + "downloadSeconds": 0.06330981 }, { - "connection_established_seconds": 0.126709211, - "upload_seconds": 0.062986201, - "download_seconds": 0.063011283 + "connectionEstablishedSeconds": 0.126709211, + "uploadSeconds": 0.062986201, + "downloadSeconds": 0.063011283 }, { - "connection_established_seconds": 0.127663243, - "upload_seconds": 0.063264135, - "download_seconds": 0.063304528 + "connectionEstablishedSeconds": 0.127663243, + "uploadSeconds": 0.063264135, + "downloadSeconds": 0.063304528 }, { - "connection_established_seconds": 0.120960863, - "upload_seconds": 0.060081181, - "download_seconds": 0.060120516 + "connectionEstablishedSeconds": 0.120960863, + "uploadSeconds": 0.060081181, + "downloadSeconds": 0.060120516 }, { - "connection_established_seconds": 0.123381844, - "upload_seconds": 0.061365268, - "download_seconds": 0.061315441 + "connectionEstablishedSeconds": 0.123381844, + "uploadSeconds": 0.061365268, + "downloadSeconds": 0.061315441 }, { - "connection_established_seconds": 0.128545917, - "upload_seconds": 0.063891788, - "download_seconds": 0.06394697 + "connectionEstablishedSeconds": 0.128545917, + "uploadSeconds": 0.063891788, + "downloadSeconds": 0.06394697 }, { - "connection_established_seconds": 0.117939599, - "upload_seconds": 0.058599891, - "download_seconds": 0.058641942 + "connectionEstablishedSeconds": 0.117939599, + "uploadSeconds": 0.058599891, + "downloadSeconds": 0.058641942 }, { - "connection_established_seconds": 0.119184747, - "upload_seconds": 0.059090548, - "download_seconds": 0.059103432 + "connectionEstablishedSeconds": 0.119184747, + "uploadSeconds": 0.059090548, + "downloadSeconds": 0.059103432 }, { - "connection_established_seconds": 0.119225496, - "upload_seconds": 0.05922733, - "download_seconds": 0.059264784 + "connectionEstablishedSeconds": 0.119225496, + "uploadSeconds": 0.05922733, + "downloadSeconds": 0.059264784 }, { - "connection_established_seconds": 0.122905732, - "upload_seconds": 0.061065736, - "download_seconds": 0.061151848 + "connectionEstablishedSeconds": 0.122905732, + "uploadSeconds": 0.061065736, + "downloadSeconds": 0.061151848 }, { - "connection_established_seconds": 0.125260299, - "upload_seconds": 0.062258568, - "download_seconds": 0.062296567 + "connectionEstablishedSeconds": 0.125260299, + "uploadSeconds": 0.062258568, + "downloadSeconds": 0.062296567 }, { - "connection_established_seconds": 0.125666793, - "upload_seconds": 0.06246034, - "download_seconds": 0.062490292 + "connectionEstablishedSeconds": 0.125666793, + "uploadSeconds": 0.06246034, + "downloadSeconds": 0.062490292 }, { - "connection_established_seconds": 0.130158543, - "upload_seconds": 0.064693106, - "download_seconds": 0.06471281 + "connectionEstablishedSeconds": 0.130158543, + "uploadSeconds": 0.064693106, + "downloadSeconds": 0.06471281 }, { - "connection_established_seconds": 0.123926745, - "upload_seconds": 0.061615685, - "download_seconds": 0.061623424 + "connectionEstablishedSeconds": 0.123926745, + "uploadSeconds": 0.061615685, + "downloadSeconds": 0.061623424 }, { - "connection_established_seconds": 0.12913928, - "upload_seconds": 0.064184865, - "download_seconds": 0.064204226 + "connectionEstablishedSeconds": 0.12913928, + "uploadSeconds": 0.064184865, + "downloadSeconds": 0.064204226 }, { - "connection_established_seconds": 0.120888422, - "upload_seconds": 0.060079159, - "download_seconds": 0.060075203 + "connectionEstablishedSeconds": 0.120888422, + "uploadSeconds": 0.060079159, + "downloadSeconds": 0.060075203 }, { - "connection_established_seconds": 0.121925559, - "upload_seconds": 0.06058572, - "download_seconds": 0.060601655 + "connectionEstablishedSeconds": 0.121925559, + "uploadSeconds": 0.06058572, + "downloadSeconds": 0.060601655 }, { - "connection_established_seconds": 0.12744737, - "upload_seconds": 0.063359326, - "download_seconds": 0.063369463 + "connectionEstablishedSeconds": 0.12744737, + "uploadSeconds": 0.063359326, + "downloadSeconds": 0.063369463 }, { - "connection_established_seconds": 0.121927453, - "upload_seconds": 0.060578582, - "download_seconds": 0.060592778 + "connectionEstablishedSeconds": 0.121927453, + "uploadSeconds": 0.060578582, + "downloadSeconds": 0.060592778 }, { - "connection_established_seconds": 0.12108071, - "upload_seconds": 0.060175648, - "download_seconds": 0.060614869 + "connectionEstablishedSeconds": 0.12108071, + "uploadSeconds": 0.060175648, + "downloadSeconds": 0.060614869 }, { - "connection_established_seconds": 0.127892119, - "upload_seconds": 0.063587952, - "download_seconds": 0.063609969 + "connectionEstablishedSeconds": 0.127892119, + "uploadSeconds": 0.063587952, + "downloadSeconds": 0.063609969 }, { - "connection_established_seconds": 0.120905003, - "upload_seconds": 0.060085677, - "download_seconds": 0.060124089 + "connectionEstablishedSeconds": 0.120905003, + "uploadSeconds": 0.060085677, + "downloadSeconds": 0.060124089 }, { - "connection_established_seconds": 0.120594857, - "upload_seconds": 0.059925071, - "download_seconds": 0.059965372 + "connectionEstablishedSeconds": 0.120594857, + "uploadSeconds": 0.059925071, + "downloadSeconds": 0.059965372 }, { - "connection_established_seconds": 0.126257335, - "upload_seconds": 0.062704273, - "download_seconds": 0.062742059 + "connectionEstablishedSeconds": 0.126257335, + "uploadSeconds": 0.062704273, + "downloadSeconds": 0.062742059 }, { - "connection_established_seconds": 0.125894135, - "upload_seconds": 0.062578119, - "download_seconds": 0.062602191 + "connectionEstablishedSeconds": 0.125894135, + "uploadSeconds": 0.062578119, + "downloadSeconds": 0.062602191 }, { - "connection_established_seconds": 0.123692801, - "upload_seconds": 0.061494169, - "download_seconds": 0.061509289 + "connectionEstablishedSeconds": 0.123692801, + "uploadSeconds": 0.061494169, + "downloadSeconds": 0.061509289 }, { - "connection_established_seconds": 0.125885482, - "upload_seconds": 0.062573749, - "download_seconds": 0.062580884 + "connectionEstablishedSeconds": 0.125885482, + "uploadSeconds": 0.062573749, + "downloadSeconds": 0.062580884 }, { - "connection_established_seconds": 0.12775227, - "upload_seconds": 0.063489935, - "download_seconds": 0.063545142 + "connectionEstablishedSeconds": 0.12775227, + "uploadSeconds": 0.063489935, + "downloadSeconds": 0.063545142 }, { - "connection_established_seconds": 0.124090919, - "upload_seconds": 0.061676606, - "download_seconds": 0.061714668 + "connectionEstablishedSeconds": 0.124090919, + "uploadSeconds": 0.061676606, + "downloadSeconds": 0.061714668 }, { - "connection_established_seconds": 0.127768893, - "upload_seconds": 0.063489949, - "download_seconds": 0.063512222 + "connectionEstablishedSeconds": 0.127768893, + "uploadSeconds": 0.063489949, + "downloadSeconds": 0.063512222 }, { - "connection_established_seconds": 0.121857213, - "upload_seconds": 0.060515969, - "download_seconds": 0.060548248 + "connectionEstablishedSeconds": 0.121857213, + "uploadSeconds": 0.060515969, + "downloadSeconds": 0.060548248 }, { - "connection_established_seconds": 0.120858895, - "upload_seconds": 0.059936957, - "download_seconds": 0.059978208 + "connectionEstablishedSeconds": 0.120858895, + "uploadSeconds": 0.059936957, + "downloadSeconds": 0.059978208 }, { - "connection_established_seconds": 0.125957099, - "upload_seconds": 0.062588604, - "download_seconds": 0.062638697 + "connectionEstablishedSeconds": 0.125957099, + "uploadSeconds": 0.062588604, + "downloadSeconds": 0.062638697 }, { - "connection_established_seconds": 0.128928719, - "upload_seconds": 0.064153287, - "download_seconds": 0.064156072 + "connectionEstablishedSeconds": 0.128928719, + "uploadSeconds": 0.064153287, + "downloadSeconds": 0.064156072 }, { - "connection_established_seconds": 0.123693096, - "upload_seconds": 0.061581606, - "download_seconds": 0.061498676 + "connectionEstablishedSeconds": 0.123693096, + "uploadSeconds": 0.061581606, + "downloadSeconds": 0.061498676 }, { - "connection_established_seconds": 0.11974957, - "upload_seconds": 0.059490641, - "download_seconds": 0.059520038 + "connectionEstablishedSeconds": 0.11974957, + "uploadSeconds": 0.059490641, + "downloadSeconds": 0.059520038 }, { - "connection_established_seconds": 0.127675593, - "upload_seconds": 0.063485346, - "download_seconds": 0.063516515 + "connectionEstablishedSeconds": 0.127675593, + "uploadSeconds": 0.063485346, + "downloadSeconds": 0.063516515 }, { - "connection_established_seconds": 0.129245549, - "upload_seconds": 0.064255694, - "download_seconds": 0.064269179 + "connectionEstablishedSeconds": 0.129245549, + "uploadSeconds": 0.064255694, + "downloadSeconds": 0.064269179 }, { - "connection_established_seconds": 0.130277486, - "upload_seconds": 0.064766765, - "download_seconds": 0.064795694 + "connectionEstablishedSeconds": 0.130277486, + "uploadSeconds": 0.064766765, + "downloadSeconds": 0.064795694 }, { - "connection_established_seconds": 0.127990056, - "upload_seconds": 0.063648257, - "download_seconds": 0.063665452 + "connectionEstablishedSeconds": 0.127990056, + "uploadSeconds": 0.063648257, + "downloadSeconds": 0.063665452 }, { - "connection_established_seconds": 0.127237517, - "upload_seconds": 0.063228796, - "download_seconds": 0.063325575 + "connectionEstablishedSeconds": 0.127237517, + "uploadSeconds": 0.063228796, + "downloadSeconds": 0.063325575 }, { - "connection_established_seconds": 0.126827288, - "upload_seconds": 0.063057107, - "download_seconds": 0.063060423 + "connectionEstablishedSeconds": 0.126827288, + "uploadSeconds": 0.063057107, + "downloadSeconds": 0.063060423 }, { - "connection_established_seconds": 0.128076095, - "upload_seconds": 0.063600281, - "download_seconds": 0.063563121 + "connectionEstablishedSeconds": 0.128076095, + "uploadSeconds": 0.063600281, + "downloadSeconds": 0.063563121 }, { - "connection_established_seconds": 0.126112736, - "upload_seconds": 0.062712107, - "download_seconds": 0.062709074 + "connectionEstablishedSeconds": 0.126112736, + "uploadSeconds": 0.062712107, + "downloadSeconds": 0.062709074 }, { - "connection_established_seconds": 0.126037179, - "upload_seconds": 0.062549752, - "download_seconds": 0.062570997 + "connectionEstablishedSeconds": 0.126037179, + "uploadSeconds": 0.062549752, + "downloadSeconds": 0.062570997 }, { - "connection_established_seconds": 0.124178306, - "upload_seconds": 0.061731673, - "download_seconds": 0.061729123 + "connectionEstablishedSeconds": 0.124178306, + "uploadSeconds": 0.061731673, + "downloadSeconds": 0.061729123 }, { - "connection_established_seconds": 0.122969035, - "upload_seconds": 0.061091485, - "download_seconds": 0.061125026 + "connectionEstablishedSeconds": 0.122969035, + "uploadSeconds": 0.061091485, + "downloadSeconds": 0.061125026 }, { - "connection_established_seconds": 0.126242854, - "upload_seconds": 0.062729515, - "download_seconds": 0.062781941 + "connectionEstablishedSeconds": 0.126242854, + "uploadSeconds": 0.062729515, + "downloadSeconds": 0.062781941 }, { - "connection_established_seconds": 0.12955639, - "upload_seconds": 0.064371501, - "download_seconds": 0.064425928 + "connectionEstablishedSeconds": 0.12955639, + "uploadSeconds": 0.064371501, + "downloadSeconds": 0.064425928 }, { - "connection_established_seconds": 0.123962068, - "upload_seconds": 0.061665617, - "download_seconds": 0.061628992 + "connectionEstablishedSeconds": 0.123962068, + "uploadSeconds": 0.061665617, + "downloadSeconds": 0.061628992 }, { - "connection_established_seconds": 0.12504171, - "upload_seconds": 0.062189832, - "download_seconds": 0.06221121 + "connectionEstablishedSeconds": 0.12504171, + "uploadSeconds": 0.062189832, + "downloadSeconds": 0.06221121 }, { - "connection_established_seconds": 0.130446313, - "upload_seconds": 0.064829082, - "download_seconds": 0.064873804 + "connectionEstablishedSeconds": 0.130446313, + "uploadSeconds": 0.064829082, + "downloadSeconds": 0.064873804 }, { - "connection_established_seconds": 0.129508575, - "upload_seconds": 0.064349556, - "download_seconds": 0.064360501 + "connectionEstablishedSeconds": 0.129508575, + "uploadSeconds": 0.064349556, + "downloadSeconds": 0.064360501 } ], "implementation": "rust-libp2p", @@ -1489,504 +1489,504 @@ { "result": [ { - "connection_established_seconds": 0.064777868, - "upload_seconds": 0.125998204, - "download_seconds": 0.000075636 + "connectionEstablishedSeconds": 0.064777868, + "uploadSeconds": 0.125998204, + "downloadSeconds": 0.000075636 }, { - "connection_established_seconds": 0.06294562, - "upload_seconds": 0.12275897, - "download_seconds": 0.000073667 + "connectionEstablishedSeconds": 0.06294562, + "uploadSeconds": 0.12275897, + "downloadSeconds": 0.000073667 }, { - "connection_established_seconds": 0.064982803, - "upload_seconds": 0.126651951, - "download_seconds": 0.000069897 + "connectionEstablishedSeconds": 0.064982803, + "uploadSeconds": 0.126651951, + "downloadSeconds": 0.000069897 }, { - "connection_established_seconds": 0.063169272, - "upload_seconds": 0.123140985, - "download_seconds": 0.000078117 + "connectionEstablishedSeconds": 0.063169272, + "uploadSeconds": 0.123140985, + "downloadSeconds": 0.000078117 }, { - "connection_established_seconds": 0.061480717, - "upload_seconds": 0.119770789, - "download_seconds": 0.000080836 + "connectionEstablishedSeconds": 0.061480717, + "uploadSeconds": 0.119770789, + "downloadSeconds": 0.000080836 }, { - "connection_established_seconds": 0.064885998, - "upload_seconds": 0.126467413, - "download_seconds": 0.000045782 + "connectionEstablishedSeconds": 0.064885998, + "uploadSeconds": 0.126467413, + "downloadSeconds": 0.000045782 }, { - "connection_established_seconds": 0.063326276, - "upload_seconds": 0.123218016, - "download_seconds": 0.000074582 + "connectionEstablishedSeconds": 0.063326276, + "uploadSeconds": 0.123218016, + "downloadSeconds": 0.000074582 }, { - "connection_established_seconds": 0.065046438, - "upload_seconds": 0.126780176, - "download_seconds": 0.000073816 + "connectionEstablishedSeconds": 0.065046438, + "uploadSeconds": 0.126780176, + "downloadSeconds": 0.000073816 }, { - "connection_established_seconds": 0.062702721, - "upload_seconds": 0.122423041, - "download_seconds": 0.000073728 + "connectionEstablishedSeconds": 0.062702721, + "uploadSeconds": 0.122423041, + "downloadSeconds": 0.000073728 }, { - "connection_established_seconds": 0.065586164, - "upload_seconds": 0.127955324, - "download_seconds": 0.000080008 + "connectionEstablishedSeconds": 0.065586164, + "uploadSeconds": 0.127955324, + "downloadSeconds": 0.000080008 }, { - "connection_established_seconds": 0.066246125, - "upload_seconds": 0.129010614, - "download_seconds": 0.000081791 + "connectionEstablishedSeconds": 0.066246125, + "uploadSeconds": 0.129010614, + "downloadSeconds": 0.000081791 }, { - "connection_established_seconds": 0.064241739, - "upload_seconds": 0.125201385, - "download_seconds": 0.000082527 + "connectionEstablishedSeconds": 0.064241739, + "uploadSeconds": 0.125201385, + "downloadSeconds": 0.000082527 }, { - "connection_established_seconds": 0.063676962, - "upload_seconds": 0.124129189, - "download_seconds": 0.000092577 + "connectionEstablishedSeconds": 0.063676962, + "uploadSeconds": 0.124129189, + "downloadSeconds": 0.000092577 }, { - "connection_established_seconds": 0.061776373, - "upload_seconds": 0.120380327, - "download_seconds": 0.000088589 + "connectionEstablishedSeconds": 0.061776373, + "uploadSeconds": 0.120380327, + "downloadSeconds": 0.000088589 }, { - "connection_established_seconds": 0.064540106, - "upload_seconds": 0.125817512, - "download_seconds": 0.000063514 + "connectionEstablishedSeconds": 0.064540106, + "uploadSeconds": 0.125817512, + "downloadSeconds": 0.000063514 }, { - "connection_established_seconds": 0.06378064, - "upload_seconds": 0.124386111, - "download_seconds": 0.000071957 + "connectionEstablishedSeconds": 0.06378064, + "uploadSeconds": 0.124386111, + "downloadSeconds": 0.000071957 }, { - "connection_established_seconds": 0.063139452, - "upload_seconds": 0.12295606, - "download_seconds": 0.000080053 + "connectionEstablishedSeconds": 0.063139452, + "uploadSeconds": 0.12295606, + "downloadSeconds": 0.000080053 }, { - "connection_established_seconds": 0.062069621, - "upload_seconds": 0.120622443, - "download_seconds": 0.000053712 + "connectionEstablishedSeconds": 0.062069621, + "uploadSeconds": 0.120622443, + "downloadSeconds": 0.000053712 }, { - "connection_established_seconds": 0.062981833, - "upload_seconds": 0.12289405, - "download_seconds": 0.00008086 + "connectionEstablishedSeconds": 0.062981833, + "uploadSeconds": 0.12289405, + "downloadSeconds": 0.00008086 }, { - "connection_established_seconds": 0.064930467, - "upload_seconds": 0.126605086, - "download_seconds": 0.000082813 + "connectionEstablishedSeconds": 0.064930467, + "uploadSeconds": 0.126605086, + "downloadSeconds": 0.000082813 }, { - "connection_established_seconds": 0.06285884, - "upload_seconds": 0.122514956, - "download_seconds": 0.000093668 + "connectionEstablishedSeconds": 0.06285884, + "uploadSeconds": 0.122514956, + "downloadSeconds": 0.000093668 }, { - "connection_established_seconds": 0.061271851, - "upload_seconds": 0.119193715, - "download_seconds": 0.000082919 + "connectionEstablishedSeconds": 0.061271851, + "uploadSeconds": 0.119193715, + "downloadSeconds": 0.000082919 }, { - "connection_established_seconds": 0.064243355, - "upload_seconds": 0.125646122, - "download_seconds": 0.000087232 + "connectionEstablishedSeconds": 0.064243355, + "uploadSeconds": 0.125646122, + "downloadSeconds": 0.000087232 }, { - "connection_established_seconds": 0.063067288, - "upload_seconds": 0.122717381, - "download_seconds": 0.000073586 + "connectionEstablishedSeconds": 0.063067288, + "uploadSeconds": 0.122717381, + "downloadSeconds": 0.000073586 }, { - "connection_established_seconds": 0.0665023, - "upload_seconds": 0.129655903, - "download_seconds": 0.000069867 + "connectionEstablishedSeconds": 0.0665023, + "uploadSeconds": 0.129655903, + "downloadSeconds": 0.000069867 }, { - "connection_established_seconds": 0.064118954, - "upload_seconds": 0.124881153, - "download_seconds": 0.000059721 + "connectionEstablishedSeconds": 0.064118954, + "uploadSeconds": 0.124881153, + "downloadSeconds": 0.000059721 }, { - "connection_established_seconds": 0.063248922, - "upload_seconds": 0.123328557, - "download_seconds": 0.000078478 + "connectionEstablishedSeconds": 0.063248922, + "uploadSeconds": 0.123328557, + "downloadSeconds": 0.000078478 }, { - "connection_established_seconds": 0.061599504, - "upload_seconds": 0.119807769, - "download_seconds": 0.000086405 + "connectionEstablishedSeconds": 0.061599504, + "uploadSeconds": 0.119807769, + "downloadSeconds": 0.000086405 }, { - "connection_established_seconds": 0.063174339, - "upload_seconds": 0.123168493, - "download_seconds": 0.000078535 + "connectionEstablishedSeconds": 0.063174339, + "uploadSeconds": 0.123168493, + "downloadSeconds": 0.000078535 }, { - "connection_established_seconds": 0.064735618, - "upload_seconds": 0.12625337, - "download_seconds": 0.000055502 + "connectionEstablishedSeconds": 0.064735618, + "uploadSeconds": 0.12625337, + "downloadSeconds": 0.000055502 }, { - "connection_established_seconds": 0.062365727, - "upload_seconds": 0.121573982, - "download_seconds": 0.000067009 + "connectionEstablishedSeconds": 0.062365727, + "uploadSeconds": 0.121573982, + "downloadSeconds": 0.000067009 }, { - "connection_established_seconds": 0.062613185, - "upload_seconds": 0.122205546, - "download_seconds": 0.00006355 + "connectionEstablishedSeconds": 0.062613185, + "uploadSeconds": 0.122205546, + "downloadSeconds": 0.00006355 }, { - "connection_established_seconds": 0.063637113, - "upload_seconds": 0.124060759, - "download_seconds": 0.000104106 + "connectionEstablishedSeconds": 0.063637113, + "uploadSeconds": 0.124060759, + "downloadSeconds": 0.000104106 }, { - "connection_established_seconds": 0.065089764, - "upload_seconds": 0.127116541, - "download_seconds": 0.000069329 + "connectionEstablishedSeconds": 0.065089764, + "uploadSeconds": 0.127116541, + "downloadSeconds": 0.000069329 }, { - "connection_established_seconds": 0.063268963, - "upload_seconds": 0.123293679, - "download_seconds": 0.000070154 + "connectionEstablishedSeconds": 0.063268963, + "uploadSeconds": 0.123293679, + "downloadSeconds": 0.000070154 }, { - "connection_established_seconds": 0.064351409, - "upload_seconds": 0.125566891, - "download_seconds": 0.000081906 + "connectionEstablishedSeconds": 0.064351409, + "uploadSeconds": 0.125566891, + "downloadSeconds": 0.000081906 }, { - "connection_established_seconds": 0.063977541, - "upload_seconds": 0.124605088, - "download_seconds": 0.000090947 + "connectionEstablishedSeconds": 0.063977541, + "uploadSeconds": 0.124605088, + "downloadSeconds": 0.000090947 }, { - "connection_established_seconds": 0.064431774, - "upload_seconds": 0.125293052, - "download_seconds": 0.000097249 + "connectionEstablishedSeconds": 0.064431774, + "uploadSeconds": 0.125293052, + "downloadSeconds": 0.000097249 }, { - "connection_established_seconds": 0.062392999, - "upload_seconds": 0.12150546, - "download_seconds": 0.000089871 + "connectionEstablishedSeconds": 0.062392999, + "uploadSeconds": 0.12150546, + "downloadSeconds": 0.000089871 }, { - "connection_established_seconds": 0.065171834, - "upload_seconds": 0.126893219, - "download_seconds": 0.00006415 + "connectionEstablishedSeconds": 0.065171834, + "uploadSeconds": 0.126893219, + "downloadSeconds": 0.00006415 }, { - "connection_established_seconds": 0.063419236, - "upload_seconds": 0.123194115, - "download_seconds": 0.0000752 + "connectionEstablishedSeconds": 0.063419236, + "uploadSeconds": 0.123194115, + "downloadSeconds": 0.0000752 }, { - "connection_established_seconds": 0.062857141, - "upload_seconds": 0.122546209, - "download_seconds": 0.000079444 + "connectionEstablishedSeconds": 0.062857141, + "uploadSeconds": 0.122546209, + "downloadSeconds": 0.000079444 }, { - "connection_established_seconds": 0.060385801, - "upload_seconds": 0.117631317, - "download_seconds": 0.000085714 + "connectionEstablishedSeconds": 0.060385801, + "uploadSeconds": 0.117631317, + "downloadSeconds": 0.000085714 }, { - "connection_established_seconds": 0.066192975, - "upload_seconds": 0.128907583, - "download_seconds": 0.00007039 + "connectionEstablishedSeconds": 0.066192975, + "uploadSeconds": 0.128907583, + "downloadSeconds": 0.00007039 }, { - "connection_established_seconds": 0.06264006, - "upload_seconds": 0.121778547, - "download_seconds": 0.000095732 + "connectionEstablishedSeconds": 0.06264006, + "uploadSeconds": 0.121778547, + "downloadSeconds": 0.000095732 }, { - "connection_established_seconds": 0.064492003, - "upload_seconds": 0.125525397, - "download_seconds": 0.000046312 + "connectionEstablishedSeconds": 0.064492003, + "uploadSeconds": 0.125525397, + "downloadSeconds": 0.000046312 }, { - "connection_established_seconds": 0.065256489, - "upload_seconds": 0.127060265, - "download_seconds": 0.000111949 + "connectionEstablishedSeconds": 0.065256489, + "uploadSeconds": 0.127060265, + "downloadSeconds": 0.000111949 }, { - "connection_established_seconds": 0.064660316, - "upload_seconds": 0.125923877, - "download_seconds": 0.000077244 + "connectionEstablishedSeconds": 0.064660316, + "uploadSeconds": 0.125923877, + "downloadSeconds": 0.000077244 }, { - "connection_established_seconds": 0.06355617, - "upload_seconds": 0.123885464, - "download_seconds": 0.000086419 + "connectionEstablishedSeconds": 0.06355617, + "uploadSeconds": 0.123885464, + "downloadSeconds": 0.000086419 }, { - "connection_established_seconds": 0.062414997, - "upload_seconds": 0.121797196, - "download_seconds": 0.00010588 + "connectionEstablishedSeconds": 0.062414997, + "uploadSeconds": 0.121797196, + "downloadSeconds": 0.00010588 }, { - "connection_established_seconds": 0.066173573, - "upload_seconds": 0.12932854, - "download_seconds": 0.000063044 + "connectionEstablishedSeconds": 0.066173573, + "uploadSeconds": 0.12932854, + "downloadSeconds": 0.000063044 }, { - "connection_established_seconds": 0.062986592, - "upload_seconds": 0.122868444, - "download_seconds": 0.000081463 + "connectionEstablishedSeconds": 0.062986592, + "uploadSeconds": 0.122868444, + "downloadSeconds": 0.000081463 }, { - "connection_established_seconds": 0.063503944, - "upload_seconds": 0.12384623, - "download_seconds": 0.000075366 + "connectionEstablishedSeconds": 0.063503944, + "uploadSeconds": 0.12384623, + "downloadSeconds": 0.000075366 }, { - "connection_established_seconds": 0.064330604, - "upload_seconds": 0.125533853, - "download_seconds": 0.000079061 + "connectionEstablishedSeconds": 0.064330604, + "uploadSeconds": 0.125533853, + "downloadSeconds": 0.000079061 }, { - "connection_established_seconds": 0.065544157, - "upload_seconds": 0.128015899, - "download_seconds": 0.000068859 + "connectionEstablishedSeconds": 0.065544157, + "uploadSeconds": 0.128015899, + "downloadSeconds": 0.000068859 }, { - "connection_established_seconds": 0.064812758, - "upload_seconds": 0.126523177, - "download_seconds": 0.000073051 + "connectionEstablishedSeconds": 0.064812758, + "uploadSeconds": 0.126523177, + "downloadSeconds": 0.000073051 }, { - "connection_established_seconds": 0.062981201, - "upload_seconds": 0.122817041, - "download_seconds": 0.000148614 + "connectionEstablishedSeconds": 0.062981201, + "uploadSeconds": 0.122817041, + "downloadSeconds": 0.000148614 }, { - "connection_established_seconds": 0.066029472, - "upload_seconds": 0.128808333, - "download_seconds": 0.000127753 + "connectionEstablishedSeconds": 0.066029472, + "uploadSeconds": 0.128808333, + "downloadSeconds": 0.000127753 }, { - "connection_established_seconds": 0.063809677, - "upload_seconds": 0.124393806, - "download_seconds": 0.000074221 + "connectionEstablishedSeconds": 0.063809677, + "uploadSeconds": 0.124393806, + "downloadSeconds": 0.000074221 }, { - "connection_established_seconds": 0.064258717, - "upload_seconds": 0.125336028, - "download_seconds": 0.000071534 + "connectionEstablishedSeconds": 0.064258717, + "uploadSeconds": 0.125336028, + "downloadSeconds": 0.000071534 }, { - "connection_established_seconds": 0.063431624, - "upload_seconds": 0.123813457, - "download_seconds": 0.000076783 + "connectionEstablishedSeconds": 0.063431624, + "uploadSeconds": 0.123813457, + "downloadSeconds": 0.000076783 }, { - "connection_established_seconds": 0.066005284, - "upload_seconds": 0.128856331, - "download_seconds": 0.000081916 + "connectionEstablishedSeconds": 0.066005284, + "uploadSeconds": 0.128856331, + "downloadSeconds": 0.000081916 }, { - "connection_established_seconds": 0.06587658, - "upload_seconds": 0.128505099, - "download_seconds": 0.000082519 + "connectionEstablishedSeconds": 0.06587658, + "uploadSeconds": 0.128505099, + "downloadSeconds": 0.000082519 }, { - "connection_established_seconds": 0.062858795, - "upload_seconds": 0.122414246, - "download_seconds": 0.000083717 + "connectionEstablishedSeconds": 0.062858795, + "uploadSeconds": 0.122414246, + "downloadSeconds": 0.000083717 }, { - "connection_established_seconds": 0.061783997, - "upload_seconds": 0.119334631, - "download_seconds": 0.000109582 + "connectionEstablishedSeconds": 0.061783997, + "uploadSeconds": 0.119334631, + "downloadSeconds": 0.000109582 }, { - "connection_established_seconds": 0.062791376, - "upload_seconds": 0.122468863, - "download_seconds": 0.000076865 + "connectionEstablishedSeconds": 0.062791376, + "uploadSeconds": 0.122468863, + "downloadSeconds": 0.000076865 }, { - "connection_established_seconds": 0.062901138, - "upload_seconds": 0.122598995, - "download_seconds": 0.000071515 + "connectionEstablishedSeconds": 0.062901138, + "uploadSeconds": 0.122598995, + "downloadSeconds": 0.000071515 }, { - "connection_established_seconds": 0.062531113, - "upload_seconds": 0.121863399, - "download_seconds": 0.000087865 + "connectionEstablishedSeconds": 0.062531113, + "uploadSeconds": 0.121863399, + "downloadSeconds": 0.000087865 }, { - "connection_established_seconds": 0.064976981, - "upload_seconds": 0.126558119, - "download_seconds": 0.000115422 + "connectionEstablishedSeconds": 0.064976981, + "uploadSeconds": 0.126558119, + "downloadSeconds": 0.000115422 }, { - "connection_established_seconds": 0.064216494, - "upload_seconds": 0.124962731, - "download_seconds": 0.000083004 + "connectionEstablishedSeconds": 0.064216494, + "uploadSeconds": 0.124962731, + "downloadSeconds": 0.000083004 }, { - "connection_established_seconds": 0.062264406, - "upload_seconds": 0.121360788, - "download_seconds": 0.000073056 + "connectionEstablishedSeconds": 0.062264406, + "uploadSeconds": 0.121360788, + "downloadSeconds": 0.000073056 }, { - "connection_established_seconds": 0.064672496, - "upload_seconds": 0.126154373, - "download_seconds": 0.000091576 + "connectionEstablishedSeconds": 0.064672496, + "uploadSeconds": 0.126154373, + "downloadSeconds": 0.000091576 }, { - "connection_established_seconds": 0.065740028, - "upload_seconds": 0.128227022, - "download_seconds": 0.000154756 + "connectionEstablishedSeconds": 0.065740028, + "uploadSeconds": 0.128227022, + "downloadSeconds": 0.000154756 }, { - "connection_established_seconds": 0.061835942, - "upload_seconds": 0.120442236, - "download_seconds": 0.000074908 + "connectionEstablishedSeconds": 0.061835942, + "uploadSeconds": 0.120442236, + "downloadSeconds": 0.000074908 }, { - "connection_established_seconds": 0.063429564, - "upload_seconds": 0.123661597, - "download_seconds": 0.000052419 + "connectionEstablishedSeconds": 0.063429564, + "uploadSeconds": 0.123661597, + "downloadSeconds": 0.000052419 }, { - "connection_established_seconds": 0.066476234, - "upload_seconds": 0.129799817, - "download_seconds": 0.000076399 + "connectionEstablishedSeconds": 0.066476234, + "uploadSeconds": 0.129799817, + "downloadSeconds": 0.000076399 }, { - "connection_established_seconds": 0.062667103, - "upload_seconds": 0.122210395, - "download_seconds": 0.000075119 + "connectionEstablishedSeconds": 0.062667103, + "uploadSeconds": 0.122210395, + "downloadSeconds": 0.000075119 }, { - "connection_established_seconds": 0.062874746, - "upload_seconds": 0.122624341, - "download_seconds": 0.000099077 + "connectionEstablishedSeconds": 0.062874746, + "uploadSeconds": 0.122624341, + "downloadSeconds": 0.000099077 }, { - "connection_established_seconds": 0.063208043, - "upload_seconds": 0.123244426, - "download_seconds": 0.000083971 + "connectionEstablishedSeconds": 0.063208043, + "uploadSeconds": 0.123244426, + "downloadSeconds": 0.000083971 }, { - "connection_established_seconds": 0.062803152, - "upload_seconds": 0.12237716, - "download_seconds": 0.000077384 + "connectionEstablishedSeconds": 0.062803152, + "uploadSeconds": 0.12237716, + "downloadSeconds": 0.000077384 }, { - "connection_established_seconds": 0.064475435, - "upload_seconds": 0.12574189, - "download_seconds": 0.000047054 + "connectionEstablishedSeconds": 0.064475435, + "uploadSeconds": 0.12574189, + "downloadSeconds": 0.000047054 }, { - "connection_established_seconds": 0.066113533, - "upload_seconds": 0.129156976, - "download_seconds": 0.000076801 + "connectionEstablishedSeconds": 0.066113533, + "uploadSeconds": 0.129156976, + "downloadSeconds": 0.000076801 }, { - "connection_established_seconds": 0.065250443, - "upload_seconds": 0.12746102, - "download_seconds": 0.000052761 + "connectionEstablishedSeconds": 0.065250443, + "uploadSeconds": 0.12746102, + "downloadSeconds": 0.000052761 }, { - "connection_established_seconds": 0.064099146, - "upload_seconds": 0.12506225, - "download_seconds": 0.000077246 + "connectionEstablishedSeconds": 0.064099146, + "uploadSeconds": 0.12506225, + "downloadSeconds": 0.000077246 }, { - "connection_established_seconds": 0.063758761, - "upload_seconds": 0.124206074, - "download_seconds": 0.000081693 + "connectionEstablishedSeconds": 0.063758761, + "uploadSeconds": 0.124206074, + "downloadSeconds": 0.000081693 }, { - "connection_established_seconds": 0.064691732, - "upload_seconds": 0.126195825, - "download_seconds": 0.000075353 + "connectionEstablishedSeconds": 0.064691732, + "uploadSeconds": 0.126195825, + "downloadSeconds": 0.000075353 }, { - "connection_established_seconds": 0.062189209, - "upload_seconds": 0.121311004, - "download_seconds": 0.000069429 + "connectionEstablishedSeconds": 0.062189209, + "uploadSeconds": 0.121311004, + "downloadSeconds": 0.000069429 }, { - "connection_established_seconds": 0.061228587, - "upload_seconds": 0.119376962, - "download_seconds": 0.00007423 + "connectionEstablishedSeconds": 0.061228587, + "uploadSeconds": 0.119376962, + "downloadSeconds": 0.00007423 }, { - "connection_established_seconds": 0.061882032, - "upload_seconds": 0.12067482, - "download_seconds": 0.000089354 + "connectionEstablishedSeconds": 0.061882032, + "uploadSeconds": 0.12067482, + "downloadSeconds": 0.000089354 }, { - "connection_established_seconds": 0.060575704, - "upload_seconds": 0.118040972, - "download_seconds": 0.000095531 + "connectionEstablishedSeconds": 0.060575704, + "uploadSeconds": 0.118040972, + "downloadSeconds": 0.000095531 }, { - "connection_established_seconds": 0.063224556, - "upload_seconds": 0.123390466, - "download_seconds": 0.000077311 + "connectionEstablishedSeconds": 0.063224556, + "uploadSeconds": 0.123390466, + "downloadSeconds": 0.000077311 }, { - "connection_established_seconds": 0.061287889, - "upload_seconds": 0.119465674, - "download_seconds": 0.000074671 + "connectionEstablishedSeconds": 0.061287889, + "uploadSeconds": 0.119465674, + "downloadSeconds": 0.000074671 }, { - "connection_established_seconds": 0.062176027, - "upload_seconds": 0.121133286, - "download_seconds": 0.00007535 + "connectionEstablishedSeconds": 0.062176027, + "uploadSeconds": 0.121133286, + "downloadSeconds": 0.00007535 }, { - "connection_established_seconds": 0.064492176, - "upload_seconds": 0.125851577, - "download_seconds": 0.000077252 + "connectionEstablishedSeconds": 0.064492176, + "uploadSeconds": 0.125851577, + "downloadSeconds": 0.000077252 }, { - "connection_established_seconds": 0.063885163, - "upload_seconds": 0.124464327, - "download_seconds": 0.00007576 + "connectionEstablishedSeconds": 0.063885163, + "uploadSeconds": 0.124464327, + "downloadSeconds": 0.00007576 }, { - "connection_established_seconds": 0.062164169, - "upload_seconds": 0.12127478, - "download_seconds": 0.000070603 + "connectionEstablishedSeconds": 0.062164169, + "uploadSeconds": 0.12127478, + "downloadSeconds": 0.000070603 }, { - "connection_established_seconds": 0.062933372, - "upload_seconds": 0.12266429, - "download_seconds": 0.000075274 + "connectionEstablishedSeconds": 0.062933372, + "uploadSeconds": 0.12266429, + "downloadSeconds": 0.000075274 }, { - "connection_established_seconds": 0.063141544, - "upload_seconds": 0.123043061, - "download_seconds": 0.000067134 + "connectionEstablishedSeconds": 0.063141544, + "uploadSeconds": 0.123043061, + "downloadSeconds": 0.000067134 }, { - "connection_established_seconds": 0.064007733, - "upload_seconds": 0.124852186, - "download_seconds": 0.000092172 + "connectionEstablishedSeconds": 0.064007733, + "uploadSeconds": 0.124852186, + "downloadSeconds": 0.000092172 }, { - "connection_established_seconds": 0.062662758, - "upload_seconds": 0.121683962, - "download_seconds": 0.000097485 + "connectionEstablishedSeconds": 0.062662758, + "uploadSeconds": 0.121683962, + "downloadSeconds": 0.000097485 } ], "implementation": "rust-libp2p", @@ -1996,504 +1996,504 @@ { "result": [ { - "connection_established_seconds": 0.065345597, - "upload_seconds": 0.126627588, - "download_seconds": 0.000079782 + "connectionEstablishedSeconds": 0.065345597, + "uploadSeconds": 0.126627588, + "downloadSeconds": 0.000079782 }, { - "connection_established_seconds": 0.06195985, - "upload_seconds": 0.120559278, - "download_seconds": 0.000063813 + "connectionEstablishedSeconds": 0.06195985, + "uploadSeconds": 0.120559278, + "downloadSeconds": 0.000063813 }, { - "connection_established_seconds": 0.065746356, - "upload_seconds": 0.1281704, - "download_seconds": 0.000042327 + "connectionEstablishedSeconds": 0.065746356, + "uploadSeconds": 0.1281704, + "downloadSeconds": 0.000042327 }, { - "connection_established_seconds": 0.06182322, - "upload_seconds": 0.120358159, - "download_seconds": 0.000054483 + "connectionEstablishedSeconds": 0.06182322, + "uploadSeconds": 0.120358159, + "downloadSeconds": 0.000054483 }, { - "connection_established_seconds": 0.063796406, - "upload_seconds": 0.124231577, - "download_seconds": 0.000042138 + "connectionEstablishedSeconds": 0.063796406, + "uploadSeconds": 0.124231577, + "downloadSeconds": 0.000042138 }, { - "connection_established_seconds": 0.064608911, - "upload_seconds": 0.125767583, - "download_seconds": 0.000042794 + "connectionEstablishedSeconds": 0.064608911, + "uploadSeconds": 0.125767583, + "downloadSeconds": 0.000042794 }, { - "connection_established_seconds": 0.065418586, - "upload_seconds": 0.127598866, - "download_seconds": 0.0000745 + "connectionEstablishedSeconds": 0.065418586, + "uploadSeconds": 0.127598866, + "downloadSeconds": 0.0000745 }, { - "connection_established_seconds": 0.063857974, - "upload_seconds": 0.12470036, - "download_seconds": 0.000054574 + "connectionEstablishedSeconds": 0.063857974, + "uploadSeconds": 0.12470036, + "downloadSeconds": 0.000054574 }, { - "connection_established_seconds": 0.064741435, - "upload_seconds": 0.126321487, - "download_seconds": 0.000049352 + "connectionEstablishedSeconds": 0.064741435, + "uploadSeconds": 0.126321487, + "downloadSeconds": 0.000049352 }, { - "connection_established_seconds": 0.062298059, - "upload_seconds": 0.121567394, - "download_seconds": 0.000043745 + "connectionEstablishedSeconds": 0.062298059, + "uploadSeconds": 0.121567394, + "downloadSeconds": 0.000043745 }, { - "connection_established_seconds": 0.062853679, - "upload_seconds": 0.1215074, - "download_seconds": 0.000068952 + "connectionEstablishedSeconds": 0.062853679, + "uploadSeconds": 0.1215074, + "downloadSeconds": 0.000068952 }, { - "connection_established_seconds": 0.061282703, - "upload_seconds": 0.119296348, - "download_seconds": 0.000044825 + "connectionEstablishedSeconds": 0.061282703, + "uploadSeconds": 0.119296348, + "downloadSeconds": 0.000044825 }, { - "connection_established_seconds": 0.065680616, - "upload_seconds": 0.128422717, - "download_seconds": 0.00004375 + "connectionEstablishedSeconds": 0.065680616, + "uploadSeconds": 0.128422717, + "downloadSeconds": 0.00004375 }, { - "connection_established_seconds": 0.060174806, - "upload_seconds": 0.117313557, - "download_seconds": 0.000045011 + "connectionEstablishedSeconds": 0.060174806, + "uploadSeconds": 0.117313557, + "downloadSeconds": 0.000045011 }, { - "connection_established_seconds": 0.064585942, - "upload_seconds": 0.126086034, - "download_seconds": 0.000043884 + "connectionEstablishedSeconds": 0.064585942, + "uploadSeconds": 0.126086034, + "downloadSeconds": 0.000043884 }, { - "connection_established_seconds": 0.064333531, - "upload_seconds": 0.125695507, - "download_seconds": 0.000041636 + "connectionEstablishedSeconds": 0.064333531, + "uploadSeconds": 0.125695507, + "downloadSeconds": 0.000041636 }, { - "connection_established_seconds": 0.063111935, - "upload_seconds": 0.122901385, - "download_seconds": 0.000043733 + "connectionEstablishedSeconds": 0.063111935, + "uploadSeconds": 0.122901385, + "downloadSeconds": 0.000043733 }, { - "connection_established_seconds": 0.064714655, - "upload_seconds": 0.12637165, - "download_seconds": 0.000044685 + "connectionEstablishedSeconds": 0.064714655, + "uploadSeconds": 0.12637165, + "downloadSeconds": 0.000044685 }, { - "connection_established_seconds": 0.062752903, - "upload_seconds": 0.122323865, - "download_seconds": 0.000060012 + "connectionEstablishedSeconds": 0.062752903, + "uploadSeconds": 0.122323865, + "downloadSeconds": 0.000060012 }, { - "connection_established_seconds": 0.066008082, - "upload_seconds": 0.128951116, - "download_seconds": 0.000043653 + "connectionEstablishedSeconds": 0.066008082, + "uploadSeconds": 0.128951116, + "downloadSeconds": 0.000043653 }, { - "connection_established_seconds": 0.064480896, - "upload_seconds": 0.125931628, - "download_seconds": 0.000061708 + "connectionEstablishedSeconds": 0.064480896, + "uploadSeconds": 0.125931628, + "downloadSeconds": 0.000061708 }, { - "connection_established_seconds": 0.065804323, - "upload_seconds": 0.128470453, - "download_seconds": 0.00004138 + "connectionEstablishedSeconds": 0.065804323, + "uploadSeconds": 0.128470453, + "downloadSeconds": 0.00004138 }, { - "connection_established_seconds": 0.064074568, - "upload_seconds": 0.125002588, - "download_seconds": 0.000074019 + "connectionEstablishedSeconds": 0.064074568, + "uploadSeconds": 0.125002588, + "downloadSeconds": 0.000074019 }, { - "connection_established_seconds": 0.064293037, - "upload_seconds": 0.125354149, - "download_seconds": 0.000044326 + "connectionEstablishedSeconds": 0.064293037, + "uploadSeconds": 0.125354149, + "downloadSeconds": 0.000044326 }, { - "connection_established_seconds": 0.062835329, - "upload_seconds": 0.122464034, - "download_seconds": 0.000046381 + "connectionEstablishedSeconds": 0.062835329, + "uploadSeconds": 0.122464034, + "downloadSeconds": 0.000046381 }, { - "connection_established_seconds": 0.062287958, - "upload_seconds": 0.121541381, - "download_seconds": 0.00005813 + "connectionEstablishedSeconds": 0.062287958, + "uploadSeconds": 0.121541381, + "downloadSeconds": 0.00005813 }, { - "connection_established_seconds": 0.063293814, - "upload_seconds": 0.123336206, - "download_seconds": 0.000049922 + "connectionEstablishedSeconds": 0.063293814, + "uploadSeconds": 0.123336206, + "downloadSeconds": 0.000049922 }, { - "connection_established_seconds": 0.062950057, - "upload_seconds": 0.122558901, - "download_seconds": 0.000075057 + "connectionEstablishedSeconds": 0.062950057, + "uploadSeconds": 0.122558901, + "downloadSeconds": 0.000075057 }, { - "connection_established_seconds": 0.064089433, - "upload_seconds": 0.125055731, - "download_seconds": 0.000049211 + "connectionEstablishedSeconds": 0.064089433, + "uploadSeconds": 0.125055731, + "downloadSeconds": 0.000049211 }, { - "connection_established_seconds": 0.062809583, - "upload_seconds": 0.122608524, - "download_seconds": 0.000044586 + "connectionEstablishedSeconds": 0.062809583, + "uploadSeconds": 0.122608524, + "downloadSeconds": 0.000044586 }, { - "connection_established_seconds": 0.063234631, - "upload_seconds": 0.123434574, - "download_seconds": 0.000044071 + "connectionEstablishedSeconds": 0.063234631, + "uploadSeconds": 0.123434574, + "downloadSeconds": 0.000044071 }, { - "connection_established_seconds": 0.06434445, - "upload_seconds": 0.125639794, - "download_seconds": 0.000042225 + "connectionEstablishedSeconds": 0.06434445, + "uploadSeconds": 0.125639794, + "downloadSeconds": 0.000042225 }, { - "connection_established_seconds": 0.064164746, - "upload_seconds": 0.125205322, - "download_seconds": 0.00005385 + "connectionEstablishedSeconds": 0.064164746, + "uploadSeconds": 0.125205322, + "downloadSeconds": 0.00005385 }, { - "connection_established_seconds": 0.066054385, - "upload_seconds": 0.128645324, - "download_seconds": 0.000117253 + "connectionEstablishedSeconds": 0.066054385, + "uploadSeconds": 0.128645324, + "downloadSeconds": 0.000117253 }, { - "connection_established_seconds": 0.064043208, - "upload_seconds": 0.124796422, - "download_seconds": 0.00004381 + "connectionEstablishedSeconds": 0.064043208, + "uploadSeconds": 0.124796422, + "downloadSeconds": 0.00004381 }, { - "connection_established_seconds": 0.065831828, - "upload_seconds": 0.128577677, - "download_seconds": 0.000060214 + "connectionEstablishedSeconds": 0.065831828, + "uploadSeconds": 0.128577677, + "downloadSeconds": 0.000060214 }, { - "connection_established_seconds": 0.060849511, - "upload_seconds": 0.118586915, - "download_seconds": 0.000043138 + "connectionEstablishedSeconds": 0.060849511, + "uploadSeconds": 0.118586915, + "downloadSeconds": 0.000043138 }, { - "connection_established_seconds": 0.066767867, - "upload_seconds": 0.130452973, - "download_seconds": 0.00004553 + "connectionEstablishedSeconds": 0.066767867, + "uploadSeconds": 0.130452973, + "downloadSeconds": 0.00004553 }, { - "connection_established_seconds": 0.06153828, - "upload_seconds": 0.119777042, - "download_seconds": 0.000074773 + "connectionEstablishedSeconds": 0.06153828, + "uploadSeconds": 0.119777042, + "downloadSeconds": 0.000074773 }, { - "connection_established_seconds": 0.06366191, - "upload_seconds": 0.124192021, - "download_seconds": 0.000047986 + "connectionEstablishedSeconds": 0.06366191, + "uploadSeconds": 0.124192021, + "downloadSeconds": 0.000047986 }, { - "connection_established_seconds": 0.062317532, - "upload_seconds": 0.121469918, - "download_seconds": 0.000050752 + "connectionEstablishedSeconds": 0.062317532, + "uploadSeconds": 0.121469918, + "downloadSeconds": 0.000050752 }, { - "connection_established_seconds": 0.064815759, - "upload_seconds": 0.126497739, - "download_seconds": 0.00004439 + "connectionEstablishedSeconds": 0.064815759, + "uploadSeconds": 0.126497739, + "downloadSeconds": 0.00004439 }, { - "connection_established_seconds": 0.065128152, - "upload_seconds": 0.127083413, - "download_seconds": 0.00004496 + "connectionEstablishedSeconds": 0.065128152, + "uploadSeconds": 0.127083413, + "downloadSeconds": 0.00004496 }, { - "connection_established_seconds": 0.061595343, - "upload_seconds": 0.11990911, - "download_seconds": 0.000049068 + "connectionEstablishedSeconds": 0.061595343, + "uploadSeconds": 0.11990911, + "downloadSeconds": 0.000049068 }, { - "connection_established_seconds": 0.06438175, - "upload_seconds": 0.125755389, - "download_seconds": 0.000054198 + "connectionEstablishedSeconds": 0.06438175, + "uploadSeconds": 0.125755389, + "downloadSeconds": 0.000054198 }, { - "connection_established_seconds": 0.064237585, - "upload_seconds": 0.125526082, - "download_seconds": 0.000045735 + "connectionEstablishedSeconds": 0.064237585, + "uploadSeconds": 0.125526082, + "downloadSeconds": 0.000045735 }, { - "connection_established_seconds": 0.066888061, - "upload_seconds": 0.130603408, - "download_seconds": 0.000062431 + "connectionEstablishedSeconds": 0.066888061, + "uploadSeconds": 0.130603408, + "downloadSeconds": 0.000062431 }, { - "connection_established_seconds": 0.062696867, - "upload_seconds": 0.122318473, - "download_seconds": 0.000060549 + "connectionEstablishedSeconds": 0.062696867, + "uploadSeconds": 0.122318473, + "downloadSeconds": 0.000060549 }, { - "connection_established_seconds": 0.062242458, - "upload_seconds": 0.121236386, - "download_seconds": 0.00004419 + "connectionEstablishedSeconds": 0.062242458, + "uploadSeconds": 0.121236386, + "downloadSeconds": 0.00004419 }, { - "connection_established_seconds": 0.065115077, - "upload_seconds": 0.127120581, - "download_seconds": 0.000043557 + "connectionEstablishedSeconds": 0.065115077, + "uploadSeconds": 0.127120581, + "downloadSeconds": 0.000043557 }, { - "connection_established_seconds": 0.061703831, - "upload_seconds": 0.120399369, - "download_seconds": 0.000076802 + "connectionEstablishedSeconds": 0.061703831, + "uploadSeconds": 0.120399369, + "downloadSeconds": 0.000076802 }, { - "connection_established_seconds": 0.060947387, - "upload_seconds": 0.118735343, - "download_seconds": 0.000041297 + "connectionEstablishedSeconds": 0.060947387, + "uploadSeconds": 0.118735343, + "downloadSeconds": 0.000041297 }, { - "connection_established_seconds": 0.062627883, - "upload_seconds": 0.122338635, - "download_seconds": 0.000062754 + "connectionEstablishedSeconds": 0.062627883, + "uploadSeconds": 0.122338635, + "downloadSeconds": 0.000062754 }, { - "connection_established_seconds": 0.06587111, - "upload_seconds": 0.128622617, - "download_seconds": 0.000071002 + "connectionEstablishedSeconds": 0.06587111, + "uploadSeconds": 0.128622617, + "downloadSeconds": 0.000071002 }, { - "connection_established_seconds": 0.061339484, - "upload_seconds": 0.119520814, - "download_seconds": 0.000044442 + "connectionEstablishedSeconds": 0.061339484, + "uploadSeconds": 0.119520814, + "downloadSeconds": 0.000044442 }, { - "connection_established_seconds": 0.06266093, - "upload_seconds": 0.122319167, - "download_seconds": 0.000045757 + "connectionEstablishedSeconds": 0.06266093, + "uploadSeconds": 0.122319167, + "downloadSeconds": 0.000045757 }, { - "connection_established_seconds": 0.059822555, - "upload_seconds": 0.116451437, - "download_seconds": 0.000051119 + "connectionEstablishedSeconds": 0.059822555, + "uploadSeconds": 0.116451437, + "downloadSeconds": 0.000051119 }, { - "connection_established_seconds": 0.064790049, - "upload_seconds": 0.126349844, - "download_seconds": 0.000054441 + "connectionEstablishedSeconds": 0.064790049, + "uploadSeconds": 0.126349844, + "downloadSeconds": 0.000054441 }, { - "connection_established_seconds": 0.060382326, - "upload_seconds": 0.117494745, - "download_seconds": 0.000066657 + "connectionEstablishedSeconds": 0.060382326, + "uploadSeconds": 0.117494745, + "downloadSeconds": 0.000066657 }, { - "connection_established_seconds": 0.064148746, - "upload_seconds": 0.125341426, - "download_seconds": 0.000068746 + "connectionEstablishedSeconds": 0.064148746, + "uploadSeconds": 0.125341426, + "downloadSeconds": 0.000068746 }, { - "connection_established_seconds": 0.064827261, - "upload_seconds": 0.126498123, - "download_seconds": 0.000046183 + "connectionEstablishedSeconds": 0.064827261, + "uploadSeconds": 0.126498123, + "downloadSeconds": 0.000046183 }, { - "connection_established_seconds": 0.063153185, - "upload_seconds": 0.123135312, - "download_seconds": 0.000056084 + "connectionEstablishedSeconds": 0.063153185, + "uploadSeconds": 0.123135312, + "downloadSeconds": 0.000056084 }, { - "connection_established_seconds": 0.064816062, - "upload_seconds": 0.126277356, - "download_seconds": 0.000057828 + "connectionEstablishedSeconds": 0.064816062, + "uploadSeconds": 0.126277356, + "downloadSeconds": 0.000057828 }, { - "connection_established_seconds": 0.064278199, - "upload_seconds": 0.125414573, - "download_seconds": 0.000056262 + "connectionEstablishedSeconds": 0.064278199, + "uploadSeconds": 0.125414573, + "downloadSeconds": 0.000056262 }, { - "connection_established_seconds": 0.062752747, - "upload_seconds": 0.122380922, - "download_seconds": 0.00004374 + "connectionEstablishedSeconds": 0.062752747, + "uploadSeconds": 0.122380922, + "downloadSeconds": 0.00004374 }, { - "connection_established_seconds": 0.063445685, - "upload_seconds": 0.12384881, - "download_seconds": 0.000058514 + "connectionEstablishedSeconds": 0.063445685, + "uploadSeconds": 0.12384881, + "downloadSeconds": 0.000058514 }, { - "connection_established_seconds": 0.061353473, - "upload_seconds": 0.11954829, - "download_seconds": 0.000046112 + "connectionEstablishedSeconds": 0.061353473, + "uploadSeconds": 0.11954829, + "downloadSeconds": 0.000046112 }, { - "connection_established_seconds": 0.061389462, - "upload_seconds": 0.119577677, - "download_seconds": 0.00004814 + "connectionEstablishedSeconds": 0.061389462, + "uploadSeconds": 0.119577677, + "downloadSeconds": 0.00004814 }, { - "connection_established_seconds": 0.06504855, - "upload_seconds": 0.126994673, - "download_seconds": 0.000045321 + "connectionEstablishedSeconds": 0.06504855, + "uploadSeconds": 0.126994673, + "downloadSeconds": 0.000045321 }, { - "connection_established_seconds": 0.063919567, - "upload_seconds": 0.124684165, - "download_seconds": 0.000046332 + "connectionEstablishedSeconds": 0.063919567, + "uploadSeconds": 0.124684165, + "downloadSeconds": 0.000046332 }, { - "connection_established_seconds": 0.063229164, - "upload_seconds": 0.123321507, - "download_seconds": 0.000067032 + "connectionEstablishedSeconds": 0.063229164, + "uploadSeconds": 0.123321507, + "downloadSeconds": 0.000067032 }, { - "connection_established_seconds": 0.06335159, - "upload_seconds": 0.123595726, - "download_seconds": 0.000041004 + "connectionEstablishedSeconds": 0.06335159, + "uploadSeconds": 0.123595726, + "downloadSeconds": 0.000041004 }, { - "connection_established_seconds": 0.065081469, - "upload_seconds": 0.126797911, - "download_seconds": 0.000043306 + "connectionEstablishedSeconds": 0.065081469, + "uploadSeconds": 0.126797911, + "downloadSeconds": 0.000043306 }, { - "connection_established_seconds": 0.061901279, - "upload_seconds": 0.120697729, - "download_seconds": 0.000047542 + "connectionEstablishedSeconds": 0.061901279, + "uploadSeconds": 0.120697729, + "downloadSeconds": 0.000047542 }, { - "connection_established_seconds": 0.064367226, - "upload_seconds": 0.125627014, - "download_seconds": 0.000045714 + "connectionEstablishedSeconds": 0.064367226, + "uploadSeconds": 0.125627014, + "downloadSeconds": 0.000045714 }, { - "connection_established_seconds": 0.063913815, - "upload_seconds": 0.124644766, - "download_seconds": 0.00004568 + "connectionEstablishedSeconds": 0.063913815, + "uploadSeconds": 0.124644766, + "downloadSeconds": 0.00004568 }, { - "connection_established_seconds": 0.06340771, - "upload_seconds": 0.123482778, - "download_seconds": 0.000044898 + "connectionEstablishedSeconds": 0.06340771, + "uploadSeconds": 0.123482778, + "downloadSeconds": 0.000044898 }, { - "connection_established_seconds": 0.063186517, - "upload_seconds": 0.123321763, - "download_seconds": 0.000058528 + "connectionEstablishedSeconds": 0.063186517, + "uploadSeconds": 0.123321763, + "downloadSeconds": 0.000058528 }, { - "connection_established_seconds": 0.064830366, - "upload_seconds": 0.126475036, - "download_seconds": 0.000043936 + "connectionEstablishedSeconds": 0.064830366, + "uploadSeconds": 0.126475036, + "downloadSeconds": 0.000043936 }, { - "connection_established_seconds": 0.064311509, - "upload_seconds": 0.1256985, - "download_seconds": 0.00004633 + "connectionEstablishedSeconds": 0.064311509, + "uploadSeconds": 0.1256985, + "downloadSeconds": 0.00004633 }, { - "connection_established_seconds": 0.064923178, - "upload_seconds": 0.126746877, - "download_seconds": 0.000053903 + "connectionEstablishedSeconds": 0.064923178, + "uploadSeconds": 0.126746877, + "downloadSeconds": 0.000053903 }, { - "connection_established_seconds": 0.062433534, - "upload_seconds": 0.121735648, - "download_seconds": 0.000042678 + "connectionEstablishedSeconds": 0.062433534, + "uploadSeconds": 0.121735648, + "downloadSeconds": 0.000042678 }, { - "connection_established_seconds": 0.0630008, - "upload_seconds": 0.122846943, - "download_seconds": 0.000069978 + "connectionEstablishedSeconds": 0.0630008, + "uploadSeconds": 0.122846943, + "downloadSeconds": 0.000069978 }, { - "connection_established_seconds": 0.061905677, - "upload_seconds": 0.120652533, - "download_seconds": 0.000041876 + "connectionEstablishedSeconds": 0.061905677, + "uploadSeconds": 0.120652533, + "downloadSeconds": 0.000041876 }, { - "connection_established_seconds": 0.061748607, - "upload_seconds": 0.120433329, - "download_seconds": 0.000051629 + "connectionEstablishedSeconds": 0.061748607, + "uploadSeconds": 0.120433329, + "downloadSeconds": 0.000051629 }, { - "connection_established_seconds": 0.063537551, - "upload_seconds": 0.12409735, - "download_seconds": 0.000048765 + "connectionEstablishedSeconds": 0.063537551, + "uploadSeconds": 0.12409735, + "downloadSeconds": 0.000048765 }, { - "connection_established_seconds": 0.065324316, - "upload_seconds": 0.127421798, - "download_seconds": 0.000050191 + "connectionEstablishedSeconds": 0.065324316, + "uploadSeconds": 0.127421798, + "downloadSeconds": 0.000050191 }, { - "connection_established_seconds": 0.062042321, - "upload_seconds": 0.120701257, - "download_seconds": 0.000083878 + "connectionEstablishedSeconds": 0.062042321, + "uploadSeconds": 0.120701257, + "downloadSeconds": 0.000083878 }, { - "connection_established_seconds": 0.065968655, - "upload_seconds": 0.128594752, - "download_seconds": 0.000046201 + "connectionEstablishedSeconds": 0.065968655, + "uploadSeconds": 0.128594752, + "downloadSeconds": 0.000046201 }, { - "connection_established_seconds": 0.066267306, - "upload_seconds": 0.129164475, - "download_seconds": 0.000047815 + "connectionEstablishedSeconds": 0.066267306, + "uploadSeconds": 0.129164475, + "downloadSeconds": 0.000047815 }, { - "connection_established_seconds": 0.063216526, - "upload_seconds": 0.123040735, - "download_seconds": 0.000048823 + "connectionEstablishedSeconds": 0.063216526, + "uploadSeconds": 0.123040735, + "downloadSeconds": 0.000048823 }, { - "connection_established_seconds": 0.062511579, - "upload_seconds": 0.121695004, - "download_seconds": 0.000098282 + "connectionEstablishedSeconds": 0.062511579, + "uploadSeconds": 0.121695004, + "downloadSeconds": 0.000098282 }, { - "connection_established_seconds": 0.06385184, - "upload_seconds": 0.124698687, - "download_seconds": 0.00004754 + "connectionEstablishedSeconds": 0.06385184, + "uploadSeconds": 0.124698687, + "downloadSeconds": 0.00004754 }, { - "connection_established_seconds": 0.066343358, - "upload_seconds": 0.129372553, - "download_seconds": 0.000045503 + "connectionEstablishedSeconds": 0.066343358, + "uploadSeconds": 0.129372553, + "downloadSeconds": 0.000045503 }, { - "connection_established_seconds": 0.063851167, - "upload_seconds": 0.124576921, - "download_seconds": 0.000073813 + "connectionEstablishedSeconds": 0.063851167, + "uploadSeconds": 0.124576921, + "downloadSeconds": 0.000073813 }, { - "connection_established_seconds": 0.061794819, - "upload_seconds": 0.120476674, - "download_seconds": 0.000054353 + "connectionEstablishedSeconds": 0.061794819, + "uploadSeconds": 0.120476674, + "downloadSeconds": 0.000054353 }, { - "connection_established_seconds": 0.062373556, - "upload_seconds": 0.121513655, - "download_seconds": 0.000064687 + "connectionEstablishedSeconds": 0.062373556, + "uploadSeconds": 0.121513655, + "downloadSeconds": 0.000064687 }, { - "connection_established_seconds": 0.065235287, - "upload_seconds": 0.127276967, - "download_seconds": 0.000043501 + "connectionEstablishedSeconds": 0.065235287, + "uploadSeconds": 0.127276967, + "downloadSeconds": 0.000043501 }, { - "connection_established_seconds": 0.063303476, - "upload_seconds": 0.123601522, - "download_seconds": 0.000054569 + "connectionEstablishedSeconds": 0.063303476, + "uploadSeconds": 0.123601522, + "downloadSeconds": 0.000054569 }, { - "connection_established_seconds": 0.06083302, - "upload_seconds": 0.118595803, - "download_seconds": 0.000044348 + "connectionEstablishedSeconds": 0.06083302, + "uploadSeconds": 0.118595803, + "downloadSeconds": 0.000044348 } ], "implementation": "rust-libp2p-quinn", @@ -2505,502 +2505,502 @@ { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.192846838, - "DownloadSeconds": 0.000037175 + "downloadSeconds": 0.000037175 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.187225653, - "DownloadSeconds": 0.00002122 + "downloadSeconds": 0.00002122 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.180294225, - "DownloadSeconds": 0.000020804 + "downloadSeconds": 0.000020804 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.188550533, - "DownloadSeconds": 0.00001889 + "downloadSeconds": 0.00001889 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.187079499, - "DownloadSeconds": 0.000019885 + "downloadSeconds": 0.000019885 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.183078712, - "DownloadSeconds": 0.000019767 + "downloadSeconds": 0.000019767 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.179674262, - "DownloadSeconds": 0.000018376 + "downloadSeconds": 0.000018376 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.189301769, - "DownloadSeconds": 0.000016046 + "downloadSeconds": 0.000016046 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.179261369, - "DownloadSeconds": 0.000021543 + "downloadSeconds": 0.000021543 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.195516869, - "DownloadSeconds": 0.00002226 + "downloadSeconds": 0.00002226 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.191348801, - "DownloadSeconds": 0.000019777 + "downloadSeconds": 0.000019777 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.187403028, - "DownloadSeconds": 0.000019978 + "downloadSeconds": 0.000019978 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.194552184, - "DownloadSeconds": 0.000027462 + "downloadSeconds": 0.000027462 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.187159984, - "DownloadSeconds": 0.000018502 + "downloadSeconds": 0.000018502 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.190738456, - "DownloadSeconds": 0.000021419 + "downloadSeconds": 0.000021419 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.192054637, - "DownloadSeconds": 0.000026524 + "downloadSeconds": 0.000026524 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.180311141, - "DownloadSeconds": 0.000020699 + "downloadSeconds": 0.000020699 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.191411991, - "DownloadSeconds": 0.000021317 + "downloadSeconds": 0.000021317 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.188145831, - "DownloadSeconds": 0.000020147 + "downloadSeconds": 0.000020147 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.186536958, - "DownloadSeconds": 0.000017486 + "downloadSeconds": 0.000017486 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.18584601, - "DownloadSeconds": 0.000021541 + "downloadSeconds": 0.000021541 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.178354975, - "DownloadSeconds": 0.000020018 + "downloadSeconds": 0.000020018 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.178293565, - "DownloadSeconds": 0.000019429 + "downloadSeconds": 0.000019429 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.186344401, - "DownloadSeconds": 0.000016421 + "downloadSeconds": 0.000016421 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.193071917, - "DownloadSeconds": 0.000019174 + "downloadSeconds": 0.000019174 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.190289691, - "DownloadSeconds": 0.000026341 + "downloadSeconds": 0.000026341 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.188518447, - "DownloadSeconds": 0.000021059 + "downloadSeconds": 0.000021059 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.19045129, - "DownloadSeconds": 0.000026429 + "downloadSeconds": 0.000026429 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.186835899, - "DownloadSeconds": 0.000030147 + "downloadSeconds": 0.000030147 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.183109891, - "DownloadSeconds": 0.000023588 + "downloadSeconds": 0.000023588 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.185059453, - "DownloadSeconds": 0.000023165 + "downloadSeconds": 0.000023165 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.185681056, - "DownloadSeconds": 0.000026437 + "downloadSeconds": 0.000026437 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.183409423, - "DownloadSeconds": 0.000016582 + "downloadSeconds": 0.000016582 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.184370277, - "DownloadSeconds": 0.000026094 + "downloadSeconds": 0.000026094 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.192355075, - "DownloadSeconds": 0.0000183 + "downloadSeconds": 0.0000183 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.184482574, - "DownloadSeconds": 0.000022659 + "downloadSeconds": 0.000022659 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.185725446, - "DownloadSeconds": 0.000016072 + "downloadSeconds": 0.000016072 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.188063944, - "DownloadSeconds": 0.000022491 + "downloadSeconds": 0.000022491 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.180056658, - "DownloadSeconds": 0.000017605 + "downloadSeconds": 0.000017605 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.188372489, - "DownloadSeconds": 0.000022438 + "downloadSeconds": 0.000022438 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.192814141, - "DownloadSeconds": 0.000020323 + "downloadSeconds": 0.000020323 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.187925726, - "DownloadSeconds": 0.000025641 + "downloadSeconds": 0.000025641 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.187622686, - "DownloadSeconds": 0.000018206 + "downloadSeconds": 0.000018206 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.187187961, - "DownloadSeconds": 0.00001939 + "downloadSeconds": 0.00001939 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.182899565, - "DownloadSeconds": 0.000019681 + "downloadSeconds": 0.000019681 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.185843579, - "DownloadSeconds": 0.000019817 + "downloadSeconds": 0.000019817 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.188049356, - "DownloadSeconds": 0.00002526 + "downloadSeconds": 0.00002526 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.195165351, - "DownloadSeconds": 0.000019705 + "downloadSeconds": 0.000019705 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.186840089, - "DownloadSeconds": 0.000020557 + "downloadSeconds": 0.000020557 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.18747958, - "DownloadSeconds": 0.000026473 + "downloadSeconds": 0.000026473 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.185693664, - "DownloadSeconds": 0.000019646 + "downloadSeconds": 0.000019646 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.193451665, - "DownloadSeconds": 0.000022524 + "downloadSeconds": 0.000022524 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.194108328, - "DownloadSeconds": 0.000019511 + "downloadSeconds": 0.000019511 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.189855379, - "DownloadSeconds": 0.000019748 + "downloadSeconds": 0.000019748 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.182903898, - "DownloadSeconds": 0.000017027 + "downloadSeconds": 0.000017027 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.191944715, - "DownloadSeconds": 0.000027435 + "downloadSeconds": 0.000027435 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.191778908, - "DownloadSeconds": 0.000025572 + "downloadSeconds": 0.000025572 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.190211536, - "DownloadSeconds": 0.000026185 + "downloadSeconds": 0.000026185 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.184234077, - "DownloadSeconds": 0.000033723 + "downloadSeconds": 0.000033723 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.185647252, - "DownloadSeconds": 0.000030603 + "downloadSeconds": 0.000030603 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.183308292, - "DownloadSeconds": 0.000022054 + "downloadSeconds": 0.000022054 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.180877607, - "DownloadSeconds": 0.000026982 + "downloadSeconds": 0.000026982 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.180613209, - "DownloadSeconds": 0.000026944 + "downloadSeconds": 0.000026944 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.19123981, - "DownloadSeconds": 0.000022695 + "downloadSeconds": 0.000022695 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.188249077, - "DownloadSeconds": 0.00001968 + "downloadSeconds": 0.00001968 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.188310162, - "DownloadSeconds": 0.000019461 + "downloadSeconds": 0.000019461 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.192340124, - "DownloadSeconds": 0.000024555 + "downloadSeconds": 0.000024555 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.188473932, - "DownloadSeconds": 0.000015915 + "downloadSeconds": 0.000015915 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.186878094, - "DownloadSeconds": 0.000019374 + "downloadSeconds": 0.000019374 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.185679154, - "DownloadSeconds": 0.000016414 + "downloadSeconds": 0.000016414 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.180612714, - "DownloadSeconds": 0.000019835 + "downloadSeconds": 0.000019835 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.192304312, - "DownloadSeconds": 0.000021444 + "downloadSeconds": 0.000021444 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.188282608, - "DownloadSeconds": 0.000017187 + "downloadSeconds": 0.000017187 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.183278194, - "DownloadSeconds": 0.000018204 + "downloadSeconds": 0.000018204 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.184437713, - "DownloadSeconds": 0.000027936 + "downloadSeconds": 0.000027936 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.185529677, - "DownloadSeconds": 0.00001732 + "downloadSeconds": 0.00001732 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.193016666, - "DownloadSeconds": 0.000020431 + "downloadSeconds": 0.000020431 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.195416309, - "DownloadSeconds": 0.000022508 + "downloadSeconds": 0.000022508 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.183699899, - "DownloadSeconds": 0.000021716 + "downloadSeconds": 0.000021716 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.185744257, - "DownloadSeconds": 0.000022602 + "downloadSeconds": 0.000022602 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.189250203, - "DownloadSeconds": 0.000020598 + "downloadSeconds": 0.000020598 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.185181606, - "DownloadSeconds": 0.000019866 + "downloadSeconds": 0.000019866 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.18333426, - "DownloadSeconds": 0.000020514 + "downloadSeconds": 0.000020514 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.193817077, - "DownloadSeconds": 0.000018949 + "downloadSeconds": 0.000018949 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.18357926, - "DownloadSeconds": 0.000024613 + "downloadSeconds": 0.000024613 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.179392491, - "DownloadSeconds": 0.000026305 + "downloadSeconds": 0.000026305 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.190020686, - "DownloadSeconds": 0.000027925 + "downloadSeconds": 0.000027925 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.192780389, - "DownloadSeconds": 0.000021992 + "downloadSeconds": 0.000021992 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.189871699, - "DownloadSeconds": 0.000020478 + "downloadSeconds": 0.000020478 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.195791204, - "DownloadSeconds": 0.000022177 + "downloadSeconds": 0.000022177 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.183957873, - "DownloadSeconds": 0.000020035 + "downloadSeconds": 0.000020035 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.186134924, - "DownloadSeconds": 0.000021316 + "downloadSeconds": 0.000021316 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.186717805, - "DownloadSeconds": 0.000019271 + "downloadSeconds": 0.000019271 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.193530685, - "DownloadSeconds": 0.000022671 + "downloadSeconds": 0.000022671 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.186105862, - "DownloadSeconds": 0.000025304 + "downloadSeconds": 0.000025304 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.18535181, - "DownloadSeconds": 0.000019895 + "downloadSeconds": 0.000019895 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.184994725, - "DownloadSeconds": 0.000025617 + "downloadSeconds": 0.000025617 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.188647571, - "DownloadSeconds": 0.000027329 + "downloadSeconds": 0.000027329 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.190621346, - "DownloadSeconds": 0.000026131 + "downloadSeconds": 0.000026131 }, { "connectionEstablishedSeconds": 0, "uploadSeconds": 0.185577895, - "DownloadSeconds": 0.000022229 + "downloadSeconds": 0.000022229 } ], "implementation": "https", @@ -3012,502 +3012,502 @@ { "connectionEstablishedSeconds": 0.246982543, "uploadSeconds": 0.000002333, - "DownloadSeconds": 0.060636799 + "downloadSeconds": 0.060636799 }, { "connectionEstablishedSeconds": 0.254987407, "uploadSeconds": 0.000002637, - "DownloadSeconds": 0.125583931 + "downloadSeconds": 0.125583931 }, { "connectionEstablishedSeconds": 0.252265474, "uploadSeconds": 0.000003042, - "DownloadSeconds": 0.124496056 + "downloadSeconds": 0.124496056 }, { "connectionEstablishedSeconds": 0.257593737, "uploadSeconds": 0.000001947, - "DownloadSeconds": 0.063516924 + "downloadSeconds": 0.063516924 }, { "connectionEstablishedSeconds": 0.249634131, "uploadSeconds": 0.000002236, - "DownloadSeconds": 0.061606688 + "downloadSeconds": 0.061606688 }, { "connectionEstablishedSeconds": 0.256219747, "uploadSeconds": 0.000002639, - "DownloadSeconds": 0.063248102 + "downloadSeconds": 0.063248102 }, { "connectionEstablishedSeconds": 0.252442248, "uploadSeconds": 0.000002197, - "DownloadSeconds": 0.062669369 + "downloadSeconds": 0.062669369 }, { "connectionEstablishedSeconds": 0.259427625, "uploadSeconds": 0.000003211, - "DownloadSeconds": 0.127981684 + "downloadSeconds": 0.127981684 }, { "connectionEstablishedSeconds": 0.246514725, "uploadSeconds": 0.000002665, - "DownloadSeconds": 0.121201652 + "downloadSeconds": 0.121201652 }, { "connectionEstablishedSeconds": 0.256074228, "uploadSeconds": 0.000002774, - "DownloadSeconds": 0.063105187 + "downloadSeconds": 0.063105187 }, { "connectionEstablishedSeconds": 0.257314965, "uploadSeconds": 0.000002128, - "DownloadSeconds": 0.063868077 + "downloadSeconds": 0.063868077 }, { "connectionEstablishedSeconds": 0.252954088, "uploadSeconds": 0.000002252, - "DownloadSeconds": 0.062319815 + "downloadSeconds": 0.062319815 }, { "connectionEstablishedSeconds": 0.247593448, "uploadSeconds": 0.000002732, - "DownloadSeconds": 0.061417523 + "downloadSeconds": 0.061417523 }, { "connectionEstablishedSeconds": 0.248485597, "uploadSeconds": 0.000002477, - "DownloadSeconds": 0.122739395 + "downloadSeconds": 0.122739395 }, { "connectionEstablishedSeconds": 0.252755774, "uploadSeconds": 0.000003128, - "DownloadSeconds": 0.12465053 + "downloadSeconds": 0.12465053 }, { "connectionEstablishedSeconds": 0.24678383, "uploadSeconds": 0.000003171, - "DownloadSeconds": 0.061170425 + "downloadSeconds": 0.061170425 }, { "connectionEstablishedSeconds": 0.256799921, "uploadSeconds": 0.000002516, - "DownloadSeconds": 0.063288139 + "downloadSeconds": 0.063288139 }, { "connectionEstablishedSeconds": 0.258533884, "uploadSeconds": 0.000002448, - "DownloadSeconds": 0.063377461 + "downloadSeconds": 0.063377461 }, { "connectionEstablishedSeconds": 0.240389808, "uploadSeconds": 0.000002816, - "DownloadSeconds": 0.117642179 + "downloadSeconds": 0.117642179 }, { "connectionEstablishedSeconds": 0.252817235, "uploadSeconds": 0.000002452, - "DownloadSeconds": 0.123930684 + "downloadSeconds": 0.123930684 }, { "connectionEstablishedSeconds": 0.253777012, "uploadSeconds": 0.000002057, - "DownloadSeconds": 0.062848806 + "downloadSeconds": 0.062848806 }, { "connectionEstablishedSeconds": 0.245131591, "uploadSeconds": 0.000003236, - "DownloadSeconds": 0.120963083 + "downloadSeconds": 0.120963083 }, { "connectionEstablishedSeconds": 0.240467804, "uploadSeconds": 0.000004461, - "DownloadSeconds": 0.118627047 + "downloadSeconds": 0.118627047 }, { "connectionEstablishedSeconds": 0.255467807, "uploadSeconds": 0.000002626, - "DownloadSeconds": 0.062827272 + "downloadSeconds": 0.062827272 }, { "connectionEstablishedSeconds": 0.249338884, "uploadSeconds": 0.000002342, - "DownloadSeconds": 0.121499683 + "downloadSeconds": 0.121499683 }, { "connectionEstablishedSeconds": 0.252348186, "uploadSeconds": 0.000003027, - "DownloadSeconds": 0.062162683 + "downloadSeconds": 0.062162683 }, { "connectionEstablishedSeconds": 0.249576434, "uploadSeconds": 0.00000247, - "DownloadSeconds": 0.061533785 + "downloadSeconds": 0.061533785 }, { "connectionEstablishedSeconds": 0.25301387, "uploadSeconds": 0.000002702, - "DownloadSeconds": 0.062807451 + "downloadSeconds": 0.062807451 }, { "connectionEstablishedSeconds": 0.247662665, "uploadSeconds": 0.000002964, - "DownloadSeconds": 0.122013051 + "downloadSeconds": 0.122013051 }, { "connectionEstablishedSeconds": 0.250252663, "uploadSeconds": 0.000002914, - "DownloadSeconds": 0.123407763 + "downloadSeconds": 0.123407763 }, { "connectionEstablishedSeconds": 0.262054694, "uploadSeconds": 0.000002659, - "DownloadSeconds": 0.06503719 + "downloadSeconds": 0.06503719 }, { "connectionEstablishedSeconds": 0.25894961, "uploadSeconds": 0.000003183, - "DownloadSeconds": 0.063781309 + "downloadSeconds": 0.063781309 }, { "connectionEstablishedSeconds": 0.253447479, "uploadSeconds": 0.000005445, - "DownloadSeconds": 0.125038249 + "downloadSeconds": 0.125038249 }, { "connectionEstablishedSeconds": 0.25890693, "uploadSeconds": 0.000002949, - "DownloadSeconds": 0.064290345 + "downloadSeconds": 0.064290345 }, { "connectionEstablishedSeconds": 0.238136713, "uploadSeconds": 0.000002751, - "DownloadSeconds": 0.058523439 + "downloadSeconds": 0.058523439 }, { "connectionEstablishedSeconds": 0.238031833, "uploadSeconds": 0.00000201, - "DownloadSeconds": 0.058612018 + "downloadSeconds": 0.058612018 }, { "connectionEstablishedSeconds": 0.243987405, "uploadSeconds": 0.000002645, - "DownloadSeconds": 0.120430154 + "downloadSeconds": 0.120430154 }, { "connectionEstablishedSeconds": 0.25092512, "uploadSeconds": 0.000003203, - "DownloadSeconds": 0.062239462 + "downloadSeconds": 0.062239462 }, { "connectionEstablishedSeconds": 0.241461478, "uploadSeconds": 0.000002746, - "DownloadSeconds": 0.05956789 + "downloadSeconds": 0.05956789 }, { "connectionEstablishedSeconds": 0.251482992, "uploadSeconds": 0.00000234, - "DownloadSeconds": 0.061933183 + "downloadSeconds": 0.061933183 }, { "connectionEstablishedSeconds": 0.247927088, "uploadSeconds": 0.000002999, - "DownloadSeconds": 0.061510988 + "downloadSeconds": 0.061510988 }, { "connectionEstablishedSeconds": 0.245592314, "uploadSeconds": 0.000003012, - "DownloadSeconds": 0.06085414 + "downloadSeconds": 0.06085414 }, { "connectionEstablishedSeconds": 0.249204108, "uploadSeconds": 0.000002654, - "DownloadSeconds": 0.06184334 + "downloadSeconds": 0.06184334 }, { "connectionEstablishedSeconds": 0.257982473, "uploadSeconds": 0.000002161, - "DownloadSeconds": 0.064057546 + "downloadSeconds": 0.064057546 }, { "connectionEstablishedSeconds": 0.253774449, "uploadSeconds": 0.000002049, - "DownloadSeconds": 0.062934467 + "downloadSeconds": 0.062934467 }, { "connectionEstablishedSeconds": 0.247291556, "uploadSeconds": 0.000002676, - "DownloadSeconds": 0.060877055 + "downloadSeconds": 0.060877055 }, { "connectionEstablishedSeconds": 0.255902439, "uploadSeconds": 0.000002621, - "DownloadSeconds": 0.063567814 + "downloadSeconds": 0.063567814 }, { "connectionEstablishedSeconds": 0.254482313, "uploadSeconds": 0.000002629, - "DownloadSeconds": 0.063151743 + "downloadSeconds": 0.063151743 }, { "connectionEstablishedSeconds": 0.240553161, "uploadSeconds": 0.000002261, - "DownloadSeconds": 0.059636037 + "downloadSeconds": 0.059636037 }, { "connectionEstablishedSeconds": 0.248356912, "uploadSeconds": 0.000002729, - "DownloadSeconds": 0.061578029 + "downloadSeconds": 0.061578029 }, { "connectionEstablishedSeconds": 0.242345309, "uploadSeconds": 0.00000288, - "DownloadSeconds": 0.060093916 + "downloadSeconds": 0.060093916 }, { "connectionEstablishedSeconds": 0.259227269, "uploadSeconds": 0.000005216, - "DownloadSeconds": 0.1279868 + "downloadSeconds": 0.1279868 }, { "connectionEstablishedSeconds": 0.259282408, "uploadSeconds": 0.000002551, - "DownloadSeconds": 0.063973717 + "downloadSeconds": 0.063973717 }, { "connectionEstablishedSeconds": 0.25319996, "uploadSeconds": 0.000002716, - "DownloadSeconds": 0.125036282 + "downloadSeconds": 0.125036282 }, { "connectionEstablishedSeconds": 0.262780483, "uploadSeconds": 0.000002704, - "DownloadSeconds": 0.064785965 + "downloadSeconds": 0.064785965 }, { "connectionEstablishedSeconds": 0.240429364, "uploadSeconds": 0.000002006, - "DownloadSeconds": 0.059475532 + "downloadSeconds": 0.059475532 }, { "connectionEstablishedSeconds": 0.252537049, "uploadSeconds": 0.000002748, - "DownloadSeconds": 0.06261609 + "downloadSeconds": 0.06261609 }, { "connectionEstablishedSeconds": 0.249712979, "uploadSeconds": 0.000002727, - "DownloadSeconds": 0.061898698 + "downloadSeconds": 0.061898698 }, { "connectionEstablishedSeconds": 0.248365572, "uploadSeconds": 0.000003349, - "DownloadSeconds": 0.061521647 + "downloadSeconds": 0.061521647 }, { "connectionEstablishedSeconds": 0.247755439, "uploadSeconds": 0.000002551, - "DownloadSeconds": 0.061002033 + "downloadSeconds": 0.061002033 }, { "connectionEstablishedSeconds": 0.246475735, "uploadSeconds": 0.000002701, - "DownloadSeconds": 0.061086692 + "downloadSeconds": 0.061086692 }, { "connectionEstablishedSeconds": 0.259489949, "uploadSeconds": 0.000001757, - "DownloadSeconds": 0.063943852 + "downloadSeconds": 0.063943852 }, { "connectionEstablishedSeconds": 0.258184785, "uploadSeconds": 0.000001873, - "DownloadSeconds": 0.063650594 + "downloadSeconds": 0.063650594 }, { "connectionEstablishedSeconds": 0.261070592, "uploadSeconds": 0.000002752, - "DownloadSeconds": 0.064366046 + "downloadSeconds": 0.064366046 }, { "connectionEstablishedSeconds": 0.250568312, "uploadSeconds": 0.000002142, - "DownloadSeconds": 0.123570903 + "downloadSeconds": 0.123570903 }, { "connectionEstablishedSeconds": 0.255666103, "uploadSeconds": 0.000003077, - "DownloadSeconds": 0.063432424 + "downloadSeconds": 0.063432424 }, { "connectionEstablishedSeconds": 0.248139992, "uploadSeconds": 0.000002787, - "DownloadSeconds": 0.122421755 + "downloadSeconds": 0.122421755 }, { "connectionEstablishedSeconds": 0.244705897, "uploadSeconds": 0.000002085, - "DownloadSeconds": 0.060794925 + "downloadSeconds": 0.060794925 }, { "connectionEstablishedSeconds": 0.257247483, "uploadSeconds": 0.000002563, - "DownloadSeconds": 0.12735091 + "downloadSeconds": 0.12735091 }, { "connectionEstablishedSeconds": 0.249235758, "uploadSeconds": 0.00000251, - "DownloadSeconds": 0.061837351 + "downloadSeconds": 0.061837351 }, { "connectionEstablishedSeconds": 0.255130828, "uploadSeconds": 0.000002263, - "DownloadSeconds": 0.063169157 + "downloadSeconds": 0.063169157 }, { "connectionEstablishedSeconds": 0.251280256, "uploadSeconds": 0.000002482, - "DownloadSeconds": 0.123259335 + "downloadSeconds": 0.123259335 }, { "connectionEstablishedSeconds": 0.251983159, "uploadSeconds": 0.00000274, - "DownloadSeconds": 0.124431896 + "downloadSeconds": 0.124431896 }, { "connectionEstablishedSeconds": 0.245704446, "uploadSeconds": 0.000001875, - "DownloadSeconds": 0.120470878 + "downloadSeconds": 0.120470878 }, { "connectionEstablishedSeconds": 0.250201435, "uploadSeconds": 0.000002586, - "DownloadSeconds": 0.061731154 + "downloadSeconds": 0.061731154 }, { "connectionEstablishedSeconds": 0.238093943, "uploadSeconds": 0.00000245, - "DownloadSeconds": 0.058674458 + "downloadSeconds": 0.058674458 }, { "connectionEstablishedSeconds": 0.250553571, "uploadSeconds": 0.000002285, - "DownloadSeconds": 0.061589498 + "downloadSeconds": 0.061589498 }, { "connectionEstablishedSeconds": 0.244439626, "uploadSeconds": 0.000003027, - "DownloadSeconds": 0.060154682 + "downloadSeconds": 0.060154682 }, { "connectionEstablishedSeconds": 0.242412471, "uploadSeconds": 0.000002316, - "DownloadSeconds": 0.059615017 + "downloadSeconds": 0.059615017 }, { "connectionEstablishedSeconds": 0.25048618, "uploadSeconds": 0.000002677, - "DownloadSeconds": 0.061737041 + "downloadSeconds": 0.061737041 }, { "connectionEstablishedSeconds": 0.258953892, "uploadSeconds": 0.000002587, - "DownloadSeconds": 0.063803021 + "downloadSeconds": 0.063803021 }, { "connectionEstablishedSeconds": 0.250412263, "uploadSeconds": 0.0000034, - "DownloadSeconds": 0.12281949 + "downloadSeconds": 0.12281949 }, { "connectionEstablishedSeconds": 0.254144016, "uploadSeconds": 0.000002754, - "DownloadSeconds": 0.06300859 + "downloadSeconds": 0.06300859 }, { "connectionEstablishedSeconds": 0.260298291, "uploadSeconds": 0.000002975, - "DownloadSeconds": 0.064623551 + "downloadSeconds": 0.064623551 }, { "connectionEstablishedSeconds": 0.243397209, "uploadSeconds": 0.000002481, - "DownloadSeconds": 0.059877624 + "downloadSeconds": 0.059877624 }, { "connectionEstablishedSeconds": 0.24772037, "uploadSeconds": 0.000002941, - "DownloadSeconds": 0.060984094 + "downloadSeconds": 0.060984094 }, { "connectionEstablishedSeconds": 0.253506036, "uploadSeconds": 0.000002337, - "DownloadSeconds": 0.062951461 + "downloadSeconds": 0.062951461 }, { "connectionEstablishedSeconds": 0.254973803, "uploadSeconds": 0.000002862, - "DownloadSeconds": 0.062826139 + "downloadSeconds": 0.062826139 }, { "connectionEstablishedSeconds": 0.255472034, "uploadSeconds": 0.000002332, - "DownloadSeconds": 0.063002547 + "downloadSeconds": 0.063002547 }, { "connectionEstablishedSeconds": 0.256008456, "uploadSeconds": 0.000002753, - "DownloadSeconds": 0.126330132 + "downloadSeconds": 0.126330132 }, { "connectionEstablishedSeconds": 0.258165071, "uploadSeconds": 0.000002056, - "DownloadSeconds": 0.063652588 + "downloadSeconds": 0.063652588 }, { "connectionEstablishedSeconds": 0.25799469, "uploadSeconds": 0.000003118, - "DownloadSeconds": 0.126573181 + "downloadSeconds": 0.126573181 }, { "connectionEstablishedSeconds": 0.235590117, "uploadSeconds": 0.000002624, - "DownloadSeconds": 0.057922146 + "downloadSeconds": 0.057922146 }, { "connectionEstablishedSeconds": 0.243184757, "uploadSeconds": 0.000002738, - "DownloadSeconds": 0.059965651 + "downloadSeconds": 0.059965651 }, { "connectionEstablishedSeconds": 0.248694484, "uploadSeconds": 0.000002604, - "DownloadSeconds": 0.061723598 + "downloadSeconds": 0.061723598 }, { "connectionEstablishedSeconds": 0.251370563, "uploadSeconds": 0.000002583, - "DownloadSeconds": 0.06197375 + "downloadSeconds": 0.06197375 }, { "connectionEstablishedSeconds": 0.242432428, "uploadSeconds": 0.000002486, - "DownloadSeconds": 0.060143536 + "downloadSeconds": 0.060143536 }, { "connectionEstablishedSeconds": 0.243723796, "uploadSeconds": 0.000002083, - "DownloadSeconds": 0.060037652 + "downloadSeconds": 0.060037652 }, { "connectionEstablishedSeconds": 0.246442851, "uploadSeconds": 0.000002077, - "DownloadSeconds": 0.060712241 + "downloadSeconds": 0.060712241 }, { "connectionEstablishedSeconds": 0.246539718, "uploadSeconds": 0.000002761, - "DownloadSeconds": 0.061199242 + "downloadSeconds": 0.061199242 } ], "implementation": "go-libp2p", @@ -3519,502 +3519,502 @@ { "connectionEstablishedSeconds": 0.132559832, "uploadSeconds": 0.000001845, - "DownloadSeconds": 0.064081759 + "downloadSeconds": 0.064081759 }, { "connectionEstablishedSeconds": 0.127538862, "uploadSeconds": 0.000001708, - "DownloadSeconds": 0.062170888 + "downloadSeconds": 0.062170888 }, { "connectionEstablishedSeconds": 0.130805692, "uploadSeconds": 0.000001773, - "DownloadSeconds": 0.062955061 + "downloadSeconds": 0.062955061 }, { "connectionEstablishedSeconds": 0.127036422, "uploadSeconds": 0.000001649, - "DownloadSeconds": 0.061978598 + "downloadSeconds": 0.061978598 }, { "connectionEstablishedSeconds": 0.127375116, "uploadSeconds": 0.000001559, - "DownloadSeconds": 0.061272425 + "downloadSeconds": 0.061272425 }, { "connectionEstablishedSeconds": 0.127377704, "uploadSeconds": 0.000001414, - "DownloadSeconds": 0.062145909 + "downloadSeconds": 0.062145909 }, { "connectionEstablishedSeconds": 0.125731216, "uploadSeconds": 0.000001507, - "DownloadSeconds": 0.06135568 + "downloadSeconds": 0.06135568 }, { "connectionEstablishedSeconds": 0.133088001, "uploadSeconds": 0.000001788, - "DownloadSeconds": 0.064553093 + "downloadSeconds": 0.064553093 }, { "connectionEstablishedSeconds": 0.129277284, "uploadSeconds": 0.000001466, - "DownloadSeconds": 0.062234834 + "downloadSeconds": 0.062234834 }, { "connectionEstablishedSeconds": 0.119158102, "uploadSeconds": 0.000001566, - "DownloadSeconds": 0.058061112 + "downloadSeconds": 0.058061112 }, { "connectionEstablishedSeconds": 0.130364186, "uploadSeconds": 0.000001615, - "DownloadSeconds": 0.062807167 + "downloadSeconds": 0.062807167 }, { "connectionEstablishedSeconds": 0.127736162, "uploadSeconds": 0.000001415, - "DownloadSeconds": 0.061511958 + "downloadSeconds": 0.061511958 }, { "connectionEstablishedSeconds": 0.1278484, "uploadSeconds": 0.000001513, - "DownloadSeconds": 0.061515556 + "downloadSeconds": 0.061515556 }, { "connectionEstablishedSeconds": 0.128970078, "uploadSeconds": 0.000001392, - "DownloadSeconds": 0.061986167 + "downloadSeconds": 0.061986167 }, { "connectionEstablishedSeconds": 0.128039225, "uploadSeconds": 0.000001606, - "DownloadSeconds": 0.06170743 + "downloadSeconds": 0.06170743 }, { "connectionEstablishedSeconds": 0.127508048, "uploadSeconds": 0.000001458, - "DownloadSeconds": 0.062212279 + "downloadSeconds": 0.062212279 }, { "connectionEstablishedSeconds": 0.133455738, "uploadSeconds": 0.00000138, - "DownloadSeconds": 0.064288489 + "downloadSeconds": 0.064288489 }, { "connectionEstablishedSeconds": 0.129520369, "uploadSeconds": 0.000001526, - "DownloadSeconds": 0.062379621 + "downloadSeconds": 0.062379621 }, { "connectionEstablishedSeconds": 0.126453297, "uploadSeconds": 0.000001579, - "DownloadSeconds": 0.061700191 + "downloadSeconds": 0.061700191 }, { "connectionEstablishedSeconds": 0.129627112, "uploadSeconds": 0.000001465, - "DownloadSeconds": 0.062720055 + "downloadSeconds": 0.062720055 }, { "connectionEstablishedSeconds": 0.134000827, "uploadSeconds": 0.000001321, - "DownloadSeconds": 0.064357089 + "downloadSeconds": 0.064357089 }, { "connectionEstablishedSeconds": 0.124745152, "uploadSeconds": 0.000001493, - "DownloadSeconds": 0.060808097 + "downloadSeconds": 0.060808097 }, { "connectionEstablishedSeconds": 0.127733997, "uploadSeconds": 0.000002662, - "DownloadSeconds": 0.060965292 + "downloadSeconds": 0.060965292 }, { "connectionEstablishedSeconds": 0.124760848, "uploadSeconds": 0.000001412, - "DownloadSeconds": 0.06091855 + "downloadSeconds": 0.06091855 }, { "connectionEstablishedSeconds": 0.133028696, "uploadSeconds": 0.000001889, - "DownloadSeconds": 0.064165736 + "downloadSeconds": 0.064165736 }, { "connectionEstablishedSeconds": 0.131580179, "uploadSeconds": 0.000009386, - "DownloadSeconds": 0.063439782 + "downloadSeconds": 0.063439782 }, { "connectionEstablishedSeconds": 0.13153408, "uploadSeconds": 0.000001474, - "DownloadSeconds": 0.063494493 + "downloadSeconds": 0.063494493 }, { "connectionEstablishedSeconds": 0.133677377, "uploadSeconds": 0.00000147, - "DownloadSeconds": 0.064309541 + "downloadSeconds": 0.064309541 }, { "connectionEstablishedSeconds": 0.129927372, "uploadSeconds": 0.000001525, - "DownloadSeconds": 0.063450867 + "downloadSeconds": 0.063450867 }, { "connectionEstablishedSeconds": 0.131694963, "uploadSeconds": 0.000001381, - "DownloadSeconds": 0.063434821 + "downloadSeconds": 0.063434821 }, { "connectionEstablishedSeconds": 0.127899617, "uploadSeconds": 0.000001411, - "DownloadSeconds": 0.061525214 + "downloadSeconds": 0.061525214 }, { "connectionEstablishedSeconds": 0.130203328, "uploadSeconds": 0.000001495, - "DownloadSeconds": 0.062757457 + "downloadSeconds": 0.062757457 }, { "connectionEstablishedSeconds": 0.128960662, "uploadSeconds": 0.000001403, - "DownloadSeconds": 0.062074948 + "downloadSeconds": 0.062074948 }, { "connectionEstablishedSeconds": 0.130867787, "uploadSeconds": 0.000001446, - "DownloadSeconds": 0.062989249 + "downloadSeconds": 0.062989249 }, { "connectionEstablishedSeconds": 0.127509261, "uploadSeconds": 0.000001399, - "DownloadSeconds": 0.061493018 + "downloadSeconds": 0.061493018 }, { "connectionEstablishedSeconds": 0.125964276, "uploadSeconds": 0.000001522, - "DownloadSeconds": 0.060573677 + "downloadSeconds": 0.060573677 }, { "connectionEstablishedSeconds": 0.127927289, "uploadSeconds": 0.000001423, - "DownloadSeconds": 0.06157576 + "downloadSeconds": 0.06157576 }, { "connectionEstablishedSeconds": 0.130932601, "uploadSeconds": 0.000001443, - "DownloadSeconds": 0.063025361 + "downloadSeconds": 0.063025361 }, { "connectionEstablishedSeconds": 0.131325237, "uploadSeconds": 0.000001453, - "DownloadSeconds": 0.063283316 + "downloadSeconds": 0.063283316 }, { "connectionEstablishedSeconds": 0.131567611, "uploadSeconds": 0.000001482, - "DownloadSeconds": 0.063480748 + "downloadSeconds": 0.063480748 }, { "connectionEstablishedSeconds": 0.127139527, "uploadSeconds": 0.000001498, - "DownloadSeconds": 0.062091433 + "downloadSeconds": 0.062091433 }, { "connectionEstablishedSeconds": 0.130935865, "uploadSeconds": 0.000001494, - "DownloadSeconds": 0.063252549 + "downloadSeconds": 0.063252549 }, { "connectionEstablishedSeconds": 0.126708782, "uploadSeconds": 0.000001385, - "DownloadSeconds": 0.061000908 + "downloadSeconds": 0.061000908 }, { "connectionEstablishedSeconds": 0.131170813, "uploadSeconds": 0.000001618, - "DownloadSeconds": 0.063156049 + "downloadSeconds": 0.063156049 }, { "connectionEstablishedSeconds": 0.127562236, "uploadSeconds": 0.000001422, - "DownloadSeconds": 0.061339877 + "downloadSeconds": 0.061339877 }, { "connectionEstablishedSeconds": 0.127373514, "uploadSeconds": 0.000001411, - "DownloadSeconds": 0.062119254 + "downloadSeconds": 0.062119254 }, { "connectionEstablishedSeconds": 0.124467553, "uploadSeconds": 0.000001406, - "DownloadSeconds": 0.060622762 + "downloadSeconds": 0.060622762 }, { "connectionEstablishedSeconds": 0.130264415, "uploadSeconds": 0.000001423, - "DownloadSeconds": 0.063243987 + "downloadSeconds": 0.063243987 }, { "connectionEstablishedSeconds": 0.129495604, "uploadSeconds": 0.000001529, - "DownloadSeconds": 0.062278168 + "downloadSeconds": 0.062278168 }, { "connectionEstablishedSeconds": 0.130634463, "uploadSeconds": 0.000001486, - "DownloadSeconds": 0.062895839 + "downloadSeconds": 0.062895839 }, { "connectionEstablishedSeconds": 0.130588454, "uploadSeconds": 0.000001659, - "DownloadSeconds": 0.062499732 + "downloadSeconds": 0.062499732 }, { "connectionEstablishedSeconds": 0.131876225, "uploadSeconds": 0.000001316, - "DownloadSeconds": 0.064669517 + "downloadSeconds": 0.064669517 }, { "connectionEstablishedSeconds": 0.1300481, "uploadSeconds": 0.000001564, - "DownloadSeconds": 0.062634327 + "downloadSeconds": 0.062634327 }, { "connectionEstablishedSeconds": 0.125223091, "uploadSeconds": 0.000001481, - "DownloadSeconds": 0.061157475 + "downloadSeconds": 0.061157475 }, { "connectionEstablishedSeconds": 0.129800235, "uploadSeconds": 0.000001461, - "DownloadSeconds": 0.062495938 + "downloadSeconds": 0.062495938 }, { "connectionEstablishedSeconds": 0.128935513, "uploadSeconds": 0.000001289, - "DownloadSeconds": 0.062087854 + "downloadSeconds": 0.062087854 }, { "connectionEstablishedSeconds": 0.131783337, "uploadSeconds": 0.000001504, - "DownloadSeconds": 0.063374993 + "downloadSeconds": 0.063374993 }, { "connectionEstablishedSeconds": 0.128899161, "uploadSeconds": 0.000001482, - "DownloadSeconds": 0.062178416 + "downloadSeconds": 0.062178416 }, { "connectionEstablishedSeconds": 0.131739113, "uploadSeconds": 0.000001386, - "DownloadSeconds": 0.063473909 + "downloadSeconds": 0.063473909 }, { "connectionEstablishedSeconds": 0.132251676, "uploadSeconds": 0.000001453, - "DownloadSeconds": 0.06368673 + "downloadSeconds": 0.06368673 }, { "connectionEstablishedSeconds": 0.131773613, "uploadSeconds": 0.000001447, - "DownloadSeconds": 0.063479142 + "downloadSeconds": 0.063479142 }, { "connectionEstablishedSeconds": 0.127176818, "uploadSeconds": 0.0000014, - "DownloadSeconds": 0.061173964 + "downloadSeconds": 0.061173964 }, { "connectionEstablishedSeconds": 0.128782265, "uploadSeconds": 0.000001717, - "DownloadSeconds": 0.06190894 + "downloadSeconds": 0.06190894 }, { "connectionEstablishedSeconds": 0.126829132, "uploadSeconds": 0.00000196, - "DownloadSeconds": 0.060960895 + "downloadSeconds": 0.060960895 }, { "connectionEstablishedSeconds": 0.130953162, "uploadSeconds": 0.000001626, - "DownloadSeconds": 0.062989085 + "downloadSeconds": 0.062989085 }, { "connectionEstablishedSeconds": 0.120174779, "uploadSeconds": 0.000001516, - "DownloadSeconds": 0.058639118 + "downloadSeconds": 0.058639118 }, { "connectionEstablishedSeconds": 0.12485797, "uploadSeconds": 0.000001441, - "DownloadSeconds": 0.061003542 + "downloadSeconds": 0.061003542 }, { "connectionEstablishedSeconds": 0.124848685, "uploadSeconds": 0.000001469, - "DownloadSeconds": 0.060034978 + "downloadSeconds": 0.060034978 }, { "connectionEstablishedSeconds": 0.131629743, "uploadSeconds": 0.000001449, - "DownloadSeconds": 0.063505673 + "downloadSeconds": 0.063505673 }, { "connectionEstablishedSeconds": 0.118768582, "uploadSeconds": 0.000001448, - "DownloadSeconds": 0.057896358 + "downloadSeconds": 0.057896358 }, { "connectionEstablishedSeconds": 0.132635801, "uploadSeconds": 0.000001474, - "DownloadSeconds": 0.063932235 + "downloadSeconds": 0.063932235 }, { "connectionEstablishedSeconds": 0.126282233, "uploadSeconds": 0.000001428, - "DownloadSeconds": 0.061655677 + "downloadSeconds": 0.061655677 }, { "connectionEstablishedSeconds": 0.130103183, "uploadSeconds": 0.000001461, - "DownloadSeconds": 0.063143473 + "downloadSeconds": 0.063143473 }, { "connectionEstablishedSeconds": 0.126639755, "uploadSeconds": 0.000001414, - "DownloadSeconds": 0.06089211 + "downloadSeconds": 0.06089211 }, { "connectionEstablishedSeconds": 0.130654578, "uploadSeconds": 0.000001511, - "DownloadSeconds": 0.062895361 + "downloadSeconds": 0.062895361 }, { "connectionEstablishedSeconds": 0.130549247, "uploadSeconds": 0.000001451, - "DownloadSeconds": 0.063388518 + "downloadSeconds": 0.063388518 }, { "connectionEstablishedSeconds": 0.121943873, "uploadSeconds": 0.000001546, - "DownloadSeconds": 0.05863414 + "downloadSeconds": 0.05863414 }, { "connectionEstablishedSeconds": 0.128689427, "uploadSeconds": 0.000001541, - "DownloadSeconds": 0.061924851 + "downloadSeconds": 0.061924851 }, { "connectionEstablishedSeconds": 0.125593774, "uploadSeconds": 0.000001388, - "DownloadSeconds": 0.061346375 + "downloadSeconds": 0.061346375 }, { "connectionEstablishedSeconds": 0.126114403, "uploadSeconds": 0.000001478, - "DownloadSeconds": 0.061483351 + "downloadSeconds": 0.061483351 }, { "connectionEstablishedSeconds": 0.124927605, "uploadSeconds": 0.000001518, - "DownloadSeconds": 0.060145482 + "downloadSeconds": 0.060145482 }, { "connectionEstablishedSeconds": 0.128973538, "uploadSeconds": 0.00000153, - "DownloadSeconds": 0.062205281 + "downloadSeconds": 0.062205281 }, { "connectionEstablishedSeconds": 0.128944333, "uploadSeconds": 0.000001505, - "DownloadSeconds": 0.062992906 + "downloadSeconds": 0.062992906 }, { "connectionEstablishedSeconds": 0.128396058, "uploadSeconds": 0.000001591, - "DownloadSeconds": 0.061744308 + "downloadSeconds": 0.061744308 }, { "connectionEstablishedSeconds": 0.123635078, "uploadSeconds": 0.000001673, - "DownloadSeconds": 0.059731873 + "downloadSeconds": 0.059731873 }, { "connectionEstablishedSeconds": 0.126869663, "uploadSeconds": 0.000001602, - "DownloadSeconds": 0.060971931 + "downloadSeconds": 0.060971931 }, { "connectionEstablishedSeconds": 0.129249375, "uploadSeconds": 0.00000168, - "DownloadSeconds": 0.062236365 + "downloadSeconds": 0.062236365 }, { "connectionEstablishedSeconds": 0.129164979, "uploadSeconds": 0.000001724, - "DownloadSeconds": 0.063029812 + "downloadSeconds": 0.063029812 }, { "connectionEstablishedSeconds": 0.133137747, "uploadSeconds": 0.00000146, - "DownloadSeconds": 0.064202058 + "downloadSeconds": 0.064202058 }, { "connectionEstablishedSeconds": 0.126919816, "uploadSeconds": 0.000001559, - "DownloadSeconds": 0.061051216 + "downloadSeconds": 0.061051216 }, { "connectionEstablishedSeconds": 0.129161057, "uploadSeconds": 0.000001515, - "DownloadSeconds": 0.062148438 + "downloadSeconds": 0.062148438 }, { "connectionEstablishedSeconds": 0.12643837, "uploadSeconds": 0.000001527, - "DownloadSeconds": 0.060876096 + "downloadSeconds": 0.060876096 }, { "connectionEstablishedSeconds": 0.12883837, "uploadSeconds": 0.000001477, - "DownloadSeconds": 0.062117541 + "downloadSeconds": 0.062117541 }, { "connectionEstablishedSeconds": 0.125180919, "uploadSeconds": 0.00000138, - "DownloadSeconds": 0.060162327 + "downloadSeconds": 0.060162327 }, { "connectionEstablishedSeconds": 0.128980365, "uploadSeconds": 0.000001464, - "DownloadSeconds": 0.062863695 + "downloadSeconds": 0.062863695 }, { "connectionEstablishedSeconds": 0.125982137, "uploadSeconds": 0.000001546, - "DownloadSeconds": 0.060601693 + "downloadSeconds": 0.060601693 }, { "connectionEstablishedSeconds": 0.122040921, "uploadSeconds": 0.00000147, - "DownloadSeconds": 0.05863226 + "downloadSeconds": 0.05863226 }, { "connectionEstablishedSeconds": 0.13145477, "uploadSeconds": 0.000001542, - "DownloadSeconds": 0.064228081 + "downloadSeconds": 0.064228081 }, { "connectionEstablishedSeconds": 0.128118009, "uploadSeconds": 0.000001748, - "DownloadSeconds": 0.062337372 + "downloadSeconds": 0.062337372 }, { "connectionEstablishedSeconds": 0.129970686, "uploadSeconds": 0.000001924, - "DownloadSeconds": 0.062586235 + "downloadSeconds": 0.062586235 } ], "implementation": "go-libp2p", @@ -4200,4 +4200,4 @@ 2920000000 ] } -} \ No newline at end of file +} From 388886f3f6a419632cca5fefb240844b0cce9e8b Mon Sep 17 00:00:00 2001 From: Max Inden Date: Tue, 23 May 2023 12:58:06 +0900 Subject: [PATCH 090/143] fix(go-libp2p): use tls only Use TLS only instead of both TLS and Noise. Removes the additional multistream-select security protocol negotiation. Thus makes it easier to compare with TCP+TLS+HTTP/2 --- perf/impl/go-libp2p/v0.27/main.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/perf/impl/go-libp2p/v0.27/main.go b/perf/impl/go-libp2p/v0.27/main.go index ca591e542..b07f9bff5 100644 --- a/perf/impl/go-libp2p/v0.27/main.go +++ b/perf/impl/go-libp2p/v0.27/main.go @@ -12,6 +12,7 @@ import ( "github.com/libp2p/go-libp2p/core/crypto" "github.com/libp2p/go-libp2p/core/peer" "github.com/multiformats/go-multiaddr" + tls "github.com/libp2p/go-libp2p/p2p/security/tls" ) func main() { @@ -23,7 +24,13 @@ func main() { downloadBytes := flag.Uint64("download-bytes", 0, "Download bytes") flag.Parse() - var opts []libp2p.Option + opts := []libp2p.Option{ + // Use TLS only instead of both TLS and Noise. Removes the + // additional multistream-select security protocol negotiation. + // Thus makes it easier to compare with TCP+TLS+HTTP/2 + libp2p.Security(tls.ID, tls.New), + } + if *runServer { opts = append(opts, libp2p.ListenAddrStrings("/ip4/0.0.0.0/tcp/4001", "/ip4/0.0.0.0/udp/4001/quic-v1")) From 23ed486deaf3f7021f3624eb88b04c994f6267a7 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Tue, 23 May 2023 12:58:47 +0900 Subject: [PATCH 091/143] List results last Makes the JSON easier to read. --- perf/runner/src/benchmark-result-type.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/runner/src/benchmark-result-type.ts b/perf/runner/src/benchmark-result-type.ts index 4fe15d302..34d1088ef 100644 --- a/perf/runner/src/benchmark-result-type.ts +++ b/perf/runner/src/benchmark-result-type.ts @@ -29,10 +29,10 @@ export type Parameters = { } export type Result = { - result: ResultValue[], implementation: string, transportStack: string, version: string + result: ResultValue[], }; export type ResultValue = { From fd8a87822aae53231b451400ea0807533cf3ee31 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 24 May 2023 14:28:50 +0900 Subject: [PATCH 092/143] fix(runner): trust ssh host key --- perf/runner/src/index.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index 588134785..d0e056587 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -56,7 +56,7 @@ async function main(clientPublicIP: string, serverPublicIP: string) { function runPing(clientPublicIP: string, serverPublicIP: string): PingResults { console.error(`= run 100 pings from client to server`); - let cmd = `ssh ec2-user@${clientPublicIP} 'ping -c 100 ${serverPublicIP}'`; + let cmd = `ssh -o StrictHostKeyChecking=no ec2-user@${clientPublicIP} 'ping -c 100 ${serverPublicIP}'`; const stdout = execCommand(cmd).toString(); // Extract the time from each ping @@ -74,15 +74,15 @@ function runPing(clientPublicIP: string, serverPublicIP: string): PingResults { function runIPerf(clientPublicIP: string, serverPublicIP: string): IperfResults { console.error(`= run 60 iPerf UDP from client to server`); - let killCMD = `ssh ec2-user@${serverPublicIP} 'kill $(cat pidfile); rm pidfile; rm server.log || true'`; + let killCMD = `ssh -o StrictHostKeyChecking=no ec2-user@${serverPublicIP} 'kill $(cat pidfile); rm pidfile; rm server.log || true'`; const killSTDOUT = execCommand(killCMD); console.error(killSTDOUT); - let serverCMD = `ssh ec2-user@${serverPublicIP} 'nohup iperf3 -s > server.log 2>&1 & echo \$! > pidfile '`; + let serverCMD = `ssh -o StrictHostKeyChecking=no ec2-user@${serverPublicIP} 'nohup iperf3 -s > server.log 2>&1 & echo \$! > pidfile '`; const serverSTDOUT = execCommand(serverCMD); console.error(serverSTDOUT); - let cmd = `ssh ec2-user@${clientPublicIP} 'iperf3 -c ${serverPublicIP} -u -b 25g -t 60'`; + let cmd = `ssh -o StrictHostKeyChecking=no ec2-user@${clientPublicIP} 'iperf3 -c ${serverPublicIP} -u -b 25g -t 60'`; const stdout = execSync(cmd).toString(); // Extract the bitrate from each relevant line @@ -124,11 +124,11 @@ function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Bench console.error(`=== Starting server ${version.implementation}/${version.id}`); - let killCMD = `ssh ec2-user@${args.serverPublicIP} 'kill $(cat pidfile); rm pidfile; rm server.log || true'`; + let killCMD = `ssh -o StrictHostKeyChecking=no ec2-user@${args.serverPublicIP} 'kill $(cat pidfile); rm pidfile; rm server.log || true'`; const killSTDOUT = execCommand(killCMD); console.error(killSTDOUT); - let serverCMD = `ssh ec2-user@${args.serverPublicIP} 'nohup ./impl/${version.implementation}/${version.id}/perf --run-server --server-address 0.0.0.0:4001 --secret-key-seed 0 > server.log 2>&1 & echo \$! > pidfile '`; + let serverCMD = `ssh -o StrictHostKeyChecking=no ec2-user@${args.serverPublicIP} 'nohup ./impl/${version.implementation}/${version.id}/perf --run-server --server-address 0.0.0.0:4001 --secret-key-seed 0 > server.log 2>&1 & echo \$! > pidfile '`; const serverSTDOUT = execCommand(serverCMD); console.error(serverSTDOUT); @@ -180,7 +180,7 @@ function runClient(args: ArgsRunBenchmark): ResultValue[] { console.error(`=== Starting client ${args.implementation}/${args.id}/${args.transportStack}`); const perfCMD = `./impl/${args.implementation}/${args.id}/perf --server-address ${args.serverPublicIP}:4001 --transport ${args.transportStack} --upload-bytes ${args.uploadBytes} --download-bytes ${args.downloadBytes}` - const cmd = `ssh ec2-user@${args.clientPublicIP} 'for i in {1..${args.iterations}}; do ${perfCMD}; done'` + const cmd = `ssh -o StrictHostKeyChecking=no ec2-user@${args.clientPublicIP} 'for i in {1..${args.iterations}}; do ${perfCMD}; done'` const stdout = execCommand(cmd); @@ -210,10 +210,10 @@ function execCommand(cmd: string): string { } function copyAndBuildPerfImplementations(ip: string) { - const stdout = execCommand(`rsync -avz --progress --filter=':- .gitignore' ../impl ec2-user@${ip}:/home/ec2-user`); + const stdout = execCommand(`rsync -avz --progress --filter=':- .gitignore' -e "ssh -o StrictHostKeyChecking=no" ../impl ec2-user@${ip}:/home/ec2-user`); console.error(stdout.toString()); - const stdout2 = execCommand(`ssh ec2-user@${ip} 'cd impl && make'`); + const stdout2 = execCommand(`ssh -o StrictHostKeyChecking=no ec2-user@${ip} 'cd impl && make'`); console.error(stdout2.toString()); } From e1a49dad0704afcae0c444f6df840c157bea3e81 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 24 May 2023 14:29:32 +0900 Subject: [PATCH 093/143] fix(go-libp2p): don't wait for identify round trip --- perf/impl/go-libp2p/v0.27/perf.go | 43 ++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/perf/impl/go-libp2p/v0.27/perf.go b/perf/impl/go-libp2p/v0.27/perf.go index 7a3e2b7a3..687372069 100644 --- a/perf/impl/go-libp2p/v0.27/perf.go +++ b/perf/impl/go-libp2p/v0.27/perf.go @@ -12,6 +12,7 @@ import ( "github.com/libp2p/go-libp2p/core/host" "github.com/libp2p/go-libp2p/core/network" "github.com/libp2p/go-libp2p/core/peer" + msmux "github.com/multiformats/go-multistream" ) var log = logging.Logger("perf") @@ -95,10 +96,21 @@ func (ps *PerfService) drainStream(ctx context.Context, s network.Stream, buf [] } func (ps *PerfService) RunPerf(ctx context.Context, p peer.ID, bytesToSend uint64, bytesToRecv uint64) (time.Duration, time.Duration, error) { - s, err := ps.Host.NewStream(ctx, p, ID) + s, err := ps.Host.Network().NewStream(network.WithNoDial(ctx, "already dialed"), p) if err != nil { return 0, 0, err } + s.SetProtocol(ID) + lzcon := msmux.NewMSSelect(s, ID) + s = &streamWrapper{ + Stream: s, + rw: lzcon, + } + + // s, err := ps.Host.NewStream(ctx, p, ID) + // if err != nil { + // return 0, 0, err + // } buf := pool.Get(BlockSize) defer pool.Put(buf) @@ -131,3 +143,32 @@ func (ps *PerfService) RunPerf(ctx context.Context, p peer.ID, bytesToSend uint6 return sendDuration, recvDuration, nil } + +type streamWrapper struct { + network.Stream + rw io.ReadWriteCloser +} + +func (s *streamWrapper) Read(b []byte) (int, error) { + return s.rw.Read(b) +} + +func (s *streamWrapper) Write(b []byte) (int, error) { + return s.rw.Write(b) +} + +func (s *streamWrapper) Close() error { + return s.rw.Close() +} + +func (s *streamWrapper) CloseWrite() error { + // Flush the handshake before closing, but ignore the error. The other + // end may have closed their side for reading. + // + // If something is wrong with the stream, the user will get on error on + // read instead. + if flusher, ok := s.rw.(interface{ Flush() error }); ok { + _ = flusher.Flush() + } + return s.Stream.CloseWrite() +} From 89302efe899abea75c6222a5c46dc617d469e0b4 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 24 May 2023 14:29:51 +0900 Subject: [PATCH 094/143] fix(quic-go): update to latest upstream --- perf/impl/quic-go/v0.34/Makefile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/perf/impl/quic-go/v0.34/Makefile b/perf/impl/quic-go/v0.34/Makefile index 6c3c45b3a..1a9b335f6 100644 --- a/perf/impl/quic-go/v0.34/Makefile +++ b/perf/impl/quic-go/v0.34/Makefile @@ -1,4 +1,4 @@ -commitSha := b50b0322f56ff6e332189349478063259e0a0f8c +commitSha := bdfafffc8b7ec786ff41ea245f24920930eec720 all: perf @@ -10,8 +10,7 @@ perf-${commitSha}: perf-${commitSha}.zip unzip -o perf-${commitSha}.zip perf-${commitSha}.zip: - # TODO: Use upstream - wget -O $@ "https://github.com/mxinden/perf/archive/${commitSha}.zip" + wget -O $@ "https://github.com/quic-go/perf/archive/${commitSha}.zip" clean: rm perf-*.zip From c05e6d6f10d3d2a3326a687652f7bbafb466a8da Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 24 May 2023 14:30:22 +0900 Subject: [PATCH 095/143] Udate benchmark results json --- perf/runner/benchmark-results.json | 4694 ++++++++++++++-------------- 1 file changed, 2347 insertions(+), 2347 deletions(-) diff --git a/perf/runner/benchmark-results.json b/perf/runner/benchmark-results.json index 905fc0d08..139f9795e 100644 --- a/perf/runner/benchmark-results.json +++ b/perf/runner/benchmark-results.json @@ -7,29 +7,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.064615047, - "uploadSeconds": 0.988964167, - "downloadSeconds": 1.19e-7 + "connectionEstablishedSeconds": 0.073534389, + "uploadSeconds": 1.022966015, + "downloadSeconds": 6e-8 }, { - "connectionEstablishedSeconds": 0.064595, - "uploadSeconds": 1.006270274, - "downloadSeconds": 5.7e-8 + "connectionEstablishedSeconds": 0.064356999, + "uploadSeconds": 0.998081542, + "downloadSeconds": 6.7e-8 }, { - "connectionEstablishedSeconds": 0.061957379, - "uploadSeconds": 0.967206045, - "downloadSeconds": 1.5e-7 + "connectionEstablishedSeconds": 0.063721734, + "uploadSeconds": 0.991826811, + "downloadSeconds": 1.2e-7 }, { - "connectionEstablishedSeconds": 0.066333628, - "uploadSeconds": 1.041923666, - "downloadSeconds": 8.1e-8 + "connectionEstablishedSeconds": 0.063634209, + "uploadSeconds": 0.989437537, + "downloadSeconds": 4.6e-8 }, { - "connectionEstablishedSeconds": 0.064395005, - "uploadSeconds": 1.001865646, - "downloadSeconds": 1.51e-7 + "connectionEstablishedSeconds": 0.06520362, + "uploadSeconds": 1.015414228, + "downloadSeconds": 7.9e-8 } ], "implementation": "quic-go", @@ -39,29 +39,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.130085386, - "uploadSeconds": 37.706576579, - "downloadSeconds": 0.06323964 + "connectionEstablishedSeconds": 0.128835561, + "uploadSeconds": 35.737586498, + "downloadSeconds": 0.063590841 }, { - "connectionEstablishedSeconds": 0.126073934, - "uploadSeconds": 35.394770671, - "downloadSeconds": 0.062791976 + "connectionEstablishedSeconds": 0.127912166, + "uploadSeconds": 38.667856873, + "downloadSeconds": 0.064191392 }, { - "connectionEstablishedSeconds": 0.118604112, - "uploadSeconds": 34.323311088, - "downloadSeconds": 0.059298347 + "connectionEstablishedSeconds": 0.128037643, + "uploadSeconds": 39.031020329, + "downloadSeconds": 0.063663246 }, { - "connectionEstablishedSeconds": 0.124873844, - "uploadSeconds": 35.669218402, - "downloadSeconds": 0.063715144 + "connectionEstablishedSeconds": 0.125461392, + "uploadSeconds": 35.221011787, + "downloadSeconds": 0.062566617 }, { - "connectionEstablishedSeconds": 0.127441566, - "uploadSeconds": 35.740599168, - "downloadSeconds": 0.063565162 + "connectionEstablishedSeconds": 0.127881229, + "uploadSeconds": 35.830456386, + "downloadSeconds": 0.063730291 } ], "implementation": "rust-libp2p", @@ -71,29 +71,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.065548222, - "uploadSeconds": 14.530045427, - "downloadSeconds": 0.000076453 + "connectionEstablishedSeconds": 0.069181494, + "uploadSeconds": 8.663833631, + "downloadSeconds": 0.000052794 }, { - "connectionEstablishedSeconds": 0.065969131, - "uploadSeconds": 9.529083867, - "downloadSeconds": 0.000050095 + "connectionEstablishedSeconds": 0.066686168, + "uploadSeconds": 9.229412335, + "downloadSeconds": 0.000081701 }, { - "connectionEstablishedSeconds": 0.066708447, - "uploadSeconds": 12.083736464, - "downloadSeconds": 0.000108361 + "connectionEstablishedSeconds": 0.063637152, + "uploadSeconds": 10.140803841, + "downloadSeconds": 0.000111314 }, { - "connectionEstablishedSeconds": 0.062826795, - "uploadSeconds": 8.016417861, - "downloadSeconds": 0.000057748 + "connectionEstablishedSeconds": 0.064684463, + "uploadSeconds": 12.200936442, + "downloadSeconds": 0.000126945 }, { - "connectionEstablishedSeconds": 0.061946997, - "uploadSeconds": 15.177270054, - "downloadSeconds": 0.000040064 + "connectionEstablishedSeconds": 0.064385185, + "uploadSeconds": 5.834055514, + "downloadSeconds": 0.000197576 } ], "implementation": "rust-libp2p", @@ -103,29 +103,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.065995905, - "uploadSeconds": 1.485719002, - "downloadSeconds": 0.000553305 + "connectionEstablishedSeconds": 0.068037568, + "uploadSeconds": 1.449457077, + "downloadSeconds": 0.00013048 }, { - "connectionEstablishedSeconds": 0.063538531, - "uploadSeconds": 1.395860033, - "downloadSeconds": 0.000067559 + "connectionEstablishedSeconds": 0.062217728, + "uploadSeconds": 1.363903017, + "downloadSeconds": 0.000167691 }, { - "connectionEstablishedSeconds": 0.065835491, - "uploadSeconds": 1.454903434, - "downloadSeconds": 0.00003936 + "connectionEstablishedSeconds": 0.061760172, + "uploadSeconds": 1.351303046, + "downloadSeconds": 0.000046245 }, { - "connectionEstablishedSeconds": 0.062994266, - "uploadSeconds": 1.390279352, - "downloadSeconds": 0.000037439 + "connectionEstablishedSeconds": 0.066087113, + "uploadSeconds": 1.458958647, + "downloadSeconds": 0.000163002 }, { - "connectionEstablishedSeconds": 0.061966219, - "uploadSeconds": 1.365005507, - "downloadSeconds": 0.000038552 + "connectionEstablishedSeconds": 0.064387156, + "uploadSeconds": 1.421119262, + "downloadSeconds": 0.000038861 } ], "implementation": "rust-libp2p-quinn", @@ -136,28 +136,28 @@ "result": [ { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.874647174, - "downloadSeconds": 0.000004258 + "uploadSeconds": 2.786165446, + "downloadSeconds": 0.000004741 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.834617305, - "downloadSeconds": 0.000002323 + "uploadSeconds": 2.704157312, + "downloadSeconds": 0.000004241 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.7802673049999997, - "downloadSeconds": 0.000002272 + "uploadSeconds": 2.962081208, + "downloadSeconds": 0.00000479 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.875364372, - "downloadSeconds": 0.000004399 + "uploadSeconds": 2.7954418370000003, + "downloadSeconds": 0.000004374 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.886239104, - "downloadSeconds": 0.000004495 + "uploadSeconds": 2.661247369, + "downloadSeconds": 0.000006242 } ], "implementation": "https", @@ -167,29 +167,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.251550611, - "uploadSeconds": 2.846900655, - "downloadSeconds": 0.123533731 + "connectionEstablishedSeconds": 0.257242958, + "uploadSeconds": 2.898156996, + "downloadSeconds": 0.126289233 }, { - "connectionEstablishedSeconds": 0.242425913, - "uploadSeconds": 2.795257683, - "downloadSeconds": 0.118580522 + "connectionEstablishedSeconds": 0.24601548, + "uploadSeconds": 2.778560537, + "downloadSeconds": 0.120859979 }, { - "connectionEstablishedSeconds": 0.246873845, - "uploadSeconds": 3.063707114, - "downloadSeconds": 0.121986488 + "connectionEstablishedSeconds": 0.242625404, + "uploadSeconds": 2.746282241, + "downloadSeconds": 0.119425337 }, { - "connectionEstablishedSeconds": 0.249576396, - "uploadSeconds": 3.085365409, - "downloadSeconds": 0.122945992 + "connectionEstablishedSeconds": 0.248417743, + "uploadSeconds": 2.792082647, + "downloadSeconds": 0.122889467 }, { - "connectionEstablishedSeconds": 0.245968516, - "uploadSeconds": 2.773947588, - "downloadSeconds": 0.120331421 + "connectionEstablishedSeconds": 0.255177343, + "uploadSeconds": 2.881758737, + "downloadSeconds": 0.125591938 } ], "implementation": "go-libp2p", @@ -199,29 +199,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.126053411, - "uploadSeconds": 1.260300357, - "downloadSeconds": 0.061025325 + "connectionEstablishedSeconds": 0.127848229, + "uploadSeconds": 1.292611852, + "downloadSeconds": 0.061803216 }, { - "connectionEstablishedSeconds": 0.1235829, - "uploadSeconds": 1.221448272, - "downloadSeconds": 0.059113222 + "connectionEstablishedSeconds": 0.12811363, + "uploadSeconds": 1.284820075, + "downloadSeconds": 0.062122628 }, { - "connectionEstablishedSeconds": 0.12598381, - "uploadSeconds": 1.248171035, - "downloadSeconds": 0.060479591 + "connectionEstablishedSeconds": 0.127555659, + "uploadSeconds": 1.273436506, + "downloadSeconds": 0.060895745 }, { - "connectionEstablishedSeconds": 0.127167588, - "uploadSeconds": 1.270804783, - "downloadSeconds": 0.060895254 + "connectionEstablishedSeconds": 0.128008204, + "uploadSeconds": 1.264772788, + "downloadSeconds": 0.061220133 }, { - "connectionEstablishedSeconds": 0.12712039, - "uploadSeconds": 1.276295741, - "downloadSeconds": 0.061811092 + "connectionEstablishedSeconds": 0.132303698, + "uploadSeconds": 1.327344153, + "downloadSeconds": 0.064228251 } ], "implementation": "go-libp2p", @@ -235,35 +235,35 @@ } }, { - "name": "Single Connection throughput – download 100 MiB", + "name": "Single Connection throughput – Download 100 MiB", "unit": "bit/s", "results": [ { "result": [ { - "connectionEstablishedSeconds": 0.061999713, - "uploadSeconds": 4.39e-7, - "downloadSeconds": 1.028321192 + "connectionEstablishedSeconds": 0.063943862, + "uploadSeconds": 6.3e-7, + "downloadSeconds": 1.9445675869999999 }, { - "connectionEstablishedSeconds": 0.064917296, - "uploadSeconds": 5.56e-7, - "downloadSeconds": 1.061596996 + "connectionEstablishedSeconds": 0.062428058, + "uploadSeconds": 5.91e-7, + "downloadSeconds": 1.02886241 }, { - "connectionEstablishedSeconds": 0.066126296, - "uploadSeconds": 7.02e-7, - "downloadSeconds": 1.087863123 + "connectionEstablishedSeconds": 0.065298762, + "uploadSeconds": 6.06e-7, + "downloadSeconds": 1.075758583 }, { - "connectionEstablishedSeconds": 0.062688429, - "uploadSeconds": 5.69e-7, - "downloadSeconds": 1.042664418 + "connectionEstablishedSeconds": 0.06440009, + "uploadSeconds": 6.24e-7, + "downloadSeconds": 1.062645745 }, { - "connectionEstablishedSeconds": 0.062954018, - "uploadSeconds": 5.47e-7, - "downloadSeconds": 1.0342652 + "connectionEstablishedSeconds": 0.060673776, + "uploadSeconds": 6.01e-7, + "downloadSeconds": 1.000647709 } ], "implementation": "quic-go", @@ -273,29 +273,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.12706415, - "uploadSeconds": 0.063256119, - "downloadSeconds": 35.974620608 + "connectionEstablishedSeconds": 0.124610523, + "uploadSeconds": 0.062097943, + "downloadSeconds": 38.179314432 }, { - "connectionEstablishedSeconds": 0.127749712, - "uploadSeconds": 0.063366234, - "downloadSeconds": 41.601253149 + "connectionEstablishedSeconds": 0.129181421, + "uploadSeconds": 0.064326834, + "downloadSeconds": 36.613869855 }, { - "connectionEstablishedSeconds": 0.122257267, - "uploadSeconds": 0.060835769, - "downloadSeconds": 34.346292556 + "connectionEstablishedSeconds": 0.128061981, + "uploadSeconds": 0.06364587, + "downloadSeconds": 37.86262842 }, { - "connectionEstablishedSeconds": 0.128953805, - "uploadSeconds": 0.064083786, - "downloadSeconds": 42.747025706 + "connectionEstablishedSeconds": 0.12590699, + "uploadSeconds": 0.062548546, + "downloadSeconds": 39.484203053 }, { - "connectionEstablishedSeconds": 0.1210829, - "uploadSeconds": 0.060118424, - "downloadSeconds": 34.064101133 + "connectionEstablishedSeconds": 0.126808331, + "uploadSeconds": 0.063408568, + "downloadSeconds": 35.652751967 } ], "implementation": "rust-libp2p", @@ -305,29 +305,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.066243543, - "uploadSeconds": 0.129079158, - "downloadSeconds": 10.54329554 + "connectionEstablishedSeconds": 0.061041295, + "uploadSeconds": 0.11785278, + "downloadSeconds": 20.858156356 }, { - "connectionEstablishedSeconds": 0.063366265, - "uploadSeconds": 0.123480025, - "downloadSeconds": 13.530595282 + "connectionEstablishedSeconds": 0.064759436, + "uploadSeconds": 0.126188747, + "downloadSeconds": 25.139504889 }, { - "connectionEstablishedSeconds": 0.063453185, - "uploadSeconds": 0.123524922, - "downloadSeconds": 12.251153406 + "connectionEstablishedSeconds": 0.065386286, + "uploadSeconds": 0.127581631, + "downloadSeconds": 19.44089213 }, { - "connectionEstablishedSeconds": 0.063395541, - "uploadSeconds": 0.123495377, - "downloadSeconds": 10.753483627 + "connectionEstablishedSeconds": 0.064602725, + "uploadSeconds": 0.12600768, + "downloadSeconds": 29.363678817 }, { - "connectionEstablishedSeconds": 0.063278224, - "uploadSeconds": 0.123278503, - "downloadSeconds": 13.267019601 + "connectionEstablishedSeconds": 0.064424853, + "uploadSeconds": 0.125434375, + "downloadSeconds": 29.075442273 } ], "implementation": "rust-libp2p", @@ -337,29 +337,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.06488199, - "uploadSeconds": 0.125932155, - "downloadSeconds": 1.3633550589999999 + "connectionEstablishedSeconds": 0.066426458, + "uploadSeconds": 0.128562102, + "downloadSeconds": 1.406269952 }, { - "connectionEstablishedSeconds": 0.064353019, - "uploadSeconds": 0.125460117, - "downloadSeconds": 1.3598140189999999 + "connectionEstablishedSeconds": 0.062947594, + "uploadSeconds": 0.122508445, + "downloadSeconds": 1.326230859 }, { - "connectionEstablishedSeconds": 0.062296858, - "uploadSeconds": 0.12124451, - "downloadSeconds": 1.313197081 + "connectionEstablishedSeconds": 0.063135632, + "uploadSeconds": 0.12315273, + "downloadSeconds": 1.332490635 }, { - "connectionEstablishedSeconds": 0.065277725, - "uploadSeconds": 0.127151015, - "downloadSeconds": 1.415552125 + "connectionEstablishedSeconds": 0.065326068, + "uploadSeconds": 0.127387869, + "downloadSeconds": 1.376855747 }, { - "connectionEstablishedSeconds": 0.064746505, - "uploadSeconds": 0.126296331, - "downloadSeconds": 1.373616806 + "connectionEstablishedSeconds": 0.066076185, + "uploadSeconds": 0.128719025, + "downloadSeconds": 1.441012489 } ], "implementation": "rust-libp2p-quinn", @@ -370,28 +370,28 @@ "result": [ { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187967569, - "downloadSeconds": 2.7059459219999997 + "uploadSeconds": 0.189144939, + "downloadSeconds": 2.668715956 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185706236, - "downloadSeconds": 2.61942649 + "uploadSeconds": 0.188799167, + "downloadSeconds": 2.654331318 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192289066, - "downloadSeconds": 2.716054685 + "uploadSeconds": 0.184312243, + "downloadSeconds": 2.7782000289999997 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191801605, - "downloadSeconds": 2.802501777 + "uploadSeconds": 0.186464761, + "downloadSeconds": 2.6601451430000003 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193762824, - "downloadSeconds": 3.006738304 + "uploadSeconds": 0.183973213, + "downloadSeconds": 2.936052888 } ], "implementation": "https", @@ -401,29 +401,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.249739662, - "uploadSeconds": 0.000002098, - "downloadSeconds": 2.9350942460000002 + "connectionEstablishedSeconds": 0.241151468, + "uploadSeconds": 0.000001908, + "downloadSeconds": 2.842781712 }, { - "connectionEstablishedSeconds": 0.254077537, - "uploadSeconds": 0.000001776, - "downloadSeconds": 2.99984772 + "connectionEstablishedSeconds": 0.263596828, + "uploadSeconds": 0.000002181, + "downloadSeconds": 3.218761259 }, { - "connectionEstablishedSeconds": 0.26064741, - "uploadSeconds": 0.000002265, - "downloadSeconds": 3.07579614 + "connectionEstablishedSeconds": 0.246584644, + "uploadSeconds": 0.000002162, + "downloadSeconds": 2.977065663 }, { - "connectionEstablishedSeconds": 0.248876875, - "uploadSeconds": 0.000001814, - "downloadSeconds": 3.109052261 + "connectionEstablishedSeconds": 0.24640504, + "uploadSeconds": 0.000002292, + "downloadSeconds": 2.894210966 }, { - "connectionEstablishedSeconds": 0.257652776, - "uploadSeconds": 0.000001835, - "downloadSeconds": 3.094898801 + "connectionEstablishedSeconds": 0.253147228, + "uploadSeconds": 0.000002386, + "downloadSeconds": 3.114069692 } ], "implementation": "go-libp2p", @@ -433,29 +433,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.129198968, - "uploadSeconds": 0.000001513, - "downloadSeconds": 1.336376132 + "connectionEstablishedSeconds": 0.126388751, + "uploadSeconds": 0.000001452, + "downloadSeconds": 1.30453021 }, { - "connectionEstablishedSeconds": 0.128866615, - "uploadSeconds": 0.000001247, - "downloadSeconds": 1.357847528 + "connectionEstablishedSeconds": 0.133952054, + "uploadSeconds": 0.00000173, + "downloadSeconds": 1.389168144 }, { - "connectionEstablishedSeconds": 0.128139163, - "uploadSeconds": 0.000001393, - "downloadSeconds": 1.343668511 + "connectionEstablishedSeconds": 0.126854789, + "uploadSeconds": 0.000001616, + "downloadSeconds": 1.335316416 }, { - "connectionEstablishedSeconds": 0.130263946, - "uploadSeconds": 0.000001313, - "downloadSeconds": 1.353385803 + "connectionEstablishedSeconds": 0.130872222, + "uploadSeconds": 0.000001434, + "downloadSeconds": 1.375239395 }, { - "connectionEstablishedSeconds": 0.124757242, - "uploadSeconds": 0.000001468, - "downloadSeconds": 1.3143922639999999 + "connectionEstablishedSeconds": 0.126340413, + "uploadSeconds": 0.000001736, + "downloadSeconds": 1.326846424 } ], "implementation": "go-libp2p", @@ -475,504 +475,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.065069473, - "uploadSeconds": 0.000001866, - "downloadSeconds": 0.062256472 + "connectionEstablishedSeconds": 0.064760029, + "uploadSeconds": 0.000002237, + "downloadSeconds": 0.06281288 }, { - "connectionEstablishedSeconds": 0.064288585, - "uploadSeconds": 0.000002063, - "downloadSeconds": 0.06233876 + "connectionEstablishedSeconds": 0.062448685, + "uploadSeconds": 0.000001167, + "downloadSeconds": 0.060469641 }, { - "connectionEstablishedSeconds": 0.064484789, - "uploadSeconds": 0.000002073, - "downloadSeconds": 0.062723672 + "connectionEstablishedSeconds": 0.064932292, + "uploadSeconds": 0.000001928, + "downloadSeconds": 0.063148985 }, { - "connectionEstablishedSeconds": 0.062385008, - "uploadSeconds": 0.000001881, - "downloadSeconds": 0.060628645 + "connectionEstablishedSeconds": 0.066137949, + "uploadSeconds": 0.00000194, + "downloadSeconds": 0.064209464 }, { - "connectionEstablishedSeconds": 0.063304243, - "uploadSeconds": 0.000001961, - "downloadSeconds": 0.061635519 + "connectionEstablishedSeconds": 0.060545333, + "uploadSeconds": 9.07e-7, + "downloadSeconds": 0.058755662 }, { - "connectionEstablishedSeconds": 0.063332073, - "uploadSeconds": 8.86e-7, - "downloadSeconds": 0.061448365 + "connectionEstablishedSeconds": 0.061730743, + "uploadSeconds": 8.63e-7, + "downloadSeconds": 0.0597931 }, { - "connectionEstablishedSeconds": 0.062947885, - "uploadSeconds": 8.13e-7, - "downloadSeconds": 0.0612649 + "connectionEstablishedSeconds": 0.065625336, + "uploadSeconds": 0.000001947, + "downloadSeconds": 0.063831922 }, { - "connectionEstablishedSeconds": 0.065377389, - "uploadSeconds": 7.24e-7, - "downloadSeconds": 0.063726463 + "connectionEstablishedSeconds": 0.062263528, + "uploadSeconds": 0.00000198, + "downloadSeconds": 0.060449721 }, { - "connectionEstablishedSeconds": 0.06389184, - "uploadSeconds": 0.000001823, - "downloadSeconds": 0.062134002 + "connectionEstablishedSeconds": 0.065397138, + "uploadSeconds": 0.000002068, + "downloadSeconds": 0.063491222 }, { - "connectionEstablishedSeconds": 0.06182418, - "uploadSeconds": 0.000001945, - "downloadSeconds": 0.060201813 + "connectionEstablishedSeconds": 0.06699556, + "uploadSeconds": 0.000001977, + "downloadSeconds": 0.065209392 }, { - "connectionEstablishedSeconds": 0.062630776, - "uploadSeconds": 0.000001825, - "downloadSeconds": 0.060914704 + "connectionEstablishedSeconds": 0.065975661, + "uploadSeconds": 0.000001905, + "downloadSeconds": 0.064126424 }, { - "connectionEstablishedSeconds": 0.06616315, - "uploadSeconds": 0.000001876, - "downloadSeconds": 0.064389835 + "connectionEstablishedSeconds": 0.063061032, + "uploadSeconds": 9.21e-7, + "downloadSeconds": 0.061925001 }, { - "connectionEstablishedSeconds": 0.060004119, - "uploadSeconds": 0.000001963, - "downloadSeconds": 0.058251497 + "connectionEstablishedSeconds": 0.064418665, + "uploadSeconds": 0.000002286, + "downloadSeconds": 0.062459007 }, { - "connectionEstablishedSeconds": 0.064923606, - "uploadSeconds": 8.29e-7, - "downloadSeconds": 0.063041205 + "connectionEstablishedSeconds": 0.064316085, + "uploadSeconds": 8.99e-7, + "downloadSeconds": 0.062683664 }, { - "connectionEstablishedSeconds": 0.064839276, - "uploadSeconds": 0.000001954, - "downloadSeconds": 0.063133865 + "connectionEstablishedSeconds": 0.064894229, + "uploadSeconds": 0.000002007, + "downloadSeconds": 0.061567794 }, { - "connectionEstablishedSeconds": 0.063852939, - "uploadSeconds": 0.000001953, - "downloadSeconds": 0.062121333 + "connectionEstablishedSeconds": 0.066622933, + "uploadSeconds": 0.000002061, + "downloadSeconds": 0.064526084 }, { - "connectionEstablishedSeconds": 0.064406821, - "uploadSeconds": 8.09e-7, - "downloadSeconds": 0.064277535 + "connectionEstablishedSeconds": 0.066025413, + "uploadSeconds": 0.000001985, + "downloadSeconds": 0.064214234 }, { - "connectionEstablishedSeconds": 0.063644647, - "uploadSeconds": 0.00000193, - "downloadSeconds": 0.061865325 + "connectionEstablishedSeconds": 0.065527168, + "uploadSeconds": 0.000001991, + "downloadSeconds": 0.063739535 }, { - "connectionEstablishedSeconds": 0.06144155, - "uploadSeconds": 0.000001766, - "downloadSeconds": 0.059727007 + "connectionEstablishedSeconds": 0.061806465, + "uploadSeconds": 0.000001847, + "downloadSeconds": 0.059981388 }, { - "connectionEstablishedSeconds": 0.060326476, - "uploadSeconds": 0.000001896, - "downloadSeconds": 0.058577622 + "connectionEstablishedSeconds": 0.064470062, + "uploadSeconds": 0.000001983, + "downloadSeconds": 0.062677313 }, { - "connectionEstablishedSeconds": 0.062268388, - "uploadSeconds": 8.54e-7, - "downloadSeconds": 0.060703616 + "connectionEstablishedSeconds": 0.064385851, + "uploadSeconds": 0.000001936, + "downloadSeconds": 0.062727898 }, { - "connectionEstablishedSeconds": 0.06514159, - "uploadSeconds": 0.000001883, - "downloadSeconds": 0.063407356 + "connectionEstablishedSeconds": 0.065793443, + "uploadSeconds": 0.000001956, + "downloadSeconds": 0.063929008 }, { - "connectionEstablishedSeconds": 0.06609423, - "uploadSeconds": 0.000001916, - "downloadSeconds": 0.06438571 + "connectionEstablishedSeconds": 0.066344564, + "uploadSeconds": 0.00000192, + "downloadSeconds": 0.064569483 }, { - "connectionEstablishedSeconds": 0.06248634, - "uploadSeconds": 0.000001957, - "downloadSeconds": 0.060845688 + "connectionEstablishedSeconds": 0.062830475, + "uploadSeconds": 8.33e-7, + "downloadSeconds": 0.061086429 }, { - "connectionEstablishedSeconds": 0.059670474, - "uploadSeconds": 0.000001877, - "downloadSeconds": 0.058048044 + "connectionEstablishedSeconds": 0.065549432, + "uploadSeconds": 8.63e-7, + "downloadSeconds": 0.063729053 }, { - "connectionEstablishedSeconds": 0.064270199, - "uploadSeconds": 0.000001983, - "downloadSeconds": 0.062635036 + "connectionEstablishedSeconds": 0.065623979, + "uploadSeconds": 0.000001908, + "downloadSeconds": 0.063840254 }, { - "connectionEstablishedSeconds": 0.06429604, - "uploadSeconds": 7.7e-7, - "downloadSeconds": 0.062659615 + "connectionEstablishedSeconds": 0.06697079, + "uploadSeconds": 0.000002078, + "downloadSeconds": 0.065105928 }, { - "connectionEstablishedSeconds": 0.064919854, - "uploadSeconds": 0.000001919, - "downloadSeconds": 0.063192498 + "connectionEstablishedSeconds": 0.061487976, + "uploadSeconds": 0.00000194, + "downloadSeconds": 0.059726731 }, { - "connectionEstablishedSeconds": 0.065954302, - "uploadSeconds": 0.00000183, - "downloadSeconds": 0.064251883 + "connectionEstablishedSeconds": 0.066287254, + "uploadSeconds": 7.57e-7, + "downloadSeconds": 0.064530959 }, { - "connectionEstablishedSeconds": 0.064098869, - "uploadSeconds": 7.44e-7, - "downloadSeconds": 0.062482036 + "connectionEstablishedSeconds": 0.061716118, + "uploadSeconds": 0.000001937, + "downloadSeconds": 0.060018561 }, { - "connectionEstablishedSeconds": 0.062022221, - "uploadSeconds": 8.36e-7, - "downloadSeconds": 0.060461973 + "connectionEstablishedSeconds": 0.064844711, + "uploadSeconds": 8.28e-7, + "downloadSeconds": 0.063176451 }, { - "connectionEstablishedSeconds": 0.064627862, - "uploadSeconds": 0.000001859, - "downloadSeconds": 0.062912864 + "connectionEstablishedSeconds": 0.063681467, + "uploadSeconds": 8.39e-7, + "downloadSeconds": 0.062491939 }, { - "connectionEstablishedSeconds": 0.066653299, - "uploadSeconds": 7.84e-7, - "downloadSeconds": 0.065027545 + "connectionEstablishedSeconds": 0.066033579, + "uploadSeconds": 8.39e-7, + "downloadSeconds": 0.064329757 }, { - "connectionEstablishedSeconds": 0.063758312, - "uploadSeconds": 0.000001955, - "downloadSeconds": 0.061661263 + "connectionEstablishedSeconds": 0.064841555, + "uploadSeconds": 0.000002079, + "downloadSeconds": 0.063022891 }, { - "connectionEstablishedSeconds": 0.065877464, - "uploadSeconds": 0.000002, - "downloadSeconds": 0.06417309 + "connectionEstablishedSeconds": 0.063232988, + "uploadSeconds": 0.000002007, + "downloadSeconds": 0.061574144 }, { - "connectionEstablishedSeconds": 0.064380299, - "uploadSeconds": 8.84e-7, - "downloadSeconds": 0.062695264 + "connectionEstablishedSeconds": 0.064933807, + "uploadSeconds": 7.77e-7, + "downloadSeconds": 0.063233226 }, { - "connectionEstablishedSeconds": 0.066849312, - "uploadSeconds": 0.000001934, - "downloadSeconds": 0.06515325 + "connectionEstablishedSeconds": 0.06560355, + "uploadSeconds": 0.000001879, + "downloadSeconds": 0.063885974 }, { - "connectionEstablishedSeconds": 0.065114281, - "uploadSeconds": 8.7e-7, - "downloadSeconds": 0.063618019 + "connectionEstablishedSeconds": 0.063048478, + "uploadSeconds": 0.000001966, + "downloadSeconds": 0.061247689 }, { - "connectionEstablishedSeconds": 0.060301618, - "uploadSeconds": 8.29e-7, - "downloadSeconds": 0.058627961 + "connectionEstablishedSeconds": 0.065530419, + "uploadSeconds": 8.58e-7, + "downloadSeconds": 0.063799359 }, { - "connectionEstablishedSeconds": 0.061927104, - "uploadSeconds": 0.000001807, - "downloadSeconds": 0.060320047 + "connectionEstablishedSeconds": 0.062577659, + "uploadSeconds": 0.00000197, + "downloadSeconds": 0.060871138 }, { - "connectionEstablishedSeconds": 0.061410291, - "uploadSeconds": 7.8e-7, - "downloadSeconds": 0.059774255 + "connectionEstablishedSeconds": 0.064430476, + "uploadSeconds": 0.000001943, + "downloadSeconds": 0.062624132 }, { - "connectionEstablishedSeconds": 0.060291912, - "uploadSeconds": 0.000001748, - "downloadSeconds": 0.058655747 + "connectionEstablishedSeconds": 0.065087049, + "uploadSeconds": 0.000001941, + "downloadSeconds": 0.063500727 }, { - "connectionEstablishedSeconds": 0.064003172, - "uploadSeconds": 0.0000019, - "downloadSeconds": 0.062414151 + "connectionEstablishedSeconds": 0.064993479, + "uploadSeconds": 8.5e-7, + "downloadSeconds": 0.063395202 }, { - "connectionEstablishedSeconds": 0.062299025, - "uploadSeconds": 0.000001929, - "downloadSeconds": 0.060600816 + "connectionEstablishedSeconds": 0.065235155, + "uploadSeconds": 0.000002207, + "downloadSeconds": 0.063520117 }, { - "connectionEstablishedSeconds": 0.063780385, - "uploadSeconds": 0.000001764, - "downloadSeconds": 0.062150151 + "connectionEstablishedSeconds": 0.061144848, + "uploadSeconds": 0.000001996, + "downloadSeconds": 0.059348959 }, { - "connectionEstablishedSeconds": 0.064086724, - "uploadSeconds": 0.000001943, - "downloadSeconds": 0.062438543 + "connectionEstablishedSeconds": 0.065986763, + "uploadSeconds": 0.000001828, + "downloadSeconds": 0.063752895 }, { - "connectionEstablishedSeconds": 0.061971952, - "uploadSeconds": 7.16e-7, - "downloadSeconds": 0.060368773 + "connectionEstablishedSeconds": 0.065123685, + "uploadSeconds": 0.000001874, + "downloadSeconds": 0.063437157 }, { - "connectionEstablishedSeconds": 0.063038818, - "uploadSeconds": 0.000001832, - "downloadSeconds": 0.06087449 + "connectionEstablishedSeconds": 0.065245189, + "uploadSeconds": 0.000001856, + "downloadSeconds": 0.063451093 }, { - "connectionEstablishedSeconds": 0.066742315, - "uploadSeconds": 0.00000196, - "downloadSeconds": 0.065181044 + "connectionEstablishedSeconds": 0.063450695, + "uploadSeconds": 8.74e-7, + "downloadSeconds": 0.06175543 }, { - "connectionEstablishedSeconds": 0.065213307, - "uploadSeconds": 0.000001839, - "downloadSeconds": 0.063552711 + "connectionEstablishedSeconds": 0.06624405, + "uploadSeconds": 7.93e-7, + "downloadSeconds": 0.064463587 }, { - "connectionEstablishedSeconds": 0.061494505, - "uploadSeconds": 7.04e-7, - "downloadSeconds": 0.059872531 + "connectionEstablishedSeconds": 0.06214795, + "uploadSeconds": 7.65e-7, + "downloadSeconds": 0.060482684 }, { - "connectionEstablishedSeconds": 0.061478888, - "uploadSeconds": 0.000001866, - "downloadSeconds": 0.059847426 + "connectionEstablishedSeconds": 0.065562946, + "uploadSeconds": 0.000001159, + "downloadSeconds": 0.063926501 }, { - "connectionEstablishedSeconds": 0.06497519, - "uploadSeconds": 0.000001808, - "downloadSeconds": 0.06337211 + "connectionEstablishedSeconds": 0.066338614, + "uploadSeconds": 8.64e-7, + "downloadSeconds": 0.064582208 }, { - "connectionEstablishedSeconds": 0.065036928, - "uploadSeconds": 0.000001851, - "downloadSeconds": 0.063292299 + "connectionEstablishedSeconds": 0.066080194, + "uploadSeconds": 0.000001938, + "downloadSeconds": 0.064387893 }, { - "connectionEstablishedSeconds": 0.06468815, - "uploadSeconds": 0.000001992, - "downloadSeconds": 0.063006364 + "connectionEstablishedSeconds": 0.062753116, + "uploadSeconds": 0.000001749, + "downloadSeconds": 0.060966769 }, { - "connectionEstablishedSeconds": 0.06523528, - "uploadSeconds": 0.000001856, - "downloadSeconds": 0.063706587 + "connectionEstablishedSeconds": 0.06670096, + "uploadSeconds": 0.000002136, + "downloadSeconds": 0.065015137 }, { - "connectionEstablishedSeconds": 0.064295975, - "uploadSeconds": 0.000001796, - "downloadSeconds": 0.062484971 + "connectionEstablishedSeconds": 0.065191127, + "uploadSeconds": 0.000001907, + "downloadSeconds": 0.063967922 }, { - "connectionEstablishedSeconds": 0.061726106, - "uploadSeconds": 8.4e-7, - "downloadSeconds": 0.060078095 + "connectionEstablishedSeconds": 0.062696817, + "uploadSeconds": 0.000001903, + "downloadSeconds": 0.060870225 }, { - "connectionEstablishedSeconds": 0.062668852, - "uploadSeconds": 0.00000191, - "downloadSeconds": 0.060334766 + "connectionEstablishedSeconds": 0.06248965, + "uploadSeconds": 0.000001821, + "downloadSeconds": 0.060678251 }, { - "connectionEstablishedSeconds": 0.064838194, - "uploadSeconds": 0.00000196, - "downloadSeconds": 0.063181639 + "connectionEstablishedSeconds": 0.062654457, + "uploadSeconds": 8.81e-7, + "downloadSeconds": 0.060962527 }, { - "connectionEstablishedSeconds": 0.06429928, - "uploadSeconds": 0.000001752, - "downloadSeconds": 0.062645255 + "connectionEstablishedSeconds": 0.064268986, + "uploadSeconds": 7.85e-7, + "downloadSeconds": 0.062495117 }, { - "connectionEstablishedSeconds": 0.059668224, - "uploadSeconds": 0.000001862, - "downloadSeconds": 0.058021052 + "connectionEstablishedSeconds": 0.063733813, + "uploadSeconds": 0.000001807, + "downloadSeconds": 0.062112064 }, { - "connectionEstablishedSeconds": 0.06296264, - "uploadSeconds": 0.000001912, - "downloadSeconds": 0.061298395 + "connectionEstablishedSeconds": 0.065260619, + "uploadSeconds": 0.000001884, + "downloadSeconds": 0.063585493 }, { - "connectionEstablishedSeconds": 0.059958842, - "uploadSeconds": 0.000001862, - "downloadSeconds": 0.058318696 + "connectionEstablishedSeconds": 0.065842262, + "uploadSeconds": 0.000001853, + "downloadSeconds": 0.064176502 }, { - "connectionEstablishedSeconds": 0.063492431, - "uploadSeconds": 7.18e-7, - "downloadSeconds": 0.06173307 + "connectionEstablishedSeconds": 0.060294876, + "uploadSeconds": 0.000001912, + "downloadSeconds": 0.058585692 }, { - "connectionEstablishedSeconds": 0.06592515, - "uploadSeconds": 0.00000176, - "downloadSeconds": 0.064247585 + "connectionEstablishedSeconds": 0.066388657, + "uploadSeconds": 0.000001224, + "downloadSeconds": 0.064721512 }, { - "connectionEstablishedSeconds": 0.064512627, - "uploadSeconds": 0.000001836, - "downloadSeconds": 0.062787141 + "connectionEstablishedSeconds": 0.064995086, + "uploadSeconds": 7.62e-7, + "downloadSeconds": 0.063261543 }, { - "connectionEstablishedSeconds": 0.063431219, - "uploadSeconds": 7.89e-7, - "downloadSeconds": 0.061738575 + "connectionEstablishedSeconds": 0.065398433, + "uploadSeconds": 0.000001887, + "downloadSeconds": 0.062779168 }, { - "connectionEstablishedSeconds": 0.062946175, - "uploadSeconds": 7.77e-7, - "downloadSeconds": 0.061326043 + "connectionEstablishedSeconds": 0.064685915, + "uploadSeconds": 8.09e-7, + "downloadSeconds": 0.062934946 }, { - "connectionEstablishedSeconds": 0.063931168, - "uploadSeconds": 7.83e-7, - "downloadSeconds": 0.062336508 + "connectionEstablishedSeconds": 0.0652299, + "uploadSeconds": 0.000001814, + "downloadSeconds": 0.063376032 }, { - "connectionEstablishedSeconds": 0.062151404, - "uploadSeconds": 0.000001791, - "downloadSeconds": 0.059868496 + "connectionEstablishedSeconds": 0.06176216, + "uploadSeconds": 0.0000019, + "downloadSeconds": 0.059977637 }, { - "connectionEstablishedSeconds": 0.062883368, - "uploadSeconds": 7.56e-7, - "downloadSeconds": 0.061280069 + "connectionEstablishedSeconds": 0.062917191, + "uploadSeconds": 7.77e-7, + "downloadSeconds": 0.061358745 }, { - "connectionEstablishedSeconds": 0.064648947, - "uploadSeconds": 0.000001843, - "downloadSeconds": 0.063037667 + "connectionEstablishedSeconds": 0.064894281, + "uploadSeconds": 0.000001035, + "downloadSeconds": 0.063349511 }, { - "connectionEstablishedSeconds": 0.060729236, - "uploadSeconds": 7.3e-7, - "downloadSeconds": 0.059125773 + "connectionEstablishedSeconds": 0.066701458, + "uploadSeconds": 0.000001984, + "downloadSeconds": 0.064929288 }, { - "connectionEstablishedSeconds": 0.063317758, - "uploadSeconds": 0.000001834, - "downloadSeconds": 0.061730434 + "connectionEstablishedSeconds": 0.065497067, + "uploadSeconds": 0.000001976, + "downloadSeconds": 0.063766971 }, { - "connectionEstablishedSeconds": 0.066656664, - "uploadSeconds": 7.91e-7, - "downloadSeconds": 0.064998067 + "connectionEstablishedSeconds": 0.065137242, + "uploadSeconds": 0.000001867, + "downloadSeconds": 0.063424394 }, { - "connectionEstablishedSeconds": 0.06258373, - "uploadSeconds": 0.000002, - "downloadSeconds": 0.060890619 + "connectionEstablishedSeconds": 0.063138487, + "uploadSeconds": 0.000001986, + "downloadSeconds": 0.061429917 }, { - "connectionEstablishedSeconds": 0.06319078, - "uploadSeconds": 6.89e-7, - "downloadSeconds": 0.061459901 + "connectionEstablishedSeconds": 0.064407804, + "uploadSeconds": 0.000001982, + "downloadSeconds": 0.06268847 }, { - "connectionEstablishedSeconds": 0.064543424, - "uploadSeconds": 0.000001756, - "downloadSeconds": 0.063178255 + "connectionEstablishedSeconds": 0.065795651, + "uploadSeconds": 8.68e-7, + "downloadSeconds": 0.064334815 }, { - "connectionEstablishedSeconds": 0.062345482, - "uploadSeconds": 0.000001939, - "downloadSeconds": 0.060653297 + "connectionEstablishedSeconds": 0.064823516, + "uploadSeconds": 0.000001927, + "downloadSeconds": 0.06300212 }, { - "connectionEstablishedSeconds": 0.061808393, - "uploadSeconds": 0.000001924, - "downloadSeconds": 0.060171952 + "connectionEstablishedSeconds": 0.065963804, + "uploadSeconds": 7.9e-7, + "downloadSeconds": 0.064829289 }, { - "connectionEstablishedSeconds": 0.065829336, - "uploadSeconds": 0.000001791, - "downloadSeconds": 0.064152923 + "connectionEstablishedSeconds": 0.064067047, + "uploadSeconds": 0.000001943, + "downloadSeconds": 0.062424641 }, { - "connectionEstablishedSeconds": 0.061952759, - "uploadSeconds": 0.000001878, - "downloadSeconds": 0.060281317 + "connectionEstablishedSeconds": 0.0659525, + "uploadSeconds": 0.000001998, + "downloadSeconds": 0.064430986 }, { - "connectionEstablishedSeconds": 0.064850571, - "uploadSeconds": 0.000001778, - "downloadSeconds": 0.063198825 + "connectionEstablishedSeconds": 0.062982117, + "uploadSeconds": 8.93e-7, + "downloadSeconds": 0.061279518 }, { - "connectionEstablishedSeconds": 0.063476523, - "uploadSeconds": 7.43e-7, - "downloadSeconds": 0.061770307 + "connectionEstablishedSeconds": 0.065117546, + "uploadSeconds": 8.01e-7, + "downloadSeconds": 0.063463914 }, { - "connectionEstablishedSeconds": 0.066471319, - "uploadSeconds": 8.72e-7, - "downloadSeconds": 0.064391845 + "connectionEstablishedSeconds": 0.062436406, + "uploadSeconds": 0.000002008, + "downloadSeconds": 0.060670593 }, { - "connectionEstablishedSeconds": 0.064264771, - "uploadSeconds": 0.000001808, - "downloadSeconds": 0.062746709 + "connectionEstablishedSeconds": 0.065396799, + "uploadSeconds": 0.000001992, + "downloadSeconds": 0.06381817 }, { - "connectionEstablishedSeconds": 0.063894644, - "uploadSeconds": 7.2e-7, - "downloadSeconds": 0.062251002 + "connectionEstablishedSeconds": 0.065378427, + "uploadSeconds": 0.000001825, + "downloadSeconds": 0.063600177 }, { - "connectionEstablishedSeconds": 0.063922439, - "uploadSeconds": 0.000001856, - "downloadSeconds": 0.062219476 + "connectionEstablishedSeconds": 0.062197303, + "uploadSeconds": 0.000001965, + "downloadSeconds": 0.060437046 }, { - "connectionEstablishedSeconds": 0.066209402, - "uploadSeconds": 7.94e-7, - "downloadSeconds": 0.064478021 + "connectionEstablishedSeconds": 0.066848549, + "uploadSeconds": 9.25e-7, + "downloadSeconds": 0.065111064 }, { - "connectionEstablishedSeconds": 0.063985061, - "uploadSeconds": 8.04e-7, - "downloadSeconds": 0.062304085 + "connectionEstablishedSeconds": 0.066892128, + "uploadSeconds": 8.49e-7, + "downloadSeconds": 0.065136432 }, { - "connectionEstablishedSeconds": 0.062835992, - "uploadSeconds": 8.01e-7, - "downloadSeconds": 0.061305266 + "connectionEstablishedSeconds": 0.063533068, + "uploadSeconds": 0.000001934, + "downloadSeconds": 0.061806919 }, { - "connectionEstablishedSeconds": 0.061206315, - "uploadSeconds": 0.000001983, - "downloadSeconds": 0.059519765 + "connectionEstablishedSeconds": 0.065851953, + "uploadSeconds": 0.000001829, + "downloadSeconds": 0.064120925 }, { - "connectionEstablishedSeconds": 0.063490488, - "uploadSeconds": 0.000001799, - "downloadSeconds": 0.06185446 + "connectionEstablishedSeconds": 0.06636729, + "uploadSeconds": 0.000001922, + "downloadSeconds": 0.064636105 }, { - "connectionEstablishedSeconds": 0.062635641, - "uploadSeconds": 0.00000199, - "downloadSeconds": 0.060952837 + "connectionEstablishedSeconds": 0.063609689, + "uploadSeconds": 9.22e-7, + "downloadSeconds": 0.061941316 }, { - "connectionEstablishedSeconds": 0.065738211, - "uploadSeconds": 0.000001799, - "downloadSeconds": 0.064081999 + "connectionEstablishedSeconds": 0.066131632, + "uploadSeconds": 8.55e-7, + "downloadSeconds": 0.06437746 }, { - "connectionEstablishedSeconds": 0.063443249, - "uploadSeconds": 0.000001864, - "downloadSeconds": 0.061807711 + "connectionEstablishedSeconds": 0.064215882, + "uploadSeconds": 0.000001915, + "downloadSeconds": 0.062532476 }, { - "connectionEstablishedSeconds": 0.062892786, - "uploadSeconds": 0.000001823, - "downloadSeconds": 0.061237758 + "connectionEstablishedSeconds": 0.063644923, + "uploadSeconds": 0.000001938, + "downloadSeconds": 0.060830741 }, { - "connectionEstablishedSeconds": 0.063952929, - "uploadSeconds": 0.000001745, - "downloadSeconds": 0.062293249 + "connectionEstablishedSeconds": 0.063732836, + "uploadSeconds": 0.000001884, + "downloadSeconds": 0.061946688 }, { - "connectionEstablishedSeconds": 0.06369205, - "uploadSeconds": 7.4e-7, - "downloadSeconds": 0.06221562 + "connectionEstablishedSeconds": 0.066034355, + "uploadSeconds": 0.000001708, + "downloadSeconds": 0.0643128 } ], "implementation": "quic-go", @@ -982,504 +982,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.124145125, - "uploadSeconds": 0.061859659, - "downloadSeconds": 0.061728155 + "connectionEstablishedSeconds": 0.12890574, + "uploadSeconds": 0.064234944, + "downloadSeconds": 0.064077181 }, { - "connectionEstablishedSeconds": 0.125843822, - "uploadSeconds": 0.062567003, - "downloadSeconds": 0.062580374 + "connectionEstablishedSeconds": 0.123666368, + "uploadSeconds": 0.06144532, + "downloadSeconds": 0.061441703 }, { - "connectionEstablishedSeconds": 0.128356336, - "uploadSeconds": 0.063803389, - "downloadSeconds": 0.06394792 + "connectionEstablishedSeconds": 0.129268658, + "uploadSeconds": 0.064259392, + "downloadSeconds": 0.064232697 }, { - "connectionEstablishedSeconds": 0.125477543, - "uploadSeconds": 0.062407752, - "downloadSeconds": 0.062384645 + "connectionEstablishedSeconds": 0.127924895, + "uploadSeconds": 0.063625281, + "downloadSeconds": 0.063605948 }, { - "connectionEstablishedSeconds": 0.121965219, - "uploadSeconds": 0.060644372, - "downloadSeconds": 0.060629723 + "connectionEstablishedSeconds": 0.126165285, + "uploadSeconds": 0.062710021, + "downloadSeconds": 0.062744639 }, { - "connectionEstablishedSeconds": 0.123418626, - "uploadSeconds": 0.061339105, - "downloadSeconds": 0.061357789 + "connectionEstablishedSeconds": 0.125455033, + "uploadSeconds": 0.062406175, + "downloadSeconds": 0.06237357 }, { - "connectionEstablishedSeconds": 0.12581403, - "uploadSeconds": 0.062546744, - "downloadSeconds": 0.062553167 + "connectionEstablishedSeconds": 0.130679247, + "uploadSeconds": 0.064931164, + "downloadSeconds": 0.065014193 }, { - "connectionEstablishedSeconds": 0.124444099, - "uploadSeconds": 0.061550699, - "downloadSeconds": 0.061594448 + "connectionEstablishedSeconds": 0.118667532, + "uploadSeconds": 0.058958126, + "downloadSeconds": 0.058990372 }, { - "connectionEstablishedSeconds": 0.126029087, - "uploadSeconds": 0.06264191, - "downloadSeconds": 0.062662179 + "connectionEstablishedSeconds": 0.128856956, + "uploadSeconds": 0.064054102, + "downloadSeconds": 0.064101849 }, { - "connectionEstablishedSeconds": 0.12795165, - "uploadSeconds": 0.063613922, - "downloadSeconds": 0.063630625 + "connectionEstablishedSeconds": 0.127606227, + "uploadSeconds": 0.063461964, + "downloadSeconds": 0.063486288 }, { - "connectionEstablishedSeconds": 0.125703903, - "uploadSeconds": 0.062461812, - "downloadSeconds": 0.062475161 + "connectionEstablishedSeconds": 0.119437378, + "uploadSeconds": 0.059492119, + "downloadSeconds": 0.05941957 }, { - "connectionEstablishedSeconds": 0.125912662, - "uploadSeconds": 0.062574314, - "downloadSeconds": 0.062594162 + "connectionEstablishedSeconds": 0.124138498, + "uploadSeconds": 0.061714219, + "downloadSeconds": 0.061673285 }, { - "connectionEstablishedSeconds": 0.124266318, - "uploadSeconds": 0.061767835, - "downloadSeconds": 0.061794058 + "connectionEstablishedSeconds": 0.129222748, + "uploadSeconds": 0.064260759, + "downloadSeconds": 0.06430083 }, { - "connectionEstablishedSeconds": 0.122011611, - "uploadSeconds": 0.060626943, - "downloadSeconds": 0.060894199 + "connectionEstablishedSeconds": 0.125269156, + "uploadSeconds": 0.062145234, + "downloadSeconds": 0.062231168 }, { - "connectionEstablishedSeconds": 0.122673098, - "uploadSeconds": 0.060966735, - "downloadSeconds": 0.061010991 + "connectionEstablishedSeconds": 0.124394051, + "uploadSeconds": 0.061821911, + "downloadSeconds": 0.061863613 }, { - "connectionEstablishedSeconds": 0.124042209, - "uploadSeconds": 0.061603136, - "downloadSeconds": 0.061670242 + "connectionEstablishedSeconds": 0.126723226, + "uploadSeconds": 0.062997038, + "downloadSeconds": 0.063023762 }, { - "connectionEstablishedSeconds": 0.119048947, - "uploadSeconds": 0.058947587, - "downloadSeconds": 0.059002538 + "connectionEstablishedSeconds": 0.128021564, + "uploadSeconds": 0.063460744, + "downloadSeconds": 0.063511776 }, { - "connectionEstablishedSeconds": 0.128934417, - "uploadSeconds": 0.064095484, - "downloadSeconds": 0.064128754 + "connectionEstablishedSeconds": 0.12773778, + "uploadSeconds": 0.063448123, + "downloadSeconds": 0.06349057 }, { - "connectionEstablishedSeconds": 0.122362305, - "uploadSeconds": 0.060785743, - "downloadSeconds": 0.060800834 + "connectionEstablishedSeconds": 0.126872286, + "uploadSeconds": 0.063037982, + "downloadSeconds": 0.063093935 }, { - "connectionEstablishedSeconds": 0.121230527, - "uploadSeconds": 0.060245036, - "downloadSeconds": 0.060381548 + "connectionEstablishedSeconds": 0.123476483, + "uploadSeconds": 0.061382576, + "downloadSeconds": 0.061395165 }, { - "connectionEstablishedSeconds": 0.124992226, - "uploadSeconds": 0.062181934, - "downloadSeconds": 0.06209275 + "connectionEstablishedSeconds": 0.128140827, + "uploadSeconds": 0.063684825, + "downloadSeconds": 0.063828771 }, { - "connectionEstablishedSeconds": 0.127526691, - "uploadSeconds": 0.063399351, - "downloadSeconds": 0.063405159 + "connectionEstablishedSeconds": 0.123338245, + "uploadSeconds": 0.061279922, + "downloadSeconds": 0.061289205 }, { - "connectionEstablishedSeconds": 0.124249699, - "uploadSeconds": 0.061870978, - "downloadSeconds": 0.061780321 + "connectionEstablishedSeconds": 0.124056083, + "uploadSeconds": 0.061649497, + "downloadSeconds": 0.061711477 }, { - "connectionEstablishedSeconds": 0.126347503, - "uploadSeconds": 0.062858753, - "downloadSeconds": 0.062814028 + "connectionEstablishedSeconds": 0.127936406, + "uploadSeconds": 0.063595593, + "downloadSeconds": 0.063629585 }, { - "connectionEstablishedSeconds": 0.11682585, - "uploadSeconds": 0.058026417, - "downloadSeconds": 0.058059279 + "connectionEstablishedSeconds": 0.123247794, + "uploadSeconds": 0.061233624, + "downloadSeconds": 0.061263316 }, { - "connectionEstablishedSeconds": 0.122583849, - "uploadSeconds": 0.060917102, - "downloadSeconds": 0.060954055 + "connectionEstablishedSeconds": 0.121794273, + "uploadSeconds": 0.060511801, + "downloadSeconds": 0.060624242 }, { - "connectionEstablishedSeconds": 0.123544343, - "uploadSeconds": 0.06142371, - "downloadSeconds": 0.061420304 + "connectionEstablishedSeconds": 0.127386558, + "uploadSeconds": 0.063249047, + "downloadSeconds": 0.063317881 }, { - "connectionEstablishedSeconds": 0.12710688, - "uploadSeconds": 0.063145252, - "downloadSeconds": 0.063224586 + "connectionEstablishedSeconds": 0.129265951, + "uploadSeconds": 0.064265895, + "downloadSeconds": 0.064397965 }, { - "connectionEstablishedSeconds": 0.127842154, - "uploadSeconds": 0.063501412, - "downloadSeconds": 0.063566842 + "connectionEstablishedSeconds": 0.123841345, + "uploadSeconds": 0.061519427, + "downloadSeconds": 0.061568687 }, { - "connectionEstablishedSeconds": 0.123062881, - "uploadSeconds": 0.061182822, - "downloadSeconds": 0.061162174 + "connectionEstablishedSeconds": 0.129677907, + "uploadSeconds": 0.06445228, + "downloadSeconds": 0.064479643 }, { - "connectionEstablishedSeconds": 0.12615966, - "uploadSeconds": 0.062682485, - "downloadSeconds": 0.062684356 + "connectionEstablishedSeconds": 0.122579899, + "uploadSeconds": 0.060907635, + "downloadSeconds": 0.060942285 }, { - "connectionEstablishedSeconds": 0.120560034, - "uploadSeconds": 0.059891731, - "downloadSeconds": 0.059905717 + "connectionEstablishedSeconds": 0.124209834, + "uploadSeconds": 0.061721528, + "downloadSeconds": 0.061738801 }, { - "connectionEstablishedSeconds": 0.120055808, - "uploadSeconds": 0.059680657, - "downloadSeconds": 0.059689754 + "connectionEstablishedSeconds": 0.126179737, + "uploadSeconds": 0.062663006, + "downloadSeconds": 0.062718067 }, { - "connectionEstablishedSeconds": 0.117916772, - "uploadSeconds": 0.058567597, - "downloadSeconds": 0.058605824 + "connectionEstablishedSeconds": 0.120286079, + "uploadSeconds": 0.059710579, + "downloadSeconds": 0.059754437 }, { - "connectionEstablishedSeconds": 0.124189356, - "uploadSeconds": 0.061700699, - "downloadSeconds": 0.061744668 + "connectionEstablishedSeconds": 0.128902775, + "uploadSeconds": 0.064057795, + "downloadSeconds": 0.0641045 }, { - "connectionEstablishedSeconds": 0.122986734, - "uploadSeconds": 0.061131076, - "downloadSeconds": 0.061157656 + "connectionEstablishedSeconds": 0.12501096, + "uploadSeconds": 0.06211691, + "downloadSeconds": 0.062130498 }, { - "connectionEstablishedSeconds": 0.123495903, - "uploadSeconds": 0.061318598, - "downloadSeconds": 0.061348062 + "connectionEstablishedSeconds": 0.125588205, + "uploadSeconds": 0.062423772, + "downloadSeconds": 0.062548054 }, { - "connectionEstablishedSeconds": 0.11902555, - "uploadSeconds": 0.059132276, - "downloadSeconds": 0.05916622 + "connectionEstablishedSeconds": 0.127045386, + "uploadSeconds": 0.063157894, + "downloadSeconds": 0.06322661 }, { - "connectionEstablishedSeconds": 0.128687472, - "uploadSeconds": 0.064000216, - "downloadSeconds": 0.063988446 + "connectionEstablishedSeconds": 0.12536339, + "uploadSeconds": 0.062324403, + "downloadSeconds": 0.062349488 }, { - "connectionEstablishedSeconds": 0.121696737, - "uploadSeconds": 0.060479899, - "downloadSeconds": 0.060491725 + "connectionEstablishedSeconds": 0.124130694, + "uploadSeconds": 0.06169533, + "downloadSeconds": 0.061743995 }, { - "connectionEstablishedSeconds": 0.12475878, - "uploadSeconds": 0.062033193, - "downloadSeconds": 0.062057929 + "connectionEstablishedSeconds": 0.12162633, + "uploadSeconds": 0.060141065, + "downloadSeconds": 0.060204186 }, { - "connectionEstablishedSeconds": 0.128872156, - "uploadSeconds": 0.06408639, - "downloadSeconds": 0.064089976 + "connectionEstablishedSeconds": 0.125090977, + "uploadSeconds": 0.062147681, + "downloadSeconds": 0.062210098 }, { - "connectionEstablishedSeconds": 0.121594455, - "uploadSeconds": 0.06041272, - "downloadSeconds": 0.060461311 + "connectionEstablishedSeconds": 0.118105467, + "uploadSeconds": 0.058706731, + "downloadSeconds": 0.058756401 }, { - "connectionEstablishedSeconds": 0.124767425, - "uploadSeconds": 0.062014862, - "downloadSeconds": 0.062043844 + "connectionEstablishedSeconds": 0.123878404, + "uploadSeconds": 0.061560572, + "downloadSeconds": 0.061614152 }, { - "connectionEstablishedSeconds": 0.126761906, - "uploadSeconds": 0.062920659, - "downloadSeconds": 0.062972128 + "connectionEstablishedSeconds": 0.124496523, + "uploadSeconds": 0.061845435, + "downloadSeconds": 0.061903011 }, { - "connectionEstablishedSeconds": 0.124931648, - "uploadSeconds": 0.062079875, - "downloadSeconds": 0.062108369 + "connectionEstablishedSeconds": 0.12443545, + "uploadSeconds": 0.061831566, + "downloadSeconds": 0.061893016 }, { - "connectionEstablishedSeconds": 0.122642546, - "uploadSeconds": 0.060930495, - "downloadSeconds": 0.060985003 + "connectionEstablishedSeconds": 0.123151719, + "uploadSeconds": 0.061200232, + "downloadSeconds": 0.061242368 }, { - "connectionEstablishedSeconds": 0.127321614, - "uploadSeconds": 0.063321951, - "downloadSeconds": 0.06330981 + "connectionEstablishedSeconds": 0.128504905, + "uploadSeconds": 0.0639307, + "downloadSeconds": 0.063969831 }, { - "connectionEstablishedSeconds": 0.126709211, - "uploadSeconds": 0.062986201, - "downloadSeconds": 0.063011283 + "connectionEstablishedSeconds": 0.126148904, + "uploadSeconds": 0.062676269, + "downloadSeconds": 0.062754341 }, { - "connectionEstablishedSeconds": 0.127663243, - "uploadSeconds": 0.063264135, - "downloadSeconds": 0.063304528 + "connectionEstablishedSeconds": 0.123028749, + "uploadSeconds": 0.061168186, + "downloadSeconds": 0.061328432 }, { - "connectionEstablishedSeconds": 0.120960863, - "uploadSeconds": 0.060081181, - "downloadSeconds": 0.060120516 + "connectionEstablishedSeconds": 0.119122662, + "uploadSeconds": 0.059129282, + "downloadSeconds": 0.059176153 }, { - "connectionEstablishedSeconds": 0.123381844, - "uploadSeconds": 0.061365268, - "downloadSeconds": 0.061315441 + "connectionEstablishedSeconds": 0.127636204, + "uploadSeconds": 0.063429603, + "downloadSeconds": 0.063485914 }, { - "connectionEstablishedSeconds": 0.128545917, - "uploadSeconds": 0.063891788, - "downloadSeconds": 0.06394697 + "connectionEstablishedSeconds": 0.127539638, + "uploadSeconds": 0.0633655, + "downloadSeconds": 0.063407649 }, { - "connectionEstablishedSeconds": 0.117939599, - "uploadSeconds": 0.058599891, - "downloadSeconds": 0.058641942 + "connectionEstablishedSeconds": 0.124085235, + "uploadSeconds": 0.061666285, + "downloadSeconds": 0.061769771 }, { - "connectionEstablishedSeconds": 0.119184747, - "uploadSeconds": 0.059090548, - "downloadSeconds": 0.059103432 + "connectionEstablishedSeconds": 0.126051378, + "uploadSeconds": 0.06264114, + "downloadSeconds": 0.062682767 }, { - "connectionEstablishedSeconds": 0.119225496, - "uploadSeconds": 0.05922733, - "downloadSeconds": 0.059264784 + "connectionEstablishedSeconds": 0.121206208, + "uploadSeconds": 0.060259099, + "downloadSeconds": 0.060215874 }, { - "connectionEstablishedSeconds": 0.122905732, - "uploadSeconds": 0.061065736, - "downloadSeconds": 0.061151848 + "connectionEstablishedSeconds": 0.123315093, + "uploadSeconds": 0.061282075, + "downloadSeconds": 0.06129655 }, { - "connectionEstablishedSeconds": 0.125260299, - "uploadSeconds": 0.062258568, - "downloadSeconds": 0.062296567 + "connectionEstablishedSeconds": 0.124861246, + "uploadSeconds": 0.062037243, + "downloadSeconds": 0.062078911 }, { - "connectionEstablishedSeconds": 0.125666793, - "uploadSeconds": 0.06246034, - "downloadSeconds": 0.062490292 + "connectionEstablishedSeconds": 0.120254617, + "uploadSeconds": 0.059760296, + "downloadSeconds": 0.059818618 }, { - "connectionEstablishedSeconds": 0.130158543, - "uploadSeconds": 0.064693106, - "downloadSeconds": 0.06471281 + "connectionEstablishedSeconds": 0.126175648, + "uploadSeconds": 0.062650832, + "downloadSeconds": 0.06269929 }, { - "connectionEstablishedSeconds": 0.123926745, - "uploadSeconds": 0.061615685, - "downloadSeconds": 0.061623424 + "connectionEstablishedSeconds": 0.119165489, + "uploadSeconds": 0.059187281, + "downloadSeconds": 0.059384443 }, { - "connectionEstablishedSeconds": 0.12913928, - "uploadSeconds": 0.064184865, - "downloadSeconds": 0.064204226 + "connectionEstablishedSeconds": 0.127276105, + "uploadSeconds": 0.063267277, + "downloadSeconds": 0.063277402 }, { - "connectionEstablishedSeconds": 0.120888422, - "uploadSeconds": 0.060079159, - "downloadSeconds": 0.060075203 + "connectionEstablishedSeconds": 0.128078375, + "uploadSeconds": 0.063689218, + "downloadSeconds": 0.063717693 }, { - "connectionEstablishedSeconds": 0.121925559, - "uploadSeconds": 0.06058572, - "downloadSeconds": 0.060601655 + "connectionEstablishedSeconds": 0.130814074, + "uploadSeconds": 0.065013698, + "downloadSeconds": 0.065038194 }, { - "connectionEstablishedSeconds": 0.12744737, - "uploadSeconds": 0.063359326, - "downloadSeconds": 0.063369463 + "connectionEstablishedSeconds": 0.125699777, + "uploadSeconds": 0.062473144, + "downloadSeconds": 0.062501372 }, { - "connectionEstablishedSeconds": 0.121927453, - "uploadSeconds": 0.060578582, - "downloadSeconds": 0.060592778 + "connectionEstablishedSeconds": 0.127536867, + "uploadSeconds": 0.063443592, + "downloadSeconds": 0.063402855 }, { - "connectionEstablishedSeconds": 0.12108071, - "uploadSeconds": 0.060175648, - "downloadSeconds": 0.060614869 + "connectionEstablishedSeconds": 0.120001228, + "uploadSeconds": 0.059615536, + "downloadSeconds": 0.059700619 }, { - "connectionEstablishedSeconds": 0.127892119, - "uploadSeconds": 0.063587952, - "downloadSeconds": 0.063609969 + "connectionEstablishedSeconds": 0.124652579, + "uploadSeconds": 0.062025072, + "downloadSeconds": 0.061968964 }, { - "connectionEstablishedSeconds": 0.120905003, - "uploadSeconds": 0.060085677, - "downloadSeconds": 0.060124089 + "connectionEstablishedSeconds": 0.129308472, + "uploadSeconds": 0.064272732, + "downloadSeconds": 0.064343532 }, { - "connectionEstablishedSeconds": 0.120594857, - "uploadSeconds": 0.059925071, - "downloadSeconds": 0.059965372 + "connectionEstablishedSeconds": 0.121926007, + "uploadSeconds": 0.060601275, + "downloadSeconds": 0.060636989 }, { - "connectionEstablishedSeconds": 0.126257335, - "uploadSeconds": 0.062704273, - "downloadSeconds": 0.062742059 + "connectionEstablishedSeconds": 0.128084176, + "uploadSeconds": 0.063678326, + "downloadSeconds": 0.063726372 }, { - "connectionEstablishedSeconds": 0.125894135, - "uploadSeconds": 0.062578119, - "downloadSeconds": 0.062602191 + "connectionEstablishedSeconds": 0.127331445, + "uploadSeconds": 0.063229219, + "downloadSeconds": 0.063301032 }, { - "connectionEstablishedSeconds": 0.123692801, - "uploadSeconds": 0.061494169, - "downloadSeconds": 0.061509289 + "connectionEstablishedSeconds": 0.128604751, + "uploadSeconds": 0.063915006, + "downloadSeconds": 0.063960143 }, { - "connectionEstablishedSeconds": 0.125885482, - "uploadSeconds": 0.062573749, - "downloadSeconds": 0.062580884 + "connectionEstablishedSeconds": 0.12927236, + "uploadSeconds": 0.064247353, + "downloadSeconds": 0.064270362 }, { - "connectionEstablishedSeconds": 0.12775227, - "uploadSeconds": 0.063489935, - "downloadSeconds": 0.063545142 + "connectionEstablishedSeconds": 0.123154914, + "uploadSeconds": 0.06117626, + "downloadSeconds": 0.061225975 }, { - "connectionEstablishedSeconds": 0.124090919, - "uploadSeconds": 0.061676606, - "downloadSeconds": 0.061714668 + "connectionEstablishedSeconds": 0.1243586, + "uploadSeconds": 0.061846783, + "downloadSeconds": 0.061860297 }, { - "connectionEstablishedSeconds": 0.127768893, - "uploadSeconds": 0.063489949, - "downloadSeconds": 0.063512222 + "connectionEstablishedSeconds": 0.126006421, + "uploadSeconds": 0.062605494, + "downloadSeconds": 0.062678936 }, { - "connectionEstablishedSeconds": 0.121857213, - "uploadSeconds": 0.060515969, - "downloadSeconds": 0.060548248 + "connectionEstablishedSeconds": 0.122807399, + "uploadSeconds": 0.061034823, + "downloadSeconds": 0.061078398 }, { - "connectionEstablishedSeconds": 0.120858895, - "uploadSeconds": 0.059936957, - "downloadSeconds": 0.059978208 + "connectionEstablishedSeconds": 0.128105322, + "uploadSeconds": 0.063667657, + "downloadSeconds": 0.063743009 }, { - "connectionEstablishedSeconds": 0.125957099, - "uploadSeconds": 0.062588604, - "downloadSeconds": 0.062638697 + "connectionEstablishedSeconds": 0.123447944, + "uploadSeconds": 0.0614329, + "downloadSeconds": 0.061387349 }, { - "connectionEstablishedSeconds": 0.128928719, - "uploadSeconds": 0.064153287, - "downloadSeconds": 0.064156072 + "connectionEstablishedSeconds": 0.126163081, + "uploadSeconds": 0.062636708, + "downloadSeconds": 0.0626641 }, { - "connectionEstablishedSeconds": 0.123693096, - "uploadSeconds": 0.061581606, - "downloadSeconds": 0.061498676 + "connectionEstablishedSeconds": 0.124654643, + "uploadSeconds": 0.061948928, + "downloadSeconds": 0.061996041 }, { - "connectionEstablishedSeconds": 0.11974957, - "uploadSeconds": 0.059490641, - "downloadSeconds": 0.059520038 + "connectionEstablishedSeconds": 0.12803414, + "uploadSeconds": 0.063604036, + "downloadSeconds": 0.063647278 }, { - "connectionEstablishedSeconds": 0.127675593, - "uploadSeconds": 0.063485346, - "downloadSeconds": 0.063516515 + "connectionEstablishedSeconds": 0.131103982, + "uploadSeconds": 0.065187795, + "downloadSeconds": 0.065250979 }, { - "connectionEstablishedSeconds": 0.129245549, - "uploadSeconds": 0.064255694, - "downloadSeconds": 0.064269179 + "connectionEstablishedSeconds": 0.125471676, + "uploadSeconds": 0.062379177, + "downloadSeconds": 0.062390086 }, { - "connectionEstablishedSeconds": 0.130277486, - "uploadSeconds": 0.064766765, - "downloadSeconds": 0.064795694 + "connectionEstablishedSeconds": 0.125032401, + "uploadSeconds": 0.062132886, + "downloadSeconds": 0.0621851 }, { - "connectionEstablishedSeconds": 0.127990056, - "uploadSeconds": 0.063648257, - "downloadSeconds": 0.063665452 + "connectionEstablishedSeconds": 0.125146993, + "uploadSeconds": 0.062156848, + "downloadSeconds": 0.06219907 }, { - "connectionEstablishedSeconds": 0.127237517, - "uploadSeconds": 0.063228796, - "downloadSeconds": 0.063325575 + "connectionEstablishedSeconds": 0.125724129, + "uploadSeconds": 0.062447722, + "downloadSeconds": 0.062481181 }, { - "connectionEstablishedSeconds": 0.126827288, - "uploadSeconds": 0.063057107, - "downloadSeconds": 0.063060423 + "connectionEstablishedSeconds": 0.124786004, + "uploadSeconds": 0.062042945, + "downloadSeconds": 0.06264053 }, { - "connectionEstablishedSeconds": 0.128076095, - "uploadSeconds": 0.063600281, - "downloadSeconds": 0.063563121 + "connectionEstablishedSeconds": 0.122854895, + "uploadSeconds": 0.061029218, + "downloadSeconds": 0.061082874 }, { - "connectionEstablishedSeconds": 0.126112736, - "uploadSeconds": 0.062712107, - "downloadSeconds": 0.062709074 + "connectionEstablishedSeconds": 0.127816982, + "uploadSeconds": 0.063556758, + "downloadSeconds": 0.063570017 }, { - "connectionEstablishedSeconds": 0.126037179, - "uploadSeconds": 0.062549752, - "downloadSeconds": 0.062570997 + "connectionEstablishedSeconds": 0.128751465, + "uploadSeconds": 0.063987236, + "downloadSeconds": 0.064039094 }, { - "connectionEstablishedSeconds": 0.124178306, - "uploadSeconds": 0.061731673, - "downloadSeconds": 0.061729123 + "connectionEstablishedSeconds": 0.128139274, + "uploadSeconds": 0.063677502, + "downloadSeconds": 0.063743376 }, { - "connectionEstablishedSeconds": 0.122969035, - "uploadSeconds": 0.061091485, - "downloadSeconds": 0.061125026 + "connectionEstablishedSeconds": 0.12227394, + "uploadSeconds": 0.06069762, + "downloadSeconds": 0.060746496 }, { - "connectionEstablishedSeconds": 0.126242854, - "uploadSeconds": 0.062729515, - "downloadSeconds": 0.062781941 + "connectionEstablishedSeconds": 0.129220588, + "uploadSeconds": 0.064189879, + "downloadSeconds": 0.064285771 }, { - "connectionEstablishedSeconds": 0.12955639, - "uploadSeconds": 0.064371501, - "downloadSeconds": 0.064425928 + "connectionEstablishedSeconds": 0.124770957, + "uploadSeconds": 0.061999252, + "downloadSeconds": 0.062004879 }, { - "connectionEstablishedSeconds": 0.123962068, - "uploadSeconds": 0.061665617, - "downloadSeconds": 0.061628992 + "connectionEstablishedSeconds": 0.129240924, + "uploadSeconds": 0.064258811, + "downloadSeconds": 0.064342173 }, { - "connectionEstablishedSeconds": 0.12504171, - "uploadSeconds": 0.062189832, - "downloadSeconds": 0.06221121 + "connectionEstablishedSeconds": 0.125171561, + "uploadSeconds": 0.062195451, + "downloadSeconds": 0.062236192 }, { - "connectionEstablishedSeconds": 0.130446313, - "uploadSeconds": 0.064829082, - "downloadSeconds": 0.064873804 + "connectionEstablishedSeconds": 0.129305095, + "uploadSeconds": 0.064498854, + "downloadSeconds": 0.06432414 }, { - "connectionEstablishedSeconds": 0.129508575, - "uploadSeconds": 0.064349556, - "downloadSeconds": 0.064360501 + "connectionEstablishedSeconds": 0.130281646, + "uploadSeconds": 0.064774718, + "downloadSeconds": 0.064791614 } ], "implementation": "rust-libp2p", @@ -1489,504 +1489,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.064777868, - "uploadSeconds": 0.125998204, - "downloadSeconds": 0.000075636 + "connectionEstablishedSeconds": 0.062555178, + "uploadSeconds": 0.121464442, + "downloadSeconds": 0.000082901 }, { - "connectionEstablishedSeconds": 0.06294562, - "uploadSeconds": 0.12275897, - "downloadSeconds": 0.000073667 + "connectionEstablishedSeconds": 0.063369527, + "uploadSeconds": 0.123457052, + "downloadSeconds": 0.000085259 }, { - "connectionEstablishedSeconds": 0.064982803, - "uploadSeconds": 0.126651951, - "downloadSeconds": 0.000069897 + "connectionEstablishedSeconds": 0.063640605, + "uploadSeconds": 0.123966857, + "downloadSeconds": 0.000084324 }, { - "connectionEstablishedSeconds": 0.063169272, - "uploadSeconds": 0.123140985, - "downloadSeconds": 0.000078117 + "connectionEstablishedSeconds": 0.065154661, + "uploadSeconds": 0.126671499, + "downloadSeconds": 0.000130963 }, { - "connectionEstablishedSeconds": 0.061480717, - "uploadSeconds": 0.119770789, - "downloadSeconds": 0.000080836 + "connectionEstablishedSeconds": 0.064592418, + "uploadSeconds": 0.125392005, + "downloadSeconds": 0.000078974 }, { - "connectionEstablishedSeconds": 0.064885998, - "uploadSeconds": 0.126467413, - "downloadSeconds": 0.000045782 + "connectionEstablishedSeconds": 0.066054486, + "uploadSeconds": 0.128804493, + "downloadSeconds": 0.000100537 }, { - "connectionEstablishedSeconds": 0.063326276, - "uploadSeconds": 0.123218016, - "downloadSeconds": 0.000074582 + "connectionEstablishedSeconds": 0.060591598, + "uploadSeconds": 0.117682519, + "downloadSeconds": 0.000076024 }, { - "connectionEstablishedSeconds": 0.065046438, - "uploadSeconds": 0.126780176, - "downloadSeconds": 0.000073816 + "connectionEstablishedSeconds": 0.06327672, + "uploadSeconds": 0.12307991, + "downloadSeconds": 0.00008693 }, { - "connectionEstablishedSeconds": 0.062702721, - "uploadSeconds": 0.122423041, - "downloadSeconds": 0.000073728 + "connectionEstablishedSeconds": 0.066036308, + "uploadSeconds": 0.128649426, + "downloadSeconds": 0.000094116 }, { - "connectionEstablishedSeconds": 0.065586164, - "uploadSeconds": 0.127955324, - "downloadSeconds": 0.000080008 + "connectionEstablishedSeconds": 0.064443428, + "uploadSeconds": 0.125458301, + "downloadSeconds": 0.000085163 }, { - "connectionEstablishedSeconds": 0.066246125, - "uploadSeconds": 0.129010614, - "downloadSeconds": 0.000081791 + "connectionEstablishedSeconds": 0.060612667, + "uploadSeconds": 0.117629487, + "downloadSeconds": 0.00008556 }, { - "connectionEstablishedSeconds": 0.064241739, - "uploadSeconds": 0.125201385, - "downloadSeconds": 0.000082527 + "connectionEstablishedSeconds": 0.062749736, + "uploadSeconds": 0.122072668, + "downloadSeconds": 0.00008688 }, { - "connectionEstablishedSeconds": 0.063676962, - "uploadSeconds": 0.124129189, - "downloadSeconds": 0.000092577 + "connectionEstablishedSeconds": 0.063998842, + "uploadSeconds": 0.124482878, + "downloadSeconds": 0.0000873 }, { - "connectionEstablishedSeconds": 0.061776373, - "uploadSeconds": 0.120380327, - "downloadSeconds": 0.000088589 + "connectionEstablishedSeconds": 0.06467811, + "uploadSeconds": 0.126032702, + "downloadSeconds": 0.000117909 }, { - "connectionEstablishedSeconds": 0.064540106, - "uploadSeconds": 0.125817512, - "downloadSeconds": 0.000063514 + "connectionEstablishedSeconds": 0.064432402, + "uploadSeconds": 0.125746167, + "downloadSeconds": 0.000087769 }, { - "connectionEstablishedSeconds": 0.06378064, - "uploadSeconds": 0.124386111, - "downloadSeconds": 0.000071957 + "connectionEstablishedSeconds": 0.061048609, + "uploadSeconds": 0.118620331, + "downloadSeconds": 0.000084944 }, { - "connectionEstablishedSeconds": 0.063139452, - "uploadSeconds": 0.12295606, - "downloadSeconds": 0.000080053 + "connectionEstablishedSeconds": 0.063234156, + "uploadSeconds": 0.122973143, + "downloadSeconds": 0.000062995 }, { - "connectionEstablishedSeconds": 0.062069621, - "uploadSeconds": 0.120622443, - "downloadSeconds": 0.000053712 + "connectionEstablishedSeconds": 0.063368215, + "uploadSeconds": 0.123410879, + "downloadSeconds": 0.000081405 }, { - "connectionEstablishedSeconds": 0.062981833, - "uploadSeconds": 0.12289405, - "downloadSeconds": 0.00008086 + "connectionEstablishedSeconds": 0.065971913, + "uploadSeconds": 0.128409181, + "downloadSeconds": 0.000086581 }, { - "connectionEstablishedSeconds": 0.064930467, - "uploadSeconds": 0.126605086, - "downloadSeconds": 0.000082813 + "connectionEstablishedSeconds": 0.064192182, + "uploadSeconds": 0.124766215, + "downloadSeconds": 0.000085311 }, { - "connectionEstablishedSeconds": 0.06285884, - "uploadSeconds": 0.122514956, - "downloadSeconds": 0.000093668 + "connectionEstablishedSeconds": 0.065122346, + "uploadSeconds": 0.126924617, + "downloadSeconds": 0.000077339 }, { - "connectionEstablishedSeconds": 0.061271851, - "uploadSeconds": 0.119193715, - "downloadSeconds": 0.000082919 + "connectionEstablishedSeconds": 0.063140431, + "uploadSeconds": 0.122964453, + "downloadSeconds": 0.000088041 }, { - "connectionEstablishedSeconds": 0.064243355, - "uploadSeconds": 0.125646122, - "downloadSeconds": 0.000087232 + "connectionEstablishedSeconds": 0.063312335, + "uploadSeconds": 0.123131605, + "downloadSeconds": 0.000088513 }, { - "connectionEstablishedSeconds": 0.063067288, - "uploadSeconds": 0.122717381, - "downloadSeconds": 0.000073586 + "connectionEstablishedSeconds": 0.065980778, + "uploadSeconds": 0.128555153, + "downloadSeconds": 0.000086702 }, { - "connectionEstablishedSeconds": 0.0665023, - "uploadSeconds": 0.129655903, - "downloadSeconds": 0.000069867 + "connectionEstablishedSeconds": 0.063307699, + "uploadSeconds": 0.123217326, + "downloadSeconds": 0.000100773 }, { - "connectionEstablishedSeconds": 0.064118954, - "uploadSeconds": 0.124881153, - "downloadSeconds": 0.000059721 + "connectionEstablishedSeconds": 0.064792526, + "uploadSeconds": 0.12793851, + "downloadSeconds": 0.000077 }, { - "connectionEstablishedSeconds": 0.063248922, - "uploadSeconds": 0.123328557, - "downloadSeconds": 0.000078478 + "connectionEstablishedSeconds": 0.065063158, + "uploadSeconds": 0.126801106, + "downloadSeconds": 0.000092032 }, { - "connectionEstablishedSeconds": 0.061599504, - "uploadSeconds": 0.119807769, - "downloadSeconds": 0.000086405 + "connectionEstablishedSeconds": 0.061136292, + "uploadSeconds": 0.118917211, + "downloadSeconds": 0.000087618 }, { - "connectionEstablishedSeconds": 0.063174339, - "uploadSeconds": 0.123168493, - "downloadSeconds": 0.000078535 + "connectionEstablishedSeconds": 0.062526539, + "uploadSeconds": 0.12154554, + "downloadSeconds": 0.000076073 }, { - "connectionEstablishedSeconds": 0.064735618, - "uploadSeconds": 0.12625337, - "downloadSeconds": 0.000055502 + "connectionEstablishedSeconds": 0.064467535, + "uploadSeconds": 0.125464429, + "downloadSeconds": 0.000053374 }, { - "connectionEstablishedSeconds": 0.062365727, - "uploadSeconds": 0.121573982, - "downloadSeconds": 0.000067009 + "connectionEstablishedSeconds": 0.066230482, + "uploadSeconds": 0.128881524, + "downloadSeconds": 0.000087982 }, { - "connectionEstablishedSeconds": 0.062613185, - "uploadSeconds": 0.122205546, - "downloadSeconds": 0.00006355 + "connectionEstablishedSeconds": 0.06440969, + "uploadSeconds": 0.125494731, + "downloadSeconds": 0.000083717 }, { - "connectionEstablishedSeconds": 0.063637113, - "uploadSeconds": 0.124060759, - "downloadSeconds": 0.000104106 + "connectionEstablishedSeconds": 0.063325895, + "uploadSeconds": 0.123178386, + "downloadSeconds": 0.000102126 }, { - "connectionEstablishedSeconds": 0.065089764, - "uploadSeconds": 0.127116541, - "downloadSeconds": 0.000069329 + "connectionEstablishedSeconds": 0.06475516, + "uploadSeconds": 0.126263552, + "downloadSeconds": 0.000074456 }, { - "connectionEstablishedSeconds": 0.063268963, - "uploadSeconds": 0.123293679, - "downloadSeconds": 0.000070154 + "connectionEstablishedSeconds": 0.062523354, + "uploadSeconds": 0.121687039, + "downloadSeconds": 0.000088698 }, { - "connectionEstablishedSeconds": 0.064351409, - "uploadSeconds": 0.125566891, - "downloadSeconds": 0.000081906 + "connectionEstablishedSeconds": 0.066140374, + "uploadSeconds": 0.12882998, + "downloadSeconds": 0.000080221 }, { - "connectionEstablishedSeconds": 0.063977541, - "uploadSeconds": 0.124605088, - "downloadSeconds": 0.000090947 + "connectionEstablishedSeconds": 0.06367331, + "uploadSeconds": 0.123789185, + "downloadSeconds": 0.000084024 }, { - "connectionEstablishedSeconds": 0.064431774, - "uploadSeconds": 0.125293052, - "downloadSeconds": 0.000097249 + "connectionEstablishedSeconds": 0.065822443, + "uploadSeconds": 0.128522425, + "downloadSeconds": 0.00007626 }, { - "connectionEstablishedSeconds": 0.062392999, - "uploadSeconds": 0.12150546, - "downloadSeconds": 0.000089871 + "connectionEstablishedSeconds": 0.066161448, + "uploadSeconds": 0.128911001, + "downloadSeconds": 0.000075998 }, { - "connectionEstablishedSeconds": 0.065171834, - "uploadSeconds": 0.126893219, - "downloadSeconds": 0.00006415 + "connectionEstablishedSeconds": 0.062993283, + "uploadSeconds": 0.122537444, + "downloadSeconds": 0.000079189 }, { - "connectionEstablishedSeconds": 0.063419236, - "uploadSeconds": 0.123194115, - "downloadSeconds": 0.0000752 + "connectionEstablishedSeconds": 0.065840144, + "uploadSeconds": 0.128380241, + "downloadSeconds": 0.000098752 }, { - "connectionEstablishedSeconds": 0.062857141, - "uploadSeconds": 0.122546209, - "downloadSeconds": 0.000079444 + "connectionEstablishedSeconds": 0.065179651, + "uploadSeconds": 0.127048149, + "downloadSeconds": 0.000078663 }, { - "connectionEstablishedSeconds": 0.060385801, - "uploadSeconds": 0.117631317, - "downloadSeconds": 0.000085714 + "connectionEstablishedSeconds": 0.063577878, + "uploadSeconds": 0.123962103, + "downloadSeconds": 0.000050825 }, { - "connectionEstablishedSeconds": 0.066192975, - "uploadSeconds": 0.128907583, - "downloadSeconds": 0.00007039 + "connectionEstablishedSeconds": 0.065114994, + "uploadSeconds": 0.126840587, + "downloadSeconds": 0.000060604 }, { - "connectionEstablishedSeconds": 0.06264006, - "uploadSeconds": 0.121778547, - "downloadSeconds": 0.000095732 + "connectionEstablishedSeconds": 0.06212057, + "uploadSeconds": 0.120834495, + "downloadSeconds": 0.000087046 }, { - "connectionEstablishedSeconds": 0.064492003, - "uploadSeconds": 0.125525397, - "downloadSeconds": 0.000046312 + "connectionEstablishedSeconds": 0.065030609, + "uploadSeconds": 0.126546622, + "downloadSeconds": 0.000081112 }, { - "connectionEstablishedSeconds": 0.065256489, - "uploadSeconds": 0.127060265, - "downloadSeconds": 0.000111949 + "connectionEstablishedSeconds": 0.06283852, + "uploadSeconds": 0.122414091, + "downloadSeconds": 0.000053942 }, { - "connectionEstablishedSeconds": 0.064660316, - "uploadSeconds": 0.125923877, - "downloadSeconds": 0.000077244 + "connectionEstablishedSeconds": 0.065302421, + "uploadSeconds": 0.127077082, + "downloadSeconds": 0.000081628 }, { - "connectionEstablishedSeconds": 0.06355617, - "uploadSeconds": 0.123885464, - "downloadSeconds": 0.000086419 + "connectionEstablishedSeconds": 0.066722523, + "uploadSeconds": 0.129948955, + "downloadSeconds": 0.000107012 }, { - "connectionEstablishedSeconds": 0.062414997, - "uploadSeconds": 0.121797196, - "downloadSeconds": 0.00010588 + "connectionEstablishedSeconds": 0.063075872, + "uploadSeconds": 0.122902967, + "downloadSeconds": 0.000128587 }, { - "connectionEstablishedSeconds": 0.066173573, - "uploadSeconds": 0.12932854, - "downloadSeconds": 0.000063044 + "connectionEstablishedSeconds": 0.06241058, + "uploadSeconds": 0.121339306, + "downloadSeconds": 0.000078697 }, { - "connectionEstablishedSeconds": 0.062986592, - "uploadSeconds": 0.122868444, - "downloadSeconds": 0.000081463 + "connectionEstablishedSeconds": 0.063973005, + "uploadSeconds": 0.124662567, + "downloadSeconds": 0.000076339 }, { - "connectionEstablishedSeconds": 0.063503944, - "uploadSeconds": 0.12384623, - "downloadSeconds": 0.000075366 + "connectionEstablishedSeconds": 0.064128175, + "uploadSeconds": 0.124891473, + "downloadSeconds": 0.000086363 }, { - "connectionEstablishedSeconds": 0.064330604, - "uploadSeconds": 0.125533853, - "downloadSeconds": 0.000079061 + "connectionEstablishedSeconds": 0.065478882, + "uploadSeconds": 0.127407412, + "downloadSeconds": 0.000063738 }, { - "connectionEstablishedSeconds": 0.065544157, - "uploadSeconds": 0.128015899, - "downloadSeconds": 0.000068859 + "connectionEstablishedSeconds": 0.066621562, + "uploadSeconds": 0.128820191, + "downloadSeconds": 0.000084262 }, { - "connectionEstablishedSeconds": 0.064812758, - "uploadSeconds": 0.126523177, - "downloadSeconds": 0.000073051 + "connectionEstablishedSeconds": 0.064804123, + "uploadSeconds": 0.125901878, + "downloadSeconds": 0.00008048 }, { - "connectionEstablishedSeconds": 0.062981201, - "uploadSeconds": 0.122817041, - "downloadSeconds": 0.000148614 + "connectionEstablishedSeconds": 0.067100174, + "uploadSeconds": 0.130916696, + "downloadSeconds": 0.000087192 }, { - "connectionEstablishedSeconds": 0.066029472, - "uploadSeconds": 0.128808333, - "downloadSeconds": 0.000127753 + "connectionEstablishedSeconds": 0.065284109, + "uploadSeconds": 0.127163699, + "downloadSeconds": 0.000062674 }, { - "connectionEstablishedSeconds": 0.063809677, - "uploadSeconds": 0.124393806, - "downloadSeconds": 0.000074221 + "connectionEstablishedSeconds": 0.06473319, + "uploadSeconds": 0.126026119, + "downloadSeconds": 0.000091165 }, { - "connectionEstablishedSeconds": 0.064258717, - "uploadSeconds": 0.125336028, - "downloadSeconds": 0.000071534 + "connectionEstablishedSeconds": 0.065570038, + "uploadSeconds": 0.127822192, + "downloadSeconds": 0.000060558 }, { - "connectionEstablishedSeconds": 0.063431624, - "uploadSeconds": 0.123813457, - "downloadSeconds": 0.000076783 + "connectionEstablishedSeconds": 0.065484686, + "uploadSeconds": 0.127695353, + "downloadSeconds": 0.000085598 }, { - "connectionEstablishedSeconds": 0.066005284, - "uploadSeconds": 0.128856331, - "downloadSeconds": 0.000081916 + "connectionEstablishedSeconds": 0.061210531, + "uploadSeconds": 0.118908659, + "downloadSeconds": 0.000078286 }, { - "connectionEstablishedSeconds": 0.06587658, - "uploadSeconds": 0.128505099, - "downloadSeconds": 0.000082519 + "connectionEstablishedSeconds": 0.063481257, + "uploadSeconds": 0.123340897, + "downloadSeconds": 0.000112374 }, { - "connectionEstablishedSeconds": 0.062858795, - "uploadSeconds": 0.122414246, - "downloadSeconds": 0.000083717 + "connectionEstablishedSeconds": 0.06411204, + "uploadSeconds": 0.124634666, + "downloadSeconds": 0.000082322 }, { - "connectionEstablishedSeconds": 0.061783997, - "uploadSeconds": 0.119334631, - "downloadSeconds": 0.000109582 + "connectionEstablishedSeconds": 0.062239547, + "uploadSeconds": 0.121146964, + "downloadSeconds": 0.000081609 }, { - "connectionEstablishedSeconds": 0.062791376, - "uploadSeconds": 0.122468863, - "downloadSeconds": 0.000076865 + "connectionEstablishedSeconds": 0.06241652, + "uploadSeconds": 0.121505384, + "downloadSeconds": 0.000084119 }, { - "connectionEstablishedSeconds": 0.062901138, - "uploadSeconds": 0.122598995, - "downloadSeconds": 0.000071515 + "connectionEstablishedSeconds": 0.064479432, + "uploadSeconds": 0.125733454, + "downloadSeconds": 0.000068474 }, { - "connectionEstablishedSeconds": 0.062531113, - "uploadSeconds": 0.121863399, - "downloadSeconds": 0.000087865 + "connectionEstablishedSeconds": 0.066331924, + "uploadSeconds": 0.129337226, + "downloadSeconds": 0.000131293 }, { - "connectionEstablishedSeconds": 0.064976981, - "uploadSeconds": 0.126558119, - "downloadSeconds": 0.000115422 + "connectionEstablishedSeconds": 0.065104036, + "uploadSeconds": 0.126754178, + "downloadSeconds": 0.000091442 }, { - "connectionEstablishedSeconds": 0.064216494, - "uploadSeconds": 0.124962731, - "downloadSeconds": 0.000083004 + "connectionEstablishedSeconds": 0.0637304, + "uploadSeconds": 0.124140772, + "downloadSeconds": 0.000079004 }, { - "connectionEstablishedSeconds": 0.062264406, - "uploadSeconds": 0.121360788, - "downloadSeconds": 0.000073056 + "connectionEstablishedSeconds": 0.06541628, + "uploadSeconds": 0.127396082, + "downloadSeconds": 0.000058255 }, { - "connectionEstablishedSeconds": 0.064672496, - "uploadSeconds": 0.126154373, - "downloadSeconds": 0.000091576 + "connectionEstablishedSeconds": 0.064089724, + "uploadSeconds": 0.124570267, + "downloadSeconds": 0.000090973 }, { - "connectionEstablishedSeconds": 0.065740028, - "uploadSeconds": 0.128227022, - "downloadSeconds": 0.000154756 + "connectionEstablishedSeconds": 0.062512896, + "uploadSeconds": 0.121609734, + "downloadSeconds": 0.000085923 }, { - "connectionEstablishedSeconds": 0.061835942, - "uploadSeconds": 0.120442236, - "downloadSeconds": 0.000074908 + "connectionEstablishedSeconds": 0.067080325, + "uploadSeconds": 0.13072748, + "downloadSeconds": 0.000079027 }, { - "connectionEstablishedSeconds": 0.063429564, - "uploadSeconds": 0.123661597, - "downloadSeconds": 0.000052419 + "connectionEstablishedSeconds": 0.066950497, + "uploadSeconds": 0.130311531, + "downloadSeconds": 0.000118296 }, { - "connectionEstablishedSeconds": 0.066476234, - "uploadSeconds": 0.129799817, - "downloadSeconds": 0.000076399 + "connectionEstablishedSeconds": 0.063424248, + "uploadSeconds": 0.123647825, + "downloadSeconds": 0.000066672 }, { - "connectionEstablishedSeconds": 0.062667103, - "uploadSeconds": 0.122210395, - "downloadSeconds": 0.000075119 + "connectionEstablishedSeconds": 0.060437534, + "uploadSeconds": 0.117455929, + "downloadSeconds": 0.000091736 }, { - "connectionEstablishedSeconds": 0.062874746, - "uploadSeconds": 0.122624341, - "downloadSeconds": 0.000099077 + "connectionEstablishedSeconds": 0.063662903, + "uploadSeconds": 0.123920495, + "downloadSeconds": 0.000078148 }, { - "connectionEstablishedSeconds": 0.063208043, - "uploadSeconds": 0.123244426, - "downloadSeconds": 0.000083971 + "connectionEstablishedSeconds": 0.065905467, + "uploadSeconds": 0.128413462, + "downloadSeconds": 0.00005148 }, { - "connectionEstablishedSeconds": 0.062803152, - "uploadSeconds": 0.12237716, - "downloadSeconds": 0.000077384 + "connectionEstablishedSeconds": 0.062669667, + "uploadSeconds": 0.121915854, + "downloadSeconds": 0.000079754 }, { - "connectionEstablishedSeconds": 0.064475435, - "uploadSeconds": 0.12574189, - "downloadSeconds": 0.000047054 + "connectionEstablishedSeconds": 0.061357263, + "uploadSeconds": 0.11931048, + "downloadSeconds": 0.000117476 }, { - "connectionEstablishedSeconds": 0.066113533, - "uploadSeconds": 0.129156976, - "downloadSeconds": 0.000076801 + "connectionEstablishedSeconds": 0.064901746, + "uploadSeconds": 0.126331826, + "downloadSeconds": 0.000094664 }, { - "connectionEstablishedSeconds": 0.065250443, - "uploadSeconds": 0.12746102, - "downloadSeconds": 0.000052761 + "connectionEstablishedSeconds": 0.064194337, + "uploadSeconds": 0.125086379, + "downloadSeconds": 0.000082276 }, { - "connectionEstablishedSeconds": 0.064099146, - "uploadSeconds": 0.12506225, - "downloadSeconds": 0.000077246 + "connectionEstablishedSeconds": 0.065560723, + "uploadSeconds": 0.127569475, + "downloadSeconds": 0.000089714 }, { - "connectionEstablishedSeconds": 0.063758761, - "uploadSeconds": 0.124206074, - "downloadSeconds": 0.000081693 + "connectionEstablishedSeconds": 0.067019224, + "uploadSeconds": 0.130436691, + "downloadSeconds": 0.000090948 }, { - "connectionEstablishedSeconds": 0.064691732, - "uploadSeconds": 0.126195825, - "downloadSeconds": 0.000075353 + "connectionEstablishedSeconds": 0.06532367, + "uploadSeconds": 0.127207457, + "downloadSeconds": 0.000086598 }, { - "connectionEstablishedSeconds": 0.062189209, - "uploadSeconds": 0.121311004, - "downloadSeconds": 0.000069429 + "connectionEstablishedSeconds": 0.062311329, + "uploadSeconds": 0.11996796, + "downloadSeconds": 0.000085597 }, { - "connectionEstablishedSeconds": 0.061228587, - "uploadSeconds": 0.119376962, - "downloadSeconds": 0.00007423 + "connectionEstablishedSeconds": 0.064293896, + "uploadSeconds": 0.125071759, + "downloadSeconds": 0.000084569 }, { - "connectionEstablishedSeconds": 0.061882032, - "uploadSeconds": 0.12067482, - "downloadSeconds": 0.000089354 + "connectionEstablishedSeconds": 0.064947935, + "uploadSeconds": 0.126388251, + "downloadSeconds": 0.000062561 }, { - "connectionEstablishedSeconds": 0.060575704, - "uploadSeconds": 0.118040972, - "downloadSeconds": 0.000095531 + "connectionEstablishedSeconds": 0.062403254, + "uploadSeconds": 0.121419997, + "downloadSeconds": 0.000085121 }, { - "connectionEstablishedSeconds": 0.063224556, - "uploadSeconds": 0.123390466, - "downloadSeconds": 0.000077311 + "connectionEstablishedSeconds": 0.064554434, + "uploadSeconds": 0.125555427, + "downloadSeconds": 0.000084835 }, { - "connectionEstablishedSeconds": 0.061287889, - "uploadSeconds": 0.119465674, - "downloadSeconds": 0.000074671 + "connectionEstablishedSeconds": 0.065129867, + "uploadSeconds": 0.126757758, + "downloadSeconds": 0.000076839 }, { - "connectionEstablishedSeconds": 0.062176027, - "uploadSeconds": 0.121133286, - "downloadSeconds": 0.00007535 + "connectionEstablishedSeconds": 0.062349026, + "uploadSeconds": 0.121155662, + "downloadSeconds": 0.000101132 }, { - "connectionEstablishedSeconds": 0.064492176, - "uploadSeconds": 0.125851577, - "downloadSeconds": 0.000077252 + "connectionEstablishedSeconds": 0.06535092, + "uploadSeconds": 0.1273273, + "downloadSeconds": 0.000089002 }, { - "connectionEstablishedSeconds": 0.063885163, - "uploadSeconds": 0.124464327, - "downloadSeconds": 0.00007576 + "connectionEstablishedSeconds": 0.066094518, + "uploadSeconds": 0.128518422, + "downloadSeconds": 0.000126889 }, { - "connectionEstablishedSeconds": 0.062164169, - "uploadSeconds": 0.12127478, - "downloadSeconds": 0.000070603 + "connectionEstablishedSeconds": 0.064563922, + "uploadSeconds": 0.125643408, + "downloadSeconds": 0.000087266 }, { - "connectionEstablishedSeconds": 0.062933372, - "uploadSeconds": 0.12266429, - "downloadSeconds": 0.000075274 + "connectionEstablishedSeconds": 0.063078447, + "uploadSeconds": 0.122793638, + "downloadSeconds": 0.00005627 }, { - "connectionEstablishedSeconds": 0.063141544, - "uploadSeconds": 0.123043061, - "downloadSeconds": 0.000067134 + "connectionEstablishedSeconds": 0.063925994, + "uploadSeconds": 0.124353016, + "downloadSeconds": 0.000088933 }, { - "connectionEstablishedSeconds": 0.064007733, - "uploadSeconds": 0.124852186, - "downloadSeconds": 0.000092172 + "connectionEstablishedSeconds": 0.064054259, + "uploadSeconds": 0.124578191, + "downloadSeconds": 0.000083031 }, { - "connectionEstablishedSeconds": 0.062662758, - "uploadSeconds": 0.121683962, - "downloadSeconds": 0.000097485 + "connectionEstablishedSeconds": 0.060656395, + "uploadSeconds": 0.117757039, + "downloadSeconds": 0.000082353 } ], "implementation": "rust-libp2p", @@ -1996,504 +1996,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.065345597, - "uploadSeconds": 0.126627588, - "downloadSeconds": 0.000079782 + "connectionEstablishedSeconds": 0.063519078, + "uploadSeconds": 0.122990612, + "downloadSeconds": 0.000077929 }, { - "connectionEstablishedSeconds": 0.06195985, - "uploadSeconds": 0.120559278, - "downloadSeconds": 0.000063813 + "connectionEstablishedSeconds": 0.063665886, + "uploadSeconds": 0.123635194, + "downloadSeconds": 0.000071066 }, { - "connectionEstablishedSeconds": 0.065746356, - "uploadSeconds": 0.1281704, - "downloadSeconds": 0.000042327 + "connectionEstablishedSeconds": 0.062310276, + "uploadSeconds": 0.121258041, + "downloadSeconds": 0.000050745 }, { - "connectionEstablishedSeconds": 0.06182322, - "uploadSeconds": 0.120358159, - "downloadSeconds": 0.000054483 + "connectionEstablishedSeconds": 0.064168618, + "uploadSeconds": 0.124698939, + "downloadSeconds": 0.000062075 }, { - "connectionEstablishedSeconds": 0.063796406, - "uploadSeconds": 0.124231577, - "downloadSeconds": 0.000042138 + "connectionEstablishedSeconds": 0.061712537, + "uploadSeconds": 0.119761987, + "downloadSeconds": 0.000083662 }, { - "connectionEstablishedSeconds": 0.064608911, - "uploadSeconds": 0.125767583, - "downloadSeconds": 0.000042794 + "connectionEstablishedSeconds": 0.066369464, + "uploadSeconds": 0.12928018, + "downloadSeconds": 0.00007292 }, { - "connectionEstablishedSeconds": 0.065418586, - "uploadSeconds": 0.127598866, - "downloadSeconds": 0.0000745 + "connectionEstablishedSeconds": 0.06597437, + "uploadSeconds": 0.128489863, + "downloadSeconds": 0.000095037 }, { - "connectionEstablishedSeconds": 0.063857974, - "uploadSeconds": 0.12470036, - "downloadSeconds": 0.000054574 + "connectionEstablishedSeconds": 0.066852308, + "uploadSeconds": 0.130111008, + "downloadSeconds": 0.000050861 }, { - "connectionEstablishedSeconds": 0.064741435, - "uploadSeconds": 0.126321487, - "downloadSeconds": 0.000049352 + "connectionEstablishedSeconds": 0.065107393, + "uploadSeconds": 0.126825077, + "downloadSeconds": 0.000073899 }, { - "connectionEstablishedSeconds": 0.062298059, - "uploadSeconds": 0.121567394, - "downloadSeconds": 0.000043745 + "connectionEstablishedSeconds": 0.064804187, + "uploadSeconds": 0.126203664, + "downloadSeconds": 0.000094286 }, { - "connectionEstablishedSeconds": 0.062853679, - "uploadSeconds": 0.1215074, - "downloadSeconds": 0.000068952 + "connectionEstablishedSeconds": 0.062656878, + "uploadSeconds": 0.121770066, + "downloadSeconds": 0.000077609 }, { - "connectionEstablishedSeconds": 0.061282703, - "uploadSeconds": 0.119296348, - "downloadSeconds": 0.000044825 + "connectionEstablishedSeconds": 0.064139385, + "uploadSeconds": 0.125054034, + "downloadSeconds": 0.000063282 }, { - "connectionEstablishedSeconds": 0.065680616, - "uploadSeconds": 0.128422717, - "downloadSeconds": 0.00004375 + "connectionEstablishedSeconds": 0.065992239, + "uploadSeconds": 0.128643708, + "downloadSeconds": 0.000085683 }, { - "connectionEstablishedSeconds": 0.060174806, - "uploadSeconds": 0.117313557, - "downloadSeconds": 0.000045011 + "connectionEstablishedSeconds": 0.066444011, + "uploadSeconds": 0.129491444, + "downloadSeconds": 0.000053422 }, { - "connectionEstablishedSeconds": 0.064585942, - "uploadSeconds": 0.126086034, - "downloadSeconds": 0.000043884 + "connectionEstablishedSeconds": 0.065541288, + "uploadSeconds": 0.127670473, + "downloadSeconds": 0.000051367 }, { - "connectionEstablishedSeconds": 0.064333531, - "uploadSeconds": 0.125695507, - "downloadSeconds": 0.000041636 + "connectionEstablishedSeconds": 0.065511296, + "uploadSeconds": 0.127685358, + "downloadSeconds": 0.000081536 }, { - "connectionEstablishedSeconds": 0.063111935, - "uploadSeconds": 0.122901385, - "downloadSeconds": 0.000043733 + "connectionEstablishedSeconds": 0.0655056, + "uploadSeconds": 0.127548821, + "downloadSeconds": 0.000070778 }, { - "connectionEstablishedSeconds": 0.064714655, - "uploadSeconds": 0.12637165, - "downloadSeconds": 0.000044685 + "connectionEstablishedSeconds": 0.06506113, + "uploadSeconds": 0.126577011, + "downloadSeconds": 0.000049992 }, { - "connectionEstablishedSeconds": 0.062752903, - "uploadSeconds": 0.122323865, - "downloadSeconds": 0.000060012 + "connectionEstablishedSeconds": 0.065260381, + "uploadSeconds": 0.127215303, + "downloadSeconds": 0.00004709 }, { - "connectionEstablishedSeconds": 0.066008082, - "uploadSeconds": 0.128951116, - "downloadSeconds": 0.000043653 + "connectionEstablishedSeconds": 0.066048768, + "uploadSeconds": 0.128658866, + "downloadSeconds": 0.000049508 }, { - "connectionEstablishedSeconds": 0.064480896, - "uploadSeconds": 0.125931628, - "downloadSeconds": 0.000061708 + "connectionEstablishedSeconds": 0.063479391, + "uploadSeconds": 0.123462859, + "downloadSeconds": 0.000072927 }, { - "connectionEstablishedSeconds": 0.065804323, - "uploadSeconds": 0.128470453, - "downloadSeconds": 0.00004138 + "connectionEstablishedSeconds": 0.063377289, + "uploadSeconds": 0.123550736, + "downloadSeconds": 0.000084836 }, { - "connectionEstablishedSeconds": 0.064074568, - "uploadSeconds": 0.125002588, - "downloadSeconds": 0.000074019 + "connectionEstablishedSeconds": 0.065219667, + "uploadSeconds": 0.127035888, + "downloadSeconds": 0.000077057 }, { - "connectionEstablishedSeconds": 0.064293037, - "uploadSeconds": 0.125354149, - "downloadSeconds": 0.000044326 + "connectionEstablishedSeconds": 0.065376484, + "uploadSeconds": 0.127416787, + "downloadSeconds": 0.000080627 }, { - "connectionEstablishedSeconds": 0.062835329, - "uploadSeconds": 0.122464034, - "downloadSeconds": 0.000046381 + "connectionEstablishedSeconds": 0.060574272, + "uploadSeconds": 0.117808539, + "downloadSeconds": 0.00006683 }, { - "connectionEstablishedSeconds": 0.062287958, - "uploadSeconds": 0.121541381, - "downloadSeconds": 0.00005813 + "connectionEstablishedSeconds": 0.063172525, + "uploadSeconds": 0.1229846, + "downloadSeconds": 0.0000842 }, { - "connectionEstablishedSeconds": 0.063293814, - "uploadSeconds": 0.123336206, - "downloadSeconds": 0.000049922 + "connectionEstablishedSeconds": 0.063844106, + "uploadSeconds": 0.124200646, + "downloadSeconds": 0.000104537 }, { - "connectionEstablishedSeconds": 0.062950057, - "uploadSeconds": 0.122558901, - "downloadSeconds": 0.000075057 + "connectionEstablishedSeconds": 0.06151384, + "uploadSeconds": 0.119567831, + "downloadSeconds": 0.000050586 }, { - "connectionEstablishedSeconds": 0.064089433, - "uploadSeconds": 0.125055731, - "downloadSeconds": 0.000049211 + "connectionEstablishedSeconds": 0.065960291, + "uploadSeconds": 0.128569634, + "downloadSeconds": 0.000069633 }, { - "connectionEstablishedSeconds": 0.062809583, - "uploadSeconds": 0.122608524, - "downloadSeconds": 0.000044586 + "connectionEstablishedSeconds": 0.066044813, + "uploadSeconds": 0.128689496, + "downloadSeconds": 0.000055203 }, { - "connectionEstablishedSeconds": 0.063234631, - "uploadSeconds": 0.123434574, - "downloadSeconds": 0.000044071 + "connectionEstablishedSeconds": 0.064051288, + "uploadSeconds": 0.124576427, + "downloadSeconds": 0.000078675 }, { - "connectionEstablishedSeconds": 0.06434445, - "uploadSeconds": 0.125639794, - "downloadSeconds": 0.000042225 + "connectionEstablishedSeconds": 0.06467373, + "uploadSeconds": 0.125604057, + "downloadSeconds": 0.000051035 }, { - "connectionEstablishedSeconds": 0.064164746, - "uploadSeconds": 0.125205322, - "downloadSeconds": 0.00005385 + "connectionEstablishedSeconds": 0.064637567, + "uploadSeconds": 0.125751746, + "downloadSeconds": 0.000071124 }, { - "connectionEstablishedSeconds": 0.066054385, - "uploadSeconds": 0.128645324, - "downloadSeconds": 0.000117253 + "connectionEstablishedSeconds": 0.062621301, + "uploadSeconds": 0.121779078, + "downloadSeconds": 0.000046352 }, { - "connectionEstablishedSeconds": 0.064043208, - "uploadSeconds": 0.124796422, - "downloadSeconds": 0.00004381 + "connectionEstablishedSeconds": 0.065625727, + "uploadSeconds": 0.127832477, + "downloadSeconds": 0.000058497 }, { - "connectionEstablishedSeconds": 0.065831828, - "uploadSeconds": 0.128577677, - "downloadSeconds": 0.000060214 + "connectionEstablishedSeconds": 0.061680041, + "uploadSeconds": 0.119933855, + "downloadSeconds": 0.000048531 }, { - "connectionEstablishedSeconds": 0.060849511, - "uploadSeconds": 0.118586915, - "downloadSeconds": 0.000043138 + "connectionEstablishedSeconds": 0.066777416, + "uploadSeconds": 0.130039376, + "downloadSeconds": 0.000053951 }, { - "connectionEstablishedSeconds": 0.066767867, - "uploadSeconds": 0.130452973, - "downloadSeconds": 0.00004553 + "connectionEstablishedSeconds": 0.065635455, + "uploadSeconds": 0.127942878, + "downloadSeconds": 0.000067954 }, { - "connectionEstablishedSeconds": 0.06153828, - "uploadSeconds": 0.119777042, - "downloadSeconds": 0.000074773 + "connectionEstablishedSeconds": 0.064511421, + "uploadSeconds": 0.125934908, + "downloadSeconds": 0.000064877 }, { - "connectionEstablishedSeconds": 0.06366191, - "uploadSeconds": 0.124192021, - "downloadSeconds": 0.000047986 + "connectionEstablishedSeconds": 0.066366217, + "uploadSeconds": 0.129128895, + "downloadSeconds": 0.000048741 }, { - "connectionEstablishedSeconds": 0.062317532, - "uploadSeconds": 0.121469918, - "downloadSeconds": 0.000050752 + "connectionEstablishedSeconds": 0.064343476, + "uploadSeconds": 0.125404508, + "downloadSeconds": 0.000051655 }, { - "connectionEstablishedSeconds": 0.064815759, - "uploadSeconds": 0.126497739, - "downloadSeconds": 0.00004439 + "connectionEstablishedSeconds": 0.06482128, + "uploadSeconds": 0.126211526, + "downloadSeconds": 0.000069293 }, { - "connectionEstablishedSeconds": 0.065128152, - "uploadSeconds": 0.127083413, - "downloadSeconds": 0.00004496 + "connectionEstablishedSeconds": 0.064502871, + "uploadSeconds": 0.125611693, + "downloadSeconds": 0.000074536 }, { - "connectionEstablishedSeconds": 0.061595343, - "uploadSeconds": 0.11990911, - "downloadSeconds": 0.000049068 + "connectionEstablishedSeconds": 0.064757256, + "uploadSeconds": 0.126138884, + "downloadSeconds": 0.000095554 }, { - "connectionEstablishedSeconds": 0.06438175, - "uploadSeconds": 0.125755389, - "downloadSeconds": 0.000054198 + "connectionEstablishedSeconds": 0.062325722, + "uploadSeconds": 0.121371296, + "downloadSeconds": 0.000070108 }, { - "connectionEstablishedSeconds": 0.064237585, - "uploadSeconds": 0.125526082, - "downloadSeconds": 0.000045735 + "connectionEstablishedSeconds": 0.06502706, + "uploadSeconds": 0.126730306, + "downloadSeconds": 0.000097587 }, { - "connectionEstablishedSeconds": 0.066888061, - "uploadSeconds": 0.130603408, - "downloadSeconds": 0.000062431 + "connectionEstablishedSeconds": 0.063551583, + "uploadSeconds": 0.12373032, + "downloadSeconds": 0.000070006 }, { - "connectionEstablishedSeconds": 0.062696867, - "uploadSeconds": 0.122318473, - "downloadSeconds": 0.000060549 + "connectionEstablishedSeconds": 0.063523662, + "uploadSeconds": 0.123407521, + "downloadSeconds": 0.000095457 }, { - "connectionEstablishedSeconds": 0.062242458, - "uploadSeconds": 0.121236386, - "downloadSeconds": 0.00004419 + "connectionEstablishedSeconds": 0.062619221, + "uploadSeconds": 0.121918325, + "downloadSeconds": 0.000076268 }, { - "connectionEstablishedSeconds": 0.065115077, - "uploadSeconds": 0.127120581, - "downloadSeconds": 0.000043557 + "connectionEstablishedSeconds": 0.065951366, + "uploadSeconds": 0.128622794, + "downloadSeconds": 0.000081698 }, { - "connectionEstablishedSeconds": 0.061703831, - "uploadSeconds": 0.120399369, - "downloadSeconds": 0.000076802 + "connectionEstablishedSeconds": 0.064698136, + "uploadSeconds": 0.125988787, + "downloadSeconds": 0.000092626 }, { - "connectionEstablishedSeconds": 0.060947387, - "uploadSeconds": 0.118735343, - "downloadSeconds": 0.000041297 + "connectionEstablishedSeconds": 0.061843308, + "uploadSeconds": 0.119684107, + "downloadSeconds": 0.00008365 }, { - "connectionEstablishedSeconds": 0.062627883, - "uploadSeconds": 0.122338635, - "downloadSeconds": 0.000062754 + "connectionEstablishedSeconds": 0.063300197, + "uploadSeconds": 0.123280677, + "downloadSeconds": 0.000092735 }, { - "connectionEstablishedSeconds": 0.06587111, - "uploadSeconds": 0.128622617, - "downloadSeconds": 0.000071002 + "connectionEstablishedSeconds": 0.063834879, + "uploadSeconds": 0.124240871, + "downloadSeconds": 0.000085256 }, { - "connectionEstablishedSeconds": 0.061339484, - "uploadSeconds": 0.119520814, - "downloadSeconds": 0.000044442 + "connectionEstablishedSeconds": 0.062236693, + "uploadSeconds": 0.121076369, + "downloadSeconds": 0.000085015 }, { - "connectionEstablishedSeconds": 0.06266093, - "uploadSeconds": 0.122319167, - "downloadSeconds": 0.000045757 + "connectionEstablishedSeconds": 0.066130838, + "uploadSeconds": 0.12887493, + "downloadSeconds": 0.000086221 }, { - "connectionEstablishedSeconds": 0.059822555, - "uploadSeconds": 0.116451437, - "downloadSeconds": 0.000051119 + "connectionEstablishedSeconds": 0.06279212, + "uploadSeconds": 0.122060554, + "downloadSeconds": 0.000094097 }, { - "connectionEstablishedSeconds": 0.064790049, - "uploadSeconds": 0.126349844, - "downloadSeconds": 0.000054441 + "connectionEstablishedSeconds": 0.066620106, + "uploadSeconds": 0.129906214, + "downloadSeconds": 0.000074539 }, { - "connectionEstablishedSeconds": 0.060382326, - "uploadSeconds": 0.117494745, - "downloadSeconds": 0.000066657 + "connectionEstablishedSeconds": 0.065449705, + "uploadSeconds": 0.127120498, + "downloadSeconds": 0.000070276 }, { - "connectionEstablishedSeconds": 0.064148746, - "uploadSeconds": 0.125341426, - "downloadSeconds": 0.000068746 + "connectionEstablishedSeconds": 0.064987889, + "uploadSeconds": 0.126646536, + "downloadSeconds": 0.000097892 }, { - "connectionEstablishedSeconds": 0.064827261, - "uploadSeconds": 0.126498123, - "downloadSeconds": 0.000046183 + "connectionEstablishedSeconds": 0.065076398, + "uploadSeconds": 0.126771911, + "downloadSeconds": 0.000105138 }, { - "connectionEstablishedSeconds": 0.063153185, - "uploadSeconds": 0.123135312, - "downloadSeconds": 0.000056084 + "connectionEstablishedSeconds": 0.064257919, + "uploadSeconds": 0.124723095, + "downloadSeconds": 0.00009047 }, { - "connectionEstablishedSeconds": 0.064816062, - "uploadSeconds": 0.126277356, - "downloadSeconds": 0.000057828 + "connectionEstablishedSeconds": 0.060898769, + "uploadSeconds": 0.118227532, + "downloadSeconds": 0.000084797 }, { - "connectionEstablishedSeconds": 0.064278199, - "uploadSeconds": 0.125414573, - "downloadSeconds": 0.000056262 + "connectionEstablishedSeconds": 0.063728016, + "uploadSeconds": 0.123884811, + "downloadSeconds": 0.000080106 }, { - "connectionEstablishedSeconds": 0.062752747, - "uploadSeconds": 0.122380922, - "downloadSeconds": 0.00004374 + "connectionEstablishedSeconds": 0.064262811, + "uploadSeconds": 0.124954518, + "downloadSeconds": 0.000090781 }, { - "connectionEstablishedSeconds": 0.063445685, - "uploadSeconds": 0.12384881, - "downloadSeconds": 0.000058514 + "connectionEstablishedSeconds": 0.066008012, + "uploadSeconds": 0.128710865, + "downloadSeconds": 0.000055674 }, { - "connectionEstablishedSeconds": 0.061353473, - "uploadSeconds": 0.11954829, - "downloadSeconds": 0.000046112 + "connectionEstablishedSeconds": 0.065924989, + "uploadSeconds": 0.128442804, + "downloadSeconds": 0.0000892 }, { - "connectionEstablishedSeconds": 0.061389462, - "uploadSeconds": 0.119577677, - "downloadSeconds": 0.00004814 + "connectionEstablishedSeconds": 0.064246623, + "uploadSeconds": 0.125166351, + "downloadSeconds": 0.000045633 }, { - "connectionEstablishedSeconds": 0.06504855, - "uploadSeconds": 0.126994673, - "downloadSeconds": 0.000045321 + "connectionEstablishedSeconds": 0.065089089, + "uploadSeconds": 0.126801117, + "downloadSeconds": 0.000051485 }, { - "connectionEstablishedSeconds": 0.063919567, - "uploadSeconds": 0.124684165, - "downloadSeconds": 0.000046332 + "connectionEstablishedSeconds": 0.064307456, + "uploadSeconds": 0.125302103, + "downloadSeconds": 0.000052845 }, { - "connectionEstablishedSeconds": 0.063229164, - "uploadSeconds": 0.123321507, - "downloadSeconds": 0.000067032 + "connectionEstablishedSeconds": 0.064868441, + "uploadSeconds": 0.126266168, + "downloadSeconds": 0.000126958 }, { - "connectionEstablishedSeconds": 0.06335159, - "uploadSeconds": 0.123595726, - "downloadSeconds": 0.000041004 + "connectionEstablishedSeconds": 0.066007201, + "uploadSeconds": 0.128569868, + "downloadSeconds": 0.000095506 }, { - "connectionEstablishedSeconds": 0.065081469, - "uploadSeconds": 0.126797911, - "downloadSeconds": 0.000043306 + "connectionEstablishedSeconds": 0.063274614, + "uploadSeconds": 0.122752513, + "downloadSeconds": 0.00005209 }, { - "connectionEstablishedSeconds": 0.061901279, - "uploadSeconds": 0.120697729, - "downloadSeconds": 0.000047542 + "connectionEstablishedSeconds": 0.064596218, + "uploadSeconds": 0.125676799, + "downloadSeconds": 0.000055948 }, { - "connectionEstablishedSeconds": 0.064367226, - "uploadSeconds": 0.125627014, - "downloadSeconds": 0.000045714 + "connectionEstablishedSeconds": 0.066233576, + "uploadSeconds": 0.129240386, + "downloadSeconds": 0.000069711 }, { - "connectionEstablishedSeconds": 0.063913815, - "uploadSeconds": 0.124644766, - "downloadSeconds": 0.00004568 + "connectionEstablishedSeconds": 0.062692077, + "uploadSeconds": 0.121887906, + "downloadSeconds": 0.000096332 }, { - "connectionEstablishedSeconds": 0.06340771, - "uploadSeconds": 0.123482778, - "downloadSeconds": 0.000044898 + "connectionEstablishedSeconds": 0.066084061, + "uploadSeconds": 0.128741924, + "downloadSeconds": 0.000060631 }, { - "connectionEstablishedSeconds": 0.063186517, - "uploadSeconds": 0.123321763, - "downloadSeconds": 0.000058528 + "connectionEstablishedSeconds": 0.063618972, + "uploadSeconds": 0.123940924, + "downloadSeconds": 0.000079125 }, { - "connectionEstablishedSeconds": 0.064830366, - "uploadSeconds": 0.126475036, - "downloadSeconds": 0.000043936 + "connectionEstablishedSeconds": 0.064626859, + "uploadSeconds": 0.125812036, + "downloadSeconds": 0.00006151 }, { - "connectionEstablishedSeconds": 0.064311509, - "uploadSeconds": 0.1256985, - "downloadSeconds": 0.00004633 + "connectionEstablishedSeconds": 0.064685468, + "uploadSeconds": 0.125981711, + "downloadSeconds": 0.000079766 }, { - "connectionEstablishedSeconds": 0.064923178, - "uploadSeconds": 0.126746877, - "downloadSeconds": 0.000053903 + "connectionEstablishedSeconds": 0.066351685, + "uploadSeconds": 0.129293632, + "downloadSeconds": 0.000057879 }, { - "connectionEstablishedSeconds": 0.062433534, - "uploadSeconds": 0.121735648, - "downloadSeconds": 0.000042678 + "connectionEstablishedSeconds": 0.066941968, + "uploadSeconds": 0.13060837, + "downloadSeconds": 0.000091937 }, { - "connectionEstablishedSeconds": 0.0630008, - "uploadSeconds": 0.122846943, - "downloadSeconds": 0.000069978 + "connectionEstablishedSeconds": 0.063342774, + "uploadSeconds": 0.123086611, + "downloadSeconds": 0.000090204 }, { - "connectionEstablishedSeconds": 0.061905677, - "uploadSeconds": 0.120652533, - "downloadSeconds": 0.000041876 + "connectionEstablishedSeconds": 0.061606028, + "uploadSeconds": 0.11983355, + "downloadSeconds": 0.000098157 }, { - "connectionEstablishedSeconds": 0.061748607, - "uploadSeconds": 0.120433329, - "downloadSeconds": 0.000051629 + "connectionEstablishedSeconds": 0.06640212, + "uploadSeconds": 0.129430666, + "downloadSeconds": 0.000103247 }, { - "connectionEstablishedSeconds": 0.063537551, - "uploadSeconds": 0.12409735, - "downloadSeconds": 0.000048765 + "connectionEstablishedSeconds": 0.061717249, + "uploadSeconds": 0.120163634, + "downloadSeconds": 0.000067477 }, { - "connectionEstablishedSeconds": 0.065324316, - "uploadSeconds": 0.127421798, - "downloadSeconds": 0.000050191 + "connectionEstablishedSeconds": 0.062332833, + "uploadSeconds": 0.121309199, + "downloadSeconds": 0.000067077 }, { - "connectionEstablishedSeconds": 0.062042321, - "uploadSeconds": 0.120701257, - "downloadSeconds": 0.000083878 + "connectionEstablishedSeconds": 0.066746587, + "uploadSeconds": 0.130068658, + "downloadSeconds": 0.000142669 }, { - "connectionEstablishedSeconds": 0.065968655, - "uploadSeconds": 0.128594752, - "downloadSeconds": 0.000046201 + "connectionEstablishedSeconds": 0.065263106, + "uploadSeconds": 0.127183749, + "downloadSeconds": 0.000086632 }, { - "connectionEstablishedSeconds": 0.066267306, - "uploadSeconds": 0.129164475, - "downloadSeconds": 0.000047815 + "connectionEstablishedSeconds": 0.064773722, + "uploadSeconds": 0.126194066, + "downloadSeconds": 0.000082269 }, { - "connectionEstablishedSeconds": 0.063216526, - "uploadSeconds": 0.123040735, - "downloadSeconds": 0.000048823 + "connectionEstablishedSeconds": 0.063074204, + "uploadSeconds": 0.122612869, + "downloadSeconds": 0.000050804 }, { - "connectionEstablishedSeconds": 0.062511579, - "uploadSeconds": 0.121695004, - "downloadSeconds": 0.000098282 + "connectionEstablishedSeconds": 0.065106436, + "uploadSeconds": 0.126604141, + "downloadSeconds": 0.00004978 }, { - "connectionEstablishedSeconds": 0.06385184, - "uploadSeconds": 0.124698687, - "downloadSeconds": 0.00004754 + "connectionEstablishedSeconds": 0.061870206, + "uploadSeconds": 0.120408102, + "downloadSeconds": 0.000076583 }, { - "connectionEstablishedSeconds": 0.066343358, - "uploadSeconds": 0.129372553, - "downloadSeconds": 0.000045503 + "connectionEstablishedSeconds": 0.065547347, + "uploadSeconds": 0.127744669, + "downloadSeconds": 0.000083739 }, { - "connectionEstablishedSeconds": 0.063851167, - "uploadSeconds": 0.124576921, - "downloadSeconds": 0.000073813 + "connectionEstablishedSeconds": 0.062585839, + "uploadSeconds": 0.121799329, + "downloadSeconds": 0.000049104 }, { - "connectionEstablishedSeconds": 0.061794819, - "uploadSeconds": 0.120476674, - "downloadSeconds": 0.000054353 + "connectionEstablishedSeconds": 0.065295289, + "uploadSeconds": 0.127162027, + "downloadSeconds": 0.000100753 }, { - "connectionEstablishedSeconds": 0.062373556, - "uploadSeconds": 0.121513655, - "downloadSeconds": 0.000064687 + "connectionEstablishedSeconds": 0.064643425, + "uploadSeconds": 0.125866769, + "downloadSeconds": 0.000128764 }, { - "connectionEstablishedSeconds": 0.065235287, - "uploadSeconds": 0.127276967, - "downloadSeconds": 0.000043501 + "connectionEstablishedSeconds": 0.065628334, + "uploadSeconds": 0.127949056, + "downloadSeconds": 0.000085941 }, { - "connectionEstablishedSeconds": 0.063303476, - "uploadSeconds": 0.123601522, - "downloadSeconds": 0.000054569 + "connectionEstablishedSeconds": 0.063687324, + "uploadSeconds": 0.124031975, + "downloadSeconds": 0.000053998 }, { - "connectionEstablishedSeconds": 0.06083302, - "uploadSeconds": 0.118595803, - "downloadSeconds": 0.000044348 + "connectionEstablishedSeconds": 0.065033196, + "uploadSeconds": 0.126591394, + "downloadSeconds": 0.000090445 } ], "implementation": "rust-libp2p-quinn", @@ -2504,503 +2504,503 @@ "result": [ { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192846838, - "downloadSeconds": 0.000037175 + "uploadSeconds": 0.182526996, + "downloadSeconds": 0.000028081 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187225653, - "downloadSeconds": 0.00002122 + "uploadSeconds": 0.190504604, + "downloadSeconds": 0.000030004 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.180294225, - "downloadSeconds": 0.000020804 + "uploadSeconds": 0.193522642, + "downloadSeconds": 0.000033063 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188550533, - "downloadSeconds": 0.00001889 + "uploadSeconds": 0.188083933, + "downloadSeconds": 0.000022961 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187079499, - "downloadSeconds": 0.000019885 + "uploadSeconds": 0.188448323, + "downloadSeconds": 0.00002412 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183078712, - "downloadSeconds": 0.000019767 + "uploadSeconds": 0.196740918, + "downloadSeconds": 0.000026258 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.179674262, - "downloadSeconds": 0.000018376 + "uploadSeconds": 0.18308572, + "downloadSeconds": 0.000028927 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189301769, - "downloadSeconds": 0.000016046 + "uploadSeconds": 0.185745296, + "downloadSeconds": 0.000024131 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.179261369, - "downloadSeconds": 0.000021543 + "uploadSeconds": 0.18907954, + "downloadSeconds": 0.00001991 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.195516869, - "downloadSeconds": 0.00002226 + "uploadSeconds": 0.185833055, + "downloadSeconds": 0.000023142 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191348801, - "downloadSeconds": 0.000019777 + "uploadSeconds": 0.189649454, + "downloadSeconds": 0.000024058 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187403028, - "downloadSeconds": 0.000019978 + "uploadSeconds": 0.191497443, + "downloadSeconds": 0.000021405 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.194552184, - "downloadSeconds": 0.000027462 + "uploadSeconds": 0.189316359, + "downloadSeconds": 0.000023068 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187159984, - "downloadSeconds": 0.000018502 + "uploadSeconds": 0.190140897, + "downloadSeconds": 0.000022992 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190738456, - "downloadSeconds": 0.000021419 + "uploadSeconds": 0.195869519, + "downloadSeconds": 0.000029358 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192054637, - "downloadSeconds": 0.000026524 + "uploadSeconds": 0.189150223, + "downloadSeconds": 0.000024037 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.180311141, - "downloadSeconds": 0.000020699 + "uploadSeconds": 0.192729951, + "downloadSeconds": 0.000022296 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191411991, - "downloadSeconds": 0.000021317 + "uploadSeconds": 0.193891543, + "downloadSeconds": 0.000024125 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188145831, - "downloadSeconds": 0.000020147 + "uploadSeconds": 0.188204969, + "downloadSeconds": 0.000027787 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186536958, - "downloadSeconds": 0.000017486 + "uploadSeconds": 0.180378732, + "downloadSeconds": 0.000022672 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18584601, - "downloadSeconds": 0.000021541 + "uploadSeconds": 0.177582096, + "downloadSeconds": 0.000022659 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.178354975, - "downloadSeconds": 0.000020018 + "uploadSeconds": 0.193350469, + "downloadSeconds": 0.000020163 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.178293565, - "downloadSeconds": 0.000019429 + "uploadSeconds": 0.185767481, + "downloadSeconds": 0.000026842 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186344401, - "downloadSeconds": 0.000016421 + "uploadSeconds": 0.193804953, + "downloadSeconds": 0.000020949 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193071917, - "downloadSeconds": 0.000019174 + "uploadSeconds": 0.18438266, + "downloadSeconds": 0.000023656 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190289691, - "downloadSeconds": 0.000026341 + "uploadSeconds": 0.183008634, + "downloadSeconds": 0.000023277 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188518447, - "downloadSeconds": 0.000021059 + "uploadSeconds": 0.191210666, + "downloadSeconds": 0.000024137 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.19045129, - "downloadSeconds": 0.000026429 + "uploadSeconds": 0.186482695, + "downloadSeconds": 0.000022633 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186835899, - "downloadSeconds": 0.000030147 + "uploadSeconds": 0.189309966, + "downloadSeconds": 0.000023136 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183109891, - "downloadSeconds": 0.000023588 + "uploadSeconds": 0.191818133, + "downloadSeconds": 0.000021278 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185059453, - "downloadSeconds": 0.000023165 + "uploadSeconds": 0.189251616, + "downloadSeconds": 0.000021964 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185681056, - "downloadSeconds": 0.000026437 + "uploadSeconds": 0.181809604, + "downloadSeconds": 0.000028936 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183409423, - "downloadSeconds": 0.000016582 + "uploadSeconds": 0.18660164, + "downloadSeconds": 0.000024492 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184370277, - "downloadSeconds": 0.000026094 + "uploadSeconds": 0.189789357, + "downloadSeconds": 0.000021157 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192355075, - "downloadSeconds": 0.0000183 + "uploadSeconds": 0.184932541, + "downloadSeconds": 0.000023631 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184482574, - "downloadSeconds": 0.000022659 + "uploadSeconds": 0.186822751, + "downloadSeconds": 0.000020386 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185725446, - "downloadSeconds": 0.000016072 + "uploadSeconds": 0.1918446, + "downloadSeconds": 0.000025974 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188063944, - "downloadSeconds": 0.000022491 + "uploadSeconds": 0.193359663, + "downloadSeconds": 0.000023906 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.180056658, - "downloadSeconds": 0.000017605 + "uploadSeconds": 0.180623778, + "downloadSeconds": 0.000022066 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188372489, - "downloadSeconds": 0.000022438 + "uploadSeconds": 0.194065624, + "downloadSeconds": 0.000024338 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192814141, - "downloadSeconds": 0.000020323 + "uploadSeconds": 0.186297434, + "downloadSeconds": 0.000024067 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187925726, - "downloadSeconds": 0.000025641 + "uploadSeconds": 0.193217938, + "downloadSeconds": 0.00003172 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187622686, - "downloadSeconds": 0.000018206 + "uploadSeconds": 0.189385811, + "downloadSeconds": 0.000030405 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187187961, - "downloadSeconds": 0.00001939 + "uploadSeconds": 0.187927176, + "downloadSeconds": 0.000029698 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182899565, - "downloadSeconds": 0.000019681 + "uploadSeconds": 0.188805384, + "downloadSeconds": 0.000034208 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185843579, - "downloadSeconds": 0.000019817 + "uploadSeconds": 0.189654743, + "downloadSeconds": 0.000024488 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188049356, - "downloadSeconds": 0.00002526 + "uploadSeconds": 0.191317788, + "downloadSeconds": 0.000030165 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.195165351, - "downloadSeconds": 0.000019705 + "uploadSeconds": 0.177344546, + "downloadSeconds": 0.000022917 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186840089, - "downloadSeconds": 0.000020557 + "uploadSeconds": 0.185253469, + "downloadSeconds": 0.000021784 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18747958, - "downloadSeconds": 0.000026473 + "uploadSeconds": 0.194740613, + "downloadSeconds": 0.000024717 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185693664, - "downloadSeconds": 0.000019646 + "uploadSeconds": 0.189147404, + "downloadSeconds": 0.000030423 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193451665, - "downloadSeconds": 0.000022524 + "uploadSeconds": 0.194014909, + "downloadSeconds": 0.000020974 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.194108328, - "downloadSeconds": 0.000019511 + "uploadSeconds": 0.181861578, + "downloadSeconds": 0.00002424 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189855379, - "downloadSeconds": 0.000019748 + "uploadSeconds": 0.192169323, + "downloadSeconds": 0.000024615 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182903898, - "downloadSeconds": 0.000017027 + "uploadSeconds": 0.188696576, + "downloadSeconds": 0.000021796 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191944715, - "downloadSeconds": 0.000027435 + "uploadSeconds": 0.179715562, + "downloadSeconds": 0.000024024 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191778908, - "downloadSeconds": 0.000025572 + "uploadSeconds": 0.187766484, + "downloadSeconds": 0.000020671 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190211536, - "downloadSeconds": 0.000026185 + "uploadSeconds": 0.191328207, + "downloadSeconds": 0.000021573 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184234077, - "downloadSeconds": 0.000033723 + "uploadSeconds": 0.190159105, + "downloadSeconds": 0.000025215 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185647252, - "downloadSeconds": 0.000030603 + "uploadSeconds": 0.196031344, + "downloadSeconds": 0.000021368 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183308292, - "downloadSeconds": 0.000022054 + "uploadSeconds": 0.188587152, + "downloadSeconds": 0.000029023 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.180877607, - "downloadSeconds": 0.000026982 + "uploadSeconds": 0.182829839, + "downloadSeconds": 0.000021626 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.180613209, - "downloadSeconds": 0.000026944 + "uploadSeconds": 0.183022527, + "downloadSeconds": 0.000029741 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.19123981, - "downloadSeconds": 0.000022695 + "uploadSeconds": 0.191183223, + "downloadSeconds": 0.000023445 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188249077, - "downloadSeconds": 0.00001968 + "uploadSeconds": 0.195757349, + "downloadSeconds": 0.000030259 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188310162, - "downloadSeconds": 0.000019461 + "uploadSeconds": 0.188233925, + "downloadSeconds": 0.000032255 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192340124, - "downloadSeconds": 0.000024555 + "uploadSeconds": 0.184361716, + "downloadSeconds": 0.000028005 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188473932, - "downloadSeconds": 0.000015915 + "uploadSeconds": 0.186432378, + "downloadSeconds": 0.000019995 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186878094, - "downloadSeconds": 0.000019374 + "uploadSeconds": 0.188335389, + "downloadSeconds": 0.000024858 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185679154, - "downloadSeconds": 0.000016414 + "uploadSeconds": 0.191171584, + "downloadSeconds": 0.000021449 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.180612714, - "downloadSeconds": 0.000019835 + "uploadSeconds": 0.193595616, + "downloadSeconds": 0.000024224 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192304312, - "downloadSeconds": 0.000021444 + "uploadSeconds": 0.183355964, + "downloadSeconds": 0.000020573 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188282608, - "downloadSeconds": 0.000017187 + "uploadSeconds": 0.193506624, + "downloadSeconds": 0.000024937 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183278194, - "downloadSeconds": 0.000018204 + "uploadSeconds": 0.184619421, + "downloadSeconds": 0.000021662 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184437713, - "downloadSeconds": 0.000027936 + "uploadSeconds": 0.182013165, + "downloadSeconds": 0.000023987 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185529677, - "downloadSeconds": 0.00001732 + "uploadSeconds": 0.179699999, + "downloadSeconds": 0.000020907 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193016666, - "downloadSeconds": 0.000020431 + "uploadSeconds": 0.191663979, + "downloadSeconds": 0.000024939 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.195416309, - "downloadSeconds": 0.000022508 + "uploadSeconds": 0.186674829, + "downloadSeconds": 0.000024025 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183699899, - "downloadSeconds": 0.000021716 + "uploadSeconds": 0.18304345, + "downloadSeconds": 0.000021069 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185744257, - "downloadSeconds": 0.000022602 + "uploadSeconds": 0.194300055, + "downloadSeconds": 0.000026738 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189250203, - "downloadSeconds": 0.000020598 + "uploadSeconds": 0.184448741, + "downloadSeconds": 0.000032237 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185181606, - "downloadSeconds": 0.000019866 + "uploadSeconds": 0.193911983, + "downloadSeconds": 0.000022306 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18333426, - "downloadSeconds": 0.000020514 + "uploadSeconds": 0.187826647, + "downloadSeconds": 0.000024787 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193817077, - "downloadSeconds": 0.000018949 + "uploadSeconds": 0.188415711, + "downloadSeconds": 0.000022936 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18357926, - "downloadSeconds": 0.000024613 + "uploadSeconds": 0.189168992, + "downloadSeconds": 0.000023928 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.179392491, - "downloadSeconds": 0.000026305 + "uploadSeconds": 0.193147287, + "downloadSeconds": 0.000028749 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190020686, - "downloadSeconds": 0.000027925 + "uploadSeconds": 0.187182336, + "downloadSeconds": 0.000021227 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192780389, - "downloadSeconds": 0.000021992 + "uploadSeconds": 0.190808467, + "downloadSeconds": 0.000021406 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189871699, - "downloadSeconds": 0.000020478 + "uploadSeconds": 0.186257853, + "downloadSeconds": 0.000029142 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.195791204, - "downloadSeconds": 0.000022177 + "uploadSeconds": 0.192046336, + "downloadSeconds": 0.000020604 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183957873, - "downloadSeconds": 0.000020035 + "uploadSeconds": 0.189009156, + "downloadSeconds": 0.000024835 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186134924, - "downloadSeconds": 0.000021316 + "uploadSeconds": 0.188875391, + "downloadSeconds": 0.000021557 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186717805, - "downloadSeconds": 0.000019271 + "uploadSeconds": 0.187455696, + "downloadSeconds": 0.000032943 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193530685, - "downloadSeconds": 0.000022671 + "uploadSeconds": 0.188796385, + "downloadSeconds": 0.00002132 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186105862, - "downloadSeconds": 0.000025304 + "uploadSeconds": 0.189167855, + "downloadSeconds": 0.000023001 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18535181, - "downloadSeconds": 0.000019895 + "uploadSeconds": 0.192158684, + "downloadSeconds": 0.000023581 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184994725, - "downloadSeconds": 0.000025617 + "uploadSeconds": 0.182266809, + "downloadSeconds": 0.00002149 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188647571, - "downloadSeconds": 0.000027329 + "uploadSeconds": 0.184985228, + "downloadSeconds": 0.000020968 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190621346, - "downloadSeconds": 0.000026131 + "uploadSeconds": 0.191639946, + "downloadSeconds": 0.000031242 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185577895, - "downloadSeconds": 0.000022229 + "uploadSeconds": 0.181595298, + "downloadSeconds": 0.000022569 } ], "implementation": "https", @@ -3010,504 +3010,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.246982543, - "uploadSeconds": 0.000002333, - "downloadSeconds": 0.060636799 + "connectionEstablishedSeconds": 0.249245346, + "uploadSeconds": 0.00000296, + "downloadSeconds": 0.121561847 }, { - "connectionEstablishedSeconds": 0.254987407, - "uploadSeconds": 0.000002637, - "downloadSeconds": 0.125583931 + "connectionEstablishedSeconds": 0.255001237, + "uploadSeconds": 0.000003556, + "downloadSeconds": 0.125212686 }, { - "connectionEstablishedSeconds": 0.252265474, - "uploadSeconds": 0.000003042, - "downloadSeconds": 0.124496056 + "connectionEstablishedSeconds": 0.255493913, + "uploadSeconds": 0.000003514, + "downloadSeconds": 0.063117853 }, { - "connectionEstablishedSeconds": 0.257593737, - "uploadSeconds": 0.000001947, - "downloadSeconds": 0.063516924 + "connectionEstablishedSeconds": 0.262519463, + "uploadSeconds": 0.000003092, + "downloadSeconds": 0.129294372 }, { - "connectionEstablishedSeconds": 0.249634131, - "uploadSeconds": 0.000002236, - "downloadSeconds": 0.061606688 + "connectionEstablishedSeconds": 0.239658021, + "uploadSeconds": 0.000003293, + "downloadSeconds": 0.11715543 }, { - "connectionEstablishedSeconds": 0.256219747, - "uploadSeconds": 0.000002639, - "downloadSeconds": 0.063248102 + "connectionEstablishedSeconds": 0.263939584, + "uploadSeconds": 0.000003054, + "downloadSeconds": 0.064954231 }, { - "connectionEstablishedSeconds": 0.252442248, - "uploadSeconds": 0.000002197, - "downloadSeconds": 0.062669369 + "connectionEstablishedSeconds": 0.251204172, + "uploadSeconds": 0.000003244, + "downloadSeconds": 0.062123993 }, { - "connectionEstablishedSeconds": 0.259427625, - "uploadSeconds": 0.000003211, - "downloadSeconds": 0.127981684 + "connectionEstablishedSeconds": 0.259751512, + "uploadSeconds": 0.000004006, + "downloadSeconds": 0.127990905 }, { - "connectionEstablishedSeconds": 0.246514725, - "uploadSeconds": 0.000002665, - "downloadSeconds": 0.121201652 + "connectionEstablishedSeconds": 0.237142565, + "uploadSeconds": 0.000003207, + "downloadSeconds": 0.058597937 }, { - "connectionEstablishedSeconds": 0.256074228, - "uploadSeconds": 0.000002774, - "downloadSeconds": 0.063105187 + "connectionEstablishedSeconds": 0.248714979, + "uploadSeconds": 0.000003286, + "downloadSeconds": 0.06106676 }, { - "connectionEstablishedSeconds": 0.257314965, - "uploadSeconds": 0.000002128, - "downloadSeconds": 0.063868077 + "connectionEstablishedSeconds": 0.252705849, + "uploadSeconds": 0.00000327, + "downloadSeconds": 0.124599556 }, { - "connectionEstablishedSeconds": 0.252954088, - "uploadSeconds": 0.000002252, - "downloadSeconds": 0.062319815 + "connectionEstablishedSeconds": 0.246962278, + "uploadSeconds": 0.000003538, + "downloadSeconds": 0.121470347 }, { - "connectionEstablishedSeconds": 0.247593448, - "uploadSeconds": 0.000002732, - "downloadSeconds": 0.061417523 + "connectionEstablishedSeconds": 0.253085008, + "uploadSeconds": 0.000003344, + "downloadSeconds": 0.062264437 }, { - "connectionEstablishedSeconds": 0.248485597, - "uploadSeconds": 0.000002477, - "downloadSeconds": 0.122739395 + "connectionEstablishedSeconds": 0.245111484, + "uploadSeconds": 0.000002724, + "downloadSeconds": 0.120523806 }, { - "connectionEstablishedSeconds": 0.252755774, - "uploadSeconds": 0.000003128, - "downloadSeconds": 0.12465053 + "connectionEstablishedSeconds": 0.242808553, + "uploadSeconds": 0.00000674, + "downloadSeconds": 0.061028522 }, { - "connectionEstablishedSeconds": 0.24678383, - "uploadSeconds": 0.000003171, - "downloadSeconds": 0.061170425 + "connectionEstablishedSeconds": 0.247597565, + "uploadSeconds": 0.000003013, + "downloadSeconds": 0.121020036 }, { - "connectionEstablishedSeconds": 0.256799921, - "uploadSeconds": 0.000002516, - "downloadSeconds": 0.063288139 + "connectionEstablishedSeconds": 0.250210602, + "uploadSeconds": 0.000003549, + "downloadSeconds": 0.123252958 }, { - "connectionEstablishedSeconds": 0.258533884, - "uploadSeconds": 0.000002448, - "downloadSeconds": 0.063377461 + "connectionEstablishedSeconds": 0.26000532, + "uploadSeconds": 0.000002986, + "downloadSeconds": 0.127196999 }, { - "connectionEstablishedSeconds": 0.240389808, - "uploadSeconds": 0.000002816, - "downloadSeconds": 0.117642179 + "connectionEstablishedSeconds": 0.255290376, + "uploadSeconds": 0.000003333, + "downloadSeconds": 0.062675862 }, { - "connectionEstablishedSeconds": 0.252817235, - "uploadSeconds": 0.000002452, - "downloadSeconds": 0.123930684 + "connectionEstablishedSeconds": 0.253008209, + "uploadSeconds": 0.000002933, + "downloadSeconds": 0.062583056 }, { - "connectionEstablishedSeconds": 0.253777012, - "uploadSeconds": 0.000002057, - "downloadSeconds": 0.062848806 + "connectionEstablishedSeconds": 0.247708643, + "uploadSeconds": 0.000003901, + "downloadSeconds": 0.061294321 }, { - "connectionEstablishedSeconds": 0.245131591, - "uploadSeconds": 0.000003236, - "downloadSeconds": 0.120963083 + "connectionEstablishedSeconds": 0.244514103, + "uploadSeconds": 0.0000027, + "downloadSeconds": 0.120299674 }, { - "connectionEstablishedSeconds": 0.240467804, - "uploadSeconds": 0.000004461, - "downloadSeconds": 0.118627047 + "connectionEstablishedSeconds": 0.25041742, + "uploadSeconds": 0.000002909, + "downloadSeconds": 0.061566587 }, { - "connectionEstablishedSeconds": 0.255467807, - "uploadSeconds": 0.000002626, - "downloadSeconds": 0.062827272 + "connectionEstablishedSeconds": 0.257779055, + "uploadSeconds": 0.000003455, + "downloadSeconds": 0.063430914 }, { - "connectionEstablishedSeconds": 0.249338884, - "uploadSeconds": 0.000002342, - "downloadSeconds": 0.121499683 + "connectionEstablishedSeconds": 0.255153072, + "uploadSeconds": 0.000002986, + "downloadSeconds": 0.124803856 }, { - "connectionEstablishedSeconds": 0.252348186, - "uploadSeconds": 0.000003027, - "downloadSeconds": 0.062162683 + "connectionEstablishedSeconds": 0.251417501, + "uploadSeconds": 0.000002544, + "downloadSeconds": 0.123507998 }, { - "connectionEstablishedSeconds": 0.249576434, - "uploadSeconds": 0.00000247, - "downloadSeconds": 0.061533785 + "connectionEstablishedSeconds": 0.255067874, + "uploadSeconds": 0.000004773, + "downloadSeconds": 0.124714757 }, { - "connectionEstablishedSeconds": 0.25301387, - "uploadSeconds": 0.000002702, - "downloadSeconds": 0.062807451 + "connectionEstablishedSeconds": 0.250682459, + "uploadSeconds": 0.000002462, + "downloadSeconds": 0.123496965 }, { - "connectionEstablishedSeconds": 0.247662665, - "uploadSeconds": 0.000002964, - "downloadSeconds": 0.122013051 + "connectionEstablishedSeconds": 0.252774065, + "uploadSeconds": 0.000003628, + "downloadSeconds": 0.12445596 }, { - "connectionEstablishedSeconds": 0.250252663, - "uploadSeconds": 0.000002914, - "downloadSeconds": 0.123407763 + "connectionEstablishedSeconds": 0.242569309, + "uploadSeconds": 0.00000305, + "downloadSeconds": 0.119429712 }, { - "connectionEstablishedSeconds": 0.262054694, - "uploadSeconds": 0.000002659, - "downloadSeconds": 0.06503719 + "connectionEstablishedSeconds": 0.25479327, + "uploadSeconds": 0.000002861, + "downloadSeconds": 0.124930819 }, { - "connectionEstablishedSeconds": 0.25894961, - "uploadSeconds": 0.000003183, - "downloadSeconds": 0.063781309 + "connectionEstablishedSeconds": 0.262770298, + "uploadSeconds": 0.000003423, + "downloadSeconds": 0.128763607 }, { - "connectionEstablishedSeconds": 0.253447479, - "uploadSeconds": 0.000005445, - "downloadSeconds": 0.125038249 + "connectionEstablishedSeconds": 0.25458649, + "uploadSeconds": 0.000002688, + "downloadSeconds": 0.062457767 }, { - "connectionEstablishedSeconds": 0.25890693, - "uploadSeconds": 0.000002949, - "downloadSeconds": 0.064290345 + "connectionEstablishedSeconds": 0.256087871, + "uploadSeconds": 0.000002748, + "downloadSeconds": 0.063382841 }, { - "connectionEstablishedSeconds": 0.238136713, - "uploadSeconds": 0.000002751, - "downloadSeconds": 0.058523439 + "connectionEstablishedSeconds": 0.256214858, + "uploadSeconds": 0.000002543, + "downloadSeconds": 0.125334307 }, { - "connectionEstablishedSeconds": 0.238031833, - "uploadSeconds": 0.00000201, - "downloadSeconds": 0.058612018 + "connectionEstablishedSeconds": 0.251170968, + "uploadSeconds": 0.000003289, + "downloadSeconds": 0.122626514 }, { - "connectionEstablishedSeconds": 0.243987405, - "uploadSeconds": 0.000002645, - "downloadSeconds": 0.120430154 + "connectionEstablishedSeconds": 0.248462896, + "uploadSeconds": 0.000003834, + "downloadSeconds": 0.121314707 }, { - "connectionEstablishedSeconds": 0.25092512, - "uploadSeconds": 0.000003203, - "downloadSeconds": 0.062239462 + "connectionEstablishedSeconds": 0.24983303, + "uploadSeconds": 0.000004495, + "downloadSeconds": 0.061233358 }, { - "connectionEstablishedSeconds": 0.241461478, - "uploadSeconds": 0.000002746, - "downloadSeconds": 0.05956789 + "connectionEstablishedSeconds": 0.252475751, + "uploadSeconds": 0.00000231, + "downloadSeconds": 0.0619883 }, { - "connectionEstablishedSeconds": 0.251482992, - "uploadSeconds": 0.00000234, - "downloadSeconds": 0.061933183 + "connectionEstablishedSeconds": 0.246931961, + "uploadSeconds": 0.000002906, + "downloadSeconds": 0.121586692 }, { - "connectionEstablishedSeconds": 0.247927088, - "uploadSeconds": 0.000002999, - "downloadSeconds": 0.061510988 + "connectionEstablishedSeconds": 0.256214885, + "uploadSeconds": 0.000003494, + "downloadSeconds": 0.063429564 }, { - "connectionEstablishedSeconds": 0.245592314, - "uploadSeconds": 0.000003012, - "downloadSeconds": 0.06085414 + "connectionEstablishedSeconds": 0.251583325, + "uploadSeconds": 0.000002817, + "downloadSeconds": 0.122880352 }, { - "connectionEstablishedSeconds": 0.249204108, - "uploadSeconds": 0.000002654, - "downloadSeconds": 0.06184334 + "connectionEstablishedSeconds": 0.250357669, + "uploadSeconds": 0.000003612, + "downloadSeconds": 0.122302384 }, { - "connectionEstablishedSeconds": 0.257982473, - "uploadSeconds": 0.000002161, - "downloadSeconds": 0.064057546 + "connectionEstablishedSeconds": 0.251177488, + "uploadSeconds": 0.000003209, + "downloadSeconds": 0.061720037 }, { - "connectionEstablishedSeconds": 0.253774449, - "uploadSeconds": 0.000002049, - "downloadSeconds": 0.062934467 + "connectionEstablishedSeconds": 0.247782307, + "uploadSeconds": 0.000003204, + "downloadSeconds": 0.060884679 }, { - "connectionEstablishedSeconds": 0.247291556, - "uploadSeconds": 0.000002676, - "downloadSeconds": 0.060877055 + "connectionEstablishedSeconds": 0.256522029, + "uploadSeconds": 0.000003026, + "downloadSeconds": 0.063025502 }, { - "connectionEstablishedSeconds": 0.255902439, - "uploadSeconds": 0.000002621, - "downloadSeconds": 0.063567814 + "connectionEstablishedSeconds": 0.2581133, + "uploadSeconds": 0.000003568, + "downloadSeconds": 0.063403142 }, { - "connectionEstablishedSeconds": 0.254482313, - "uploadSeconds": 0.000002629, - "downloadSeconds": 0.063151743 + "connectionEstablishedSeconds": 0.255397506, + "uploadSeconds": 0.000003247, + "downloadSeconds": 0.062614623 }, { - "connectionEstablishedSeconds": 0.240553161, - "uploadSeconds": 0.000002261, - "downloadSeconds": 0.059636037 + "connectionEstablishedSeconds": 0.250827674, + "uploadSeconds": 0.000002441, + "downloadSeconds": 0.062131295 }, { - "connectionEstablishedSeconds": 0.248356912, - "uploadSeconds": 0.000002729, - "downloadSeconds": 0.061578029 + "connectionEstablishedSeconds": 0.260419165, + "uploadSeconds": 0.000002946, + "downloadSeconds": 0.064479165 }, { - "connectionEstablishedSeconds": 0.242345309, - "uploadSeconds": 0.00000288, - "downloadSeconds": 0.060093916 + "connectionEstablishedSeconds": 0.254314157, + "uploadSeconds": 0.000002467, + "downloadSeconds": 0.062572004 }, { - "connectionEstablishedSeconds": 0.259227269, - "uploadSeconds": 0.000005216, - "downloadSeconds": 0.1279868 + "connectionEstablishedSeconds": 0.254128659, + "uploadSeconds": 0.000002564, + "downloadSeconds": 0.062426829 }, { - "connectionEstablishedSeconds": 0.259282408, - "uploadSeconds": 0.000002551, - "downloadSeconds": 0.063973717 + "connectionEstablishedSeconds": 0.245706256, + "uploadSeconds": 0.000002984, + "downloadSeconds": 0.120957054 }, { - "connectionEstablishedSeconds": 0.25319996, - "uploadSeconds": 0.000002716, - "downloadSeconds": 0.125036282 + "connectionEstablishedSeconds": 0.254524756, + "uploadSeconds": 0.000003012, + "downloadSeconds": 0.125632302 }, { - "connectionEstablishedSeconds": 0.262780483, - "uploadSeconds": 0.000002704, - "downloadSeconds": 0.064785965 + "connectionEstablishedSeconds": 0.253064463, + "uploadSeconds": 0.000003616, + "downloadSeconds": 0.062562906 }, { - "connectionEstablishedSeconds": 0.240429364, - "uploadSeconds": 0.000002006, - "downloadSeconds": 0.059475532 + "connectionEstablishedSeconds": 0.244652507, + "uploadSeconds": 0.000002662, + "downloadSeconds": 0.060147963 }, { - "connectionEstablishedSeconds": 0.252537049, - "uploadSeconds": 0.000002748, - "downloadSeconds": 0.06261609 + "connectionEstablishedSeconds": 0.239427924, + "uploadSeconds": 0.00000321, + "downloadSeconds": 0.059177905 }, { - "connectionEstablishedSeconds": 0.249712979, - "uploadSeconds": 0.000002727, - "downloadSeconds": 0.061898698 + "connectionEstablishedSeconds": 0.252719182, + "uploadSeconds": 0.000003279, + "downloadSeconds": 0.124140527 }, { - "connectionEstablishedSeconds": 0.248365572, - "uploadSeconds": 0.000003349, - "downloadSeconds": 0.061521647 + "connectionEstablishedSeconds": 0.257588139, + "uploadSeconds": 0.000002645, + "downloadSeconds": 0.125933391 }, { - "connectionEstablishedSeconds": 0.247755439, - "uploadSeconds": 0.000002551, - "downloadSeconds": 0.061002033 + "connectionEstablishedSeconds": 0.252102214, + "uploadSeconds": 0.000006192, + "downloadSeconds": 0.123975867 }, { - "connectionEstablishedSeconds": 0.246475735, - "uploadSeconds": 0.000002701, - "downloadSeconds": 0.061086692 + "connectionEstablishedSeconds": 0.253004302, + "uploadSeconds": 0.000003238, + "downloadSeconds": 0.124329359 }, { - "connectionEstablishedSeconds": 0.259489949, - "uploadSeconds": 0.000001757, - "downloadSeconds": 0.063943852 + "connectionEstablishedSeconds": 0.25355254, + "uploadSeconds": 0.000002346, + "downloadSeconds": 0.062167782 }, { - "connectionEstablishedSeconds": 0.258184785, - "uploadSeconds": 0.000001873, - "downloadSeconds": 0.063650594 + "connectionEstablishedSeconds": 0.25529043, + "uploadSeconds": 0.000002785, + "downloadSeconds": 0.125672486 }, { - "connectionEstablishedSeconds": 0.261070592, - "uploadSeconds": 0.000002752, - "downloadSeconds": 0.064366046 + "connectionEstablishedSeconds": 0.261358525, + "uploadSeconds": 0.000003169, + "downloadSeconds": 0.064202778 }, { - "connectionEstablishedSeconds": 0.250568312, - "uploadSeconds": 0.000002142, - "downloadSeconds": 0.123570903 + "connectionEstablishedSeconds": 0.252931623, + "uploadSeconds": 0.000002846, + "downloadSeconds": 0.062165412 }, { - "connectionEstablishedSeconds": 0.255666103, - "uploadSeconds": 0.000003077, - "downloadSeconds": 0.063432424 + "connectionEstablishedSeconds": 0.250908525, + "uploadSeconds": 0.00000366, + "downloadSeconds": 0.123585083 }, { - "connectionEstablishedSeconds": 0.248139992, - "uploadSeconds": 0.000002787, - "downloadSeconds": 0.122421755 + "connectionEstablishedSeconds": 0.239730221, + "uploadSeconds": 0.000004546, + "downloadSeconds": 0.059308537 }, { - "connectionEstablishedSeconds": 0.244705897, - "uploadSeconds": 0.000002085, - "downloadSeconds": 0.060794925 + "connectionEstablishedSeconds": 0.261532696, + "uploadSeconds": 0.000002939, + "downloadSeconds": 0.064289014 }, { - "connectionEstablishedSeconds": 0.257247483, - "uploadSeconds": 0.000002563, - "downloadSeconds": 0.12735091 + "connectionEstablishedSeconds": 0.262379988, + "uploadSeconds": 0.000003347, + "downloadSeconds": 0.128376121 }, { - "connectionEstablishedSeconds": 0.249235758, - "uploadSeconds": 0.00000251, - "downloadSeconds": 0.061837351 + "connectionEstablishedSeconds": 0.24577322, + "uploadSeconds": 0.000002674, + "downloadSeconds": 0.060370727 }, { - "connectionEstablishedSeconds": 0.255130828, - "uploadSeconds": 0.000002263, - "downloadSeconds": 0.063169157 + "connectionEstablishedSeconds": 0.256765835, + "uploadSeconds": 0.000002505, + "downloadSeconds": 0.062955219 }, { - "connectionEstablishedSeconds": 0.251280256, - "uploadSeconds": 0.000002482, - "downloadSeconds": 0.123259335 + "connectionEstablishedSeconds": 0.257241877, + "uploadSeconds": 0.000003493, + "downloadSeconds": 0.063194058 }, { - "connectionEstablishedSeconds": 0.251983159, - "uploadSeconds": 0.00000274, - "downloadSeconds": 0.124431896 + "connectionEstablishedSeconds": 0.248561426, + "uploadSeconds": 0.000003504, + "downloadSeconds": 0.122268394 }, { - "connectionEstablishedSeconds": 0.245704446, - "uploadSeconds": 0.000001875, - "downloadSeconds": 0.120470878 + "connectionEstablishedSeconds": 0.253010123, + "uploadSeconds": 0.000003472, + "downloadSeconds": 0.123747352 }, { - "connectionEstablishedSeconds": 0.250201435, - "uploadSeconds": 0.000002586, - "downloadSeconds": 0.061731154 + "connectionEstablishedSeconds": 0.253802696, + "uploadSeconds": 0.000002907, + "downloadSeconds": 0.124984447 }, { - "connectionEstablishedSeconds": 0.238093943, - "uploadSeconds": 0.00000245, - "downloadSeconds": 0.058674458 + "connectionEstablishedSeconds": 0.259985353, + "uploadSeconds": 0.00000264, + "downloadSeconds": 0.126950708 }, { - "connectionEstablishedSeconds": 0.250553571, - "uploadSeconds": 0.000002285, - "downloadSeconds": 0.061589498 + "connectionEstablishedSeconds": 0.253068745, + "uploadSeconds": 0.000003457, + "downloadSeconds": 0.123640609 }, { - "connectionEstablishedSeconds": 0.244439626, - "uploadSeconds": 0.000003027, - "downloadSeconds": 0.060154682 + "connectionEstablishedSeconds": 0.262131372, + "uploadSeconds": 0.000002891, + "downloadSeconds": 0.064446604 }, { - "connectionEstablishedSeconds": 0.242412471, - "uploadSeconds": 0.000002316, - "downloadSeconds": 0.059615017 + "connectionEstablishedSeconds": 0.249052514, + "uploadSeconds": 0.000002669, + "downloadSeconds": 0.06125365 }, { - "connectionEstablishedSeconds": 0.25048618, - "uploadSeconds": 0.000002677, - "downloadSeconds": 0.061737041 + "connectionEstablishedSeconds": 0.248160319, + "uploadSeconds": 0.000003478, + "downloadSeconds": 0.061321695 }, { - "connectionEstablishedSeconds": 0.258953892, - "uploadSeconds": 0.000002587, - "downloadSeconds": 0.063803021 + "connectionEstablishedSeconds": 0.245016941, + "uploadSeconds": 0.000002873, + "downloadSeconds": 0.120366382 }, { - "connectionEstablishedSeconds": 0.250412263, - "uploadSeconds": 0.0000034, - "downloadSeconds": 0.12281949 + "connectionEstablishedSeconds": 0.249254663, + "uploadSeconds": 0.000002424, + "downloadSeconds": 0.121647486 }, { - "connectionEstablishedSeconds": 0.254144016, - "uploadSeconds": 0.000002754, - "downloadSeconds": 0.06300859 + "connectionEstablishedSeconds": 0.258669135, + "uploadSeconds": 0.000002826, + "downloadSeconds": 0.063624543 }, { - "connectionEstablishedSeconds": 0.260298291, - "uploadSeconds": 0.000002975, - "downloadSeconds": 0.064623551 + "connectionEstablishedSeconds": 0.250078193, + "uploadSeconds": 0.000003163, + "downloadSeconds": 0.123107871 }, { - "connectionEstablishedSeconds": 0.243397209, - "uploadSeconds": 0.000002481, - "downloadSeconds": 0.059877624 + "connectionEstablishedSeconds": 0.252085442, + "uploadSeconds": 0.000003074, + "downloadSeconds": 0.123198762 }, { - "connectionEstablishedSeconds": 0.24772037, - "uploadSeconds": 0.000002941, - "downloadSeconds": 0.060984094 + "connectionEstablishedSeconds": 0.256262807, + "uploadSeconds": 0.000003253, + "downloadSeconds": 0.125268654 }, { - "connectionEstablishedSeconds": 0.253506036, - "uploadSeconds": 0.000002337, - "downloadSeconds": 0.062951461 + "connectionEstablishedSeconds": 0.249110627, + "uploadSeconds": 0.000003228, + "downloadSeconds": 0.061307267 }, { - "connectionEstablishedSeconds": 0.254973803, - "uploadSeconds": 0.000002862, - "downloadSeconds": 0.062826139 + "connectionEstablishedSeconds": 0.25866579, + "uploadSeconds": 0.000002871, + "downloadSeconds": 0.126626551 }, { - "connectionEstablishedSeconds": 0.255472034, - "uploadSeconds": 0.000002332, - "downloadSeconds": 0.063002547 + "connectionEstablishedSeconds": 0.258809684, + "uploadSeconds": 0.000003657, + "downloadSeconds": 0.126692366 }, { - "connectionEstablishedSeconds": 0.256008456, - "uploadSeconds": 0.000002753, - "downloadSeconds": 0.126330132 + "connectionEstablishedSeconds": 0.253232103, + "uploadSeconds": 0.000003714, + "downloadSeconds": 0.123766291 }, { - "connectionEstablishedSeconds": 0.258165071, - "uploadSeconds": 0.000002056, - "downloadSeconds": 0.063652588 + "connectionEstablishedSeconds": 0.252618679, + "uploadSeconds": 0.0000028, + "downloadSeconds": 0.123498014 }, { - "connectionEstablishedSeconds": 0.25799469, - "uploadSeconds": 0.000003118, - "downloadSeconds": 0.126573181 + "connectionEstablishedSeconds": 0.254677234, + "uploadSeconds": 0.000002662, + "downloadSeconds": 0.12447656 }, { - "connectionEstablishedSeconds": 0.235590117, - "uploadSeconds": 0.000002624, - "downloadSeconds": 0.057922146 + "connectionEstablishedSeconds": 0.262513097, + "uploadSeconds": 0.0000044, + "downloadSeconds": 0.128426478 }, { - "connectionEstablishedSeconds": 0.243184757, - "uploadSeconds": 0.000002738, - "downloadSeconds": 0.059965651 + "connectionEstablishedSeconds": 0.259310403, + "uploadSeconds": 0.00000267, + "downloadSeconds": 0.127596938 }, { - "connectionEstablishedSeconds": 0.248694484, - "uploadSeconds": 0.000002604, - "downloadSeconds": 0.061723598 + "connectionEstablishedSeconds": 0.253873333, + "uploadSeconds": 0.000003398, + "downloadSeconds": 0.124047259 }, { - "connectionEstablishedSeconds": 0.251370563, - "uploadSeconds": 0.000002583, - "downloadSeconds": 0.06197375 + "connectionEstablishedSeconds": 0.25501728, + "uploadSeconds": 0.000002983, + "downloadSeconds": 0.125714344 }, { - "connectionEstablishedSeconds": 0.242432428, - "uploadSeconds": 0.000002486, - "downloadSeconds": 0.060143536 + "connectionEstablishedSeconds": 0.255689264, + "uploadSeconds": 0.000005103, + "downloadSeconds": 0.06329916 }, { - "connectionEstablishedSeconds": 0.243723796, - "uploadSeconds": 0.000002083, - "downloadSeconds": 0.060037652 + "connectionEstablishedSeconds": 0.255763735, + "uploadSeconds": 0.000002883, + "downloadSeconds": 0.063039447 }, { - "connectionEstablishedSeconds": 0.246442851, - "uploadSeconds": 0.000002077, - "downloadSeconds": 0.060712241 + "connectionEstablishedSeconds": 0.263646145, + "uploadSeconds": 0.000003715, + "downloadSeconds": 0.064778216 }, { - "connectionEstablishedSeconds": 0.246539718, - "uploadSeconds": 0.000002761, - "downloadSeconds": 0.061199242 + "connectionEstablishedSeconds": 0.247384525, + "uploadSeconds": 0.000003402, + "downloadSeconds": 0.060685597 } ], "implementation": "go-libp2p", @@ -3517,504 +3517,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.132559832, - "uploadSeconds": 0.000001845, - "downloadSeconds": 0.064081759 + "connectionEstablishedSeconds": 0.126151651, + "uploadSeconds": 0.000002349, + "downloadSeconds": 0.060111794 }, { - "connectionEstablishedSeconds": 0.127538862, - "uploadSeconds": 0.000001708, - "downloadSeconds": 0.062170888 + "connectionEstablishedSeconds": 0.129204824, + "uploadSeconds": 0.000001809, + "downloadSeconds": 0.062814464 }, { - "connectionEstablishedSeconds": 0.130805692, - "uploadSeconds": 0.000001773, - "downloadSeconds": 0.062955061 + "connectionEstablishedSeconds": 0.12989484, + "uploadSeconds": 0.000001788, + "downloadSeconds": 0.062263664 }, { - "connectionEstablishedSeconds": 0.127036422, - "uploadSeconds": 0.000001649, - "downloadSeconds": 0.061978598 + "connectionEstablishedSeconds": 0.128827356, + "uploadSeconds": 0.000001937, + "downloadSeconds": 0.062755559 }, { - "connectionEstablishedSeconds": 0.127375116, - "uploadSeconds": 0.000001559, - "downloadSeconds": 0.061272425 + "connectionEstablishedSeconds": 0.128097527, + "uploadSeconds": 0.000002064, + "downloadSeconds": 0.061263379 }, { - "connectionEstablishedSeconds": 0.127377704, - "uploadSeconds": 0.000001414, - "downloadSeconds": 0.062145909 + "connectionEstablishedSeconds": 0.13534984, + "uploadSeconds": 0.000002196, + "downloadSeconds": 0.064960528 }, { - "connectionEstablishedSeconds": 0.125731216, - "uploadSeconds": 0.000001507, - "downloadSeconds": 0.06135568 + "connectionEstablishedSeconds": 0.121873491, + "uploadSeconds": 0.000002012, + "downloadSeconds": 0.058282537 }, { - "connectionEstablishedSeconds": 0.133088001, - "uploadSeconds": 0.000001788, - "downloadSeconds": 0.064553093 + "connectionEstablishedSeconds": 0.127685139, + "uploadSeconds": 0.000002091, + "downloadSeconds": 0.061119046 }, { - "connectionEstablishedSeconds": 0.129277284, - "uploadSeconds": 0.000001466, - "downloadSeconds": 0.062234834 + "connectionEstablishedSeconds": 0.122078139, + "uploadSeconds": 0.000002417, + "downloadSeconds": 0.059363629 }, { - "connectionEstablishedSeconds": 0.119158102, - "uploadSeconds": 0.000001566, - "downloadSeconds": 0.058061112 + "connectionEstablishedSeconds": 0.130700124, + "uploadSeconds": 0.000001939, + "downloadSeconds": 0.063635433 }, { - "connectionEstablishedSeconds": 0.130364186, - "uploadSeconds": 0.000001615, - "downloadSeconds": 0.062807167 + "connectionEstablishedSeconds": 0.132067528, + "uploadSeconds": 0.000002014, + "downloadSeconds": 0.063457557 }, { - "connectionEstablishedSeconds": 0.127736162, - "uploadSeconds": 0.000001415, - "downloadSeconds": 0.061511958 + "connectionEstablishedSeconds": 0.127849632, + "uploadSeconds": 0.000002033, + "downloadSeconds": 0.06217967 }, { - "connectionEstablishedSeconds": 0.1278484, - "uploadSeconds": 0.000001513, - "downloadSeconds": 0.061515556 + "connectionEstablishedSeconds": 0.12674816, + "uploadSeconds": 0.000002177, + "downloadSeconds": 0.06158331 }, { - "connectionEstablishedSeconds": 0.128970078, - "uploadSeconds": 0.000001392, - "downloadSeconds": 0.061986167 + "connectionEstablishedSeconds": 0.127379142, + "uploadSeconds": 0.000001916, + "downloadSeconds": 0.061885807 }, { - "connectionEstablishedSeconds": 0.128039225, - "uploadSeconds": 0.000001606, - "downloadSeconds": 0.06170743 + "connectionEstablishedSeconds": 0.133760878, + "uploadSeconds": 0.000001692, + "downloadSeconds": 0.064240901 }, { - "connectionEstablishedSeconds": 0.127508048, - "uploadSeconds": 0.000001458, - "downloadSeconds": 0.062212279 + "connectionEstablishedSeconds": 0.130580764, + "uploadSeconds": 0.000002045, + "downloadSeconds": 0.062521174 }, { - "connectionEstablishedSeconds": 0.133455738, - "uploadSeconds": 0.00000138, - "downloadSeconds": 0.064288489 + "connectionEstablishedSeconds": 0.132804107, + "uploadSeconds": 0.000001886, + "downloadSeconds": 0.063699769 }, { - "connectionEstablishedSeconds": 0.129520369, - "uploadSeconds": 0.000001526, - "downloadSeconds": 0.062379621 + "connectionEstablishedSeconds": 0.135148122, + "uploadSeconds": 0.000002012, + "downloadSeconds": 0.064907714 }, { - "connectionEstablishedSeconds": 0.126453297, - "uploadSeconds": 0.000001579, - "downloadSeconds": 0.061700191 + "connectionEstablishedSeconds": 0.127619559, + "uploadSeconds": 0.000002245, + "downloadSeconds": 0.062083015 }, { - "connectionEstablishedSeconds": 0.129627112, - "uploadSeconds": 0.000001465, - "downloadSeconds": 0.062720055 + "connectionEstablishedSeconds": 0.125278543, + "uploadSeconds": 0.000003326, + "downloadSeconds": 0.060073059 }, { - "connectionEstablishedSeconds": 0.134000827, - "uploadSeconds": 0.000001321, - "downloadSeconds": 0.064357089 + "connectionEstablishedSeconds": 0.12249927, + "uploadSeconds": 0.000002011, + "downloadSeconds": 0.058580595 }, { - "connectionEstablishedSeconds": 0.124745152, - "uploadSeconds": 0.000001493, - "downloadSeconds": 0.060808097 + "connectionEstablishedSeconds": 0.127263622, + "uploadSeconds": 0.00000272, + "downloadSeconds": 0.06196458 }, { - "connectionEstablishedSeconds": 0.127733997, - "uploadSeconds": 0.000002662, - "downloadSeconds": 0.060965292 + "connectionEstablishedSeconds": 0.130274289, + "uploadSeconds": 0.00000195, + "downloadSeconds": 0.06272686 }, { - "connectionEstablishedSeconds": 0.124760848, - "uploadSeconds": 0.000001412, - "downloadSeconds": 0.06091855 + "connectionEstablishedSeconds": 0.133296573, + "uploadSeconds": 0.000002144, + "downloadSeconds": 0.063984271 }, { - "connectionEstablishedSeconds": 0.133028696, - "uploadSeconds": 0.000001889, - "downloadSeconds": 0.064165736 + "connectionEstablishedSeconds": 0.129793246, + "uploadSeconds": 0.000002559, + "downloadSeconds": 0.062174156 }, { - "connectionEstablishedSeconds": 0.131580179, - "uploadSeconds": 0.000009386, - "downloadSeconds": 0.063439782 + "connectionEstablishedSeconds": 0.13073093, + "uploadSeconds": 0.000001964, + "downloadSeconds": 0.062727683 }, { - "connectionEstablishedSeconds": 0.13153408, - "uploadSeconds": 0.000001474, - "downloadSeconds": 0.063494493 + "connectionEstablishedSeconds": 0.125902941, + "uploadSeconds": 0.000002129, + "downloadSeconds": 0.060313342 }, { - "connectionEstablishedSeconds": 0.133677377, - "uploadSeconds": 0.00000147, - "downloadSeconds": 0.064309541 + "connectionEstablishedSeconds": 0.131097742, + "uploadSeconds": 0.000001799, + "downloadSeconds": 0.062803515 }, { - "connectionEstablishedSeconds": 0.129927372, - "uploadSeconds": 0.000001525, - "downloadSeconds": 0.063450867 + "connectionEstablishedSeconds": 0.133414071, + "uploadSeconds": 0.00000183, + "downloadSeconds": 0.063613039 }, { - "connectionEstablishedSeconds": 0.131694963, - "uploadSeconds": 0.000001381, - "downloadSeconds": 0.063434821 + "connectionEstablishedSeconds": 0.132653783, + "uploadSeconds": 0.000001957, + "downloadSeconds": 0.063574125 }, { - "connectionEstablishedSeconds": 0.127899617, - "uploadSeconds": 0.000001411, - "downloadSeconds": 0.061525214 + "connectionEstablishedSeconds": 0.129110969, + "uploadSeconds": 0.000002654, + "downloadSeconds": 0.061835123 }, { - "connectionEstablishedSeconds": 0.130203328, - "uploadSeconds": 0.000001495, - "downloadSeconds": 0.062757457 + "connectionEstablishedSeconds": 0.125059968, + "uploadSeconds": 0.000002038, + "downloadSeconds": 0.059879328 }, { - "connectionEstablishedSeconds": 0.128960662, - "uploadSeconds": 0.000001403, - "downloadSeconds": 0.062074948 + "connectionEstablishedSeconds": 0.132621136, + "uploadSeconds": 0.000002239, + "downloadSeconds": 0.0646004 }, { - "connectionEstablishedSeconds": 0.130867787, - "uploadSeconds": 0.000001446, - "downloadSeconds": 0.062989249 + "connectionEstablishedSeconds": 0.133595619, + "uploadSeconds": 0.000002438, + "downloadSeconds": 0.064052479 }, { - "connectionEstablishedSeconds": 0.127509261, - "uploadSeconds": 0.000001399, - "downloadSeconds": 0.061493018 + "connectionEstablishedSeconds": 0.133692962, + "uploadSeconds": 0.000002297, + "downloadSeconds": 0.064047711 }, { - "connectionEstablishedSeconds": 0.125964276, - "uploadSeconds": 0.000001522, - "downloadSeconds": 0.060573677 + "connectionEstablishedSeconds": 0.127442752, + "uploadSeconds": 0.000002134, + "downloadSeconds": 0.061065899 }, { - "connectionEstablishedSeconds": 0.127927289, - "uploadSeconds": 0.000001423, - "downloadSeconds": 0.06157576 + "connectionEstablishedSeconds": 0.133307312, + "uploadSeconds": 0.000001909, + "downloadSeconds": 0.063937153 }, { - "connectionEstablishedSeconds": 0.130932601, - "uploadSeconds": 0.000001443, - "downloadSeconds": 0.063025361 + "connectionEstablishedSeconds": 0.131376194, + "uploadSeconds": 0.000001892, + "downloadSeconds": 0.063022383 }, { - "connectionEstablishedSeconds": 0.131325237, - "uploadSeconds": 0.000001453, - "downloadSeconds": 0.063283316 + "connectionEstablishedSeconds": 0.126447659, + "uploadSeconds": 0.0000022, + "downloadSeconds": 0.060481942 }, { - "connectionEstablishedSeconds": 0.131567611, - "uploadSeconds": 0.000001482, - "downloadSeconds": 0.063480748 + "connectionEstablishedSeconds": 0.127975402, + "uploadSeconds": 0.000002544, + "downloadSeconds": 0.062116593 }, { - "connectionEstablishedSeconds": 0.127139527, - "uploadSeconds": 0.000001498, - "downloadSeconds": 0.062091433 + "connectionEstablishedSeconds": 0.126821499, + "uploadSeconds": 0.000002165, + "downloadSeconds": 0.06072908 }, { - "connectionEstablishedSeconds": 0.130935865, - "uploadSeconds": 0.000001494, - "downloadSeconds": 0.063252549 + "connectionEstablishedSeconds": 0.128799428, + "uploadSeconds": 0.000002131, + "downloadSeconds": 0.061693083 }, { - "connectionEstablishedSeconds": 0.126708782, - "uploadSeconds": 0.000001385, - "downloadSeconds": 0.061000908 + "connectionEstablishedSeconds": 0.132309618, + "uploadSeconds": 0.00000198, + "downloadSeconds": 0.063466891 }, { - "connectionEstablishedSeconds": 0.131170813, - "uploadSeconds": 0.000001618, - "downloadSeconds": 0.063156049 + "connectionEstablishedSeconds": 0.126743105, + "uploadSeconds": 0.000002233, + "downloadSeconds": 0.061620339 }, { - "connectionEstablishedSeconds": 0.127562236, - "uploadSeconds": 0.000001422, - "downloadSeconds": 0.061339877 + "connectionEstablishedSeconds": 0.130026805, + "uploadSeconds": 0.000002218, + "downloadSeconds": 0.063172074 }, { - "connectionEstablishedSeconds": 0.127373514, - "uploadSeconds": 0.000001411, - "downloadSeconds": 0.062119254 + "connectionEstablishedSeconds": 0.130640115, + "uploadSeconds": 0.000002176, + "downloadSeconds": 0.062559726 }, { - "connectionEstablishedSeconds": 0.124467553, - "uploadSeconds": 0.000001406, - "downloadSeconds": 0.060622762 + "connectionEstablishedSeconds": 0.129337234, + "uploadSeconds": 0.000002072, + "downloadSeconds": 0.062073933 }, { - "connectionEstablishedSeconds": 0.130264415, - "uploadSeconds": 0.000001423, - "downloadSeconds": 0.063243987 + "connectionEstablishedSeconds": 0.130782968, + "uploadSeconds": 0.00000207, + "downloadSeconds": 0.063519826 }, { - "connectionEstablishedSeconds": 0.129495604, - "uploadSeconds": 0.000001529, - "downloadSeconds": 0.062278168 + "connectionEstablishedSeconds": 0.128617654, + "uploadSeconds": 0.000002426, + "downloadSeconds": 0.061714502 }, { - "connectionEstablishedSeconds": 0.130634463, - "uploadSeconds": 0.000001486, - "downloadSeconds": 0.062895839 + "connectionEstablishedSeconds": 0.131507993, + "uploadSeconds": 0.00000296, + "downloadSeconds": 0.063716424 }, { - "connectionEstablishedSeconds": 0.130588454, - "uploadSeconds": 0.000001659, - "downloadSeconds": 0.062499732 + "connectionEstablishedSeconds": 0.127081302, + "uploadSeconds": 0.00000212, + "downloadSeconds": 0.06169652 }, { - "connectionEstablishedSeconds": 0.131876225, - "uploadSeconds": 0.000001316, - "downloadSeconds": 0.064669517 + "connectionEstablishedSeconds": 0.130389179, + "uploadSeconds": 0.000002081, + "downloadSeconds": 0.062127935 }, { - "connectionEstablishedSeconds": 0.1300481, - "uploadSeconds": 0.000001564, - "downloadSeconds": 0.062634327 + "connectionEstablishedSeconds": 0.131200468, + "uploadSeconds": 0.000002234, + "downloadSeconds": 0.063621168 }, { - "connectionEstablishedSeconds": 0.125223091, - "uploadSeconds": 0.000001481, - "downloadSeconds": 0.061157475 + "connectionEstablishedSeconds": 0.132291424, + "uploadSeconds": 0.000001924, + "downloadSeconds": 0.063446517 }, { - "connectionEstablishedSeconds": 0.129800235, - "uploadSeconds": 0.000001461, - "downloadSeconds": 0.062495938 + "connectionEstablishedSeconds": 0.131338395, + "uploadSeconds": 0.000001864, + "downloadSeconds": 0.062883127 }, { - "connectionEstablishedSeconds": 0.128935513, - "uploadSeconds": 0.000001289, - "downloadSeconds": 0.062087854 + "connectionEstablishedSeconds": 0.132832946, + "uploadSeconds": 0.000002178, + "downloadSeconds": 0.064120672 }, { - "connectionEstablishedSeconds": 0.131783337, - "uploadSeconds": 0.000001504, - "downloadSeconds": 0.063374993 + "connectionEstablishedSeconds": 0.125112863, + "uploadSeconds": 0.000002234, + "downloadSeconds": 0.060819545 }, { - "connectionEstablishedSeconds": 0.128899161, - "uploadSeconds": 0.000001482, - "downloadSeconds": 0.062178416 + "connectionEstablishedSeconds": 0.129229344, + "uploadSeconds": 0.000001914, + "downloadSeconds": 0.061822645 }, { - "connectionEstablishedSeconds": 0.131739113, - "uploadSeconds": 0.000001386, - "downloadSeconds": 0.063473909 + "connectionEstablishedSeconds": 0.127488566, + "uploadSeconds": 0.000001963, + "downloadSeconds": 0.061016129 }, { - "connectionEstablishedSeconds": 0.132251676, - "uploadSeconds": 0.000001453, - "downloadSeconds": 0.06368673 + "connectionEstablishedSeconds": 0.131944067, + "uploadSeconds": 0.00000283, + "downloadSeconds": 0.063271008 }, { - "connectionEstablishedSeconds": 0.131773613, - "uploadSeconds": 0.000001447, - "downloadSeconds": 0.063479142 + "connectionEstablishedSeconds": 0.135384772, + "uploadSeconds": 0.00000214, + "downloadSeconds": 0.064847672 }, { - "connectionEstablishedSeconds": 0.127176818, - "uploadSeconds": 0.0000014, - "downloadSeconds": 0.061173964 + "connectionEstablishedSeconds": 0.124667496, + "uploadSeconds": 0.000002069, + "downloadSeconds": 0.06055079 }, { - "connectionEstablishedSeconds": 0.128782265, - "uploadSeconds": 0.000001717, - "downloadSeconds": 0.06190894 + "connectionEstablishedSeconds": 0.132800576, + "uploadSeconds": 0.000002034, + "downloadSeconds": 0.063699868 }, { - "connectionEstablishedSeconds": 0.126829132, - "uploadSeconds": 0.00000196, - "downloadSeconds": 0.060960895 + "connectionEstablishedSeconds": 0.133475009, + "uploadSeconds": 0.000002195, + "downloadSeconds": 0.064008758 }, { - "connectionEstablishedSeconds": 0.130953162, - "uploadSeconds": 0.000001626, - "downloadSeconds": 0.062989085 + "connectionEstablishedSeconds": 0.13164217, + "uploadSeconds": 0.000004093, + "downloadSeconds": 0.063046896 }, { - "connectionEstablishedSeconds": 0.120174779, - "uploadSeconds": 0.000001516, - "downloadSeconds": 0.058639118 + "connectionEstablishedSeconds": 0.130395177, + "uploadSeconds": 0.000002377, + "downloadSeconds": 0.063420146 }, { - "connectionEstablishedSeconds": 0.12485797, - "uploadSeconds": 0.000001441, - "downloadSeconds": 0.061003542 + "connectionEstablishedSeconds": 0.130376451, + "uploadSeconds": 0.000001854, + "downloadSeconds": 0.062517149 }, { - "connectionEstablishedSeconds": 0.124848685, - "uploadSeconds": 0.000001469, - "downloadSeconds": 0.060034978 + "connectionEstablishedSeconds": 0.124174265, + "uploadSeconds": 0.000002013, + "downloadSeconds": 0.059630293 }, { - "connectionEstablishedSeconds": 0.131629743, - "uploadSeconds": 0.000001449, - "downloadSeconds": 0.063505673 + "connectionEstablishedSeconds": 0.131321918, + "uploadSeconds": 0.000002109, + "downloadSeconds": 0.063847882 }, { - "connectionEstablishedSeconds": 0.118768582, - "uploadSeconds": 0.000001448, - "downloadSeconds": 0.057896358 + "connectionEstablishedSeconds": 0.12651402, + "uploadSeconds": 0.000001959, + "downloadSeconds": 0.061277022 }, { - "connectionEstablishedSeconds": 0.132635801, - "uploadSeconds": 0.000001474, - "downloadSeconds": 0.063932235 + "connectionEstablishedSeconds": 0.129392271, + "uploadSeconds": 0.000006552, + "downloadSeconds": 0.062017563 }, { - "connectionEstablishedSeconds": 0.126282233, - "uploadSeconds": 0.000001428, - "downloadSeconds": 0.061655677 + "connectionEstablishedSeconds": 0.125820688, + "uploadSeconds": 0.000002294, + "downloadSeconds": 0.060293214 }, { - "connectionEstablishedSeconds": 0.130103183, - "uploadSeconds": 0.000001461, - "downloadSeconds": 0.063143473 + "connectionEstablishedSeconds": 0.123559055, + "uploadSeconds": 0.000002293, + "downloadSeconds": 0.059092023 }, { - "connectionEstablishedSeconds": 0.126639755, - "uploadSeconds": 0.000001414, - "downloadSeconds": 0.06089211 + "connectionEstablishedSeconds": 0.12768245, + "uploadSeconds": 0.000001919, + "downloadSeconds": 0.061216962 }, { - "connectionEstablishedSeconds": 0.130654578, - "uploadSeconds": 0.000001511, - "downloadSeconds": 0.062895361 + "connectionEstablishedSeconds": 0.132155614, + "uploadSeconds": 0.000002231, + "downloadSeconds": 0.063330694 }, { - "connectionEstablishedSeconds": 0.130549247, - "uploadSeconds": 0.000001451, - "downloadSeconds": 0.063388518 + "connectionEstablishedSeconds": 0.131687572, + "uploadSeconds": 0.000002588, + "downloadSeconds": 0.063173232 }, { - "connectionEstablishedSeconds": 0.121943873, - "uploadSeconds": 0.000001546, - "downloadSeconds": 0.05863414 + "connectionEstablishedSeconds": 0.126361402, + "uploadSeconds": 0.000002273, + "downloadSeconds": 0.061394606 }, { - "connectionEstablishedSeconds": 0.128689427, - "uploadSeconds": 0.000001541, - "downloadSeconds": 0.061924851 + "connectionEstablishedSeconds": 0.128864354, + "uploadSeconds": 0.000002128, + "downloadSeconds": 0.062303788 }, { - "connectionEstablishedSeconds": 0.125593774, - "uploadSeconds": 0.000001388, - "downloadSeconds": 0.061346375 + "connectionEstablishedSeconds": 0.133012264, + "uploadSeconds": 0.000002351, + "downloadSeconds": 0.064573179 }, { - "connectionEstablishedSeconds": 0.126114403, - "uploadSeconds": 0.000001478, - "downloadSeconds": 0.061483351 + "connectionEstablishedSeconds": 0.134211551, + "uploadSeconds": 0.00000863, + "downloadSeconds": 0.064424225 }, { - "connectionEstablishedSeconds": 0.124927605, - "uploadSeconds": 0.000001518, - "downloadSeconds": 0.060145482 + "connectionEstablishedSeconds": 0.131659114, + "uploadSeconds": 0.000001996, + "downloadSeconds": 0.063097905 }, { - "connectionEstablishedSeconds": 0.128973538, - "uploadSeconds": 0.00000153, - "downloadSeconds": 0.062205281 + "connectionEstablishedSeconds": 0.130566836, + "uploadSeconds": 0.000001883, + "downloadSeconds": 0.062666167 }, { - "connectionEstablishedSeconds": 0.128944333, - "uploadSeconds": 0.000001505, - "downloadSeconds": 0.062992906 + "connectionEstablishedSeconds": 0.12699178, + "uploadSeconds": 0.000001941, + "downloadSeconds": 0.061710595 }, { - "connectionEstablishedSeconds": 0.128396058, - "uploadSeconds": 0.000001591, - "downloadSeconds": 0.061744308 + "connectionEstablishedSeconds": 0.126258345, + "uploadSeconds": 0.00000231, + "downloadSeconds": 0.060492382 }, { - "connectionEstablishedSeconds": 0.123635078, - "uploadSeconds": 0.000001673, - "downloadSeconds": 0.059731873 + "connectionEstablishedSeconds": 0.126496115, + "uploadSeconds": 0.000002291, + "downloadSeconds": 0.060621943 }, { - "connectionEstablishedSeconds": 0.126869663, - "uploadSeconds": 0.000001602, - "downloadSeconds": 0.060971931 + "connectionEstablishedSeconds": 0.129833632, + "uploadSeconds": 0.000002205, + "downloadSeconds": 0.063074154 }, { - "connectionEstablishedSeconds": 0.129249375, - "uploadSeconds": 0.00000168, - "downloadSeconds": 0.062236365 + "connectionEstablishedSeconds": 0.125972604, + "uploadSeconds": 0.000002052, + "downloadSeconds": 0.061142547 }, { - "connectionEstablishedSeconds": 0.129164979, - "uploadSeconds": 0.000001724, - "downloadSeconds": 0.063029812 + "connectionEstablishedSeconds": 0.133147996, + "uploadSeconds": 0.00000204, + "downloadSeconds": 0.063961665 }, { - "connectionEstablishedSeconds": 0.133137747, - "uploadSeconds": 0.00000146, - "downloadSeconds": 0.064202058 + "connectionEstablishedSeconds": 0.128990543, + "uploadSeconds": 0.000002291, + "downloadSeconds": 0.061926222 }, { - "connectionEstablishedSeconds": 0.126919816, - "uploadSeconds": 0.000001559, - "downloadSeconds": 0.061051216 + "connectionEstablishedSeconds": 0.126666522, + "uploadSeconds": 0.00000186, + "downloadSeconds": 0.060657623 }, { - "connectionEstablishedSeconds": 0.129161057, - "uploadSeconds": 0.000001515, - "downloadSeconds": 0.062148438 + "connectionEstablishedSeconds": 0.131063138, + "uploadSeconds": 0.000002364, + "downloadSeconds": 0.063630534 }, { - "connectionEstablishedSeconds": 0.12643837, - "uploadSeconds": 0.000001527, - "downloadSeconds": 0.060876096 + "connectionEstablishedSeconds": 0.127691264, + "uploadSeconds": 0.000001737, + "downloadSeconds": 0.061989469 }, { - "connectionEstablishedSeconds": 0.12883837, - "uploadSeconds": 0.000001477, - "downloadSeconds": 0.062117541 + "connectionEstablishedSeconds": 0.132669306, + "uploadSeconds": 0.000002116, + "downloadSeconds": 0.063654787 }, { - "connectionEstablishedSeconds": 0.125180919, - "uploadSeconds": 0.00000138, - "downloadSeconds": 0.060162327 + "connectionEstablishedSeconds": 0.13097608, + "uploadSeconds": 0.000002228, + "downloadSeconds": 0.062813042 }, { - "connectionEstablishedSeconds": 0.128980365, - "uploadSeconds": 0.000001464, - "downloadSeconds": 0.062863695 + "connectionEstablishedSeconds": 0.127253247, + "uploadSeconds": 0.000002123, + "downloadSeconds": 0.061762543 }, { - "connectionEstablishedSeconds": 0.125982137, - "uploadSeconds": 0.000001546, - "downloadSeconds": 0.060601693 + "connectionEstablishedSeconds": 0.130387331, + "uploadSeconds": 0.000001931, + "downloadSeconds": 0.062535067 }, { - "connectionEstablishedSeconds": 0.122040921, - "uploadSeconds": 0.00000147, - "downloadSeconds": 0.05863226 + "connectionEstablishedSeconds": 0.123412861, + "uploadSeconds": 0.000002168, + "downloadSeconds": 0.059142108 }, { - "connectionEstablishedSeconds": 0.13145477, - "uploadSeconds": 0.000001542, - "downloadSeconds": 0.064228081 + "connectionEstablishedSeconds": 0.134738403, + "uploadSeconds": 0.00000203, + "downloadSeconds": 0.064797602 }, { - "connectionEstablishedSeconds": 0.128118009, - "uploadSeconds": 0.000001748, - "downloadSeconds": 0.062337372 + "connectionEstablishedSeconds": 0.129629586, + "uploadSeconds": 0.000001965, + "downloadSeconds": 0.062985231 }, { - "connectionEstablishedSeconds": 0.129970686, - "uploadSeconds": 0.000001924, - "downloadSeconds": 0.062586235 + "connectionEstablishedSeconds": 0.134042226, + "uploadSeconds": 0.000002526, + "downloadSeconds": 0.064318516 } ], "implementation": "go-libp2p", @@ -4031,106 +4031,106 @@ "pings": { "unit": "s", "results": [ - 0.061, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.061, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.061700000000000005, - 0.061700000000000005, - 0.061799999999999994, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061799999999999994, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061799999999999994, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061700000000000005, - 0.061, - 0.060899999999999996, - 0.061, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.0624, - 0.0624, - 0.0624, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996, - 0.060899999999999996 + 0.0628, + 0.0628, + 0.0627, + 0.0628, + 0.0628, + 0.0628, + 0.0628, + 0.0627, + 0.0628, + 0.0627, + 0.0627, + 0.0628, + 0.0627, + 0.0628, + 0.0628, + 0.0627, + 0.0627, + 0.0627, + 0.0628, + 0.0627, + 0.0627, + 0.0627, + 0.0628, + 0.0628, + 0.0627, + 0.0627, + 0.0627, + 0.0627, + 0.0628, + 0.0628, + 0.0628, + 0.0628, + 0.0627, + 0.0628, + 0.0628, + 0.0627, + 0.0627, + 0.0628, + 0.0627, + 0.0627, + 0.0628, + 0.0628, + 0.0628, + 0.0627, + 0.0628, + 0.0627, + 0.0628, + 0.0628, + 0.0628, + 0.0628, + 0.0629, + 0.0628, + 0.0627, + 0.0627, + 0.0627, + 0.0628, + 0.0627, + 0.0627, + 0.0628, + 0.0627, + 0.0627, + 0.0628, + 0.0627, + 0.0627, + 0.0627, + 0.0627, + 0.0628, + 0.0627, + 0.0628, + 0.0628, + 0.0628, + 0.0628, + 0.0627, + 0.0628, + 0.0627, + 0.0628, + 0.0628, + 0.0628, + 0.0628, + 0.0627, + 0.0627, + 0.0628, + 0.0628, + 0.0628, + 0.0628, + 0.0628, + 0.0628, + 0.0627, + 0.0627, + 0.0628, + 0.0627, + 0.0628, + 0.0628, + 0.0628, + 0.0627, + 0.0627, + 0.0628, + 0.0628, + 0.0628, + 0.0628 ] }, "iperf": { @@ -4139,65 +4139,65 @@ 3280000000, 3280000000, 3280000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, 3280000000, 3280000000, + 3270000000, + 3270000000, + 3260000000, + 3260000000, + 3270000000, + 3260000000, + 3260000000, + 3260000000, + 3260000000, + 3260000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3230000000, + 3220000000, + 3220000000, + 3220000000, + 3220000000, + 3250000000, + 3270000000, 3280000000, + 3270000000, + 3270000000, + 3260000000, + 3260000000, + 3260000000, + 3270000000, + 3270000000, 3280000000, 3280000000, - 3290000000, - 3290000000, - 3280000000, - 3290000000, - 3290000000, - 3280000000, - 3290000000, - 3290000000, - 3290000000, - 3290000000, - 3290000000, - 3290000000, - 3300000000, - 3290000000, - 3290000000, - 3240000000, - 3230000000, - 3240000000, - 3230000000, - 3240000000, - 3290000000, - 3290000000, - 3290000000, - 3300000000, - 3290000000, 3280000000, - 3290000000, - 3290000000, - 3290000000, - 3290000000, - 3290000000, 3280000000, + 3270000000, 3280000000, + 3270000000, 3280000000, - 3300000000, - 3290000000, - 3290000000, + 3270000000, 3280000000, 3280000000, - 3290000000, - 3290000000, - 3290000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, 3280000000, - 3240000000, 3230000000, 3230000000, - 3240000000, - 3240000000, - 3280000000, - 3290000000, - 3290000000, - 3290000000, - 3280000000, - 2920000000 + 3230000000, + 3230000000, + 3260000000, + 3100000000 ] } -} +} \ No newline at end of file From 9ad921ec5a734bb7e9d7b642a51249f47ce60342 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 24 May 2023 14:58:27 +0900 Subject: [PATCH 096/143] fix(go-libp2p): don't wait for identify when dialing --- perf/impl/go-libp2p/v0.27/main.go | 6 +- perf/runner/benchmark-results.json | 4708 ++++++++++++++-------------- 2 files changed, 2358 insertions(+), 2356 deletions(-) diff --git a/perf/impl/go-libp2p/v0.27/main.go b/perf/impl/go-libp2p/v0.27/main.go index b07f9bff5..7d3553513 100644 --- a/perf/impl/go-libp2p/v0.27/main.go +++ b/perf/impl/go-libp2p/v0.27/main.go @@ -11,8 +11,9 @@ import ( "github.com/libp2p/go-libp2p" "github.com/libp2p/go-libp2p/core/crypto" "github.com/libp2p/go-libp2p/core/peer" - "github.com/multiformats/go-multiaddr" + "github.com/libp2p/go-libp2p/core/peerstore" tls "github.com/libp2p/go-libp2p/p2p/security/tls" + "github.com/multiformats/go-multiaddr" ) func main() { @@ -82,7 +83,8 @@ func main() { } start := time.Now() - err = h.Connect(context.Background(), *serverInfo) + h.Peerstore().AddAddrs(serverInfo.ID, serverInfo.Addrs, peerstore.TempAddrTTL) + _, err = h.Network().DialPeer(context.Background(), serverInfo.ID) if err != nil { panic(err) } diff --git a/perf/runner/benchmark-results.json b/perf/runner/benchmark-results.json index 139f9795e..e7370ad16 100644 --- a/perf/runner/benchmark-results.json +++ b/perf/runner/benchmark-results.json @@ -7,29 +7,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.073534389, - "uploadSeconds": 1.022966015, - "downloadSeconds": 6e-8 + "connectionEstablishedSeconds": 0.071717831, + "uploadSeconds": 1.108251356, + "downloadSeconds": 8.7e-8 }, { - "connectionEstablishedSeconds": 0.064356999, - "uploadSeconds": 0.998081542, - "downloadSeconds": 6.7e-8 + "connectionEstablishedSeconds": 0.06313201, + "uploadSeconds": 0.985241566, + "downloadSeconds": 1.05e-7 }, { - "connectionEstablishedSeconds": 0.063721734, - "uploadSeconds": 0.991826811, - "downloadSeconds": 1.2e-7 + "connectionEstablishedSeconds": 0.066539845, + "uploadSeconds": 1.032252996, + "downloadSeconds": 7.7e-8 }, { - "connectionEstablishedSeconds": 0.063634209, - "uploadSeconds": 0.989437537, - "downloadSeconds": 4.6e-8 + "connectionEstablishedSeconds": 0.06276987, + "uploadSeconds": 0.976620431, + "downloadSeconds": 8.2e-8 }, { - "connectionEstablishedSeconds": 0.06520362, - "uploadSeconds": 1.015414228, - "downloadSeconds": 7.9e-8 + "connectionEstablishedSeconds": 0.065300697, + "uploadSeconds": 1.018646835, + "downloadSeconds": 9.1e-8 } ], "implementation": "quic-go", @@ -39,29 +39,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.128835561, - "uploadSeconds": 35.737586498, - "downloadSeconds": 0.063590841 + "connectionEstablishedSeconds": 0.126148138, + "uploadSeconds": 35.39770708, + "downloadSeconds": 0.062901647 }, { - "connectionEstablishedSeconds": 0.127912166, - "uploadSeconds": 38.667856873, - "downloadSeconds": 0.064191392 + "connectionEstablishedSeconds": 0.12372451, + "uploadSeconds": 34.877587988, + "downloadSeconds": 0.061690616 }, { - "connectionEstablishedSeconds": 0.128037643, - "uploadSeconds": 39.031020329, - "downloadSeconds": 0.063663246 + "connectionEstablishedSeconds": 0.125053112, + "uploadSeconds": 35.098348121, + "downloadSeconds": 0.062292537 }, { - "connectionEstablishedSeconds": 0.125461392, - "uploadSeconds": 35.221011787, - "downloadSeconds": 0.062566617 + "connectionEstablishedSeconds": 0.123974689, + "uploadSeconds": 34.782441092, + "downloadSeconds": 0.061811206 }, { - "connectionEstablishedSeconds": 0.127881229, - "uploadSeconds": 35.830456386, - "downloadSeconds": 0.063730291 + "connectionEstablishedSeconds": 0.125870163, + "uploadSeconds": 35.341888119, + "downloadSeconds": 0.062707768 } ], "implementation": "rust-libp2p", @@ -71,29 +71,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.069181494, - "uploadSeconds": 8.663833631, - "downloadSeconds": 0.000052794 + "connectionEstablishedSeconds": 0.06387589, + "uploadSeconds": 14.897244537, + "downloadSeconds": 0.000086712 }, { - "connectionEstablishedSeconds": 0.066686168, - "uploadSeconds": 9.229412335, - "downloadSeconds": 0.000081701 + "connectionEstablishedSeconds": 0.064333418, + "uploadSeconds": 10.918767598, + "downloadSeconds": 0.000107009 }, { - "connectionEstablishedSeconds": 0.063637152, - "uploadSeconds": 10.140803841, - "downloadSeconds": 0.000111314 + "connectionEstablishedSeconds": 0.073568486, + "uploadSeconds": 9.286607313, + "downloadSeconds": 0.000220465 }, { - "connectionEstablishedSeconds": 0.064684463, - "uploadSeconds": 12.200936442, - "downloadSeconds": 0.000126945 + "connectionEstablishedSeconds": 0.064221808, + "uploadSeconds": 6.274033928, + "downloadSeconds": 0.000063738 }, { - "connectionEstablishedSeconds": 0.064385185, - "uploadSeconds": 5.834055514, - "downloadSeconds": 0.000197576 + "connectionEstablishedSeconds": 0.063970082, + "uploadSeconds": 13.355328015, + "downloadSeconds": 0.00011874 } ], "implementation": "rust-libp2p", @@ -103,29 +103,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.068037568, - "uploadSeconds": 1.449457077, - "downloadSeconds": 0.00013048 + "connectionEstablishedSeconds": 0.0656414, + "uploadSeconds": 1.441617759, + "downloadSeconds": 0.000192843 }, { - "connectionEstablishedSeconds": 0.062217728, - "uploadSeconds": 1.363903017, - "downloadSeconds": 0.000167691 + "connectionEstablishedSeconds": 0.063041674, + "uploadSeconds": 1.391953849, + "downloadSeconds": 0.000051184 }, { - "connectionEstablishedSeconds": 0.061760172, - "uploadSeconds": 1.351303046, - "downloadSeconds": 0.000046245 + "connectionEstablishedSeconds": 0.062063281, + "uploadSeconds": 1.384806358, + "downloadSeconds": 0.000057135 }, { - "connectionEstablishedSeconds": 0.066087113, - "uploadSeconds": 1.458958647, - "downloadSeconds": 0.000163002 + "connectionEstablishedSeconds": 0.064573601, + "uploadSeconds": 1.424646168, + "downloadSeconds": 0.000048773 }, { - "connectionEstablishedSeconds": 0.064387156, - "uploadSeconds": 1.421119262, - "downloadSeconds": 0.000038861 + "connectionEstablishedSeconds": 0.064452347, + "uploadSeconds": 1.41460567, + "downloadSeconds": 0.000047386 } ], "implementation": "rust-libp2p-quinn", @@ -136,28 +136,28 @@ "result": [ { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.786165446, - "downloadSeconds": 0.000004741 + "uploadSeconds": 2.7907368139999997, + "downloadSeconds": 0.000004624 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.704157312, - "downloadSeconds": 0.000004241 + "uploadSeconds": 2.7706807060000003, + "downloadSeconds": 0.00000681 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.962081208, - "downloadSeconds": 0.00000479 + "uploadSeconds": 2.719605393, + "downloadSeconds": 0.000004626 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.7954418370000003, - "downloadSeconds": 0.000004374 + "uploadSeconds": 3.003131051, + "downloadSeconds": 0.000004275 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.661247369, - "downloadSeconds": 0.000006242 + "uploadSeconds": 3.074974594, + "downloadSeconds": 0.000004652 } ], "implementation": "https", @@ -167,29 +167,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.257242958, - "uploadSeconds": 2.898156996, - "downloadSeconds": 0.126289233 + "connectionEstablishedSeconds": 0.18356968, + "uploadSeconds": 2.845136064, + "downloadSeconds": 0.121465042 }, { - "connectionEstablishedSeconds": 0.24601548, - "uploadSeconds": 2.778560537, - "downloadSeconds": 0.120859979 + "connectionEstablishedSeconds": 0.194598603, + "uploadSeconds": 2.849080344, + "downloadSeconds": 0.126641813 }, { - "connectionEstablishedSeconds": 0.242625404, - "uploadSeconds": 2.746282241, - "downloadSeconds": 0.119425337 + "connectionEstablishedSeconds": 0.187702518, + "uploadSeconds": 2.859621042, + "downloadSeconds": 0.12183152 }, { - "connectionEstablishedSeconds": 0.248417743, - "uploadSeconds": 2.792082647, - "downloadSeconds": 0.122889467 + "connectionEstablishedSeconds": 0.191923365, + "uploadSeconds": 2.864386991, + "downloadSeconds": 0.124702355 }, { - "connectionEstablishedSeconds": 0.255177343, - "uploadSeconds": 2.881758737, - "downloadSeconds": 0.125591938 + "connectionEstablishedSeconds": 0.194006051, + "uploadSeconds": 2.887186679, + "downloadSeconds": 0.125618279 } ], "implementation": "go-libp2p", @@ -199,29 +199,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.127848229, - "uploadSeconds": 1.292611852, - "downloadSeconds": 0.061803216 + "connectionEstablishedSeconds": 0.063861006, + "uploadSeconds": 1.258915335, + "downloadSeconds": 0.060972729 }, { - "connectionEstablishedSeconds": 0.12811363, - "uploadSeconds": 1.284820075, - "downloadSeconds": 0.062122628 + "connectionEstablishedSeconds": 0.066730983, + "uploadSeconds": 1.283791855, + "downloadSeconds": 0.062247951 }, { - "connectionEstablishedSeconds": 0.127555659, - "uploadSeconds": 1.273436506, - "downloadSeconds": 0.060895745 + "connectionEstablishedSeconds": 0.063911766, + "uploadSeconds": 1.229570152, + "downloadSeconds": 0.059556412 }, { - "connectionEstablishedSeconds": 0.128008204, - "uploadSeconds": 1.264772788, - "downloadSeconds": 0.061220133 + "connectionEstablishedSeconds": 0.067878354, + "uploadSeconds": 1.310084448, + "downloadSeconds": 0.063338809 }, { - "connectionEstablishedSeconds": 0.132303698, - "uploadSeconds": 1.327344153, - "downloadSeconds": 0.064228251 + "connectionEstablishedSeconds": 0.065068424, + "uploadSeconds": 1.251689327, + "downloadSeconds": 0.060601996 } ], "implementation": "go-libp2p", @@ -241,29 +241,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.063943862, - "uploadSeconds": 6.3e-7, - "downloadSeconds": 1.9445675869999999 + "connectionEstablishedSeconds": 0.063035848, + "uploadSeconds": 5.57e-7, + "downloadSeconds": 1.031684635 }, { - "connectionEstablishedSeconds": 0.062428058, - "uploadSeconds": 5.91e-7, - "downloadSeconds": 1.02886241 + "connectionEstablishedSeconds": 0.062549491, + "uploadSeconds": 6.24e-7, + "downloadSeconds": 1.062655087 }, { - "connectionEstablishedSeconds": 0.065298762, - "uploadSeconds": 6.06e-7, - "downloadSeconds": 1.075758583 + "connectionEstablishedSeconds": 0.063882753, + "uploadSeconds": 6.15e-7, + "downloadSeconds": 1.365721807 }, { - "connectionEstablishedSeconds": 0.06440009, - "uploadSeconds": 6.24e-7, - "downloadSeconds": 1.062645745 + "connectionEstablishedSeconds": 0.068691444, + "uploadSeconds": 6.46e-7, + "downloadSeconds": 1.129898296 }, { - "connectionEstablishedSeconds": 0.060673776, - "uploadSeconds": 6.01e-7, - "downloadSeconds": 1.000647709 + "connectionEstablishedSeconds": 0.063877163, + "uploadSeconds": 5.54e-7, + "downloadSeconds": 1.049462851 } ], "implementation": "quic-go", @@ -273,29 +273,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.124610523, - "uploadSeconds": 0.062097943, - "downloadSeconds": 38.179314432 + "connectionEstablishedSeconds": 0.125497053, + "uploadSeconds": 0.062505884, + "downloadSeconds": 41.707398634 }, { - "connectionEstablishedSeconds": 0.129181421, - "uploadSeconds": 0.064326834, - "downloadSeconds": 36.613869855 + "connectionEstablishedSeconds": 0.121197039, + "uploadSeconds": 0.060202899, + "downloadSeconds": 34.43093803 }, { - "connectionEstablishedSeconds": 0.128061981, - "uploadSeconds": 0.06364587, - "downloadSeconds": 37.86262842 + "connectionEstablishedSeconds": 0.127645116, + "uploadSeconds": 0.063521098, + "downloadSeconds": 35.914196199 }, { - "connectionEstablishedSeconds": 0.12590699, - "uploadSeconds": 0.062548546, - "downloadSeconds": 39.484203053 + "connectionEstablishedSeconds": 0.129042543, + "uploadSeconds": 0.06410038, + "downloadSeconds": 36.30029051 }, { - "connectionEstablishedSeconds": 0.126808331, - "uploadSeconds": 0.063408568, - "downloadSeconds": 35.652751967 + "connectionEstablishedSeconds": 0.139024871, + "uploadSeconds": 0.069074608, + "downloadSeconds": 39.297212503 } ], "implementation": "rust-libp2p", @@ -305,29 +305,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.061041295, - "uploadSeconds": 0.11785278, - "downloadSeconds": 20.858156356 + "connectionEstablishedSeconds": 0.061232706, + "uploadSeconds": 0.118743292, + "downloadSeconds": 9.754380328 }, { - "connectionEstablishedSeconds": 0.064759436, - "uploadSeconds": 0.126188747, - "downloadSeconds": 25.139504889 + "connectionEstablishedSeconds": 0.066431038, + "uploadSeconds": 0.129401107, + "downloadSeconds": 27.496442621 }, { - "connectionEstablishedSeconds": 0.065386286, - "uploadSeconds": 0.127581631, - "downloadSeconds": 19.44089213 + "connectionEstablishedSeconds": 0.068765541, + "uploadSeconds": 0.134091062, + "downloadSeconds": 28.775083466 }, { - "connectionEstablishedSeconds": 0.064602725, - "uploadSeconds": 0.12600768, - "downloadSeconds": 29.363678817 + "connectionEstablishedSeconds": 0.062047614, + "uploadSeconds": 0.120672787, + "downloadSeconds": 8.824578368 }, { - "connectionEstablishedSeconds": 0.064424853, - "uploadSeconds": 0.125434375, - "downloadSeconds": 29.075442273 + "connectionEstablishedSeconds": 0.063827674, + "uploadSeconds": 0.124235372, + "downloadSeconds": 25.670433799 } ], "implementation": "rust-libp2p", @@ -337,29 +337,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.066426458, - "uploadSeconds": 0.128562102, - "downloadSeconds": 1.406269952 + "connectionEstablishedSeconds": 0.06307016, + "uploadSeconds": 0.121919556, + "downloadSeconds": 1.317938822 }, { - "connectionEstablishedSeconds": 0.062947594, - "uploadSeconds": 0.122508445, - "downloadSeconds": 1.326230859 + "connectionEstablishedSeconds": 0.063818881, + "uploadSeconds": 0.124205443, + "downloadSeconds": 1.348505136 }, { - "connectionEstablishedSeconds": 0.063135632, - "uploadSeconds": 0.12315273, - "downloadSeconds": 1.332490635 + "connectionEstablishedSeconds": 0.06458344, + "uploadSeconds": 0.125787226, + "downloadSeconds": 1.358472583 }, { - "connectionEstablishedSeconds": 0.065326068, - "uploadSeconds": 0.127387869, - "downloadSeconds": 1.376855747 + "connectionEstablishedSeconds": 0.062156734, + "uploadSeconds": 0.120884064, + "downloadSeconds": 1.306500379 }, { - "connectionEstablishedSeconds": 0.066076185, - "uploadSeconds": 0.128719025, - "downloadSeconds": 1.441012489 + "connectionEstablishedSeconds": 0.063961475, + "uploadSeconds": 0.124511573, + "downloadSeconds": 1.345313962 } ], "implementation": "rust-libp2p-quinn", @@ -370,28 +370,28 @@ "result": [ { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189144939, - "downloadSeconds": 2.668715956 + "uploadSeconds": 0.187973696, + "downloadSeconds": 2.848235973 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188799167, - "downloadSeconds": 2.654331318 + "uploadSeconds": 0.179092659, + "downloadSeconds": 2.597372658 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184312243, - "downloadSeconds": 2.7782000289999997 + "uploadSeconds": 0.186427252, + "downloadSeconds": 2.6870848929999998 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186464761, - "downloadSeconds": 2.6601451430000003 + "uploadSeconds": 0.185136008, + "downloadSeconds": 2.752771338 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183973213, - "downloadSeconds": 2.936052888 + "uploadSeconds": 0.18952669, + "downloadSeconds": 2.80348634 } ], "implementation": "https", @@ -401,29 +401,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.241151468, - "uploadSeconds": 0.000001908, - "downloadSeconds": 2.842781712 + "connectionEstablishedSeconds": 0.179393572, + "uploadSeconds": 0.000002311, + "downloadSeconds": 2.832866447 }, { - "connectionEstablishedSeconds": 0.263596828, - "uploadSeconds": 0.000002181, - "downloadSeconds": 3.218761259 + "connectionEstablishedSeconds": 0.19359588, + "uploadSeconds": 0.000003047, + "downloadSeconds": 3.205773539 }, { - "connectionEstablishedSeconds": 0.246584644, - "uploadSeconds": 0.000002162, - "downloadSeconds": 2.977065663 + "connectionEstablishedSeconds": 0.182081015, + "uploadSeconds": 0.000002786, + "downloadSeconds": 2.847979808 }, { - "connectionEstablishedSeconds": 0.24640504, - "uploadSeconds": 0.000002292, - "downloadSeconds": 2.894210966 + "connectionEstablishedSeconds": 0.191907804, + "uploadSeconds": 0.000003374, + "downloadSeconds": 3.195657566 }, { - "connectionEstablishedSeconds": 0.253147228, - "uploadSeconds": 0.000002386, - "downloadSeconds": 3.114069692 + "connectionEstablishedSeconds": 0.190046212, + "uploadSeconds": 0.000002577, + "downloadSeconds": 2.9906799 } ], "implementation": "go-libp2p", @@ -433,29 +433,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.126388751, - "uploadSeconds": 0.000001452, - "downloadSeconds": 1.30453021 + "connectionEstablishedSeconds": 0.065825098, + "uploadSeconds": 0.000003218, + "downloadSeconds": 1.3629588369999999 }, { - "connectionEstablishedSeconds": 0.133952054, - "uploadSeconds": 0.00000173, - "downloadSeconds": 1.389168144 + "connectionEstablishedSeconds": 0.068266897, + "uploadSeconds": 0.000001669, + "downloadSeconds": 1.38042863 }, { - "connectionEstablishedSeconds": 0.126854789, - "uploadSeconds": 0.000001616, - "downloadSeconds": 1.335316416 + "connectionEstablishedSeconds": 0.063680453, + "uploadSeconds": 0.000001863, + "downloadSeconds": 1.328038099 }, { - "connectionEstablishedSeconds": 0.130872222, - "uploadSeconds": 0.000001434, - "downloadSeconds": 1.375239395 + "connectionEstablishedSeconds": 0.06607397, + "uploadSeconds": 0.000002147, + "downloadSeconds": 1.371688504 }, { - "connectionEstablishedSeconds": 0.126340413, - "uploadSeconds": 0.000001736, - "downloadSeconds": 1.326846424 + "connectionEstablishedSeconds": 0.067246739, + "uploadSeconds": 0.000002139, + "downloadSeconds": 1.359028703 } ], "implementation": "go-libp2p", @@ -475,504 +475,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.064760029, - "uploadSeconds": 0.000002237, - "downloadSeconds": 0.06281288 + "connectionEstablishedSeconds": 0.065165399, + "uploadSeconds": 0.00000205, + "downloadSeconds": 0.062984402 }, { - "connectionEstablishedSeconds": 0.062448685, - "uploadSeconds": 0.000001167, - "downloadSeconds": 0.060469641 + "connectionEstablishedSeconds": 0.062747394, + "uploadSeconds": 0.000001998, + "downloadSeconds": 0.060839292 }, { - "connectionEstablishedSeconds": 0.064932292, - "uploadSeconds": 0.000001928, - "downloadSeconds": 0.063148985 + "connectionEstablishedSeconds": 0.064625822, + "uploadSeconds": 0.000002479, + "downloadSeconds": 0.062788394 }, { - "connectionEstablishedSeconds": 0.066137949, - "uploadSeconds": 0.00000194, - "downloadSeconds": 0.064209464 + "connectionEstablishedSeconds": 0.063698972, + "uploadSeconds": 0.000001982, + "downloadSeconds": 0.06184015 }, { - "connectionEstablishedSeconds": 0.060545333, - "uploadSeconds": 9.07e-7, - "downloadSeconds": 0.058755662 + "connectionEstablishedSeconds": 0.062634644, + "uploadSeconds": 0.000001991, + "downloadSeconds": 0.060870242 }, { - "connectionEstablishedSeconds": 0.061730743, - "uploadSeconds": 8.63e-7, - "downloadSeconds": 0.0597931 + "connectionEstablishedSeconds": 0.064013275, + "uploadSeconds": 0.000001995, + "downloadSeconds": 0.062124273 }, { - "connectionEstablishedSeconds": 0.065625336, - "uploadSeconds": 0.000001947, - "downloadSeconds": 0.063831922 + "connectionEstablishedSeconds": 0.064267083, + "uploadSeconds": 9.64e-7, + "downloadSeconds": 0.062409567 }, { - "connectionEstablishedSeconds": 0.062263528, - "uploadSeconds": 0.00000198, - "downloadSeconds": 0.060449721 + "connectionEstablishedSeconds": 0.062738711, + "uploadSeconds": 0.000001009, + "downloadSeconds": 0.061048678 }, { - "connectionEstablishedSeconds": 0.065397138, - "uploadSeconds": 0.000002068, - "downloadSeconds": 0.063491222 + "connectionEstablishedSeconds": 0.064751569, + "uploadSeconds": 8.54e-7, + "downloadSeconds": 0.062899016 }, { - "connectionEstablishedSeconds": 0.06699556, - "uploadSeconds": 0.000001977, - "downloadSeconds": 0.065209392 + "connectionEstablishedSeconds": 0.065416862, + "uploadSeconds": 0.000002034, + "downloadSeconds": 0.06361402 }, { - "connectionEstablishedSeconds": 0.065975661, - "uploadSeconds": 0.000001905, - "downloadSeconds": 0.064126424 + "connectionEstablishedSeconds": 0.063444387, + "uploadSeconds": 8.11e-7, + "downloadSeconds": 0.061771271 }, { - "connectionEstablishedSeconds": 0.063061032, - "uploadSeconds": 9.21e-7, - "downloadSeconds": 0.061925001 + "connectionEstablishedSeconds": 0.063137822, + "uploadSeconds": 8.55e-7, + "downloadSeconds": 0.061375102 }, { - "connectionEstablishedSeconds": 0.064418665, - "uploadSeconds": 0.000002286, - "downloadSeconds": 0.062459007 + "connectionEstablishedSeconds": 0.065550564, + "uploadSeconds": 8.8e-7, + "downloadSeconds": 0.063849843 }, { - "connectionEstablishedSeconds": 0.064316085, + "connectionEstablishedSeconds": 0.064651059, "uploadSeconds": 8.99e-7, - "downloadSeconds": 0.062683664 + "downloadSeconds": 0.062754622 }, { - "connectionEstablishedSeconds": 0.064894229, - "uploadSeconds": 0.000002007, - "downloadSeconds": 0.061567794 + "connectionEstablishedSeconds": 0.065312324, + "uploadSeconds": 0.000001972, + "downloadSeconds": 0.063641094 }, { - "connectionEstablishedSeconds": 0.066622933, - "uploadSeconds": 0.000002061, - "downloadSeconds": 0.064526084 + "connectionEstablishedSeconds": 0.062753236, + "uploadSeconds": 8.91e-7, + "downloadSeconds": 0.06103999 }, { - "connectionEstablishedSeconds": 0.066025413, - "uploadSeconds": 0.000001985, - "downloadSeconds": 0.064214234 + "connectionEstablishedSeconds": 0.064600329, + "uploadSeconds": 0.000001966, + "downloadSeconds": 0.064458711 }, { - "connectionEstablishedSeconds": 0.065527168, - "uploadSeconds": 0.000001991, - "downloadSeconds": 0.063739535 + "connectionEstablishedSeconds": 0.065615952, + "uploadSeconds": 0.00000198, + "downloadSeconds": 0.063755344 }, { - "connectionEstablishedSeconds": 0.061806465, - "uploadSeconds": 0.000001847, - "downloadSeconds": 0.059981388 + "connectionEstablishedSeconds": 0.065301512, + "uploadSeconds": 0.000001254, + "downloadSeconds": 0.06361579 }, { - "connectionEstablishedSeconds": 0.064470062, - "uploadSeconds": 0.000001983, - "downloadSeconds": 0.062677313 + "connectionEstablishedSeconds": 0.065926556, + "uploadSeconds": 0.00000202, + "downloadSeconds": 0.064356162 }, { - "connectionEstablishedSeconds": 0.064385851, - "uploadSeconds": 0.000001936, - "downloadSeconds": 0.062727898 + "connectionEstablishedSeconds": 0.064776862, + "uploadSeconds": 0.000002286, + "downloadSeconds": 0.063039969 }, { - "connectionEstablishedSeconds": 0.065793443, - "uploadSeconds": 0.000001956, - "downloadSeconds": 0.063929008 + "connectionEstablishedSeconds": 0.0653571, + "uploadSeconds": 0.000002036, + "downloadSeconds": 0.063505042 }, { - "connectionEstablishedSeconds": 0.066344564, - "uploadSeconds": 0.00000192, - "downloadSeconds": 0.064569483 + "connectionEstablishedSeconds": 0.064668791, + "uploadSeconds": 8.23e-7, + "downloadSeconds": 0.062919029 }, { - "connectionEstablishedSeconds": 0.062830475, - "uploadSeconds": 8.33e-7, - "downloadSeconds": 0.061086429 + "connectionEstablishedSeconds": 0.062528538, + "uploadSeconds": 8.27e-7, + "downloadSeconds": 0.06084725 }, { - "connectionEstablishedSeconds": 0.065549432, - "uploadSeconds": 8.63e-7, - "downloadSeconds": 0.063729053 + "connectionEstablishedSeconds": 0.065401851, + "uploadSeconds": 0.000002032, + "downloadSeconds": 0.063516094 }, { - "connectionEstablishedSeconds": 0.065623979, - "uploadSeconds": 0.000001908, - "downloadSeconds": 0.063840254 + "connectionEstablishedSeconds": 0.067184136, + "uploadSeconds": 0.000001065, + "downloadSeconds": 0.065393404 }, { - "connectionEstablishedSeconds": 0.06697079, - "uploadSeconds": 0.000002078, - "downloadSeconds": 0.065105928 + "connectionEstablishedSeconds": 0.064649371, + "uploadSeconds": 8.6e-7, + "downloadSeconds": 0.062844864 }, { - "connectionEstablishedSeconds": 0.061487976, - "uploadSeconds": 0.00000194, - "downloadSeconds": 0.059726731 + "connectionEstablishedSeconds": 0.064501136, + "uploadSeconds": 0.000001924, + "downloadSeconds": 0.062687518 }, { - "connectionEstablishedSeconds": 0.066287254, - "uploadSeconds": 7.57e-7, - "downloadSeconds": 0.064530959 + "connectionEstablishedSeconds": 0.063678919, + "uploadSeconds": 0.000002086, + "downloadSeconds": 0.061926582 }, { - "connectionEstablishedSeconds": 0.061716118, - "uploadSeconds": 0.000001937, - "downloadSeconds": 0.060018561 + "connectionEstablishedSeconds": 0.064837881, + "uploadSeconds": 0.000001932, + "downloadSeconds": 0.063041324 }, { - "connectionEstablishedSeconds": 0.064844711, - "uploadSeconds": 8.28e-7, - "downloadSeconds": 0.063176451 + "connectionEstablishedSeconds": 0.065451424, + "uploadSeconds": 9.38e-7, + "downloadSeconds": 0.063633789 }, { - "connectionEstablishedSeconds": 0.063681467, - "uploadSeconds": 8.39e-7, - "downloadSeconds": 0.062491939 + "connectionEstablishedSeconds": 0.06614835, + "uploadSeconds": 0.000001994, + "downloadSeconds": 0.064388666 }, { - "connectionEstablishedSeconds": 0.066033579, - "uploadSeconds": 8.39e-7, - "downloadSeconds": 0.064329757 + "connectionEstablishedSeconds": 0.065818051, + "uploadSeconds": 0.00000108, + "downloadSeconds": 0.06417327 }, { - "connectionEstablishedSeconds": 0.064841555, - "uploadSeconds": 0.000002079, - "downloadSeconds": 0.063022891 + "connectionEstablishedSeconds": 0.064165866, + "uploadSeconds": 0.000001895, + "downloadSeconds": 0.061931799 }, { - "connectionEstablishedSeconds": 0.063232988, - "uploadSeconds": 0.000002007, - "downloadSeconds": 0.061574144 + "connectionEstablishedSeconds": 0.065610024, + "uploadSeconds": 7.56e-7, + "downloadSeconds": 0.063755582 }, { - "connectionEstablishedSeconds": 0.064933807, - "uploadSeconds": 7.77e-7, - "downloadSeconds": 0.063233226 + "connectionEstablishedSeconds": 0.064895944, + "uploadSeconds": 0.000001911, + "downloadSeconds": 0.062890372 }, { - "connectionEstablishedSeconds": 0.06560355, - "uploadSeconds": 0.000001879, - "downloadSeconds": 0.063885974 + "connectionEstablishedSeconds": 0.063400465, + "uploadSeconds": 9.37e-7, + "downloadSeconds": 0.061724983 }, { - "connectionEstablishedSeconds": 0.063048478, - "uploadSeconds": 0.000001966, - "downloadSeconds": 0.061247689 + "connectionEstablishedSeconds": 0.062550655, + "uploadSeconds": 0.00000184, + "downloadSeconds": 0.060743791 }, { - "connectionEstablishedSeconds": 0.065530419, - "uploadSeconds": 8.58e-7, - "downloadSeconds": 0.063799359 + "connectionEstablishedSeconds": 0.061837061, + "uploadSeconds": 7.97e-7, + "downloadSeconds": 0.060037219 }, { - "connectionEstablishedSeconds": 0.062577659, - "uploadSeconds": 0.00000197, - "downloadSeconds": 0.060871138 + "connectionEstablishedSeconds": 0.063318984, + "uploadSeconds": 9.51e-7, + "downloadSeconds": 0.061501912 }, { - "connectionEstablishedSeconds": 0.064430476, - "uploadSeconds": 0.000001943, - "downloadSeconds": 0.062624132 + "connectionEstablishedSeconds": 0.062755613, + "uploadSeconds": 0.000001847, + "downloadSeconds": 0.060933817 }, { - "connectionEstablishedSeconds": 0.065087049, - "uploadSeconds": 0.000001941, - "downloadSeconds": 0.063500727 + "connectionEstablishedSeconds": 0.064000301, + "uploadSeconds": 0.000001945, + "downloadSeconds": 0.062272194 }, { - "connectionEstablishedSeconds": 0.064993479, - "uploadSeconds": 8.5e-7, - "downloadSeconds": 0.063395202 + "connectionEstablishedSeconds": 0.063320814, + "uploadSeconds": 8.07e-7, + "downloadSeconds": 0.061480115 }, { - "connectionEstablishedSeconds": 0.065235155, - "uploadSeconds": 0.000002207, - "downloadSeconds": 0.063520117 + "connectionEstablishedSeconds": 0.063596796, + "uploadSeconds": 0.000002113, + "downloadSeconds": 0.061863084 }, { - "connectionEstablishedSeconds": 0.061144848, - "uploadSeconds": 0.000001996, - "downloadSeconds": 0.059348959 + "connectionEstablishedSeconds": 0.0626508, + "uploadSeconds": 7.9e-7, + "downloadSeconds": 0.060858716 }, { - "connectionEstablishedSeconds": 0.065986763, - "uploadSeconds": 0.000001828, - "downloadSeconds": 0.063752895 + "connectionEstablishedSeconds": 0.065164927, + "uploadSeconds": 8.62e-7, + "downloadSeconds": 0.06338737 }, { - "connectionEstablishedSeconds": 0.065123685, - "uploadSeconds": 0.000001874, - "downloadSeconds": 0.063437157 + "connectionEstablishedSeconds": 0.065109136, + "uploadSeconds": 0.00000193, + "downloadSeconds": 0.062728035 }, { - "connectionEstablishedSeconds": 0.065245189, - "uploadSeconds": 0.000001856, - "downloadSeconds": 0.063451093 + "connectionEstablishedSeconds": 0.064769405, + "uploadSeconds": 0.000001872, + "downloadSeconds": 0.062852259 }, { - "connectionEstablishedSeconds": 0.063450695, - "uploadSeconds": 8.74e-7, - "downloadSeconds": 0.06175543 + "connectionEstablishedSeconds": 0.061786286, + "uploadSeconds": 8.24e-7, + "downloadSeconds": 0.060027114 }, { - "connectionEstablishedSeconds": 0.06624405, - "uploadSeconds": 7.93e-7, - "downloadSeconds": 0.064463587 + "connectionEstablishedSeconds": 0.064935099, + "uploadSeconds": 0.000002051, + "downloadSeconds": 0.063098459 }, { - "connectionEstablishedSeconds": 0.06214795, - "uploadSeconds": 7.65e-7, - "downloadSeconds": 0.060482684 + "connectionEstablishedSeconds": 0.065655911, + "uploadSeconds": 8.36e-7, + "downloadSeconds": 0.063901518 }, { - "connectionEstablishedSeconds": 0.065562946, - "uploadSeconds": 0.000001159, - "downloadSeconds": 0.063926501 + "connectionEstablishedSeconds": 0.064747825, + "uploadSeconds": 7.87e-7, + "downloadSeconds": 0.063124483 }, { - "connectionEstablishedSeconds": 0.066338614, - "uploadSeconds": 8.64e-7, - "downloadSeconds": 0.064582208 + "connectionEstablishedSeconds": 0.063503289, + "uploadSeconds": 0.000001984, + "downloadSeconds": 0.061868251 }, { - "connectionEstablishedSeconds": 0.066080194, - "uploadSeconds": 0.000001938, - "downloadSeconds": 0.064387893 + "connectionEstablishedSeconds": 0.061415703, + "uploadSeconds": 0.000001962, + "downloadSeconds": 0.05970872 }, { - "connectionEstablishedSeconds": 0.062753116, - "uploadSeconds": 0.000001749, - "downloadSeconds": 0.060966769 + "connectionEstablishedSeconds": 0.064769602, + "uploadSeconds": 8.4e-7, + "downloadSeconds": 0.063023085 }, { - "connectionEstablishedSeconds": 0.06670096, - "uploadSeconds": 0.000002136, - "downloadSeconds": 0.065015137 + "connectionEstablishedSeconds": 0.065505636, + "uploadSeconds": 8.87e-7, + "downloadSeconds": 0.063739308 }, { - "connectionEstablishedSeconds": 0.065191127, - "uploadSeconds": 0.000001907, - "downloadSeconds": 0.063967922 + "connectionEstablishedSeconds": 0.06451846, + "uploadSeconds": 9.46e-7, + "downloadSeconds": 0.062635088 }, { - "connectionEstablishedSeconds": 0.062696817, - "uploadSeconds": 0.000001903, - "downloadSeconds": 0.060870225 + "connectionEstablishedSeconds": 0.066384201, + "uploadSeconds": 0.000002059, + "downloadSeconds": 0.063873253 }, { - "connectionEstablishedSeconds": 0.06248965, - "uploadSeconds": 0.000001821, - "downloadSeconds": 0.060678251 + "connectionEstablishedSeconds": 0.062558555, + "uploadSeconds": 0.000001889, + "downloadSeconds": 0.060869005 }, { - "connectionEstablishedSeconds": 0.062654457, - "uploadSeconds": 8.81e-7, - "downloadSeconds": 0.060962527 + "connectionEstablishedSeconds": 0.066144963, + "uploadSeconds": 0.000001031, + "downloadSeconds": 0.064446439 }, { - "connectionEstablishedSeconds": 0.064268986, - "uploadSeconds": 7.85e-7, - "downloadSeconds": 0.062495117 + "connectionEstablishedSeconds": 0.064371163, + "uploadSeconds": 0.000001844, + "downloadSeconds": 0.062515291 }, { - "connectionEstablishedSeconds": 0.063733813, - "uploadSeconds": 0.000001807, - "downloadSeconds": 0.062112064 + "connectionEstablishedSeconds": 0.064233048, + "uploadSeconds": 0.000001994, + "downloadSeconds": 0.0624386 }, { - "connectionEstablishedSeconds": 0.065260619, - "uploadSeconds": 0.000001884, - "downloadSeconds": 0.063585493 + "connectionEstablishedSeconds": 0.06191039, + "uploadSeconds": 0.00000197, + "downloadSeconds": 0.060132284 }, { - "connectionEstablishedSeconds": 0.065842262, - "uploadSeconds": 0.000001853, - "downloadSeconds": 0.064176502 + "connectionEstablishedSeconds": 0.064568576, + "uploadSeconds": 0.000002053, + "downloadSeconds": 0.062796254 }, { - "connectionEstablishedSeconds": 0.060294876, - "uploadSeconds": 0.000001912, - "downloadSeconds": 0.058585692 + "connectionEstablishedSeconds": 0.066758576, + "uploadSeconds": 8.63e-7, + "downloadSeconds": 0.064851693 }, { - "connectionEstablishedSeconds": 0.066388657, - "uploadSeconds": 0.000001224, - "downloadSeconds": 0.064721512 + "connectionEstablishedSeconds": 0.061160558, + "uploadSeconds": 0.000001989, + "downloadSeconds": 0.059307607 }, { - "connectionEstablishedSeconds": 0.064995086, - "uploadSeconds": 7.62e-7, - "downloadSeconds": 0.063261543 + "connectionEstablishedSeconds": 0.063013566, + "uploadSeconds": 0.000002047, + "downloadSeconds": 0.061166608 }, { - "connectionEstablishedSeconds": 0.065398433, - "uploadSeconds": 0.000001887, - "downloadSeconds": 0.062779168 + "connectionEstablishedSeconds": 0.062846489, + "uploadSeconds": 0.000001952, + "downloadSeconds": 0.0610489 }, { - "connectionEstablishedSeconds": 0.064685915, - "uploadSeconds": 8.09e-7, - "downloadSeconds": 0.062934946 + "connectionEstablishedSeconds": 0.063905027, + "uploadSeconds": 0.000001906, + "downloadSeconds": 0.062143314 }, { - "connectionEstablishedSeconds": 0.0652299, - "uploadSeconds": 0.000001814, - "downloadSeconds": 0.063376032 + "connectionEstablishedSeconds": 0.062881868, + "uploadSeconds": 0.000001966, + "downloadSeconds": 0.061308403 }, { - "connectionEstablishedSeconds": 0.06176216, - "uploadSeconds": 0.0000019, - "downloadSeconds": 0.059977637 + "connectionEstablishedSeconds": 0.064227255, + "uploadSeconds": 0.000001957, + "downloadSeconds": 0.06239708 }, { - "connectionEstablishedSeconds": 0.062917191, - "uploadSeconds": 7.77e-7, - "downloadSeconds": 0.061358745 + "connectionEstablishedSeconds": 0.064044998, + "uploadSeconds": 0.000001985, + "downloadSeconds": 0.062253102 }, { - "connectionEstablishedSeconds": 0.064894281, - "uploadSeconds": 0.000001035, - "downloadSeconds": 0.063349511 + "connectionEstablishedSeconds": 0.062412245, + "uploadSeconds": 0.000002063, + "downloadSeconds": 0.060736469 }, { - "connectionEstablishedSeconds": 0.066701458, - "uploadSeconds": 0.000001984, - "downloadSeconds": 0.064929288 + "connectionEstablishedSeconds": 0.063499965, + "uploadSeconds": 0.000001956, + "downloadSeconds": 0.061751684 }, { - "connectionEstablishedSeconds": 0.065497067, - "uploadSeconds": 0.000001976, - "downloadSeconds": 0.063766971 + "connectionEstablishedSeconds": 0.063699321, + "uploadSeconds": 0.000001905, + "downloadSeconds": 0.061931416 }, { - "connectionEstablishedSeconds": 0.065137242, - "uploadSeconds": 0.000001867, - "downloadSeconds": 0.063424394 + "connectionEstablishedSeconds": 0.066367568, + "uploadSeconds": 0.000001943, + "downloadSeconds": 0.064741811 }, { - "connectionEstablishedSeconds": 0.063138487, - "uploadSeconds": 0.000001986, - "downloadSeconds": 0.061429917 + "connectionEstablishedSeconds": 0.066423741, + "uploadSeconds": 8.75e-7, + "downloadSeconds": 0.064588142 }, { - "connectionEstablishedSeconds": 0.064407804, - "uploadSeconds": 0.000001982, - "downloadSeconds": 0.06268847 + "connectionEstablishedSeconds": 0.063184712, + "uploadSeconds": 0.000001091, + "downloadSeconds": 0.061426575 }, { - "connectionEstablishedSeconds": 0.065795651, - "uploadSeconds": 8.68e-7, - "downloadSeconds": 0.064334815 + "connectionEstablishedSeconds": 0.062697375, + "uploadSeconds": 0.000002063, + "downloadSeconds": 0.061594337 }, { - "connectionEstablishedSeconds": 0.064823516, - "uploadSeconds": 0.000001927, - "downloadSeconds": 0.06300212 + "connectionEstablishedSeconds": 0.065604173, + "uploadSeconds": 0.000001958, + "downloadSeconds": 0.063896418 }, { - "connectionEstablishedSeconds": 0.065963804, - "uploadSeconds": 7.9e-7, - "downloadSeconds": 0.064829289 + "connectionEstablishedSeconds": 0.063786339, + "uploadSeconds": 0.000001924, + "downloadSeconds": 0.061962591 }, { - "connectionEstablishedSeconds": 0.064067047, - "uploadSeconds": 0.000001943, - "downloadSeconds": 0.062424641 + "connectionEstablishedSeconds": 0.064901403, + "uploadSeconds": 8.44e-7, + "downloadSeconds": 0.063061015 }, { - "connectionEstablishedSeconds": 0.0659525, - "uploadSeconds": 0.000001998, - "downloadSeconds": 0.064430986 + "connectionEstablishedSeconds": 0.066902795, + "uploadSeconds": 0.000002142, + "downloadSeconds": 0.065148918 }, { - "connectionEstablishedSeconds": 0.062982117, - "uploadSeconds": 8.93e-7, - "downloadSeconds": 0.061279518 + "connectionEstablishedSeconds": 0.06681438, + "uploadSeconds": 9.44e-7, + "downloadSeconds": 0.06453611 }, { - "connectionEstablishedSeconds": 0.065117546, - "uploadSeconds": 8.01e-7, - "downloadSeconds": 0.063463914 + "connectionEstablishedSeconds": 0.06516872, + "uploadSeconds": 0.000001025, + "downloadSeconds": 0.063345599 }, { - "connectionEstablishedSeconds": 0.062436406, - "uploadSeconds": 0.000002008, - "downloadSeconds": 0.060670593 + "connectionEstablishedSeconds": 0.065608415, + "uploadSeconds": 8.83e-7, + "downloadSeconds": 0.063954477 }, { - "connectionEstablishedSeconds": 0.065396799, - "uploadSeconds": 0.000001992, - "downloadSeconds": 0.06381817 + "connectionEstablishedSeconds": 0.063050374, + "uploadSeconds": 0.0000019, + "downloadSeconds": 0.061264983 }, { - "connectionEstablishedSeconds": 0.065378427, - "uploadSeconds": 0.000001825, - "downloadSeconds": 0.063600177 + "connectionEstablishedSeconds": 0.06506769, + "uploadSeconds": 0.000001938, + "downloadSeconds": 0.06324869 }, { - "connectionEstablishedSeconds": 0.062197303, - "uploadSeconds": 0.000001965, - "downloadSeconds": 0.060437046 + "connectionEstablishedSeconds": 0.063733822, + "uploadSeconds": 8.25e-7, + "downloadSeconds": 0.06194249 }, { - "connectionEstablishedSeconds": 0.066848549, - "uploadSeconds": 9.25e-7, - "downloadSeconds": 0.065111064 + "connectionEstablishedSeconds": 0.06545029, + "uploadSeconds": 0.00000198, + "downloadSeconds": 0.063731531 }, { - "connectionEstablishedSeconds": 0.066892128, - "uploadSeconds": 8.49e-7, - "downloadSeconds": 0.065136432 + "connectionEstablishedSeconds": 0.063806752, + "uploadSeconds": 0.000001977, + "downloadSeconds": 0.062047961 }, { - "connectionEstablishedSeconds": 0.063533068, - "uploadSeconds": 0.000001934, - "downloadSeconds": 0.061806919 + "connectionEstablishedSeconds": 0.065782118, + "uploadSeconds": 7.98e-7, + "downloadSeconds": 0.063986379 }, { - "connectionEstablishedSeconds": 0.065851953, - "uploadSeconds": 0.000001829, - "downloadSeconds": 0.064120925 + "connectionEstablishedSeconds": 0.065587017, + "uploadSeconds": 0.000001947, + "downloadSeconds": 0.063807411 }, { - "connectionEstablishedSeconds": 0.06636729, - "uploadSeconds": 0.000001922, - "downloadSeconds": 0.064636105 + "connectionEstablishedSeconds": 0.064806976, + "uploadSeconds": 0.000001822, + "downloadSeconds": 0.063000614 }, { - "connectionEstablishedSeconds": 0.063609689, - "uploadSeconds": 9.22e-7, - "downloadSeconds": 0.061941316 + "connectionEstablishedSeconds": 0.063191426, + "uploadSeconds": 8.52e-7, + "downloadSeconds": 0.061417895 }, { - "connectionEstablishedSeconds": 0.066131632, - "uploadSeconds": 8.55e-7, - "downloadSeconds": 0.06437746 + "connectionEstablishedSeconds": 0.066138367, + "uploadSeconds": 0.000001897, + "downloadSeconds": 0.064314152 }, { - "connectionEstablishedSeconds": 0.064215882, - "uploadSeconds": 0.000001915, - "downloadSeconds": 0.062532476 + "connectionEstablishedSeconds": 0.06372295, + "uploadSeconds": 0.000001952, + "downloadSeconds": 0.061796685 }, { - "connectionEstablishedSeconds": 0.063644923, - "uploadSeconds": 0.000001938, - "downloadSeconds": 0.060830741 + "connectionEstablishedSeconds": 0.064172483, + "uploadSeconds": 0.00000199, + "downloadSeconds": 0.062531066 }, { - "connectionEstablishedSeconds": 0.063732836, - "uploadSeconds": 0.000001884, - "downloadSeconds": 0.061946688 + "connectionEstablishedSeconds": 0.069595187, + "uploadSeconds": 8.8e-7, + "downloadSeconds": 0.0677336 }, { - "connectionEstablishedSeconds": 0.066034355, - "uploadSeconds": 0.000001708, - "downloadSeconds": 0.0643128 + "connectionEstablishedSeconds": 0.065298142, + "uploadSeconds": 0.000002023, + "downloadSeconds": 0.063484516 } ], "implementation": "quic-go", @@ -982,504 +982,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.12890574, - "uploadSeconds": 0.064234944, - "downloadSeconds": 0.064077181 + "connectionEstablishedSeconds": 0.128782283, + "uploadSeconds": 0.064142782, + "downloadSeconds": 0.064041615 }, { - "connectionEstablishedSeconds": 0.123666368, - "uploadSeconds": 0.06144532, - "downloadSeconds": 0.061441703 + "connectionEstablishedSeconds": 0.122877358, + "uploadSeconds": 0.061015723, + "downloadSeconds": 0.061037874 }, { - "connectionEstablishedSeconds": 0.129268658, - "uploadSeconds": 0.064259392, - "downloadSeconds": 0.064232697 + "connectionEstablishedSeconds": 0.126806208, + "uploadSeconds": 0.063001184, + "downloadSeconds": 0.06303076 }, { - "connectionEstablishedSeconds": 0.127924895, - "uploadSeconds": 0.063625281, - "downloadSeconds": 0.063605948 + "connectionEstablishedSeconds": 0.127298349, + "uploadSeconds": 0.063292919, + "downloadSeconds": 0.063327184 }, { - "connectionEstablishedSeconds": 0.126165285, - "uploadSeconds": 0.062710021, - "downloadSeconds": 0.062744639 + "connectionEstablishedSeconds": 0.124117775, + "uploadSeconds": 0.061674621, + "downloadSeconds": 0.061733501 }, { - "connectionEstablishedSeconds": 0.125455033, - "uploadSeconds": 0.062406175, - "downloadSeconds": 0.06237357 + "connectionEstablishedSeconds": 0.11815247, + "uploadSeconds": 0.058715189, + "downloadSeconds": 0.058717916 }, { - "connectionEstablishedSeconds": 0.130679247, - "uploadSeconds": 0.064931164, - "downloadSeconds": 0.065014193 + "connectionEstablishedSeconds": 0.130421381, + "uploadSeconds": 0.064805873, + "downloadSeconds": 0.064916393 }, { - "connectionEstablishedSeconds": 0.118667532, - "uploadSeconds": 0.058958126, - "downloadSeconds": 0.058990372 + "connectionEstablishedSeconds": 0.120928897, + "uploadSeconds": 0.060078751, + "downloadSeconds": 0.060161814 }, { - "connectionEstablishedSeconds": 0.128856956, - "uploadSeconds": 0.064054102, - "downloadSeconds": 0.064101849 + "connectionEstablishedSeconds": 0.1208453, + "uploadSeconds": 0.059910829, + "downloadSeconds": 0.059957343 }, { - "connectionEstablishedSeconds": 0.127606227, - "uploadSeconds": 0.063461964, - "downloadSeconds": 0.063486288 + "connectionEstablishedSeconds": 0.129701024, + "uploadSeconds": 0.064453217, + "downloadSeconds": 0.064540534 }, { - "connectionEstablishedSeconds": 0.119437378, - "uploadSeconds": 0.059492119, - "downloadSeconds": 0.05941957 + "connectionEstablishedSeconds": 0.122099613, + "uploadSeconds": 0.060642482, + "downloadSeconds": 0.060735635 }, { - "connectionEstablishedSeconds": 0.124138498, - "uploadSeconds": 0.061714219, - "downloadSeconds": 0.061673285 + "connectionEstablishedSeconds": 0.125861895, + "uploadSeconds": 0.062546269, + "downloadSeconds": 0.062614625 }, { - "connectionEstablishedSeconds": 0.129222748, - "uploadSeconds": 0.064260759, - "downloadSeconds": 0.06430083 + "connectionEstablishedSeconds": 0.121033173, + "uploadSeconds": 0.060119234, + "downloadSeconds": 0.060325896 }, { - "connectionEstablishedSeconds": 0.125269156, - "uploadSeconds": 0.062145234, - "downloadSeconds": 0.062231168 + "connectionEstablishedSeconds": 0.12897512, + "uploadSeconds": 0.064099577, + "downloadSeconds": 0.064192461 }, { - "connectionEstablishedSeconds": 0.124394051, - "uploadSeconds": 0.061821911, - "downloadSeconds": 0.061863613 + "connectionEstablishedSeconds": 0.12537412, + "uploadSeconds": 0.062271465, + "downloadSeconds": 0.062348898 }, { - "connectionEstablishedSeconds": 0.126723226, - "uploadSeconds": 0.062997038, - "downloadSeconds": 0.063023762 + "connectionEstablishedSeconds": 0.122704549, + "uploadSeconds": 0.060939701, + "downloadSeconds": 0.061026676 }, { - "connectionEstablishedSeconds": 0.128021564, - "uploadSeconds": 0.063460744, - "downloadSeconds": 0.063511776 + "connectionEstablishedSeconds": 0.121299417, + "uploadSeconds": 0.060644079, + "downloadSeconds": 0.060340429 }, { - "connectionEstablishedSeconds": 0.12773778, - "uploadSeconds": 0.063448123, - "downloadSeconds": 0.06349057 + "connectionEstablishedSeconds": 0.129463275, + "uploadSeconds": 0.064330819, + "downloadSeconds": 0.064387025 }, { - "connectionEstablishedSeconds": 0.126872286, - "uploadSeconds": 0.063037982, - "downloadSeconds": 0.063093935 + "connectionEstablishedSeconds": 0.118009564, + "uploadSeconds": 0.058634205, + "downloadSeconds": 0.058707631 }, { - "connectionEstablishedSeconds": 0.123476483, - "uploadSeconds": 0.061382576, - "downloadSeconds": 0.061395165 + "connectionEstablishedSeconds": 0.126005819, + "uploadSeconds": 0.06262453, + "downloadSeconds": 0.062693139 }, { - "connectionEstablishedSeconds": 0.128140827, - "uploadSeconds": 0.063684825, - "downloadSeconds": 0.063828771 + "connectionEstablishedSeconds": 0.123951592, + "uploadSeconds": 0.061564866, + "downloadSeconds": 0.061667522 }, { - "connectionEstablishedSeconds": 0.123338245, - "uploadSeconds": 0.061279922, - "downloadSeconds": 0.061289205 + "connectionEstablishedSeconds": 0.130207645, + "uploadSeconds": 0.064686677, + "downloadSeconds": 0.064783184 }, { - "connectionEstablishedSeconds": 0.124056083, - "uploadSeconds": 0.061649497, - "downloadSeconds": 0.061711477 + "connectionEstablishedSeconds": 0.122590137, + "uploadSeconds": 0.060902271, + "downloadSeconds": 0.060967625 }, { - "connectionEstablishedSeconds": 0.127936406, - "uploadSeconds": 0.063595593, - "downloadSeconds": 0.063629585 + "connectionEstablishedSeconds": 0.121903049, + "uploadSeconds": 0.060545381, + "downloadSeconds": 0.060599883 }, { - "connectionEstablishedSeconds": 0.123247794, - "uploadSeconds": 0.061233624, - "downloadSeconds": 0.061263316 + "connectionEstablishedSeconds": 0.127654451, + "uploadSeconds": 0.063419366, + "downloadSeconds": 0.063509647 }, { - "connectionEstablishedSeconds": 0.121794273, - "uploadSeconds": 0.060511801, - "downloadSeconds": 0.060624242 + "connectionEstablishedSeconds": 0.123890299, + "uploadSeconds": 0.061515197, + "downloadSeconds": 0.061600551 }, { - "connectionEstablishedSeconds": 0.127386558, - "uploadSeconds": 0.063249047, - "downloadSeconds": 0.063317881 + "connectionEstablishedSeconds": 0.127159301, + "uploadSeconds": 0.063216999, + "downloadSeconds": 0.063270615 }, { - "connectionEstablishedSeconds": 0.129265951, - "uploadSeconds": 0.064265895, - "downloadSeconds": 0.064397965 + "connectionEstablishedSeconds": 0.11853953, + "uploadSeconds": 0.058840163, + "downloadSeconds": 0.058910879 }, { - "connectionEstablishedSeconds": 0.123841345, - "uploadSeconds": 0.061519427, - "downloadSeconds": 0.061568687 + "connectionEstablishedSeconds": 0.125482649, + "uploadSeconds": 0.062332114, + "downloadSeconds": 0.062400346 }, { - "connectionEstablishedSeconds": 0.129677907, - "uploadSeconds": 0.06445228, - "downloadSeconds": 0.064479643 + "connectionEstablishedSeconds": 0.122352409, + "uploadSeconds": 0.060781148, + "downloadSeconds": 0.060850876 }, { - "connectionEstablishedSeconds": 0.122579899, - "uploadSeconds": 0.060907635, - "downloadSeconds": 0.060942285 + "connectionEstablishedSeconds": 0.127330874, + "uploadSeconds": 0.063281691, + "downloadSeconds": 0.063333099 }, { - "connectionEstablishedSeconds": 0.124209834, - "uploadSeconds": 0.061721528, - "downloadSeconds": 0.061738801 + "connectionEstablishedSeconds": 0.125958156, + "uploadSeconds": 0.062593238, + "downloadSeconds": 0.062644244 }, { - "connectionEstablishedSeconds": 0.126179737, - "uploadSeconds": 0.062663006, - "downloadSeconds": 0.062718067 + "connectionEstablishedSeconds": 0.126108225, + "uploadSeconds": 0.062657803, + "downloadSeconds": 0.062761149 }, { - "connectionEstablishedSeconds": 0.120286079, - "uploadSeconds": 0.059710579, - "downloadSeconds": 0.059754437 + "connectionEstablishedSeconds": 0.120901849, + "uploadSeconds": 0.06002898, + "downloadSeconds": 0.060096329 }, { - "connectionEstablishedSeconds": 0.128902775, - "uploadSeconds": 0.064057795, - "downloadSeconds": 0.0641045 + "connectionEstablishedSeconds": 0.130562683, + "uploadSeconds": 0.064496581, + "downloadSeconds": 0.064553639 }, { - "connectionEstablishedSeconds": 0.12501096, - "uploadSeconds": 0.06211691, - "downloadSeconds": 0.062130498 + "connectionEstablishedSeconds": 0.126918076, + "uploadSeconds": 0.063321541, + "downloadSeconds": 0.063453397 }, { - "connectionEstablishedSeconds": 0.125588205, - "uploadSeconds": 0.062423772, - "downloadSeconds": 0.062548054 + "connectionEstablishedSeconds": 0.12198058, + "uploadSeconds": 0.06060065, + "downloadSeconds": 0.060660093 }, { - "connectionEstablishedSeconds": 0.127045386, - "uploadSeconds": 0.063157894, - "downloadSeconds": 0.06322661 + "connectionEstablishedSeconds": 0.1259285, + "uploadSeconds": 0.062543989, + "downloadSeconds": 0.062632145 }, { - "connectionEstablishedSeconds": 0.12536339, - "uploadSeconds": 0.062324403, - "downloadSeconds": 0.062349488 + "connectionEstablishedSeconds": 0.12017305, + "uploadSeconds": 0.059617034, + "downloadSeconds": 0.059714616 }, { - "connectionEstablishedSeconds": 0.124130694, - "uploadSeconds": 0.06169533, - "downloadSeconds": 0.061743995 + "connectionEstablishedSeconds": 0.120856119, + "uploadSeconds": 0.0600165, + "downloadSeconds": 0.060091443 }, { - "connectionEstablishedSeconds": 0.12162633, - "uploadSeconds": 0.060141065, - "downloadSeconds": 0.060204186 + "connectionEstablishedSeconds": 0.126045508, + "uploadSeconds": 0.06261744, + "downloadSeconds": 0.062673731 }, { - "connectionEstablishedSeconds": 0.125090977, - "uploadSeconds": 0.062147681, - "downloadSeconds": 0.062210098 + "connectionEstablishedSeconds": 0.124257681, + "uploadSeconds": 0.061677647, + "downloadSeconds": 0.061778575 }, { - "connectionEstablishedSeconds": 0.118105467, - "uploadSeconds": 0.058706731, - "downloadSeconds": 0.058756401 + "connectionEstablishedSeconds": 0.125857894, + "uploadSeconds": 0.062652721, + "downloadSeconds": 0.062597471 }, { - "connectionEstablishedSeconds": 0.123878404, - "uploadSeconds": 0.061560572, - "downloadSeconds": 0.061614152 + "connectionEstablishedSeconds": 0.122715896, + "uploadSeconds": 0.060923454, + "downloadSeconds": 0.06102335 }, { - "connectionEstablishedSeconds": 0.124496523, - "uploadSeconds": 0.061845435, - "downloadSeconds": 0.061903011 + "connectionEstablishedSeconds": 0.126295478, + "uploadSeconds": 0.062703852, + "downloadSeconds": 0.062786489 }, { - "connectionEstablishedSeconds": 0.12443545, - "uploadSeconds": 0.061831566, - "downloadSeconds": 0.061893016 + "connectionEstablishedSeconds": 0.130609852, + "uploadSeconds": 0.0648943, + "downloadSeconds": 0.064971453 }, { - "connectionEstablishedSeconds": 0.123151719, - "uploadSeconds": 0.061200232, - "downloadSeconds": 0.061242368 + "connectionEstablishedSeconds": 0.124722058, + "uploadSeconds": 0.061948955, + "downloadSeconds": 0.062011269 }, { - "connectionEstablishedSeconds": 0.128504905, - "uploadSeconds": 0.0639307, - "downloadSeconds": 0.063969831 + "connectionEstablishedSeconds": 0.128852791, + "uploadSeconds": 0.064004153, + "downloadSeconds": 0.064074731 }, { - "connectionEstablishedSeconds": 0.126148904, - "uploadSeconds": 0.062676269, - "downloadSeconds": 0.062754341 + "connectionEstablishedSeconds": 0.129624863, + "uploadSeconds": 0.064394522, + "downloadSeconds": 0.064471689 }, { - "connectionEstablishedSeconds": 0.123028749, - "uploadSeconds": 0.061168186, - "downloadSeconds": 0.061328432 + "connectionEstablishedSeconds": 0.129167269, + "uploadSeconds": 0.064227411, + "downloadSeconds": 0.064319623 }, { - "connectionEstablishedSeconds": 0.119122662, - "uploadSeconds": 0.059129282, - "downloadSeconds": 0.059176153 + "connectionEstablishedSeconds": 0.124525167, + "uploadSeconds": 0.061863103, + "downloadSeconds": 0.061928295 }, { - "connectionEstablishedSeconds": 0.127636204, - "uploadSeconds": 0.063429603, - "downloadSeconds": 0.063485914 + "connectionEstablishedSeconds": 0.127854544, + "uploadSeconds": 0.063500323, + "downloadSeconds": 0.063627182 }, { - "connectionEstablishedSeconds": 0.127539638, - "uploadSeconds": 0.0633655, - "downloadSeconds": 0.063407649 + "connectionEstablishedSeconds": 0.118824595, + "uploadSeconds": 0.059012971, + "downloadSeconds": 0.059077709 }, { - "connectionEstablishedSeconds": 0.124085235, - "uploadSeconds": 0.061666285, - "downloadSeconds": 0.061769771 + "connectionEstablishedSeconds": 0.12448396, + "uploadSeconds": 0.061848909, + "downloadSeconds": 0.061928463 }, { - "connectionEstablishedSeconds": 0.126051378, - "uploadSeconds": 0.06264114, - "downloadSeconds": 0.062682767 + "connectionEstablishedSeconds": 0.125085891, + "uploadSeconds": 0.062138362, + "downloadSeconds": 0.062185374 }, { - "connectionEstablishedSeconds": 0.121206208, - "uploadSeconds": 0.060259099, - "downloadSeconds": 0.060215874 + "connectionEstablishedSeconds": 0.120385765, + "uploadSeconds": 0.059740462, + "downloadSeconds": 0.059817489 }, { - "connectionEstablishedSeconds": 0.123315093, - "uploadSeconds": 0.061282075, - "downloadSeconds": 0.06129655 + "connectionEstablishedSeconds": 0.126787493, + "uploadSeconds": 0.063007284, + "downloadSeconds": 0.063050622 }, { - "connectionEstablishedSeconds": 0.124861246, - "uploadSeconds": 0.062037243, - "downloadSeconds": 0.062078911 + "connectionEstablishedSeconds": 0.127343774, + "uploadSeconds": 0.0632535, + "downloadSeconds": 0.06330645 }, { - "connectionEstablishedSeconds": 0.120254617, - "uploadSeconds": 0.059760296, - "downloadSeconds": 0.059818618 + "connectionEstablishedSeconds": 0.129443303, + "uploadSeconds": 0.064301956, + "downloadSeconds": 0.064416941 }, { - "connectionEstablishedSeconds": 0.126175648, - "uploadSeconds": 0.062650832, - "downloadSeconds": 0.06269929 + "connectionEstablishedSeconds": 0.12880829, + "uploadSeconds": 0.063989307, + "downloadSeconds": 0.064044952 }, { - "connectionEstablishedSeconds": 0.119165489, - "uploadSeconds": 0.059187281, - "downloadSeconds": 0.059384443 + "connectionEstablishedSeconds": 0.125715137, + "uploadSeconds": 0.062466058, + "downloadSeconds": 0.062509002 }, { - "connectionEstablishedSeconds": 0.127276105, - "uploadSeconds": 0.063267277, - "downloadSeconds": 0.063277402 + "connectionEstablishedSeconds": 0.130802753, + "uploadSeconds": 0.06499956, + "downloadSeconds": 0.065050477 }, { - "connectionEstablishedSeconds": 0.128078375, - "uploadSeconds": 0.063689218, - "downloadSeconds": 0.063717693 + "connectionEstablishedSeconds": 0.127359533, + "uploadSeconds": 0.06326897, + "downloadSeconds": 0.063325505 }, { - "connectionEstablishedSeconds": 0.130814074, - "uploadSeconds": 0.065013698, - "downloadSeconds": 0.065038194 + "connectionEstablishedSeconds": 0.125144649, + "uploadSeconds": 0.06215178, + "downloadSeconds": 0.062216615 }, { - "connectionEstablishedSeconds": 0.125699777, - "uploadSeconds": 0.062473144, - "downloadSeconds": 0.062501372 + "connectionEstablishedSeconds": 0.128044962, + "uploadSeconds": 0.063625884, + "downloadSeconds": 0.063674575 }, { - "connectionEstablishedSeconds": 0.127536867, - "uploadSeconds": 0.063443592, - "downloadSeconds": 0.063402855 + "connectionEstablishedSeconds": 0.12984098, + "uploadSeconds": 0.064508148, + "downloadSeconds": 0.064584498 }, { - "connectionEstablishedSeconds": 0.120001228, - "uploadSeconds": 0.059615536, - "downloadSeconds": 0.059700619 + "connectionEstablishedSeconds": 0.127962304, + "uploadSeconds": 0.063610496, + "downloadSeconds": 0.063675836 }, { - "connectionEstablishedSeconds": 0.124652579, - "uploadSeconds": 0.062025072, - "downloadSeconds": 0.061968964 + "connectionEstablishedSeconds": 0.120000642, + "uploadSeconds": 0.059590507, + "downloadSeconds": 0.059647934 }, { - "connectionEstablishedSeconds": 0.129308472, - "uploadSeconds": 0.064272732, - "downloadSeconds": 0.064343532 + "connectionEstablishedSeconds": 0.125749348, + "uploadSeconds": 0.062478223, + "downloadSeconds": 0.062530638 }, { - "connectionEstablishedSeconds": 0.121926007, - "uploadSeconds": 0.060601275, - "downloadSeconds": 0.060636989 + "connectionEstablishedSeconds": 0.127441701, + "uploadSeconds": 0.063300783, + "downloadSeconds": 0.063393374 }, { - "connectionEstablishedSeconds": 0.128084176, - "uploadSeconds": 0.063678326, - "downloadSeconds": 0.063726372 + "connectionEstablishedSeconds": 0.123424165, + "uploadSeconds": 0.061305335, + "downloadSeconds": 0.06136762 }, { - "connectionEstablishedSeconds": 0.127331445, - "uploadSeconds": 0.063229219, - "downloadSeconds": 0.063301032 + "connectionEstablishedSeconds": 0.12304951, + "uploadSeconds": 0.061146982, + "downloadSeconds": 0.06118203 }, { - "connectionEstablishedSeconds": 0.128604751, - "uploadSeconds": 0.063915006, - "downloadSeconds": 0.063960143 + "connectionEstablishedSeconds": 0.125308047, + "uploadSeconds": 0.062224494, + "downloadSeconds": 0.062323807 }, { - "connectionEstablishedSeconds": 0.12927236, - "uploadSeconds": 0.064247353, - "downloadSeconds": 0.064270362 + "connectionEstablishedSeconds": 0.12973905, + "uploadSeconds": 0.064472966, + "downloadSeconds": 0.064529546 }, { - "connectionEstablishedSeconds": 0.123154914, - "uploadSeconds": 0.06117626, - "downloadSeconds": 0.061225975 + "connectionEstablishedSeconds": 0.128102656, + "uploadSeconds": 0.063863468, + "downloadSeconds": 0.063635207 }, { - "connectionEstablishedSeconds": 0.1243586, - "uploadSeconds": 0.061846783, - "downloadSeconds": 0.061860297 + "connectionEstablishedSeconds": 0.125637036, + "uploadSeconds": 0.062420345, + "downloadSeconds": 0.062469283 }, { - "connectionEstablishedSeconds": 0.126006421, - "uploadSeconds": 0.062605494, - "downloadSeconds": 0.062678936 + "connectionEstablishedSeconds": 0.118981084, + "uploadSeconds": 0.059069735, + "downloadSeconds": 0.059129922 }, { - "connectionEstablishedSeconds": 0.122807399, - "uploadSeconds": 0.061034823, - "downloadSeconds": 0.061078398 + "connectionEstablishedSeconds": 0.120720618, + "uploadSeconds": 0.059951333, + "downloadSeconds": 0.060029474 }, { - "connectionEstablishedSeconds": 0.128105322, - "uploadSeconds": 0.063667657, - "downloadSeconds": 0.063743009 + "connectionEstablishedSeconds": 0.123367197, + "uploadSeconds": 0.061363585, + "downloadSeconds": 0.061318307 }, { - "connectionEstablishedSeconds": 0.123447944, - "uploadSeconds": 0.0614329, - "downloadSeconds": 0.061387349 + "connectionEstablishedSeconds": 0.125229133, + "uploadSeconds": 0.062206788, + "downloadSeconds": 0.062294396 }, { - "connectionEstablishedSeconds": 0.126163081, - "uploadSeconds": 0.062636708, - "downloadSeconds": 0.0626641 + "connectionEstablishedSeconds": 0.12312703, + "uploadSeconds": 0.061167752, + "downloadSeconds": 0.061232767 }, { - "connectionEstablishedSeconds": 0.124654643, - "uploadSeconds": 0.061948928, - "downloadSeconds": 0.061996041 + "connectionEstablishedSeconds": 0.125516511, + "uploadSeconds": 0.062366896, + "downloadSeconds": 0.062436136 }, { - "connectionEstablishedSeconds": 0.12803414, - "uploadSeconds": 0.063604036, - "downloadSeconds": 0.063647278 + "connectionEstablishedSeconds": 0.126220729, + "uploadSeconds": 0.062574059, + "downloadSeconds": 0.062642618 }, { - "connectionEstablishedSeconds": 0.131103982, - "uploadSeconds": 0.065187795, - "downloadSeconds": 0.065250979 + "connectionEstablishedSeconds": 0.125496394, + "uploadSeconds": 0.0623366, + "downloadSeconds": 0.062402276 }, { - "connectionEstablishedSeconds": 0.125471676, - "uploadSeconds": 0.062379177, - "downloadSeconds": 0.062390086 + "connectionEstablishedSeconds": 0.123646613, + "uploadSeconds": 0.061393611, + "downloadSeconds": 0.061439843 }, { - "connectionEstablishedSeconds": 0.125032401, - "uploadSeconds": 0.062132886, - "downloadSeconds": 0.0621851 + "connectionEstablishedSeconds": 0.128086877, + "uploadSeconds": 0.063653077, + "downloadSeconds": 0.063718554 }, { - "connectionEstablishedSeconds": 0.125146993, - "uploadSeconds": 0.062156848, - "downloadSeconds": 0.06219907 + "connectionEstablishedSeconds": 0.129262803, + "uploadSeconds": 0.064253408, + "downloadSeconds": 0.064303179 }, { - "connectionEstablishedSeconds": 0.125724129, - "uploadSeconds": 0.062447722, - "downloadSeconds": 0.062481181 + "connectionEstablishedSeconds": 0.127148072, + "uploadSeconds": 0.063193085, + "downloadSeconds": 0.063277279 }, { - "connectionEstablishedSeconds": 0.124786004, - "uploadSeconds": 0.062042945, - "downloadSeconds": 0.06264053 + "connectionEstablishedSeconds": 0.128584395, + "uploadSeconds": 0.063907041, + "downloadSeconds": 0.06396357 }, { - "connectionEstablishedSeconds": 0.122854895, - "uploadSeconds": 0.061029218, - "downloadSeconds": 0.061082874 + "connectionEstablishedSeconds": 0.124292227, + "uploadSeconds": 0.061732539, + "downloadSeconds": 0.061779283 }, { - "connectionEstablishedSeconds": 0.127816982, - "uploadSeconds": 0.063556758, - "downloadSeconds": 0.063570017 + "connectionEstablishedSeconds": 0.125535576, + "uploadSeconds": 0.062369058, + "downloadSeconds": 0.062449164 }, { - "connectionEstablishedSeconds": 0.128751465, - "uploadSeconds": 0.063987236, - "downloadSeconds": 0.064039094 + "connectionEstablishedSeconds": 0.130730147, + "uploadSeconds": 0.064963572, + "downloadSeconds": 0.065039169 }, { - "connectionEstablishedSeconds": 0.128139274, - "uploadSeconds": 0.063677502, - "downloadSeconds": 0.063743376 + "connectionEstablishedSeconds": 0.123208736, + "uploadSeconds": 0.061167329, + "downloadSeconds": 0.061260565 }, { - "connectionEstablishedSeconds": 0.12227394, - "uploadSeconds": 0.06069762, - "downloadSeconds": 0.060746496 + "connectionEstablishedSeconds": 0.127480441, + "uploadSeconds": 0.063313736, + "downloadSeconds": 0.063365761 }, { - "connectionEstablishedSeconds": 0.129220588, - "uploadSeconds": 0.064189879, - "downloadSeconds": 0.064285771 + "connectionEstablishedSeconds": 0.124865335, + "uploadSeconds": 0.062069213, + "downloadSeconds": 0.062112659 }, { - "connectionEstablishedSeconds": 0.124770957, - "uploadSeconds": 0.061999252, - "downloadSeconds": 0.062004879 + "connectionEstablishedSeconds": 0.127346962, + "uploadSeconds": 0.063268241, + "downloadSeconds": 0.063310113 }, { - "connectionEstablishedSeconds": 0.129240924, - "uploadSeconds": 0.064258811, - "downloadSeconds": 0.064342173 + "connectionEstablishedSeconds": 0.130435342, + "uploadSeconds": 0.064819538, + "downloadSeconds": 0.064874989 }, { - "connectionEstablishedSeconds": 0.125171561, - "uploadSeconds": 0.062195451, - "downloadSeconds": 0.062236192 + "connectionEstablishedSeconds": 0.122051259, + "uploadSeconds": 0.060598517, + "downloadSeconds": 0.060682717 }, { - "connectionEstablishedSeconds": 0.129305095, - "uploadSeconds": 0.064498854, - "downloadSeconds": 0.06432414 + "connectionEstablishedSeconds": 0.126631048, + "uploadSeconds": 0.062935626, + "downloadSeconds": 0.062977163 }, { - "connectionEstablishedSeconds": 0.130281646, - "uploadSeconds": 0.064774718, - "downloadSeconds": 0.064791614 + "connectionEstablishedSeconds": 0.125074157, + "uploadSeconds": 0.062137365, + "downloadSeconds": 0.06219817 } ], "implementation": "rust-libp2p", @@ -1489,504 +1489,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.062555178, - "uploadSeconds": 0.121464442, - "downloadSeconds": 0.000082901 + "connectionEstablishedSeconds": 0.065269712, + "uploadSeconds": 0.126687384, + "downloadSeconds": 0.000095155 }, { - "connectionEstablishedSeconds": 0.063369527, - "uploadSeconds": 0.123457052, - "downloadSeconds": 0.000085259 + "connectionEstablishedSeconds": 0.061772457, + "uploadSeconds": 0.119781377, + "downloadSeconds": 0.000088763 }, { - "connectionEstablishedSeconds": 0.063640605, - "uploadSeconds": 0.123966857, - "downloadSeconds": 0.000084324 + "connectionEstablishedSeconds": 0.063039581, + "uploadSeconds": 0.122439261, + "downloadSeconds": 0.000063515 }, { - "connectionEstablishedSeconds": 0.065154661, - "uploadSeconds": 0.126671499, - "downloadSeconds": 0.000130963 + "connectionEstablishedSeconds": 0.065332846, + "uploadSeconds": 0.126995051, + "downloadSeconds": 0.000086659 }, { - "connectionEstablishedSeconds": 0.064592418, - "uploadSeconds": 0.125392005, - "downloadSeconds": 0.000078974 + "connectionEstablishedSeconds": 0.064835466, + "uploadSeconds": 0.126084756, + "downloadSeconds": 0.000102772 }, { - "connectionEstablishedSeconds": 0.066054486, - "uploadSeconds": 0.128804493, - "downloadSeconds": 0.000100537 + "connectionEstablishedSeconds": 0.064252537, + "uploadSeconds": 0.125076452, + "downloadSeconds": 0.00008998 }, { - "connectionEstablishedSeconds": 0.060591598, - "uploadSeconds": 0.117682519, - "downloadSeconds": 0.000076024 + "connectionEstablishedSeconds": 0.062896955, + "uploadSeconds": 0.122347549, + "downloadSeconds": 0.000088885 }, { - "connectionEstablishedSeconds": 0.06327672, - "uploadSeconds": 0.12307991, - "downloadSeconds": 0.00008693 + "connectionEstablishedSeconds": 0.062537671, + "uploadSeconds": 0.121699801, + "downloadSeconds": 0.000105042 }, { - "connectionEstablishedSeconds": 0.066036308, - "uploadSeconds": 0.128649426, - "downloadSeconds": 0.000094116 + "connectionEstablishedSeconds": 0.062560666, + "uploadSeconds": 0.121530528, + "downloadSeconds": 0.000083081 }, { - "connectionEstablishedSeconds": 0.064443428, - "uploadSeconds": 0.125458301, - "downloadSeconds": 0.000085163 + "connectionEstablishedSeconds": 0.06503231, + "uploadSeconds": 0.12662378, + "downloadSeconds": 0.000076862 }, { - "connectionEstablishedSeconds": 0.060612667, - "uploadSeconds": 0.117629487, - "downloadSeconds": 0.00008556 + "connectionEstablishedSeconds": 0.064646935, + "uploadSeconds": 0.125940369, + "downloadSeconds": 0.000048777 }, { - "connectionEstablishedSeconds": 0.062749736, - "uploadSeconds": 0.122072668, - "downloadSeconds": 0.00008688 + "connectionEstablishedSeconds": 0.066467573, + "uploadSeconds": 0.129119886, + "downloadSeconds": 0.000109769 }, { - "connectionEstablishedSeconds": 0.063998842, - "uploadSeconds": 0.124482878, - "downloadSeconds": 0.0000873 + "connectionEstablishedSeconds": 0.066872165, + "uploadSeconds": 0.130419701, + "downloadSeconds": 0.000087987 }, { - "connectionEstablishedSeconds": 0.06467811, - "uploadSeconds": 0.126032702, - "downloadSeconds": 0.000117909 + "connectionEstablishedSeconds": 0.066463517, + "uploadSeconds": 0.129347194, + "downloadSeconds": 0.000088743 }, { - "connectionEstablishedSeconds": 0.064432402, - "uploadSeconds": 0.125746167, - "downloadSeconds": 0.000087769 + "connectionEstablishedSeconds": 0.062683614, + "uploadSeconds": 0.121793655, + "downloadSeconds": 0.000101821 }, { - "connectionEstablishedSeconds": 0.061048609, - "uploadSeconds": 0.118620331, - "downloadSeconds": 0.000084944 + "connectionEstablishedSeconds": 0.064007545, + "uploadSeconds": 0.124402074, + "downloadSeconds": 0.000051133 }, { - "connectionEstablishedSeconds": 0.063234156, - "uploadSeconds": 0.122973143, - "downloadSeconds": 0.000062995 + "connectionEstablishedSeconds": 0.066345827, + "uploadSeconds": 0.129196438, + "downloadSeconds": 0.000087874 }, { - "connectionEstablishedSeconds": 0.063368215, - "uploadSeconds": 0.123410879, - "downloadSeconds": 0.000081405 + "connectionEstablishedSeconds": 0.061959997, + "uploadSeconds": 0.120403148, + "downloadSeconds": 0.000099978 }, { - "connectionEstablishedSeconds": 0.065971913, - "uploadSeconds": 0.128409181, - "downloadSeconds": 0.000086581 + "connectionEstablishedSeconds": 0.064957415, + "uploadSeconds": 0.126484389, + "downloadSeconds": 0.000086646 }, { - "connectionEstablishedSeconds": 0.064192182, - "uploadSeconds": 0.124766215, - "downloadSeconds": 0.000085311 + "connectionEstablishedSeconds": 0.064050398, + "uploadSeconds": 0.124593436, + "downloadSeconds": 0.000093129 }, { - "connectionEstablishedSeconds": 0.065122346, - "uploadSeconds": 0.126924617, - "downloadSeconds": 0.000077339 + "connectionEstablishedSeconds": 0.065479175, + "uploadSeconds": 0.127563336, + "downloadSeconds": 0.000091752 }, { - "connectionEstablishedSeconds": 0.063140431, - "uploadSeconds": 0.122964453, - "downloadSeconds": 0.000088041 + "connectionEstablishedSeconds": 0.064459311, + "uploadSeconds": 0.125632443, + "downloadSeconds": 0.000088312 }, { - "connectionEstablishedSeconds": 0.063312335, - "uploadSeconds": 0.123131605, - "downloadSeconds": 0.000088513 + "connectionEstablishedSeconds": 0.065418506, + "uploadSeconds": 0.127318706, + "downloadSeconds": 0.000099893 }, { - "connectionEstablishedSeconds": 0.065980778, - "uploadSeconds": 0.128555153, - "downloadSeconds": 0.000086702 + "connectionEstablishedSeconds": 0.06115891, + "uploadSeconds": 0.118787732, + "downloadSeconds": 0.000072519 }, { - "connectionEstablishedSeconds": 0.063307699, - "uploadSeconds": 0.123217326, - "downloadSeconds": 0.000100773 + "connectionEstablishedSeconds": 0.063789728, + "uploadSeconds": 0.124151792, + "downloadSeconds": 0.000061331 }, { - "connectionEstablishedSeconds": 0.064792526, - "uploadSeconds": 0.12793851, - "downloadSeconds": 0.000077 + "connectionEstablishedSeconds": 0.063565335, + "uploadSeconds": 0.123800509, + "downloadSeconds": 0.000066504 }, { - "connectionEstablishedSeconds": 0.065063158, - "uploadSeconds": 0.126801106, - "downloadSeconds": 0.000092032 + "connectionEstablishedSeconds": 0.065340559, + "uploadSeconds": 0.127107457, + "downloadSeconds": 0.000082091 }, { - "connectionEstablishedSeconds": 0.061136292, - "uploadSeconds": 0.118917211, - "downloadSeconds": 0.000087618 + "connectionEstablishedSeconds": 0.065274161, + "uploadSeconds": 0.126985152, + "downloadSeconds": 0.000098832 }, { - "connectionEstablishedSeconds": 0.062526539, - "uploadSeconds": 0.12154554, - "downloadSeconds": 0.000076073 + "connectionEstablishedSeconds": 0.061532374, + "uploadSeconds": 0.119412761, + "downloadSeconds": 0.000087572 }, { - "connectionEstablishedSeconds": 0.064467535, - "uploadSeconds": 0.125464429, - "downloadSeconds": 0.000053374 + "connectionEstablishedSeconds": 0.066015107, + "uploadSeconds": 0.12895258, + "downloadSeconds": 0.000107437 }, { - "connectionEstablishedSeconds": 0.066230482, - "uploadSeconds": 0.128881524, - "downloadSeconds": 0.000087982 + "connectionEstablishedSeconds": 0.063298652, + "uploadSeconds": 0.123194972, + "downloadSeconds": 0.000074348 }, { - "connectionEstablishedSeconds": 0.06440969, - "uploadSeconds": 0.125494731, - "downloadSeconds": 0.000083717 + "connectionEstablishedSeconds": 0.064874404, + "uploadSeconds": 0.126240455, + "downloadSeconds": 0.000102661 }, { - "connectionEstablishedSeconds": 0.063325895, - "uploadSeconds": 0.123178386, - "downloadSeconds": 0.000102126 + "connectionEstablishedSeconds": 0.060850312, + "uploadSeconds": 0.11825899, + "downloadSeconds": 0.000074344 }, { - "connectionEstablishedSeconds": 0.06475516, - "uploadSeconds": 0.126263552, - "downloadSeconds": 0.000074456 + "connectionEstablishedSeconds": 0.063836571, + "uploadSeconds": 0.124325405, + "downloadSeconds": 0.000058374 }, { - "connectionEstablishedSeconds": 0.062523354, - "uploadSeconds": 0.121687039, - "downloadSeconds": 0.000088698 + "connectionEstablishedSeconds": 0.062482892, + "uploadSeconds": 0.12198127, + "downloadSeconds": 0.000066463 }, { - "connectionEstablishedSeconds": 0.066140374, - "uploadSeconds": 0.12882998, - "downloadSeconds": 0.000080221 + "connectionEstablishedSeconds": 0.066011166, + "uploadSeconds": 0.128493564, + "downloadSeconds": 0.000086812 }, { - "connectionEstablishedSeconds": 0.06367331, - "uploadSeconds": 0.123789185, - "downloadSeconds": 0.000084024 + "connectionEstablishedSeconds": 0.065877087, + "uploadSeconds": 0.128252352, + "downloadSeconds": 0.000087883 }, { - "connectionEstablishedSeconds": 0.065822443, - "uploadSeconds": 0.128522425, - "downloadSeconds": 0.00007626 + "connectionEstablishedSeconds": 0.06625631, + "uploadSeconds": 0.128871405, + "downloadSeconds": 0.000075303 }, { - "connectionEstablishedSeconds": 0.066161448, - "uploadSeconds": 0.128911001, - "downloadSeconds": 0.000075998 + "connectionEstablishedSeconds": 0.062467673, + "uploadSeconds": 0.121489929, + "downloadSeconds": 0.000093727 }, { - "connectionEstablishedSeconds": 0.062993283, - "uploadSeconds": 0.122537444, - "downloadSeconds": 0.000079189 + "connectionEstablishedSeconds": 0.064259174, + "uploadSeconds": 0.125116047, + "downloadSeconds": 0.000130588 }, { - "connectionEstablishedSeconds": 0.065840144, - "uploadSeconds": 0.128380241, - "downloadSeconds": 0.000098752 + "connectionEstablishedSeconds": 0.064881658, + "uploadSeconds": 0.12634141, + "downloadSeconds": 0.000096298 }, { - "connectionEstablishedSeconds": 0.065179651, - "uploadSeconds": 0.127048149, - "downloadSeconds": 0.000078663 + "connectionEstablishedSeconds": 0.062591642, + "uploadSeconds": 0.121615007, + "downloadSeconds": 0.000052845 }, { - "connectionEstablishedSeconds": 0.063577878, - "uploadSeconds": 0.123962103, - "downloadSeconds": 0.000050825 + "connectionEstablishedSeconds": 0.062009462, + "uploadSeconds": 0.120569713, + "downloadSeconds": 0.000059144 }, { - "connectionEstablishedSeconds": 0.065114994, - "uploadSeconds": 0.126840587, - "downloadSeconds": 0.000060604 + "connectionEstablishedSeconds": 0.065772964, + "uploadSeconds": 0.128015637, + "downloadSeconds": 0.00005976 }, { - "connectionEstablishedSeconds": 0.06212057, - "uploadSeconds": 0.120834495, - "downloadSeconds": 0.000087046 + "connectionEstablishedSeconds": 0.065244623, + "uploadSeconds": 0.127597754, + "downloadSeconds": 0.000101338 }, { - "connectionEstablishedSeconds": 0.065030609, - "uploadSeconds": 0.126546622, - "downloadSeconds": 0.000081112 + "connectionEstablishedSeconds": 0.064528531, + "uploadSeconds": 0.125431869, + "downloadSeconds": 0.000102549 }, { - "connectionEstablishedSeconds": 0.06283852, - "uploadSeconds": 0.122414091, - "downloadSeconds": 0.000053942 + "connectionEstablishedSeconds": 0.064060708, + "uploadSeconds": 0.124861387, + "downloadSeconds": 0.000089563 }, { - "connectionEstablishedSeconds": 0.065302421, - "uploadSeconds": 0.127077082, - "downloadSeconds": 0.000081628 + "connectionEstablishedSeconds": 0.065100315, + "uploadSeconds": 0.126407417, + "downloadSeconds": 0.00009769 }, { - "connectionEstablishedSeconds": 0.066722523, - "uploadSeconds": 0.129948955, - "downloadSeconds": 0.000107012 + "connectionEstablishedSeconds": 0.063827269, + "uploadSeconds": 0.12418934, + "downloadSeconds": 0.000059017 }, { - "connectionEstablishedSeconds": 0.063075872, - "uploadSeconds": 0.122902967, - "downloadSeconds": 0.000128587 + "connectionEstablishedSeconds": 0.063091443, + "uploadSeconds": 0.122694617, + "downloadSeconds": 0.000088479 }, { - "connectionEstablishedSeconds": 0.06241058, - "uploadSeconds": 0.121339306, - "downloadSeconds": 0.000078697 + "connectionEstablishedSeconds": 0.063035134, + "uploadSeconds": 0.122636708, + "downloadSeconds": 0.000090614 }, { - "connectionEstablishedSeconds": 0.063973005, - "uploadSeconds": 0.124662567, - "downloadSeconds": 0.000076339 + "connectionEstablishedSeconds": 0.063237351, + "uploadSeconds": 0.123009684, + "downloadSeconds": 0.000085346 }, { - "connectionEstablishedSeconds": 0.064128175, - "uploadSeconds": 0.124891473, - "downloadSeconds": 0.000086363 + "connectionEstablishedSeconds": 0.065321546, + "uploadSeconds": 0.127202042, + "downloadSeconds": 0.0000863 }, { - "connectionEstablishedSeconds": 0.065478882, - "uploadSeconds": 0.127407412, - "downloadSeconds": 0.000063738 + "connectionEstablishedSeconds": 0.062293646, + "uploadSeconds": 0.121197102, + "downloadSeconds": 0.00008741 }, { - "connectionEstablishedSeconds": 0.066621562, - "uploadSeconds": 0.128820191, - "downloadSeconds": 0.000084262 + "connectionEstablishedSeconds": 0.06499849, + "uploadSeconds": 0.12637115, + "downloadSeconds": 0.000075902 }, { - "connectionEstablishedSeconds": 0.064804123, - "uploadSeconds": 0.125901878, - "downloadSeconds": 0.00008048 + "connectionEstablishedSeconds": 0.064614152, + "uploadSeconds": 0.125767329, + "downloadSeconds": 0.000102428 }, { - "connectionEstablishedSeconds": 0.067100174, - "uploadSeconds": 0.130916696, - "downloadSeconds": 0.000087192 + "connectionEstablishedSeconds": 0.064867917, + "uploadSeconds": 0.126189822, + "downloadSeconds": 0.000049127 }, { - "connectionEstablishedSeconds": 0.065284109, - "uploadSeconds": 0.127163699, - "downloadSeconds": 0.000062674 + "connectionEstablishedSeconds": 0.066343616, + "uploadSeconds": 0.129171678, + "downloadSeconds": 0.000109185 }, { - "connectionEstablishedSeconds": 0.06473319, - "uploadSeconds": 0.126026119, - "downloadSeconds": 0.000091165 + "connectionEstablishedSeconds": 0.063594419, + "uploadSeconds": 0.123729252, + "downloadSeconds": 0.000046197 }, { - "connectionEstablishedSeconds": 0.065570038, - "uploadSeconds": 0.127822192, - "downloadSeconds": 0.000060558 + "connectionEstablishedSeconds": 0.062504828, + "uploadSeconds": 0.121566267, + "downloadSeconds": 0.000054981 }, { - "connectionEstablishedSeconds": 0.065484686, - "uploadSeconds": 0.127695353, - "downloadSeconds": 0.000085598 + "connectionEstablishedSeconds": 0.064002572, + "uploadSeconds": 0.12462905, + "downloadSeconds": 0.000100446 }, { - "connectionEstablishedSeconds": 0.061210531, - "uploadSeconds": 0.118908659, - "downloadSeconds": 0.000078286 + "connectionEstablishedSeconds": 0.063602089, + "uploadSeconds": 0.123874281, + "downloadSeconds": 0.000048411 }, { - "connectionEstablishedSeconds": 0.063481257, - "uploadSeconds": 0.123340897, - "downloadSeconds": 0.000112374 + "connectionEstablishedSeconds": 0.062719554, + "uploadSeconds": 0.121941194, + "downloadSeconds": 0.000089545 }, { - "connectionEstablishedSeconds": 0.06411204, - "uploadSeconds": 0.124634666, - "downloadSeconds": 0.000082322 + "connectionEstablishedSeconds": 0.063417018, + "uploadSeconds": 0.123306077, + "downloadSeconds": 0.000098731 }, { - "connectionEstablishedSeconds": 0.062239547, - "uploadSeconds": 0.121146964, - "downloadSeconds": 0.000081609 + "connectionEstablishedSeconds": 0.064107384, + "uploadSeconds": 0.124691877, + "downloadSeconds": 0.000051022 }, { - "connectionEstablishedSeconds": 0.06241652, - "uploadSeconds": 0.121505384, - "downloadSeconds": 0.000084119 + "connectionEstablishedSeconds": 0.063100152, + "uploadSeconds": 0.122616935, + "downloadSeconds": 0.000099 }, { - "connectionEstablishedSeconds": 0.064479432, - "uploadSeconds": 0.125733454, - "downloadSeconds": 0.000068474 + "connectionEstablishedSeconds": 0.062746556, + "uploadSeconds": 0.121948401, + "downloadSeconds": 0.000095793 }, { - "connectionEstablishedSeconds": 0.066331924, - "uploadSeconds": 0.129337226, - "downloadSeconds": 0.000131293 + "connectionEstablishedSeconds": 0.06261075, + "uploadSeconds": 0.121898582, + "downloadSeconds": 0.000094156 }, { - "connectionEstablishedSeconds": 0.065104036, - "uploadSeconds": 0.126754178, - "downloadSeconds": 0.000091442 + "connectionEstablishedSeconds": 0.062358096, + "uploadSeconds": 0.121059397, + "downloadSeconds": 0.000085366 }, { - "connectionEstablishedSeconds": 0.0637304, - "uploadSeconds": 0.124140772, - "downloadSeconds": 0.000079004 + "connectionEstablishedSeconds": 0.063956063, + "uploadSeconds": 0.12442619, + "downloadSeconds": 0.000084146 }, { - "connectionEstablishedSeconds": 0.06541628, - "uploadSeconds": 0.127396082, - "downloadSeconds": 0.000058255 + "connectionEstablishedSeconds": 0.06177277, + "uploadSeconds": 0.11993679, + "downloadSeconds": 0.000051577 }, { - "connectionEstablishedSeconds": 0.064089724, - "uploadSeconds": 0.124570267, - "downloadSeconds": 0.000090973 + "connectionEstablishedSeconds": 0.065472055, + "uploadSeconds": 0.128132439, + "downloadSeconds": 0.000099309 }, { - "connectionEstablishedSeconds": 0.062512896, - "uploadSeconds": 0.121609734, - "downloadSeconds": 0.000085923 + "connectionEstablishedSeconds": 0.064005678, + "uploadSeconds": 0.124557276, + "downloadSeconds": 0.000071229 }, { - "connectionEstablishedSeconds": 0.067080325, - "uploadSeconds": 0.13072748, - "downloadSeconds": 0.000079027 + "connectionEstablishedSeconds": 0.06607158, + "uploadSeconds": 0.128709658, + "downloadSeconds": 0.000041673 }, { - "connectionEstablishedSeconds": 0.066950497, - "uploadSeconds": 0.130311531, - "downloadSeconds": 0.000118296 + "connectionEstablishedSeconds": 0.06447987, + "uploadSeconds": 0.125384308, + "downloadSeconds": 0.000068772 }, { - "connectionEstablishedSeconds": 0.063424248, - "uploadSeconds": 0.123647825, - "downloadSeconds": 0.000066672 + "connectionEstablishedSeconds": 0.063884104, + "uploadSeconds": 0.124527706, + "downloadSeconds": 0.000111449 }, { - "connectionEstablishedSeconds": 0.060437534, - "uploadSeconds": 0.117455929, - "downloadSeconds": 0.000091736 + "connectionEstablishedSeconds": 0.06461319, + "uploadSeconds": 0.125775606, + "downloadSeconds": 0.000085327 }, { - "connectionEstablishedSeconds": 0.063662903, - "uploadSeconds": 0.123920495, - "downloadSeconds": 0.000078148 + "connectionEstablishedSeconds": 0.064890847, + "uploadSeconds": 0.126204848, + "downloadSeconds": 0.000082451 }, { - "connectionEstablishedSeconds": 0.065905467, - "uploadSeconds": 0.128413462, - "downloadSeconds": 0.00005148 + "connectionEstablishedSeconds": 0.063228089, + "uploadSeconds": 0.122949404, + "downloadSeconds": 0.000146099 }, { - "connectionEstablishedSeconds": 0.062669667, - "uploadSeconds": 0.121915854, - "downloadSeconds": 0.000079754 + "connectionEstablishedSeconds": 0.061495799, + "uploadSeconds": 0.11947625, + "downloadSeconds": 0.000048393 }, { - "connectionEstablishedSeconds": 0.061357263, - "uploadSeconds": 0.11931048, - "downloadSeconds": 0.000117476 + "connectionEstablishedSeconds": 0.065020492, + "uploadSeconds": 0.12666505, + "downloadSeconds": 0.000089146 }, { - "connectionEstablishedSeconds": 0.064901746, - "uploadSeconds": 0.126331826, - "downloadSeconds": 0.000094664 + "connectionEstablishedSeconds": 0.065945204, + "uploadSeconds": 0.128484838, + "downloadSeconds": 0.000106159 }, { - "connectionEstablishedSeconds": 0.064194337, - "uploadSeconds": 0.125086379, - "downloadSeconds": 0.000082276 + "connectionEstablishedSeconds": 0.067762673, + "uploadSeconds": 0.132168213, + "downloadSeconds": 0.000107903 }, { - "connectionEstablishedSeconds": 0.065560723, - "uploadSeconds": 0.127569475, - "downloadSeconds": 0.000089714 + "connectionEstablishedSeconds": 0.065572532, + "uploadSeconds": 0.127516638, + "downloadSeconds": 0.000089004 }, { - "connectionEstablishedSeconds": 0.067019224, - "uploadSeconds": 0.130436691, - "downloadSeconds": 0.000090948 + "connectionEstablishedSeconds": 0.064566376, + "uploadSeconds": 0.125582624, + "downloadSeconds": 0.000092355 }, { - "connectionEstablishedSeconds": 0.06532367, - "uploadSeconds": 0.127207457, - "downloadSeconds": 0.000086598 + "connectionEstablishedSeconds": 0.065893006, + "uploadSeconds": 0.128263391, + "downloadSeconds": 0.000093783 }, { - "connectionEstablishedSeconds": 0.062311329, - "uploadSeconds": 0.11996796, - "downloadSeconds": 0.000085597 + "connectionEstablishedSeconds": 0.062806285, + "uploadSeconds": 0.122113968, + "downloadSeconds": 0.000065137 }, { - "connectionEstablishedSeconds": 0.064293896, - "uploadSeconds": 0.125071759, - "downloadSeconds": 0.000084569 + "connectionEstablishedSeconds": 0.06517263, + "uploadSeconds": 0.12702264, + "downloadSeconds": 0.000102609 }, { - "connectionEstablishedSeconds": 0.064947935, - "uploadSeconds": 0.126388251, - "downloadSeconds": 0.000062561 + "connectionEstablishedSeconds": 0.063970953, + "uploadSeconds": 0.12447171, + "downloadSeconds": 0.000084464 }, { - "connectionEstablishedSeconds": 0.062403254, - "uploadSeconds": 0.121419997, - "downloadSeconds": 0.000085121 + "connectionEstablishedSeconds": 0.063519187, + "uploadSeconds": 0.123752611, + "downloadSeconds": 0.000092866 }, { - "connectionEstablishedSeconds": 0.064554434, - "uploadSeconds": 0.125555427, - "downloadSeconds": 0.000084835 + "connectionEstablishedSeconds": 0.065027565, + "uploadSeconds": 0.126622237, + "downloadSeconds": 0.000106011 }, { - "connectionEstablishedSeconds": 0.065129867, - "uploadSeconds": 0.126757758, - "downloadSeconds": 0.000076839 + "connectionEstablishedSeconds": 0.065309519, + "uploadSeconds": 0.127363373, + "downloadSeconds": 0.000068864 }, { - "connectionEstablishedSeconds": 0.062349026, - "uploadSeconds": 0.121155662, - "downloadSeconds": 0.000101132 + "connectionEstablishedSeconds": 0.060630725, + "uploadSeconds": 0.117690014, + "downloadSeconds": 0.000111107 }, { - "connectionEstablishedSeconds": 0.06535092, - "uploadSeconds": 0.1273273, - "downloadSeconds": 0.000089002 + "connectionEstablishedSeconds": 0.065486703, + "uploadSeconds": 0.127455826, + "downloadSeconds": 0.000090808 }, { - "connectionEstablishedSeconds": 0.066094518, - "uploadSeconds": 0.128518422, - "downloadSeconds": 0.000126889 + "connectionEstablishedSeconds": 0.063195899, + "uploadSeconds": 0.123090512, + "downloadSeconds": 0.000056723 }, { - "connectionEstablishedSeconds": 0.064563922, - "uploadSeconds": 0.125643408, - "downloadSeconds": 0.000087266 + "connectionEstablishedSeconds": 0.06505979, + "uploadSeconds": 0.126614753, + "downloadSeconds": 0.000089765 }, { - "connectionEstablishedSeconds": 0.063078447, - "uploadSeconds": 0.122793638, - "downloadSeconds": 0.00005627 + "connectionEstablishedSeconds": 0.062354526, + "uploadSeconds": 0.12156822, + "downloadSeconds": 0.000086259 }, { - "connectionEstablishedSeconds": 0.063925994, - "uploadSeconds": 0.124353016, - "downloadSeconds": 0.000088933 + "connectionEstablishedSeconds": 0.062418939, + "uploadSeconds": 0.121418247, + "downloadSeconds": 0.000087486 }, { - "connectionEstablishedSeconds": 0.064054259, - "uploadSeconds": 0.124578191, - "downloadSeconds": 0.000083031 + "connectionEstablishedSeconds": 0.065193432, + "uploadSeconds": 0.126871858, + "downloadSeconds": 0.000092619 }, { - "connectionEstablishedSeconds": 0.060656395, - "uploadSeconds": 0.117757039, - "downloadSeconds": 0.000082353 + "connectionEstablishedSeconds": 0.063621014, + "uploadSeconds": 0.123766947, + "downloadSeconds": 0.000062353 } ], "implementation": "rust-libp2p", @@ -1996,504 +1996,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.063519078, - "uploadSeconds": 0.122990612, - "downloadSeconds": 0.000077929 + "connectionEstablishedSeconds": 0.06295453, + "uploadSeconds": 0.121854033, + "downloadSeconds": 0.000077444 }, { - "connectionEstablishedSeconds": 0.063665886, - "uploadSeconds": 0.123635194, - "downloadSeconds": 0.000071066 + "connectionEstablishedSeconds": 0.065123301, + "uploadSeconds": 0.126731822, + "downloadSeconds": 0.000083647 }, { - "connectionEstablishedSeconds": 0.062310276, - "uploadSeconds": 0.121258041, - "downloadSeconds": 0.000050745 + "connectionEstablishedSeconds": 0.064473496, + "uploadSeconds": 0.125295297, + "downloadSeconds": 0.000093787 }, { - "connectionEstablishedSeconds": 0.064168618, - "uploadSeconds": 0.124698939, - "downloadSeconds": 0.000062075 + "connectionEstablishedSeconds": 0.063632156, + "uploadSeconds": 0.123478645, + "downloadSeconds": 0.000072658 }, { - "connectionEstablishedSeconds": 0.061712537, - "uploadSeconds": 0.119761987, - "downloadSeconds": 0.000083662 + "connectionEstablishedSeconds": 0.062453992, + "uploadSeconds": 0.121532257, + "downloadSeconds": 0.000080757 }, { - "connectionEstablishedSeconds": 0.066369464, - "uploadSeconds": 0.12928018, - "downloadSeconds": 0.00007292 + "connectionEstablishedSeconds": 0.06282161, + "uploadSeconds": 0.122050909, + "downloadSeconds": 0.000062642 }, { - "connectionEstablishedSeconds": 0.06597437, - "uploadSeconds": 0.128489863, - "downloadSeconds": 0.000095037 + "connectionEstablishedSeconds": 0.064755094, + "uploadSeconds": 0.125864073, + "downloadSeconds": 0.000105545 }, { - "connectionEstablishedSeconds": 0.066852308, - "uploadSeconds": 0.130111008, - "downloadSeconds": 0.000050861 + "connectionEstablishedSeconds": 0.064105606, + "uploadSeconds": 0.124738407, + "downloadSeconds": 0.000045231 }, { - "connectionEstablishedSeconds": 0.065107393, - "uploadSeconds": 0.126825077, - "downloadSeconds": 0.000073899 + "connectionEstablishedSeconds": 0.064166122, + "uploadSeconds": 0.124608084, + "downloadSeconds": 0.000084333 }, { - "connectionEstablishedSeconds": 0.064804187, - "uploadSeconds": 0.126203664, - "downloadSeconds": 0.000094286 + "connectionEstablishedSeconds": 0.062669409, + "uploadSeconds": 0.121852983, + "downloadSeconds": 0.000086386 }, { - "connectionEstablishedSeconds": 0.062656878, - "uploadSeconds": 0.121770066, - "downloadSeconds": 0.000077609 + "connectionEstablishedSeconds": 0.064950734, + "uploadSeconds": 0.126331357, + "downloadSeconds": 0.000155847 }, { - "connectionEstablishedSeconds": 0.064139385, - "uploadSeconds": 0.125054034, - "downloadSeconds": 0.000063282 + "connectionEstablishedSeconds": 0.062348759, + "uploadSeconds": 0.121223049, + "downloadSeconds": 0.000101475 }, { - "connectionEstablishedSeconds": 0.065992239, - "uploadSeconds": 0.128643708, - "downloadSeconds": 0.000085683 + "connectionEstablishedSeconds": 0.061410545, + "uploadSeconds": 0.119357751, + "downloadSeconds": 0.00013631 }, { - "connectionEstablishedSeconds": 0.066444011, - "uploadSeconds": 0.129491444, - "downloadSeconds": 0.000053422 + "connectionEstablishedSeconds": 0.06538073, + "uploadSeconds": 0.127286516, + "downloadSeconds": 0.000084163 }, { - "connectionEstablishedSeconds": 0.065541288, - "uploadSeconds": 0.127670473, - "downloadSeconds": 0.000051367 + "connectionEstablishedSeconds": 0.065267895, + "uploadSeconds": 0.127053901, + "downloadSeconds": 0.00006416 }, { - "connectionEstablishedSeconds": 0.065511296, - "uploadSeconds": 0.127685358, - "downloadSeconds": 0.000081536 + "connectionEstablishedSeconds": 0.064411294, + "uploadSeconds": 0.124778899, + "downloadSeconds": 0.000074301 }, { - "connectionEstablishedSeconds": 0.0655056, - "uploadSeconds": 0.127548821, - "downloadSeconds": 0.000070778 + "connectionEstablishedSeconds": 0.063916077, + "uploadSeconds": 0.124393312, + "downloadSeconds": 0.000085843 }, { - "connectionEstablishedSeconds": 0.06506113, - "uploadSeconds": 0.126577011, - "downloadSeconds": 0.000049992 + "connectionEstablishedSeconds": 0.062081196, + "uploadSeconds": 0.120463049, + "downloadSeconds": 0.000081798 }, { - "connectionEstablishedSeconds": 0.065260381, - "uploadSeconds": 0.127215303, - "downloadSeconds": 0.00004709 + "connectionEstablishedSeconds": 0.064835647, + "uploadSeconds": 0.126418203, + "downloadSeconds": 0.000073351 }, { - "connectionEstablishedSeconds": 0.066048768, - "uploadSeconds": 0.128658866, - "downloadSeconds": 0.000049508 + "connectionEstablishedSeconds": 0.065654051, + "uploadSeconds": 0.127722734, + "downloadSeconds": 0.000105934 }, { - "connectionEstablishedSeconds": 0.063479391, - "uploadSeconds": 0.123462859, - "downloadSeconds": 0.000072927 + "connectionEstablishedSeconds": 0.063670175, + "uploadSeconds": 0.123943916, + "downloadSeconds": 0.000077717 }, { - "connectionEstablishedSeconds": 0.063377289, - "uploadSeconds": 0.123550736, - "downloadSeconds": 0.000084836 + "connectionEstablishedSeconds": 0.065474963, + "uploadSeconds": 0.127595228, + "downloadSeconds": 0.000055289 }, { - "connectionEstablishedSeconds": 0.065219667, - "uploadSeconds": 0.127035888, - "downloadSeconds": 0.000077057 + "connectionEstablishedSeconds": 0.064085463, + "uploadSeconds": 0.124794593, + "downloadSeconds": 0.00009378 }, { - "connectionEstablishedSeconds": 0.065376484, - "uploadSeconds": 0.127416787, - "downloadSeconds": 0.000080627 + "connectionEstablishedSeconds": 0.063967591, + "uploadSeconds": 0.124510889, + "downloadSeconds": 0.000077411 }, { - "connectionEstablishedSeconds": 0.060574272, - "uploadSeconds": 0.117808539, - "downloadSeconds": 0.00006683 + "connectionEstablishedSeconds": 0.062634672, + "uploadSeconds": 0.121821183, + "downloadSeconds": 0.000063691 }, { - "connectionEstablishedSeconds": 0.063172525, - "uploadSeconds": 0.1229846, - "downloadSeconds": 0.0000842 + "connectionEstablishedSeconds": 0.066294521, + "uploadSeconds": 0.129160959, + "downloadSeconds": 0.000054596 }, { - "connectionEstablishedSeconds": 0.063844106, - "uploadSeconds": 0.124200646, - "downloadSeconds": 0.000104537 + "connectionEstablishedSeconds": 0.064455007, + "uploadSeconds": 0.125418313, + "downloadSeconds": 0.00007373 }, { - "connectionEstablishedSeconds": 0.06151384, - "uploadSeconds": 0.119567831, - "downloadSeconds": 0.000050586 + "connectionEstablishedSeconds": 0.063959842, + "uploadSeconds": 0.1244949, + "downloadSeconds": 0.000073275 }, { - "connectionEstablishedSeconds": 0.065960291, - "uploadSeconds": 0.128569634, - "downloadSeconds": 0.000069633 + "connectionEstablishedSeconds": 0.066070252, + "uploadSeconds": 0.128792037, + "downloadSeconds": 0.00004618 }, { - "connectionEstablishedSeconds": 0.066044813, - "uploadSeconds": 0.128689496, - "downloadSeconds": 0.000055203 + "connectionEstablishedSeconds": 0.065236645, + "uploadSeconds": 0.127059524, + "downloadSeconds": 0.000050571 }, { - "connectionEstablishedSeconds": 0.064051288, - "uploadSeconds": 0.124576427, - "downloadSeconds": 0.000078675 + "connectionEstablishedSeconds": 0.06094768, + "uploadSeconds": 0.118601577, + "downloadSeconds": 0.000093052 }, { - "connectionEstablishedSeconds": 0.06467373, - "uploadSeconds": 0.125604057, - "downloadSeconds": 0.000051035 + "connectionEstablishedSeconds": 0.064582742, + "uploadSeconds": 0.12575478, + "downloadSeconds": 0.000082067 }, { - "connectionEstablishedSeconds": 0.064637567, - "uploadSeconds": 0.125751746, - "downloadSeconds": 0.000071124 + "connectionEstablishedSeconds": 0.065072501, + "uploadSeconds": 0.12662061, + "downloadSeconds": 0.000098341 }, { - "connectionEstablishedSeconds": 0.062621301, - "uploadSeconds": 0.121779078, - "downloadSeconds": 0.000046352 + "connectionEstablishedSeconds": 0.066624862, + "uploadSeconds": 0.129815026, + "downloadSeconds": 0.000081843 }, { - "connectionEstablishedSeconds": 0.065625727, - "uploadSeconds": 0.127832477, - "downloadSeconds": 0.000058497 + "connectionEstablishedSeconds": 0.065496903, + "uploadSeconds": 0.12779438, + "downloadSeconds": 0.000105756 }, { - "connectionEstablishedSeconds": 0.061680041, - "uploadSeconds": 0.119933855, - "downloadSeconds": 0.000048531 + "connectionEstablishedSeconds": 0.063587012, + "uploadSeconds": 0.123648704, + "downloadSeconds": 0.000073976 }, { - "connectionEstablishedSeconds": 0.066777416, - "uploadSeconds": 0.130039376, - "downloadSeconds": 0.000053951 + "connectionEstablishedSeconds": 0.065166457, + "uploadSeconds": 0.126912988, + "downloadSeconds": 0.000109828 }, { - "connectionEstablishedSeconds": 0.065635455, - "uploadSeconds": 0.127942878, - "downloadSeconds": 0.000067954 + "connectionEstablishedSeconds": 0.06025493, + "uploadSeconds": 0.117031953, + "downloadSeconds": 0.00008765 }, { - "connectionEstablishedSeconds": 0.064511421, - "uploadSeconds": 0.125934908, - "downloadSeconds": 0.000064877 + "connectionEstablishedSeconds": 0.065858394, + "uploadSeconds": 0.128498961, + "downloadSeconds": 0.000117106 }, { - "connectionEstablishedSeconds": 0.066366217, - "uploadSeconds": 0.129128895, - "downloadSeconds": 0.000048741 + "connectionEstablishedSeconds": 0.065079865, + "uploadSeconds": 0.126656494, + "downloadSeconds": 0.00007727 }, { - "connectionEstablishedSeconds": 0.064343476, - "uploadSeconds": 0.125404508, - "downloadSeconds": 0.000051655 + "connectionEstablishedSeconds": 0.0635718, + "uploadSeconds": 0.123726091, + "downloadSeconds": 0.000074642 }, { - "connectionEstablishedSeconds": 0.06482128, - "uploadSeconds": 0.126211526, - "downloadSeconds": 0.000069293 + "connectionEstablishedSeconds": 0.063487759, + "uploadSeconds": 0.123542277, + "downloadSeconds": 0.000057058 }, { - "connectionEstablishedSeconds": 0.064502871, - "uploadSeconds": 0.125611693, - "downloadSeconds": 0.000074536 + "connectionEstablishedSeconds": 0.061036628, + "uploadSeconds": 0.118754325, + "downloadSeconds": 0.000087272 }, { - "connectionEstablishedSeconds": 0.064757256, - "uploadSeconds": 0.126138884, - "downloadSeconds": 0.000095554 + "connectionEstablishedSeconds": 0.064088629, + "uploadSeconds": 0.124607971, + "downloadSeconds": 0.00005193 }, { - "connectionEstablishedSeconds": 0.062325722, - "uploadSeconds": 0.121371296, - "downloadSeconds": 0.000070108 + "connectionEstablishedSeconds": 0.063898205, + "uploadSeconds": 0.12449889, + "downloadSeconds": 0.00007393 }, { - "connectionEstablishedSeconds": 0.06502706, - "uploadSeconds": 0.126730306, - "downloadSeconds": 0.000097587 + "connectionEstablishedSeconds": 0.063112121, + "uploadSeconds": 0.122876487, + "downloadSeconds": 0.000082174 }, { - "connectionEstablishedSeconds": 0.063551583, - "uploadSeconds": 0.12373032, - "downloadSeconds": 0.000070006 + "connectionEstablishedSeconds": 0.061838182, + "uploadSeconds": 0.119878674, + "downloadSeconds": 0.000089398 }, { - "connectionEstablishedSeconds": 0.063523662, - "uploadSeconds": 0.123407521, - "downloadSeconds": 0.000095457 + "connectionEstablishedSeconds": 0.062248433, + "uploadSeconds": 0.121379219, + "downloadSeconds": 0.000044327 }, { - "connectionEstablishedSeconds": 0.062619221, - "uploadSeconds": 0.121918325, - "downloadSeconds": 0.000076268 + "connectionEstablishedSeconds": 0.064517291, + "uploadSeconds": 0.125572328, + "downloadSeconds": 0.000050306 }, { - "connectionEstablishedSeconds": 0.065951366, - "uploadSeconds": 0.128622794, - "downloadSeconds": 0.000081698 + "connectionEstablishedSeconds": 0.064898676, + "uploadSeconds": 0.126133518, + "downloadSeconds": 0.000068667 }, { - "connectionEstablishedSeconds": 0.064698136, - "uploadSeconds": 0.125988787, - "downloadSeconds": 0.000092626 + "connectionEstablishedSeconds": 0.062271554, + "uploadSeconds": 0.121187727, + "downloadSeconds": 0.00004803 }, { - "connectionEstablishedSeconds": 0.061843308, - "uploadSeconds": 0.119684107, - "downloadSeconds": 0.00008365 + "connectionEstablishedSeconds": 0.062338208, + "uploadSeconds": 0.120937059, + "downloadSeconds": 0.000050162 }, { - "connectionEstablishedSeconds": 0.063300197, - "uploadSeconds": 0.123280677, - "downloadSeconds": 0.000092735 + "connectionEstablishedSeconds": 0.06516715, + "uploadSeconds": 0.12658971, + "downloadSeconds": 0.000054901 }, { - "connectionEstablishedSeconds": 0.063834879, - "uploadSeconds": 0.124240871, - "downloadSeconds": 0.000085256 + "connectionEstablishedSeconds": 0.065651049, + "uploadSeconds": 0.127730491, + "downloadSeconds": 0.000072302 }, { - "connectionEstablishedSeconds": 0.062236693, - "uploadSeconds": 0.121076369, - "downloadSeconds": 0.000085015 + "connectionEstablishedSeconds": 0.065052451, + "uploadSeconds": 0.126855008, + "downloadSeconds": 0.000069138 }, { - "connectionEstablishedSeconds": 0.066130838, - "uploadSeconds": 0.12887493, - "downloadSeconds": 0.000086221 + "connectionEstablishedSeconds": 0.066387803, + "uploadSeconds": 0.129441088, + "downloadSeconds": 0.000046108 }, { - "connectionEstablishedSeconds": 0.06279212, - "uploadSeconds": 0.122060554, - "downloadSeconds": 0.000094097 + "connectionEstablishedSeconds": 0.064914776, + "uploadSeconds": 0.126462724, + "downloadSeconds": 0.000060604 }, { - "connectionEstablishedSeconds": 0.066620106, - "uploadSeconds": 0.129906214, - "downloadSeconds": 0.000074539 + "connectionEstablishedSeconds": 0.066325354, + "uploadSeconds": 0.128622135, + "downloadSeconds": 0.000089472 }, { - "connectionEstablishedSeconds": 0.065449705, - "uploadSeconds": 0.127120498, - "downloadSeconds": 0.000070276 + "connectionEstablishedSeconds": 0.064877193, + "uploadSeconds": 0.126410536, + "downloadSeconds": 0.000083253 }, { - "connectionEstablishedSeconds": 0.064987889, - "uploadSeconds": 0.126646536, - "downloadSeconds": 0.000097892 + "connectionEstablishedSeconds": 0.061518459, + "uploadSeconds": 0.11970554, + "downloadSeconds": 0.000098102 }, { - "connectionEstablishedSeconds": 0.065076398, - "uploadSeconds": 0.126771911, - "downloadSeconds": 0.000105138 + "connectionEstablishedSeconds": 0.066446584, + "uploadSeconds": 0.129426228, + "downloadSeconds": 0.000052881 }, { - "connectionEstablishedSeconds": 0.064257919, - "uploadSeconds": 0.124723095, - "downloadSeconds": 0.00009047 + "connectionEstablishedSeconds": 0.063347672, + "uploadSeconds": 0.123333115, + "downloadSeconds": 0.000051834 }, { - "connectionEstablishedSeconds": 0.060898769, - "uploadSeconds": 0.118227532, - "downloadSeconds": 0.000084797 + "connectionEstablishedSeconds": 0.062311469, + "uploadSeconds": 0.121232877, + "downloadSeconds": 0.000067479 }, { - "connectionEstablishedSeconds": 0.063728016, - "uploadSeconds": 0.123884811, - "downloadSeconds": 0.000080106 + "connectionEstablishedSeconds": 0.065580823, + "uploadSeconds": 0.127383534, + "downloadSeconds": 0.00008774 }, { - "connectionEstablishedSeconds": 0.064262811, - "uploadSeconds": 0.124954518, - "downloadSeconds": 0.000090781 + "connectionEstablishedSeconds": 0.062602698, + "uploadSeconds": 0.12176476, + "downloadSeconds": 0.000084162 }, { - "connectionEstablishedSeconds": 0.066008012, - "uploadSeconds": 0.128710865, - "downloadSeconds": 0.000055674 + "connectionEstablishedSeconds": 0.064679694, + "uploadSeconds": 0.125792176, + "downloadSeconds": 0.000049092 }, { - "connectionEstablishedSeconds": 0.065924989, - "uploadSeconds": 0.128442804, - "downloadSeconds": 0.0000892 + "connectionEstablishedSeconds": 0.066119217, + "uploadSeconds": 0.128911034, + "downloadSeconds": 0.000052582 }, { - "connectionEstablishedSeconds": 0.064246623, - "uploadSeconds": 0.125166351, - "downloadSeconds": 0.000045633 + "connectionEstablishedSeconds": 0.064028513, + "uploadSeconds": 0.12462816, + "downloadSeconds": 0.000062379 }, { - "connectionEstablishedSeconds": 0.065089089, - "uploadSeconds": 0.126801117, - "downloadSeconds": 0.000051485 + "connectionEstablishedSeconds": 0.066205814, + "uploadSeconds": 0.128883233, + "downloadSeconds": 0.000052233 }, { - "connectionEstablishedSeconds": 0.064307456, - "uploadSeconds": 0.125302103, - "downloadSeconds": 0.000052845 + "connectionEstablishedSeconds": 0.062012424, + "uploadSeconds": 0.120882738, + "downloadSeconds": 0.00005704 }, { - "connectionEstablishedSeconds": 0.064868441, - "uploadSeconds": 0.126266168, - "downloadSeconds": 0.000126958 + "connectionEstablishedSeconds": 0.064255919, + "uploadSeconds": 0.124959707, + "downloadSeconds": 0.000091863 }, { - "connectionEstablishedSeconds": 0.066007201, - "uploadSeconds": 0.128569868, - "downloadSeconds": 0.000095506 + "connectionEstablishedSeconds": 0.063693044, + "uploadSeconds": 0.123805374, + "downloadSeconds": 0.000094304 }, { - "connectionEstablishedSeconds": 0.063274614, - "uploadSeconds": 0.122752513, - "downloadSeconds": 0.00005209 + "connectionEstablishedSeconds": 0.064984709, + "uploadSeconds": 0.126642484, + "downloadSeconds": 0.000047402 }, { - "connectionEstablishedSeconds": 0.064596218, - "uploadSeconds": 0.125676799, - "downloadSeconds": 0.000055948 + "connectionEstablishedSeconds": 0.061120801, + "uploadSeconds": 0.11917866, + "downloadSeconds": 0.000070103 }, { - "connectionEstablishedSeconds": 0.066233576, - "uploadSeconds": 0.129240386, - "downloadSeconds": 0.000069711 + "connectionEstablishedSeconds": 0.063592651, + "uploadSeconds": 0.123675225, + "downloadSeconds": 0.000061204 }, { - "connectionEstablishedSeconds": 0.062692077, - "uploadSeconds": 0.121887906, - "downloadSeconds": 0.000096332 + "connectionEstablishedSeconds": 0.062592166, + "uploadSeconds": 0.121571849, + "downloadSeconds": 0.000071449 }, { - "connectionEstablishedSeconds": 0.066084061, - "uploadSeconds": 0.128741924, - "downloadSeconds": 0.000060631 + "connectionEstablishedSeconds": 0.065114172, + "uploadSeconds": 0.126766224, + "downloadSeconds": 0.000060301 }, { - "connectionEstablishedSeconds": 0.063618972, - "uploadSeconds": 0.123940924, - "downloadSeconds": 0.000079125 + "connectionEstablishedSeconds": 0.063331652, + "uploadSeconds": 0.122993699, + "downloadSeconds": 0.000085199 }, { - "connectionEstablishedSeconds": 0.064626859, - "uploadSeconds": 0.125812036, - "downloadSeconds": 0.00006151 + "connectionEstablishedSeconds": 0.064596237, + "uploadSeconds": 0.125709824, + "downloadSeconds": 0.000080473 }, { - "connectionEstablishedSeconds": 0.064685468, - "uploadSeconds": 0.125981711, - "downloadSeconds": 0.000079766 + "connectionEstablishedSeconds": 0.066972879, + "uploadSeconds": 0.130634142, + "downloadSeconds": 0.00004697 }, { - "connectionEstablishedSeconds": 0.066351685, - "uploadSeconds": 0.129293632, - "downloadSeconds": 0.000057879 + "connectionEstablishedSeconds": 0.062545682, + "uploadSeconds": 0.121463022, + "downloadSeconds": 0.000060858 }, { - "connectionEstablishedSeconds": 0.066941968, - "uploadSeconds": 0.13060837, - "downloadSeconds": 0.000091937 + "connectionEstablishedSeconds": 0.065678017, + "uploadSeconds": 0.128114478, + "downloadSeconds": 0.000054247 }, { - "connectionEstablishedSeconds": 0.063342774, - "uploadSeconds": 0.123086611, - "downloadSeconds": 0.000090204 + "connectionEstablishedSeconds": 0.066031352, + "uploadSeconds": 0.128668745, + "downloadSeconds": 0.000046151 }, { - "connectionEstablishedSeconds": 0.061606028, - "uploadSeconds": 0.11983355, - "downloadSeconds": 0.000098157 + "connectionEstablishedSeconds": 0.065528277, + "uploadSeconds": 0.127732124, + "downloadSeconds": 0.000050967 }, { - "connectionEstablishedSeconds": 0.06640212, - "uploadSeconds": 0.129430666, - "downloadSeconds": 0.000103247 + "connectionEstablishedSeconds": 0.061144288, + "uploadSeconds": 0.118864606, + "downloadSeconds": 0.000055298 }, { - "connectionEstablishedSeconds": 0.061717249, - "uploadSeconds": 0.120163634, - "downloadSeconds": 0.000067477 + "connectionEstablishedSeconds": 0.065305185, + "uploadSeconds": 0.127158917, + "downloadSeconds": 0.000050949 }, { - "connectionEstablishedSeconds": 0.062332833, - "uploadSeconds": 0.121309199, - "downloadSeconds": 0.000067077 + "connectionEstablishedSeconds": 0.065225217, + "uploadSeconds": 0.126952291, + "downloadSeconds": 0.000044136 }, { - "connectionEstablishedSeconds": 0.066746587, - "uploadSeconds": 0.130068658, - "downloadSeconds": 0.000142669 + "connectionEstablishedSeconds": 0.064853145, + "uploadSeconds": 0.126412428, + "downloadSeconds": 0.000097659 }, { - "connectionEstablishedSeconds": 0.065263106, - "uploadSeconds": 0.127183749, - "downloadSeconds": 0.000086632 + "connectionEstablishedSeconds": 0.065478193, + "uploadSeconds": 0.127374565, + "downloadSeconds": 0.000062365 }, { - "connectionEstablishedSeconds": 0.064773722, - "uploadSeconds": 0.126194066, - "downloadSeconds": 0.000082269 + "connectionEstablishedSeconds": 0.05995481, + "uploadSeconds": 0.116531334, + "downloadSeconds": 0.000078307 }, { - "connectionEstablishedSeconds": 0.063074204, - "uploadSeconds": 0.122612869, - "downloadSeconds": 0.000050804 + "connectionEstablishedSeconds": 0.066140712, + "uploadSeconds": 0.128805388, + "downloadSeconds": 0.000049685 }, { - "connectionEstablishedSeconds": 0.065106436, - "uploadSeconds": 0.126604141, - "downloadSeconds": 0.00004978 + "connectionEstablishedSeconds": 0.064286525, + "uploadSeconds": 0.125063487, + "downloadSeconds": 0.000092709 }, { - "connectionEstablishedSeconds": 0.061870206, - "uploadSeconds": 0.120408102, - "downloadSeconds": 0.000076583 + "connectionEstablishedSeconds": 0.065156327, + "uploadSeconds": 0.127035923, + "downloadSeconds": 0.00005645 }, { - "connectionEstablishedSeconds": 0.065547347, - "uploadSeconds": 0.127744669, - "downloadSeconds": 0.000083739 + "connectionEstablishedSeconds": 0.062462454, + "uploadSeconds": 0.121519512, + "downloadSeconds": 0.000090082 }, { - "connectionEstablishedSeconds": 0.062585839, - "uploadSeconds": 0.121799329, - "downloadSeconds": 0.000049104 + "connectionEstablishedSeconds": 0.063023488, + "uploadSeconds": 0.122460757, + "downloadSeconds": 0.000049759 }, { - "connectionEstablishedSeconds": 0.065295289, - "uploadSeconds": 0.127162027, - "downloadSeconds": 0.000100753 + "connectionEstablishedSeconds": 0.065384733, + "uploadSeconds": 0.127145941, + "downloadSeconds": 0.000078884 }, { - "connectionEstablishedSeconds": 0.064643425, - "uploadSeconds": 0.125866769, - "downloadSeconds": 0.000128764 + "connectionEstablishedSeconds": 0.064855409, + "uploadSeconds": 0.12630613, + "downloadSeconds": 0.0000832 }, { - "connectionEstablishedSeconds": 0.065628334, - "uploadSeconds": 0.127949056, - "downloadSeconds": 0.000085941 + "connectionEstablishedSeconds": 0.065364575, + "uploadSeconds": 0.127268953, + "downloadSeconds": 0.000079745 }, { - "connectionEstablishedSeconds": 0.063687324, - "uploadSeconds": 0.124031975, - "downloadSeconds": 0.000053998 + "connectionEstablishedSeconds": 0.066317931, + "uploadSeconds": 0.129352868, + "downloadSeconds": 0.000089251 }, { - "connectionEstablishedSeconds": 0.065033196, - "uploadSeconds": 0.126591394, - "downloadSeconds": 0.000090445 + "connectionEstablishedSeconds": 0.061175776, + "uploadSeconds": 0.118754982, + "downloadSeconds": 0.00005179 } ], "implementation": "rust-libp2p-quinn", @@ -2504,503 +2504,503 @@ "result": [ { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182526996, - "downloadSeconds": 0.000028081 + "uploadSeconds": 0.191286116, + "downloadSeconds": 0.000030153 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190504604, - "downloadSeconds": 0.000030004 + "uploadSeconds": 0.183529055, + "downloadSeconds": 0.000025756 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193522642, - "downloadSeconds": 0.000033063 + "uploadSeconds": 0.184410375, + "downloadSeconds": 0.000040311 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188083933, - "downloadSeconds": 0.000022961 + "uploadSeconds": 0.190450232, + "downloadSeconds": 0.000028102 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188448323, - "downloadSeconds": 0.00002412 + "uploadSeconds": 0.187048479, + "downloadSeconds": 0.000020757 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.196740918, - "downloadSeconds": 0.000026258 + "uploadSeconds": 0.190285011, + "downloadSeconds": 0.000024856 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18308572, - "downloadSeconds": 0.000028927 + "uploadSeconds": 0.178674815, + "downloadSeconds": 0.000024766 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185745296, - "downloadSeconds": 0.000024131 + "uploadSeconds": 0.189727631, + "downloadSeconds": 0.000021712 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18907954, - "downloadSeconds": 0.00001991 + "uploadSeconds": 0.18619776, + "downloadSeconds": 0.000034857 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185833055, - "downloadSeconds": 0.000023142 + "uploadSeconds": 0.193181301, + "downloadSeconds": 0.000024575 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189649454, - "downloadSeconds": 0.000024058 + "uploadSeconds": 0.189751793, + "downloadSeconds": 0.000025637 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191497443, - "downloadSeconds": 0.000021405 + "uploadSeconds": 0.183150367, + "downloadSeconds": 0.000024492 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189316359, - "downloadSeconds": 0.000023068 + "uploadSeconds": 0.188043639, + "downloadSeconds": 0.000024447 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190140897, - "downloadSeconds": 0.000022992 + "uploadSeconds": 0.189577218, + "downloadSeconds": 0.000018189 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.195869519, - "downloadSeconds": 0.000029358 + "uploadSeconds": 0.188882264, + "downloadSeconds": 0.000021261 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189150223, - "downloadSeconds": 0.000024037 + "uploadSeconds": 0.186325009, + "downloadSeconds": 0.000024389 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192729951, - "downloadSeconds": 0.000022296 + "uploadSeconds": 0.181536797, + "downloadSeconds": 0.000033015 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193891543, - "downloadSeconds": 0.000024125 + "uploadSeconds": 0.193188111, + "downloadSeconds": 0.000025382 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188204969, - "downloadSeconds": 0.000027787 + "uploadSeconds": 0.185746185, + "downloadSeconds": 0.000023011 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.180378732, - "downloadSeconds": 0.000022672 + "uploadSeconds": 0.182559536, + "downloadSeconds": 0.000025647 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.177582096, - "downloadSeconds": 0.000022659 + "uploadSeconds": 0.186054822, + "downloadSeconds": 0.000021982 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193350469, - "downloadSeconds": 0.000020163 + "uploadSeconds": 0.187466153, + "downloadSeconds": 0.000024312 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185767481, - "downloadSeconds": 0.000026842 + "uploadSeconds": 0.184809142, + "downloadSeconds": 0.000022947 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193804953, - "downloadSeconds": 0.000020949 + "uploadSeconds": 0.191330569, + "downloadSeconds": 0.000028027 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18438266, - "downloadSeconds": 0.000023656 + "uploadSeconds": 0.189069566, + "downloadSeconds": 0.000024548 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183008634, - "downloadSeconds": 0.000023277 + "uploadSeconds": 0.18767281, + "downloadSeconds": 0.000021507 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191210666, - "downloadSeconds": 0.000024137 + "uploadSeconds": 0.18593129, + "downloadSeconds": 0.000023896 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186482695, - "downloadSeconds": 0.000022633 + "uploadSeconds": 0.181014203, + "downloadSeconds": 0.000023811 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189309966, - "downloadSeconds": 0.000023136 + "uploadSeconds": 0.188932328, + "downloadSeconds": 0.000025813 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191818133, - "downloadSeconds": 0.000021278 + "uploadSeconds": 0.184957641, + "downloadSeconds": 0.000023322 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189251616, - "downloadSeconds": 0.000021964 + "uploadSeconds": 0.180815006, + "downloadSeconds": 0.00003453 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.181809604, - "downloadSeconds": 0.000028936 + "uploadSeconds": 0.190052471, + "downloadSeconds": 0.00002195 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18660164, - "downloadSeconds": 0.000024492 + "uploadSeconds": 0.193640405, + "downloadSeconds": 0.000020421 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189789357, - "downloadSeconds": 0.000021157 + "uploadSeconds": 0.190830146, + "downloadSeconds": 0.000022273 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184932541, - "downloadSeconds": 0.000023631 + "uploadSeconds": 0.188083369, + "downloadSeconds": 0.00002138 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186822751, - "downloadSeconds": 0.000020386 + "uploadSeconds": 0.185840961, + "downloadSeconds": 0.000021979 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.1918446, - "downloadSeconds": 0.000025974 + "uploadSeconds": 0.193488566, + "downloadSeconds": 0.000024822 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193359663, - "downloadSeconds": 0.000023906 + "uploadSeconds": 0.178135133, + "downloadSeconds": 0.000024564 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.180623778, - "downloadSeconds": 0.000022066 + "uploadSeconds": 0.187243776, + "downloadSeconds": 0.00002429 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.194065624, - "downloadSeconds": 0.000024338 + "uploadSeconds": 0.186128, + "downloadSeconds": 0.00002176 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186297434, - "downloadSeconds": 0.000024067 + "uploadSeconds": 0.187437127, + "downloadSeconds": 0.000024223 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193217938, - "downloadSeconds": 0.00003172 + "uploadSeconds": 0.193260755, + "downloadSeconds": 0.000021753 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189385811, - "downloadSeconds": 0.000030405 + "uploadSeconds": 0.17961362, + "downloadSeconds": 0.000030347 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187927176, - "downloadSeconds": 0.000029698 + "uploadSeconds": 0.185389065, + "downloadSeconds": 0.00002451 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188805384, - "downloadSeconds": 0.000034208 + "uploadSeconds": 0.189083595, + "downloadSeconds": 0.000023793 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189654743, - "downloadSeconds": 0.000024488 + "uploadSeconds": 0.188867791, + "downloadSeconds": 0.000024162 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191317788, - "downloadSeconds": 0.000030165 + "uploadSeconds": 0.182410744, + "downloadSeconds": 0.000021144 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.177344546, - "downloadSeconds": 0.000022917 + "uploadSeconds": 0.19338541, + "downloadSeconds": 0.000024628 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185253469, - "downloadSeconds": 0.000021784 + "uploadSeconds": 0.180148621, + "downloadSeconds": 0.000023234 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.194740613, - "downloadSeconds": 0.000024717 + "uploadSeconds": 0.183482025, + "downloadSeconds": 0.00002359 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189147404, - "downloadSeconds": 0.000030423 + "uploadSeconds": 0.192011607, + "downloadSeconds": 0.000019914 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.194014909, - "downloadSeconds": 0.000020974 + "uploadSeconds": 0.193289196, + "downloadSeconds": 0.000024513 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.181861578, - "downloadSeconds": 0.00002424 + "uploadSeconds": 0.185263194, + "downloadSeconds": 0.000028503 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192169323, - "downloadSeconds": 0.000024615 + "uploadSeconds": 0.186621738, + "downloadSeconds": 0.000024194 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188696576, - "downloadSeconds": 0.000021796 + "uploadSeconds": 0.192898111, + "downloadSeconds": 0.000024166 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.179715562, - "downloadSeconds": 0.000024024 + "uploadSeconds": 0.187423423, + "downloadSeconds": 0.000023964 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187766484, - "downloadSeconds": 0.000020671 + "uploadSeconds": 0.191429869, + "downloadSeconds": 0.000021317 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191328207, - "downloadSeconds": 0.000021573 + "uploadSeconds": 0.187678237, + "downloadSeconds": 0.000021642 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190159105, - "downloadSeconds": 0.000025215 + "uploadSeconds": 0.187827296, + "downloadSeconds": 0.000021888 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.196031344, - "downloadSeconds": 0.000021368 + "uploadSeconds": 0.186599878, + "downloadSeconds": 0.00002446 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188587152, - "downloadSeconds": 0.000029023 + "uploadSeconds": 0.190005609, + "downloadSeconds": 0.000022756 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182829839, - "downloadSeconds": 0.000021626 + "uploadSeconds": 0.189002327, + "downloadSeconds": 0.000028052 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183022527, - "downloadSeconds": 0.000029741 + "uploadSeconds": 0.191248774, + "downloadSeconds": 0.000021291 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191183223, - "downloadSeconds": 0.000023445 + "uploadSeconds": 0.182345961, + "downloadSeconds": 0.000018505 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.195757349, - "downloadSeconds": 0.000030259 + "uploadSeconds": 0.178343946, + "downloadSeconds": 0.000024258 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188233925, - "downloadSeconds": 0.000032255 + "uploadSeconds": 0.1796409, + "downloadSeconds": 0.000020622 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184361716, - "downloadSeconds": 0.000028005 + "uploadSeconds": 0.191527728, + "downloadSeconds": 0.000023144 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186432378, - "downloadSeconds": 0.000019995 + "uploadSeconds": 0.187086772, + "downloadSeconds": 0.000024889 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188335389, - "downloadSeconds": 0.000024858 + "uploadSeconds": 0.18110695, + "downloadSeconds": 0.000023585 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191171584, - "downloadSeconds": 0.000021449 + "uploadSeconds": 0.187533438, + "downloadSeconds": 0.000022629 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193595616, - "downloadSeconds": 0.000024224 + "uploadSeconds": 0.187532688, + "downloadSeconds": 0.000029573 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183355964, - "downloadSeconds": 0.000020573 + "uploadSeconds": 0.191096905, + "downloadSeconds": 0.000025604 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193506624, - "downloadSeconds": 0.000024937 + "uploadSeconds": 0.194325541, + "downloadSeconds": 0.000021101 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184619421, - "downloadSeconds": 0.000021662 + "uploadSeconds": 0.189083303, + "downloadSeconds": 0.000021147 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182013165, - "downloadSeconds": 0.000023987 + "uploadSeconds": 0.193745985, + "downloadSeconds": 0.000024439 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.179699999, - "downloadSeconds": 0.000020907 + "uploadSeconds": 0.190582174, + "downloadSeconds": 0.000017468 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191663979, - "downloadSeconds": 0.000024939 + "uploadSeconds": 0.192054523, + "downloadSeconds": 0.0000221 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186674829, - "downloadSeconds": 0.000024025 + "uploadSeconds": 0.183943085, + "downloadSeconds": 0.000024812 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18304345, - "downloadSeconds": 0.000021069 + "uploadSeconds": 0.17475635, + "downloadSeconds": 0.000024018 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.194300055, - "downloadSeconds": 0.000026738 + "uploadSeconds": 0.184440358, + "downloadSeconds": 0.000021449 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184448741, - "downloadSeconds": 0.000032237 + "uploadSeconds": 0.18631819, + "downloadSeconds": 0.000028734 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193911983, - "downloadSeconds": 0.000022306 + "uploadSeconds": 0.181409699, + "downloadSeconds": 0.00002564 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187826647, - "downloadSeconds": 0.000024787 + "uploadSeconds": 0.179933668, + "downloadSeconds": 0.000024125 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188415711, - "downloadSeconds": 0.000022936 + "uploadSeconds": 0.185195736, + "downloadSeconds": 0.000022891 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189168992, - "downloadSeconds": 0.000023928 + "uploadSeconds": 0.188159214, + "downloadSeconds": 0.00002612 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193147287, - "downloadSeconds": 0.000028749 + "uploadSeconds": 0.191314415, + "downloadSeconds": 0.000021095 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187182336, - "downloadSeconds": 0.000021227 + "uploadSeconds": 0.183011343, + "downloadSeconds": 0.000024533 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190808467, - "downloadSeconds": 0.000021406 + "uploadSeconds": 0.188848175, + "downloadSeconds": 0.0000209 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186257853, - "downloadSeconds": 0.000029142 + "uploadSeconds": 0.195977983, + "downloadSeconds": 0.000024503 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192046336, - "downloadSeconds": 0.000020604 + "uploadSeconds": 0.18291316, + "downloadSeconds": 0.000020749 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189009156, - "downloadSeconds": 0.000024835 + "uploadSeconds": 0.185713857, + "downloadSeconds": 0.000023253 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188875391, - "downloadSeconds": 0.000021557 + "uploadSeconds": 0.189154788, + "downloadSeconds": 0.000024316 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187455696, - "downloadSeconds": 0.000032943 + "uploadSeconds": 0.185723779, + "downloadSeconds": 0.000022027 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188796385, - "downloadSeconds": 0.00002132 + "uploadSeconds": 0.186181575, + "downloadSeconds": 0.000020345 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189167855, - "downloadSeconds": 0.000023001 + "uploadSeconds": 0.183142393, + "downloadSeconds": 0.000021052 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192158684, - "downloadSeconds": 0.000023581 + "uploadSeconds": 0.184955497, + "downloadSeconds": 0.000020846 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182266809, - "downloadSeconds": 0.00002149 + "uploadSeconds": 0.189237981, + "downloadSeconds": 0.000027586 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184985228, - "downloadSeconds": 0.000020968 + "uploadSeconds": 0.19088234, + "downloadSeconds": 0.000023083 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191639946, - "downloadSeconds": 0.000031242 + "uploadSeconds": 0.181319211, + "downloadSeconds": 0.000023255 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.181595298, - "downloadSeconds": 0.000022569 + "uploadSeconds": 0.184472225, + "downloadSeconds": 0.000034077 } ], "implementation": "https", @@ -3010,504 +3010,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.249245346, - "uploadSeconds": 0.00000296, - "downloadSeconds": 0.121561847 + "connectionEstablishedSeconds": 0.187265924, + "uploadSeconds": 0.000003363, + "downloadSeconds": 0.062154144 }, { - "connectionEstablishedSeconds": 0.255001237, - "uploadSeconds": 0.000003556, - "downloadSeconds": 0.125212686 + "connectionEstablishedSeconds": 0.189557176, + "uploadSeconds": 0.000006487, + "downloadSeconds": 0.062203288 }, { - "connectionEstablishedSeconds": 0.255493913, - "uploadSeconds": 0.000003514, - "downloadSeconds": 0.063117853 + "connectionEstablishedSeconds": 0.183024286, + "uploadSeconds": 0.000003387, + "downloadSeconds": 0.060029314 }, { - "connectionEstablishedSeconds": 0.262519463, - "uploadSeconds": 0.000003092, - "downloadSeconds": 0.129294372 + "connectionEstablishedSeconds": 0.196939115, + "uploadSeconds": 0.000003342, + "downloadSeconds": 0.064670246 }, { - "connectionEstablishedSeconds": 0.239658021, - "uploadSeconds": 0.000003293, - "downloadSeconds": 0.11715543 + "connectionEstablishedSeconds": 0.187845645, + "uploadSeconds": 0.000003119, + "downloadSeconds": 0.061806415 }, { - "connectionEstablishedSeconds": 0.263939584, - "uploadSeconds": 0.000003054, - "downloadSeconds": 0.064954231 + "connectionEstablishedSeconds": 0.183480618, + "uploadSeconds": 0.000004217, + "downloadSeconds": 0.060140849 }, { - "connectionEstablishedSeconds": 0.251204172, - "uploadSeconds": 0.000003244, - "downloadSeconds": 0.062123993 + "connectionEstablishedSeconds": 0.194091737, + "uploadSeconds": 0.000003398, + "downloadSeconds": 0.063641913 }, { - "connectionEstablishedSeconds": 0.259751512, - "uploadSeconds": 0.000004006, - "downloadSeconds": 0.127990905 + "connectionEstablishedSeconds": 0.192041679, + "uploadSeconds": 0.000003277, + "downloadSeconds": 0.063566373 }, { - "connectionEstablishedSeconds": 0.237142565, - "uploadSeconds": 0.000003207, - "downloadSeconds": 0.058597937 + "connectionEstablishedSeconds": 0.191750568, + "uploadSeconds": 0.000004094, + "downloadSeconds": 0.06306795 }, { - "connectionEstablishedSeconds": 0.248714979, - "uploadSeconds": 0.000003286, - "downloadSeconds": 0.06106676 + "connectionEstablishedSeconds": 0.196661034, + "uploadSeconds": 0.000003638, + "downloadSeconds": 0.064597793 }, { - "connectionEstablishedSeconds": 0.252705849, - "uploadSeconds": 0.00000327, - "downloadSeconds": 0.124599556 + "connectionEstablishedSeconds": 0.192399151, + "uploadSeconds": 0.000003287, + "downloadSeconds": 0.063717409 }, { - "connectionEstablishedSeconds": 0.246962278, - "uploadSeconds": 0.000003538, - "downloadSeconds": 0.121470347 + "connectionEstablishedSeconds": 0.194512523, + "uploadSeconds": 0.000003305, + "downloadSeconds": 0.063794327 }, { - "connectionEstablishedSeconds": 0.253085008, - "uploadSeconds": 0.000003344, - "downloadSeconds": 0.062264437 + "connectionEstablishedSeconds": 0.190643887, + "uploadSeconds": 0.000003297, + "downloadSeconds": 0.063321458 }, { - "connectionEstablishedSeconds": 0.245111484, - "uploadSeconds": 0.000002724, - "downloadSeconds": 0.120523806 + "connectionEstablishedSeconds": 0.191925632, + "uploadSeconds": 0.000003153, + "downloadSeconds": 0.062927302 }, { - "connectionEstablishedSeconds": 0.242808553, - "uploadSeconds": 0.00000674, - "downloadSeconds": 0.061028522 + "connectionEstablishedSeconds": 0.193221353, + "uploadSeconds": 0.000003628, + "downloadSeconds": 0.063378233 }, { - "connectionEstablishedSeconds": 0.247597565, - "uploadSeconds": 0.000003013, - "downloadSeconds": 0.121020036 + "connectionEstablishedSeconds": 0.191420507, + "uploadSeconds": 0.000003297, + "downloadSeconds": 0.062854803 }, { - "connectionEstablishedSeconds": 0.250210602, - "uploadSeconds": 0.000003549, - "downloadSeconds": 0.123252958 + "connectionEstablishedSeconds": 0.177621185, + "uploadSeconds": 0.000004143, + "downloadSeconds": 0.058236693 }, { - "connectionEstablishedSeconds": 0.26000532, - "uploadSeconds": 0.000002986, - "downloadSeconds": 0.127196999 + "connectionEstablishedSeconds": 0.186026405, + "uploadSeconds": 0.00000371, + "downloadSeconds": 0.061038859 }, { - "connectionEstablishedSeconds": 0.255290376, - "uploadSeconds": 0.000003333, - "downloadSeconds": 0.062675862 + "connectionEstablishedSeconds": 0.187867362, + "uploadSeconds": 0.000003418, + "downloadSeconds": 0.062196985 }, { - "connectionEstablishedSeconds": 0.253008209, - "uploadSeconds": 0.000002933, - "downloadSeconds": 0.062583056 + "connectionEstablishedSeconds": 0.195457825, + "uploadSeconds": 0.000003426, + "downloadSeconds": 0.063899168 }, { - "connectionEstablishedSeconds": 0.247708643, - "uploadSeconds": 0.000003901, - "downloadSeconds": 0.061294321 + "connectionEstablishedSeconds": 0.188626728, + "uploadSeconds": 0.00000324, + "downloadSeconds": 0.06187622 }, { - "connectionEstablishedSeconds": 0.244514103, - "uploadSeconds": 0.0000027, - "downloadSeconds": 0.120299674 + "connectionEstablishedSeconds": 0.190810988, + "uploadSeconds": 0.000003275, + "downloadSeconds": 0.063101919 }, { - "connectionEstablishedSeconds": 0.25041742, - "uploadSeconds": 0.000002909, - "downloadSeconds": 0.061566587 + "connectionEstablishedSeconds": 0.192989026, + "uploadSeconds": 0.000002992, + "downloadSeconds": 0.063853567 }, { - "connectionEstablishedSeconds": 0.257779055, - "uploadSeconds": 0.000003455, - "downloadSeconds": 0.063430914 + "connectionEstablishedSeconds": 0.189992784, + "uploadSeconds": 0.000003782, + "downloadSeconds": 0.062369201 }, { - "connectionEstablishedSeconds": 0.255153072, - "uploadSeconds": 0.000002986, - "downloadSeconds": 0.124803856 + "connectionEstablishedSeconds": 0.194293407, + "uploadSeconds": 0.000003116, + "downloadSeconds": 0.063669453 }, { - "connectionEstablishedSeconds": 0.251417501, - "uploadSeconds": 0.000002544, - "downloadSeconds": 0.123507998 + "connectionEstablishedSeconds": 0.190904301, + "uploadSeconds": 0.000004374, + "downloadSeconds": 0.062676162 }, { - "connectionEstablishedSeconds": 0.255067874, - "uploadSeconds": 0.000004773, - "downloadSeconds": 0.124714757 + "connectionEstablishedSeconds": 0.195879226, + "uploadSeconds": 0.000004131, + "downloadSeconds": 0.064389181 }, { - "connectionEstablishedSeconds": 0.250682459, - "uploadSeconds": 0.000002462, - "downloadSeconds": 0.123496965 + "connectionEstablishedSeconds": 0.193824536, + "uploadSeconds": 0.000004093, + "downloadSeconds": 0.063465764 }, { - "connectionEstablishedSeconds": 0.252774065, - "uploadSeconds": 0.000003628, - "downloadSeconds": 0.12445596 + "connectionEstablishedSeconds": 0.188027247, + "uploadSeconds": 0.000002917, + "downloadSeconds": 0.062328405 }, { - "connectionEstablishedSeconds": 0.242569309, - "uploadSeconds": 0.00000305, - "downloadSeconds": 0.119429712 + "connectionEstablishedSeconds": 0.195207956, + "uploadSeconds": 0.000003012, + "downloadSeconds": 0.064754265 }, { - "connectionEstablishedSeconds": 0.25479327, - "uploadSeconds": 0.000002861, - "downloadSeconds": 0.124930819 + "connectionEstablishedSeconds": 0.190079317, + "uploadSeconds": 0.000004124, + "downloadSeconds": 0.062940938 }, { - "connectionEstablishedSeconds": 0.262770298, - "uploadSeconds": 0.000003423, - "downloadSeconds": 0.128763607 + "connectionEstablishedSeconds": 0.19125065, + "uploadSeconds": 0.000003096, + "downloadSeconds": 0.063017625 }, { - "connectionEstablishedSeconds": 0.25458649, - "uploadSeconds": 0.000002688, - "downloadSeconds": 0.062457767 + "connectionEstablishedSeconds": 0.189269514, + "uploadSeconds": 0.000003286, + "downloadSeconds": 0.062708315 }, { - "connectionEstablishedSeconds": 0.256087871, - "uploadSeconds": 0.000002748, - "downloadSeconds": 0.063382841 + "connectionEstablishedSeconds": 0.190415547, + "uploadSeconds": 0.000003906, + "downloadSeconds": 0.063148976 }, { - "connectionEstablishedSeconds": 0.256214858, - "uploadSeconds": 0.000002543, - "downloadSeconds": 0.125334307 + "connectionEstablishedSeconds": 0.187764982, + "uploadSeconds": 0.000003329, + "downloadSeconds": 0.061561417 }, { - "connectionEstablishedSeconds": 0.251170968, - "uploadSeconds": 0.000003289, - "downloadSeconds": 0.122626514 + "connectionEstablishedSeconds": 0.184668878, + "uploadSeconds": 0.000003093, + "downloadSeconds": 0.060799904 }, { - "connectionEstablishedSeconds": 0.248462896, - "uploadSeconds": 0.000003834, - "downloadSeconds": 0.121314707 + "connectionEstablishedSeconds": 0.178886012, + "uploadSeconds": 0.000003475, + "downloadSeconds": 0.058630013 }, { - "connectionEstablishedSeconds": 0.24983303, - "uploadSeconds": 0.000004495, - "downloadSeconds": 0.061233358 + "connectionEstablishedSeconds": 0.187124831, + "uploadSeconds": 0.000003911, + "downloadSeconds": 0.061490874 }, { - "connectionEstablishedSeconds": 0.252475751, - "uploadSeconds": 0.00000231, - "downloadSeconds": 0.0619883 + "connectionEstablishedSeconds": 0.191519886, + "uploadSeconds": 0.000003354, + "downloadSeconds": 0.06284 }, { - "connectionEstablishedSeconds": 0.246931961, - "uploadSeconds": 0.000002906, - "downloadSeconds": 0.121586692 + "connectionEstablishedSeconds": 0.183677331, + "uploadSeconds": 0.000003329, + "downloadSeconds": 0.060895723 }, { - "connectionEstablishedSeconds": 0.256214885, - "uploadSeconds": 0.000003494, - "downloadSeconds": 0.063429564 + "connectionEstablishedSeconds": 0.193609607, + "uploadSeconds": 0.000003424, + "downloadSeconds": 0.063463555 }, { - "connectionEstablishedSeconds": 0.251583325, - "uploadSeconds": 0.000002817, - "downloadSeconds": 0.122880352 + "connectionEstablishedSeconds": 0.190345657, + "uploadSeconds": 0.000004193, + "downloadSeconds": 0.062501922 }, { - "connectionEstablishedSeconds": 0.250357669, - "uploadSeconds": 0.000003612, - "downloadSeconds": 0.122302384 + "connectionEstablishedSeconds": 0.189962975, + "uploadSeconds": 0.000003208, + "downloadSeconds": 0.06288207 }, { - "connectionEstablishedSeconds": 0.251177488, - "uploadSeconds": 0.000003209, - "downloadSeconds": 0.061720037 + "connectionEstablishedSeconds": 0.187529507, + "uploadSeconds": 0.000003354, + "downloadSeconds": 0.061472793 }, { - "connectionEstablishedSeconds": 0.247782307, - "uploadSeconds": 0.000003204, - "downloadSeconds": 0.060884679 + "connectionEstablishedSeconds": 0.187134544, + "uploadSeconds": 0.000006123, + "downloadSeconds": 0.061314985 }, { - "connectionEstablishedSeconds": 0.256522029, - "uploadSeconds": 0.000003026, - "downloadSeconds": 0.063025502 + "connectionEstablishedSeconds": 0.197905948, + "uploadSeconds": 0.000003685, + "downloadSeconds": 0.065034712 }, { - "connectionEstablishedSeconds": 0.2581133, - "uploadSeconds": 0.000003568, - "downloadSeconds": 0.063403142 + "connectionEstablishedSeconds": 0.177555793, + "uploadSeconds": 0.000003361, + "downloadSeconds": 0.058861411 }, { - "connectionEstablishedSeconds": 0.255397506, - "uploadSeconds": 0.000003247, - "downloadSeconds": 0.062614623 + "connectionEstablishedSeconds": 0.191306735, + "uploadSeconds": 0.000017854, + "downloadSeconds": 0.064192984 }, { - "connectionEstablishedSeconds": 0.250827674, - "uploadSeconds": 0.000002441, - "downloadSeconds": 0.062131295 + "connectionEstablishedSeconds": 0.196022343, + "uploadSeconds": 0.000003263, + "downloadSeconds": 0.065029693 }, { - "connectionEstablishedSeconds": 0.260419165, - "uploadSeconds": 0.000002946, - "downloadSeconds": 0.064479165 + "connectionEstablishedSeconds": 0.193764388, + "uploadSeconds": 0.000003303, + "downloadSeconds": 0.063631364 }, { - "connectionEstablishedSeconds": 0.254314157, - "uploadSeconds": 0.000002467, - "downloadSeconds": 0.062572004 + "connectionEstablishedSeconds": 0.196818543, + "uploadSeconds": 0.0000033, + "downloadSeconds": 0.064576233 }, { - "connectionEstablishedSeconds": 0.254128659, - "uploadSeconds": 0.000002564, - "downloadSeconds": 0.062426829 + "connectionEstablishedSeconds": 0.176810816, + "uploadSeconds": 0.000002908, + "downloadSeconds": 0.058414157 }, { - "connectionEstablishedSeconds": 0.245706256, - "uploadSeconds": 0.000002984, - "downloadSeconds": 0.120957054 + "connectionEstablishedSeconds": 0.192276585, + "uploadSeconds": 0.000003158, + "downloadSeconds": 0.06325269 }, { - "connectionEstablishedSeconds": 0.254524756, - "uploadSeconds": 0.000003012, - "downloadSeconds": 0.125632302 + "connectionEstablishedSeconds": 0.194074023, + "uploadSeconds": 0.000028356, + "downloadSeconds": 0.063717898 }, { - "connectionEstablishedSeconds": 0.253064463, - "uploadSeconds": 0.000003616, - "downloadSeconds": 0.062562906 + "connectionEstablishedSeconds": 0.193206952, + "uploadSeconds": 0.000003765, + "downloadSeconds": 0.0635352 }, { - "connectionEstablishedSeconds": 0.244652507, - "uploadSeconds": 0.000002662, - "downloadSeconds": 0.060147963 + "connectionEstablishedSeconds": 0.190057792, + "uploadSeconds": 0.000003348, + "downloadSeconds": 0.062436626 }, { - "connectionEstablishedSeconds": 0.239427924, - "uploadSeconds": 0.00000321, - "downloadSeconds": 0.059177905 + "connectionEstablishedSeconds": 0.18784935, + "uploadSeconds": 0.000003782, + "downloadSeconds": 0.061669523 }, { - "connectionEstablishedSeconds": 0.252719182, - "uploadSeconds": 0.000003279, - "downloadSeconds": 0.124140527 + "connectionEstablishedSeconds": 0.198006008, + "uploadSeconds": 0.000003444, + "downloadSeconds": 0.065708426 }, { - "connectionEstablishedSeconds": 0.257588139, - "uploadSeconds": 0.000002645, - "downloadSeconds": 0.125933391 + "connectionEstablishedSeconds": 0.188476641, + "uploadSeconds": 0.0000039, + "downloadSeconds": 0.062462671 }, { - "connectionEstablishedSeconds": 0.252102214, - "uploadSeconds": 0.000006192, - "downloadSeconds": 0.123975867 + "connectionEstablishedSeconds": 0.182203575, + "uploadSeconds": 0.000003323, + "downloadSeconds": 0.060250246 }, { - "connectionEstablishedSeconds": 0.253004302, - "uploadSeconds": 0.000003238, - "downloadSeconds": 0.124329359 + "connectionEstablishedSeconds": 0.19490573, + "uploadSeconds": 0.000003738, + "downloadSeconds": 0.064006097 }, { - "connectionEstablishedSeconds": 0.25355254, - "uploadSeconds": 0.000002346, - "downloadSeconds": 0.062167782 + "connectionEstablishedSeconds": 0.185335964, + "uploadSeconds": 0.000003142, + "downloadSeconds": 0.06146971 }, { - "connectionEstablishedSeconds": 0.25529043, - "uploadSeconds": 0.000002785, - "downloadSeconds": 0.125672486 + "connectionEstablishedSeconds": 0.183792864, + "uploadSeconds": 0.000003206, + "downloadSeconds": 0.060305569 }, { - "connectionEstablishedSeconds": 0.261358525, + "connectionEstablishedSeconds": 0.19713591, "uploadSeconds": 0.000003169, - "downloadSeconds": 0.064202778 + "downloadSeconds": 0.065241664 }, { - "connectionEstablishedSeconds": 0.252931623, - "uploadSeconds": 0.000002846, - "downloadSeconds": 0.062165412 + "connectionEstablishedSeconds": 0.184555929, + "uploadSeconds": 0.000003789, + "downloadSeconds": 0.060342486 }, { - "connectionEstablishedSeconds": 0.250908525, - "uploadSeconds": 0.00000366, - "downloadSeconds": 0.123585083 + "connectionEstablishedSeconds": 0.191511875, + "uploadSeconds": 0.000002978, + "downloadSeconds": 0.063331886 }, { - "connectionEstablishedSeconds": 0.239730221, - "uploadSeconds": 0.000004546, - "downloadSeconds": 0.059308537 + "connectionEstablishedSeconds": 0.190624737, + "uploadSeconds": 0.000004287, + "downloadSeconds": 0.063210077 }, { - "connectionEstablishedSeconds": 0.261532696, - "uploadSeconds": 0.000002939, - "downloadSeconds": 0.064289014 + "connectionEstablishedSeconds": 0.194129578, + "uploadSeconds": 0.000004907, + "downloadSeconds": 0.064407992 }, { - "connectionEstablishedSeconds": 0.262379988, - "uploadSeconds": 0.000003347, - "downloadSeconds": 0.128376121 + "connectionEstablishedSeconds": 0.195752646, + "uploadSeconds": 0.000003319, + "downloadSeconds": 0.064317242 }, { - "connectionEstablishedSeconds": 0.24577322, - "uploadSeconds": 0.000002674, - "downloadSeconds": 0.060370727 + "connectionEstablishedSeconds": 0.19257992, + "uploadSeconds": 0.000003625, + "downloadSeconds": 0.063064308 }, { - "connectionEstablishedSeconds": 0.256765835, - "uploadSeconds": 0.000002505, - "downloadSeconds": 0.062955219 + "connectionEstablishedSeconds": 0.189536779, + "uploadSeconds": 0.000004356, + "downloadSeconds": 0.062742188 }, { - "connectionEstablishedSeconds": 0.257241877, - "uploadSeconds": 0.000003493, - "downloadSeconds": 0.063194058 + "connectionEstablishedSeconds": 0.188275419, + "uploadSeconds": 0.000003002, + "downloadSeconds": 0.062369722 }, { - "connectionEstablishedSeconds": 0.248561426, - "uploadSeconds": 0.000003504, - "downloadSeconds": 0.122268394 + "connectionEstablishedSeconds": 0.186185139, + "uploadSeconds": 0.000003817, + "downloadSeconds": 0.06109316 }, { - "connectionEstablishedSeconds": 0.253010123, - "uploadSeconds": 0.000003472, - "downloadSeconds": 0.123747352 + "connectionEstablishedSeconds": 0.184696604, + "uploadSeconds": 0.000003261, + "downloadSeconds": 0.060609072 }, { - "connectionEstablishedSeconds": 0.253802696, - "uploadSeconds": 0.000002907, - "downloadSeconds": 0.124984447 + "connectionEstablishedSeconds": 0.196722355, + "uploadSeconds": 0.000003351, + "downloadSeconds": 0.064479896 }, { - "connectionEstablishedSeconds": 0.259985353, - "uploadSeconds": 0.00000264, - "downloadSeconds": 0.126950708 + "connectionEstablishedSeconds": 0.191478022, + "uploadSeconds": 0.000003218, + "downloadSeconds": 0.063413269 }, { - "connectionEstablishedSeconds": 0.253068745, - "uploadSeconds": 0.000003457, - "downloadSeconds": 0.123640609 + "connectionEstablishedSeconds": 0.187673152, + "uploadSeconds": 0.000004551, + "downloadSeconds": 0.062067971 }, { - "connectionEstablishedSeconds": 0.262131372, - "uploadSeconds": 0.000002891, - "downloadSeconds": 0.064446604 + "connectionEstablishedSeconds": 0.193827421, + "uploadSeconds": 0.000003475, + "downloadSeconds": 0.06433508 }, { - "connectionEstablishedSeconds": 0.249052514, - "uploadSeconds": 0.000002669, - "downloadSeconds": 0.06125365 + "connectionEstablishedSeconds": 0.192151163, + "uploadSeconds": 0.000003606, + "downloadSeconds": 0.06354583 }, { - "connectionEstablishedSeconds": 0.248160319, - "uploadSeconds": 0.000003478, - "downloadSeconds": 0.061321695 + "connectionEstablishedSeconds": 0.191935843, + "uploadSeconds": 0.000008481, + "downloadSeconds": 0.06291483 }, { - "connectionEstablishedSeconds": 0.245016941, - "uploadSeconds": 0.000002873, - "downloadSeconds": 0.120366382 + "connectionEstablishedSeconds": 0.185985133, + "uploadSeconds": 0.00000336, + "downloadSeconds": 0.060967739 }, { - "connectionEstablishedSeconds": 0.249254663, - "uploadSeconds": 0.000002424, - "downloadSeconds": 0.121647486 + "connectionEstablishedSeconds": 0.195609673, + "uploadSeconds": 0.000003403, + "downloadSeconds": 0.064748252 }, { - "connectionEstablishedSeconds": 0.258669135, - "uploadSeconds": 0.000002826, - "downloadSeconds": 0.063624543 + "connectionEstablishedSeconds": 0.188223984, + "uploadSeconds": 0.000003478, + "downloadSeconds": 0.061775663 }, { - "connectionEstablishedSeconds": 0.250078193, - "uploadSeconds": 0.000003163, - "downloadSeconds": 0.123107871 + "connectionEstablishedSeconds": 0.194433271, + "uploadSeconds": 0.000003335, + "downloadSeconds": 0.06381819 }, { - "connectionEstablishedSeconds": 0.252085442, - "uploadSeconds": 0.000003074, - "downloadSeconds": 0.123198762 + "connectionEstablishedSeconds": 0.192984602, + "uploadSeconds": 0.000009887, + "downloadSeconds": 0.06334622 }, { - "connectionEstablishedSeconds": 0.256262807, - "uploadSeconds": 0.000003253, - "downloadSeconds": 0.125268654 + "connectionEstablishedSeconds": 0.192388961, + "uploadSeconds": 0.00000345, + "downloadSeconds": 0.063253286 }, { - "connectionEstablishedSeconds": 0.249110627, - "uploadSeconds": 0.000003228, - "downloadSeconds": 0.061307267 + "connectionEstablishedSeconds": 0.191417727, + "uploadSeconds": 0.000004113, + "downloadSeconds": 0.063491585 }, { - "connectionEstablishedSeconds": 0.25866579, - "uploadSeconds": 0.000002871, - "downloadSeconds": 0.126626551 + "connectionEstablishedSeconds": 0.189679397, + "uploadSeconds": 0.000003253, + "downloadSeconds": 0.062184388 }, { - "connectionEstablishedSeconds": 0.258809684, - "uploadSeconds": 0.000003657, - "downloadSeconds": 0.126692366 + "connectionEstablishedSeconds": 0.193117883, + "uploadSeconds": 0.000003131, + "downloadSeconds": 0.063380846 }, { - "connectionEstablishedSeconds": 0.253232103, - "uploadSeconds": 0.000003714, - "downloadSeconds": 0.123766291 + "connectionEstablishedSeconds": 0.198822172, + "uploadSeconds": 0.000003281, + "downloadSeconds": 0.06583434 }, { - "connectionEstablishedSeconds": 0.252618679, - "uploadSeconds": 0.0000028, - "downloadSeconds": 0.123498014 + "connectionEstablishedSeconds": 0.194338454, + "uploadSeconds": 0.000003423, + "downloadSeconds": 0.063830621 }, { - "connectionEstablishedSeconds": 0.254677234, - "uploadSeconds": 0.000002662, - "downloadSeconds": 0.12447656 + "connectionEstablishedSeconds": 0.183162377, + "uploadSeconds": 0.00000359, + "downloadSeconds": 0.06064044 }, { - "connectionEstablishedSeconds": 0.262513097, - "uploadSeconds": 0.0000044, - "downloadSeconds": 0.128426478 + "connectionEstablishedSeconds": 0.185396487, + "uploadSeconds": 0.000003061, + "downloadSeconds": 0.060731449 }, { - "connectionEstablishedSeconds": 0.259310403, - "uploadSeconds": 0.00000267, - "downloadSeconds": 0.127596938 + "connectionEstablishedSeconds": 0.191415236, + "uploadSeconds": 0.000003353, + "downloadSeconds": 0.063384523 }, { - "connectionEstablishedSeconds": 0.253873333, - "uploadSeconds": 0.000003398, - "downloadSeconds": 0.124047259 + "connectionEstablishedSeconds": 0.190619261, + "uploadSeconds": 0.000003132, + "downloadSeconds": 0.063068455 }, { - "connectionEstablishedSeconds": 0.25501728, - "uploadSeconds": 0.000002983, - "downloadSeconds": 0.125714344 + "connectionEstablishedSeconds": 0.194471485, + "uploadSeconds": 0.000002969, + "downloadSeconds": 0.064423235 }, { - "connectionEstablishedSeconds": 0.255689264, - "uploadSeconds": 0.000005103, - "downloadSeconds": 0.06329916 + "connectionEstablishedSeconds": 0.188817858, + "uploadSeconds": 0.000003669, + "downloadSeconds": 0.061856513 }, { - "connectionEstablishedSeconds": 0.255763735, - "uploadSeconds": 0.000002883, - "downloadSeconds": 0.063039447 + "connectionEstablishedSeconds": 0.183555378, + "uploadSeconds": 0.000005259, + "downloadSeconds": 0.060761592 }, { - "connectionEstablishedSeconds": 0.263646145, - "uploadSeconds": 0.000003715, - "downloadSeconds": 0.064778216 + "connectionEstablishedSeconds": 0.188950417, + "uploadSeconds": 0.000003292, + "downloadSeconds": 0.062089214 }, { - "connectionEstablishedSeconds": 0.247384525, - "uploadSeconds": 0.000003402, - "downloadSeconds": 0.060685597 + "connectionEstablishedSeconds": 0.186506121, + "uploadSeconds": 0.000004426, + "downloadSeconds": 0.061217405 } ], "implementation": "go-libp2p", @@ -3517,504 +3517,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.126151651, - "uploadSeconds": 0.000002349, - "downloadSeconds": 0.060111794 + "connectionEstablishedSeconds": 0.063853531, + "uploadSeconds": 0.000002147, + "downloadSeconds": 0.061903846 }, { - "connectionEstablishedSeconds": 0.129204824, - "uploadSeconds": 0.000001809, - "downloadSeconds": 0.062814464 + "connectionEstablishedSeconds": 0.064982901, + "uploadSeconds": 0.000002321, + "downloadSeconds": 0.061408073 }, { - "connectionEstablishedSeconds": 0.12989484, - "uploadSeconds": 0.000001788, - "downloadSeconds": 0.062263664 + "connectionEstablishedSeconds": 0.065961812, + "uploadSeconds": 0.000001949, + "downloadSeconds": 0.063958454 }, { - "connectionEstablishedSeconds": 0.128827356, - "uploadSeconds": 0.000001937, - "downloadSeconds": 0.062755559 + "connectionEstablishedSeconds": 0.070058086, + "uploadSeconds": 0.000002079, + "downloadSeconds": 0.067094922 }, { - "connectionEstablishedSeconds": 0.128097527, - "uploadSeconds": 0.000002064, - "downloadSeconds": 0.061263379 + "connectionEstablishedSeconds": 0.065052069, + "uploadSeconds": 0.000002384, + "downloadSeconds": 0.061295116 }, { - "connectionEstablishedSeconds": 0.13534984, - "uploadSeconds": 0.000002196, - "downloadSeconds": 0.064960528 + "connectionEstablishedSeconds": 0.065195841, + "uploadSeconds": 0.000002264, + "downloadSeconds": 0.063325662 }, { - "connectionEstablishedSeconds": 0.121873491, - "uploadSeconds": 0.000002012, - "downloadSeconds": 0.058282537 + "connectionEstablishedSeconds": 0.066803352, + "uploadSeconds": 0.000002064, + "downloadSeconds": 0.063079582 }, { - "connectionEstablishedSeconds": 0.127685139, - "uploadSeconds": 0.000002091, - "downloadSeconds": 0.061119046 + "connectionEstablishedSeconds": 0.067422036, + "uploadSeconds": 0.000002035, + "downloadSeconds": 0.0636488 }, { - "connectionEstablishedSeconds": 0.122078139, - "uploadSeconds": 0.000002417, - "downloadSeconds": 0.059363629 + "connectionEstablishedSeconds": 0.066899127, + "uploadSeconds": 0.000002832, + "downloadSeconds": 0.063135269 }, { - "connectionEstablishedSeconds": 0.130700124, - "uploadSeconds": 0.000001939, - "downloadSeconds": 0.063635433 + "connectionEstablishedSeconds": 0.065792178, + "uploadSeconds": 0.000002077, + "downloadSeconds": 0.062246279 }, { - "connectionEstablishedSeconds": 0.132067528, - "uploadSeconds": 0.000002014, - "downloadSeconds": 0.063457557 + "connectionEstablishedSeconds": 0.063350798, + "uploadSeconds": 0.000002209, + "downloadSeconds": 0.061342022 }, { - "connectionEstablishedSeconds": 0.127849632, - "uploadSeconds": 0.000002033, - "downloadSeconds": 0.06217967 + "connectionEstablishedSeconds": 0.067943277, + "uploadSeconds": 0.000001636, + "downloadSeconds": 0.064165736 }, { - "connectionEstablishedSeconds": 0.12674816, - "uploadSeconds": 0.000002177, - "downloadSeconds": 0.06158331 + "connectionEstablishedSeconds": 0.065498156, + "uploadSeconds": 0.000001983, + "downloadSeconds": 0.063615849 }, { - "connectionEstablishedSeconds": 0.127379142, - "uploadSeconds": 0.000001916, - "downloadSeconds": 0.061885807 + "connectionEstablishedSeconds": 0.063746753, + "uploadSeconds": 0.000003141, + "downloadSeconds": 0.061706192 }, { - "connectionEstablishedSeconds": 0.133760878, - "uploadSeconds": 0.000001692, - "downloadSeconds": 0.064240901 + "connectionEstablishedSeconds": 0.064723996, + "uploadSeconds": 0.00000233, + "downloadSeconds": 0.062873571 }, { - "connectionEstablishedSeconds": 0.130580764, - "uploadSeconds": 0.000002045, - "downloadSeconds": 0.062521174 + "connectionEstablishedSeconds": 0.064921098, + "uploadSeconds": 0.000020849, + "downloadSeconds": 0.063130592 }, { - "connectionEstablishedSeconds": 0.132804107, - "uploadSeconds": 0.000001886, - "downloadSeconds": 0.063699769 + "connectionEstablishedSeconds": 0.067853394, + "uploadSeconds": 0.000002141, + "downloadSeconds": 0.063972579 }, { - "connectionEstablishedSeconds": 0.135148122, - "uploadSeconds": 0.000002012, - "downloadSeconds": 0.064907714 + "connectionEstablishedSeconds": 0.063701565, + "uploadSeconds": 0.000002394, + "downloadSeconds": 0.061574609 }, { - "connectionEstablishedSeconds": 0.127619559, - "uploadSeconds": 0.000002245, - "downloadSeconds": 0.062083015 + "connectionEstablishedSeconds": 0.067492406, + "uploadSeconds": 0.000002183, + "downloadSeconds": 0.063669215 }, { - "connectionEstablishedSeconds": 0.125278543, - "uploadSeconds": 0.000003326, - "downloadSeconds": 0.060073059 + "connectionEstablishedSeconds": 0.063868952, + "uploadSeconds": 0.000002008, + "downloadSeconds": 0.062071297 }, { - "connectionEstablishedSeconds": 0.12249927, - "uploadSeconds": 0.000002011, - "downloadSeconds": 0.058580595 + "connectionEstablishedSeconds": 0.066077904, + "uploadSeconds": 0.000001883, + "downloadSeconds": 0.064159921 }, { - "connectionEstablishedSeconds": 0.127263622, - "uploadSeconds": 0.00000272, - "downloadSeconds": 0.06196458 + "connectionEstablishedSeconds": 0.065112524, + "uploadSeconds": 0.000002018, + "downloadSeconds": 0.061445425 }, { - "connectionEstablishedSeconds": 0.130274289, - "uploadSeconds": 0.00000195, - "downloadSeconds": 0.06272686 + "connectionEstablishedSeconds": 0.066551635, + "uploadSeconds": 0.000001943, + "downloadSeconds": 0.062937389 }, { - "connectionEstablishedSeconds": 0.133296573, - "uploadSeconds": 0.000002144, - "downloadSeconds": 0.063984271 + "connectionEstablishedSeconds": 0.064780169, + "uploadSeconds": 0.000001746, + "downloadSeconds": 0.061306276 }, { - "connectionEstablishedSeconds": 0.129793246, - "uploadSeconds": 0.000002559, - "downloadSeconds": 0.062174156 + "connectionEstablishedSeconds": 0.066465614, + "uploadSeconds": 0.000003093, + "downloadSeconds": 0.065517295 }, { - "connectionEstablishedSeconds": 0.13073093, - "uploadSeconds": 0.000001964, - "downloadSeconds": 0.062727683 + "connectionEstablishedSeconds": 0.063794166, + "uploadSeconds": 0.000003571, + "downloadSeconds": 0.061647819 }, { - "connectionEstablishedSeconds": 0.125902941, - "uploadSeconds": 0.000002129, - "downloadSeconds": 0.060313342 + "connectionEstablishedSeconds": 0.063356582, + "uploadSeconds": 0.000002864, + "downloadSeconds": 0.061416973 }, { - "connectionEstablishedSeconds": 0.131097742, - "uploadSeconds": 0.000001799, - "downloadSeconds": 0.062803515 + "connectionEstablishedSeconds": 0.064958744, + "uploadSeconds": 0.000008552, + "downloadSeconds": 0.061439026 }, { - "connectionEstablishedSeconds": 0.133414071, - "uploadSeconds": 0.00000183, - "downloadSeconds": 0.063613039 + "connectionEstablishedSeconds": 0.066975692, + "uploadSeconds": 0.00000256, + "downloadSeconds": 0.063151967 }, { - "connectionEstablishedSeconds": 0.132653783, - "uploadSeconds": 0.000001957, - "downloadSeconds": 0.063574125 + "connectionEstablishedSeconds": 0.066554911, + "uploadSeconds": 0.000004909, + "downloadSeconds": 0.064505998 }, { - "connectionEstablishedSeconds": 0.129110969, - "uploadSeconds": 0.000002654, - "downloadSeconds": 0.061835123 + "connectionEstablishedSeconds": 0.069351545, + "uploadSeconds": 0.000001972, + "downloadSeconds": 0.065523048 }, { - "connectionEstablishedSeconds": 0.125059968, - "uploadSeconds": 0.000002038, - "downloadSeconds": 0.059879328 + "connectionEstablishedSeconds": 0.067342819, + "uploadSeconds": 0.000002713, + "downloadSeconds": 0.063545465 }, { - "connectionEstablishedSeconds": 0.132621136, - "uploadSeconds": 0.000002239, - "downloadSeconds": 0.0646004 + "connectionEstablishedSeconds": 0.069139158, + "uploadSeconds": 0.000002075, + "downloadSeconds": 0.065241092 }, { - "connectionEstablishedSeconds": 0.133595619, - "uploadSeconds": 0.000002438, - "downloadSeconds": 0.064052479 + "connectionEstablishedSeconds": 0.064710306, + "uploadSeconds": 0.000001897, + "downloadSeconds": 0.061037498 }, { - "connectionEstablishedSeconds": 0.133692962, - "uploadSeconds": 0.000002297, - "downloadSeconds": 0.064047711 + "connectionEstablishedSeconds": 0.068369429, + "uploadSeconds": 0.000002043, + "downloadSeconds": 0.06492128 }, { - "connectionEstablishedSeconds": 0.127442752, - "uploadSeconds": 0.000002134, - "downloadSeconds": 0.061065899 + "connectionEstablishedSeconds": 0.068059504, + "uploadSeconds": 0.00000186, + "downloadSeconds": 0.064188367 }, { - "connectionEstablishedSeconds": 0.133307312, - "uploadSeconds": 0.000001909, - "downloadSeconds": 0.063937153 + "connectionEstablishedSeconds": 0.066030516, + "uploadSeconds": 0.000002005, + "downloadSeconds": 0.062195243 }, { - "connectionEstablishedSeconds": 0.131376194, - "uploadSeconds": 0.000001892, - "downloadSeconds": 0.063022383 + "connectionEstablishedSeconds": 0.062159714, + "uploadSeconds": 0.000002165, + "downloadSeconds": 0.060150927 }, { - "connectionEstablishedSeconds": 0.126447659, - "uploadSeconds": 0.0000022, - "downloadSeconds": 0.060481942 + "connectionEstablishedSeconds": 0.065208248, + "uploadSeconds": 0.000002206, + "downloadSeconds": 0.063135191 }, { - "connectionEstablishedSeconds": 0.127975402, - "uploadSeconds": 0.000002544, - "downloadSeconds": 0.062116593 + "connectionEstablishedSeconds": 0.065286705, + "uploadSeconds": 0.000002558, + "downloadSeconds": 0.063171598 }, { - "connectionEstablishedSeconds": 0.126821499, - "uploadSeconds": 0.000002165, - "downloadSeconds": 0.06072908 + "connectionEstablishedSeconds": 0.068470709, + "uploadSeconds": 0.000002386, + "downloadSeconds": 0.064698216 }, { - "connectionEstablishedSeconds": 0.128799428, - "uploadSeconds": 0.000002131, - "downloadSeconds": 0.061693083 + "connectionEstablishedSeconds": 0.063230961, + "uploadSeconds": 0.000002172, + "downloadSeconds": 0.05948708 }, { - "connectionEstablishedSeconds": 0.132309618, - "uploadSeconds": 0.00000198, - "downloadSeconds": 0.063466891 + "connectionEstablishedSeconds": 0.064312679, + "uploadSeconds": 0.00000246, + "downloadSeconds": 0.06252934 }, { - "connectionEstablishedSeconds": 0.126743105, - "uploadSeconds": 0.000002233, - "downloadSeconds": 0.061620339 + "connectionEstablishedSeconds": 0.066295193, + "uploadSeconds": 0.000002329, + "downloadSeconds": 0.062686328 }, { - "connectionEstablishedSeconds": 0.130026805, - "uploadSeconds": 0.000002218, - "downloadSeconds": 0.063172074 + "connectionEstablishedSeconds": 0.065746978, + "uploadSeconds": 0.000018708, + "downloadSeconds": 0.062202181 }, { - "connectionEstablishedSeconds": 0.130640115, - "uploadSeconds": 0.000002176, - "downloadSeconds": 0.062559726 + "connectionEstablishedSeconds": 0.065714765, + "uploadSeconds": 0.000002683, + "downloadSeconds": 0.063791958 }, { - "connectionEstablishedSeconds": 0.129337234, - "uploadSeconds": 0.000002072, - "downloadSeconds": 0.062073933 + "connectionEstablishedSeconds": 0.064226408, + "uploadSeconds": 0.000002094, + "downloadSeconds": 0.062257861 }, { - "connectionEstablishedSeconds": 0.130782968, - "uploadSeconds": 0.00000207, - "downloadSeconds": 0.063519826 + "connectionEstablishedSeconds": 0.068032673, + "uploadSeconds": 0.000003414, + "downloadSeconds": 0.064262246 }, { - "connectionEstablishedSeconds": 0.128617654, - "uploadSeconds": 0.000002426, - "downloadSeconds": 0.061714502 + "connectionEstablishedSeconds": 0.067097228, + "uploadSeconds": 0.000002003, + "downloadSeconds": 0.06329759 }, { - "connectionEstablishedSeconds": 0.131507993, - "uploadSeconds": 0.00000296, - "downloadSeconds": 0.063716424 + "connectionEstablishedSeconds": 0.06625451, + "uploadSeconds": 0.000002024, + "downloadSeconds": 0.062532233 }, { - "connectionEstablishedSeconds": 0.127081302, - "uploadSeconds": 0.00000212, - "downloadSeconds": 0.06169652 + "connectionEstablishedSeconds": 0.064510297, + "uploadSeconds": 0.000002254, + "downloadSeconds": 0.063151006 }, { - "connectionEstablishedSeconds": 0.130389179, - "uploadSeconds": 0.000002081, - "downloadSeconds": 0.062127935 + "connectionEstablishedSeconds": 0.068352644, + "uploadSeconds": 0.000008445, + "downloadSeconds": 0.064571904 }, { - "connectionEstablishedSeconds": 0.131200468, - "uploadSeconds": 0.000002234, - "downloadSeconds": 0.063621168 + "connectionEstablishedSeconds": 0.066602972, + "uploadSeconds": 0.000002182, + "downloadSeconds": 0.063109213 }, { - "connectionEstablishedSeconds": 0.132291424, - "uploadSeconds": 0.000001924, - "downloadSeconds": 0.063446517 + "connectionEstablishedSeconds": 0.067583783, + "uploadSeconds": 0.000002343, + "downloadSeconds": 0.063861056 }, { - "connectionEstablishedSeconds": 0.131338395, - "uploadSeconds": 0.000001864, - "downloadSeconds": 0.062883127 + "connectionEstablishedSeconds": 0.066546478, + "uploadSeconds": 0.000002032, + "downloadSeconds": 0.064617388 }, { - "connectionEstablishedSeconds": 0.132832946, - "uploadSeconds": 0.000002178, - "downloadSeconds": 0.064120672 + "connectionEstablishedSeconds": 0.065510554, + "uploadSeconds": 0.000003316, + "downloadSeconds": 0.061889018 }, { - "connectionEstablishedSeconds": 0.125112863, - "uploadSeconds": 0.000002234, - "downloadSeconds": 0.060819545 + "connectionEstablishedSeconds": 0.064845031, + "uploadSeconds": 0.000002076, + "downloadSeconds": 0.063807569 }, { - "connectionEstablishedSeconds": 0.129229344, - "uploadSeconds": 0.000001914, - "downloadSeconds": 0.061822645 + "connectionEstablishedSeconds": 0.0688521, + "uploadSeconds": 0.000003133, + "downloadSeconds": 0.065068437 }, { - "connectionEstablishedSeconds": 0.127488566, - "uploadSeconds": 0.000001963, - "downloadSeconds": 0.061016129 + "connectionEstablishedSeconds": 0.065013793, + "uploadSeconds": 0.000002318, + "downloadSeconds": 0.061350768 }, { - "connectionEstablishedSeconds": 0.131944067, - "uploadSeconds": 0.00000283, - "downloadSeconds": 0.063271008 + "connectionEstablishedSeconds": 0.066968385, + "uploadSeconds": 0.000002255, + "downloadSeconds": 0.063070469 }, { - "connectionEstablishedSeconds": 0.135384772, - "uploadSeconds": 0.00000214, - "downloadSeconds": 0.064847672 + "connectionEstablishedSeconds": 0.067112664, + "uploadSeconds": 0.000002597, + "downloadSeconds": 0.063252006 }, { - "connectionEstablishedSeconds": 0.124667496, - "uploadSeconds": 0.000002069, - "downloadSeconds": 0.06055079 + "connectionEstablishedSeconds": 0.064987554, + "uploadSeconds": 0.000001884, + "downloadSeconds": 0.063063868 }, { - "connectionEstablishedSeconds": 0.132800576, - "uploadSeconds": 0.000002034, - "downloadSeconds": 0.063699868 + "connectionEstablishedSeconds": 0.065967073, + "uploadSeconds": 0.000001956, + "downloadSeconds": 0.062305387 }, { - "connectionEstablishedSeconds": 0.133475009, - "uploadSeconds": 0.000002195, - "downloadSeconds": 0.064008758 + "connectionEstablishedSeconds": 0.067108387, + "uploadSeconds": 0.000001894, + "downloadSeconds": 0.063445272 }, { - "connectionEstablishedSeconds": 0.13164217, - "uploadSeconds": 0.000004093, - "downloadSeconds": 0.063046896 + "connectionEstablishedSeconds": 0.06431435, + "uploadSeconds": 0.000002059, + "downloadSeconds": 0.060717924 }, { - "connectionEstablishedSeconds": 0.130395177, - "uploadSeconds": 0.000002377, - "downloadSeconds": 0.063420146 + "connectionEstablishedSeconds": 0.064242159, + "uploadSeconds": 0.000002072, + "downloadSeconds": 0.060499344 }, { - "connectionEstablishedSeconds": 0.130376451, - "uploadSeconds": 0.000001854, - "downloadSeconds": 0.062517149 + "connectionEstablishedSeconds": 0.066464554, + "uploadSeconds": 0.000002076, + "downloadSeconds": 0.062726048 }, { - "connectionEstablishedSeconds": 0.124174265, - "uploadSeconds": 0.000002013, - "downloadSeconds": 0.059630293 + "connectionEstablishedSeconds": 0.062476705, + "uploadSeconds": 0.000001993, + "downloadSeconds": 0.060485389 }, { - "connectionEstablishedSeconds": 0.131321918, - "uploadSeconds": 0.000002109, - "downloadSeconds": 0.063847882 + "connectionEstablishedSeconds": 0.06673264, + "uploadSeconds": 0.000001825, + "downloadSeconds": 0.063061146 }, { - "connectionEstablishedSeconds": 0.12651402, - "uploadSeconds": 0.000001959, - "downloadSeconds": 0.061277022 + "connectionEstablishedSeconds": 0.064060397, + "uploadSeconds": 0.000001966, + "downloadSeconds": 0.062155527 }, { - "connectionEstablishedSeconds": 0.129392271, - "uploadSeconds": 0.000006552, - "downloadSeconds": 0.062017563 + "connectionEstablishedSeconds": 0.066088265, + "uploadSeconds": 0.000003092, + "downloadSeconds": 0.062378945 }, { - "connectionEstablishedSeconds": 0.125820688, - "uploadSeconds": 0.000002294, - "downloadSeconds": 0.060293214 + "connectionEstablishedSeconds": 0.068514481, + "uploadSeconds": 0.000002025, + "downloadSeconds": 0.0646085 }, { - "connectionEstablishedSeconds": 0.123559055, - "uploadSeconds": 0.000002293, - "downloadSeconds": 0.059092023 + "connectionEstablishedSeconds": 0.064719319, + "uploadSeconds": 0.000001894, + "downloadSeconds": 0.061031787 }, { - "connectionEstablishedSeconds": 0.12768245, - "uploadSeconds": 0.000001919, - "downloadSeconds": 0.061216962 + "connectionEstablishedSeconds": 0.06607192, + "uploadSeconds": 0.000002233, + "downloadSeconds": 0.06412077 }, { - "connectionEstablishedSeconds": 0.132155614, - "uploadSeconds": 0.000002231, - "downloadSeconds": 0.063330694 + "connectionEstablishedSeconds": 0.067629578, + "uploadSeconds": 0.000002087, + "downloadSeconds": 0.063763949 }, { - "connectionEstablishedSeconds": 0.131687572, - "uploadSeconds": 0.000002588, - "downloadSeconds": 0.063173232 + "connectionEstablishedSeconds": 0.06230917, + "uploadSeconds": 0.000002348, + "downloadSeconds": 0.058402315 }, { - "connectionEstablishedSeconds": 0.126361402, - "uploadSeconds": 0.000002273, - "downloadSeconds": 0.061394606 + "connectionEstablishedSeconds": 0.064857756, + "uploadSeconds": 0.000002011, + "downloadSeconds": 0.061142836 }, { - "connectionEstablishedSeconds": 0.128864354, - "uploadSeconds": 0.000002128, - "downloadSeconds": 0.062303788 + "connectionEstablishedSeconds": 0.065864183, + "uploadSeconds": 0.000017621, + "downloadSeconds": 0.062186145 }, { - "connectionEstablishedSeconds": 0.133012264, - "uploadSeconds": 0.000002351, - "downloadSeconds": 0.064573179 + "connectionEstablishedSeconds": 0.06481408, + "uploadSeconds": 0.000002102, + "downloadSeconds": 0.062679584 }, { - "connectionEstablishedSeconds": 0.134211551, - "uploadSeconds": 0.00000863, - "downloadSeconds": 0.064424225 + "connectionEstablishedSeconds": 0.06828223, + "uploadSeconds": 0.000002038, + "downloadSeconds": 0.064575532 }, { - "connectionEstablishedSeconds": 0.131659114, - "uploadSeconds": 0.000001996, - "downloadSeconds": 0.063097905 + "connectionEstablishedSeconds": 0.067096999, + "uploadSeconds": 0.0000099, + "downloadSeconds": 0.063291858 }, { - "connectionEstablishedSeconds": 0.130566836, - "uploadSeconds": 0.000001883, - "downloadSeconds": 0.062666167 + "connectionEstablishedSeconds": 0.065024344, + "uploadSeconds": 0.000002007, + "downloadSeconds": 0.063014329 }, { - "connectionEstablishedSeconds": 0.12699178, - "uploadSeconds": 0.000001941, - "downloadSeconds": 0.061710595 + "connectionEstablishedSeconds": 0.064771268, + "uploadSeconds": 0.000002892, + "downloadSeconds": 0.064019739 }, { - "connectionEstablishedSeconds": 0.126258345, - "uploadSeconds": 0.00000231, - "downloadSeconds": 0.060492382 + "connectionEstablishedSeconds": 0.067307082, + "uploadSeconds": 0.000002052, + "downloadSeconds": 0.063716769 }, { - "connectionEstablishedSeconds": 0.126496115, - "uploadSeconds": 0.000002291, - "downloadSeconds": 0.060621943 + "connectionEstablishedSeconds": 0.066775409, + "uploadSeconds": 0.000002107, + "downloadSeconds": 0.063349371 }, { - "connectionEstablishedSeconds": 0.129833632, - "uploadSeconds": 0.000002205, - "downloadSeconds": 0.063074154 + "connectionEstablishedSeconds": 0.066830275, + "uploadSeconds": 0.000001923, + "downloadSeconds": 0.063185873 }, { - "connectionEstablishedSeconds": 0.125972604, - "uploadSeconds": 0.000002052, - "downloadSeconds": 0.061142547 + "connectionEstablishedSeconds": 0.06780674, + "uploadSeconds": 0.00000236, + "downloadSeconds": 0.064036164 }, { - "connectionEstablishedSeconds": 0.133147996, - "uploadSeconds": 0.00000204, - "downloadSeconds": 0.063961665 + "connectionEstablishedSeconds": 0.065967916, + "uploadSeconds": 0.000002265, + "downloadSeconds": 0.062318402 }, { - "connectionEstablishedSeconds": 0.128990543, - "uploadSeconds": 0.000002291, - "downloadSeconds": 0.061926222 + "connectionEstablishedSeconds": 0.064328056, + "uploadSeconds": 0.000002262, + "downloadSeconds": 0.062424217 }, { - "connectionEstablishedSeconds": 0.126666522, - "uploadSeconds": 0.00000186, - "downloadSeconds": 0.060657623 + "connectionEstablishedSeconds": 0.066084525, + "uploadSeconds": 0.000002192, + "downloadSeconds": 0.062286294 }, { - "connectionEstablishedSeconds": 0.131063138, - "uploadSeconds": 0.000002364, - "downloadSeconds": 0.063630534 + "connectionEstablishedSeconds": 0.06599978, + "uploadSeconds": 0.000002109, + "downloadSeconds": 0.062239371 }, { - "connectionEstablishedSeconds": 0.127691264, - "uploadSeconds": 0.000001737, - "downloadSeconds": 0.061989469 + "connectionEstablishedSeconds": 0.066048454, + "uploadSeconds": 0.000001851, + "downloadSeconds": 0.062367304 }, { - "connectionEstablishedSeconds": 0.132669306, - "uploadSeconds": 0.000002116, - "downloadSeconds": 0.063654787 + "connectionEstablishedSeconds": 0.063651651, + "uploadSeconds": 0.000001993, + "downloadSeconds": 0.061675867 }, { - "connectionEstablishedSeconds": 0.13097608, - "uploadSeconds": 0.000002228, - "downloadSeconds": 0.062813042 + "connectionEstablishedSeconds": 0.06226315, + "uploadSeconds": 0.000018316, + "downloadSeconds": 0.060474821 }, { - "connectionEstablishedSeconds": 0.127253247, - "uploadSeconds": 0.000002123, - "downloadSeconds": 0.061762543 + "connectionEstablishedSeconds": 0.066654209, + "uploadSeconds": 0.000004447, + "downloadSeconds": 0.064621304 }, { - "connectionEstablishedSeconds": 0.130387331, - "uploadSeconds": 0.000001931, - "downloadSeconds": 0.062535067 + "connectionEstablishedSeconds": 0.068243264, + "uploadSeconds": 0.000001947, + "downloadSeconds": 0.066378669 }, { - "connectionEstablishedSeconds": 0.123412861, - "uploadSeconds": 0.000002168, - "downloadSeconds": 0.059142108 + "connectionEstablishedSeconds": 0.065352793, + "uploadSeconds": 0.000002016, + "downloadSeconds": 0.061528441 }, { - "connectionEstablishedSeconds": 0.134738403, - "uploadSeconds": 0.00000203, - "downloadSeconds": 0.064797602 + "connectionEstablishedSeconds": 0.065683131, + "uploadSeconds": 0.000002917, + "downloadSeconds": 0.061882983 }, { - "connectionEstablishedSeconds": 0.129629586, - "uploadSeconds": 0.000001965, - "downloadSeconds": 0.062985231 + "connectionEstablishedSeconds": 0.066137011, + "uploadSeconds": 0.000002347, + "downloadSeconds": 0.064232968 }, { - "connectionEstablishedSeconds": 0.134042226, - "uploadSeconds": 0.000002526, - "downloadSeconds": 0.064318516 + "connectionEstablishedSeconds": 0.066276528, + "uploadSeconds": 0.000002005, + "downloadSeconds": 0.064312874 } ], "implementation": "go-libp2p", @@ -4031,173 +4031,173 @@ "pings": { "unit": "s", "results": [ - 0.0628, - 0.0628, - 0.0627, - 0.0628, - 0.0628, - 0.0628, - 0.0628, - 0.0627, - 0.0628, - 0.0627, - 0.0627, - 0.0628, - 0.0627, - 0.0628, - 0.0628, - 0.0627, - 0.0627, - 0.0627, - 0.0628, - 0.0627, - 0.0627, - 0.0627, - 0.0628, - 0.0628, - 0.0627, - 0.0627, - 0.0627, - 0.0627, - 0.0628, - 0.0628, - 0.0628, - 0.0628, - 0.0627, - 0.0628, - 0.0628, - 0.0627, - 0.0627, - 0.0628, - 0.0627, - 0.0627, - 0.0628, - 0.0628, - 0.0628, - 0.0627, - 0.0628, - 0.0627, - 0.0628, - 0.0628, - 0.0628, - 0.0628, - 0.0629, - 0.0628, - 0.0627, - 0.0627, - 0.0627, - 0.0628, - 0.0627, - 0.0627, - 0.0628, - 0.0627, - 0.0627, - 0.0628, - 0.0627, - 0.0627, - 0.0627, - 0.0627, - 0.0628, - 0.0627, - 0.0628, - 0.0628, - 0.0628, - 0.0628, - 0.0627, - 0.0628, - 0.0627, - 0.0628, - 0.0628, - 0.0628, - 0.0628, - 0.0627, - 0.0627, - 0.0628, - 0.0628, - 0.0628, - 0.0628, - 0.0628, - 0.0628, - 0.0627, - 0.0627, - 0.0628, - 0.0627, - 0.0628, - 0.0628, - 0.0628, - 0.0627, - 0.0627, - 0.0628, - 0.0628, - 0.0628, - 0.0628 + 0.0599, + 0.0599, + 0.0599, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0599, + 0.0598, + 0.0598, + 0.0599, + 0.0599, + 0.0598, + 0.0599, + 0.0599, + 0.0598, + 0.0598, + 0.0599, + 0.0599, + 0.0598, + 0.0599, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0599, + 0.0599, + 0.0598, + 0.0599, + 0.0598, + 0.0599, + 0.0599, + 0.0598, + 0.0599, + 0.0599, + 0.0599, + 0.0598, + 0.0599, + 0.0598, + 0.0598, + 0.0598, + 0.0599, + 0.0599, + 0.0599, + 0.0599, + 0.0599, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0599, + 0.0598, + 0.0599, + 0.06, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0599, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0599, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0598, + 0.0603, + 0.0598, + 0.0599, + 0.0599, + 0.0598 ] }, "iperf": { "unit": "bit/s", "results": [ - 3280000000, - 3280000000, - 3280000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3280000000, - 3280000000, - 3270000000, - 3270000000, - 3260000000, - 3260000000, - 3270000000, - 3260000000, - 3260000000, - 3260000000, - 3260000000, - 3260000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, + 3240000000, + 3240000000, 3230000000, - 3220000000, - 3220000000, - 3220000000, - 3220000000, + 3240000000, + 3230000000, + 3240000000, + 3240000000, + 3240000000, + 3240000000, + 3240000000, + 3240000000, + 3230000000, + 3230000000, + 3230000000, + 3230000000, + 3230000000, + 3230000000, + 3240000000, 3250000000, - 3270000000, - 3280000000, - 3270000000, - 3270000000, - 3260000000, - 3260000000, - 3260000000, - 3270000000, - 3270000000, - 3280000000, - 3280000000, - 3280000000, - 3280000000, - 3270000000, - 3280000000, - 3270000000, - 3280000000, - 3270000000, - 3280000000, - 3280000000, - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3280000000, + 3230000000, + 3230000000, + 3240000000, + 3230000000, + 3240000000, + 3230000000, + 3210000000, + 3190000000, + 3190000000, + 3190000000, + 3190000000, + 3220000000, + 3240000000, + 3240000000, + 3240000000, + 3240000000, + 3240000000, + 3230000000, + 3230000000, + 3240000000, 3230000000, 3230000000, 3230000000, + 3240000000, + 3240000000, + 3240000000, + 3240000000, + 3240000000, + 3240000000, + 3240000000, + 3240000000, + 3240000000, + 3240000000, + 3240000000, + 3240000000, + 3240000000, + 3210000000, + 3190000000, + 3190000000, + 3200000000, + 3200000000, 3230000000, - 3260000000, - 3100000000 + 3230000000 ] } } \ No newline at end of file From 71fde9d9c6b946dbf31e9081941acc006dcbf77f Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 24 May 2023 15:53:20 +0900 Subject: [PATCH 097/143] Add comments --- perf/impl/go-libp2p/v0.27/main.go | 2 ++ perf/impl/go-libp2p/v0.27/perf.go | 7 ++----- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/perf/impl/go-libp2p/v0.27/main.go b/perf/impl/go-libp2p/v0.27/main.go index 7d3553513..47ad754ca 100644 --- a/perf/impl/go-libp2p/v0.27/main.go +++ b/perf/impl/go-libp2p/v0.27/main.go @@ -84,6 +84,8 @@ func main() { start := time.Now() h.Peerstore().AddAddrs(serverInfo.ID, serverInfo.Addrs, peerstore.TempAddrTTL) + // Use h.Network().DialPeer() instead of h.Connect to skip waiting for + // identify protocol to finish. _, err = h.Network().DialPeer(context.Background(), serverInfo.ID) if err != nil { panic(err) diff --git a/perf/impl/go-libp2p/v0.27/perf.go b/perf/impl/go-libp2p/v0.27/perf.go index 687372069..d620abd76 100644 --- a/perf/impl/go-libp2p/v0.27/perf.go +++ b/perf/impl/go-libp2p/v0.27/perf.go @@ -96,6 +96,8 @@ func (ps *PerfService) drainStream(ctx context.Context, s network.Stream, buf [] } func (ps *PerfService) RunPerf(ctx context.Context, p peer.ID, bytesToSend uint64, bytesToRecv uint64) (time.Duration, time.Duration, error) { + // Use ps.Host.Network().NewStream() instead of ps.Host.NewStream() to + // skip waiting for identify protocol to finish. s, err := ps.Host.Network().NewStream(network.WithNoDial(ctx, "already dialed"), p) if err != nil { return 0, 0, err @@ -107,11 +109,6 @@ func (ps *PerfService) RunPerf(ctx context.Context, p peer.ID, bytesToSend uint6 rw: lzcon, } - // s, err := ps.Host.NewStream(ctx, p, ID) - // if err != nil { - // return 0, 0, err - // } - buf := pool.Get(BlockSize) defer pool.Put(buf) From 28c590b4ecf0ab2be17ddd363fc198d7e2724102 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 24 May 2023 17:36:01 +0900 Subject: [PATCH 098/143] Parse --server-address in client mode --- perf/impl/go-libp2p/v0.27/main.go | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/perf/impl/go-libp2p/v0.27/main.go b/perf/impl/go-libp2p/v0.27/main.go index 47ad754ca..1700e5fa5 100644 --- a/perf/impl/go-libp2p/v0.27/main.go +++ b/perf/impl/go-libp2p/v0.27/main.go @@ -25,6 +25,17 @@ func main() { downloadBytes := flag.Uint64("download-bytes", 0, "Download bytes") flag.Parse() + ipPort := strings.Split(*serverAddr, ":") + if len(ipPort) != 2 { + fmt.Println("Invalid server address format. Expected format: 'ip:port'") + return + } + ip := ipPort[0] + port := ipPort[1] + + tcpMultiAddrStr := fmt.Sprintf("/ip4/%s/tcp/%s", ip, port) + quicMultiAddrStr := fmt.Sprintf("/ip4/%s/udp/%s/quic-v1", ip, port) + opts := []libp2p.Option{ // Use TLS only instead of both TLS and Noise. Removes the // additional multistream-select security protocol negotiation. @@ -33,7 +44,7 @@ func main() { } if *runServer { - opts = append(opts, libp2p.ListenAddrStrings("/ip4/0.0.0.0/tcp/4001", "/ip4/0.0.0.0/udp/4001/quic-v1")) + opts = append(opts, libp2p.ListenAddrStrings(tcpMultiAddrStr, quicMultiAddrStr)) // TODO: Fake identity. For testing only. priv, _, err := crypto.GenerateEd25519Key(&simpleReader{seed: uint8(*secretKeySeed)}) @@ -57,26 +68,17 @@ func main() { select {} // run forever, exit on interrupt } - ipPort := strings.Split(*serverAddr, ":") - if len(ipPort) != 2 { - fmt.Println("Invalid server address format. Expected format: 'ip:port'") - return - } - - ip := ipPort[0] - port := ipPort[1] - var multiAddrStr string switch *transport { case "tcp": - multiAddrStr = fmt.Sprintf("/ip4/%s/tcp/%s/p2p/12D3KooWDpJ7As7BWAwRMfu1VU2WCqNjvq387JEYKDBj4kx6nXTN", ip, port) + multiAddrStr = tcpMultiAddrStr case "quic-v1": - multiAddrStr = fmt.Sprintf("/ip4/%s/udp/%s/quic-v1/p2p/12D3KooWDpJ7As7BWAwRMfu1VU2WCqNjvq387JEYKDBj4kx6nXTN", ip, port) + multiAddrStr = quicMultiAddrStr default: fmt.Println("Invalid transport. Accepted values: 'tcp' or 'quic-v1'") return } - + multiAddrStr = multiAddrStr + "/p2p/12D3KooWDpJ7As7BWAwRMfu1VU2WCqNjvq387JEYKDBj4kx6nXTN" serverInfo, err := peer.AddrInfoFromString(multiAddrStr) if err != nil { panic(err) From d2d1c2bbce8225d9d63289fea223595a26a916c4 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 24 May 2023 17:36:18 +0900 Subject: [PATCH 099/143] Log building implementations on servers --- perf/runner/src/index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index d0e056587..48b706903 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -210,6 +210,8 @@ function execCommand(cmd: string): string { } function copyAndBuildPerfImplementations(ip: string) { + console.error(`= Building implementations on ${ip}`); + const stdout = execCommand(`rsync -avz --progress --filter=':- .gitignore' -e "ssh -o StrictHostKeyChecking=no" ../impl ec2-user@${ip}:/home/ec2-user`); console.error(stdout.toString()); From f6b968a80896dff08ca231c3ddb16899a6c3b4a4 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 24 May 2023 17:36:44 +0900 Subject: [PATCH 100/143] fix(go-libp2p): use NewWithoutDefaults to disable Noise --- perf/impl/go-libp2p/v0.27/main.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/perf/impl/go-libp2p/v0.27/main.go b/perf/impl/go-libp2p/v0.27/main.go index 1700e5fa5..a1538d362 100644 --- a/perf/impl/go-libp2p/v0.27/main.go +++ b/perf/impl/go-libp2p/v0.27/main.go @@ -13,6 +13,8 @@ import ( "github.com/libp2p/go-libp2p/core/peer" "github.com/libp2p/go-libp2p/core/peerstore" tls "github.com/libp2p/go-libp2p/p2p/security/tls" + quic "github.com/libp2p/go-libp2p/p2p/transport/quic" + "github.com/libp2p/go-libp2p/p2p/transport/tcp" "github.com/multiformats/go-multiaddr" ) @@ -41,6 +43,16 @@ func main() { // additional multistream-select security protocol negotiation. // Thus makes it easier to compare with TCP+TLS+HTTP/2 libp2p.Security(tls.ID, tls.New), + + libp2p.DefaultListenAddrs, + libp2p.Transport(tcp.NewTCPTransport), + libp2p.Transport(quic.NewTransport), + libp2p.DefaultMuxers, + libp2p.DefaultPeerstore, + libp2p.DefaultResourceManager, + libp2p.DefaultConnectionManager, + libp2p.DefaultMultiaddrResolver, + libp2p.DefaultPrometheusRegisterer, } if *runServer { @@ -52,9 +64,11 @@ func main() { panic(err) } opts = append(opts, libp2p.Identity(priv)) + } else { + opts = append(opts, libp2p.RandomIdentity) } - h, err := libp2p.New(opts...) + h, err := libp2p.NewWithoutDefaults(opts...) if err != nil { panic(err) } From 2cca4a04ea4775696c9c3c99c2abdb212b9b3e6a Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 25 May 2023 09:56:27 +0900 Subject: [PATCH 101/143] Commit latest results --- perf/runner/benchmark-results.json | 4724 ++++++++++++++-------------- 1 file changed, 2362 insertions(+), 2362 deletions(-) diff --git a/perf/runner/benchmark-results.json b/perf/runner/benchmark-results.json index e7370ad16..0657c4781 100644 --- a/perf/runner/benchmark-results.json +++ b/perf/runner/benchmark-results.json @@ -7,29 +7,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.071717831, - "uploadSeconds": 1.108251356, - "downloadSeconds": 8.7e-8 + "connectionEstablishedSeconds": 0.070297314, + "uploadSeconds": 0.976105831, + "downloadSeconds": 1.28e-7 }, { - "connectionEstablishedSeconds": 0.06313201, - "uploadSeconds": 0.985241566, - "downloadSeconds": 1.05e-7 + "connectionEstablishedSeconds": 0.061534425, + "uploadSeconds": 0.957481414, + "downloadSeconds": 8.1e-8 }, { - "connectionEstablishedSeconds": 0.066539845, - "uploadSeconds": 1.032252996, - "downloadSeconds": 7.7e-8 + "connectionEstablishedSeconds": 0.060021929, + "uploadSeconds": 0.937863027, + "downloadSeconds": 7.4e-8 }, { - "connectionEstablishedSeconds": 0.06276987, - "uploadSeconds": 0.976620431, - "downloadSeconds": 8.2e-8 + "connectionEstablishedSeconds": 0.063701509, + "uploadSeconds": 0.991100676, + "downloadSeconds": 5.1e-8 }, { - "connectionEstablishedSeconds": 0.065300697, - "uploadSeconds": 1.018646835, - "downloadSeconds": 9.1e-8 + "connectionEstablishedSeconds": 0.066541962, + "uploadSeconds": 1.038524336, + "downloadSeconds": 1.21e-7 } ], "implementation": "quic-go", @@ -39,29 +39,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.126148138, - "uploadSeconds": 35.39770708, - "downloadSeconds": 0.062901647 + "connectionEstablishedSeconds": 0.12788271, + "uploadSeconds": 36.401081612, + "downloadSeconds": 0.062981043 }, { - "connectionEstablishedSeconds": 0.12372451, - "uploadSeconds": 34.877587988, - "downloadSeconds": 0.061690616 + "connectionEstablishedSeconds": 0.122861416, + "uploadSeconds": 34.449560649, + "downloadSeconds": 0.061166454 }, { - "connectionEstablishedSeconds": 0.125053112, - "uploadSeconds": 35.098348121, - "downloadSeconds": 0.062292537 + "connectionEstablishedSeconds": 0.129370637, + "uploadSeconds": 36.264773908, + "downloadSeconds": 0.0644781 }, { - "connectionEstablishedSeconds": 0.123974689, - "uploadSeconds": 34.782441092, - "downloadSeconds": 0.061811206 + "connectionEstablishedSeconds": 0.129144197, + "uploadSeconds": 36.257968261, + "downloadSeconds": 0.064331182 }, { - "connectionEstablishedSeconds": 0.125870163, - "uploadSeconds": 35.341888119, - "downloadSeconds": 0.062707768 + "connectionEstablishedSeconds": 0.129576206, + "uploadSeconds": 36.411659002, + "downloadSeconds": 0.064808922 } ], "implementation": "rust-libp2p", @@ -71,29 +71,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.06387589, - "uploadSeconds": 14.897244537, - "downloadSeconds": 0.000086712 + "connectionEstablishedSeconds": 0.070141303, + "uploadSeconds": 14.198241062, + "downloadSeconds": 0.000052912 }, { - "connectionEstablishedSeconds": 0.064333418, - "uploadSeconds": 10.918767598, - "downloadSeconds": 0.000107009 + "connectionEstablishedSeconds": 0.064929592, + "uploadSeconds": 10.68151263, + "downloadSeconds": 0.000059917 }, { - "connectionEstablishedSeconds": 0.073568486, - "uploadSeconds": 9.286607313, - "downloadSeconds": 0.000220465 + "connectionEstablishedSeconds": 0.064462749, + "uploadSeconds": 26.327155321, + "downloadSeconds": 0.00011333 }, { - "connectionEstablishedSeconds": 0.064221808, - "uploadSeconds": 6.274033928, - "downloadSeconds": 0.000063738 + "connectionEstablishedSeconds": 0.06161635, + "uploadSeconds": 9.109610004, + "downloadSeconds": 0.000124202 }, { - "connectionEstablishedSeconds": 0.063970082, - "uploadSeconds": 13.355328015, - "downloadSeconds": 0.00011874 + "connectionEstablishedSeconds": 0.063525618, + "uploadSeconds": 21.079123439, + "downloadSeconds": 0.000105298 } ], "implementation": "rust-libp2p", @@ -103,29 +103,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.0656414, - "uploadSeconds": 1.441617759, - "downloadSeconds": 0.000192843 + "connectionEstablishedSeconds": 0.065954244, + "uploadSeconds": 1.402745274, + "downloadSeconds": 0.000211507 }, { - "connectionEstablishedSeconds": 0.063041674, - "uploadSeconds": 1.391953849, - "downloadSeconds": 0.000051184 + "connectionEstablishedSeconds": 0.065088775, + "uploadSeconds": 1.449638775, + "downloadSeconds": 0.000058087 }, { - "connectionEstablishedSeconds": 0.062063281, - "uploadSeconds": 1.384806358, - "downloadSeconds": 0.000057135 + "connectionEstablishedSeconds": 0.063314602, + "uploadSeconds": 1.3934497750000001, + "downloadSeconds": 0.000127509 }, { - "connectionEstablishedSeconds": 0.064573601, - "uploadSeconds": 1.424646168, - "downloadSeconds": 0.000048773 + "connectionEstablishedSeconds": 0.065340678, + "uploadSeconds": 1.438934371, + "downloadSeconds": 0.000109151 }, { - "connectionEstablishedSeconds": 0.064452347, - "uploadSeconds": 1.41460567, - "downloadSeconds": 0.000047386 + "connectionEstablishedSeconds": 0.063592102, + "uploadSeconds": 1.395796978, + "downloadSeconds": 0.00008171 } ], "implementation": "rust-libp2p-quinn", @@ -136,28 +136,28 @@ "result": [ { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.7907368139999997, - "downloadSeconds": 0.000004624 + "uploadSeconds": 2.7865382739999998, + "downloadSeconds": 0.000018388 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.7706807060000003, - "downloadSeconds": 0.00000681 + "uploadSeconds": 2.621148716, + "downloadSeconds": 0.000002242 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.719605393, - "downloadSeconds": 0.000004626 + "uploadSeconds": 2.760585642, + "downloadSeconds": 0.000004662 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 3.003131051, - "downloadSeconds": 0.000004275 + "uploadSeconds": 2.806644015, + "downloadSeconds": 0.000019645 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 3.074974594, - "downloadSeconds": 0.000004652 + "uploadSeconds": 2.9810749899999998, + "downloadSeconds": 0.000002576 } ], "implementation": "https", @@ -167,29 +167,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.18356968, - "uploadSeconds": 2.845136064, - "downloadSeconds": 0.121465042 + "connectionEstablishedSeconds": 0.187666955, + "uploadSeconds": 2.824455271, + "downloadSeconds": 0.123028053 }, { - "connectionEstablishedSeconds": 0.194598603, - "uploadSeconds": 2.849080344, - "downloadSeconds": 0.126641813 + "connectionEstablishedSeconds": 0.19545875, + "uploadSeconds": 2.93147859, + "downloadSeconds": 0.127536761 }, { - "connectionEstablishedSeconds": 0.187702518, - "uploadSeconds": 2.859621042, - "downloadSeconds": 0.12183152 + "connectionEstablishedSeconds": 0.18985107, + "uploadSeconds": 2.85914096, + "downloadSeconds": 0.124491918 }, { - "connectionEstablishedSeconds": 0.191923365, - "uploadSeconds": 2.864386991, - "downloadSeconds": 0.124702355 + "connectionEstablishedSeconds": 0.181920988, + "uploadSeconds": 2.7478558299999998, + "downloadSeconds": 0.119709 }, { - "connectionEstablishedSeconds": 0.194006051, - "uploadSeconds": 2.887186679, - "downloadSeconds": 0.125618279 + "connectionEstablishedSeconds": 0.195685163, + "uploadSeconds": 2.955947802, + "downloadSeconds": 0.129634301 } ], "implementation": "go-libp2p", @@ -199,29 +199,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.063861006, - "uploadSeconds": 1.258915335, - "downloadSeconds": 0.060972729 + "connectionEstablishedSeconds": 0.068654638, + "uploadSeconds": 1.252551193, + "downloadSeconds": 0.064037004 }, { - "connectionEstablishedSeconds": 0.066730983, - "uploadSeconds": 1.283791855, - "downloadSeconds": 0.062247951 + "connectionEstablishedSeconds": 0.064522167, + "uploadSeconds": 1.239043305, + "downloadSeconds": 0.060060905 }, { - "connectionEstablishedSeconds": 0.063911766, - "uploadSeconds": 1.229570152, - "downloadSeconds": 0.059556412 + "connectionEstablishedSeconds": 0.06527666, + "uploadSeconds": 1.279113568, + "downloadSeconds": 0.061957179 }, { - "connectionEstablishedSeconds": 0.067878354, - "uploadSeconds": 1.310084448, - "downloadSeconds": 0.063338809 + "connectionEstablishedSeconds": 0.06920229, + "uploadSeconds": 1.3390372, + "downloadSeconds": 0.064796753 }, { - "connectionEstablishedSeconds": 0.065068424, - "uploadSeconds": 1.251689327, - "downloadSeconds": 0.060601996 + "connectionEstablishedSeconds": 0.066522893, + "uploadSeconds": 1.320509869, + "downloadSeconds": 0.064084372 } ], "implementation": "go-libp2p", @@ -241,29 +241,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.063035848, - "uploadSeconds": 5.57e-7, - "downloadSeconds": 1.031684635 + "connectionEstablishedSeconds": 0.066102425, + "uploadSeconds": 6.05e-7, + "downloadSeconds": 1.079131029 }, { - "connectionEstablishedSeconds": 0.062549491, - "uploadSeconds": 6.24e-7, - "downloadSeconds": 1.062655087 + "connectionEstablishedSeconds": 0.063745934, + "uploadSeconds": 6.87e-7, + "downloadSeconds": 1.045033606 }, { - "connectionEstablishedSeconds": 0.063882753, - "uploadSeconds": 6.15e-7, - "downloadSeconds": 1.365721807 + "connectionEstablishedSeconds": 0.064553974, + "uploadSeconds": 5.13e-7, + "downloadSeconds": 1.05987753 }, { - "connectionEstablishedSeconds": 0.068691444, - "uploadSeconds": 6.46e-7, - "downloadSeconds": 1.129898296 + "connectionEstablishedSeconds": 0.06553008, + "uploadSeconds": 6.43e-7, + "downloadSeconds": 1.076902353 }, { - "connectionEstablishedSeconds": 0.063877163, - "uploadSeconds": 5.54e-7, - "downloadSeconds": 1.049462851 + "connectionEstablishedSeconds": 0.062761144, + "uploadSeconds": 6.02e-7, + "downloadSeconds": 1.030542493 } ], "implementation": "quic-go", @@ -273,29 +273,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.125497053, - "uploadSeconds": 0.062505884, - "downloadSeconds": 41.707398634 + "connectionEstablishedSeconds": 0.13057814, + "uploadSeconds": 0.06504925, + "downloadSeconds": 36.728523097 }, { - "connectionEstablishedSeconds": 0.121197039, - "uploadSeconds": 0.060202899, - "downloadSeconds": 34.43093803 + "connectionEstablishedSeconds": 0.124944384, + "uploadSeconds": 0.062065698, + "downloadSeconds": 35.961353068 }, { - "connectionEstablishedSeconds": 0.127645116, - "uploadSeconds": 0.063521098, - "downloadSeconds": 35.914196199 + "connectionEstablishedSeconds": 0.130586181, + "uploadSeconds": 0.064887786, + "downloadSeconds": 42.21106346 }, { - "connectionEstablishedSeconds": 0.129042543, - "uploadSeconds": 0.06410038, - "downloadSeconds": 36.30029051 + "connectionEstablishedSeconds": 0.126708476, + "uploadSeconds": 0.062921055, + "downloadSeconds": 41.79504972 }, { - "connectionEstablishedSeconds": 0.139024871, - "uploadSeconds": 0.069074608, - "downloadSeconds": 39.297212503 + "connectionEstablishedSeconds": 0.126277922, + "uploadSeconds": 0.062710965, + "downloadSeconds": 41.416179838 } ], "implementation": "rust-libp2p", @@ -305,29 +305,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.061232706, - "uploadSeconds": 0.118743292, - "downloadSeconds": 9.754380328 + "connectionEstablishedSeconds": 0.063571426, + "uploadSeconds": 0.122524527, + "downloadSeconds": 14.688501904 }, { - "connectionEstablishedSeconds": 0.066431038, - "uploadSeconds": 0.129401107, - "downloadSeconds": 27.496442621 + "connectionEstablishedSeconds": 0.061588969, + "uploadSeconds": 0.119751648, + "downloadSeconds": 13.676063442 }, { - "connectionEstablishedSeconds": 0.068765541, - "uploadSeconds": 0.134091062, - "downloadSeconds": 28.775083466 + "connectionEstablishedSeconds": 0.062454824, + "uploadSeconds": 0.121421404, + "downloadSeconds": 28.953030009 }, { - "connectionEstablishedSeconds": 0.062047614, - "uploadSeconds": 0.120672787, - "downloadSeconds": 8.824578368 + "connectionEstablishedSeconds": 0.064480155, + "uploadSeconds": 0.125556611, + "downloadSeconds": 13.615676327 }, { - "connectionEstablishedSeconds": 0.063827674, - "uploadSeconds": 0.124235372, - "downloadSeconds": 25.670433799 + "connectionEstablishedSeconds": 0.063835283, + "uploadSeconds": 0.124031403, + "downloadSeconds": 24.377706009 } ], "implementation": "rust-libp2p", @@ -337,29 +337,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.06307016, - "uploadSeconds": 0.121919556, - "downloadSeconds": 1.317938822 + "connectionEstablishedSeconds": 0.06377155, + "uploadSeconds": 0.123363888, + "downloadSeconds": 1.341300474 }, { - "connectionEstablishedSeconds": 0.063818881, - "uploadSeconds": 0.124205443, - "downloadSeconds": 1.348505136 + "connectionEstablishedSeconds": 0.063434258, + "uploadSeconds": 0.123371646, + "downloadSeconds": 1.3334225210000001 }, { - "connectionEstablishedSeconds": 0.06458344, - "uploadSeconds": 0.125787226, - "downloadSeconds": 1.358472583 + "connectionEstablishedSeconds": 0.062023495, + "uploadSeconds": 0.120662695, + "downloadSeconds": 1.317308826 }, { - "connectionEstablishedSeconds": 0.062156734, - "uploadSeconds": 0.120884064, - "downloadSeconds": 1.306500379 + "connectionEstablishedSeconds": 0.066228473, + "uploadSeconds": 0.128940994, + "downloadSeconds": 1.397749371 }, { - "connectionEstablishedSeconds": 0.063961475, - "uploadSeconds": 0.124511573, - "downloadSeconds": 1.345313962 + "connectionEstablishedSeconds": 0.063049748, + "uploadSeconds": 0.122582746, + "downloadSeconds": 1.341124802 } ], "implementation": "rust-libp2p-quinn", @@ -370,28 +370,28 @@ "result": [ { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187973696, - "downloadSeconds": 2.848235973 + "uploadSeconds": 0.186073896, + "downloadSeconds": 2.6670878609999997 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.179092659, - "downloadSeconds": 2.597372658 + "uploadSeconds": 0.193873239, + "downloadSeconds": 3.019374899 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186427252, - "downloadSeconds": 2.6870848929999998 + "uploadSeconds": 0.184416829, + "downloadSeconds": 2.793003994 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185136008, - "downloadSeconds": 2.752771338 + "uploadSeconds": 0.192357858, + "downloadSeconds": 2.810105741 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18952669, - "downloadSeconds": 2.80348634 + "uploadSeconds": 0.190407138, + "downloadSeconds": 2.76563917 } ], "implementation": "https", @@ -401,29 +401,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.179393572, - "uploadSeconds": 0.000002311, - "downloadSeconds": 2.832866447 + "connectionEstablishedSeconds": 0.187946812, + "uploadSeconds": 0.000002542, + "downloadSeconds": 3.352702091 }, { - "connectionEstablishedSeconds": 0.19359588, - "uploadSeconds": 0.000003047, - "downloadSeconds": 3.205773539 + "connectionEstablishedSeconds": 0.18968377, + "uploadSeconds": 0.000004511, + "downloadSeconds": 2.947320389 }, { - "connectionEstablishedSeconds": 0.182081015, - "uploadSeconds": 0.000002786, - "downloadSeconds": 2.847979808 + "connectionEstablishedSeconds": 0.193786619, + "uploadSeconds": 0.000026, + "downloadSeconds": 3.02479625 }, { - "connectionEstablishedSeconds": 0.191907804, - "uploadSeconds": 0.000003374, - "downloadSeconds": 3.195657566 + "connectionEstablishedSeconds": 0.188444252, + "uploadSeconds": 0.000002602, + "downloadSeconds": 3.136940616 }, { - "connectionEstablishedSeconds": 0.190046212, - "uploadSeconds": 0.000002577, - "downloadSeconds": 2.9906799 + "connectionEstablishedSeconds": 0.181702222, + "uploadSeconds": 0.000002266, + "downloadSeconds": 2.92347864 } ], "implementation": "go-libp2p", @@ -433,29 +433,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.065825098, - "uploadSeconds": 0.000003218, - "downloadSeconds": 1.3629588369999999 + "connectionEstablishedSeconds": 0.068277261, + "uploadSeconds": 0.000018181, + "downloadSeconds": 1.375710908 }, { - "connectionEstablishedSeconds": 0.068266897, - "uploadSeconds": 0.000001669, - "downloadSeconds": 1.38042863 + "connectionEstablishedSeconds": 0.068015565, + "uploadSeconds": 0.000001609, + "downloadSeconds": 1.378146646 }, { - "connectionEstablishedSeconds": 0.063680453, - "uploadSeconds": 0.000001863, - "downloadSeconds": 1.328038099 + "connectionEstablishedSeconds": 0.0642284, + "uploadSeconds": 0.00000254, + "downloadSeconds": 1.293543339 }, { - "connectionEstablishedSeconds": 0.06607397, - "uploadSeconds": 0.000002147, - "downloadSeconds": 1.371688504 + "connectionEstablishedSeconds": 0.064465047, + "uploadSeconds": 0.000001623, + "downloadSeconds": 1.447395593 }, { - "connectionEstablishedSeconds": 0.067246739, - "uploadSeconds": 0.000002139, - "downloadSeconds": 1.359028703 + "connectionEstablishedSeconds": 0.064851976, + "uploadSeconds": 0.000001697, + "downloadSeconds": 1.350367435 } ], "implementation": "go-libp2p", @@ -475,504 +475,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.065165399, - "uploadSeconds": 0.00000205, - "downloadSeconds": 0.062984402 + "connectionEstablishedSeconds": 0.064751978, + "uploadSeconds": 0.000001965, + "downloadSeconds": 0.062446835 }, { - "connectionEstablishedSeconds": 0.062747394, - "uploadSeconds": 0.000001998, - "downloadSeconds": 0.060839292 + "connectionEstablishedSeconds": 0.064369628, + "uploadSeconds": 9.78e-7, + "downloadSeconds": 0.062578705 }, { - "connectionEstablishedSeconds": 0.064625822, - "uploadSeconds": 0.000002479, - "downloadSeconds": 0.062788394 + "connectionEstablishedSeconds": 0.064172156, + "uploadSeconds": 0.000002109, + "downloadSeconds": 0.062397217 }, { - "connectionEstablishedSeconds": 0.063698972, - "uploadSeconds": 0.000001982, - "downloadSeconds": 0.06184015 + "connectionEstablishedSeconds": 0.062744165, + "uploadSeconds": 0.000001819, + "downloadSeconds": 0.060947384 }, { - "connectionEstablishedSeconds": 0.062634644, - "uploadSeconds": 0.000001991, - "downloadSeconds": 0.060870242 + "connectionEstablishedSeconds": 0.063608696, + "uploadSeconds": 0.000002409, + "downloadSeconds": 0.061858335 }, { - "connectionEstablishedSeconds": 0.064013275, - "uploadSeconds": 0.000001995, - "downloadSeconds": 0.062124273 + "connectionEstablishedSeconds": 0.064578852, + "uploadSeconds": 0.000001965, + "downloadSeconds": 0.062762314 }, { - "connectionEstablishedSeconds": 0.064267083, - "uploadSeconds": 9.64e-7, - "downloadSeconds": 0.062409567 + "connectionEstablishedSeconds": 0.063750336, + "uploadSeconds": 0.000002109, + "downloadSeconds": 0.061983581 }, { - "connectionEstablishedSeconds": 0.062738711, - "uploadSeconds": 0.000001009, - "downloadSeconds": 0.061048678 + "connectionEstablishedSeconds": 0.062759314, + "uploadSeconds": 0.000001921, + "downloadSeconds": 0.060979078 }, { - "connectionEstablishedSeconds": 0.064751569, - "uploadSeconds": 8.54e-7, - "downloadSeconds": 0.062899016 + "connectionEstablishedSeconds": 0.06165765, + "uploadSeconds": 9.47e-7, + "downloadSeconds": 0.060007441 }, { - "connectionEstablishedSeconds": 0.065416862, - "uploadSeconds": 0.000002034, - "downloadSeconds": 0.06361402 + "connectionEstablishedSeconds": 0.065447388, + "uploadSeconds": 0.000001973, + "downloadSeconds": 0.063719339 }, { - "connectionEstablishedSeconds": 0.063444387, - "uploadSeconds": 8.11e-7, - "downloadSeconds": 0.061771271 + "connectionEstablishedSeconds": 0.065495014, + "uploadSeconds": 9.32e-7, + "downloadSeconds": 0.063662471 }, { - "connectionEstablishedSeconds": 0.063137822, - "uploadSeconds": 8.55e-7, - "downloadSeconds": 0.061375102 + "connectionEstablishedSeconds": 0.064261877, + "uploadSeconds": 0.000002008, + "downloadSeconds": 0.062547339 }, { - "connectionEstablishedSeconds": 0.065550564, - "uploadSeconds": 8.8e-7, - "downloadSeconds": 0.063849843 + "connectionEstablishedSeconds": 0.066444556, + "uploadSeconds": 0.000001956, + "downloadSeconds": 0.064616305 }, { - "connectionEstablishedSeconds": 0.064651059, - "uploadSeconds": 8.99e-7, - "downloadSeconds": 0.062754622 + "connectionEstablishedSeconds": 0.065927723, + "uploadSeconds": 0.000001918, + "downloadSeconds": 0.064011682 }, { - "connectionEstablishedSeconds": 0.065312324, - "uploadSeconds": 0.000001972, - "downloadSeconds": 0.063641094 + "connectionEstablishedSeconds": 0.065767091, + "uploadSeconds": 8.66e-7, + "downloadSeconds": 0.063979506 }, { - "connectionEstablishedSeconds": 0.062753236, - "uploadSeconds": 8.91e-7, - "downloadSeconds": 0.06103999 + "connectionEstablishedSeconds": 0.06644492, + "uploadSeconds": 0.000001964, + "downloadSeconds": 0.064624779 }, { - "connectionEstablishedSeconds": 0.064600329, - "uploadSeconds": 0.000001966, - "downloadSeconds": 0.064458711 + "connectionEstablishedSeconds": 0.067616685, + "uploadSeconds": 9.93e-7, + "downloadSeconds": 0.064315283 }, { - "connectionEstablishedSeconds": 0.065615952, - "uploadSeconds": 0.00000198, - "downloadSeconds": 0.063755344 + "connectionEstablishedSeconds": 0.064648078, + "uploadSeconds": 8.86e-7, + "downloadSeconds": 0.062781844 }, { - "connectionEstablishedSeconds": 0.065301512, - "uploadSeconds": 0.000001254, - "downloadSeconds": 0.06361579 + "connectionEstablishedSeconds": 0.060107655, + "uploadSeconds": 0.000001963, + "downloadSeconds": 0.058309479 }, { - "connectionEstablishedSeconds": 0.065926556, - "uploadSeconds": 0.00000202, - "downloadSeconds": 0.064356162 + "connectionEstablishedSeconds": 0.065304135, + "uploadSeconds": 0.000001949, + "downloadSeconds": 0.063783022 }, { - "connectionEstablishedSeconds": 0.064776862, - "uploadSeconds": 0.000002286, - "downloadSeconds": 0.063039969 + "connectionEstablishedSeconds": 0.065603339, + "uploadSeconds": 0.000001949, + "downloadSeconds": 0.063819812 }, { - "connectionEstablishedSeconds": 0.0653571, - "uploadSeconds": 0.000002036, - "downloadSeconds": 0.063505042 + "connectionEstablishedSeconds": 0.065066854, + "uploadSeconds": 0.000001909, + "downloadSeconds": 0.063351459 }, { - "connectionEstablishedSeconds": 0.064668791, - "uploadSeconds": 8.23e-7, - "downloadSeconds": 0.062919029 + "connectionEstablishedSeconds": 0.062264515, + "uploadSeconds": 0.000002194, + "downloadSeconds": 0.060431368 }, { - "connectionEstablishedSeconds": 0.062528538, - "uploadSeconds": 8.27e-7, - "downloadSeconds": 0.06084725 + "connectionEstablishedSeconds": 0.063081703, + "uploadSeconds": 8.1e-7, + "downloadSeconds": 0.061449283 }, { - "connectionEstablishedSeconds": 0.065401851, - "uploadSeconds": 0.000002032, - "downloadSeconds": 0.063516094 + "connectionEstablishedSeconds": 0.062678158, + "uploadSeconds": 0.000001858, + "downloadSeconds": 0.060888549 }, { - "connectionEstablishedSeconds": 0.067184136, - "uploadSeconds": 0.000001065, - "downloadSeconds": 0.065393404 + "connectionEstablishedSeconds": 0.065686849, + "uploadSeconds": 0.000001959, + "downloadSeconds": 0.063887908 }, { - "connectionEstablishedSeconds": 0.064649371, - "uploadSeconds": 8.6e-7, - "downloadSeconds": 0.062844864 + "connectionEstablishedSeconds": 0.065484867, + "uploadSeconds": 7.72e-7, + "downloadSeconds": 0.063815737 }, { - "connectionEstablishedSeconds": 0.064501136, - "uploadSeconds": 0.000001924, - "downloadSeconds": 0.062687518 + "connectionEstablishedSeconds": 0.062981089, + "uploadSeconds": 0.000001946, + "downloadSeconds": 0.061245878 }, { - "connectionEstablishedSeconds": 0.063678919, - "uploadSeconds": 0.000002086, - "downloadSeconds": 0.061926582 + "connectionEstablishedSeconds": 0.063169451, + "uploadSeconds": 0.000001903, + "downloadSeconds": 0.061477289 }, { - "connectionEstablishedSeconds": 0.064837881, - "uploadSeconds": 0.000001932, - "downloadSeconds": 0.063041324 + "connectionEstablishedSeconds": 0.064226782, + "uploadSeconds": 0.000002021, + "downloadSeconds": 0.062439107 }, { - "connectionEstablishedSeconds": 0.065451424, - "uploadSeconds": 9.38e-7, - "downloadSeconds": 0.063633789 + "connectionEstablishedSeconds": 0.067262367, + "uploadSeconds": 0.000001891, + "downloadSeconds": 0.065454886 }, { - "connectionEstablishedSeconds": 0.06614835, - "uploadSeconds": 0.000001994, - "downloadSeconds": 0.064388666 + "connectionEstablishedSeconds": 0.064497, + "uploadSeconds": 9.22e-7, + "downloadSeconds": 0.062909674 }, { - "connectionEstablishedSeconds": 0.065818051, - "uploadSeconds": 0.00000108, - "downloadSeconds": 0.06417327 + "connectionEstablishedSeconds": 0.063489099, + "uploadSeconds": 0.000001997, + "downloadSeconds": 0.061678745 }, { - "connectionEstablishedSeconds": 0.064165866, - "uploadSeconds": 0.000001895, - "downloadSeconds": 0.061931799 + "connectionEstablishedSeconds": 0.064675257, + "uploadSeconds": 8.04e-7, + "downloadSeconds": 0.062282573 }, { - "connectionEstablishedSeconds": 0.065610024, - "uploadSeconds": 7.56e-7, - "downloadSeconds": 0.063755582 + "connectionEstablishedSeconds": 0.065565437, + "uploadSeconds": 0.00000195, + "downloadSeconds": 0.063750759 }, { - "connectionEstablishedSeconds": 0.064895944, - "uploadSeconds": 0.000001911, - "downloadSeconds": 0.062890372 + "connectionEstablishedSeconds": 0.063480697, + "uploadSeconds": 0.000002012, + "downloadSeconds": 0.061626039 }, { - "connectionEstablishedSeconds": 0.063400465, - "uploadSeconds": 9.37e-7, - "downloadSeconds": 0.061724983 + "connectionEstablishedSeconds": 0.065412879, + "uploadSeconds": 7.45e-7, + "downloadSeconds": 0.063621641 }, { - "connectionEstablishedSeconds": 0.062550655, - "uploadSeconds": 0.00000184, - "downloadSeconds": 0.060743791 + "connectionEstablishedSeconds": 0.063473789, + "uploadSeconds": 0.0000019, + "downloadSeconds": 0.061745584 }, { - "connectionEstablishedSeconds": 0.061837061, - "uploadSeconds": 7.97e-7, - "downloadSeconds": 0.060037219 + "connectionEstablishedSeconds": 0.064495907, + "uploadSeconds": 0.000001982, + "downloadSeconds": 0.062785263 }, { - "connectionEstablishedSeconds": 0.063318984, - "uploadSeconds": 9.51e-7, - "downloadSeconds": 0.061501912 + "connectionEstablishedSeconds": 0.065840125, + "uploadSeconds": 0.00000209, + "downloadSeconds": 0.064120456 }, { - "connectionEstablishedSeconds": 0.062755613, - "uploadSeconds": 0.000001847, - "downloadSeconds": 0.060933817 + "connectionEstablishedSeconds": 0.065706276, + "uploadSeconds": 0.000001058, + "downloadSeconds": 0.063804527 }, { - "connectionEstablishedSeconds": 0.064000301, - "uploadSeconds": 0.000001945, - "downloadSeconds": 0.062272194 + "connectionEstablishedSeconds": 0.064814525, + "uploadSeconds": 0.000001968, + "downloadSeconds": 0.06296256 }, { - "connectionEstablishedSeconds": 0.063320814, - "uploadSeconds": 8.07e-7, - "downloadSeconds": 0.061480115 + "connectionEstablishedSeconds": 0.061032044, + "uploadSeconds": 0.000001839, + "downloadSeconds": 0.059348977 }, { - "connectionEstablishedSeconds": 0.063596796, - "uploadSeconds": 0.000002113, - "downloadSeconds": 0.061863084 + "connectionEstablishedSeconds": 0.065201914, + "uploadSeconds": 7.97e-7, + "downloadSeconds": 0.063409635 }, { - "connectionEstablishedSeconds": 0.0626508, - "uploadSeconds": 7.9e-7, - "downloadSeconds": 0.060858716 + "connectionEstablishedSeconds": 0.064642434, + "uploadSeconds": 0.00000181, + "downloadSeconds": 0.062844688 }, { - "connectionEstablishedSeconds": 0.065164927, - "uploadSeconds": 8.62e-7, - "downloadSeconds": 0.06338737 + "connectionEstablishedSeconds": 0.066077649, + "uploadSeconds": 0.000001935, + "downloadSeconds": 0.064318069 }, { - "connectionEstablishedSeconds": 0.065109136, - "uploadSeconds": 0.00000193, - "downloadSeconds": 0.062728035 + "connectionEstablishedSeconds": 0.063682445, + "uploadSeconds": 8.42e-7, + "downloadSeconds": 0.061896631 }, { - "connectionEstablishedSeconds": 0.064769405, - "uploadSeconds": 0.000001872, - "downloadSeconds": 0.062852259 + "connectionEstablishedSeconds": 0.063308459, + "uploadSeconds": 0.000001795, + "downloadSeconds": 0.061484441 }, { - "connectionEstablishedSeconds": 0.061786286, - "uploadSeconds": 8.24e-7, - "downloadSeconds": 0.060027114 + "connectionEstablishedSeconds": 0.059922386, + "uploadSeconds": 0.000001914, + "downloadSeconds": 0.058065268 }, { - "connectionEstablishedSeconds": 0.064935099, - "uploadSeconds": 0.000002051, - "downloadSeconds": 0.063098459 + "connectionEstablishedSeconds": 0.064627417, + "uploadSeconds": 0.000001823, + "downloadSeconds": 0.062800746 }, { - "connectionEstablishedSeconds": 0.065655911, - "uploadSeconds": 8.36e-7, - "downloadSeconds": 0.063901518 + "connectionEstablishedSeconds": 0.064167577, + "uploadSeconds": 0.00000198, + "downloadSeconds": 0.062405582 }, { - "connectionEstablishedSeconds": 0.064747825, - "uploadSeconds": 7.87e-7, - "downloadSeconds": 0.063124483 + "connectionEstablishedSeconds": 0.063558256, + "uploadSeconds": 7.7e-7, + "downloadSeconds": 0.06180833 }, { - "connectionEstablishedSeconds": 0.063503289, - "uploadSeconds": 0.000001984, - "downloadSeconds": 0.061868251 + "connectionEstablishedSeconds": 0.063632947, + "uploadSeconds": 0.000002043, + "downloadSeconds": 0.061918028 }, { - "connectionEstablishedSeconds": 0.061415703, - "uploadSeconds": 0.000001962, - "downloadSeconds": 0.05970872 + "connectionEstablishedSeconds": 0.063844984, + "uploadSeconds": 0.000001799, + "downloadSeconds": 0.062247867 }, { - "connectionEstablishedSeconds": 0.064769602, - "uploadSeconds": 8.4e-7, - "downloadSeconds": 0.063023085 + "connectionEstablishedSeconds": 0.065057619, + "uploadSeconds": 0.000001961, + "downloadSeconds": 0.063216681 }, { - "connectionEstablishedSeconds": 0.065505636, - "uploadSeconds": 8.87e-7, - "downloadSeconds": 0.063739308 + "connectionEstablishedSeconds": 0.062540966, + "uploadSeconds": 8.96e-7, + "downloadSeconds": 0.060688495 }, { - "connectionEstablishedSeconds": 0.06451846, - "uploadSeconds": 9.46e-7, - "downloadSeconds": 0.062635088 + "connectionEstablishedSeconds": 0.064904633, + "uploadSeconds": 0.000001967, + "downloadSeconds": 0.063127793 }, { - "connectionEstablishedSeconds": 0.066384201, - "uploadSeconds": 0.000002059, - "downloadSeconds": 0.063873253 + "connectionEstablishedSeconds": 0.063064295, + "uploadSeconds": 7.88e-7, + "downloadSeconds": 0.060478559 }, { - "connectionEstablishedSeconds": 0.062558555, - "uploadSeconds": 0.000001889, - "downloadSeconds": 0.060869005 + "connectionEstablishedSeconds": 0.064051755, + "uploadSeconds": 0.00000179, + "downloadSeconds": 0.062258241 }, { - "connectionEstablishedSeconds": 0.066144963, - "uploadSeconds": 0.000001031, - "downloadSeconds": 0.064446439 + "connectionEstablishedSeconds": 0.065675425, + "uploadSeconds": 0.000001966, + "downloadSeconds": 0.06396088 }, { - "connectionEstablishedSeconds": 0.064371163, - "uploadSeconds": 0.000001844, - "downloadSeconds": 0.062515291 + "connectionEstablishedSeconds": 0.066136074, + "uploadSeconds": 8.33e-7, + "downloadSeconds": 0.064474014 }, { - "connectionEstablishedSeconds": 0.064233048, - "uploadSeconds": 0.000001994, - "downloadSeconds": 0.0624386 + "connectionEstablishedSeconds": 0.064002243, + "uploadSeconds": 8.18e-7, + "downloadSeconds": 0.062341859 }, { - "connectionEstablishedSeconds": 0.06191039, - "uploadSeconds": 0.00000197, - "downloadSeconds": 0.060132284 + "connectionEstablishedSeconds": 0.063851631, + "uploadSeconds": 0.000001997, + "downloadSeconds": 0.0621131 }, { - "connectionEstablishedSeconds": 0.064568576, - "uploadSeconds": 0.000002053, - "downloadSeconds": 0.062796254 + "connectionEstablishedSeconds": 0.064506957, + "uploadSeconds": 0.00000189, + "downloadSeconds": 0.062899723 }, { - "connectionEstablishedSeconds": 0.066758576, - "uploadSeconds": 8.63e-7, - "downloadSeconds": 0.064851693 + "connectionEstablishedSeconds": 0.062909183, + "uploadSeconds": 0.000001904, + "downloadSeconds": 0.061122555 }, { - "connectionEstablishedSeconds": 0.061160558, - "uploadSeconds": 0.000001989, - "downloadSeconds": 0.059307607 + "connectionEstablishedSeconds": 0.065556422, + "uploadSeconds": 0.00000199, + "downloadSeconds": 0.06383543 }, { - "connectionEstablishedSeconds": 0.063013566, - "uploadSeconds": 0.000002047, - "downloadSeconds": 0.061166608 + "connectionEstablishedSeconds": 0.06365363, + "uploadSeconds": 0.000002292, + "downloadSeconds": 0.062093565 }, { - "connectionEstablishedSeconds": 0.062846489, - "uploadSeconds": 0.000001952, - "downloadSeconds": 0.0610489 + "connectionEstablishedSeconds": 0.064333966, + "uploadSeconds": 0.000001921, + "downloadSeconds": 0.062500201 }, { - "connectionEstablishedSeconds": 0.063905027, - "uploadSeconds": 0.000001906, - "downloadSeconds": 0.062143314 + "connectionEstablishedSeconds": 0.063589419, + "uploadSeconds": 0.000002079, + "downloadSeconds": 0.061868455 }, { - "connectionEstablishedSeconds": 0.062881868, - "uploadSeconds": 0.000001966, - "downloadSeconds": 0.061308403 + "connectionEstablishedSeconds": 0.062189631, + "uploadSeconds": 0.00000193, + "downloadSeconds": 0.0606924 }, { - "connectionEstablishedSeconds": 0.064227255, - "uploadSeconds": 0.000001957, - "downloadSeconds": 0.06239708 + "connectionEstablishedSeconds": 0.063825349, + "uploadSeconds": 6.95e-7, + "downloadSeconds": 0.06204725 }, { - "connectionEstablishedSeconds": 0.064044998, - "uploadSeconds": 0.000001985, - "downloadSeconds": 0.062253102 + "connectionEstablishedSeconds": 0.063109212, + "uploadSeconds": 0.000001852, + "downloadSeconds": 0.061355714 }, { - "connectionEstablishedSeconds": 0.062412245, - "uploadSeconds": 0.000002063, - "downloadSeconds": 0.060736469 + "connectionEstablishedSeconds": 0.062551758, + "uploadSeconds": 0.000001978, + "downloadSeconds": 0.060794018 }, { - "connectionEstablishedSeconds": 0.063499965, - "uploadSeconds": 0.000001956, - "downloadSeconds": 0.061751684 + "connectionEstablishedSeconds": 0.064215033, + "uploadSeconds": 8.48e-7, + "downloadSeconds": 0.062380982 }, { - "connectionEstablishedSeconds": 0.063699321, - "uploadSeconds": 0.000001905, - "downloadSeconds": 0.061931416 + "connectionEstablishedSeconds": 0.064608427, + "uploadSeconds": 0.000001923, + "downloadSeconds": 0.062862131 }, { - "connectionEstablishedSeconds": 0.066367568, - "uploadSeconds": 0.000001943, - "downloadSeconds": 0.064741811 + "connectionEstablishedSeconds": 0.063678964, + "uploadSeconds": 0.000001883, + "downloadSeconds": 0.061903887 }, { - "connectionEstablishedSeconds": 0.066423741, - "uploadSeconds": 8.75e-7, - "downloadSeconds": 0.064588142 + "connectionEstablishedSeconds": 0.066294745, + "uploadSeconds": 0.000001903, + "downloadSeconds": 0.064500571 }, { - "connectionEstablishedSeconds": 0.063184712, - "uploadSeconds": 0.000001091, - "downloadSeconds": 0.061426575 + "connectionEstablishedSeconds": 0.061508703, + "uploadSeconds": 0.000001906, + "downloadSeconds": 0.059627627 }, { - "connectionEstablishedSeconds": 0.062697375, - "uploadSeconds": 0.000002063, - "downloadSeconds": 0.061594337 + "connectionEstablishedSeconds": 0.062808156, + "uploadSeconds": 0.00000188, + "downloadSeconds": 0.060939134 }, { - "connectionEstablishedSeconds": 0.065604173, - "uploadSeconds": 0.000001958, - "downloadSeconds": 0.063896418 + "connectionEstablishedSeconds": 0.061670305, + "uploadSeconds": 0.000002104, + "downloadSeconds": 0.059862602 }, { - "connectionEstablishedSeconds": 0.063786339, - "uploadSeconds": 0.000001924, - "downloadSeconds": 0.061962591 + "connectionEstablishedSeconds": 0.064523911, + "uploadSeconds": 0.000001819, + "downloadSeconds": 0.062845514 }, { - "connectionEstablishedSeconds": 0.064901403, - "uploadSeconds": 8.44e-7, - "downloadSeconds": 0.063061015 + "connectionEstablishedSeconds": 0.062908637, + "uploadSeconds": 0.000001962, + "downloadSeconds": 0.06119366 }, { - "connectionEstablishedSeconds": 0.066902795, - "uploadSeconds": 0.000002142, - "downloadSeconds": 0.065148918 + "connectionEstablishedSeconds": 0.064118052, + "uploadSeconds": 8.67e-7, + "downloadSeconds": 0.062346119 }, { - "connectionEstablishedSeconds": 0.06681438, - "uploadSeconds": 9.44e-7, - "downloadSeconds": 0.06453611 + "connectionEstablishedSeconds": 0.062284829, + "uploadSeconds": 8.69e-7, + "downloadSeconds": 0.060471826 }, { - "connectionEstablishedSeconds": 0.06516872, - "uploadSeconds": 0.000001025, - "downloadSeconds": 0.063345599 + "connectionEstablishedSeconds": 0.065628805, + "uploadSeconds": 9.51e-7, + "downloadSeconds": 0.064255004 }, { - "connectionEstablishedSeconds": 0.065608415, - "uploadSeconds": 8.83e-7, - "downloadSeconds": 0.063954477 + "connectionEstablishedSeconds": 0.063255442, + "uploadSeconds": 0.000001919, + "downloadSeconds": 0.061307355 }, { - "connectionEstablishedSeconds": 0.063050374, - "uploadSeconds": 0.0000019, - "downloadSeconds": 0.061264983 + "connectionEstablishedSeconds": 0.062338916, + "uploadSeconds": 0.000001877, + "downloadSeconds": 0.060713508 }, { - "connectionEstablishedSeconds": 0.06506769, - "uploadSeconds": 0.000001938, - "downloadSeconds": 0.06324869 + "connectionEstablishedSeconds": 0.066092234, + "uploadSeconds": 8.77e-7, + "downloadSeconds": 0.064241899 }, { - "connectionEstablishedSeconds": 0.063733822, - "uploadSeconds": 8.25e-7, - "downloadSeconds": 0.06194249 + "connectionEstablishedSeconds": 0.065546715, + "uploadSeconds": 8.61e-7, + "downloadSeconds": 0.063785994 }, { - "connectionEstablishedSeconds": 0.06545029, - "uploadSeconds": 0.00000198, - "downloadSeconds": 0.063731531 + "connectionEstablishedSeconds": 0.065282245, + "uploadSeconds": 8.22e-7, + "downloadSeconds": 0.063577701 }, { - "connectionEstablishedSeconds": 0.063806752, - "uploadSeconds": 0.000001977, - "downloadSeconds": 0.062047961 + "connectionEstablishedSeconds": 0.066437563, + "uploadSeconds": 8.53e-7, + "downloadSeconds": 0.064542893 }, { - "connectionEstablishedSeconds": 0.065782118, - "uploadSeconds": 7.98e-7, - "downloadSeconds": 0.063986379 + "connectionEstablishedSeconds": 0.062982522, + "uploadSeconds": 0.000001949, + "downloadSeconds": 0.061157305 }, { - "connectionEstablishedSeconds": 0.065587017, - "uploadSeconds": 0.000001947, - "downloadSeconds": 0.063807411 + "connectionEstablishedSeconds": 0.064840196, + "uploadSeconds": 9.37e-7, + "downloadSeconds": 0.063083308 }, { - "connectionEstablishedSeconds": 0.064806976, - "uploadSeconds": 0.000001822, - "downloadSeconds": 0.063000614 + "connectionEstablishedSeconds": 0.062328395, + "uploadSeconds": 8.67e-7, + "downloadSeconds": 0.060646891 }, { - "connectionEstablishedSeconds": 0.063191426, - "uploadSeconds": 8.52e-7, - "downloadSeconds": 0.061417895 + "connectionEstablishedSeconds": 0.065517896, + "uploadSeconds": 8.26e-7, + "downloadSeconds": 0.063675396 }, { - "connectionEstablishedSeconds": 0.066138367, - "uploadSeconds": 0.000001897, - "downloadSeconds": 0.064314152 + "connectionEstablishedSeconds": 0.06468413, + "uploadSeconds": 0.000002081, + "downloadSeconds": 0.062942522 }, { - "connectionEstablishedSeconds": 0.06372295, - "uploadSeconds": 0.000001952, - "downloadSeconds": 0.061796685 + "connectionEstablishedSeconds": 0.062145911, + "uploadSeconds": 0.000002038, + "downloadSeconds": 0.060389068 }, { - "connectionEstablishedSeconds": 0.064172483, - "uploadSeconds": 0.00000199, - "downloadSeconds": 0.062531066 + "connectionEstablishedSeconds": 0.06232188, + "uploadSeconds": 0.000002008, + "downloadSeconds": 0.059270087 }, { - "connectionEstablishedSeconds": 0.069595187, - "uploadSeconds": 8.8e-7, - "downloadSeconds": 0.0677336 + "connectionEstablishedSeconds": 0.064469934, + "uploadSeconds": 0.000001808, + "downloadSeconds": 0.062752466 }, { - "connectionEstablishedSeconds": 0.065298142, - "uploadSeconds": 0.000002023, - "downloadSeconds": 0.063484516 + "connectionEstablishedSeconds": 0.062709635, + "uploadSeconds": 0.000002034, + "downloadSeconds": 0.060945351 } ], "implementation": "quic-go", @@ -982,504 +982,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.128782283, - "uploadSeconds": 0.064142782, - "downloadSeconds": 0.064041615 + "connectionEstablishedSeconds": 0.120934675, + "uploadSeconds": 0.060318856, + "downloadSeconds": 0.060104499 }, { - "connectionEstablishedSeconds": 0.122877358, - "uploadSeconds": 0.061015723, - "downloadSeconds": 0.061037874 + "connectionEstablishedSeconds": 0.128061517, + "uploadSeconds": 0.063605463, + "downloadSeconds": 0.063664715 }, { - "connectionEstablishedSeconds": 0.126806208, - "uploadSeconds": 0.063001184, - "downloadSeconds": 0.06303076 + "connectionEstablishedSeconds": 0.127658799, + "uploadSeconds": 0.063452656, + "downloadSeconds": 0.063454888 }, { - "connectionEstablishedSeconds": 0.127298349, - "uploadSeconds": 0.063292919, - "downloadSeconds": 0.063327184 + "connectionEstablishedSeconds": 0.125617667, + "uploadSeconds": 0.062401489, + "downloadSeconds": 0.062467259 }, { - "connectionEstablishedSeconds": 0.124117775, - "uploadSeconds": 0.061674621, - "downloadSeconds": 0.061733501 + "connectionEstablishedSeconds": 0.124154207, + "uploadSeconds": 0.061699826, + "downloadSeconds": 0.061724492 }, { - "connectionEstablishedSeconds": 0.11815247, - "uploadSeconds": 0.058715189, - "downloadSeconds": 0.058717916 + "connectionEstablishedSeconds": 0.127846138, + "uploadSeconds": 0.063515977, + "downloadSeconds": 0.063531759 }, { - "connectionEstablishedSeconds": 0.130421381, - "uploadSeconds": 0.064805873, - "downloadSeconds": 0.064916393 + "connectionEstablishedSeconds": 0.120729252, + "uploadSeconds": 0.059916196, + "downloadSeconds": 0.060001179 }, { - "connectionEstablishedSeconds": 0.120928897, - "uploadSeconds": 0.060078751, - "downloadSeconds": 0.060161814 + "connectionEstablishedSeconds": 0.127417463, + "uploadSeconds": 0.063285207, + "downloadSeconds": 0.063336793 }, { - "connectionEstablishedSeconds": 0.1208453, - "uploadSeconds": 0.059910829, - "downloadSeconds": 0.059957343 + "connectionEstablishedSeconds": 0.121040576, + "uploadSeconds": 0.060114305, + "downloadSeconds": 0.060168989 }, { - "connectionEstablishedSeconds": 0.129701024, - "uploadSeconds": 0.064453217, - "downloadSeconds": 0.064540534 + "connectionEstablishedSeconds": 0.124943479, + "uploadSeconds": 0.062034017, + "downloadSeconds": 0.062080267 }, { - "connectionEstablishedSeconds": 0.122099613, - "uploadSeconds": 0.060642482, - "downloadSeconds": 0.060735635 + "connectionEstablishedSeconds": 0.122475451, + "uploadSeconds": 0.060855996, + "downloadSeconds": 0.060879618 }, { - "connectionEstablishedSeconds": 0.125861895, - "uploadSeconds": 0.062546269, - "downloadSeconds": 0.062614625 + "connectionEstablishedSeconds": 0.1236592, + "uploadSeconds": 0.0611343, + "downloadSeconds": 0.061200789 }, { - "connectionEstablishedSeconds": 0.121033173, - "uploadSeconds": 0.060119234, - "downloadSeconds": 0.060325896 + "connectionEstablishedSeconds": 0.123640147, + "uploadSeconds": 0.061384688, + "downloadSeconds": 0.061466515 }, { - "connectionEstablishedSeconds": 0.12897512, - "uploadSeconds": 0.064099577, - "downloadSeconds": 0.064192461 + "connectionEstablishedSeconds": 0.118841315, + "uploadSeconds": 0.05895918, + "downloadSeconds": 0.059036116 }, { - "connectionEstablishedSeconds": 0.12537412, - "uploadSeconds": 0.062271465, - "downloadSeconds": 0.062348898 + "connectionEstablishedSeconds": 0.129343271, + "uploadSeconds": 0.064244239, + "downloadSeconds": 0.064332254 }, { - "connectionEstablishedSeconds": 0.122704549, - "uploadSeconds": 0.060939701, - "downloadSeconds": 0.061026676 + "connectionEstablishedSeconds": 0.126433629, + "uploadSeconds": 0.062770414, + "downloadSeconds": 0.062846733 }, { - "connectionEstablishedSeconds": 0.121299417, - "uploadSeconds": 0.060644079, - "downloadSeconds": 0.060340429 + "connectionEstablishedSeconds": 0.123173028, + "uploadSeconds": 0.061131114, + "downloadSeconds": 0.061217306 }, { - "connectionEstablishedSeconds": 0.129463275, - "uploadSeconds": 0.064330819, - "downloadSeconds": 0.064387025 + "connectionEstablishedSeconds": 0.125137804, + "uploadSeconds": 0.062109799, + "downloadSeconds": 0.062277841 }, { - "connectionEstablishedSeconds": 0.118009564, - "uploadSeconds": 0.058634205, - "downloadSeconds": 0.058707631 + "connectionEstablishedSeconds": 0.122518993, + "uploadSeconds": 0.060827891, + "downloadSeconds": 0.060882129 }, { - "connectionEstablishedSeconds": 0.126005819, - "uploadSeconds": 0.06262453, - "downloadSeconds": 0.062693139 + "connectionEstablishedSeconds": 0.127896226, + "uploadSeconds": 0.063507707, + "downloadSeconds": 0.063647707 }, { - "connectionEstablishedSeconds": 0.123951592, - "uploadSeconds": 0.061564866, - "downloadSeconds": 0.061667522 + "connectionEstablishedSeconds": 0.126060862, + "uploadSeconds": 0.062561714, + "downloadSeconds": 0.062696571 }, { - "connectionEstablishedSeconds": 0.130207645, - "uploadSeconds": 0.064686677, - "downloadSeconds": 0.064783184 + "connectionEstablishedSeconds": 0.120696113, + "uploadSeconds": 0.059911559, + "downloadSeconds": 0.059996766 }, { - "connectionEstablishedSeconds": 0.122590137, - "uploadSeconds": 0.060902271, - "downloadSeconds": 0.060967625 + "connectionEstablishedSeconds": 0.129053947, + "uploadSeconds": 0.064217787, + "downloadSeconds": 0.064187147 }, { - "connectionEstablishedSeconds": 0.121903049, - "uploadSeconds": 0.060545381, - "downloadSeconds": 0.060599883 + "connectionEstablishedSeconds": 0.124066876, + "uploadSeconds": 0.061617166, + "downloadSeconds": 0.061736398 }, { - "connectionEstablishedSeconds": 0.127654451, - "uploadSeconds": 0.063419366, - "downloadSeconds": 0.063509647 + "connectionEstablishedSeconds": 0.125927228, + "uploadSeconds": 0.062530847, + "downloadSeconds": 0.062595748 }, { - "connectionEstablishedSeconds": 0.123890299, - "uploadSeconds": 0.061515197, - "downloadSeconds": 0.061600551 + "connectionEstablishedSeconds": 0.128120761, + "uploadSeconds": 0.063630588, + "downloadSeconds": 0.063702889 }, { - "connectionEstablishedSeconds": 0.127159301, - "uploadSeconds": 0.063216999, - "downloadSeconds": 0.063270615 + "connectionEstablishedSeconds": 0.120337392, + "uploadSeconds": 0.059725874, + "downloadSeconds": 0.059786297 }, { - "connectionEstablishedSeconds": 0.11853953, - "uploadSeconds": 0.058840163, - "downloadSeconds": 0.058910879 + "connectionEstablishedSeconds": 0.125247067, + "uploadSeconds": 0.062183868, + "downloadSeconds": 0.281597541 }, { - "connectionEstablishedSeconds": 0.125482649, - "uploadSeconds": 0.062332114, - "downloadSeconds": 0.062400346 + "connectionEstablishedSeconds": 0.123262912, + "uploadSeconds": 0.061193402, + "downloadSeconds": 0.061281943 }, { - "connectionEstablishedSeconds": 0.122352409, - "uploadSeconds": 0.060781148, - "downloadSeconds": 0.060850876 + "connectionEstablishedSeconds": 0.125235129, + "uploadSeconds": 0.062211734, + "downloadSeconds": 0.062275937 }, { - "connectionEstablishedSeconds": 0.127330874, - "uploadSeconds": 0.063281691, - "downloadSeconds": 0.063333099 + "connectionEstablishedSeconds": 0.123164681, + "uploadSeconds": 0.061163995, + "downloadSeconds": 0.061252078 }, { - "connectionEstablishedSeconds": 0.125958156, - "uploadSeconds": 0.062593238, - "downloadSeconds": 0.062644244 + "connectionEstablishedSeconds": 0.12804124, + "uploadSeconds": 0.063571143, + "downloadSeconds": 0.063657599 }, { - "connectionEstablishedSeconds": 0.126108225, - "uploadSeconds": 0.062657803, - "downloadSeconds": 0.062761149 + "connectionEstablishedSeconds": 0.123137264, + "uploadSeconds": 0.061164433, + "downloadSeconds": 0.061262922 }, { - "connectionEstablishedSeconds": 0.120901849, - "uploadSeconds": 0.06002898, - "downloadSeconds": 0.060096329 + "connectionEstablishedSeconds": 0.124465393, + "uploadSeconds": 0.061852565, + "downloadSeconds": 0.061908292 }, { - "connectionEstablishedSeconds": 0.130562683, - "uploadSeconds": 0.064496581, - "downloadSeconds": 0.064553639 + "connectionEstablishedSeconds": 0.125980795, + "uploadSeconds": 0.062563852, + "downloadSeconds": 0.062633138 }, { - "connectionEstablishedSeconds": 0.126918076, - "uploadSeconds": 0.063321541, - "downloadSeconds": 0.063453397 + "connectionEstablishedSeconds": 0.124921288, + "uploadSeconds": 0.062041248, + "downloadSeconds": 0.062088885 }, { - "connectionEstablishedSeconds": 0.12198058, - "uploadSeconds": 0.06060065, - "downloadSeconds": 0.060660093 + "connectionEstablishedSeconds": 0.121878166, + "uploadSeconds": 0.060482514, + "downloadSeconds": 0.060604527 }, { - "connectionEstablishedSeconds": 0.1259285, - "uploadSeconds": 0.062543989, - "downloadSeconds": 0.062632145 + "connectionEstablishedSeconds": 0.125525756, + "uploadSeconds": 0.062363834, + "downloadSeconds": 0.062414314 }, { - "connectionEstablishedSeconds": 0.12017305, - "uploadSeconds": 0.059617034, - "downloadSeconds": 0.059714616 + "connectionEstablishedSeconds": 0.128761013, + "uploadSeconds": 0.063946436, + "downloadSeconds": 0.064037895 }, { - "connectionEstablishedSeconds": 0.120856119, - "uploadSeconds": 0.0600165, - "downloadSeconds": 0.060091443 + "connectionEstablishedSeconds": 0.122879624, + "uploadSeconds": 0.060991367, + "downloadSeconds": 0.061087944 }, { - "connectionEstablishedSeconds": 0.126045508, - "uploadSeconds": 0.06261744, - "downloadSeconds": 0.062673731 + "connectionEstablishedSeconds": 0.123025618, + "uploadSeconds": 0.061063762, + "downloadSeconds": 0.06114214 }, { - "connectionEstablishedSeconds": 0.124257681, - "uploadSeconds": 0.061677647, - "downloadSeconds": 0.061778575 + "connectionEstablishedSeconds": 0.127292488, + "uploadSeconds": 0.06321786, + "downloadSeconds": 0.063284921 }, { - "connectionEstablishedSeconds": 0.125857894, - "uploadSeconds": 0.062652721, - "downloadSeconds": 0.062597471 + "connectionEstablishedSeconds": 0.122220021, + "uploadSeconds": 0.060705551, + "downloadSeconds": 0.060791717 }, { - "connectionEstablishedSeconds": 0.122715896, - "uploadSeconds": 0.060923454, - "downloadSeconds": 0.06102335 + "connectionEstablishedSeconds": 0.130945698, + "uploadSeconds": 0.065055162, + "downloadSeconds": 0.065136451 }, { - "connectionEstablishedSeconds": 0.126295478, - "uploadSeconds": 0.062703852, - "downloadSeconds": 0.062786489 + "connectionEstablishedSeconds": 0.126904364, + "uploadSeconds": 0.062972605, + "downloadSeconds": 0.062994862 }, { - "connectionEstablishedSeconds": 0.130609852, - "uploadSeconds": 0.0648943, - "downloadSeconds": 0.064971453 + "connectionEstablishedSeconds": 0.127727215, + "uploadSeconds": 0.063402176, + "downloadSeconds": 0.06346753 }, { - "connectionEstablishedSeconds": 0.124722058, - "uploadSeconds": 0.061948955, - "downloadSeconds": 0.062011269 + "connectionEstablishedSeconds": 0.121838446, + "uploadSeconds": 0.060497519, + "downloadSeconds": 0.060547155 }, { - "connectionEstablishedSeconds": 0.128852791, - "uploadSeconds": 0.064004153, - "downloadSeconds": 0.064074731 + "connectionEstablishedSeconds": 0.122744381, + "uploadSeconds": 0.060963721, + "downloadSeconds": 0.061094253 }, { - "connectionEstablishedSeconds": 0.129624863, - "uploadSeconds": 0.064394522, - "downloadSeconds": 0.064471689 + "connectionEstablishedSeconds": 0.127691052, + "uploadSeconds": 0.063357898, + "downloadSeconds": 0.063426201 }, { - "connectionEstablishedSeconds": 0.129167269, - "uploadSeconds": 0.064227411, - "downloadSeconds": 0.064319623 + "connectionEstablishedSeconds": 0.120310544, + "uploadSeconds": 0.059725696, + "downloadSeconds": 0.059788932 }, { - "connectionEstablishedSeconds": 0.124525167, - "uploadSeconds": 0.061863103, - "downloadSeconds": 0.061928295 + "connectionEstablishedSeconds": 0.122420557, + "uploadSeconds": 0.060766143, + "downloadSeconds": 0.060826232 }, { - "connectionEstablishedSeconds": 0.127854544, - "uploadSeconds": 0.063500323, - "downloadSeconds": 0.063627182 + "connectionEstablishedSeconds": 0.125849669, + "uploadSeconds": 0.062454754, + "downloadSeconds": 0.062558146 }, { - "connectionEstablishedSeconds": 0.118824595, - "uploadSeconds": 0.059012971, - "downloadSeconds": 0.059077709 + "connectionEstablishedSeconds": 0.124735161, + "uploadSeconds": 0.061991959, + "downloadSeconds": 0.062021647 }, { - "connectionEstablishedSeconds": 0.12448396, - "uploadSeconds": 0.061848909, - "downloadSeconds": 0.061928463 + "connectionEstablishedSeconds": 0.131121068, + "uploadSeconds": 0.065110347, + "downloadSeconds": 0.065198194 }, { - "connectionEstablishedSeconds": 0.125085891, - "uploadSeconds": 0.062138362, - "downloadSeconds": 0.062185374 + "connectionEstablishedSeconds": 0.123359776, + "uploadSeconds": 0.061250163, + "downloadSeconds": 0.06132682 }, { - "connectionEstablishedSeconds": 0.120385765, - "uploadSeconds": 0.059740462, - "downloadSeconds": 0.059817489 + "connectionEstablishedSeconds": 0.118813692, + "uploadSeconds": 0.058992344, + "downloadSeconds": 0.059054347 }, { - "connectionEstablishedSeconds": 0.126787493, - "uploadSeconds": 0.063007284, - "downloadSeconds": 0.063050622 + "connectionEstablishedSeconds": 0.119864335, + "uploadSeconds": 0.059497153, + "downloadSeconds": 0.059581931 }, { - "connectionEstablishedSeconds": 0.127343774, - "uploadSeconds": 0.0632535, - "downloadSeconds": 0.06330645 + "connectionEstablishedSeconds": 0.126542452, + "uploadSeconds": 0.06282126, + "downloadSeconds": 0.062886158 }, { - "connectionEstablishedSeconds": 0.129443303, - "uploadSeconds": 0.064301956, - "downloadSeconds": 0.064416941 + "connectionEstablishedSeconds": 0.123810888, + "uploadSeconds": 0.061499964, + "downloadSeconds": 0.06154741 }, { - "connectionEstablishedSeconds": 0.12880829, - "uploadSeconds": 0.063989307, - "downloadSeconds": 0.064044952 + "connectionEstablishedSeconds": 0.12587658, + "uploadSeconds": 0.062511492, + "downloadSeconds": 0.062575783 }, { - "connectionEstablishedSeconds": 0.125715137, - "uploadSeconds": 0.062466058, - "downloadSeconds": 0.062509002 + "connectionEstablishedSeconds": 0.128565419, + "uploadSeconds": 0.06385599, + "downloadSeconds": 0.063953685 }, { - "connectionEstablishedSeconds": 0.130802753, - "uploadSeconds": 0.06499956, - "downloadSeconds": 0.065050477 + "connectionEstablishedSeconds": 0.124656418, + "uploadSeconds": 0.061917427, + "downloadSeconds": 0.061976147 }, { - "connectionEstablishedSeconds": 0.127359533, - "uploadSeconds": 0.06326897, - "downloadSeconds": 0.063325505 + "connectionEstablishedSeconds": 0.125494283, + "uploadSeconds": 0.06232114, + "downloadSeconds": 0.062370385 }, { - "connectionEstablishedSeconds": 0.125144649, - "uploadSeconds": 0.06215178, - "downloadSeconds": 0.062216615 + "connectionEstablishedSeconds": 0.124625158, + "uploadSeconds": 0.061885121, + "downloadSeconds": 0.061940325 }, { - "connectionEstablishedSeconds": 0.128044962, - "uploadSeconds": 0.063625884, - "downloadSeconds": 0.063674575 + "connectionEstablishedSeconds": 0.125954686, + "uploadSeconds": 0.062569357, + "downloadSeconds": 0.06262672 }, { - "connectionEstablishedSeconds": 0.12984098, - "uploadSeconds": 0.064508148, - "downloadSeconds": 0.064584498 + "connectionEstablishedSeconds": 0.12927773, + "uploadSeconds": 0.064277478, + "downloadSeconds": 0.064313302 }, { - "connectionEstablishedSeconds": 0.127962304, - "uploadSeconds": 0.063610496, - "downloadSeconds": 0.063675836 + "connectionEstablishedSeconds": 0.127408792, + "uploadSeconds": 0.063302092, + "downloadSeconds": 0.063400735 }, { - "connectionEstablishedSeconds": 0.120000642, - "uploadSeconds": 0.059590507, - "downloadSeconds": 0.059647934 + "connectionEstablishedSeconds": 0.127741644, + "uploadSeconds": 0.063456966, + "downloadSeconds": 0.063505067 }, { - "connectionEstablishedSeconds": 0.125749348, - "uploadSeconds": 0.062478223, - "downloadSeconds": 0.062530638 + "connectionEstablishedSeconds": 0.128843782, + "uploadSeconds": 0.063830003, + "downloadSeconds": 0.06391866 }, { - "connectionEstablishedSeconds": 0.127441701, - "uploadSeconds": 0.063300783, - "downloadSeconds": 0.063393374 + "connectionEstablishedSeconds": 0.123434963, + "uploadSeconds": 0.061278556, + "downloadSeconds": 0.061338622 }, { - "connectionEstablishedSeconds": 0.123424165, - "uploadSeconds": 0.061305335, - "downloadSeconds": 0.06136762 + "connectionEstablishedSeconds": 0.127779544, + "uploadSeconds": 0.063336665, + "downloadSeconds": 0.063413851 }, { - "connectionEstablishedSeconds": 0.12304951, - "uploadSeconds": 0.061146982, - "downloadSeconds": 0.06118203 + "connectionEstablishedSeconds": 0.124132235, + "uploadSeconds": 0.061671306, + "downloadSeconds": 0.061763426 }, { - "connectionEstablishedSeconds": 0.125308047, - "uploadSeconds": 0.062224494, - "downloadSeconds": 0.062323807 + "connectionEstablishedSeconds": 0.119273985, + "uploadSeconds": 0.059135882, + "downloadSeconds": 0.059188158 }, { - "connectionEstablishedSeconds": 0.12973905, - "uploadSeconds": 0.064472966, - "downloadSeconds": 0.064529546 + "connectionEstablishedSeconds": 0.129304256, + "uploadSeconds": 0.064229577, + "downloadSeconds": 0.064292811 }, { - "connectionEstablishedSeconds": 0.128102656, - "uploadSeconds": 0.063863468, - "downloadSeconds": 0.063635207 + "connectionEstablishedSeconds": 0.127846291, + "uploadSeconds": 0.063498451, + "downloadSeconds": 0.063584271 }, { - "connectionEstablishedSeconds": 0.125637036, - "uploadSeconds": 0.062420345, - "downloadSeconds": 0.062469283 + "connectionEstablishedSeconds": 0.127631297, + "uploadSeconds": 0.063379055, + "downloadSeconds": 0.063459619 }, { - "connectionEstablishedSeconds": 0.118981084, - "uploadSeconds": 0.059069735, - "downloadSeconds": 0.059129922 + "connectionEstablishedSeconds": 0.128862305, + "uploadSeconds": 0.064011224, + "downloadSeconds": 0.064089416 }, { - "connectionEstablishedSeconds": 0.120720618, - "uploadSeconds": 0.059951333, - "downloadSeconds": 0.060029474 + "connectionEstablishedSeconds": 0.123898529, + "uploadSeconds": 0.061647949, + "downloadSeconds": 0.061704126 }, { - "connectionEstablishedSeconds": 0.123367197, - "uploadSeconds": 0.061363585, - "downloadSeconds": 0.061318307 + "connectionEstablishedSeconds": 0.126427652, + "uploadSeconds": 0.062780577, + "downloadSeconds": 0.062850221 }, { - "connectionEstablishedSeconds": 0.125229133, - "uploadSeconds": 0.062206788, - "downloadSeconds": 0.062294396 + "connectionEstablishedSeconds": 0.12041383, + "uploadSeconds": 0.059765423, + "downloadSeconds": 0.05985171 }, { - "connectionEstablishedSeconds": 0.12312703, - "uploadSeconds": 0.061167752, - "downloadSeconds": 0.061232767 + "connectionEstablishedSeconds": 0.122487266, + "uploadSeconds": 0.060804338, + "downloadSeconds": 0.060884063 }, { - "connectionEstablishedSeconds": 0.125516511, - "uploadSeconds": 0.062366896, - "downloadSeconds": 0.062436136 + "connectionEstablishedSeconds": 0.12405444, + "uploadSeconds": 0.061615829, + "downloadSeconds": 0.0617448 }, { - "connectionEstablishedSeconds": 0.126220729, - "uploadSeconds": 0.062574059, - "downloadSeconds": 0.062642618 + "connectionEstablishedSeconds": 0.1252939, + "uploadSeconds": 0.062233868, + "downloadSeconds": 0.062298883 }, { - "connectionEstablishedSeconds": 0.125496394, - "uploadSeconds": 0.0623366, - "downloadSeconds": 0.062402276 + "connectionEstablishedSeconds": 0.127402042, + "uploadSeconds": 0.063241467, + "downloadSeconds": 0.063342943 }, { - "connectionEstablishedSeconds": 0.123646613, - "uploadSeconds": 0.061393611, - "downloadSeconds": 0.061439843 + "connectionEstablishedSeconds": 0.126685079, + "uploadSeconds": 0.06292761, + "downloadSeconds": 0.062982324 }, { - "connectionEstablishedSeconds": 0.128086877, - "uploadSeconds": 0.063653077, - "downloadSeconds": 0.063718554 + "connectionEstablishedSeconds": 0.121871274, + "uploadSeconds": 0.060740917, + "downloadSeconds": 0.060584697 }, { - "connectionEstablishedSeconds": 0.129262803, - "uploadSeconds": 0.064253408, - "downloadSeconds": 0.064303179 + "connectionEstablishedSeconds": 0.119699832, + "uploadSeconds": 0.059455631, + "downloadSeconds": 0.059498272 }, { - "connectionEstablishedSeconds": 0.127148072, - "uploadSeconds": 0.063193085, - "downloadSeconds": 0.063277279 + "connectionEstablishedSeconds": 0.129019714, + "uploadSeconds": 0.064098047, + "downloadSeconds": 0.064190354 }, { - "connectionEstablishedSeconds": 0.128584395, - "uploadSeconds": 0.063907041, - "downloadSeconds": 0.06396357 + "connectionEstablishedSeconds": 0.119018863, + "uploadSeconds": 0.059229123, + "downloadSeconds": 0.059185492 }, { - "connectionEstablishedSeconds": 0.124292227, - "uploadSeconds": 0.061732539, - "downloadSeconds": 0.061779283 + "connectionEstablishedSeconds": 0.125366127, + "uploadSeconds": 0.062341426, + "downloadSeconds": 0.062342015 }, { - "connectionEstablishedSeconds": 0.125535576, - "uploadSeconds": 0.062369058, - "downloadSeconds": 0.062449164 + "connectionEstablishedSeconds": 0.125611461, + "uploadSeconds": 0.062410843, + "downloadSeconds": 0.062456794 }, { - "connectionEstablishedSeconds": 0.130730147, - "uploadSeconds": 0.064963572, - "downloadSeconds": 0.065039169 + "connectionEstablishedSeconds": 0.123740612, + "uploadSeconds": 0.061438856, + "downloadSeconds": 0.061487596 }, { - "connectionEstablishedSeconds": 0.123208736, - "uploadSeconds": 0.061167329, - "downloadSeconds": 0.061260565 + "connectionEstablishedSeconds": 0.130171847, + "uploadSeconds": 0.064657351, + "downloadSeconds": 0.064722367 }, { - "connectionEstablishedSeconds": 0.127480441, - "uploadSeconds": 0.063313736, - "downloadSeconds": 0.063365761 + "connectionEstablishedSeconds": 0.121008144, + "uploadSeconds": 0.060096855, + "downloadSeconds": 0.060141129 }, { - "connectionEstablishedSeconds": 0.124865335, - "uploadSeconds": 0.062069213, - "downloadSeconds": 0.062112659 + "connectionEstablishedSeconds": 0.122261724, + "uploadSeconds": 0.060685092, + "downloadSeconds": 0.060783431 }, { - "connectionEstablishedSeconds": 0.127346962, - "uploadSeconds": 0.063268241, - "downloadSeconds": 0.063310113 + "connectionEstablishedSeconds": 0.12198358, + "uploadSeconds": 0.060587308, + "downloadSeconds": 0.060621551 }, { - "connectionEstablishedSeconds": 0.130435342, - "uploadSeconds": 0.064819538, - "downloadSeconds": 0.064874989 + "connectionEstablishedSeconds": 0.129276378, + "uploadSeconds": 0.064217955, + "downloadSeconds": 0.064279332 }, { - "connectionEstablishedSeconds": 0.122051259, - "uploadSeconds": 0.060598517, - "downloadSeconds": 0.060682717 + "connectionEstablishedSeconds": 0.117664798, + "uploadSeconds": 0.058423073, + "downloadSeconds": 0.058481222 }, { - "connectionEstablishedSeconds": 0.126631048, - "uploadSeconds": 0.062935626, - "downloadSeconds": 0.062977163 + "connectionEstablishedSeconds": 0.122264693, + "uploadSeconds": 0.060714713, + "downloadSeconds": 0.060778335 }, { - "connectionEstablishedSeconds": 0.125074157, - "uploadSeconds": 0.062137365, - "downloadSeconds": 0.06219817 + "connectionEstablishedSeconds": 0.12435423, + "uploadSeconds": 0.061728479, + "downloadSeconds": 0.061809844 } ], "implementation": "rust-libp2p", @@ -1489,504 +1489,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.065269712, - "uploadSeconds": 0.126687384, - "downloadSeconds": 0.000095155 + "connectionEstablishedSeconds": 0.062228087, + "uploadSeconds": 0.120893191, + "downloadSeconds": 0.000099165 }, { - "connectionEstablishedSeconds": 0.061772457, - "uploadSeconds": 0.119781377, - "downloadSeconds": 0.000088763 + "connectionEstablishedSeconds": 0.063734208, + "uploadSeconds": 0.123902018, + "downloadSeconds": 0.000045828 }, { - "connectionEstablishedSeconds": 0.063039581, - "uploadSeconds": 0.122439261, - "downloadSeconds": 0.000063515 + "connectionEstablishedSeconds": 0.064510474, + "uploadSeconds": 0.125358969, + "downloadSeconds": 0.000105478 }, { - "connectionEstablishedSeconds": 0.065332846, - "uploadSeconds": 0.126995051, - "downloadSeconds": 0.000086659 + "connectionEstablishedSeconds": 0.065255394, + "uploadSeconds": 0.127108206, + "downloadSeconds": 0.000088449 }, { - "connectionEstablishedSeconds": 0.064835466, - "uploadSeconds": 0.126084756, - "downloadSeconds": 0.000102772 + "connectionEstablishedSeconds": 0.066390359, + "uploadSeconds": 0.129048959, + "downloadSeconds": 0.000087506 }, { - "connectionEstablishedSeconds": 0.064252537, - "uploadSeconds": 0.125076452, - "downloadSeconds": 0.00008998 + "connectionEstablishedSeconds": 0.062640027, + "uploadSeconds": 0.121685794, + "downloadSeconds": 0.000085337 }, { - "connectionEstablishedSeconds": 0.062896955, - "uploadSeconds": 0.122347549, - "downloadSeconds": 0.000088885 + "connectionEstablishedSeconds": 0.064499552, + "uploadSeconds": 0.125410019, + "downloadSeconds": 0.000087664 }, { - "connectionEstablishedSeconds": 0.062537671, - "uploadSeconds": 0.121699801, - "downloadSeconds": 0.000105042 + "connectionEstablishedSeconds": 0.065494969, + "uploadSeconds": 0.127446356, + "downloadSeconds": 0.000085126 }, { - "connectionEstablishedSeconds": 0.062560666, - "uploadSeconds": 0.121530528, - "downloadSeconds": 0.000083081 + "connectionEstablishedSeconds": 0.06453883, + "uploadSeconds": 0.125435273, + "downloadSeconds": 0.00008866 }, { - "connectionEstablishedSeconds": 0.06503231, - "uploadSeconds": 0.12662378, - "downloadSeconds": 0.000076862 + "connectionEstablishedSeconds": 0.065465495, + "uploadSeconds": 0.127337886, + "downloadSeconds": 0.000088228 }, { - "connectionEstablishedSeconds": 0.064646935, - "uploadSeconds": 0.125940369, - "downloadSeconds": 0.000048777 + "connectionEstablishedSeconds": 0.065497585, + "uploadSeconds": 0.127547688, + "downloadSeconds": 0.000048445 }, { - "connectionEstablishedSeconds": 0.066467573, - "uploadSeconds": 0.129119886, - "downloadSeconds": 0.000109769 + "connectionEstablishedSeconds": 0.062053488, + "uploadSeconds": 0.120570934, + "downloadSeconds": 0.000051426 }, { - "connectionEstablishedSeconds": 0.066872165, - "uploadSeconds": 0.130419701, - "downloadSeconds": 0.000087987 + "connectionEstablishedSeconds": 0.065189638, + "uploadSeconds": 0.126649956, + "downloadSeconds": 0.000079552 }, { - "connectionEstablishedSeconds": 0.066463517, - "uploadSeconds": 0.129347194, - "downloadSeconds": 0.000088743 + "connectionEstablishedSeconds": 0.064666342, + "uploadSeconds": 0.125720425, + "downloadSeconds": 0.000089942 }, { - "connectionEstablishedSeconds": 0.062683614, - "uploadSeconds": 0.121793655, - "downloadSeconds": 0.000101821 + "connectionEstablishedSeconds": 0.062484754, + "uploadSeconds": 0.121424687, + "downloadSeconds": 0.0000493 }, { - "connectionEstablishedSeconds": 0.064007545, - "uploadSeconds": 0.124402074, - "downloadSeconds": 0.000051133 + "connectionEstablishedSeconds": 0.064606624, + "uploadSeconds": 0.125707048, + "downloadSeconds": 0.0000876 }, { - "connectionEstablishedSeconds": 0.066345827, - "uploadSeconds": 0.129196438, - "downloadSeconds": 0.000087874 + "connectionEstablishedSeconds": 0.066222267, + "uploadSeconds": 0.128878726, + "downloadSeconds": 0.00008468 }, { - "connectionEstablishedSeconds": 0.061959997, - "uploadSeconds": 0.120403148, - "downloadSeconds": 0.000099978 + "connectionEstablishedSeconds": 0.063119375, + "uploadSeconds": 0.122659138, + "downloadSeconds": 0.000105409 }, { - "connectionEstablishedSeconds": 0.064957415, - "uploadSeconds": 0.126484389, - "downloadSeconds": 0.000086646 + "connectionEstablishedSeconds": 0.064945702, + "uploadSeconds": 0.125868481, + "downloadSeconds": 0.000085921 }, { - "connectionEstablishedSeconds": 0.064050398, - "uploadSeconds": 0.124593436, - "downloadSeconds": 0.000093129 + "connectionEstablishedSeconds": 0.061924524, + "uploadSeconds": 0.120503709, + "downloadSeconds": 0.00007517 }, { - "connectionEstablishedSeconds": 0.065479175, - "uploadSeconds": 0.127563336, - "downloadSeconds": 0.000091752 + "connectionEstablishedSeconds": 0.063605631, + "uploadSeconds": 0.123602947, + "downloadSeconds": 0.000102754 }, { - "connectionEstablishedSeconds": 0.064459311, - "uploadSeconds": 0.125632443, - "downloadSeconds": 0.000088312 + "connectionEstablishedSeconds": 0.065523997, + "uploadSeconds": 0.127420361, + "downloadSeconds": 0.000106991 }, { - "connectionEstablishedSeconds": 0.065418506, - "uploadSeconds": 0.127318706, - "downloadSeconds": 0.000099893 + "connectionEstablishedSeconds": 0.063640155, + "uploadSeconds": 0.123723695, + "downloadSeconds": 0.000076951 }, { - "connectionEstablishedSeconds": 0.06115891, - "uploadSeconds": 0.118787732, - "downloadSeconds": 0.000072519 + "connectionEstablishedSeconds": 0.064030146, + "uploadSeconds": 0.124476116, + "downloadSeconds": 0.000083057 }, { - "connectionEstablishedSeconds": 0.063789728, - "uploadSeconds": 0.124151792, - "downloadSeconds": 0.000061331 + "connectionEstablishedSeconds": 0.063251595, + "uploadSeconds": 0.123027875, + "downloadSeconds": 0.000107909 }, { - "connectionEstablishedSeconds": 0.063565335, - "uploadSeconds": 0.123800509, - "downloadSeconds": 0.000066504 + "connectionEstablishedSeconds": 0.06472421, + "uploadSeconds": 0.125950818, + "downloadSeconds": 0.000050403 }, { - "connectionEstablishedSeconds": 0.065340559, - "uploadSeconds": 0.127107457, - "downloadSeconds": 0.000082091 + "connectionEstablishedSeconds": 0.063615584, + "uploadSeconds": 0.123676684, + "downloadSeconds": 0.000100003 }, { - "connectionEstablishedSeconds": 0.065274161, - "uploadSeconds": 0.126985152, - "downloadSeconds": 0.000098832 + "connectionEstablishedSeconds": 0.064527459, + "uploadSeconds": 0.125573941, + "downloadSeconds": 0.000142577 }, { - "connectionEstablishedSeconds": 0.061532374, - "uploadSeconds": 0.119412761, - "downloadSeconds": 0.000087572 + "connectionEstablishedSeconds": 0.065239512, + "uploadSeconds": 0.127007647, + "downloadSeconds": 0.000102753 }, { - "connectionEstablishedSeconds": 0.066015107, - "uploadSeconds": 0.12895258, - "downloadSeconds": 0.000107437 + "connectionEstablishedSeconds": 0.065002136, + "uploadSeconds": 0.126428268, + "downloadSeconds": 0.000100366 }, { - "connectionEstablishedSeconds": 0.063298652, - "uploadSeconds": 0.123194972, - "downloadSeconds": 0.000074348 + "connectionEstablishedSeconds": 0.064491103, + "uploadSeconds": 0.125496774, + "downloadSeconds": 0.000082914 }, { - "connectionEstablishedSeconds": 0.064874404, - "uploadSeconds": 0.126240455, - "downloadSeconds": 0.000102661 + "connectionEstablishedSeconds": 0.061470431, + "uploadSeconds": 0.119681012, + "downloadSeconds": 0.000092367 }, { - "connectionEstablishedSeconds": 0.060850312, - "uploadSeconds": 0.11825899, - "downloadSeconds": 0.000074344 + "connectionEstablishedSeconds": 0.066128934, + "uploadSeconds": 0.128684243, + "downloadSeconds": 0.000050939 }, { - "connectionEstablishedSeconds": 0.063836571, - "uploadSeconds": 0.124325405, - "downloadSeconds": 0.000058374 + "connectionEstablishedSeconds": 0.062860625, + "uploadSeconds": 0.122331128, + "downloadSeconds": 0.000077326 }, { - "connectionEstablishedSeconds": 0.062482892, - "uploadSeconds": 0.12198127, - "downloadSeconds": 0.000066463 + "connectionEstablishedSeconds": 0.065758037, + "uploadSeconds": 0.128014455, + "downloadSeconds": 0.000049593 }, { - "connectionEstablishedSeconds": 0.066011166, - "uploadSeconds": 0.128493564, - "downloadSeconds": 0.000086812 + "connectionEstablishedSeconds": 0.064911288, + "uploadSeconds": 0.126244849, + "downloadSeconds": 0.00008702 }, { - "connectionEstablishedSeconds": 0.065877087, - "uploadSeconds": 0.128252352, - "downloadSeconds": 0.000087883 + "connectionEstablishedSeconds": 0.060500391, + "uploadSeconds": 0.117433404, + "downloadSeconds": 0.000098985 }, { - "connectionEstablishedSeconds": 0.06625631, - "uploadSeconds": 0.128871405, - "downloadSeconds": 0.000075303 + "connectionEstablishedSeconds": 0.064570379, + "uploadSeconds": 0.125612761, + "downloadSeconds": 0.000052489 }, { - "connectionEstablishedSeconds": 0.062467673, - "uploadSeconds": 0.121489929, - "downloadSeconds": 0.000093727 + "connectionEstablishedSeconds": 0.061610704, + "uploadSeconds": 0.119766429, + "downloadSeconds": 0.000049095 }, { - "connectionEstablishedSeconds": 0.064259174, - "uploadSeconds": 0.125116047, - "downloadSeconds": 0.000130588 + "connectionEstablishedSeconds": 0.063889781, + "uploadSeconds": 0.124191347, + "downloadSeconds": 0.000102015 }, { - "connectionEstablishedSeconds": 0.064881658, - "uploadSeconds": 0.12634141, - "downloadSeconds": 0.000096298 + "connectionEstablishedSeconds": 0.063067354, + "uploadSeconds": 0.122699173, + "downloadSeconds": 0.000089304 }, { - "connectionEstablishedSeconds": 0.062591642, - "uploadSeconds": 0.121615007, - "downloadSeconds": 0.000052845 + "connectionEstablishedSeconds": 0.063439324, + "uploadSeconds": 0.123255208, + "downloadSeconds": 0.000085337 }, { - "connectionEstablishedSeconds": 0.062009462, - "uploadSeconds": 0.120569713, - "downloadSeconds": 0.000059144 + "connectionEstablishedSeconds": 0.065063968, + "uploadSeconds": 0.126475373, + "downloadSeconds": 0.000126626 }, { - "connectionEstablishedSeconds": 0.065772964, - "uploadSeconds": 0.128015637, - "downloadSeconds": 0.00005976 + "connectionEstablishedSeconds": 0.066271463, + "uploadSeconds": 0.128935528, + "downloadSeconds": 0.000046158 }, { - "connectionEstablishedSeconds": 0.065244623, - "uploadSeconds": 0.127597754, - "downloadSeconds": 0.000101338 + "connectionEstablishedSeconds": 0.063950299, + "uploadSeconds": 0.124443584, + "downloadSeconds": 0.000051703 }, { - "connectionEstablishedSeconds": 0.064528531, - "uploadSeconds": 0.125431869, - "downloadSeconds": 0.000102549 + "connectionEstablishedSeconds": 0.064774385, + "uploadSeconds": 0.126063081, + "downloadSeconds": 0.00007508 }, { - "connectionEstablishedSeconds": 0.064060708, - "uploadSeconds": 0.124861387, - "downloadSeconds": 0.000089563 + "connectionEstablishedSeconds": 0.065636329, + "uploadSeconds": 0.127636465, + "downloadSeconds": 0.000090008 }, { - "connectionEstablishedSeconds": 0.065100315, - "uploadSeconds": 0.126407417, - "downloadSeconds": 0.00009769 + "connectionEstablishedSeconds": 0.063451078, + "uploadSeconds": 0.123364682, + "downloadSeconds": 0.000101472 }, { - "connectionEstablishedSeconds": 0.063827269, - "uploadSeconds": 0.12418934, - "downloadSeconds": 0.000059017 + "connectionEstablishedSeconds": 0.06323798, + "uploadSeconds": 0.122975014, + "downloadSeconds": 0.000070985 }, { - "connectionEstablishedSeconds": 0.063091443, - "uploadSeconds": 0.122694617, - "downloadSeconds": 0.000088479 + "connectionEstablishedSeconds": 0.064770406, + "uploadSeconds": 0.126004915, + "downloadSeconds": 0.000072125 }, { - "connectionEstablishedSeconds": 0.063035134, - "uploadSeconds": 0.122636708, - "downloadSeconds": 0.000090614 + "connectionEstablishedSeconds": 0.065279787, + "uploadSeconds": 0.126962819, + "downloadSeconds": 0.000097796 }, { - "connectionEstablishedSeconds": 0.063237351, - "uploadSeconds": 0.123009684, - "downloadSeconds": 0.000085346 + "connectionEstablishedSeconds": 0.064901942, + "uploadSeconds": 0.125585521, + "downloadSeconds": 0.000049299 }, { - "connectionEstablishedSeconds": 0.065321546, - "uploadSeconds": 0.127202042, - "downloadSeconds": 0.0000863 + "connectionEstablishedSeconds": 0.061443554, + "uploadSeconds": 0.119494502, + "downloadSeconds": 0.000091291 }, { - "connectionEstablishedSeconds": 0.062293646, - "uploadSeconds": 0.121197102, - "downloadSeconds": 0.00008741 + "connectionEstablishedSeconds": 0.063441921, + "uploadSeconds": 0.123328693, + "downloadSeconds": 0.000049731 }, { - "connectionEstablishedSeconds": 0.06499849, - "uploadSeconds": 0.12637115, - "downloadSeconds": 0.000075902 + "connectionEstablishedSeconds": 0.062608409, + "uploadSeconds": 0.121783217, + "downloadSeconds": 0.000091694 }, { - "connectionEstablishedSeconds": 0.064614152, - "uploadSeconds": 0.125767329, - "downloadSeconds": 0.000102428 + "connectionEstablishedSeconds": 0.063711363, + "uploadSeconds": 0.123972621, + "downloadSeconds": 0.000103791 }, { - "connectionEstablishedSeconds": 0.064867917, - "uploadSeconds": 0.126189822, - "downloadSeconds": 0.000049127 + "connectionEstablishedSeconds": 0.064214588, + "uploadSeconds": 0.125143771, + "downloadSeconds": 0.000020481 }, { - "connectionEstablishedSeconds": 0.066343616, - "uploadSeconds": 0.129171678, - "downloadSeconds": 0.000109185 + "connectionEstablishedSeconds": 0.060506092, + "uploadSeconds": 0.117461449, + "downloadSeconds": 0.00009433 }, { - "connectionEstablishedSeconds": 0.063594419, - "uploadSeconds": 0.123729252, - "downloadSeconds": 0.000046197 + "connectionEstablishedSeconds": 0.06548947, + "uploadSeconds": 0.12762932, + "downloadSeconds": 0.000019611 }, { - "connectionEstablishedSeconds": 0.062504828, - "uploadSeconds": 0.121566267, - "downloadSeconds": 0.000054981 + "connectionEstablishedSeconds": 0.06343756, + "uploadSeconds": 0.12326629, + "downloadSeconds": 0.000080451 }, { - "connectionEstablishedSeconds": 0.064002572, - "uploadSeconds": 0.12462905, - "downloadSeconds": 0.000100446 + "connectionEstablishedSeconds": 0.064497925, + "uploadSeconds": 0.125432572, + "downloadSeconds": 0.000053455 }, { - "connectionEstablishedSeconds": 0.063602089, - "uploadSeconds": 0.123874281, - "downloadSeconds": 0.000048411 + "connectionEstablishedSeconds": 0.064198009, + "uploadSeconds": 0.124789315, + "downloadSeconds": 0.000102881 }, { - "connectionEstablishedSeconds": 0.062719554, - "uploadSeconds": 0.121941194, - "downloadSeconds": 0.000089545 + "connectionEstablishedSeconds": 0.065856671, + "uploadSeconds": 0.128240388, + "downloadSeconds": 0.000053864 }, { - "connectionEstablishedSeconds": 0.063417018, - "uploadSeconds": 0.123306077, - "downloadSeconds": 0.000098731 + "connectionEstablishedSeconds": 0.066265894, + "uploadSeconds": 0.129040126, + "downloadSeconds": 0.000090861 }, { - "connectionEstablishedSeconds": 0.064107384, - "uploadSeconds": 0.124691877, - "downloadSeconds": 0.000051022 + "connectionEstablishedSeconds": 0.064372464, + "uploadSeconds": 0.12513222, + "downloadSeconds": 0.00010157 }, { - "connectionEstablishedSeconds": 0.063100152, - "uploadSeconds": 0.122616935, - "downloadSeconds": 0.000099 + "connectionEstablishedSeconds": 0.063916167, + "uploadSeconds": 0.124636789, + "downloadSeconds": 0.000073509 }, { - "connectionEstablishedSeconds": 0.062746556, - "uploadSeconds": 0.121948401, - "downloadSeconds": 0.000095793 + "connectionEstablishedSeconds": 0.061572516, + "uploadSeconds": 0.119719968, + "downloadSeconds": 0.000085707 }, { - "connectionEstablishedSeconds": 0.06261075, - "uploadSeconds": 0.121898582, - "downloadSeconds": 0.000094156 + "connectionEstablishedSeconds": 0.065074184, + "uploadSeconds": 0.126698852, + "downloadSeconds": 0.00008027 }, { - "connectionEstablishedSeconds": 0.062358096, - "uploadSeconds": 0.121059397, - "downloadSeconds": 0.000085366 + "connectionEstablishedSeconds": 0.06569187, + "uploadSeconds": 0.127787894, + "downloadSeconds": 0.000095077 }, { - "connectionEstablishedSeconds": 0.063956063, - "uploadSeconds": 0.12442619, - "downloadSeconds": 0.000084146 + "connectionEstablishedSeconds": 0.063378177, + "uploadSeconds": 0.123475499, + "downloadSeconds": 0.000103336 }, { - "connectionEstablishedSeconds": 0.06177277, - "uploadSeconds": 0.11993679, - "downloadSeconds": 0.000051577 + "connectionEstablishedSeconds": 0.064730038, + "uploadSeconds": 0.125953752, + "downloadSeconds": 0.000061881 }, { - "connectionEstablishedSeconds": 0.065472055, - "uploadSeconds": 0.128132439, - "downloadSeconds": 0.000099309 + "connectionEstablishedSeconds": 0.06603802, + "uploadSeconds": 0.128568222, + "downloadSeconds": 0.000022934 }, { - "connectionEstablishedSeconds": 0.064005678, - "uploadSeconds": 0.124557276, - "downloadSeconds": 0.000071229 + "connectionEstablishedSeconds": 0.062661405, + "uploadSeconds": 0.121714334, + "downloadSeconds": 0.000078985 }, { - "connectionEstablishedSeconds": 0.06607158, - "uploadSeconds": 0.128709658, - "downloadSeconds": 0.000041673 + "connectionEstablishedSeconds": 0.066337935, + "uploadSeconds": 0.129140541, + "downloadSeconds": 0.000086636 }, { - "connectionEstablishedSeconds": 0.06447987, - "uploadSeconds": 0.125384308, - "downloadSeconds": 0.000068772 + "connectionEstablishedSeconds": 0.063668639, + "uploadSeconds": 0.123844589, + "downloadSeconds": 0.000050411 }, { - "connectionEstablishedSeconds": 0.063884104, - "uploadSeconds": 0.124527706, - "downloadSeconds": 0.000111449 + "connectionEstablishedSeconds": 0.064122074, + "uploadSeconds": 0.12476925, + "downloadSeconds": 0.000075981 }, { - "connectionEstablishedSeconds": 0.06461319, - "uploadSeconds": 0.125775606, - "downloadSeconds": 0.000085327 + "connectionEstablishedSeconds": 0.065372135, + "uploadSeconds": 0.127211626, + "downloadSeconds": 0.000091012 }, { - "connectionEstablishedSeconds": 0.064890847, - "uploadSeconds": 0.126204848, - "downloadSeconds": 0.000082451 + "connectionEstablishedSeconds": 0.059813543, + "uploadSeconds": 0.116184542, + "downloadSeconds": 0.000076299 }, { - "connectionEstablishedSeconds": 0.063228089, - "uploadSeconds": 0.122949404, - "downloadSeconds": 0.000146099 + "connectionEstablishedSeconds": 0.064338913, + "uploadSeconds": 0.125357074, + "downloadSeconds": 0.000048772 }, { - "connectionEstablishedSeconds": 0.061495799, - "uploadSeconds": 0.11947625, - "downloadSeconds": 0.000048393 + "connectionEstablishedSeconds": 0.061904241, + "uploadSeconds": 0.120371589, + "downloadSeconds": 0.000085246 }, { - "connectionEstablishedSeconds": 0.065020492, - "uploadSeconds": 0.12666505, - "downloadSeconds": 0.000089146 + "connectionEstablishedSeconds": 0.062849555, + "uploadSeconds": 0.122130636, + "downloadSeconds": 0.00005213 }, { - "connectionEstablishedSeconds": 0.065945204, - "uploadSeconds": 0.128484838, - "downloadSeconds": 0.000106159 + "connectionEstablishedSeconds": 0.063626359, + "uploadSeconds": 0.123786209, + "downloadSeconds": 0.000073933 }, { - "connectionEstablishedSeconds": 0.067762673, - "uploadSeconds": 0.132168213, - "downloadSeconds": 0.000107903 + "connectionEstablishedSeconds": 0.065144197, + "uploadSeconds": 0.126835146, + "downloadSeconds": 0.000080652 }, { - "connectionEstablishedSeconds": 0.065572532, - "uploadSeconds": 0.127516638, - "downloadSeconds": 0.000089004 + "connectionEstablishedSeconds": 0.063006839, + "uploadSeconds": 0.122330209, + "downloadSeconds": 0.000100892 }, { - "connectionEstablishedSeconds": 0.064566376, - "uploadSeconds": 0.125582624, - "downloadSeconds": 0.000092355 + "connectionEstablishedSeconds": 0.0656745, + "uploadSeconds": 0.12785452, + "downloadSeconds": 0.000056427 }, { - "connectionEstablishedSeconds": 0.065893006, - "uploadSeconds": 0.128263391, - "downloadSeconds": 0.000093783 + "connectionEstablishedSeconds": 0.065664141, + "uploadSeconds": 0.127793254, + "downloadSeconds": 0.000089199 }, { - "connectionEstablishedSeconds": 0.062806285, - "uploadSeconds": 0.122113968, - "downloadSeconds": 0.000065137 + "connectionEstablishedSeconds": 0.063336824, + "uploadSeconds": 0.123224446, + "downloadSeconds": 0.00009833 }, { - "connectionEstablishedSeconds": 0.06517263, - "uploadSeconds": 0.12702264, - "downloadSeconds": 0.000102609 + "connectionEstablishedSeconds": 0.063508944, + "uploadSeconds": 0.123534801, + "downloadSeconds": 0.000090801 }, { - "connectionEstablishedSeconds": 0.063970953, - "uploadSeconds": 0.12447171, - "downloadSeconds": 0.000084464 + "connectionEstablishedSeconds": 0.063052371, + "uploadSeconds": 0.12258054, + "downloadSeconds": 0.000099776 }, { - "connectionEstablishedSeconds": 0.063519187, - "uploadSeconds": 0.123752611, - "downloadSeconds": 0.000092866 + "connectionEstablishedSeconds": 0.063967578, + "uploadSeconds": 0.12440295, + "downloadSeconds": 0.00009315 }, { - "connectionEstablishedSeconds": 0.065027565, - "uploadSeconds": 0.126622237, - "downloadSeconds": 0.000106011 + "connectionEstablishedSeconds": 0.064650102, + "uploadSeconds": 0.125943909, + "downloadSeconds": 0.000095094 }, { - "connectionEstablishedSeconds": 0.065309519, - "uploadSeconds": 0.127363373, - "downloadSeconds": 0.000068864 + "connectionEstablishedSeconds": 0.063100822, + "uploadSeconds": 0.122738159, + "downloadSeconds": 0.00005022 }, { - "connectionEstablishedSeconds": 0.060630725, - "uploadSeconds": 0.117690014, - "downloadSeconds": 0.000111107 + "connectionEstablishedSeconds": 0.062892339, + "uploadSeconds": 0.122973305, + "downloadSeconds": 0.000109195 }, { - "connectionEstablishedSeconds": 0.065486703, - "uploadSeconds": 0.127455826, - "downloadSeconds": 0.000090808 + "connectionEstablishedSeconds": 0.062691186, + "uploadSeconds": 0.121850273, + "downloadSeconds": 0.000046814 }, { - "connectionEstablishedSeconds": 0.063195899, - "uploadSeconds": 0.123090512, - "downloadSeconds": 0.000056723 + "connectionEstablishedSeconds": 0.065547722, + "uploadSeconds": 0.127526939, + "downloadSeconds": 0.000086215 }, { - "connectionEstablishedSeconds": 0.06505979, - "uploadSeconds": 0.126614753, - "downloadSeconds": 0.000089765 + "connectionEstablishedSeconds": 0.063465129, + "uploadSeconds": 0.123536217, + "downloadSeconds": 0.000049009 }, { - "connectionEstablishedSeconds": 0.062354526, - "uploadSeconds": 0.12156822, - "downloadSeconds": 0.000086259 + "connectionEstablishedSeconds": 0.066192294, + "uploadSeconds": 0.12883507, + "downloadSeconds": 0.00010391 }, { - "connectionEstablishedSeconds": 0.062418939, - "uploadSeconds": 0.121418247, - "downloadSeconds": 0.000087486 + "connectionEstablishedSeconds": 0.06537651, + "uploadSeconds": 0.1272119, + "downloadSeconds": 0.000073702 }, { - "connectionEstablishedSeconds": 0.065193432, - "uploadSeconds": 0.126871858, - "downloadSeconds": 0.000092619 + "connectionEstablishedSeconds": 0.062524589, + "uploadSeconds": 0.121543935, + "downloadSeconds": 0.000089477 }, { - "connectionEstablishedSeconds": 0.063621014, - "uploadSeconds": 0.123766947, - "downloadSeconds": 0.000062353 + "connectionEstablishedSeconds": 0.065393812, + "uploadSeconds": 0.127120697, + "downloadSeconds": 0.000077362 } ], "implementation": "rust-libp2p", @@ -1996,504 +1996,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.06295453, - "uploadSeconds": 0.121854033, - "downloadSeconds": 0.000077444 + "connectionEstablishedSeconds": 0.062965213, + "uploadSeconds": 0.122682753, + "downloadSeconds": 0.000096943 }, { - "connectionEstablishedSeconds": 0.065123301, - "uploadSeconds": 0.126731822, - "downloadSeconds": 0.000083647 + "connectionEstablishedSeconds": 0.065489033, + "uploadSeconds": 0.127334506, + "downloadSeconds": 0.00005148 }, { - "connectionEstablishedSeconds": 0.064473496, - "uploadSeconds": 0.125295297, - "downloadSeconds": 0.000093787 + "connectionEstablishedSeconds": 0.064780118, + "uploadSeconds": 0.125533161, + "downloadSeconds": 0.000179768 }, { - "connectionEstablishedSeconds": 0.063632156, - "uploadSeconds": 0.123478645, - "downloadSeconds": 0.000072658 + "connectionEstablishedSeconds": 0.064576145, + "uploadSeconds": 0.125430556, + "downloadSeconds": 0.000079431 }, { - "connectionEstablishedSeconds": 0.062453992, - "uploadSeconds": 0.121532257, - "downloadSeconds": 0.000080757 + "connectionEstablishedSeconds": 0.06390552, + "uploadSeconds": 0.12410876, + "downloadSeconds": 0.000056454 }, { - "connectionEstablishedSeconds": 0.06282161, - "uploadSeconds": 0.122050909, - "downloadSeconds": 0.000062642 + "connectionEstablishedSeconds": 0.06475562, + "uploadSeconds": 0.125875636, + "downloadSeconds": 0.000046953 }, { - "connectionEstablishedSeconds": 0.064755094, - "uploadSeconds": 0.125864073, - "downloadSeconds": 0.000105545 + "connectionEstablishedSeconds": 0.064233033, + "uploadSeconds": 0.124969035, + "downloadSeconds": 0.000048843 }, { - "connectionEstablishedSeconds": 0.064105606, - "uploadSeconds": 0.124738407, - "downloadSeconds": 0.000045231 + "connectionEstablishedSeconds": 0.066038617, + "uploadSeconds": 0.128523885, + "downloadSeconds": 0.000048385 }, { - "connectionEstablishedSeconds": 0.064166122, - "uploadSeconds": 0.124608084, - "downloadSeconds": 0.000084333 + "connectionEstablishedSeconds": 0.062580181, + "uploadSeconds": 0.121513512, + "downloadSeconds": 0.000058131 }, { - "connectionEstablishedSeconds": 0.062669409, - "uploadSeconds": 0.121852983, - "downloadSeconds": 0.000086386 + "connectionEstablishedSeconds": 0.065504828, + "uploadSeconds": 0.127820586, + "downloadSeconds": 0.000048425 }, { - "connectionEstablishedSeconds": 0.064950734, - "uploadSeconds": 0.126331357, - "downloadSeconds": 0.000155847 + "connectionEstablishedSeconds": 0.064665241, + "uploadSeconds": 0.12597723, + "downloadSeconds": 0.000052844 }, { - "connectionEstablishedSeconds": 0.062348759, - "uploadSeconds": 0.121223049, - "downloadSeconds": 0.000101475 + "connectionEstablishedSeconds": 0.064701557, + "uploadSeconds": 0.125833183, + "downloadSeconds": 0.000092905 }, { - "connectionEstablishedSeconds": 0.061410545, - "uploadSeconds": 0.119357751, - "downloadSeconds": 0.00013631 + "connectionEstablishedSeconds": 0.06448686, + "uploadSeconds": 0.125395967, + "downloadSeconds": 0.000085099 }, { - "connectionEstablishedSeconds": 0.06538073, - "uploadSeconds": 0.127286516, - "downloadSeconds": 0.000084163 + "connectionEstablishedSeconds": 0.065915145, + "uploadSeconds": 0.12835944, + "downloadSeconds": 0.000050811 }, { - "connectionEstablishedSeconds": 0.065267895, - "uploadSeconds": 0.127053901, - "downloadSeconds": 0.00006416 + "connectionEstablishedSeconds": 0.064480849, + "uploadSeconds": 0.125422879, + "downloadSeconds": 0.000067528 }, { - "connectionEstablishedSeconds": 0.064411294, - "uploadSeconds": 0.124778899, - "downloadSeconds": 0.000074301 + "connectionEstablishedSeconds": 0.06609195, + "uploadSeconds": 0.12874033, + "downloadSeconds": 0.000051072 }, { - "connectionEstablishedSeconds": 0.063916077, - "uploadSeconds": 0.124393312, - "downloadSeconds": 0.000085843 + "connectionEstablishedSeconds": 0.065812462, + "uploadSeconds": 0.128129494, + "downloadSeconds": 0.000050144 }, { - "connectionEstablishedSeconds": 0.062081196, - "uploadSeconds": 0.120463049, - "downloadSeconds": 0.000081798 + "connectionEstablishedSeconds": 0.063794081, + "uploadSeconds": 0.124079512, + "downloadSeconds": 0.000075582 }, { - "connectionEstablishedSeconds": 0.064835647, - "uploadSeconds": 0.126418203, - "downloadSeconds": 0.000073351 + "connectionEstablishedSeconds": 0.065288735, + "uploadSeconds": 0.127120097, + "downloadSeconds": 0.000045388 }, { - "connectionEstablishedSeconds": 0.065654051, - "uploadSeconds": 0.127722734, - "downloadSeconds": 0.000105934 + "connectionEstablishedSeconds": 0.064935727, + "uploadSeconds": 0.126263076, + "downloadSeconds": 0.0000764 }, { - "connectionEstablishedSeconds": 0.063670175, - "uploadSeconds": 0.123943916, - "downloadSeconds": 0.000077717 + "connectionEstablishedSeconds": 0.064595678, + "uploadSeconds": 0.125849896, + "downloadSeconds": 0.000051446 }, { - "connectionEstablishedSeconds": 0.065474963, - "uploadSeconds": 0.127595228, - "downloadSeconds": 0.000055289 + "connectionEstablishedSeconds": 0.064087762, + "uploadSeconds": 0.124715294, + "downloadSeconds": 0.000085901 }, { - "connectionEstablishedSeconds": 0.064085463, - "uploadSeconds": 0.124794593, - "downloadSeconds": 0.00009378 + "connectionEstablishedSeconds": 0.064889148, + "uploadSeconds": 0.126489863, + "downloadSeconds": 0.000049797 }, { - "connectionEstablishedSeconds": 0.063967591, - "uploadSeconds": 0.124510889, - "downloadSeconds": 0.000077411 + "connectionEstablishedSeconds": 0.062467826, + "uploadSeconds": 0.121297594, + "downloadSeconds": 0.00005279 }, { - "connectionEstablishedSeconds": 0.062634672, - "uploadSeconds": 0.121821183, - "downloadSeconds": 0.000063691 + "connectionEstablishedSeconds": 0.062480328, + "uploadSeconds": 0.121542251, + "downloadSeconds": 0.000071948 }, { - "connectionEstablishedSeconds": 0.066294521, - "uploadSeconds": 0.129160959, - "downloadSeconds": 0.000054596 + "connectionEstablishedSeconds": 0.065630362, + "uploadSeconds": 0.127637877, + "downloadSeconds": 0.000053017 }, { - "connectionEstablishedSeconds": 0.064455007, - "uploadSeconds": 0.125418313, - "downloadSeconds": 0.00007373 + "connectionEstablishedSeconds": 0.062966299, + "uploadSeconds": 0.122626191, + "downloadSeconds": 0.000100311 }, { - "connectionEstablishedSeconds": 0.063959842, - "uploadSeconds": 0.1244949, - "downloadSeconds": 0.000073275 + "connectionEstablishedSeconds": 0.065212714, + "uploadSeconds": 0.126882573, + "downloadSeconds": 0.000103539 }, { - "connectionEstablishedSeconds": 0.066070252, - "uploadSeconds": 0.128792037, - "downloadSeconds": 0.00004618 + "connectionEstablishedSeconds": 0.063160796, + "uploadSeconds": 0.122707305, + "downloadSeconds": 0.000091295 }, { - "connectionEstablishedSeconds": 0.065236645, - "uploadSeconds": 0.127059524, - "downloadSeconds": 0.000050571 + "connectionEstablishedSeconds": 0.065610229, + "uploadSeconds": 0.127561854, + "downloadSeconds": 0.000044342 }, { - "connectionEstablishedSeconds": 0.06094768, - "uploadSeconds": 0.118601577, - "downloadSeconds": 0.000093052 + "connectionEstablishedSeconds": 0.062578162, + "uploadSeconds": 0.121752053, + "downloadSeconds": 0.0000859 }, { - "connectionEstablishedSeconds": 0.064582742, - "uploadSeconds": 0.12575478, - "downloadSeconds": 0.000082067 + "connectionEstablishedSeconds": 0.066255772, + "uploadSeconds": 0.127226144, + "downloadSeconds": 0.000048046 }, { - "connectionEstablishedSeconds": 0.065072501, - "uploadSeconds": 0.12662061, - "downloadSeconds": 0.000098341 + "connectionEstablishedSeconds": 0.064441426, + "uploadSeconds": 0.125328846, + "downloadSeconds": 0.000055709 }, { - "connectionEstablishedSeconds": 0.066624862, - "uploadSeconds": 0.129815026, - "downloadSeconds": 0.000081843 + "connectionEstablishedSeconds": 0.063287629, + "uploadSeconds": 0.123149429, + "downloadSeconds": 0.000052619 }, { - "connectionEstablishedSeconds": 0.065496903, - "uploadSeconds": 0.12779438, - "downloadSeconds": 0.000105756 + "connectionEstablishedSeconds": 0.062782396, + "uploadSeconds": 0.122141871, + "downloadSeconds": 0.000053622 }, { - "connectionEstablishedSeconds": 0.063587012, - "uploadSeconds": 0.123648704, - "downloadSeconds": 0.000073976 + "connectionEstablishedSeconds": 0.066718479, + "uploadSeconds": 0.130087424, + "downloadSeconds": 0.000046998 }, { - "connectionEstablishedSeconds": 0.065166457, - "uploadSeconds": 0.126912988, - "downloadSeconds": 0.000109828 + "connectionEstablishedSeconds": 0.065404341, + "uploadSeconds": 0.127412669, + "downloadSeconds": 0.000053589 }, { - "connectionEstablishedSeconds": 0.06025493, - "uploadSeconds": 0.117031953, - "downloadSeconds": 0.00008765 + "connectionEstablishedSeconds": 0.062921035, + "uploadSeconds": 0.12245603, + "downloadSeconds": 0.000048439 }, { - "connectionEstablishedSeconds": 0.065858394, - "uploadSeconds": 0.128498961, - "downloadSeconds": 0.000117106 + "connectionEstablishedSeconds": 0.063269545, + "uploadSeconds": 0.12313399, + "downloadSeconds": 0.000046705 }, { - "connectionEstablishedSeconds": 0.065079865, - "uploadSeconds": 0.126656494, - "downloadSeconds": 0.00007727 + "connectionEstablishedSeconds": 0.064657458, + "uploadSeconds": 0.12558721, + "downloadSeconds": 0.000089519 }, { - "connectionEstablishedSeconds": 0.0635718, - "uploadSeconds": 0.123726091, - "downloadSeconds": 0.000074642 + "connectionEstablishedSeconds": 0.064372159, + "uploadSeconds": 0.125307848, + "downloadSeconds": 0.000056282 }, { - "connectionEstablishedSeconds": 0.063487759, - "uploadSeconds": 0.123542277, - "downloadSeconds": 0.000057058 + "connectionEstablishedSeconds": 0.063471511, + "uploadSeconds": 0.123603874, + "downloadSeconds": 0.000053637 }, { - "connectionEstablishedSeconds": 0.061036628, - "uploadSeconds": 0.118754325, - "downloadSeconds": 0.000087272 + "connectionEstablishedSeconds": 0.064454589, + "uploadSeconds": 0.125511651, + "downloadSeconds": 0.000064808 }, { - "connectionEstablishedSeconds": 0.064088629, - "uploadSeconds": 0.124607971, - "downloadSeconds": 0.00005193 + "connectionEstablishedSeconds": 0.064763882, + "uploadSeconds": 0.126017266, + "downloadSeconds": 0.000047926 }, { - "connectionEstablishedSeconds": 0.063898205, - "uploadSeconds": 0.12449889, - "downloadSeconds": 0.00007393 + "connectionEstablishedSeconds": 0.065445739, + "uploadSeconds": 0.127456516, + "downloadSeconds": 0.000050466 }, { - "connectionEstablishedSeconds": 0.063112121, - "uploadSeconds": 0.122876487, - "downloadSeconds": 0.000082174 + "connectionEstablishedSeconds": 0.063431453, + "uploadSeconds": 0.123508824, + "downloadSeconds": 0.000050062 }, { - "connectionEstablishedSeconds": 0.061838182, - "uploadSeconds": 0.119878674, - "downloadSeconds": 0.000089398 + "connectionEstablishedSeconds": 0.064876121, + "uploadSeconds": 0.126287247, + "downloadSeconds": 0.000086023 }, { - "connectionEstablishedSeconds": 0.062248433, - "uploadSeconds": 0.121379219, - "downloadSeconds": 0.000044327 + "connectionEstablishedSeconds": 0.063792115, + "uploadSeconds": 0.12380564, + "downloadSeconds": 0.000059282 }, { - "connectionEstablishedSeconds": 0.064517291, - "uploadSeconds": 0.125572328, - "downloadSeconds": 0.000050306 + "connectionEstablishedSeconds": 0.064643853, + "uploadSeconds": 0.12569494, + "downloadSeconds": 0.000055511 }, { - "connectionEstablishedSeconds": 0.064898676, - "uploadSeconds": 0.126133518, - "downloadSeconds": 0.000068667 + "connectionEstablishedSeconds": 0.064326266, + "uploadSeconds": 0.125203995, + "downloadSeconds": 0.00005376 }, { - "connectionEstablishedSeconds": 0.062271554, - "uploadSeconds": 0.121187727, - "downloadSeconds": 0.00004803 + "connectionEstablishedSeconds": 0.063819705, + "uploadSeconds": 0.124362927, + "downloadSeconds": 0.000049904 }, { - "connectionEstablishedSeconds": 0.062338208, - "uploadSeconds": 0.120937059, - "downloadSeconds": 0.000050162 + "connectionEstablishedSeconds": 0.062724828, + "uploadSeconds": 0.121708761, + "downloadSeconds": 0.000086279 }, { - "connectionEstablishedSeconds": 0.06516715, - "uploadSeconds": 0.12658971, - "downloadSeconds": 0.000054901 + "connectionEstablishedSeconds": 0.064082258, + "uploadSeconds": 0.124765938, + "downloadSeconds": 0.00006986 }, { - "connectionEstablishedSeconds": 0.065651049, - "uploadSeconds": 0.127730491, - "downloadSeconds": 0.000072302 + "connectionEstablishedSeconds": 0.061541865, + "uploadSeconds": 0.119683336, + "downloadSeconds": 0.000046545 }, { - "connectionEstablishedSeconds": 0.065052451, - "uploadSeconds": 0.126855008, - "downloadSeconds": 0.000069138 + "connectionEstablishedSeconds": 0.0639851, + "uploadSeconds": 0.124269542, + "downloadSeconds": 0.000072711 }, { - "connectionEstablishedSeconds": 0.066387803, - "uploadSeconds": 0.129441088, - "downloadSeconds": 0.000046108 + "connectionEstablishedSeconds": 0.060457326, + "uploadSeconds": 0.117418959, + "downloadSeconds": 0.000071158 }, { - "connectionEstablishedSeconds": 0.064914776, - "uploadSeconds": 0.126462724, - "downloadSeconds": 0.000060604 + "connectionEstablishedSeconds": 0.06312529, + "uploadSeconds": 0.122446747, + "downloadSeconds": 0.000065805 }, { - "connectionEstablishedSeconds": 0.066325354, - "uploadSeconds": 0.128622135, - "downloadSeconds": 0.000089472 + "connectionEstablishedSeconds": 0.062976684, + "uploadSeconds": 0.122669083, + "downloadSeconds": 0.000093549 }, { - "connectionEstablishedSeconds": 0.064877193, - "uploadSeconds": 0.126410536, - "downloadSeconds": 0.000083253 + "connectionEstablishedSeconds": 0.065746472, + "uploadSeconds": 0.128321234, + "downloadSeconds": 0.000051595 }, { - "connectionEstablishedSeconds": 0.061518459, - "uploadSeconds": 0.11970554, - "downloadSeconds": 0.000098102 + "connectionEstablishedSeconds": 0.066366627, + "uploadSeconds": 0.129283919, + "downloadSeconds": 0.000050745 }, { - "connectionEstablishedSeconds": 0.066446584, - "uploadSeconds": 0.129426228, - "downloadSeconds": 0.000052881 + "connectionEstablishedSeconds": 0.065415799, + "uploadSeconds": 0.127190661, + "downloadSeconds": 0.000062322 }, { - "connectionEstablishedSeconds": 0.063347672, - "uploadSeconds": 0.123333115, - "downloadSeconds": 0.000051834 + "connectionEstablishedSeconds": 0.063648161, + "uploadSeconds": 0.123781895, + "downloadSeconds": 0.000046654 }, { - "connectionEstablishedSeconds": 0.062311469, - "uploadSeconds": 0.121232877, - "downloadSeconds": 0.000067479 + "connectionEstablishedSeconds": 0.06167661, + "uploadSeconds": 0.119790221, + "downloadSeconds": 0.000047639 }, { - "connectionEstablishedSeconds": 0.065580823, - "uploadSeconds": 0.127383534, - "downloadSeconds": 0.00008774 + "connectionEstablishedSeconds": 0.065250442, + "uploadSeconds": 0.127054158, + "downloadSeconds": 0.00006243 }, { - "connectionEstablishedSeconds": 0.062602698, - "uploadSeconds": 0.12176476, - "downloadSeconds": 0.000084162 + "connectionEstablishedSeconds": 0.063930895, + "uploadSeconds": 0.124296611, + "downloadSeconds": 0.000048271 }, { - "connectionEstablishedSeconds": 0.064679694, - "uploadSeconds": 0.125792176, - "downloadSeconds": 0.000049092 + "connectionEstablishedSeconds": 0.063170568, + "uploadSeconds": 0.122844096, + "downloadSeconds": 0.000059985 }, { - "connectionEstablishedSeconds": 0.066119217, - "uploadSeconds": 0.128911034, - "downloadSeconds": 0.000052582 + "connectionEstablishedSeconds": 0.064963847, + "uploadSeconds": 0.126469775, + "downloadSeconds": 0.00009783 }, { - "connectionEstablishedSeconds": 0.064028513, - "uploadSeconds": 0.12462816, - "downloadSeconds": 0.000062379 + "connectionEstablishedSeconds": 0.062416817, + "uploadSeconds": 0.121274763, + "downloadSeconds": 0.000063675 }, { - "connectionEstablishedSeconds": 0.066205814, - "uploadSeconds": 0.128883233, - "downloadSeconds": 0.000052233 + "connectionEstablishedSeconds": 0.06274952, + "uploadSeconds": 0.121991328, + "downloadSeconds": 0.00004915 }, { - "connectionEstablishedSeconds": 0.062012424, - "uploadSeconds": 0.120882738, - "downloadSeconds": 0.00005704 + "connectionEstablishedSeconds": 0.062530976, + "uploadSeconds": 0.121535015, + "downloadSeconds": 0.000053865 }, { - "connectionEstablishedSeconds": 0.064255919, - "uploadSeconds": 0.124959707, - "downloadSeconds": 0.000091863 + "connectionEstablishedSeconds": 0.064192983, + "uploadSeconds": 0.12497331, + "downloadSeconds": 0.000053834 }, { - "connectionEstablishedSeconds": 0.063693044, - "uploadSeconds": 0.123805374, - "downloadSeconds": 0.000094304 + "connectionEstablishedSeconds": 0.063269385, + "uploadSeconds": 0.122713127, + "downloadSeconds": 0.000051999 }, { - "connectionEstablishedSeconds": 0.064984709, - "uploadSeconds": 0.126642484, - "downloadSeconds": 0.000047402 + "connectionEstablishedSeconds": 0.063591056, + "uploadSeconds": 0.123664118, + "downloadSeconds": 0.000047505 }, { - "connectionEstablishedSeconds": 0.061120801, - "uploadSeconds": 0.11917866, - "downloadSeconds": 0.000070103 + "connectionEstablishedSeconds": 0.064500664, + "uploadSeconds": 0.125451392, + "downloadSeconds": 0.000052342 }, { - "connectionEstablishedSeconds": 0.063592651, - "uploadSeconds": 0.123675225, - "downloadSeconds": 0.000061204 + "connectionEstablishedSeconds": 0.064386192, + "uploadSeconds": 0.125257624, + "downloadSeconds": 0.000055289 }, { - "connectionEstablishedSeconds": 0.062592166, - "uploadSeconds": 0.121571849, - "downloadSeconds": 0.000071449 + "connectionEstablishedSeconds": 0.063064753, + "uploadSeconds": 0.122466459, + "downloadSeconds": 0.000069603 }, { - "connectionEstablishedSeconds": 0.065114172, - "uploadSeconds": 0.126766224, - "downloadSeconds": 0.000060301 + "connectionEstablishedSeconds": 0.065334896, + "uploadSeconds": 0.127050874, + "downloadSeconds": 0.000065784 }, { - "connectionEstablishedSeconds": 0.063331652, - "uploadSeconds": 0.122993699, - "downloadSeconds": 0.000085199 + "connectionEstablishedSeconds": 0.06524476, + "uploadSeconds": 0.127040032, + "downloadSeconds": 0.000047416 }, { - "connectionEstablishedSeconds": 0.064596237, - "uploadSeconds": 0.125709824, - "downloadSeconds": 0.000080473 + "connectionEstablishedSeconds": 0.062676442, + "uploadSeconds": 0.121891488, + "downloadSeconds": 0.000056458 }, { - "connectionEstablishedSeconds": 0.066972879, - "uploadSeconds": 0.130634142, - "downloadSeconds": 0.00004697 + "connectionEstablishedSeconds": 0.064216517, + "uploadSeconds": 0.124848172, + "downloadSeconds": 0.000089715 }, { - "connectionEstablishedSeconds": 0.062545682, - "uploadSeconds": 0.121463022, - "downloadSeconds": 0.000060858 + "connectionEstablishedSeconds": 0.06513872, + "uploadSeconds": 0.126780996, + "downloadSeconds": 0.000065766 }, { - "connectionEstablishedSeconds": 0.065678017, - "uploadSeconds": 0.128114478, - "downloadSeconds": 0.000054247 + "connectionEstablishedSeconds": 0.065030584, + "uploadSeconds": 0.12662517, + "downloadSeconds": 0.000053753 }, { - "connectionEstablishedSeconds": 0.066031352, - "uploadSeconds": 0.128668745, - "downloadSeconds": 0.000046151 + "connectionEstablishedSeconds": 0.062538152, + "uploadSeconds": 0.12168764, + "downloadSeconds": 0.00011266 }, { - "connectionEstablishedSeconds": 0.065528277, - "uploadSeconds": 0.127732124, - "downloadSeconds": 0.000050967 + "connectionEstablishedSeconds": 0.066310676, + "uploadSeconds": 0.129074605, + "downloadSeconds": 0.000053125 }, { - "connectionEstablishedSeconds": 0.061144288, - "uploadSeconds": 0.118864606, - "downloadSeconds": 0.000055298 + "connectionEstablishedSeconds": 0.066263897, + "uploadSeconds": 0.129142804, + "downloadSeconds": 0.000049113 }, { - "connectionEstablishedSeconds": 0.065305185, - "uploadSeconds": 0.127158917, - "downloadSeconds": 0.000050949 + "connectionEstablishedSeconds": 0.066270579, + "uploadSeconds": 0.129054171, + "downloadSeconds": 0.000092392 }, { - "connectionEstablishedSeconds": 0.065225217, - "uploadSeconds": 0.126952291, - "downloadSeconds": 0.000044136 + "connectionEstablishedSeconds": 0.066166914, + "uploadSeconds": 0.128875248, + "downloadSeconds": 0.000052999 }, { - "connectionEstablishedSeconds": 0.064853145, - "uploadSeconds": 0.126412428, - "downloadSeconds": 0.000097659 + "connectionEstablishedSeconds": 0.064122605, + "uploadSeconds": 0.124866938, + "downloadSeconds": 0.000066255 }, { - "connectionEstablishedSeconds": 0.065478193, - "uploadSeconds": 0.127374565, - "downloadSeconds": 0.000062365 + "connectionEstablishedSeconds": 0.061991146, + "uploadSeconds": 0.120611253, + "downloadSeconds": 0.000046815 }, { - "connectionEstablishedSeconds": 0.05995481, - "uploadSeconds": 0.116531334, - "downloadSeconds": 0.000078307 + "connectionEstablishedSeconds": 0.06589036, + "uploadSeconds": 0.128228162, + "downloadSeconds": 0.000047445 }, { - "connectionEstablishedSeconds": 0.066140712, - "uploadSeconds": 0.128805388, - "downloadSeconds": 0.000049685 + "connectionEstablishedSeconds": 0.064135612, + "uploadSeconds": 0.12479438, + "downloadSeconds": 0.000052391 }, { - "connectionEstablishedSeconds": 0.064286525, - "uploadSeconds": 0.125063487, - "downloadSeconds": 0.000092709 + "connectionEstablishedSeconds": 0.065295866, + "uploadSeconds": 0.127137163, + "downloadSeconds": 0.000046542 }, { - "connectionEstablishedSeconds": 0.065156327, - "uploadSeconds": 0.127035923, - "downloadSeconds": 0.00005645 + "connectionEstablishedSeconds": 0.06473605, + "uploadSeconds": 0.126032657, + "downloadSeconds": 0.000050489 }, { - "connectionEstablishedSeconds": 0.062462454, - "uploadSeconds": 0.121519512, - "downloadSeconds": 0.000090082 + "connectionEstablishedSeconds": 0.063691798, + "uploadSeconds": 0.123769338, + "downloadSeconds": 0.000060976 }, { - "connectionEstablishedSeconds": 0.063023488, - "uploadSeconds": 0.122460757, - "downloadSeconds": 0.000049759 + "connectionEstablishedSeconds": 0.064162208, + "uploadSeconds": 0.124859646, + "downloadSeconds": 0.000090241 }, { - "connectionEstablishedSeconds": 0.065384733, - "uploadSeconds": 0.127145941, - "downloadSeconds": 0.000078884 + "connectionEstablishedSeconds": 0.062561977, + "uploadSeconds": 0.121690886, + "downloadSeconds": 0.000047624 }, { - "connectionEstablishedSeconds": 0.064855409, - "uploadSeconds": 0.12630613, - "downloadSeconds": 0.0000832 + "connectionEstablishedSeconds": 0.064724475, + "uploadSeconds": 0.125989931, + "downloadSeconds": 0.000079598 }, { - "connectionEstablishedSeconds": 0.065364575, - "uploadSeconds": 0.127268953, - "downloadSeconds": 0.000079745 + "connectionEstablishedSeconds": 0.063654223, + "uploadSeconds": 0.123738224, + "downloadSeconds": 0.000054464 }, { - "connectionEstablishedSeconds": 0.066317931, - "uploadSeconds": 0.129352868, - "downloadSeconds": 0.000089251 + "connectionEstablishedSeconds": 0.064422792, + "uploadSeconds": 0.125386097, + "downloadSeconds": 0.00005014 }, { - "connectionEstablishedSeconds": 0.061175776, - "uploadSeconds": 0.118754982, - "downloadSeconds": 0.00005179 + "connectionEstablishedSeconds": 0.063905178, + "uploadSeconds": 0.124427918, + "downloadSeconds": 0.000093924 } ], "implementation": "rust-libp2p-quinn", @@ -2504,503 +2504,503 @@ "result": [ { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191286116, - "downloadSeconds": 0.000030153 + "uploadSeconds": 0.1821398, + "downloadSeconds": 0.000026881 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183529055, - "downloadSeconds": 0.000025756 + "uploadSeconds": 0.195773944, + "downloadSeconds": 0.000025118 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184410375, - "downloadSeconds": 0.000040311 + "uploadSeconds": 0.183498433, + "downloadSeconds": 0.000031034 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190450232, - "downloadSeconds": 0.000028102 + "uploadSeconds": 0.192985197, + "downloadSeconds": 0.000023865 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187048479, - "downloadSeconds": 0.000020757 + "uploadSeconds": 0.184632175, + "downloadSeconds": 0.000023122 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190285011, - "downloadSeconds": 0.000024856 + "uploadSeconds": 0.187860929, + "downloadSeconds": 0.000025513 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.178674815, - "downloadSeconds": 0.000024766 + "uploadSeconds": 0.18858002, + "downloadSeconds": 0.000025404 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189727631, - "downloadSeconds": 0.000021712 + "uploadSeconds": 0.186972658, + "downloadSeconds": 0.000024657 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18619776, - "downloadSeconds": 0.000034857 + "uploadSeconds": 0.188982188, + "downloadSeconds": 0.000027395 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193181301, - "downloadSeconds": 0.000024575 + "uploadSeconds": 0.191543178, + "downloadSeconds": 0.000023934 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189751793, - "downloadSeconds": 0.000025637 + "uploadSeconds": 0.193977061, + "downloadSeconds": 0.000022836 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183150367, - "downloadSeconds": 0.000024492 + "uploadSeconds": 0.191907741, + "downloadSeconds": 0.000033653 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188043639, - "downloadSeconds": 0.000024447 + "uploadSeconds": 0.190081621, + "downloadSeconds": 0.000025243 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189577218, - "downloadSeconds": 0.000018189 + "uploadSeconds": 0.187260309, + "downloadSeconds": 0.000026162 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188882264, - "downloadSeconds": 0.000021261 + "uploadSeconds": 0.18507505, + "downloadSeconds": 0.000029837 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186325009, - "downloadSeconds": 0.000024389 + "uploadSeconds": 0.175075255, + "downloadSeconds": 0.000023352 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.181536797, - "downloadSeconds": 0.000033015 + "uploadSeconds": 0.189134819, + "downloadSeconds": 0.000025628 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193188111, - "downloadSeconds": 0.000025382 + "uploadSeconds": 0.188676944, + "downloadSeconds": 0.000024155 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185746185, - "downloadSeconds": 0.000023011 + "uploadSeconds": 0.185896518, + "downloadSeconds": 0.000021262 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182559536, - "downloadSeconds": 0.000025647 + "uploadSeconds": 0.186597685, + "downloadSeconds": 0.000025792 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186054822, - "downloadSeconds": 0.000021982 + "uploadSeconds": 0.176832111, + "downloadSeconds": 0.000022594 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187466153, - "downloadSeconds": 0.000024312 + "uploadSeconds": 0.17509324, + "downloadSeconds": 0.000024377 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184809142, - "downloadSeconds": 0.000022947 + "uploadSeconds": 0.189129547, + "downloadSeconds": 0.000025202 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191330569, - "downloadSeconds": 0.000028027 + "uploadSeconds": 0.185398974, + "downloadSeconds": 0.000022065 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189069566, - "downloadSeconds": 0.000024548 + "uploadSeconds": 0.187933492, + "downloadSeconds": 0.000023911 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18767281, - "downloadSeconds": 0.000021507 + "uploadSeconds": 0.189684911, + "downloadSeconds": 0.000023018 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18593129, - "downloadSeconds": 0.000023896 + "uploadSeconds": 0.191771551, + "downloadSeconds": 0.000022407 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.181014203, - "downloadSeconds": 0.000023811 + "uploadSeconds": 0.186256005, + "downloadSeconds": 0.000027753 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188932328, - "downloadSeconds": 0.000025813 + "uploadSeconds": 0.175575956, + "downloadSeconds": 0.000025303 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184957641, - "downloadSeconds": 0.000023322 + "uploadSeconds": 0.183450944, + "downloadSeconds": 0.000026464 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.180815006, - "downloadSeconds": 0.00003453 + "uploadSeconds": 0.190320051, + "downloadSeconds": 0.000023076 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190052471, - "downloadSeconds": 0.00002195 + "uploadSeconds": 0.192783509, + "downloadSeconds": 0.000026041 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193640405, - "downloadSeconds": 0.000020421 + "uploadSeconds": 0.184762516, + "downloadSeconds": 0.000040371 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190830146, - "downloadSeconds": 0.000022273 + "uploadSeconds": 0.191807584, + "downloadSeconds": 0.000023094 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188083369, - "downloadSeconds": 0.00002138 + "uploadSeconds": 0.181300724, + "downloadSeconds": 0.000023035 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185840961, - "downloadSeconds": 0.000021979 + "uploadSeconds": 0.181617298, + "downloadSeconds": 0.000022889 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193488566, - "downloadSeconds": 0.000024822 + "uploadSeconds": 0.186888535, + "downloadSeconds": 0.000025779 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.178135133, - "downloadSeconds": 0.000024564 + "uploadSeconds": 0.191734437, + "downloadSeconds": 0.000025407 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187243776, - "downloadSeconds": 0.00002429 + "uploadSeconds": 0.1870718, + "downloadSeconds": 0.000025818 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186128, - "downloadSeconds": 0.00002176 + "uploadSeconds": 0.190846856, + "downloadSeconds": 0.000023349 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187437127, - "downloadSeconds": 0.000024223 + "uploadSeconds": 0.188427418, + "downloadSeconds": 0.000026628 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193260755, - "downloadSeconds": 0.000021753 + "uploadSeconds": 0.180998284, + "downloadSeconds": 0.000025526 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.17961362, - "downloadSeconds": 0.000030347 + "uploadSeconds": 0.185872193, + "downloadSeconds": 0.000028614 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185389065, - "downloadSeconds": 0.00002451 + "uploadSeconds": 0.193576062, + "downloadSeconds": 0.000023458 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189083595, - "downloadSeconds": 0.000023793 + "uploadSeconds": 0.194089134, + "downloadSeconds": 0.000021827 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188867791, - "downloadSeconds": 0.000024162 + "uploadSeconds": 0.178674659, + "downloadSeconds": 0.000026203 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182410744, - "downloadSeconds": 0.000021144 + "uploadSeconds": 0.185130393, + "downloadSeconds": 0.000024973 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.19338541, - "downloadSeconds": 0.000024628 + "uploadSeconds": 0.178811065, + "downloadSeconds": 0.000023368 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.180148621, - "downloadSeconds": 0.000023234 + "uploadSeconds": 0.187995598, + "downloadSeconds": 0.00002634 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183482025, - "downloadSeconds": 0.00002359 + "uploadSeconds": 0.195339953, + "downloadSeconds": 0.000020748 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192011607, - "downloadSeconds": 0.000019914 + "uploadSeconds": 0.186196457, + "downloadSeconds": 0.000036929 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193289196, - "downloadSeconds": 0.000024513 + "uploadSeconds": 0.188973136, + "downloadSeconds": 0.000024914 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185263194, - "downloadSeconds": 0.000028503 + "uploadSeconds": 0.192528886, + "downloadSeconds": 0.000025572 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186621738, - "downloadSeconds": 0.000024194 + "uploadSeconds": 0.193148886, + "downloadSeconds": 0.000027763 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192898111, - "downloadSeconds": 0.000024166 + "uploadSeconds": 0.193900042, + "downloadSeconds": 0.000021874 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187423423, - "downloadSeconds": 0.000023964 + "uploadSeconds": 0.195939328, + "downloadSeconds": 0.000026014 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191429869, - "downloadSeconds": 0.000021317 + "uploadSeconds": 0.191246907, + "downloadSeconds": 0.000026981 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187678237, - "downloadSeconds": 0.000021642 + "uploadSeconds": 0.18417502, + "downloadSeconds": 0.000026181 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187827296, - "downloadSeconds": 0.000021888 + "uploadSeconds": 0.191423524, + "downloadSeconds": 0.000021579 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186599878, - "downloadSeconds": 0.00002446 + "uploadSeconds": 0.183943936, + "downloadSeconds": 0.000022064 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190005609, - "downloadSeconds": 0.000022756 + "uploadSeconds": 0.182280169, + "downloadSeconds": 0.000024752 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189002327, - "downloadSeconds": 0.000028052 + "uploadSeconds": 0.184413819, + "downloadSeconds": 0.000024742 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191248774, - "downloadSeconds": 0.000021291 + "uploadSeconds": 0.191802659, + "downloadSeconds": 0.000023783 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182345961, - "downloadSeconds": 0.000018505 + "uploadSeconds": 0.192117827, + "downloadSeconds": 0.000024709 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.178343946, - "downloadSeconds": 0.000024258 + "uploadSeconds": 0.18619131, + "downloadSeconds": 0.000024901 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.1796409, - "downloadSeconds": 0.000020622 + "uploadSeconds": 0.187654897, + "downloadSeconds": 0.000032967 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191527728, - "downloadSeconds": 0.000023144 + "uploadSeconds": 0.187674364, + "downloadSeconds": 0.000025345 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187086772, - "downloadSeconds": 0.000024889 + "uploadSeconds": 0.187036773, + "downloadSeconds": 0.000024928 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18110695, - "downloadSeconds": 0.000023585 + "uploadSeconds": 0.18494965, + "downloadSeconds": 0.000027452 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187533438, - "downloadSeconds": 0.000022629 + "uploadSeconds": 0.180378838, + "downloadSeconds": 0.000023578 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187532688, - "downloadSeconds": 0.000029573 + "uploadSeconds": 0.187225719, + "downloadSeconds": 0.000022053 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191096905, - "downloadSeconds": 0.000025604 + "uploadSeconds": 0.191425341, + "downloadSeconds": 0.000024108 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.194325541, - "downloadSeconds": 0.000021101 + "uploadSeconds": 0.184853694, + "downloadSeconds": 0.000028837 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189083303, - "downloadSeconds": 0.000021147 + "uploadSeconds": 0.181655026, + "downloadSeconds": 0.000025577 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193745985, - "downloadSeconds": 0.000024439 + "uploadSeconds": 0.192752062, + "downloadSeconds": 0.000027913 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190582174, - "downloadSeconds": 0.000017468 + "uploadSeconds": 0.19259968, + "downloadSeconds": 0.00002855 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192054523, - "downloadSeconds": 0.0000221 + "uploadSeconds": 0.188552023, + "downloadSeconds": 0.000024955 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183943085, - "downloadSeconds": 0.000024812 + "uploadSeconds": 0.183730429, + "downloadSeconds": 0.000023694 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.17475635, - "downloadSeconds": 0.000024018 + "uploadSeconds": 0.177422708, + "downloadSeconds": 0.000022784 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184440358, - "downloadSeconds": 0.000021449 + "uploadSeconds": 0.187951807, + "downloadSeconds": 0.000024424 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18631819, - "downloadSeconds": 0.000028734 + "uploadSeconds": 0.185678393, + "downloadSeconds": 0.000024968 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.181409699, - "downloadSeconds": 0.00002564 + "uploadSeconds": 0.191673411, + "downloadSeconds": 0.000023488 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.179933668, - "downloadSeconds": 0.000024125 + "uploadSeconds": 0.181048061, + "downloadSeconds": 0.000020906 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185195736, - "downloadSeconds": 0.000022891 + "uploadSeconds": 0.185683204, + "downloadSeconds": 0.000023901 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188159214, - "downloadSeconds": 0.00002612 + "uploadSeconds": 0.182405216, + "downloadSeconds": 0.00002517 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191314415, - "downloadSeconds": 0.000021095 + "uploadSeconds": 0.193882525, + "downloadSeconds": 0.000025305 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183011343, - "downloadSeconds": 0.000024533 + "uploadSeconds": 0.190209202, + "downloadSeconds": 0.000031225 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188848175, - "downloadSeconds": 0.0000209 + "uploadSeconds": 0.185653646, + "downloadSeconds": 0.000025465 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.195977983, - "downloadSeconds": 0.000024503 + "uploadSeconds": 0.191666166, + "downloadSeconds": 0.000025486 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18291316, - "downloadSeconds": 0.000020749 + "uploadSeconds": 0.18358427, + "downloadSeconds": 0.000026064 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185713857, - "downloadSeconds": 0.000023253 + "uploadSeconds": 0.189650703, + "downloadSeconds": 0.000024602 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189154788, - "downloadSeconds": 0.000024316 + "uploadSeconds": 0.186723161, + "downloadSeconds": 0.000026009 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185723779, - "downloadSeconds": 0.000022027 + "uploadSeconds": 0.184713584, + "downloadSeconds": 0.000025332 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186181575, - "downloadSeconds": 0.000020345 + "uploadSeconds": 0.192077544, + "downloadSeconds": 0.00002107 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183142393, - "downloadSeconds": 0.000021052 + "uploadSeconds": 0.189386708, + "downloadSeconds": 0.000039476 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184955497, - "downloadSeconds": 0.000020846 + "uploadSeconds": 0.19138384, + "downloadSeconds": 0.000024091 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189237981, - "downloadSeconds": 0.000027586 + "uploadSeconds": 0.183304304, + "downloadSeconds": 0.000025534 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.19088234, - "downloadSeconds": 0.000023083 + "uploadSeconds": 0.190941356, + "downloadSeconds": 0.000023583 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.181319211, - "downloadSeconds": 0.000023255 + "uploadSeconds": 0.186071754, + "downloadSeconds": 0.000026885 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184472225, - "downloadSeconds": 0.000034077 + "uploadSeconds": 0.186465452, + "downloadSeconds": 0.000024554 } ], "implementation": "https", @@ -3010,504 +3010,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.187265924, - "uploadSeconds": 0.000003363, - "downloadSeconds": 0.062154144 + "connectionEstablishedSeconds": 0.189865033, + "uploadSeconds": 0.000003755, + "downloadSeconds": 0.063326819 }, { - "connectionEstablishedSeconds": 0.189557176, - "uploadSeconds": 0.000006487, - "downloadSeconds": 0.062203288 + "connectionEstablishedSeconds": 0.190167163, + "uploadSeconds": 0.000003405, + "downloadSeconds": 0.06291947 }, { - "connectionEstablishedSeconds": 0.183024286, - "uploadSeconds": 0.000003387, - "downloadSeconds": 0.060029314 + "connectionEstablishedSeconds": 0.19127148, + "uploadSeconds": 0.000003459, + "downloadSeconds": 0.063311819 }, { - "connectionEstablishedSeconds": 0.196939115, - "uploadSeconds": 0.000003342, - "downloadSeconds": 0.064670246 + "connectionEstablishedSeconds": 0.191882774, + "uploadSeconds": 0.00000357, + "downloadSeconds": 0.063451717 }, { - "connectionEstablishedSeconds": 0.187845645, - "uploadSeconds": 0.000003119, - "downloadSeconds": 0.061806415 + "connectionEstablishedSeconds": 0.191717471, + "uploadSeconds": 0.000003752, + "downloadSeconds": 0.063499436 }, { - "connectionEstablishedSeconds": 0.183480618, - "uploadSeconds": 0.000004217, - "downloadSeconds": 0.060140849 + "connectionEstablishedSeconds": 0.178632645, + "uploadSeconds": 0.000003283, + "downloadSeconds": 0.059170141 }, { - "connectionEstablishedSeconds": 0.194091737, - "uploadSeconds": 0.000003398, - "downloadSeconds": 0.063641913 + "connectionEstablishedSeconds": 0.186360132, + "uploadSeconds": 0.000003649, + "downloadSeconds": 0.061683229 }, { - "connectionEstablishedSeconds": 0.192041679, - "uploadSeconds": 0.000003277, - "downloadSeconds": 0.063566373 + "connectionEstablishedSeconds": 0.18410758, + "uploadSeconds": 0.000003259, + "downloadSeconds": 0.060973875 }, { - "connectionEstablishedSeconds": 0.191750568, - "uploadSeconds": 0.000004094, - "downloadSeconds": 0.06306795 + "connectionEstablishedSeconds": 0.188355392, + "uploadSeconds": 0.000003324, + "downloadSeconds": 0.062420337 }, { - "connectionEstablishedSeconds": 0.196661034, - "uploadSeconds": 0.000003638, - "downloadSeconds": 0.064597793 + "connectionEstablishedSeconds": 0.192853788, + "uploadSeconds": 0.000004574, + "downloadSeconds": 0.063856996 }, { - "connectionEstablishedSeconds": 0.192399151, - "uploadSeconds": 0.000003287, - "downloadSeconds": 0.063717409 + "connectionEstablishedSeconds": 0.19061551, + "uploadSeconds": 0.00000336, + "downloadSeconds": 0.063080255 }, { - "connectionEstablishedSeconds": 0.194512523, - "uploadSeconds": 0.000003305, - "downloadSeconds": 0.063794327 + "connectionEstablishedSeconds": 0.194515365, + "uploadSeconds": 0.000003426, + "downloadSeconds": 0.063687147 }, { - "connectionEstablishedSeconds": 0.190643887, - "uploadSeconds": 0.000003297, - "downloadSeconds": 0.063321458 + "connectionEstablishedSeconds": 0.192444206, + "uploadSeconds": 0.000003363, + "downloadSeconds": 0.063767405 }, { - "connectionEstablishedSeconds": 0.191925632, - "uploadSeconds": 0.000003153, - "downloadSeconds": 0.062927302 + "connectionEstablishedSeconds": 0.185178857, + "uploadSeconds": 0.000003962, + "downloadSeconds": 0.061233797 }, { - "connectionEstablishedSeconds": 0.193221353, - "uploadSeconds": 0.000003628, - "downloadSeconds": 0.063378233 + "connectionEstablishedSeconds": 0.189486458, + "uploadSeconds": 0.000003111, + "downloadSeconds": 0.062118443 }, { - "connectionEstablishedSeconds": 0.191420507, - "uploadSeconds": 0.000003297, - "downloadSeconds": 0.062854803 + "connectionEstablishedSeconds": 0.196167145, + "uploadSeconds": 0.000003706, + "downloadSeconds": 0.064887836 }, { - "connectionEstablishedSeconds": 0.177621185, - "uploadSeconds": 0.000004143, - "downloadSeconds": 0.058236693 + "connectionEstablishedSeconds": 0.192284557, + "uploadSeconds": 0.000003459, + "downloadSeconds": 0.063691101 }, { - "connectionEstablishedSeconds": 0.186026405, - "uploadSeconds": 0.00000371, - "downloadSeconds": 0.061038859 + "connectionEstablishedSeconds": 0.188827342, + "uploadSeconds": 0.000003991, + "downloadSeconds": 0.061963325 }, { - "connectionEstablishedSeconds": 0.187867362, - "uploadSeconds": 0.000003418, - "downloadSeconds": 0.062196985 + "connectionEstablishedSeconds": 0.185525831, + "uploadSeconds": 0.000006237, + "downloadSeconds": 0.061254952 }, { - "connectionEstablishedSeconds": 0.195457825, - "uploadSeconds": 0.000003426, - "downloadSeconds": 0.063899168 + "connectionEstablishedSeconds": 0.193967423, + "uploadSeconds": 0.000003491, + "downloadSeconds": 0.064179438 }, { - "connectionEstablishedSeconds": 0.188626728, - "uploadSeconds": 0.00000324, - "downloadSeconds": 0.06187622 + "connectionEstablishedSeconds": 0.187580283, + "uploadSeconds": 0.000003175, + "downloadSeconds": 0.06221106 }, { - "connectionEstablishedSeconds": 0.190810988, - "uploadSeconds": 0.000003275, - "downloadSeconds": 0.063101919 + "connectionEstablishedSeconds": 0.185444221, + "uploadSeconds": 0.000003223, + "downloadSeconds": 0.061453914 }, { - "connectionEstablishedSeconds": 0.192989026, - "uploadSeconds": 0.000002992, - "downloadSeconds": 0.063853567 + "connectionEstablishedSeconds": 0.191583765, + "uploadSeconds": 0.0000033, + "downloadSeconds": 0.063420643 }, { - "connectionEstablishedSeconds": 0.189992784, - "uploadSeconds": 0.000003782, - "downloadSeconds": 0.062369201 + "connectionEstablishedSeconds": 0.188379636, + "uploadSeconds": 0.000030857, + "downloadSeconds": 0.062499979 }, { - "connectionEstablishedSeconds": 0.194293407, - "uploadSeconds": 0.000003116, - "downloadSeconds": 0.063669453 + "connectionEstablishedSeconds": 0.195192589, + "uploadSeconds": 0.000003374, + "downloadSeconds": 0.064022674 }, { - "connectionEstablishedSeconds": 0.190904301, - "uploadSeconds": 0.000004374, - "downloadSeconds": 0.062676162 + "connectionEstablishedSeconds": 0.186875039, + "uploadSeconds": 0.000005618, + "downloadSeconds": 0.061720819 }, { - "connectionEstablishedSeconds": 0.195879226, - "uploadSeconds": 0.000004131, - "downloadSeconds": 0.064389181 + "connectionEstablishedSeconds": 0.192027134, + "uploadSeconds": 0.000003157, + "downloadSeconds": 0.063552229 }, { - "connectionEstablishedSeconds": 0.193824536, - "uploadSeconds": 0.000004093, - "downloadSeconds": 0.063465764 + "connectionEstablishedSeconds": 0.186630503, + "uploadSeconds": 0.000004785, + "downloadSeconds": 0.061890439 }, { - "connectionEstablishedSeconds": 0.188027247, - "uploadSeconds": 0.000002917, - "downloadSeconds": 0.062328405 + "connectionEstablishedSeconds": 0.182287487, + "uploadSeconds": 0.00000373, + "downloadSeconds": 0.060437908 }, { - "connectionEstablishedSeconds": 0.195207956, - "uploadSeconds": 0.000003012, - "downloadSeconds": 0.064754265 + "connectionEstablishedSeconds": 0.190073749, + "uploadSeconds": 0.000003001, + "downloadSeconds": 0.062892605 }, { - "connectionEstablishedSeconds": 0.190079317, - "uploadSeconds": 0.000004124, - "downloadSeconds": 0.062940938 + "connectionEstablishedSeconds": 0.187970588, + "uploadSeconds": 0.000004204, + "downloadSeconds": 0.062110529 }, { - "connectionEstablishedSeconds": 0.19125065, - "uploadSeconds": 0.000003096, - "downloadSeconds": 0.063017625 + "connectionEstablishedSeconds": 0.185083699, + "uploadSeconds": 0.00000318, + "downloadSeconds": 0.061196717 }, { - "connectionEstablishedSeconds": 0.189269514, - "uploadSeconds": 0.000003286, - "downloadSeconds": 0.062708315 + "connectionEstablishedSeconds": 0.184069718, + "uploadSeconds": 0.000004065, + "downloadSeconds": 0.060306442 }, { - "connectionEstablishedSeconds": 0.190415547, - "uploadSeconds": 0.000003906, - "downloadSeconds": 0.063148976 + "connectionEstablishedSeconds": 0.185998883, + "uploadSeconds": 0.00000313, + "downloadSeconds": 0.061513072 }, { - "connectionEstablishedSeconds": 0.187764982, - "uploadSeconds": 0.000003329, - "downloadSeconds": 0.061561417 + "connectionEstablishedSeconds": 0.192536728, + "uploadSeconds": 0.000003128, + "downloadSeconds": 0.063119368 }, { - "connectionEstablishedSeconds": 0.184668878, - "uploadSeconds": 0.000003093, - "downloadSeconds": 0.060799904 + "connectionEstablishedSeconds": 0.185464008, + "uploadSeconds": 0.000004191, + "downloadSeconds": 0.060725965 }, { - "connectionEstablishedSeconds": 0.178886012, - "uploadSeconds": 0.000003475, - "downloadSeconds": 0.058630013 + "connectionEstablishedSeconds": 0.180226658, + "uploadSeconds": 0.000003442, + "downloadSeconds": 0.059633921 }, { - "connectionEstablishedSeconds": 0.187124831, - "uploadSeconds": 0.000003911, - "downloadSeconds": 0.061490874 + "connectionEstablishedSeconds": 0.194965481, + "uploadSeconds": 0.000005938, + "downloadSeconds": 0.064359458 }, { - "connectionEstablishedSeconds": 0.191519886, - "uploadSeconds": 0.000003354, - "downloadSeconds": 0.06284 + "connectionEstablishedSeconds": 0.182439182, + "uploadSeconds": 0.000003614, + "downloadSeconds": 0.060362038 }, { - "connectionEstablishedSeconds": 0.183677331, - "uploadSeconds": 0.000003329, - "downloadSeconds": 0.060895723 + "connectionEstablishedSeconds": 0.192508667, + "uploadSeconds": 0.000003412, + "downloadSeconds": 0.063704292 }, { - "connectionEstablishedSeconds": 0.193609607, - "uploadSeconds": 0.000003424, - "downloadSeconds": 0.063463555 + "connectionEstablishedSeconds": 0.186931537, + "uploadSeconds": 0.000003467, + "downloadSeconds": 0.061294501 }, { - "connectionEstablishedSeconds": 0.190345657, - "uploadSeconds": 0.000004193, - "downloadSeconds": 0.062501922 + "connectionEstablishedSeconds": 0.191518338, + "uploadSeconds": 0.000004447, + "downloadSeconds": 0.062653135 }, { - "connectionEstablishedSeconds": 0.189962975, - "uploadSeconds": 0.000003208, - "downloadSeconds": 0.06288207 + "connectionEstablishedSeconds": 0.19192684, + "uploadSeconds": 0.000003705, + "downloadSeconds": 0.062893242 }, { - "connectionEstablishedSeconds": 0.187529507, - "uploadSeconds": 0.000003354, - "downloadSeconds": 0.061472793 + "connectionEstablishedSeconds": 0.185394753, + "uploadSeconds": 0.000004483, + "downloadSeconds": 0.061331984 }, { - "connectionEstablishedSeconds": 0.187134544, - "uploadSeconds": 0.000006123, - "downloadSeconds": 0.061314985 + "connectionEstablishedSeconds": 0.185708486, + "uploadSeconds": 0.000003951, + "downloadSeconds": 0.0607885 }, { - "connectionEstablishedSeconds": 0.197905948, - "uploadSeconds": 0.000003685, - "downloadSeconds": 0.065034712 + "connectionEstablishedSeconds": 0.183875796, + "uploadSeconds": 0.0000047, + "downloadSeconds": 0.060791407 }, { - "connectionEstablishedSeconds": 0.177555793, - "uploadSeconds": 0.000003361, - "downloadSeconds": 0.058861411 + "connectionEstablishedSeconds": 0.192025954, + "uploadSeconds": 0.000006376, + "downloadSeconds": 0.063456396 }, { - "connectionEstablishedSeconds": 0.191306735, - "uploadSeconds": 0.000017854, - "downloadSeconds": 0.064192984 + "connectionEstablishedSeconds": 0.196378458, + "uploadSeconds": 0.000003546, + "downloadSeconds": 0.065019283 }, { - "connectionEstablishedSeconds": 0.196022343, - "uploadSeconds": 0.000003263, - "downloadSeconds": 0.065029693 + "connectionEstablishedSeconds": 0.181342825, + "uploadSeconds": 0.00000346, + "downloadSeconds": 0.059890191 }, { - "connectionEstablishedSeconds": 0.193764388, - "uploadSeconds": 0.000003303, - "downloadSeconds": 0.063631364 + "connectionEstablishedSeconds": 0.182238767, + "uploadSeconds": 0.000017619, + "downloadSeconds": 0.060241578 }, { - "connectionEstablishedSeconds": 0.196818543, - "uploadSeconds": 0.0000033, - "downloadSeconds": 0.064576233 + "connectionEstablishedSeconds": 0.185472707, + "uploadSeconds": 0.000010933, + "downloadSeconds": 0.060708375 }, { - "connectionEstablishedSeconds": 0.176810816, - "uploadSeconds": 0.000002908, - "downloadSeconds": 0.058414157 + "connectionEstablishedSeconds": 0.188838896, + "uploadSeconds": 0.000003734, + "downloadSeconds": 0.061928968 }, { - "connectionEstablishedSeconds": 0.192276585, - "uploadSeconds": 0.000003158, - "downloadSeconds": 0.06325269 + "connectionEstablishedSeconds": 0.185193048, + "uploadSeconds": 0.000003366, + "downloadSeconds": 0.061215954 }, { - "connectionEstablishedSeconds": 0.194074023, - "uploadSeconds": 0.000028356, - "downloadSeconds": 0.063717898 + "connectionEstablishedSeconds": 0.187592679, + "uploadSeconds": 0.000004438, + "downloadSeconds": 0.061473994 }, { - "connectionEstablishedSeconds": 0.193206952, - "uploadSeconds": 0.000003765, - "downloadSeconds": 0.0635352 + "connectionEstablishedSeconds": 0.193636801, + "uploadSeconds": 0.000004524, + "downloadSeconds": 0.064099879 }, { - "connectionEstablishedSeconds": 0.190057792, - "uploadSeconds": 0.000003348, - "downloadSeconds": 0.062436626 + "connectionEstablishedSeconds": 0.184201271, + "uploadSeconds": 0.000003432, + "downloadSeconds": 0.060985428 }, { - "connectionEstablishedSeconds": 0.18784935, - "uploadSeconds": 0.000003782, - "downloadSeconds": 0.061669523 + "connectionEstablishedSeconds": 0.194326728, + "uploadSeconds": 0.000003155, + "downloadSeconds": 0.064259504 }, { - "connectionEstablishedSeconds": 0.198006008, - "uploadSeconds": 0.000003444, - "downloadSeconds": 0.065708426 + "connectionEstablishedSeconds": 0.194445779, + "uploadSeconds": 0.000004119, + "downloadSeconds": 0.064261936 }, { - "connectionEstablishedSeconds": 0.188476641, - "uploadSeconds": 0.0000039, - "downloadSeconds": 0.062462671 + "connectionEstablishedSeconds": 0.185737118, + "uploadSeconds": 0.00000329, + "downloadSeconds": 0.060933254 }, { - "connectionEstablishedSeconds": 0.182203575, - "uploadSeconds": 0.000003323, - "downloadSeconds": 0.060250246 + "connectionEstablishedSeconds": 0.191702829, + "uploadSeconds": 0.000003619, + "downloadSeconds": 0.06283655 }, { - "connectionEstablishedSeconds": 0.19490573, - "uploadSeconds": 0.000003738, - "downloadSeconds": 0.064006097 + "connectionEstablishedSeconds": 0.193856428, + "uploadSeconds": 0.000003181, + "downloadSeconds": 0.064125639 }, { - "connectionEstablishedSeconds": 0.185335964, - "uploadSeconds": 0.000003142, - "downloadSeconds": 0.06146971 + "connectionEstablishedSeconds": 0.197002058, + "uploadSeconds": 0.000003796, + "downloadSeconds": 0.065150551 }, { - "connectionEstablishedSeconds": 0.183792864, - "uploadSeconds": 0.000003206, - "downloadSeconds": 0.060305569 + "connectionEstablishedSeconds": 0.188234771, + "uploadSeconds": 0.000002842, + "downloadSeconds": 0.062380961 }, { - "connectionEstablishedSeconds": 0.19713591, - "uploadSeconds": 0.000003169, - "downloadSeconds": 0.065241664 + "connectionEstablishedSeconds": 0.189238149, + "uploadSeconds": 0.000002815, + "downloadSeconds": 0.062670946 }, { - "connectionEstablishedSeconds": 0.184555929, - "uploadSeconds": 0.000003789, - "downloadSeconds": 0.060342486 + "connectionEstablishedSeconds": 0.190280679, + "uploadSeconds": 0.000003373, + "downloadSeconds": 0.063065695 }, { - "connectionEstablishedSeconds": 0.191511875, - "uploadSeconds": 0.000002978, - "downloadSeconds": 0.063331886 + "connectionEstablishedSeconds": 0.186700069, + "uploadSeconds": 0.000003589, + "downloadSeconds": 0.061838272 }, { - "connectionEstablishedSeconds": 0.190624737, - "uploadSeconds": 0.000004287, - "downloadSeconds": 0.063210077 + "connectionEstablishedSeconds": 0.188825445, + "uploadSeconds": 0.000026162, + "downloadSeconds": 0.062522361 }, { - "connectionEstablishedSeconds": 0.194129578, - "uploadSeconds": 0.000004907, - "downloadSeconds": 0.064407992 + "connectionEstablishedSeconds": 0.184322559, + "uploadSeconds": 0.000003948, + "downloadSeconds": 0.060868078 }, { - "connectionEstablishedSeconds": 0.195752646, - "uploadSeconds": 0.000003319, - "downloadSeconds": 0.064317242 + "connectionEstablishedSeconds": 0.183973916, + "uploadSeconds": 0.000010764, + "downloadSeconds": 0.060144183 }, { - "connectionEstablishedSeconds": 0.19257992, - "uploadSeconds": 0.000003625, - "downloadSeconds": 0.063064308 + "connectionEstablishedSeconds": 0.193049526, + "uploadSeconds": 0.000003917, + "downloadSeconds": 0.063845259 }, { - "connectionEstablishedSeconds": 0.189536779, - "uploadSeconds": 0.000004356, - "downloadSeconds": 0.062742188 + "connectionEstablishedSeconds": 0.191696109, + "uploadSeconds": 0.000003516, + "downloadSeconds": 0.063412521 }, { - "connectionEstablishedSeconds": 0.188275419, - "uploadSeconds": 0.000003002, - "downloadSeconds": 0.062369722 + "connectionEstablishedSeconds": 0.186839716, + "uploadSeconds": 0.000003305, + "downloadSeconds": 0.061833216 }, { - "connectionEstablishedSeconds": 0.186185139, - "uploadSeconds": 0.000003817, - "downloadSeconds": 0.06109316 + "connectionEstablishedSeconds": 0.191809822, + "uploadSeconds": 0.000003792, + "downloadSeconds": 0.063403856 }, { - "connectionEstablishedSeconds": 0.184696604, - "uploadSeconds": 0.000003261, - "downloadSeconds": 0.060609072 + "connectionEstablishedSeconds": 0.194129095, + "uploadSeconds": 0.00001352, + "downloadSeconds": 0.06352246 }, { - "connectionEstablishedSeconds": 0.196722355, - "uploadSeconds": 0.000003351, - "downloadSeconds": 0.064479896 + "connectionEstablishedSeconds": 0.181180001, + "uploadSeconds": 0.000004572, + "downloadSeconds": 0.059934202 }, { - "connectionEstablishedSeconds": 0.191478022, - "uploadSeconds": 0.000003218, - "downloadSeconds": 0.063413269 + "connectionEstablishedSeconds": 0.180661281, + "uploadSeconds": 0.000003547, + "downloadSeconds": 0.059755159 }, { - "connectionEstablishedSeconds": 0.187673152, - "uploadSeconds": 0.000004551, - "downloadSeconds": 0.062067971 + "connectionEstablishedSeconds": 0.190152936, + "uploadSeconds": 0.000003181, + "downloadSeconds": 0.063054685 }, { - "connectionEstablishedSeconds": 0.193827421, - "uploadSeconds": 0.000003475, - "downloadSeconds": 0.06433508 + "connectionEstablishedSeconds": 0.186944328, + "uploadSeconds": 0.000003496, + "downloadSeconds": 0.061904523 }, { - "connectionEstablishedSeconds": 0.192151163, - "uploadSeconds": 0.000003606, - "downloadSeconds": 0.06354583 + "connectionEstablishedSeconds": 0.190184668, + "uploadSeconds": 0.000003288, + "downloadSeconds": 0.062883361 }, { - "connectionEstablishedSeconds": 0.191935843, - "uploadSeconds": 0.000008481, - "downloadSeconds": 0.06291483 + "connectionEstablishedSeconds": 0.187276895, + "uploadSeconds": 0.000003031, + "downloadSeconds": 0.061909398 }, { - "connectionEstablishedSeconds": 0.185985133, - "uploadSeconds": 0.00000336, - "downloadSeconds": 0.060967739 + "connectionEstablishedSeconds": 0.196410805, + "uploadSeconds": 0.000003343, + "downloadSeconds": 0.064392076 }, { - "connectionEstablishedSeconds": 0.195609673, - "uploadSeconds": 0.000003403, - "downloadSeconds": 0.064748252 + "connectionEstablishedSeconds": 0.186942448, + "uploadSeconds": 0.000003256, + "downloadSeconds": 0.061798213 }, { - "connectionEstablishedSeconds": 0.188223984, - "uploadSeconds": 0.000003478, - "downloadSeconds": 0.061775663 + "connectionEstablishedSeconds": 0.195507958, + "uploadSeconds": 0.000004205, + "downloadSeconds": 0.06431094 }, { - "connectionEstablishedSeconds": 0.194433271, - "uploadSeconds": 0.000003335, - "downloadSeconds": 0.06381819 + "connectionEstablishedSeconds": 0.188729854, + "uploadSeconds": 0.000003247, + "downloadSeconds": 0.062861007 }, { - "connectionEstablishedSeconds": 0.192984602, - "uploadSeconds": 0.000009887, - "downloadSeconds": 0.06334622 + "connectionEstablishedSeconds": 0.176308767, + "uploadSeconds": 0.000003269, + "downloadSeconds": 0.058376847 }, { - "connectionEstablishedSeconds": 0.192388961, - "uploadSeconds": 0.00000345, - "downloadSeconds": 0.063253286 + "connectionEstablishedSeconds": 0.185853802, + "uploadSeconds": 0.000034454, + "downloadSeconds": 0.060993945 }, { - "connectionEstablishedSeconds": 0.191417727, - "uploadSeconds": 0.000004113, - "downloadSeconds": 0.063491585 + "connectionEstablishedSeconds": 0.195486075, + "uploadSeconds": 0.000003437, + "downloadSeconds": 0.064021667 }, { - "connectionEstablishedSeconds": 0.189679397, - "uploadSeconds": 0.000003253, - "downloadSeconds": 0.062184388 + "connectionEstablishedSeconds": 0.189181712, + "uploadSeconds": 0.000003585, + "downloadSeconds": 0.062231455 }, { - "connectionEstablishedSeconds": 0.193117883, - "uploadSeconds": 0.000003131, - "downloadSeconds": 0.063380846 + "connectionEstablishedSeconds": 0.189533428, + "uploadSeconds": 0.000003974, + "downloadSeconds": 0.061964976 }, { - "connectionEstablishedSeconds": 0.198822172, - "uploadSeconds": 0.000003281, - "downloadSeconds": 0.06583434 + "connectionEstablishedSeconds": 0.196418242, + "uploadSeconds": 0.000004446, + "downloadSeconds": 0.064289062 }, { - "connectionEstablishedSeconds": 0.194338454, - "uploadSeconds": 0.000003423, - "downloadSeconds": 0.063830621 + "connectionEstablishedSeconds": 0.185007671, + "uploadSeconds": 0.000003875, + "downloadSeconds": 0.061191973 }, { - "connectionEstablishedSeconds": 0.183162377, - "uploadSeconds": 0.00000359, - "downloadSeconds": 0.06064044 + "connectionEstablishedSeconds": 0.194761992, + "uploadSeconds": 0.000003472, + "downloadSeconds": 0.064167683 }, { - "connectionEstablishedSeconds": 0.185396487, - "uploadSeconds": 0.000003061, - "downloadSeconds": 0.060731449 + "connectionEstablishedSeconds": 0.189410553, + "uploadSeconds": 0.000003401, + "downloadSeconds": 0.062670457 }, { - "connectionEstablishedSeconds": 0.191415236, - "uploadSeconds": 0.000003353, - "downloadSeconds": 0.063384523 + "connectionEstablishedSeconds": 0.184269226, + "uploadSeconds": 0.000003269, + "downloadSeconds": 0.061020116 }, { - "connectionEstablishedSeconds": 0.190619261, - "uploadSeconds": 0.000003132, - "downloadSeconds": 0.063068455 + "connectionEstablishedSeconds": 0.191795192, + "uploadSeconds": 0.000003046, + "downloadSeconds": 0.063424398 }, { - "connectionEstablishedSeconds": 0.194471485, - "uploadSeconds": 0.000002969, - "downloadSeconds": 0.064423235 + "connectionEstablishedSeconds": 0.187122482, + "uploadSeconds": 0.000003171, + "downloadSeconds": 0.061827626 }, { - "connectionEstablishedSeconds": 0.188817858, - "uploadSeconds": 0.000003669, - "downloadSeconds": 0.061856513 + "connectionEstablishedSeconds": 0.187808498, + "uploadSeconds": 0.000004047, + "downloadSeconds": 0.061480245 }, { - "connectionEstablishedSeconds": 0.183555378, - "uploadSeconds": 0.000005259, - "downloadSeconds": 0.060761592 + "connectionEstablishedSeconds": 0.189174617, + "uploadSeconds": 0.000003394, + "downloadSeconds": 0.062532492 }, { - "connectionEstablishedSeconds": 0.188950417, - "uploadSeconds": 0.000003292, - "downloadSeconds": 0.062089214 + "connectionEstablishedSeconds": 0.189730447, + "uploadSeconds": 0.000003184, + "downloadSeconds": 0.062915557 }, { - "connectionEstablishedSeconds": 0.186506121, - "uploadSeconds": 0.000004426, - "downloadSeconds": 0.061217405 + "connectionEstablishedSeconds": 0.194496172, + "uploadSeconds": 0.00000356, + "downloadSeconds": 0.064392806 } ], "implementation": "go-libp2p", @@ -3517,504 +3517,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.063853531, - "uploadSeconds": 0.000002147, - "downloadSeconds": 0.061903846 + "connectionEstablishedSeconds": 0.066922628, + "uploadSeconds": 0.000005352, + "downloadSeconds": 0.063030899 }, { - "connectionEstablishedSeconds": 0.064982901, - "uploadSeconds": 0.000002321, - "downloadSeconds": 0.061408073 + "connectionEstablishedSeconds": 0.06707135, + "uploadSeconds": 0.000002129, + "downloadSeconds": 0.063328551 }, { - "connectionEstablishedSeconds": 0.065961812, - "uploadSeconds": 0.000001949, - "downloadSeconds": 0.063958454 + "connectionEstablishedSeconds": 0.067132787, + "uploadSeconds": 0.000001963, + "downloadSeconds": 0.063505627 }, { - "connectionEstablishedSeconds": 0.070058086, - "uploadSeconds": 0.000002079, - "downloadSeconds": 0.067094922 + "connectionEstablishedSeconds": 0.065440265, + "uploadSeconds": 0.000009053, + "downloadSeconds": 0.06154525 }, { - "connectionEstablishedSeconds": 0.065052069, - "uploadSeconds": 0.000002384, - "downloadSeconds": 0.061295116 + "connectionEstablishedSeconds": 0.06621482, + "uploadSeconds": 0.000002119, + "downloadSeconds": 0.062139616 }, { - "connectionEstablishedSeconds": 0.065195841, - "uploadSeconds": 0.000002264, - "downloadSeconds": 0.063325662 + "connectionEstablishedSeconds": 0.065910382, + "uploadSeconds": 0.000012239, + "downloadSeconds": 0.062562526 }, { - "connectionEstablishedSeconds": 0.066803352, - "uploadSeconds": 0.000002064, - "downloadSeconds": 0.063079582 + "connectionEstablishedSeconds": 0.065909146, + "uploadSeconds": 0.000002035, + "downloadSeconds": 0.0621534 }, { - "connectionEstablishedSeconds": 0.067422036, - "uploadSeconds": 0.000002035, - "downloadSeconds": 0.0636488 + "connectionEstablishedSeconds": 0.06801384, + "uploadSeconds": 0.000002923, + "downloadSeconds": 0.064059605 }, { - "connectionEstablishedSeconds": 0.066899127, - "uploadSeconds": 0.000002832, - "downloadSeconds": 0.063135269 + "connectionEstablishedSeconds": 0.067818056, + "uploadSeconds": 0.000002197, + "downloadSeconds": 0.064130496 }, { - "connectionEstablishedSeconds": 0.065792178, - "uploadSeconds": 0.000002077, - "downloadSeconds": 0.062246279 + "connectionEstablishedSeconds": 0.06785023, + "uploadSeconds": 0.000002279, + "downloadSeconds": 0.063949204 }, { - "connectionEstablishedSeconds": 0.063350798, - "uploadSeconds": 0.000002209, - "downloadSeconds": 0.061342022 + "connectionEstablishedSeconds": 0.064979961, + "uploadSeconds": 0.000002137, + "downloadSeconds": 0.06111793 }, { - "connectionEstablishedSeconds": 0.067943277, - "uploadSeconds": 0.000001636, - "downloadSeconds": 0.064165736 + "connectionEstablishedSeconds": 0.063004329, + "uploadSeconds": 0.000002053, + "downloadSeconds": 0.060985052 }, { - "connectionEstablishedSeconds": 0.065498156, - "uploadSeconds": 0.000001983, - "downloadSeconds": 0.063615849 + "connectionEstablishedSeconds": 0.067792429, + "uploadSeconds": 0.000002436, + "downloadSeconds": 0.063913122 }, { - "connectionEstablishedSeconds": 0.063746753, - "uploadSeconds": 0.000003141, - "downloadSeconds": 0.061706192 + "connectionEstablishedSeconds": 0.067990841, + "uploadSeconds": 0.000002295, + "downloadSeconds": 0.06444806 }, { - "connectionEstablishedSeconds": 0.064723996, - "uploadSeconds": 0.00000233, - "downloadSeconds": 0.062873571 + "connectionEstablishedSeconds": 0.066343242, + "uploadSeconds": 0.000002096, + "downloadSeconds": 0.062580386 }, { - "connectionEstablishedSeconds": 0.064921098, - "uploadSeconds": 0.000020849, - "downloadSeconds": 0.063130592 + "connectionEstablishedSeconds": 0.065857475, + "uploadSeconds": 0.00000196, + "downloadSeconds": 0.06216352 }, { - "connectionEstablishedSeconds": 0.067853394, - "uploadSeconds": 0.000002141, - "downloadSeconds": 0.063972579 + "connectionEstablishedSeconds": 0.065371853, + "uploadSeconds": 0.000023269, + "downloadSeconds": 0.063442293 }, { - "connectionEstablishedSeconds": 0.063701565, - "uploadSeconds": 0.000002394, - "downloadSeconds": 0.061574609 + "connectionEstablishedSeconds": 0.068804013, + "uploadSeconds": 0.00000206, + "downloadSeconds": 0.064941111 }, { - "connectionEstablishedSeconds": 0.067492406, - "uploadSeconds": 0.000002183, - "downloadSeconds": 0.063669215 + "connectionEstablishedSeconds": 0.063637443, + "uploadSeconds": 0.000002768, + "downloadSeconds": 0.059679162 }, { - "connectionEstablishedSeconds": 0.063868952, - "uploadSeconds": 0.000002008, - "downloadSeconds": 0.062071297 + "connectionEstablishedSeconds": 0.065207434, + "uploadSeconds": 0.000001918, + "downloadSeconds": 0.061318134 }, { - "connectionEstablishedSeconds": 0.066077904, - "uploadSeconds": 0.000001883, - "downloadSeconds": 0.064159921 + "connectionEstablishedSeconds": 0.06569069, + "uploadSeconds": 0.000001914, + "downloadSeconds": 0.063650073 }, { - "connectionEstablishedSeconds": 0.065112524, - "uploadSeconds": 0.000002018, - "downloadSeconds": 0.061445425 + "connectionEstablishedSeconds": 0.065767399, + "uploadSeconds": 0.00000194, + "downloadSeconds": 0.061918382 }, { - "connectionEstablishedSeconds": 0.066551635, - "uploadSeconds": 0.000001943, - "downloadSeconds": 0.062937389 + "connectionEstablishedSeconds": 0.064315928, + "uploadSeconds": 0.000001921, + "downloadSeconds": 0.062339162 }, { - "connectionEstablishedSeconds": 0.064780169, - "uploadSeconds": 0.000001746, - "downloadSeconds": 0.061306276 + "connectionEstablishedSeconds": 0.062556024, + "uploadSeconds": 0.00000372, + "downloadSeconds": 0.059064693 }, { - "connectionEstablishedSeconds": 0.066465614, - "uploadSeconds": 0.000003093, - "downloadSeconds": 0.065517295 + "connectionEstablishedSeconds": 0.063431722, + "uploadSeconds": 0.000001945, + "downloadSeconds": 0.059542485 }, { - "connectionEstablishedSeconds": 0.063794166, - "uploadSeconds": 0.000003571, - "downloadSeconds": 0.061647819 + "connectionEstablishedSeconds": 0.06581807, + "uploadSeconds": 0.000002505, + "downloadSeconds": 0.062084981 }, { - "connectionEstablishedSeconds": 0.063356582, - "uploadSeconds": 0.000002864, - "downloadSeconds": 0.061416973 + "connectionEstablishedSeconds": 0.065171919, + "uploadSeconds": 0.000002065, + "downloadSeconds": 0.061944794 }, { - "connectionEstablishedSeconds": 0.064958744, - "uploadSeconds": 0.000008552, - "downloadSeconds": 0.061439026 + "connectionEstablishedSeconds": 0.065486746, + "uploadSeconds": 0.000002186, + "downloadSeconds": 0.061692866 }, { - "connectionEstablishedSeconds": 0.066975692, - "uploadSeconds": 0.00000256, - "downloadSeconds": 0.063151967 + "connectionEstablishedSeconds": 0.065934792, + "uploadSeconds": 0.000001834, + "downloadSeconds": 0.062104727 }, { - "connectionEstablishedSeconds": 0.066554911, - "uploadSeconds": 0.000004909, - "downloadSeconds": 0.064505998 + "connectionEstablishedSeconds": 0.066978153, + "uploadSeconds": 0.000009043, + "downloadSeconds": 0.063348551 }, { - "connectionEstablishedSeconds": 0.069351545, - "uploadSeconds": 0.000001972, - "downloadSeconds": 0.065523048 + "connectionEstablishedSeconds": 0.065119357, + "uploadSeconds": 0.000002436, + "downloadSeconds": 0.061256806 }, { - "connectionEstablishedSeconds": 0.067342819, - "uploadSeconds": 0.000002713, - "downloadSeconds": 0.063545465 + "connectionEstablishedSeconds": 0.062444797, + "uploadSeconds": 0.000002411, + "downloadSeconds": 0.059050465 }, { - "connectionEstablishedSeconds": 0.069139158, - "uploadSeconds": 0.000002075, - "downloadSeconds": 0.065241092 + "connectionEstablishedSeconds": 0.065695197, + "uploadSeconds": 0.000001928, + "downloadSeconds": 0.061853956 }, { - "connectionEstablishedSeconds": 0.064710306, - "uploadSeconds": 0.000001897, - "downloadSeconds": 0.061037498 + "connectionEstablishedSeconds": 0.064993491, + "uploadSeconds": 0.000002038, + "downloadSeconds": 0.061670047 }, { - "connectionEstablishedSeconds": 0.068369429, - "uploadSeconds": 0.000002043, - "downloadSeconds": 0.06492128 + "connectionEstablishedSeconds": 0.065312902, + "uploadSeconds": 0.000002547, + "downloadSeconds": 0.061374028 }, { - "connectionEstablishedSeconds": 0.068059504, - "uploadSeconds": 0.00000186, - "downloadSeconds": 0.064188367 + "connectionEstablishedSeconds": 0.065156961, + "uploadSeconds": 0.000001894, + "downloadSeconds": 0.061883038 }, { - "connectionEstablishedSeconds": 0.066030516, - "uploadSeconds": 0.000002005, - "downloadSeconds": 0.062195243 + "connectionEstablishedSeconds": 0.067970966, + "uploadSeconds": 0.000002151, + "downloadSeconds": 0.064037572 }, { - "connectionEstablishedSeconds": 0.062159714, - "uploadSeconds": 0.000002165, - "downloadSeconds": 0.060150927 + "connectionEstablishedSeconds": 0.063205386, + "uploadSeconds": 0.000001849, + "downloadSeconds": 0.061184034 }, { - "connectionEstablishedSeconds": 0.065208248, - "uploadSeconds": 0.000002206, - "downloadSeconds": 0.063135191 + "connectionEstablishedSeconds": 0.064585287, + "uploadSeconds": 0.000002009, + "downloadSeconds": 0.061121857 }, { - "connectionEstablishedSeconds": 0.065286705, - "uploadSeconds": 0.000002558, - "downloadSeconds": 0.063171598 + "connectionEstablishedSeconds": 0.066126302, + "uploadSeconds": 0.000002709, + "downloadSeconds": 0.062159423 }, { - "connectionEstablishedSeconds": 0.068470709, - "uploadSeconds": 0.000002386, - "downloadSeconds": 0.064698216 + "connectionEstablishedSeconds": 0.066305019, + "uploadSeconds": 0.000002026, + "downloadSeconds": 0.062225233 }, { - "connectionEstablishedSeconds": 0.063230961, - "uploadSeconds": 0.000002172, - "downloadSeconds": 0.05948708 + "connectionEstablishedSeconds": 0.064983252, + "uploadSeconds": 0.000002131, + "downloadSeconds": 0.061307883 }, { - "connectionEstablishedSeconds": 0.064312679, - "uploadSeconds": 0.00000246, - "downloadSeconds": 0.06252934 + "connectionEstablishedSeconds": 0.065947013, + "uploadSeconds": 0.00000197, + "downloadSeconds": 0.062179803 }, { - "connectionEstablishedSeconds": 0.066295193, - "uploadSeconds": 0.000002329, - "downloadSeconds": 0.062686328 + "connectionEstablishedSeconds": 0.066676695, + "uploadSeconds": 0.000002067, + "downloadSeconds": 0.064400947 }, { - "connectionEstablishedSeconds": 0.065746978, - "uploadSeconds": 0.000018708, - "downloadSeconds": 0.062202181 + "connectionEstablishedSeconds": 0.06638853, + "uploadSeconds": 0.000002339, + "downloadSeconds": 0.062730715 }, { - "connectionEstablishedSeconds": 0.065714765, - "uploadSeconds": 0.000002683, - "downloadSeconds": 0.063791958 + "connectionEstablishedSeconds": 0.063345535, + "uploadSeconds": 0.000002166, + "downloadSeconds": 0.059499311 }, { - "connectionEstablishedSeconds": 0.064226408, - "uploadSeconds": 0.000002094, - "downloadSeconds": 0.062257861 + "connectionEstablishedSeconds": 0.065428625, + "uploadSeconds": 0.000001985, + "downloadSeconds": 0.061408008 }, { - "connectionEstablishedSeconds": 0.068032673, - "uploadSeconds": 0.000003414, - "downloadSeconds": 0.064262246 + "connectionEstablishedSeconds": 0.06867818, + "uploadSeconds": 0.000001867, + "downloadSeconds": 0.06490522 }, { - "connectionEstablishedSeconds": 0.067097228, - "uploadSeconds": 0.000002003, - "downloadSeconds": 0.06329759 + "connectionEstablishedSeconds": 0.065678468, + "uploadSeconds": 0.000002841, + "downloadSeconds": 0.063536271 }, { - "connectionEstablishedSeconds": 0.06625451, - "uploadSeconds": 0.000002024, - "downloadSeconds": 0.062532233 + "connectionEstablishedSeconds": 0.065225608, + "uploadSeconds": 0.000002395, + "downloadSeconds": 0.061372583 }, { - "connectionEstablishedSeconds": 0.064510297, - "uploadSeconds": 0.000002254, - "downloadSeconds": 0.063151006 + "connectionEstablishedSeconds": 0.063468774, + "uploadSeconds": 0.000002418, + "downloadSeconds": 0.060022087 }, { - "connectionEstablishedSeconds": 0.068352644, - "uploadSeconds": 0.000008445, - "downloadSeconds": 0.064571904 + "connectionEstablishedSeconds": 0.066156549, + "uploadSeconds": 0.00000233, + "downloadSeconds": 0.062415564 }, { - "connectionEstablishedSeconds": 0.066602972, - "uploadSeconds": 0.000002182, - "downloadSeconds": 0.063109213 + "connectionEstablishedSeconds": 0.065140902, + "uploadSeconds": 0.000001934, + "downloadSeconds": 0.061305908 }, { - "connectionEstablishedSeconds": 0.067583783, - "uploadSeconds": 0.000002343, - "downloadSeconds": 0.063861056 + "connectionEstablishedSeconds": 0.065056648, + "uploadSeconds": 0.000002397, + "downloadSeconds": 0.061307842 }, { - "connectionEstablishedSeconds": 0.066546478, - "uploadSeconds": 0.000002032, - "downloadSeconds": 0.064617388 + "connectionEstablishedSeconds": 0.066963459, + "uploadSeconds": 0.00000545, + "downloadSeconds": 0.063221831 }, { - "connectionEstablishedSeconds": 0.065510554, - "uploadSeconds": 0.000003316, - "downloadSeconds": 0.061889018 + "connectionEstablishedSeconds": 0.065800288, + "uploadSeconds": 0.000003101, + "downloadSeconds": 0.062124241 }, { - "connectionEstablishedSeconds": 0.064845031, - "uploadSeconds": 0.000002076, - "downloadSeconds": 0.063807569 + "connectionEstablishedSeconds": 0.064775748, + "uploadSeconds": 0.000002067, + "downloadSeconds": 0.061071155 }, { - "connectionEstablishedSeconds": 0.0688521, - "uploadSeconds": 0.000003133, - "downloadSeconds": 0.065068437 + "connectionEstablishedSeconds": 0.067344037, + "uploadSeconds": 0.000002334, + "downloadSeconds": 0.063530574 }, { - "connectionEstablishedSeconds": 0.065013793, - "uploadSeconds": 0.000002318, - "downloadSeconds": 0.061350768 + "connectionEstablishedSeconds": 0.067101632, + "uploadSeconds": 0.000001963, + "downloadSeconds": 0.063331796 }, { - "connectionEstablishedSeconds": 0.066968385, - "uploadSeconds": 0.000002255, - "downloadSeconds": 0.063070469 + "connectionEstablishedSeconds": 0.066652538, + "uploadSeconds": 0.000002026, + "downloadSeconds": 0.063471765 }, { - "connectionEstablishedSeconds": 0.067112664, - "uploadSeconds": 0.000002597, - "downloadSeconds": 0.063252006 + "connectionEstablishedSeconds": 0.065557726, + "uploadSeconds": 0.000002198, + "downloadSeconds": 0.06225219 }, { - "connectionEstablishedSeconds": 0.064987554, - "uploadSeconds": 0.000001884, - "downloadSeconds": 0.063063868 + "connectionEstablishedSeconds": 0.062330938, + "uploadSeconds": 0.000002131, + "downloadSeconds": 0.058568864 }, { - "connectionEstablishedSeconds": 0.065967073, - "uploadSeconds": 0.000001956, - "downloadSeconds": 0.062305387 + "connectionEstablishedSeconds": 0.068259918, + "uploadSeconds": 0.000001937, + "downloadSeconds": 0.064531738 }, { - "connectionEstablishedSeconds": 0.067108387, - "uploadSeconds": 0.000001894, - "downloadSeconds": 0.063445272 + "connectionEstablishedSeconds": 0.068372289, + "uploadSeconds": 0.000004991, + "downloadSeconds": 0.064424253 }, { - "connectionEstablishedSeconds": 0.06431435, - "uploadSeconds": 0.000002059, - "downloadSeconds": 0.060717924 + "connectionEstablishedSeconds": 0.0678853, + "uploadSeconds": 0.000002062, + "downloadSeconds": 0.06454054 }, { - "connectionEstablishedSeconds": 0.064242159, - "uploadSeconds": 0.000002072, - "downloadSeconds": 0.060499344 + "connectionEstablishedSeconds": 0.065395706, + "uploadSeconds": 0.000001855, + "downloadSeconds": 0.061657675 }, { - "connectionEstablishedSeconds": 0.066464554, - "uploadSeconds": 0.000002076, - "downloadSeconds": 0.062726048 + "connectionEstablishedSeconds": 0.06675671, + "uploadSeconds": 0.000002136, + "downloadSeconds": 0.063114776 }, { - "connectionEstablishedSeconds": 0.062476705, - "uploadSeconds": 0.000001993, - "downloadSeconds": 0.060485389 + "connectionEstablishedSeconds": 0.065232293, + "uploadSeconds": 0.000002104, + "downloadSeconds": 0.06195556 }, { - "connectionEstablishedSeconds": 0.06673264, - "uploadSeconds": 0.000001825, - "downloadSeconds": 0.063061146 + "connectionEstablishedSeconds": 0.065495674, + "uploadSeconds": 0.000008899, + "downloadSeconds": 0.063826287 }, { - "connectionEstablishedSeconds": 0.064060397, - "uploadSeconds": 0.000001966, - "downloadSeconds": 0.062155527 + "connectionEstablishedSeconds": 0.063829334, + "uploadSeconds": 0.000001837, + "downloadSeconds": 0.060089253 }, { - "connectionEstablishedSeconds": 0.066088265, - "uploadSeconds": 0.000003092, - "downloadSeconds": 0.062378945 + "connectionEstablishedSeconds": 0.06529261, + "uploadSeconds": 0.000028577, + "downloadSeconds": 0.061037682 }, { - "connectionEstablishedSeconds": 0.068514481, - "uploadSeconds": 0.000002025, - "downloadSeconds": 0.0646085 + "connectionEstablishedSeconds": 0.063842091, + "uploadSeconds": 0.000002584, + "downloadSeconds": 0.061806972 }, { - "connectionEstablishedSeconds": 0.064719319, - "uploadSeconds": 0.000001894, - "downloadSeconds": 0.061031787 + "connectionEstablishedSeconds": 0.068373301, + "uploadSeconds": 0.000002235, + "downloadSeconds": 0.064564059 }, { - "connectionEstablishedSeconds": 0.06607192, - "uploadSeconds": 0.000002233, - "downloadSeconds": 0.06412077 + "connectionEstablishedSeconds": 0.067130341, + "uploadSeconds": 0.000006149, + "downloadSeconds": 0.063393923 }, { - "connectionEstablishedSeconds": 0.067629578, - "uploadSeconds": 0.000002087, - "downloadSeconds": 0.063763949 + "connectionEstablishedSeconds": 0.067629003, + "uploadSeconds": 0.000002073, + "downloadSeconds": 0.063739106 }, { - "connectionEstablishedSeconds": 0.06230917, - "uploadSeconds": 0.000002348, - "downloadSeconds": 0.058402315 + "connectionEstablishedSeconds": 0.063323175, + "uploadSeconds": 0.000001912, + "downloadSeconds": 0.060204556 }, { - "connectionEstablishedSeconds": 0.064857756, - "uploadSeconds": 0.000002011, - "downloadSeconds": 0.061142836 + "connectionEstablishedSeconds": 0.065988954, + "uploadSeconds": 0.000002086, + "downloadSeconds": 0.063942446 }, { - "connectionEstablishedSeconds": 0.065864183, - "uploadSeconds": 0.000017621, - "downloadSeconds": 0.062186145 + "connectionEstablishedSeconds": 0.065993252, + "uploadSeconds": 0.000001936, + "downloadSeconds": 0.061955874 }, { - "connectionEstablishedSeconds": 0.06481408, - "uploadSeconds": 0.000002102, - "downloadSeconds": 0.062679584 + "connectionEstablishedSeconds": 0.065754517, + "uploadSeconds": 0.00000236, + "downloadSeconds": 0.06190852 }, { - "connectionEstablishedSeconds": 0.06828223, - "uploadSeconds": 0.000002038, - "downloadSeconds": 0.064575532 + "connectionEstablishedSeconds": 0.068200333, + "uploadSeconds": 0.00000205, + "downloadSeconds": 0.064447659 }, { - "connectionEstablishedSeconds": 0.067096999, - "uploadSeconds": 0.0000099, - "downloadSeconds": 0.063291858 + "connectionEstablishedSeconds": 0.067581364, + "uploadSeconds": 0.000005537, + "downloadSeconds": 0.064519643 }, { - "connectionEstablishedSeconds": 0.065024344, - "uploadSeconds": 0.000002007, - "downloadSeconds": 0.063014329 + "connectionEstablishedSeconds": 0.067438544, + "uploadSeconds": 0.000002636, + "downloadSeconds": 0.063958896 }, { - "connectionEstablishedSeconds": 0.064771268, - "uploadSeconds": 0.000002892, - "downloadSeconds": 0.064019739 + "connectionEstablishedSeconds": 0.064491387, + "uploadSeconds": 0.000002088, + "downloadSeconds": 0.060455355 }, { - "connectionEstablishedSeconds": 0.067307082, - "uploadSeconds": 0.000002052, - "downloadSeconds": 0.063716769 + "connectionEstablishedSeconds": 0.066671158, + "uploadSeconds": 0.000026897, + "downloadSeconds": 0.063500121 }, { - "connectionEstablishedSeconds": 0.066775409, - "uploadSeconds": 0.000002107, - "downloadSeconds": 0.063349371 + "connectionEstablishedSeconds": 0.064514258, + "uploadSeconds": 0.000002129, + "downloadSeconds": 0.062438357 }, { - "connectionEstablishedSeconds": 0.066830275, - "uploadSeconds": 0.000001923, - "downloadSeconds": 0.063185873 + "connectionEstablishedSeconds": 0.063022356, + "uploadSeconds": 0.000002118, + "downloadSeconds": 0.059175326 }, { - "connectionEstablishedSeconds": 0.06780674, - "uploadSeconds": 0.00000236, - "downloadSeconds": 0.064036164 + "connectionEstablishedSeconds": 0.068643807, + "uploadSeconds": 0.000001978, + "downloadSeconds": 0.064998081 }, { - "connectionEstablishedSeconds": 0.065967916, - "uploadSeconds": 0.000002265, - "downloadSeconds": 0.062318402 + "connectionEstablishedSeconds": 0.065079035, + "uploadSeconds": 0.000002169, + "downloadSeconds": 0.061898486 }, { - "connectionEstablishedSeconds": 0.064328056, - "uploadSeconds": 0.000002262, - "downloadSeconds": 0.062424217 + "connectionEstablishedSeconds": 0.066517253, + "uploadSeconds": 0.000001859, + "downloadSeconds": 0.064493146 }, { - "connectionEstablishedSeconds": 0.066084525, - "uploadSeconds": 0.000002192, - "downloadSeconds": 0.062286294 + "connectionEstablishedSeconds": 0.06317092, + "uploadSeconds": 0.000002025, + "downloadSeconds": 0.061145378 }, { - "connectionEstablishedSeconds": 0.06599978, - "uploadSeconds": 0.000002109, - "downloadSeconds": 0.062239371 + "connectionEstablishedSeconds": 0.065386759, + "uploadSeconds": 0.000001972, + "downloadSeconds": 0.061464088 }, { - "connectionEstablishedSeconds": 0.066048454, - "uploadSeconds": 0.000001851, - "downloadSeconds": 0.062367304 + "connectionEstablishedSeconds": 0.065555644, + "uploadSeconds": 0.000002253, + "downloadSeconds": 0.061802737 }, { - "connectionEstablishedSeconds": 0.063651651, - "uploadSeconds": 0.000001993, - "downloadSeconds": 0.061675867 + "connectionEstablishedSeconds": 0.066860035, + "uploadSeconds": 0.000001965, + "downloadSeconds": 0.06360708 }, { - "connectionEstablishedSeconds": 0.06226315, - "uploadSeconds": 0.000018316, - "downloadSeconds": 0.060474821 + "connectionEstablishedSeconds": 0.066994728, + "uploadSeconds": 0.000002868, + "downloadSeconds": 0.063096596 }, { - "connectionEstablishedSeconds": 0.066654209, - "uploadSeconds": 0.000004447, - "downloadSeconds": 0.064621304 + "connectionEstablishedSeconds": 0.064946091, + "uploadSeconds": 0.000001994, + "downloadSeconds": 0.062688798 }, { - "connectionEstablishedSeconds": 0.068243264, - "uploadSeconds": 0.000001947, - "downloadSeconds": 0.066378669 + "connectionEstablishedSeconds": 0.067006589, + "uploadSeconds": 0.000002901, + "downloadSeconds": 0.063116296 }, { - "connectionEstablishedSeconds": 0.065352793, - "uploadSeconds": 0.000002016, - "downloadSeconds": 0.061528441 + "connectionEstablishedSeconds": 0.068036808, + "uploadSeconds": 0.000002707, + "downloadSeconds": 0.063847827 }, { - "connectionEstablishedSeconds": 0.065683131, - "uploadSeconds": 0.000002917, - "downloadSeconds": 0.061882983 + "connectionEstablishedSeconds": 0.066680459, + "uploadSeconds": 0.000002029, + "downloadSeconds": 0.062822478 }, { - "connectionEstablishedSeconds": 0.066137011, - "uploadSeconds": 0.000002347, - "downloadSeconds": 0.064232968 + "connectionEstablishedSeconds": 0.065744865, + "uploadSeconds": 0.000002751, + "downloadSeconds": 0.062387904 }, { - "connectionEstablishedSeconds": 0.066276528, - "uploadSeconds": 0.000002005, - "downloadSeconds": 0.064312874 + "connectionEstablishedSeconds": 0.065077772, + "uploadSeconds": 0.000001905, + "downloadSeconds": 0.061134873 } ], "implementation": "go-libp2p", @@ -4031,173 +4031,173 @@ "pings": { "unit": "s", "results": [ - 0.0599, - 0.0599, - 0.0599, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0599, - 0.0598, - 0.0598, - 0.0599, - 0.0599, - 0.0598, - 0.0599, - 0.0599, - 0.0598, - 0.0598, - 0.0599, - 0.0599, - 0.0598, - 0.0599, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0599, - 0.0599, - 0.0598, - 0.0599, - 0.0598, - 0.0599, - 0.0599, - 0.0598, - 0.0599, - 0.0599, - 0.0599, - 0.0598, - 0.0599, - 0.0598, - 0.0598, - 0.0598, - 0.0599, - 0.0599, - 0.0599, - 0.0599, - 0.0599, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0599, - 0.0598, - 0.0599, - 0.06, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0599, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0599, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0598, - 0.0603, - 0.0598, - 0.0599, - 0.0599, - 0.0598 + 0.0631, + 0.0628, + 0.0628, + 0.0628, + 0.0629, + 0.0631, + 0.0632, + 0.0628, + 0.0628, + 0.0678, + 0.0681, + 0.0681, + 0.0681, + 0.0681, + 0.0681, + 0.0681, + 0.0624, + 0.0629, + 0.0629, + 0.0629, + 0.0629, + 0.0629, + 0.0628, + 0.0629, + 0.0629, + 0.0629, + 0.0629, + 0.0629, + 0.0629, + 0.0628, + 0.0629, + 0.0629, + 0.0629, + 0.0629, + 0.0629, + 0.0629, + 0.0629, + 0.0629, + 0.0634, + 0.0629, + 0.0629, + 0.0629, + 0.0629, + 0.0629, + 0.0629, + 0.063, + 0.0629, + 0.0629, + 0.0628, + 0.0629, + 0.0631, + 0.0629, + 0.0629, + 0.0628, + 0.0629, + 0.0629, + 0.0628, + 0.06420000000000001, + 0.0629, + 0.0629, + 0.0629, + 0.0628, + 0.0629, + 0.0629, + 0.0629, + 0.0629, + 0.0629, + 0.0629, + 0.0629, + 0.0629, + 0.0629, + 0.063, + 0.0629, + 0.0629, + 0.063, + 0.0629, + 0.0629, + 0.0629, + 0.0629, + 0.0629, + 0.0632, + 0.0628, + 0.0629, + 0.0629, + 0.0629, + 0.0629, + 0.0628, + 0.0629, + 0.0629, + 0.0628, + 0.0629, + 0.0629, + 0.0628, + 0.0629, + 0.0629, + 0.0629, + 0.0629, + 0.0628, + 0.0629, + 0.0629 ] }, "iperf": { "unit": "bit/s", "results": [ - 3240000000, - 3240000000, - 3230000000, - 3240000000, - 3230000000, - 3240000000, - 3240000000, - 3240000000, - 3240000000, - 3240000000, - 3240000000, - 3230000000, - 3230000000, - 3230000000, - 3230000000, - 3230000000, - 3230000000, - 3240000000, - 3250000000, - 3230000000, - 3230000000, - 3240000000, - 3230000000, - 3240000000, - 3230000000, - 3210000000, - 3190000000, - 3190000000, - 3190000000, - 3190000000, - 3220000000, - 3240000000, - 3240000000, - 3240000000, - 3240000000, - 3240000000, - 3230000000, - 3230000000, - 3240000000, - 3230000000, - 3230000000, - 3230000000, - 3240000000, - 3240000000, - 3240000000, - 3240000000, - 3240000000, - 3240000000, - 3240000000, - 3240000000, - 3240000000, - 3240000000, - 3240000000, - 3240000000, - 3240000000, - 3210000000, - 3190000000, - 3190000000, - 3200000000, - 3200000000, - 3230000000, - 3230000000 + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3330000000, + 3330000000, + 3330000000, + 3330000000, + 3330000000, + 3330000000, + 3330000000, + 3330000000, + 3330000000, + 3330000000, + 3330000000, + 3330000000, + 3340000000, + 3340000000, + 3330000000, + 3340000000, + 3340000000, + 3340000000, + 3330000000, + 3300000000, + 3290000000, + 3280000000, + 3280000000, + 3280000000, + 3310000000, + 3330000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3330000000, + 3330000000, + 3330000000, + 3330000000, + 3330000000, + 3330000000, + 3330000000, + 3330000000, + 3330000000, + 3330000000, + 3330000000, + 3340000000, + 3330000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3330000000, + 3120000000 ] } } \ No newline at end of file From 357bdc3f52262a1781eb98a8e39031eb2ef28bb5 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 29 May 2023 16:11:52 +0900 Subject: [PATCH 102/143] Update dashboard link --- perf/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/README.md b/perf/README.md index 5463f410b..29729a4e3 100644 --- a/perf/README.md +++ b/perf/README.md @@ -6,7 +6,7 @@ This project includes the following components: - `impl/`: implementations of the [libp2p perf protocol](https://github.com/libp2p/specs/pull/478) running on top of e.g. go-libp2p, rust-libp2p or Go's std-library https stack - `runner/`: a set of scripts building and running the above implementations on the above infrastructure, reporting the results in `benchmark-results.json` -Benchmark results can be visualized with https://observablehq.com/@mxinden-workspace/libp2p-perf. +Benchmark results can be visualized with https://observablehq.com/@mxinden-workspace/libp2p-performance-dashboard. ## Provision infrastructure From 1fd9288424d2937127b76a59e9cf1f5b3ca8dfc1 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 29 May 2023 16:14:37 +0900 Subject: [PATCH 103/143] Fix typo --- perf/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/README.md b/perf/README.md index 29729a4e3..c0f6ac7e3 100644 --- a/perf/README.md +++ b/perf/README.md @@ -38,7 +38,7 @@ Benchmark results can be visualized with https://observablehq.com/@mxinden-works - `--server-ip-address` - `--transport` (see `runner/versions.ts` for possible variants) - `--upload-bytes` number of bytes to upload per stream. - - `--download-bytes` number of bytes to upload per stream. + - `--download-bytes` number of bytes to download per stream. - Output - Logging MUST go to stderr. - Measurement output is printed to stdout as JSON in the form of: From e38896957aab434f5b4a322aa27717f0c59190bc Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 29 May 2023 16:17:35 +0900 Subject: [PATCH 104/143] Remove obsolete readme --- perf/impl/go-libp2p/v0.27/README.md | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 perf/impl/go-libp2p/v0.27/README.md diff --git a/perf/impl/go-libp2p/v0.27/README.md b/perf/impl/go-libp2p/v0.27/README.md deleted file mode 100644 index 99b140243..000000000 --- a/perf/impl/go-libp2p/v0.27/README.md +++ /dev/null @@ -1,12 +0,0 @@ -1. Build with `docker build .` - -Run with: - -``` -docker run --rm -it -``` - -Run server with -``` -docker run --rm -it --entrypoint /app/server -``` From d13aac2881ce3a1b499107184e863bd6973a1f54 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 29 May 2023 16:20:44 +0900 Subject: [PATCH 105/143] fix(go/https): remove unused imports --- perf/impl/https/v0.1/go.mod | 17 ----------------- perf/impl/https/v0.1/go.sum | 38 ------------------------------------- 2 files changed, 55 deletions(-) diff --git a/perf/impl/https/v0.1/go.mod b/perf/impl/https/v0.1/go.mod index 8d6dc86b2..0ff4e1746 100644 --- a/perf/impl/https/v0.1/go.mod +++ b/perf/impl/https/v0.1/go.mod @@ -1,20 +1,3 @@ module github.com/libp2p/test-plans/perf/go/https go 1.20 - -require ( - github.com/ipfs/go-cid v0.0.7 // indirect - github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 // indirect - github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771 // indirect - github.com/mr-tron/base58 v1.1.3 // indirect - github.com/multiformats/go-base32 v0.0.3 // indirect - github.com/multiformats/go-base36 v0.1.0 // indirect - github.com/multiformats/go-multiaddr v0.9.0 // indirect - github.com/multiformats/go-multiaddr-net v0.2.0 // indirect - github.com/multiformats/go-multibase v0.0.3 // indirect - github.com/multiformats/go-multihash v0.0.14 // indirect - github.com/multiformats/go-varint v0.0.6 // indirect - github.com/spaolacci/murmur3 v1.1.0 // indirect - golang.org/x/crypto v0.1.0 // indirect - golang.org/x/sys v0.1.0 // indirect -) diff --git a/perf/impl/https/v0.1/go.sum b/perf/impl/https/v0.1/go.sum index 7adcab44b..e69de29bb 100644 --- a/perf/impl/https/v0.1/go.sum +++ b/perf/impl/https/v0.1/go.sum @@ -1,38 +0,0 @@ -github.com/ipfs/go-cid v0.0.7 h1:ysQJVJA3fNDF1qigJbsSQOdjhVLsOEoPdh0+R97k3jY= -github.com/ipfs/go-cid v0.0.7/go.mod h1:6Ux9z5e+HpkQdckYoX1PG/6xqKspzlEIR5SDmgqgC/I= -github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= -github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= -github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771 h1:MHkK1uRtFbVqvAgvWxafZe54+5uBxLluGylDiKgdhwo= -github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= -github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= -github.com/mr-tron/base58 v1.1.3 h1:v+sk57XuaCKGXpWtVBX8YJzO7hMGx4Aajh4TQbdEFdc= -github.com/mr-tron/base58 v1.1.3/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= -github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= -github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= -github.com/multiformats/go-base36 v0.1.0 h1:JR6TyF7JjGd3m6FbLU2cOxhC0Li8z8dLNGQ89tUg4F4= -github.com/multiformats/go-base36 v0.1.0/go.mod h1:kFGE83c6s80PklsHO9sRn2NCoffoRdUUOENyW/Vv6sM= -github.com/multiformats/go-multiaddr v0.3.0/go.mod h1:dF9kph9wfJ+3VLAaeBqo9Of8x4fJxp6ggJGteB8HQTI= -github.com/multiformats/go-multiaddr v0.9.0 h1:3h4V1LHIk5w4hJHekMKWALPXErDfz/sggzwC/NcqbDQ= -github.com/multiformats/go-multiaddr v0.9.0/go.mod h1:mI67Lb1EeTOYb8GQfL/7wpIZwc46ElrvzhYnoJOmTT0= -github.com/multiformats/go-multiaddr-net v0.2.0 h1:MSXRGN0mFymt6B1yo/6BPnIRpLPEnKgQNvVfCX5VDJk= -github.com/multiformats/go-multiaddr-net v0.2.0/go.mod h1:gGdH3UXny6U3cKKYCvpXI5rnK7YaOIEOPVDI9tsJbEA= -github.com/multiformats/go-multibase v0.0.3 h1:l/B6bJDQjvQ5G52jw4QGSYeOTZoAwIO77RblWplfIqk= -github.com/multiformats/go-multibase v0.0.3/go.mod h1:5+1R4eQrT3PkYZ24C3W2Ue2tPwIdYQD509ZjSb5y9Oc= -github.com/multiformats/go-multihash v0.0.13/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc= -github.com/multiformats/go-multihash v0.0.14 h1:QoBceQYQQtNUuf6s7wHxnE2c8bhbMqhfGzNI032se/I= -github.com/multiformats/go-multihash v0.0.14/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc= -github.com/multiformats/go-varint v0.0.5/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= -github.com/multiformats/go-varint v0.0.6 h1:gk85QWKxh3TazbLxED/NlDVv8+q+ReFJk7Y2W/KhfNY= -github.com/multiformats/go-varint v0.0.6/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= -github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= -github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU= -golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= From 30dc982fba72668af40ffac47dd0a2651768039e Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 29 May 2023 16:21:42 +0900 Subject: [PATCH 106/143] Remove unnecessary newlines --- perf/impl/quic-go/v0.34/Makefile | 2 -- 1 file changed, 2 deletions(-) diff --git a/perf/impl/quic-go/v0.34/Makefile b/perf/impl/quic-go/v0.34/Makefile index 1a9b335f6..35ede5174 100644 --- a/perf/impl/quic-go/v0.34/Makefile +++ b/perf/impl/quic-go/v0.34/Makefile @@ -20,5 +20,3 @@ clean: rm v0.27 .PHONY: all clean - - From e73dba2183a6f0ebd2c59d0d1d0f8b063bbe4d0c Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 29 May 2023 16:22:20 +0900 Subject: [PATCH 107/143] Insert newline --- perf/impl/rust-libp2p/.gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/impl/rust-libp2p/.gitignore b/perf/impl/rust-libp2p/.gitignore index 3162eca5c..54704ed39 100644 --- a/perf/impl/rust-libp2p/.gitignore +++ b/perf/impl/rust-libp2p/.gitignore @@ -1,4 +1,4 @@ rust-libp2p-*.zip rust-libp2p-* rust-libp2p-*/* -image.json \ No newline at end of file +image.json From 5fa246eeecb2814b7f940023e35bcf8549e16a58 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 29 May 2023 16:23:36 +0900 Subject: [PATCH 108/143] fix(rust-libp2p): update to latest master Now that https://github.com/libp2p/rust-libp2p/pull/3646 is merged. --- perf/impl/rust-libp2p/v0.52/Makefile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/perf/impl/rust-libp2p/v0.52/Makefile b/perf/impl/rust-libp2p/v0.52/Makefile index 95b91269d..8d6092ae0 100644 --- a/perf/impl/rust-libp2p/v0.52/Makefile +++ b/perf/impl/rust-libp2p/v0.52/Makefile @@ -1,4 +1,4 @@ -commitSha := 488f0072cb937394d6c5c4678a5504b63403316e +commitSha := c5dd0a2e14c2083a0cd9afea85995eb8a45576bc all: perf @@ -12,8 +12,7 @@ rust-libp2p-${commitSha}: rust-libp2p-${commitSha}.zip unzip -o rust-libp2p-${commitSha}.zip rust-libp2p-${commitSha}.zip: -# TODO: Change to libp2p - wget -O $@ "https://github.com/mxinden/rust-libp2p/archive/${commitSha}.zip" + wget -O $@ "https://github.com/libp2p/rust-libp2p/archive/${commitSha}.zip" clean: rm rust-libp2p-*.zip From cbccb897ce7004c0290aeacab6fbd8a8953c2db0 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 29 May 2023 16:24:21 +0900 Subject: [PATCH 109/143] Insert newline --- perf/runner/.gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/runner/.gitignore b/perf/runner/.gitignore index 6a7f7218f..5c09c53cd 100644 --- a/perf/runner/.gitignore +++ b/perf/runner/.gitignore @@ -1,2 +1,2 @@ # Ignore built ts files -dist/**/* \ No newline at end of file +dist/**/* From 516824bae3d2d35ed99a892958ee42f02daa3081 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 29 May 2023 16:25:55 +0900 Subject: [PATCH 110/143] Remove commented out code --- perf/runner/src/versions.ts | 5 ----- 1 file changed, 5 deletions(-) diff --git a/perf/runner/src/versions.ts b/perf/runner/src/versions.ts index 11aa98a3a..a06bac962 100644 --- a/perf/runner/src/versions.ts +++ b/perf/runner/src/versions.ts @@ -30,9 +30,4 @@ export const versions: Array = [ implementation: "go-libp2p", transportStacks: ["tcp", "quic-v1"] }, - // { - // id: "zig-libp2p-v0.0.1", - // implementation: "zig-libp2p", - // transportStacks: ["quic-v1"], - // }, ] From 91e36d2f0110f5805ffe1f96891cc32155eaccba Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 29 May 2023 16:27:15 +0900 Subject: [PATCH 111/143] Remove schema util Not used within the project. --- perf/runner/util/.gitignore | 1 - perf/runner/util/README.md | 3 - perf/runner/util/main.ts | 18 - perf/runner/util/package-lock.json | 559 ----------------------------- perf/runner/util/package.json | 10 - perf/runner/util/tsconfig.json | 109 ------ 6 files changed, 700 deletions(-) delete mode 100644 perf/runner/util/.gitignore delete mode 100644 perf/runner/util/README.md delete mode 100644 perf/runner/util/main.ts delete mode 100644 perf/runner/util/package-lock.json delete mode 100644 perf/runner/util/package.json delete mode 100644 perf/runner/util/tsconfig.json diff --git a/perf/runner/util/.gitignore b/perf/runner/util/.gitignore deleted file mode 100644 index 3c3629e64..000000000 --- a/perf/runner/util/.gitignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/perf/runner/util/README.md b/perf/runner/util/README.md deleted file mode 100644 index 997c9782a..000000000 --- a/perf/runner/util/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Util - -Helper to generate schemas for benchmark data. \ No newline at end of file diff --git a/perf/runner/util/main.ts b/perf/runner/util/main.ts deleted file mode 100644 index e113efc2e..000000000 --- a/perf/runner/util/main.ts +++ /dev/null @@ -1,18 +0,0 @@ -import * as tsj from "ts-json-schema-generator"; -import * as fs from "fs"; -// const fs = require("fs"); - -/** @type {import('ts-json-schema-generator/dist/src/Config').Config} */ -const config = { - path: "../benchmark-result-type.ts", - tsconfig: "./tsconfig.json", - type: "BenchmarkResults", // Or if you want to generate schema for that one type only -}; - -const output_path = "../benchmarks.schema.json"; - -const schema = tsj.createGenerator(config).createSchema(config.type); -const schemaString = JSON.stringify(schema, null, 2); -fs.writeFile(output_path, schemaString, (err) => { - if (err) throw err; -}); \ No newline at end of file diff --git a/perf/runner/util/package-lock.json b/perf/runner/util/package-lock.json deleted file mode 100644 index 7c6b8b01b..000000000 --- a/perf/runner/util/package-lock.json +++ /dev/null @@ -1,559 +0,0 @@ -{ - "name": "util", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "dependencies": { - "ts-json-schema-generator": "^1.2.0", - "ts-node": "^10.9.1", - "typescript": "^5.0.2" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" - }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" - }, - "node_modules/@types/node": { - "version": "18.15.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.5.tgz", - "integrity": "sha512-Ark2WDjjZO7GmvsyFFf81MXuGTA/d6oP38anyxWOL6EREyBKAxKoFHwBhaZxCfLRLpO8JgVXwqOwSwa7jRcjew==", - "peer": true - }, - "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - }, - "node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/safe-stable-stringify": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", - "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-json-schema-generator": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ts-json-schema-generator/-/ts-json-schema-generator-1.2.0.tgz", - "integrity": "sha512-tUMeO3ZvA12d3HHh7T/AK8W5hmUhDRNtqWRHSMN3ZRbUFt+UmV0oX8k1RK4SA+a+BKNHpmW2v06MS49e8Fi3Yg==", - "dependencies": { - "@types/json-schema": "^7.0.11", - "commander": "^9.4.1", - "glob": "^8.0.3", - "json5": "^2.2.1", - "normalize-path": "^3.0.0", - "safe-stable-stringify": "^2.4.1", - "typescript": "~4.9.3" - }, - "bin": { - "ts-json-schema-generator": "bin/ts-json-schema-generator" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ts-json-schema-generator/node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/typescript": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.2.tgz", - "integrity": "sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=12.20" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "engines": { - "node": ">=6" - } - } - }, - "dependencies": { - "@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "requires": { - "@jridgewell/trace-mapping": "0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" - }, - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" - }, - "@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" - }, - "@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" - }, - "@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" - }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" - }, - "@types/node": { - "version": "18.15.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.5.tgz", - "integrity": "sha512-Ark2WDjjZO7GmvsyFFf81MXuGTA/d6oP38anyxWOL6EREyBKAxKoFHwBhaZxCfLRLpO8JgVXwqOwSwa7jRcjew==", - "peer": true - }, - "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==" - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==" - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "requires": { - "wrappy": "1" - } - }, - "safe-stable-stringify": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", - "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==" - }, - "ts-json-schema-generator": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ts-json-schema-generator/-/ts-json-schema-generator-1.2.0.tgz", - "integrity": "sha512-tUMeO3ZvA12d3HHh7T/AK8W5hmUhDRNtqWRHSMN3ZRbUFt+UmV0oX8k1RK4SA+a+BKNHpmW2v06MS49e8Fi3Yg==", - "requires": { - "@types/json-schema": "^7.0.11", - "commander": "^9.4.1", - "glob": "^8.0.3", - "json5": "^2.2.1", - "normalize-path": "^3.0.0", - "safe-stable-stringify": "^2.4.1", - "typescript": "~4.9.3" - }, - "dependencies": { - "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==" - } - } - }, - "ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - } - }, - "typescript": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.2.tgz", - "integrity": "sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==" - }, - "v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" - } - } -} diff --git a/perf/runner/util/package.json b/perf/runner/util/package.json deleted file mode 100644 index e4f320e3e..000000000 --- a/perf/runner/util/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "dependencies": { - "ts-json-schema-generator": "^1.2.0", - "ts-node": "^10.9.1", - "typescript": "^5.0.2" - }, - "scripts": { - "gen-schema": "ts-node main.ts" - } -} \ No newline at end of file diff --git a/perf/runner/util/tsconfig.json b/perf/runner/util/tsconfig.json deleted file mode 100644 index e075f973c..000000000 --- a/perf/runner/util/tsconfig.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "compilerOptions": { - /* Visit https://aka.ms/tsconfig to read more about this file */ - - /* Projects */ - // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - - /* Language and Environment */ - "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ - // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - // "jsx": "preserve", /* Specify what JSX code is generated. */ - // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ - // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ - // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ - // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ - - /* Modules */ - "module": "commonjs", /* Specify what module code is generated. */ - // "rootDir": "./", /* Specify the root folder within your source files. */ - // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ - // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ - // "types": [], /* Specify type package names to be included without being referenced in a source file. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ - // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ - // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ - // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ - // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ - // "resolveJsonModule": true, /* Enable importing .json files. */ - // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ - // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ - - /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ - // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ - - /* Emit */ - // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ - // "declarationMap": true, /* Create sourcemaps for d.ts files. */ - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ - // "outDir": "./", /* Specify an output folder for all emitted files. */ - // "removeComments": true, /* Disable emitting comments. */ - // "noEmit": true, /* Disable emitting files from a compilation. */ - // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ - // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ - // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ - // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ - // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ - // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ - // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ - // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ - - /* Interop Constraints */ - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ - // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ - // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ - - /* Type Checking */ - "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ - // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ - // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ - // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ - // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ - // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ - // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ - // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ - // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ - // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ - // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - - /* Completeness */ - // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ - "skipLibCheck": true /* Skip type checking all .d.ts files. */ - } -} From 0be6e8f4a76775f48d36f480da53d0a802fb3ae1 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 29 May 2023 17:36:09 +0900 Subject: [PATCH 112/143] Remove --secret-key-seed flag --- perf/README.md | 1 - perf/impl/go-libp2p/v0.27/main.go | 6 +- perf/impl/https/v0.1/main.go | 1 - perf/impl/rust-libp2p-quinn/v0.52/Makefile | 2 +- perf/impl/rust-libp2p/v0.52/Makefile | 2 +- perf/runner/benchmark-results.json | 4724 ++++++++++---------- perf/runner/src/index.ts | 2 +- 7 files changed, 2368 insertions(+), 2370 deletions(-) diff --git a/perf/README.md b/perf/README.md index c0f6ac7e3..3d7606a91 100644 --- a/perf/README.md +++ b/perf/README.md @@ -32,7 +32,6 @@ Benchmark results can be visualized with https://observablehq.com/@mxinden-works - Running as a libp2p-perf server - Command line flags - `--run-server` - - `--secret-key-seed` unsigned integer to be used as a seed by libp2p-based implementations. Likely to go away in future iterations. - Running as a libp2p-perf client - Input via command line - `--server-ip-address` diff --git a/perf/impl/go-libp2p/v0.27/main.go b/perf/impl/go-libp2p/v0.27/main.go index a1538d362..7253382b8 100644 --- a/perf/impl/go-libp2p/v0.27/main.go +++ b/perf/impl/go-libp2p/v0.27/main.go @@ -22,7 +22,6 @@ func main() { runServer := flag.Bool("run-server", false, "Should run as server") serverAddr := flag.String("server-address", "", "Server address") transport := flag.String("transport", "tcp", "Transport to use") - secretKeySeed := flag.Uint64("secret-key-seed", 0, "Server secret key seed") uploadBytes := flag.Uint64("upload-bytes", 0, "Upload bytes") downloadBytes := flag.Uint64("download-bytes", 0, "Download bytes") flag.Parse() @@ -58,8 +57,8 @@ func main() { if *runServer { opts = append(opts, libp2p.ListenAddrStrings(tcpMultiAddrStr, quicMultiAddrStr)) - // TODO: Fake identity. For testing only. - priv, _, err := crypto.GenerateEd25519Key(&simpleReader{seed: uint8(*secretKeySeed)}) + // Generate fake identity. + priv, _, err := crypto.GenerateEd25519Key(&simpleReader{seed: 0}) if err != nil { panic(err) } @@ -92,6 +91,7 @@ func main() { fmt.Println("Invalid transport. Accepted values: 'tcp' or 'quic-v1'") return } + // Peer ID corresponds to the above fake identity. multiAddrStr = multiAddrStr + "/p2p/12D3KooWDpJ7As7BWAwRMfu1VU2WCqNjvq387JEYKDBj4kx6nXTN" serverInfo, err := peer.AddrInfoFromString(multiAddrStr) if err != nil { diff --git a/perf/impl/https/v0.1/main.go b/perf/impl/https/v0.1/main.go index fc1e97eac..9e9a89478 100644 --- a/perf/impl/https/v0.1/main.go +++ b/perf/impl/https/v0.1/main.go @@ -146,7 +146,6 @@ func main() { runServer := flag.Bool("run-server", false, "Should run as server") serverAddr := flag.String("server-address", "", "Server address") _ = flag.String("transport", "", "Transport to use") - _ = flag.Uint64("secret-key-seed", 0, "Server secret key seed") uploadBytes := flag.Uint64("upload-bytes", 0, "Upload bytes") downloadBytes := flag.Uint64("download-bytes", 0, "Download bytes") flag.Parse() diff --git a/perf/impl/rust-libp2p-quinn/v0.52/Makefile b/perf/impl/rust-libp2p-quinn/v0.52/Makefile index 8c429563d..a667f3808 100644 --- a/perf/impl/rust-libp2p-quinn/v0.52/Makefile +++ b/perf/impl/rust-libp2p-quinn/v0.52/Makefile @@ -1,4 +1,4 @@ -commitSha := df5180aab0ca44129e195d6030a9cf20eb593376 +commitSha := 3af9275c4a4d1edad651fe89c5bdd09547b0175c all: perf diff --git a/perf/impl/rust-libp2p/v0.52/Makefile b/perf/impl/rust-libp2p/v0.52/Makefile index 8d6092ae0..7fc46c59a 100644 --- a/perf/impl/rust-libp2p/v0.52/Makefile +++ b/perf/impl/rust-libp2p/v0.52/Makefile @@ -1,4 +1,4 @@ -commitSha := c5dd0a2e14c2083a0cd9afea85995eb8a45576bc +commitSha := 9b765fa202c9ad69fcbbf4ea17de69762f46cfba all: perf diff --git a/perf/runner/benchmark-results.json b/perf/runner/benchmark-results.json index 0657c4781..7d0166e21 100644 --- a/perf/runner/benchmark-results.json +++ b/perf/runner/benchmark-results.json @@ -7,29 +7,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.070297314, - "uploadSeconds": 0.976105831, - "downloadSeconds": 1.28e-7 + "connectionEstablishedSeconds": 0.074363976, + "uploadSeconds": 0.998871022, + "downloadSeconds": 4e-8 }, { - "connectionEstablishedSeconds": 0.061534425, - "uploadSeconds": 0.957481414, - "downloadSeconds": 8.1e-8 + "connectionEstablishedSeconds": 0.062225376, + "uploadSeconds": 0.970638047, + "downloadSeconds": 4.5e-8 }, { - "connectionEstablishedSeconds": 0.060021929, - "uploadSeconds": 0.937863027, - "downloadSeconds": 7.4e-8 + "connectionEstablishedSeconds": 0.061977784, + "uploadSeconds": 0.964050368, + "downloadSeconds": 8.8e-8 }, { - "connectionEstablishedSeconds": 0.063701509, - "uploadSeconds": 0.991100676, - "downloadSeconds": 5.1e-8 + "connectionEstablishedSeconds": 0.066506366, + "uploadSeconds": 1.035592918, + "downloadSeconds": 6.1e-8 }, { - "connectionEstablishedSeconds": 0.066541962, - "uploadSeconds": 1.038524336, - "downloadSeconds": 1.21e-7 + "connectionEstablishedSeconds": 0.066534943, + "uploadSeconds": 1.034859392, + "downloadSeconds": 4.8e-8 } ], "implementation": "quic-go", @@ -39,29 +39,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.12788271, - "uploadSeconds": 36.401081612, - "downloadSeconds": 0.062981043 + "connectionEstablishedSeconds": 0.127705953, + "uploadSeconds": 45.946316634, + "downloadSeconds": 0.062300209 }, { - "connectionEstablishedSeconds": 0.122861416, - "uploadSeconds": 34.449560649, - "downloadSeconds": 0.061166454 + "connectionEstablishedSeconds": 0.126080405, + "uploadSeconds": 43.658456912, + "downloadSeconds": 0.06279113 }, { - "connectionEstablishedSeconds": 0.129370637, - "uploadSeconds": 36.264773908, - "downloadSeconds": 0.0644781 + "connectionEstablishedSeconds": 0.12689833, + "uploadSeconds": 45.632169605, + "downloadSeconds": 0.063284608 }, { - "connectionEstablishedSeconds": 0.129144197, - "uploadSeconds": 36.257968261, - "downloadSeconds": 0.064331182 + "connectionEstablishedSeconds": 0.122602188, + "uploadSeconds": 44.129207306, + "downloadSeconds": 0.061105233 }, { - "connectionEstablishedSeconds": 0.129576206, - "uploadSeconds": 36.411659002, - "downloadSeconds": 0.064808922 + "connectionEstablishedSeconds": 0.125174996, + "uploadSeconds": 44.437749805, + "downloadSeconds": 0.062352019 } ], "implementation": "rust-libp2p", @@ -71,29 +71,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.070141303, - "uploadSeconds": 14.198241062, - "downloadSeconds": 0.000052912 + "connectionEstablishedSeconds": 0.069554853, + "uploadSeconds": 20.167791138, + "downloadSeconds": 0.0001142 }, { - "connectionEstablishedSeconds": 0.064929592, - "uploadSeconds": 10.68151263, - "downloadSeconds": 0.000059917 + "connectionEstablishedSeconds": 0.063700205, + "uploadSeconds": 10.026282075, + "downloadSeconds": 0.000061025 }, { - "connectionEstablishedSeconds": 0.064462749, - "uploadSeconds": 26.327155321, - "downloadSeconds": 0.00011333 + "connectionEstablishedSeconds": 0.062852666, + "uploadSeconds": 13.39213996, + "downloadSeconds": 0.000186704 }, { - "connectionEstablishedSeconds": 0.06161635, - "uploadSeconds": 9.109610004, - "downloadSeconds": 0.000124202 + "connectionEstablishedSeconds": 0.061400863, + "uploadSeconds": 14.065481592, + "downloadSeconds": 0.000118338 }, { - "connectionEstablishedSeconds": 0.063525618, - "uploadSeconds": 21.079123439, - "downloadSeconds": 0.000105298 + "connectionEstablishedSeconds": 0.064775716, + "uploadSeconds": 13.403064772, + "downloadSeconds": 0.000165197 } ], "implementation": "rust-libp2p", @@ -103,29 +103,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.065954244, - "uploadSeconds": 1.402745274, - "downloadSeconds": 0.000211507 + "connectionEstablishedSeconds": 0.070222265, + "uploadSeconds": 1.4518498530000001, + "downloadSeconds": 0.000048946 }, { - "connectionEstablishedSeconds": 0.065088775, - "uploadSeconds": 1.449638775, - "downloadSeconds": 0.000058087 + "connectionEstablishedSeconds": 0.065152611, + "uploadSeconds": 1.436151888, + "downloadSeconds": 0.000038165 }, { - "connectionEstablishedSeconds": 0.063314602, - "uploadSeconds": 1.3934497750000001, - "downloadSeconds": 0.000127509 + "connectionEstablishedSeconds": 0.065866337, + "uploadSeconds": 1.458817775, + "downloadSeconds": 0.000039511 }, { - "connectionEstablishedSeconds": 0.065340678, - "uploadSeconds": 1.438934371, - "downloadSeconds": 0.000109151 + "connectionEstablishedSeconds": 0.062364177, + "uploadSeconds": 1.375811427, + "downloadSeconds": 0.000045021 }, { - "connectionEstablishedSeconds": 0.063592102, - "uploadSeconds": 1.395796978, - "downloadSeconds": 0.00008171 + "connectionEstablishedSeconds": 0.06632095, + "uploadSeconds": 1.470985776, + "downloadSeconds": 0.000065078 } ], "implementation": "rust-libp2p-quinn", @@ -136,28 +136,28 @@ "result": [ { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.7865382739999998, - "downloadSeconds": 0.000018388 + "uploadSeconds": 2.66607993, + "downloadSeconds": 0.000004442 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.621148716, - "downloadSeconds": 0.000002242 + "uploadSeconds": 2.731363119, + "downloadSeconds": 0.000004605 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.760585642, - "downloadSeconds": 0.000004662 + "uploadSeconds": 2.702454247, + "downloadSeconds": 0.000002261 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.806644015, - "downloadSeconds": 0.000019645 + "uploadSeconds": 2.885055072, + "downloadSeconds": 0.00000493 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.9810749899999998, - "downloadSeconds": 0.000002576 + "uploadSeconds": 2.690581079, + "downloadSeconds": 0.000002423 } ], "implementation": "https", @@ -167,29 +167,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.187666955, - "uploadSeconds": 2.824455271, - "downloadSeconds": 0.123028053 + "connectionEstablishedSeconds": 0.193212109, + "uploadSeconds": 2.88003278, + "downloadSeconds": 0.125641699 }, { - "connectionEstablishedSeconds": 0.19545875, - "uploadSeconds": 2.93147859, - "downloadSeconds": 0.127536761 + "connectionEstablishedSeconds": 0.181535503, + "uploadSeconds": 2.712291289, + "downloadSeconds": 0.118133213 }, { - "connectionEstablishedSeconds": 0.18985107, - "uploadSeconds": 2.85914096, - "downloadSeconds": 0.124491918 + "connectionEstablishedSeconds": 0.190919285, + "uploadSeconds": 2.870908507, + "downloadSeconds": 0.125196908 }, { - "connectionEstablishedSeconds": 0.181920988, - "uploadSeconds": 2.7478558299999998, - "downloadSeconds": 0.119709 + "connectionEstablishedSeconds": 0.192510197, + "uploadSeconds": 2.898111663, + "downloadSeconds": 0.12652688 }, { - "connectionEstablishedSeconds": 0.195685163, - "uploadSeconds": 2.955947802, - "downloadSeconds": 0.129634301 + "connectionEstablishedSeconds": 0.193803107, + "uploadSeconds": 2.893479047, + "downloadSeconds": 0.126186436 } ], "implementation": "go-libp2p", @@ -199,29 +199,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.068654638, - "uploadSeconds": 1.252551193, - "downloadSeconds": 0.064037004 + "connectionEstablishedSeconds": 0.067236185, + "uploadSeconds": 1.306191737, + "downloadSeconds": 0.063233675 }, { - "connectionEstablishedSeconds": 0.064522167, - "uploadSeconds": 1.239043305, - "downloadSeconds": 0.060060905 + "connectionEstablishedSeconds": 0.06770958, + "uploadSeconds": 1.30817735, + "downloadSeconds": 0.063352606 }, { - "connectionEstablishedSeconds": 0.06527666, - "uploadSeconds": 1.279113568, - "downloadSeconds": 0.061957179 + "connectionEstablishedSeconds": 0.064357463, + "uploadSeconds": 1.23558667, + "downloadSeconds": 0.059910762 }, { - "connectionEstablishedSeconds": 0.06920229, - "uploadSeconds": 1.3390372, - "downloadSeconds": 0.064796753 + "connectionEstablishedSeconds": 0.064052972, + "uploadSeconds": 1.25881874, + "downloadSeconds": 0.060944813 }, { - "connectionEstablishedSeconds": 0.066522893, - "uploadSeconds": 1.320509869, - "downloadSeconds": 0.064084372 + "connectionEstablishedSeconds": 0.065543969, + "uploadSeconds": 1.281249855, + "downloadSeconds": 0.06208869 } ], "implementation": "go-libp2p", @@ -241,29 +241,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.066102425, - "uploadSeconds": 6.05e-7, - "downloadSeconds": 1.079131029 + "connectionEstablishedSeconds": 0.06250556, + "uploadSeconds": 5.96e-7, + "downloadSeconds": 1.025502528 }, { - "connectionEstablishedSeconds": 0.063745934, - "uploadSeconds": 6.87e-7, - "downloadSeconds": 1.045033606 + "connectionEstablishedSeconds": 0.063743829, + "uploadSeconds": 6.02e-7, + "downloadSeconds": 1.052553003 }, { - "connectionEstablishedSeconds": 0.064553974, - "uploadSeconds": 5.13e-7, - "downloadSeconds": 1.05987753 + "connectionEstablishedSeconds": 0.06598807, + "uploadSeconds": 7.18e-7, + "downloadSeconds": 1.082953226 }, { - "connectionEstablishedSeconds": 0.06553008, - "uploadSeconds": 6.43e-7, - "downloadSeconds": 1.076902353 + "connectionEstablishedSeconds": 0.064441008, + "uploadSeconds": 5.23e-7, + "downloadSeconds": 1.073724122 }, { - "connectionEstablishedSeconds": 0.062761144, - "uploadSeconds": 6.02e-7, - "downloadSeconds": 1.030542493 + "connectionEstablishedSeconds": 0.063019322, + "uploadSeconds": 5.81e-7, + "downloadSeconds": 1.035937028 } ], "implementation": "quic-go", @@ -273,29 +273,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.13057814, - "uploadSeconds": 0.06504925, - "downloadSeconds": 36.728523097 + "connectionEstablishedSeconds": 0.120555118, + "uploadSeconds": 0.060273181, + "downloadSeconds": 43.102938507 }, { - "connectionEstablishedSeconds": 0.124944384, - "uploadSeconds": 0.062065698, - "downloadSeconds": 35.961353068 + "connectionEstablishedSeconds": 0.124299934, + "uploadSeconds": 0.061979403, + "downloadSeconds": 44.391264 }, { - "connectionEstablishedSeconds": 0.130586181, - "uploadSeconds": 0.064887786, - "downloadSeconds": 42.21106346 + "connectionEstablishedSeconds": 0.124262374, + "uploadSeconds": 0.061933096, + "downloadSeconds": 44.363202222 }, { - "connectionEstablishedSeconds": 0.126708476, - "uploadSeconds": 0.062921055, - "downloadSeconds": 41.79504972 + "connectionEstablishedSeconds": 0.129200044, + "uploadSeconds": 0.064478175, + "downloadSeconds": 45.197337627 }, { - "connectionEstablishedSeconds": 0.126277922, - "uploadSeconds": 0.062710965, - "downloadSeconds": 41.416179838 + "connectionEstablishedSeconds": 0.122438267, + "uploadSeconds": 0.061086155, + "downloadSeconds": 45.309849929 } ], "implementation": "rust-libp2p", @@ -305,29 +305,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.063571426, - "uploadSeconds": 0.122524527, - "downloadSeconds": 14.688501904 + "connectionEstablishedSeconds": 0.065351071, + "uploadSeconds": 0.127458408, + "downloadSeconds": 12.827548861 }, { - "connectionEstablishedSeconds": 0.061588969, - "uploadSeconds": 0.119751648, - "downloadSeconds": 13.676063442 + "connectionEstablishedSeconds": 0.063043839, + "uploadSeconds": 0.122955691, + "downloadSeconds": 13.376663548 }, { - "connectionEstablishedSeconds": 0.062454824, - "uploadSeconds": 0.121421404, - "downloadSeconds": 28.953030009 + "connectionEstablishedSeconds": 0.065057648, + "uploadSeconds": 0.126759065, + "downloadSeconds": 12.731502078 }, { - "connectionEstablishedSeconds": 0.064480155, - "uploadSeconds": 0.125556611, - "downloadSeconds": 13.615676327 + "connectionEstablishedSeconds": 0.061858544, + "uploadSeconds": 0.12052888, + "downloadSeconds": 12.507266782 }, { - "connectionEstablishedSeconds": 0.063835283, - "uploadSeconds": 0.124031403, - "downloadSeconds": 24.377706009 + "connectionEstablishedSeconds": 0.062446706, + "uploadSeconds": 0.121626442, + "downloadSeconds": 12.387055489 } ], "implementation": "rust-libp2p", @@ -337,29 +337,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.06377155, - "uploadSeconds": 0.123363888, - "downloadSeconds": 1.341300474 + "connectionEstablishedSeconds": 0.064164513, + "uploadSeconds": 0.124420796, + "downloadSeconds": 1.419924904 }, { - "connectionEstablishedSeconds": 0.063434258, - "uploadSeconds": 0.123371646, - "downloadSeconds": 1.3334225210000001 + "connectionEstablishedSeconds": 0.062919568, + "uploadSeconds": 0.122697163, + "downloadSeconds": 1.338096594 }, { - "connectionEstablishedSeconds": 0.062023495, - "uploadSeconds": 0.120662695, - "downloadSeconds": 1.317308826 + "connectionEstablishedSeconds": 0.066353865, + "uploadSeconds": 0.129322245, + "downloadSeconds": 1.390287443 }, { - "connectionEstablishedSeconds": 0.066228473, - "uploadSeconds": 0.128940994, - "downloadSeconds": 1.397749371 + "connectionEstablishedSeconds": 0.066876243, + "uploadSeconds": 0.130102589, + "downloadSeconds": 1.404477995 }, { - "connectionEstablishedSeconds": 0.063049748, - "uploadSeconds": 0.122582746, - "downloadSeconds": 1.341124802 + "connectionEstablishedSeconds": 0.064229343, + "uploadSeconds": 0.125172202, + "downloadSeconds": 1.338670638 } ], "implementation": "rust-libp2p-quinn", @@ -370,28 +370,28 @@ "result": [ { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186073896, - "downloadSeconds": 2.6670878609999997 + "uploadSeconds": 0.188675885, + "downloadSeconds": 2.8317920130000003 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193873239, - "downloadSeconds": 3.019374899 + "uploadSeconds": 0.19518273, + "downloadSeconds": 3.162140193 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184416829, - "downloadSeconds": 2.793003994 + "uploadSeconds": 0.185010404, + "downloadSeconds": 2.788954458 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192357858, - "downloadSeconds": 2.810105741 + "uploadSeconds": 0.183908629, + "downloadSeconds": 2.653023389 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190407138, - "downloadSeconds": 2.76563917 + "uploadSeconds": 0.190967701, + "downloadSeconds": 2.797767328 } ], "implementation": "https", @@ -401,29 +401,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.187946812, - "uploadSeconds": 0.000002542, - "downloadSeconds": 3.352702091 + "connectionEstablishedSeconds": 0.192624886, + "uploadSeconds": 0.000002282, + "downloadSeconds": 3.089672318 }, { - "connectionEstablishedSeconds": 0.18968377, - "uploadSeconds": 0.000004511, - "downloadSeconds": 2.947320389 + "connectionEstablishedSeconds": 0.194334156, + "uploadSeconds": 0.000002163, + "downloadSeconds": 3.321315513 }, { - "connectionEstablishedSeconds": 0.193786619, - "uploadSeconds": 0.000026, - "downloadSeconds": 3.02479625 + "connectionEstablishedSeconds": 0.193377894, + "uploadSeconds": 0.000002503, + "downloadSeconds": 3.049396372 }, { - "connectionEstablishedSeconds": 0.188444252, - "uploadSeconds": 0.000002602, - "downloadSeconds": 3.136940616 + "connectionEstablishedSeconds": 0.18416813, + "uploadSeconds": 0.000002552, + "downloadSeconds": 2.901573697 }, { - "connectionEstablishedSeconds": 0.181702222, - "uploadSeconds": 0.000002266, - "downloadSeconds": 2.92347864 + "connectionEstablishedSeconds": 0.184138889, + "uploadSeconds": 0.00000249, + "downloadSeconds": 2.907330639 } ], "implementation": "go-libp2p", @@ -433,29 +433,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.068277261, - "uploadSeconds": 0.000018181, - "downloadSeconds": 1.375710908 + "connectionEstablishedSeconds": 0.067938169, + "uploadSeconds": 0.00000159, + "downloadSeconds": 1.373367014 }, { - "connectionEstablishedSeconds": 0.068015565, - "uploadSeconds": 0.000001609, - "downloadSeconds": 1.378146646 + "connectionEstablishedSeconds": 0.067721805, + "uploadSeconds": 0.000001792, + "downloadSeconds": 1.372499001 }, { - "connectionEstablishedSeconds": 0.0642284, - "uploadSeconds": 0.00000254, - "downloadSeconds": 1.293543339 + "connectionEstablishedSeconds": 0.06796363, + "uploadSeconds": 0.000001391, + "downloadSeconds": 1.376050306 }, { - "connectionEstablishedSeconds": 0.064465047, - "uploadSeconds": 0.000001623, - "downloadSeconds": 1.447395593 + "connectionEstablishedSeconds": 0.067016664, + "uploadSeconds": 0.00000173, + "downloadSeconds": 1.3715384 }, { - "connectionEstablishedSeconds": 0.064851976, - "uploadSeconds": 0.000001697, - "downloadSeconds": 1.350367435 + "connectionEstablishedSeconds": 0.067221814, + "uploadSeconds": 0.000013465, + "downloadSeconds": 1.365336662 } ], "implementation": "go-libp2p", @@ -475,504 +475,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.064751978, - "uploadSeconds": 0.000001965, - "downloadSeconds": 0.062446835 + "connectionEstablishedSeconds": 0.065882054, + "uploadSeconds": 0.000001938, + "downloadSeconds": 0.063329545 }, { - "connectionEstablishedSeconds": 0.064369628, - "uploadSeconds": 9.78e-7, - "downloadSeconds": 0.062578705 + "connectionEstablishedSeconds": 0.066028968, + "uploadSeconds": 0.000001958, + "downloadSeconds": 0.064285497 }, { - "connectionEstablishedSeconds": 0.064172156, - "uploadSeconds": 0.000002109, - "downloadSeconds": 0.062397217 + "connectionEstablishedSeconds": 0.065069427, + "uploadSeconds": 0.000001963, + "downloadSeconds": 0.063319462 }, { - "connectionEstablishedSeconds": 0.062744165, - "uploadSeconds": 0.000001819, - "downloadSeconds": 0.060947384 + "connectionEstablishedSeconds": 0.063809338, + "uploadSeconds": 0.000002068, + "downloadSeconds": 0.062120713 }, { - "connectionEstablishedSeconds": 0.063608696, - "uploadSeconds": 0.000002409, - "downloadSeconds": 0.061858335 + "connectionEstablishedSeconds": 0.064972946, + "uploadSeconds": 0.000001974, + "downloadSeconds": 0.063323896 }, { - "connectionEstablishedSeconds": 0.064578852, - "uploadSeconds": 0.000001965, - "downloadSeconds": 0.062762314 + "connectionEstablishedSeconds": 0.06294058, + "uploadSeconds": 0.000001836, + "downloadSeconds": 0.06117457 }, { - "connectionEstablishedSeconds": 0.063750336, - "uploadSeconds": 0.000002109, - "downloadSeconds": 0.061983581 + "connectionEstablishedSeconds": 0.062514388, + "uploadSeconds": 0.000001753, + "downloadSeconds": 0.060786311 }, { - "connectionEstablishedSeconds": 0.062759314, - "uploadSeconds": 0.000001921, - "downloadSeconds": 0.060979078 + "connectionEstablishedSeconds": 0.066043205, + "uploadSeconds": 0.000001912, + "downloadSeconds": 0.064258799 }, { - "connectionEstablishedSeconds": 0.06165765, - "uploadSeconds": 9.47e-7, - "downloadSeconds": 0.060007441 + "connectionEstablishedSeconds": 0.062835234, + "uploadSeconds": 0.000001934, + "downloadSeconds": 0.061143225 }, { - "connectionEstablishedSeconds": 0.065447388, - "uploadSeconds": 0.000001973, - "downloadSeconds": 0.063719339 + "connectionEstablishedSeconds": 0.064499184, + "uploadSeconds": 0.00000188, + "downloadSeconds": 0.062795234 }, { - "connectionEstablishedSeconds": 0.065495014, - "uploadSeconds": 9.32e-7, - "downloadSeconds": 0.063662471 + "connectionEstablishedSeconds": 0.064632049, + "uploadSeconds": 0.000001843, + "downloadSeconds": 0.063159666 }, { - "connectionEstablishedSeconds": 0.064261877, - "uploadSeconds": 0.000002008, - "downloadSeconds": 0.062547339 + "connectionEstablishedSeconds": 0.064775522, + "uploadSeconds": 0.000001884, + "downloadSeconds": 0.063102507 }, { - "connectionEstablishedSeconds": 0.066444556, - "uploadSeconds": 0.000001956, - "downloadSeconds": 0.064616305 + "connectionEstablishedSeconds": 0.065422199, + "uploadSeconds": 0.000001718, + "downloadSeconds": 0.063710272 }, { - "connectionEstablishedSeconds": 0.065927723, - "uploadSeconds": 0.000001918, - "downloadSeconds": 0.064011682 + "connectionEstablishedSeconds": 0.063474621, + "uploadSeconds": 7.79e-7, + "downloadSeconds": 0.061750648 }, { - "connectionEstablishedSeconds": 0.065767091, - "uploadSeconds": 8.66e-7, - "downloadSeconds": 0.063979506 + "connectionEstablishedSeconds": 0.065575925, + "uploadSeconds": 0.000001815, + "downloadSeconds": 0.06392008 }, { - "connectionEstablishedSeconds": 0.06644492, - "uploadSeconds": 0.000001964, - "downloadSeconds": 0.064624779 + "connectionEstablishedSeconds": 0.060809381, + "uploadSeconds": 0.000001796, + "downloadSeconds": 0.059148284 }, { - "connectionEstablishedSeconds": 0.067616685, - "uploadSeconds": 9.93e-7, - "downloadSeconds": 0.064315283 + "connectionEstablishedSeconds": 0.064426255, + "uploadSeconds": 8.72e-7, + "downloadSeconds": 0.064450311 }, { - "connectionEstablishedSeconds": 0.064648078, - "uploadSeconds": 8.86e-7, - "downloadSeconds": 0.062781844 + "connectionEstablishedSeconds": 0.065902382, + "uploadSeconds": 7.82e-7, + "downloadSeconds": 0.064262953 }, { - "connectionEstablishedSeconds": 0.060107655, - "uploadSeconds": 0.000001963, - "downloadSeconds": 0.058309479 + "connectionEstablishedSeconds": 0.063041009, + "uploadSeconds": 0.000001851, + "downloadSeconds": 0.061372132 }, { - "connectionEstablishedSeconds": 0.065304135, - "uploadSeconds": 0.000001949, - "downloadSeconds": 0.063783022 + "connectionEstablishedSeconds": 0.061666911, + "uploadSeconds": 0.000001891, + "downloadSeconds": 0.060006363 }, { - "connectionEstablishedSeconds": 0.065603339, - "uploadSeconds": 0.000001949, - "downloadSeconds": 0.063819812 + "connectionEstablishedSeconds": 0.062326508, + "uploadSeconds": 0.000001916, + "downloadSeconds": 0.060670203 }, { - "connectionEstablishedSeconds": 0.065066854, - "uploadSeconds": 0.000001909, - "downloadSeconds": 0.063351459 + "connectionEstablishedSeconds": 0.064942447, + "uploadSeconds": 7.62e-7, + "downloadSeconds": 0.063298343 }, { - "connectionEstablishedSeconds": 0.062264515, - "uploadSeconds": 0.000002194, - "downloadSeconds": 0.060431368 + "connectionEstablishedSeconds": 0.062837601, + "uploadSeconds": 0.000001798, + "downloadSeconds": 0.061152921 }, { - "connectionEstablishedSeconds": 0.063081703, - "uploadSeconds": 8.1e-7, - "downloadSeconds": 0.061449283 + "connectionEstablishedSeconds": 0.0633203, + "uploadSeconds": 0.000001788, + "downloadSeconds": 0.061746749 }, { - "connectionEstablishedSeconds": 0.062678158, - "uploadSeconds": 0.000001858, - "downloadSeconds": 0.060888549 + "connectionEstablishedSeconds": 0.063357873, + "uploadSeconds": 0.000001791, + "downloadSeconds": 0.061667817 }, { - "connectionEstablishedSeconds": 0.065686849, - "uploadSeconds": 0.000001959, - "downloadSeconds": 0.063887908 + "connectionEstablishedSeconds": 0.065345298, + "uploadSeconds": 0.000001732, + "downloadSeconds": 0.063618743 }, { - "connectionEstablishedSeconds": 0.065484867, - "uploadSeconds": 7.72e-7, - "downloadSeconds": 0.063815737 + "connectionEstablishedSeconds": 0.063207892, + "uploadSeconds": 0.000001772, + "downloadSeconds": 0.061785442 }, { - "connectionEstablishedSeconds": 0.062981089, - "uploadSeconds": 0.000001946, - "downloadSeconds": 0.061245878 + "connectionEstablishedSeconds": 0.064623499, + "uploadSeconds": 0.00000168, + "downloadSeconds": 0.062839582 }, { - "connectionEstablishedSeconds": 0.063169451, - "uploadSeconds": 0.000001903, - "downloadSeconds": 0.061477289 + "connectionEstablishedSeconds": 0.065077103, + "uploadSeconds": 0.000001862, + "downloadSeconds": 0.063396746 }, { - "connectionEstablishedSeconds": 0.064226782, - "uploadSeconds": 0.000002021, - "downloadSeconds": 0.062439107 + "connectionEstablishedSeconds": 0.061822298, + "uploadSeconds": 0.000001982, + "downloadSeconds": 0.0601243 }, { - "connectionEstablishedSeconds": 0.067262367, - "uploadSeconds": 0.000001891, - "downloadSeconds": 0.065454886 + "connectionEstablishedSeconds": 0.063154287, + "uploadSeconds": 0.000001788, + "downloadSeconds": 0.061514853 }, { - "connectionEstablishedSeconds": 0.064497, - "uploadSeconds": 9.22e-7, - "downloadSeconds": 0.062909674 + "connectionEstablishedSeconds": 0.063000807, + "uploadSeconds": 7.79e-7, + "downloadSeconds": 0.061340444 }, { - "connectionEstablishedSeconds": 0.063489099, - "uploadSeconds": 0.000001997, - "downloadSeconds": 0.061678745 + "connectionEstablishedSeconds": 0.065536315, + "uploadSeconds": 0.000001727, + "downloadSeconds": 0.064006592 }, { - "connectionEstablishedSeconds": 0.064675257, - "uploadSeconds": 8.04e-7, - "downloadSeconds": 0.062282573 + "connectionEstablishedSeconds": 0.063391175, + "uploadSeconds": 0.000001967, + "downloadSeconds": 0.062564537 }, { - "connectionEstablishedSeconds": 0.065565437, - "uploadSeconds": 0.00000195, - "downloadSeconds": 0.063750759 + "connectionEstablishedSeconds": 0.064735637, + "uploadSeconds": 0.000001824, + "downloadSeconds": 0.063092475 }, { - "connectionEstablishedSeconds": 0.063480697, - "uploadSeconds": 0.000002012, - "downloadSeconds": 0.061626039 + "connectionEstablishedSeconds": 0.063053482, + "uploadSeconds": 0.000001866, + "downloadSeconds": 0.061317893 }, { - "connectionEstablishedSeconds": 0.065412879, - "uploadSeconds": 7.45e-7, - "downloadSeconds": 0.063621641 + "connectionEstablishedSeconds": 0.065305633, + "uploadSeconds": 0.000001903, + "downloadSeconds": 0.063708648 }, { - "connectionEstablishedSeconds": 0.063473789, - "uploadSeconds": 0.0000019, - "downloadSeconds": 0.061745584 + "connectionEstablishedSeconds": 0.063688642, + "uploadSeconds": 0.000001744, + "downloadSeconds": 0.061908515 }, { - "connectionEstablishedSeconds": 0.064495907, - "uploadSeconds": 0.000001982, - "downloadSeconds": 0.062785263 + "connectionEstablishedSeconds": 0.065536368, + "uploadSeconds": 0.000001797, + "downloadSeconds": 0.063829916 }, { - "connectionEstablishedSeconds": 0.065840125, - "uploadSeconds": 0.00000209, - "downloadSeconds": 0.064120456 + "connectionEstablishedSeconds": 0.064454029, + "uploadSeconds": 0.000001774, + "downloadSeconds": 0.063271458 }, { - "connectionEstablishedSeconds": 0.065706276, - "uploadSeconds": 0.000001058, - "downloadSeconds": 0.063804527 + "connectionEstablishedSeconds": 0.062892907, + "uploadSeconds": 0.000001945, + "downloadSeconds": 0.06125851 }, { - "connectionEstablishedSeconds": 0.064814525, - "uploadSeconds": 0.000001968, - "downloadSeconds": 0.06296256 + "connectionEstablishedSeconds": 0.064602001, + "uploadSeconds": 6.96e-7, + "downloadSeconds": 0.062918437 }, { - "connectionEstablishedSeconds": 0.061032044, - "uploadSeconds": 0.000001839, - "downloadSeconds": 0.059348977 + "connectionEstablishedSeconds": 0.064547153, + "uploadSeconds": 0.000001823, + "downloadSeconds": 0.062874092 }, { - "connectionEstablishedSeconds": 0.065201914, - "uploadSeconds": 7.97e-7, - "downloadSeconds": 0.063409635 + "connectionEstablishedSeconds": 0.060979847, + "uploadSeconds": 0.00000179, + "downloadSeconds": 0.059437693 }, { - "connectionEstablishedSeconds": 0.064642434, - "uploadSeconds": 0.00000181, - "downloadSeconds": 0.062844688 + "connectionEstablishedSeconds": 0.063828571, + "uploadSeconds": 6.76e-7, + "downloadSeconds": 0.062130018 }, { - "connectionEstablishedSeconds": 0.066077649, - "uploadSeconds": 0.000001935, - "downloadSeconds": 0.064318069 + "connectionEstablishedSeconds": 0.062631998, + "uploadSeconds": 0.00000179, + "downloadSeconds": 0.060844295 }, { - "connectionEstablishedSeconds": 0.063682445, - "uploadSeconds": 8.42e-7, - "downloadSeconds": 0.061896631 + "connectionEstablishedSeconds": 0.063430539, + "uploadSeconds": 0.000001737, + "downloadSeconds": 0.061764257 }, { - "connectionEstablishedSeconds": 0.063308459, - "uploadSeconds": 0.000001795, - "downloadSeconds": 0.061484441 + "connectionEstablishedSeconds": 0.064820491, + "uploadSeconds": 7.62e-7, + "downloadSeconds": 0.063123954 }, { - "connectionEstablishedSeconds": 0.059922386, - "uploadSeconds": 0.000001914, - "downloadSeconds": 0.058065268 + "connectionEstablishedSeconds": 0.062331385, + "uploadSeconds": 0.000001725, + "downloadSeconds": 0.060720175 }, { - "connectionEstablishedSeconds": 0.064627417, - "uploadSeconds": 0.000001823, - "downloadSeconds": 0.062800746 + "connectionEstablishedSeconds": 0.064130376, + "uploadSeconds": 6.84e-7, + "downloadSeconds": 0.062462477 }, { - "connectionEstablishedSeconds": 0.064167577, - "uploadSeconds": 0.00000198, - "downloadSeconds": 0.062405582 + "connectionEstablishedSeconds": 0.065243526, + "uploadSeconds": 0.000001822, + "downloadSeconds": 0.063562629 }, { - "connectionEstablishedSeconds": 0.063558256, - "uploadSeconds": 7.7e-7, - "downloadSeconds": 0.06180833 + "connectionEstablishedSeconds": 0.063272386, + "uploadSeconds": 7.22e-7, + "downloadSeconds": 0.061669219 }, { - "connectionEstablishedSeconds": 0.063632947, - "uploadSeconds": 0.000002043, - "downloadSeconds": 0.061918028 + "connectionEstablishedSeconds": 0.064626055, + "uploadSeconds": 0.000001779, + "downloadSeconds": 0.062825225 }, { - "connectionEstablishedSeconds": 0.063844984, - "uploadSeconds": 0.000001799, - "downloadSeconds": 0.062247867 + "connectionEstablishedSeconds": 0.062730339, + "uploadSeconds": 0.000001862, + "downloadSeconds": 0.061026124 }, { - "connectionEstablishedSeconds": 0.065057619, - "uploadSeconds": 0.000001961, - "downloadSeconds": 0.063216681 + "connectionEstablishedSeconds": 0.065446917, + "uploadSeconds": 8.05e-7, + "downloadSeconds": 0.063572076 }, { - "connectionEstablishedSeconds": 0.062540966, - "uploadSeconds": 8.96e-7, - "downloadSeconds": 0.060688495 + "connectionEstablishedSeconds": 0.065050085, + "uploadSeconds": 0.000001816, + "downloadSeconds": 0.063333995 }, { - "connectionEstablishedSeconds": 0.064904633, - "uploadSeconds": 0.000001967, - "downloadSeconds": 0.063127793 + "connectionEstablishedSeconds": 0.06638139, + "uploadSeconds": 7.34e-7, + "downloadSeconds": 0.06462557 }, { - "connectionEstablishedSeconds": 0.063064295, - "uploadSeconds": 7.88e-7, - "downloadSeconds": 0.060478559 + "connectionEstablishedSeconds": 0.064235736, + "uploadSeconds": 0.000001772, + "downloadSeconds": 0.062498337 }, { - "connectionEstablishedSeconds": 0.064051755, - "uploadSeconds": 0.00000179, - "downloadSeconds": 0.062258241 + "connectionEstablishedSeconds": 0.063667108, + "uploadSeconds": 0.00000188, + "downloadSeconds": 0.061807483 }, { - "connectionEstablishedSeconds": 0.065675425, - "uploadSeconds": 0.000001966, - "downloadSeconds": 0.06396088 + "connectionEstablishedSeconds": 0.060839819, + "uploadSeconds": 0.000001712, + "downloadSeconds": 0.059126149 }, { - "connectionEstablishedSeconds": 0.066136074, - "uploadSeconds": 8.33e-7, - "downloadSeconds": 0.064474014 + "connectionEstablishedSeconds": 0.062833168, + "uploadSeconds": 8.01e-7, + "downloadSeconds": 0.06116432 }, { - "connectionEstablishedSeconds": 0.064002243, - "uploadSeconds": 8.18e-7, - "downloadSeconds": 0.062341859 + "connectionEstablishedSeconds": 0.063625147, + "uploadSeconds": 0.0000019, + "downloadSeconds": 0.061920975 }, { - "connectionEstablishedSeconds": 0.063851631, - "uploadSeconds": 0.000001997, - "downloadSeconds": 0.0621131 + "connectionEstablishedSeconds": 0.065952783, + "uploadSeconds": 0.000001739, + "downloadSeconds": 0.064116186 }, { - "connectionEstablishedSeconds": 0.064506957, - "uploadSeconds": 0.00000189, - "downloadSeconds": 0.062899723 + "connectionEstablishedSeconds": 0.065333213, + "uploadSeconds": 7.97e-7, + "downloadSeconds": 0.063640336 }, { - "connectionEstablishedSeconds": 0.062909183, - "uploadSeconds": 0.000001904, - "downloadSeconds": 0.061122555 + "connectionEstablishedSeconds": 0.0649866, + "uploadSeconds": 0.0000019, + "downloadSeconds": 0.063352452 }, { - "connectionEstablishedSeconds": 0.065556422, - "uploadSeconds": 0.00000199, - "downloadSeconds": 0.06383543 + "connectionEstablishedSeconds": 0.06601955, + "uploadSeconds": 7.5e-7, + "downloadSeconds": 0.064472928 }, { - "connectionEstablishedSeconds": 0.06365363, - "uploadSeconds": 0.000002292, - "downloadSeconds": 0.062093565 + "connectionEstablishedSeconds": 0.066007639, + "uploadSeconds": 0.000001927, + "downloadSeconds": 0.064297203 }, { - "connectionEstablishedSeconds": 0.064333966, - "uploadSeconds": 0.000001921, - "downloadSeconds": 0.062500201 + "connectionEstablishedSeconds": 0.060866632, + "uploadSeconds": 0.000001837, + "downloadSeconds": 0.059214214 }, { - "connectionEstablishedSeconds": 0.063589419, - "uploadSeconds": 0.000002079, - "downloadSeconds": 0.061868455 + "connectionEstablishedSeconds": 0.064662112, + "uploadSeconds": 0.000001797, + "downloadSeconds": 0.063006571 }, { - "connectionEstablishedSeconds": 0.062189631, - "uploadSeconds": 0.00000193, - "downloadSeconds": 0.0606924 + "connectionEstablishedSeconds": 0.062222184, + "uploadSeconds": 0.000001969, + "downloadSeconds": 0.060617405 }, { - "connectionEstablishedSeconds": 0.063825349, - "uploadSeconds": 6.95e-7, - "downloadSeconds": 0.06204725 + "connectionEstablishedSeconds": 0.065573294, + "uploadSeconds": 0.000001909, + "downloadSeconds": 0.063384853 }, { - "connectionEstablishedSeconds": 0.063109212, - "uploadSeconds": 0.000001852, - "downloadSeconds": 0.061355714 + "connectionEstablishedSeconds": 0.060471716, + "uploadSeconds": 0.00000174, + "downloadSeconds": 0.05876243 }, { - "connectionEstablishedSeconds": 0.062551758, - "uploadSeconds": 0.000001978, - "downloadSeconds": 0.060794018 + "connectionEstablishedSeconds": 0.063396436, + "uploadSeconds": 0.000001894, + "downloadSeconds": 0.061687148 }, { - "connectionEstablishedSeconds": 0.064215033, - "uploadSeconds": 8.48e-7, - "downloadSeconds": 0.062380982 + "connectionEstablishedSeconds": 0.064968625, + "uploadSeconds": 7.48e-7, + "downloadSeconds": 0.063275068 }, { - "connectionEstablishedSeconds": 0.064608427, - "uploadSeconds": 0.000001923, - "downloadSeconds": 0.062862131 + "connectionEstablishedSeconds": 0.066065038, + "uploadSeconds": 0.000001905, + "downloadSeconds": 0.064416883 }, { - "connectionEstablishedSeconds": 0.063678964, - "uploadSeconds": 0.000001883, - "downloadSeconds": 0.061903887 + "connectionEstablishedSeconds": 0.062158055, + "uploadSeconds": 8.03e-7, + "downloadSeconds": 0.060423222 }, { - "connectionEstablishedSeconds": 0.066294745, - "uploadSeconds": 0.000001903, - "downloadSeconds": 0.064500571 + "connectionEstablishedSeconds": 0.062498771, + "uploadSeconds": 7.82e-7, + "downloadSeconds": 0.060901782 }, { - "connectionEstablishedSeconds": 0.061508703, - "uploadSeconds": 0.000001906, - "downloadSeconds": 0.059627627 + "connectionEstablishedSeconds": 0.064959054, + "uploadSeconds": 0.000001864, + "downloadSeconds": 0.06329718 }, { - "connectionEstablishedSeconds": 0.062808156, - "uploadSeconds": 0.00000188, - "downloadSeconds": 0.060939134 + "connectionEstablishedSeconds": 0.065270905, + "uploadSeconds": 0.000001831, + "downloadSeconds": 0.063345246 }, { - "connectionEstablishedSeconds": 0.061670305, - "uploadSeconds": 0.000002104, - "downloadSeconds": 0.059862602 + "connectionEstablishedSeconds": 0.065934381, + "uploadSeconds": 0.000001905, + "downloadSeconds": 0.064248558 }, { - "connectionEstablishedSeconds": 0.064523911, - "uploadSeconds": 0.000001819, - "downloadSeconds": 0.062845514 + "connectionEstablishedSeconds": 0.061868211, + "uploadSeconds": 0.000001856, + "downloadSeconds": 0.060187673 }, { - "connectionEstablishedSeconds": 0.062908637, - "uploadSeconds": 0.000001962, - "downloadSeconds": 0.06119366 + "connectionEstablishedSeconds": 0.066919055, + "uploadSeconds": 0.000001842, + "downloadSeconds": 0.065187901 }, { - "connectionEstablishedSeconds": 0.064118052, - "uploadSeconds": 8.67e-7, - "downloadSeconds": 0.062346119 + "connectionEstablishedSeconds": 0.065127196, + "uploadSeconds": 0.000001795, + "downloadSeconds": 0.063484308 }, { - "connectionEstablishedSeconds": 0.062284829, - "uploadSeconds": 8.69e-7, - "downloadSeconds": 0.060471826 + "connectionEstablishedSeconds": 0.064882942, + "uploadSeconds": 0.000001808, + "downloadSeconds": 0.063167147 }, { - "connectionEstablishedSeconds": 0.065628805, - "uploadSeconds": 9.51e-7, - "downloadSeconds": 0.064255004 + "connectionEstablishedSeconds": 0.061981758, + "uploadSeconds": 0.000001836, + "downloadSeconds": 0.06030995 }, { - "connectionEstablishedSeconds": 0.063255442, - "uploadSeconds": 0.000001919, - "downloadSeconds": 0.061307355 + "connectionEstablishedSeconds": 0.066133359, + "uploadSeconds": 7.37e-7, + "downloadSeconds": 0.064433854 }, { - "connectionEstablishedSeconds": 0.062338916, - "uploadSeconds": 0.000001877, - "downloadSeconds": 0.060713508 + "connectionEstablishedSeconds": 0.063796176, + "uploadSeconds": 0.000001847, + "downloadSeconds": 0.06172291 }, { - "connectionEstablishedSeconds": 0.066092234, - "uploadSeconds": 8.77e-7, - "downloadSeconds": 0.064241899 + "connectionEstablishedSeconds": 0.063002923, + "uploadSeconds": 0.000001888, + "downloadSeconds": 0.061294327 }, { - "connectionEstablishedSeconds": 0.065546715, - "uploadSeconds": 8.61e-7, - "downloadSeconds": 0.063785994 + "connectionEstablishedSeconds": 0.061570653, + "uploadSeconds": 0.000001723, + "downloadSeconds": 0.059854651 }, { - "connectionEstablishedSeconds": 0.065282245, - "uploadSeconds": 8.22e-7, - "downloadSeconds": 0.063577701 + "connectionEstablishedSeconds": 0.060772114, + "uploadSeconds": 0.000001872, + "downloadSeconds": 0.059070695 }, { - "connectionEstablishedSeconds": 0.066437563, - "uploadSeconds": 8.53e-7, - "downloadSeconds": 0.064542893 + "connectionEstablishedSeconds": 0.062894542, + "uploadSeconds": 6.87e-7, + "downloadSeconds": 0.061264939 }, { - "connectionEstablishedSeconds": 0.062982522, - "uploadSeconds": 0.000001949, - "downloadSeconds": 0.061157305 + "connectionEstablishedSeconds": 0.065758631, + "uploadSeconds": 0.000001826, + "downloadSeconds": 0.063904459 }, { - "connectionEstablishedSeconds": 0.064840196, - "uploadSeconds": 9.37e-7, - "downloadSeconds": 0.063083308 + "connectionEstablishedSeconds": 0.063357454, + "uploadSeconds": 7.06e-7, + "downloadSeconds": 0.061596787 }, { - "connectionEstablishedSeconds": 0.062328395, - "uploadSeconds": 8.67e-7, - "downloadSeconds": 0.060646891 + "connectionEstablishedSeconds": 0.06495729, + "uploadSeconds": 0.000001747, + "downloadSeconds": 0.063341071 }, { - "connectionEstablishedSeconds": 0.065517896, - "uploadSeconds": 8.26e-7, - "downloadSeconds": 0.063675396 + "connectionEstablishedSeconds": 0.061965158, + "uploadSeconds": 0.000001707, + "downloadSeconds": 0.060223192 }, { - "connectionEstablishedSeconds": 0.06468413, - "uploadSeconds": 0.000002081, - "downloadSeconds": 0.062942522 + "connectionEstablishedSeconds": 0.063959458, + "uploadSeconds": 7.21e-7, + "downloadSeconds": 0.062279523 }, { - "connectionEstablishedSeconds": 0.062145911, - "uploadSeconds": 0.000002038, - "downloadSeconds": 0.060389068 + "connectionEstablishedSeconds": 0.062337663, + "uploadSeconds": 7.86e-7, + "downloadSeconds": 0.060707175 }, { - "connectionEstablishedSeconds": 0.06232188, - "uploadSeconds": 0.000002008, - "downloadSeconds": 0.059270087 + "connectionEstablishedSeconds": 0.064751048, + "uploadSeconds": 7.22e-7, + "downloadSeconds": 0.063059043 }, { - "connectionEstablishedSeconds": 0.064469934, - "uploadSeconds": 0.000001808, - "downloadSeconds": 0.062752466 + "connectionEstablishedSeconds": 0.06513626, + "uploadSeconds": 0.000001796, + "downloadSeconds": 0.063346966 }, { - "connectionEstablishedSeconds": 0.062709635, - "uploadSeconds": 0.000002034, - "downloadSeconds": 0.060945351 + "connectionEstablishedSeconds": 0.063214922, + "uploadSeconds": 0.000001804, + "downloadSeconds": 0.06218055 } ], "implementation": "quic-go", @@ -982,504 +982,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.120934675, - "uploadSeconds": 0.060318856, - "downloadSeconds": 0.060104499 + "connectionEstablishedSeconds": 0.124058021, + "uploadSeconds": 0.062077478, + "downloadSeconds": 0.061494736 }, { - "connectionEstablishedSeconds": 0.128061517, - "uploadSeconds": 0.063605463, - "downloadSeconds": 0.063664715 + "connectionEstablishedSeconds": 0.127102209, + "uploadSeconds": 0.063383977, + "downloadSeconds": 0.063038509 }, { - "connectionEstablishedSeconds": 0.127658799, - "uploadSeconds": 0.063452656, - "downloadSeconds": 0.063454888 + "connectionEstablishedSeconds": 0.121267961, + "uploadSeconds": 0.060470678, + "downloadSeconds": 0.060127486 }, { - "connectionEstablishedSeconds": 0.125617667, - "uploadSeconds": 0.062401489, - "downloadSeconds": 0.062467259 + "connectionEstablishedSeconds": 0.129524005, + "uploadSeconds": 0.064640051, + "downloadSeconds": 0.06430353 }, { - "connectionEstablishedSeconds": 0.124154207, - "uploadSeconds": 0.061699826, - "downloadSeconds": 0.061724492 + "connectionEstablishedSeconds": 0.127542905, + "uploadSeconds": 0.063614602, + "downloadSeconds": 0.063612141 }, { - "connectionEstablishedSeconds": 0.127846138, - "uploadSeconds": 0.063515977, - "downloadSeconds": 0.063531759 + "connectionEstablishedSeconds": 0.12082494, + "uploadSeconds": 0.060314976, + "downloadSeconds": 0.059951873 }, { - "connectionEstablishedSeconds": 0.120729252, - "uploadSeconds": 0.059916196, - "downloadSeconds": 0.060001179 + "connectionEstablishedSeconds": 0.123016011, + "uploadSeconds": 0.06146973, + "downloadSeconds": 0.061027897 }, { - "connectionEstablishedSeconds": 0.127417463, - "uploadSeconds": 0.063285207, - "downloadSeconds": 0.063336793 + "connectionEstablishedSeconds": 0.119034365, + "uploadSeconds": 0.059416155, + "downloadSeconds": 0.059058323 }, { - "connectionEstablishedSeconds": 0.121040576, - "uploadSeconds": 0.060114305, - "downloadSeconds": 0.060168989 + "connectionEstablishedSeconds": 0.128539861, + "uploadSeconds": 0.064145482, + "downloadSeconds": 0.064758555 }, { - "connectionEstablishedSeconds": 0.124943479, - "uploadSeconds": 0.062034017, - "downloadSeconds": 0.062080267 + "connectionEstablishedSeconds": 0.126172847, + "uploadSeconds": 0.062934903, + "downloadSeconds": 0.062615373 }, { - "connectionEstablishedSeconds": 0.122475451, - "uploadSeconds": 0.060855996, - "downloadSeconds": 0.060879618 + "connectionEstablishedSeconds": 0.127601794, + "uploadSeconds": 0.063763541, + "downloadSeconds": 0.063381563 }, { - "connectionEstablishedSeconds": 0.1236592, - "uploadSeconds": 0.0611343, - "downloadSeconds": 0.061200789 + "connectionEstablishedSeconds": 0.120291024, + "uploadSeconds": 0.060627011, + "downloadSeconds": 0.059673913 }, { - "connectionEstablishedSeconds": 0.123640147, - "uploadSeconds": 0.061384688, - "downloadSeconds": 0.061466515 + "connectionEstablishedSeconds": 0.122798549, + "uploadSeconds": 0.061259892, + "downloadSeconds": 0.060914391 }, { - "connectionEstablishedSeconds": 0.118841315, - "uploadSeconds": 0.05895918, - "downloadSeconds": 0.059036116 + "connectionEstablishedSeconds": 0.130316306, + "uploadSeconds": 0.065019972, + "downloadSeconds": 0.064689209 }, { - "connectionEstablishedSeconds": 0.129343271, - "uploadSeconds": 0.064244239, - "downloadSeconds": 0.064332254 + "connectionEstablishedSeconds": 0.119631181, + "uploadSeconds": 0.059720818, + "downloadSeconds": 0.059367563 }, { - "connectionEstablishedSeconds": 0.126433629, - "uploadSeconds": 0.062770414, - "downloadSeconds": 0.062846733 + "connectionEstablishedSeconds": 0.128467126, + "uploadSeconds": 0.064108639, + "downloadSeconds": 0.063753911 }, { - "connectionEstablishedSeconds": 0.123173028, - "uploadSeconds": 0.061131114, - "downloadSeconds": 0.061217306 + "connectionEstablishedSeconds": 0.124354844, + "uploadSeconds": 0.062229517, + "downloadSeconds": 0.061767435 }, { - "connectionEstablishedSeconds": 0.125137804, - "uploadSeconds": 0.062109799, - "downloadSeconds": 0.062277841 + "connectionEstablishedSeconds": 0.125419268, + "uploadSeconds": 0.062631359, + "downloadSeconds": 0.062243518 }, { - "connectionEstablishedSeconds": 0.122518993, - "uploadSeconds": 0.060827891, - "downloadSeconds": 0.060882129 + "connectionEstablishedSeconds": 0.130104541, + "uploadSeconds": 0.06495349, + "downloadSeconds": 0.064591408 }, { - "connectionEstablishedSeconds": 0.127896226, - "uploadSeconds": 0.063507707, - "downloadSeconds": 0.063647707 + "connectionEstablishedSeconds": 0.122528744, + "uploadSeconds": 0.061325284, + "downloadSeconds": 0.060857039 }, { - "connectionEstablishedSeconds": 0.126060862, - "uploadSeconds": 0.062561714, - "downloadSeconds": 0.062696571 + "connectionEstablishedSeconds": 0.125358979, + "uploadSeconds": 0.062639917, + "downloadSeconds": 0.062219645 }, { - "connectionEstablishedSeconds": 0.120696113, - "uploadSeconds": 0.059911559, - "downloadSeconds": 0.059996766 + "connectionEstablishedSeconds": 0.123678457, + "uploadSeconds": 0.061709973, + "downloadSeconds": 0.061333029 }, { - "connectionEstablishedSeconds": 0.129053947, - "uploadSeconds": 0.064217787, - "downloadSeconds": 0.064187147 + "connectionEstablishedSeconds": 0.123886457, + "uploadSeconds": 0.061824328, + "downloadSeconds": 0.061486719 }, { - "connectionEstablishedSeconds": 0.124066876, - "uploadSeconds": 0.061617166, - "downloadSeconds": 0.061736398 + "connectionEstablishedSeconds": 0.128529591, + "uploadSeconds": 0.064134847, + "downloadSeconds": 0.063784319 }, { - "connectionEstablishedSeconds": 0.125927228, - "uploadSeconds": 0.062530847, - "downloadSeconds": 0.062595748 + "connectionEstablishedSeconds": 0.123460513, + "uploadSeconds": 0.06161852, + "downloadSeconds": 0.061295237 }, { - "connectionEstablishedSeconds": 0.128120761, - "uploadSeconds": 0.063630588, - "downloadSeconds": 0.063702889 + "connectionEstablishedSeconds": 0.12941244, + "uploadSeconds": 0.064615066, + "downloadSeconds": 0.064315308 }, { - "connectionEstablishedSeconds": 0.120337392, - "uploadSeconds": 0.059725874, - "downloadSeconds": 0.059786297 + "connectionEstablishedSeconds": 0.126028135, + "uploadSeconds": 0.0628055, + "downloadSeconds": 0.062512649 }, { - "connectionEstablishedSeconds": 0.125247067, - "uploadSeconds": 0.062183868, - "downloadSeconds": 0.281597541 + "connectionEstablishedSeconds": 0.127794905, + "uploadSeconds": 0.063742337, + "downloadSeconds": 0.063416089 }, { - "connectionEstablishedSeconds": 0.123262912, - "uploadSeconds": 0.061193402, - "downloadSeconds": 0.061281943 + "connectionEstablishedSeconds": 0.126653066, + "uploadSeconds": 0.063223387, + "downloadSeconds": 0.062878385 }, { - "connectionEstablishedSeconds": 0.125235129, - "uploadSeconds": 0.062211734, - "downloadSeconds": 0.062275937 + "connectionEstablishedSeconds": 0.125217304, + "uploadSeconds": 0.062524137, + "downloadSeconds": 0.062175822 }, { - "connectionEstablishedSeconds": 0.123164681, - "uploadSeconds": 0.061163995, - "downloadSeconds": 0.061252078 + "connectionEstablishedSeconds": 0.117809879, + "uploadSeconds": 0.058805616, + "downloadSeconds": 0.058486286 }, { - "connectionEstablishedSeconds": 0.12804124, - "uploadSeconds": 0.063571143, - "downloadSeconds": 0.063657599 + "connectionEstablishedSeconds": 0.121667383, + "uploadSeconds": 0.060728191, + "downloadSeconds": 0.060423417 }, { - "connectionEstablishedSeconds": 0.123137264, - "uploadSeconds": 0.061164433, - "downloadSeconds": 0.061262922 + "connectionEstablishedSeconds": 0.12906208, + "uploadSeconds": 0.064489169, + "downloadSeconds": 0.064071083 }, { - "connectionEstablishedSeconds": 0.124465393, - "uploadSeconds": 0.061852565, - "downloadSeconds": 0.061908292 + "connectionEstablishedSeconds": 0.124977986, + "uploadSeconds": 0.062567327, + "downloadSeconds": 0.062019843 }, { - "connectionEstablishedSeconds": 0.125980795, - "uploadSeconds": 0.062563852, - "downloadSeconds": 0.062633138 + "connectionEstablishedSeconds": 0.128708389, + "uploadSeconds": 0.064225364, + "downloadSeconds": 0.063876376 }, { - "connectionEstablishedSeconds": 0.124921288, - "uploadSeconds": 0.062041248, - "downloadSeconds": 0.062088885 + "connectionEstablishedSeconds": 0.12765236, + "uploadSeconds": 0.063687139, + "downloadSeconds": 0.063335697 }, { - "connectionEstablishedSeconds": 0.121878166, - "uploadSeconds": 0.060482514, - "downloadSeconds": 0.060604527 + "connectionEstablishedSeconds": 0.125130661, + "uploadSeconds": 0.062468174, + "downloadSeconds": 0.062144584 }, { - "connectionEstablishedSeconds": 0.125525756, - "uploadSeconds": 0.062363834, - "downloadSeconds": 0.062414314 + "connectionEstablishedSeconds": 0.123978418, + "uploadSeconds": 0.061895087, + "downloadSeconds": 0.06150544 }, { - "connectionEstablishedSeconds": 0.128761013, - "uploadSeconds": 0.063946436, - "downloadSeconds": 0.064037895 + "connectionEstablishedSeconds": 0.126549043, + "uploadSeconds": 0.063210499, + "downloadSeconds": 0.062840988 }, { - "connectionEstablishedSeconds": 0.122879624, - "uploadSeconds": 0.060991367, - "downloadSeconds": 0.061087944 + "connectionEstablishedSeconds": 0.124811148, + "uploadSeconds": 0.06233627, + "downloadSeconds": 0.061885969 }, { - "connectionEstablishedSeconds": 0.123025618, - "uploadSeconds": 0.061063762, - "downloadSeconds": 0.06114214 + "connectionEstablishedSeconds": 0.122069078, + "uploadSeconds": 0.06080467, + "downloadSeconds": 0.06044802 }, { - "connectionEstablishedSeconds": 0.127292488, - "uploadSeconds": 0.06321786, - "downloadSeconds": 0.063284921 + "connectionEstablishedSeconds": 0.130993255, + "uploadSeconds": 0.065385158, + "downloadSeconds": 0.065066852 }, { - "connectionEstablishedSeconds": 0.122220021, - "uploadSeconds": 0.060705551, - "downloadSeconds": 0.060791717 + "connectionEstablishedSeconds": 0.12098012, + "uploadSeconds": 0.06035747, + "downloadSeconds": 0.060081032 }, { - "connectionEstablishedSeconds": 0.130945698, - "uploadSeconds": 0.065055162, - "downloadSeconds": 0.065136451 + "connectionEstablishedSeconds": 0.127430678, + "uploadSeconds": 0.063528991, + "downloadSeconds": 0.063176529 }, { - "connectionEstablishedSeconds": 0.126904364, - "uploadSeconds": 0.062972605, - "downloadSeconds": 0.062994862 + "connectionEstablishedSeconds": 0.120162636, + "uploadSeconds": 0.059940422, + "downloadSeconds": 0.059604314 }, { - "connectionEstablishedSeconds": 0.127727215, - "uploadSeconds": 0.063402176, - "downloadSeconds": 0.06346753 + "connectionEstablishedSeconds": 0.122255884, + "uploadSeconds": 0.06101592, + "downloadSeconds": 0.060644892 }, { - "connectionEstablishedSeconds": 0.121838446, - "uploadSeconds": 0.060497519, - "downloadSeconds": 0.060547155 + "connectionEstablishedSeconds": 0.12139227, + "uploadSeconds": 0.060616841, + "downloadSeconds": 0.060226881 }, { - "connectionEstablishedSeconds": 0.122744381, - "uploadSeconds": 0.060963721, - "downloadSeconds": 0.061094253 + "connectionEstablishedSeconds": 0.126449646, + "uploadSeconds": 0.063146003, + "downloadSeconds": 0.062773405 }, { - "connectionEstablishedSeconds": 0.127691052, - "uploadSeconds": 0.063357898, - "downloadSeconds": 0.063426201 + "connectionEstablishedSeconds": 0.124729358, + "uploadSeconds": 0.062296148, + "downloadSeconds": 0.061904317 }, { - "connectionEstablishedSeconds": 0.120310544, - "uploadSeconds": 0.059725696, - "downloadSeconds": 0.059788932 + "connectionEstablishedSeconds": 0.121826779, + "uploadSeconds": 0.060788757, + "downloadSeconds": 0.060428134 }, { - "connectionEstablishedSeconds": 0.122420557, - "uploadSeconds": 0.060766143, - "downloadSeconds": 0.060826232 + "connectionEstablishedSeconds": 0.122688283, + "uploadSeconds": 0.061284084, + "downloadSeconds": 0.060689293 }, { - "connectionEstablishedSeconds": 0.125849669, - "uploadSeconds": 0.062454754, - "downloadSeconds": 0.062558146 + "connectionEstablishedSeconds": 0.126258021, + "uploadSeconds": 0.063033437, + "downloadSeconds": 0.063484232 }, { - "connectionEstablishedSeconds": 0.124735161, - "uploadSeconds": 0.061991959, - "downloadSeconds": 0.062021647 + "connectionEstablishedSeconds": 0.123938486, + "uploadSeconds": 0.061877246, + "downloadSeconds": 0.061480637 }, { - "connectionEstablishedSeconds": 0.131121068, - "uploadSeconds": 0.065110347, - "downloadSeconds": 0.065198194 + "connectionEstablishedSeconds": 0.124503456, + "uploadSeconds": 0.062172986, + "downloadSeconds": 0.061783205 }, { - "connectionEstablishedSeconds": 0.123359776, - "uploadSeconds": 0.061250163, - "downloadSeconds": 0.06132682 + "connectionEstablishedSeconds": 0.119105181, + "uploadSeconds": 0.059418569, + "downloadSeconds": 0.059103765 }, { - "connectionEstablishedSeconds": 0.118813692, - "uploadSeconds": 0.058992344, - "downloadSeconds": 0.059054347 + "connectionEstablishedSeconds": 0.129954486, + "uploadSeconds": 0.064858418, + "downloadSeconds": 0.064516901 }, { - "connectionEstablishedSeconds": 0.119864335, - "uploadSeconds": 0.059497153, - "downloadSeconds": 0.059581931 + "connectionEstablishedSeconds": 0.126320254, + "uploadSeconds": 0.063035169, + "downloadSeconds": 0.062693213 }, { - "connectionEstablishedSeconds": 0.126542452, - "uploadSeconds": 0.06282126, - "downloadSeconds": 0.062886158 + "connectionEstablishedSeconds": 0.128407702, + "uploadSeconds": 0.064102092, + "downloadSeconds": 0.063852901 }, { - "connectionEstablishedSeconds": 0.123810888, - "uploadSeconds": 0.061499964, - "downloadSeconds": 0.06154741 + "connectionEstablishedSeconds": 0.122226383, + "uploadSeconds": 0.060836179, + "downloadSeconds": 0.060556746 }, { - "connectionEstablishedSeconds": 0.12587658, - "uploadSeconds": 0.062511492, - "downloadSeconds": 0.062575783 + "connectionEstablishedSeconds": 0.123249218, + "uploadSeconds": 0.061455064, + "downloadSeconds": 0.061151104 }, { - "connectionEstablishedSeconds": 0.128565419, - "uploadSeconds": 0.06385599, - "downloadSeconds": 0.063953685 + "connectionEstablishedSeconds": 0.121813637, + "uploadSeconds": 0.060681847, + "downloadSeconds": 0.06043271 }, { - "connectionEstablishedSeconds": 0.124656418, - "uploadSeconds": 0.061917427, - "downloadSeconds": 0.061976147 + "connectionEstablishedSeconds": 0.125649646, + "uploadSeconds": 0.062646247, + "downloadSeconds": 0.062361244 }, { - "connectionEstablishedSeconds": 0.125494283, - "uploadSeconds": 0.06232114, - "downloadSeconds": 0.062370385 + "connectionEstablishedSeconds": 0.123307101, + "uploadSeconds": 0.061423444, + "downloadSeconds": 0.061139615 }, { - "connectionEstablishedSeconds": 0.124625158, - "uploadSeconds": 0.061885121, - "downloadSeconds": 0.061940325 + "connectionEstablishedSeconds": 0.124774445, + "uploadSeconds": 0.062319587, + "downloadSeconds": 0.061947556 }, { - "connectionEstablishedSeconds": 0.125954686, - "uploadSeconds": 0.062569357, - "downloadSeconds": 0.06262672 + "connectionEstablishedSeconds": 0.127672627, + "uploadSeconds": 0.063798926, + "downloadSeconds": 0.063339798 }, { - "connectionEstablishedSeconds": 0.12927773, - "uploadSeconds": 0.064277478, - "downloadSeconds": 0.064313302 + "connectionEstablishedSeconds": 0.123911962, + "uploadSeconds": 0.061826366, + "downloadSeconds": 0.061486729 }, { - "connectionEstablishedSeconds": 0.127408792, - "uploadSeconds": 0.063302092, - "downloadSeconds": 0.063400735 + "connectionEstablishedSeconds": 0.125979776, + "uploadSeconds": 0.062828014, + "downloadSeconds": 0.062509218 }, { - "connectionEstablishedSeconds": 0.127741644, - "uploadSeconds": 0.063456966, - "downloadSeconds": 0.063505067 + "connectionEstablishedSeconds": 0.126000827, + "uploadSeconds": 0.062927782, + "downloadSeconds": 0.062554888 }, { - "connectionEstablishedSeconds": 0.128843782, - "uploadSeconds": 0.063830003, - "downloadSeconds": 0.06391866 + "connectionEstablishedSeconds": 0.125953363, + "uploadSeconds": 0.063413706, + "downloadSeconds": 0.062504602 }, { - "connectionEstablishedSeconds": 0.123434963, - "uploadSeconds": 0.061278556, - "downloadSeconds": 0.061338622 + "connectionEstablishedSeconds": 0.127443917, + "uploadSeconds": 0.063530974, + "downloadSeconds": 0.063218737 }, { - "connectionEstablishedSeconds": 0.127779544, - "uploadSeconds": 0.063336665, - "downloadSeconds": 0.063413851 + "connectionEstablishedSeconds": 0.123219759, + "uploadSeconds": 0.061498881, + "downloadSeconds": 0.061126394 }, { - "connectionEstablishedSeconds": 0.124132235, - "uploadSeconds": 0.061671306, - "downloadSeconds": 0.061763426 + "connectionEstablishedSeconds": 0.124893144, + "uploadSeconds": 0.062332706, + "downloadSeconds": 0.06200117 }, { - "connectionEstablishedSeconds": 0.119273985, - "uploadSeconds": 0.059135882, - "downloadSeconds": 0.059188158 + "connectionEstablishedSeconds": 0.12447858, + "uploadSeconds": 0.062152892, + "downloadSeconds": 0.061778092 }, { - "connectionEstablishedSeconds": 0.129304256, - "uploadSeconds": 0.064229577, - "downloadSeconds": 0.064292811 + "connectionEstablishedSeconds": 0.128283307, + "uploadSeconds": 0.064066358, + "downloadSeconds": 0.063828436 }, { - "connectionEstablishedSeconds": 0.127846291, - "uploadSeconds": 0.063498451, - "downloadSeconds": 0.063584271 + "connectionEstablishedSeconds": 0.127589626, + "uploadSeconds": 0.063622483, + "downloadSeconds": 0.06329308 }, { - "connectionEstablishedSeconds": 0.127631297, - "uploadSeconds": 0.063379055, - "downloadSeconds": 0.063459619 + "connectionEstablishedSeconds": 0.125670206, + "uploadSeconds": 0.062690311, + "downloadSeconds": 0.062363062 }, { - "connectionEstablishedSeconds": 0.128862305, - "uploadSeconds": 0.064011224, - "downloadSeconds": 0.064089416 + "connectionEstablishedSeconds": 0.121826964, + "uploadSeconds": 0.060771711, + "downloadSeconds": 0.060455865 }, { - "connectionEstablishedSeconds": 0.123898529, - "uploadSeconds": 0.061647949, - "downloadSeconds": 0.061704126 + "connectionEstablishedSeconds": 0.127231225, + "uploadSeconds": 0.063419489, + "downloadSeconds": 0.063104113 }, { - "connectionEstablishedSeconds": 0.126427652, - "uploadSeconds": 0.062780577, - "downloadSeconds": 0.062850221 + "connectionEstablishedSeconds": 0.130804406, + "uploadSeconds": 0.065269187, + "downloadSeconds": 0.064924763 }, { - "connectionEstablishedSeconds": 0.12041383, - "uploadSeconds": 0.059765423, - "downloadSeconds": 0.05985171 + "connectionEstablishedSeconds": 0.127485358, + "uploadSeconds": 0.063649053, + "downloadSeconds": 0.063282452 }, { - "connectionEstablishedSeconds": 0.122487266, - "uploadSeconds": 0.060804338, - "downloadSeconds": 0.060884063 + "connectionEstablishedSeconds": 0.129062566, + "uploadSeconds": 0.064438719, + "downloadSeconds": 0.064088616 }, { - "connectionEstablishedSeconds": 0.12405444, - "uploadSeconds": 0.061615829, - "downloadSeconds": 0.0617448 + "connectionEstablishedSeconds": 0.122165349, + "uploadSeconds": 0.060976149, + "downloadSeconds": 0.060601658 }, { - "connectionEstablishedSeconds": 0.1252939, - "uploadSeconds": 0.062233868, - "downloadSeconds": 0.062298883 + "connectionEstablishedSeconds": 0.126948063, + "uploadSeconds": 0.063315021, + "downloadSeconds": 0.062998477 }, { - "connectionEstablishedSeconds": 0.127402042, - "uploadSeconds": 0.063241467, - "downloadSeconds": 0.063342943 + "connectionEstablishedSeconds": 0.128671901, + "uploadSeconds": 0.064205217, + "downloadSeconds": 0.063928201 }, { - "connectionEstablishedSeconds": 0.126685079, - "uploadSeconds": 0.06292761, - "downloadSeconds": 0.062982324 + "connectionEstablishedSeconds": 0.125096519, + "uploadSeconds": 0.062512627, + "downloadSeconds": 0.062107226 }, { - "connectionEstablishedSeconds": 0.121871274, - "uploadSeconds": 0.060740917, - "downloadSeconds": 0.060584697 + "connectionEstablishedSeconds": 0.122250943, + "uploadSeconds": 0.061051283, + "downloadSeconds": 0.060697623 }, { - "connectionEstablishedSeconds": 0.119699832, - "uploadSeconds": 0.059455631, - "downloadSeconds": 0.059498272 + "connectionEstablishedSeconds": 0.124797483, + "uploadSeconds": 0.062298275, + "downloadSeconds": 0.061901884 }, { - "connectionEstablishedSeconds": 0.129019714, - "uploadSeconds": 0.064098047, - "downloadSeconds": 0.064190354 + "connectionEstablishedSeconds": 0.119372172, + "uploadSeconds": 0.059511722, + "downloadSeconds": 0.059173997 }, { - "connectionEstablishedSeconds": 0.119018863, - "uploadSeconds": 0.059229123, - "downloadSeconds": 0.059185492 + "connectionEstablishedSeconds": 0.121685887, + "uploadSeconds": 0.060755303, + "downloadSeconds": 0.060397952 }, { - "connectionEstablishedSeconds": 0.125366127, - "uploadSeconds": 0.062341426, - "downloadSeconds": 0.062342015 + "connectionEstablishedSeconds": 0.12351013, + "uploadSeconds": 0.06137572, + "downloadSeconds": 0.061073932 }, { - "connectionEstablishedSeconds": 0.125611461, - "uploadSeconds": 0.062410843, - "downloadSeconds": 0.062456794 + "connectionEstablishedSeconds": 0.123165334, + "uploadSeconds": 0.0613883, + "downloadSeconds": 0.061064862 }, { - "connectionEstablishedSeconds": 0.123740612, - "uploadSeconds": 0.061438856, - "downloadSeconds": 0.061487596 + "connectionEstablishedSeconds": 0.120983026, + "uploadSeconds": 0.060346049, + "downloadSeconds": 0.060024381 }, { - "connectionEstablishedSeconds": 0.130171847, - "uploadSeconds": 0.064657351, - "downloadSeconds": 0.064722367 + "connectionEstablishedSeconds": 0.126065842, + "uploadSeconds": 0.062937155, + "downloadSeconds": 0.062535339 }, { - "connectionEstablishedSeconds": 0.121008144, - "uploadSeconds": 0.060096855, - "downloadSeconds": 0.060141129 + "connectionEstablishedSeconds": 0.126260984, + "uploadSeconds": 0.06303293, + "downloadSeconds": 0.062668296 }, { - "connectionEstablishedSeconds": 0.122261724, - "uploadSeconds": 0.060685092, - "downloadSeconds": 0.060783431 + "connectionEstablishedSeconds": 0.123518604, + "uploadSeconds": 0.061500273, + "downloadSeconds": 0.061126555 }, { - "connectionEstablishedSeconds": 0.12198358, - "uploadSeconds": 0.060587308, - "downloadSeconds": 0.060621551 + "connectionEstablishedSeconds": 0.121865268, + "uploadSeconds": 0.060807917, + "downloadSeconds": 0.060464767 }, { - "connectionEstablishedSeconds": 0.129276378, - "uploadSeconds": 0.064217955, - "downloadSeconds": 0.064279332 + "connectionEstablishedSeconds": 0.125334794, + "uploadSeconds": 0.0624872, + "downloadSeconds": 0.062171626 }, { - "connectionEstablishedSeconds": 0.117664798, - "uploadSeconds": 0.058423073, - "downloadSeconds": 0.058481222 + "connectionEstablishedSeconds": 0.118961932, + "uploadSeconds": 0.059461436, + "downloadSeconds": 0.05899401 }, { - "connectionEstablishedSeconds": 0.122264693, - "uploadSeconds": 0.060714713, - "downloadSeconds": 0.060778335 + "connectionEstablishedSeconds": 0.126231878, + "uploadSeconds": 0.063030315, + "downloadSeconds": 0.062642855 }, { - "connectionEstablishedSeconds": 0.12435423, - "uploadSeconds": 0.061728479, - "downloadSeconds": 0.061809844 + "connectionEstablishedSeconds": 0.125711641, + "uploadSeconds": 0.062704495, + "downloadSeconds": 0.062361051 } ], "implementation": "rust-libp2p", @@ -1489,504 +1489,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.062228087, - "uploadSeconds": 0.120893191, - "downloadSeconds": 0.000099165 + "connectionEstablishedSeconds": 0.063203869, + "uploadSeconds": 0.122656498, + "downloadSeconds": 0.000103783 }, { - "connectionEstablishedSeconds": 0.063734208, - "uploadSeconds": 0.123902018, - "downloadSeconds": 0.000045828 + "connectionEstablishedSeconds": 0.063515664, + "uploadSeconds": 0.123714623, + "downloadSeconds": 0.000075894 }, { - "connectionEstablishedSeconds": 0.064510474, - "uploadSeconds": 0.125358969, - "downloadSeconds": 0.000105478 + "connectionEstablishedSeconds": 0.064600478, + "uploadSeconds": 0.126119206, + "downloadSeconds": 0.000084941 }, { - "connectionEstablishedSeconds": 0.065255394, - "uploadSeconds": 0.127108206, - "downloadSeconds": 0.000088449 + "connectionEstablishedSeconds": 0.06378471, + "uploadSeconds": 0.124441627, + "downloadSeconds": 0.000111488 }, { - "connectionEstablishedSeconds": 0.066390359, - "uploadSeconds": 0.129048959, - "downloadSeconds": 0.000087506 + "connectionEstablishedSeconds": 0.062926406, + "uploadSeconds": 0.122615946, + "downloadSeconds": 0.000116401 }, { - "connectionEstablishedSeconds": 0.062640027, - "uploadSeconds": 0.121685794, - "downloadSeconds": 0.000085337 + "connectionEstablishedSeconds": 0.065221722, + "uploadSeconds": 0.127275116, + "downloadSeconds": 0.000086185 }, { - "connectionEstablishedSeconds": 0.064499552, - "uploadSeconds": 0.125410019, - "downloadSeconds": 0.000087664 + "connectionEstablishedSeconds": 0.062312061, + "uploadSeconds": 0.121466792, + "downloadSeconds": 0.000072074 }, { - "connectionEstablishedSeconds": 0.065494969, - "uploadSeconds": 0.127446356, - "downloadSeconds": 0.000085126 + "connectionEstablishedSeconds": 0.063252052, + "uploadSeconds": 0.123669523, + "downloadSeconds": 0.00008179 }, { - "connectionEstablishedSeconds": 0.06453883, - "uploadSeconds": 0.125435273, - "downloadSeconds": 0.00008866 + "connectionEstablishedSeconds": 0.064667278, + "uploadSeconds": 0.12632167, + "downloadSeconds": 0.000078583 }, { - "connectionEstablishedSeconds": 0.065465495, - "uploadSeconds": 0.127337886, - "downloadSeconds": 0.000088228 + "connectionEstablishedSeconds": 0.063529571, + "uploadSeconds": 0.123793077, + "downloadSeconds": 0.000074419 }, { - "connectionEstablishedSeconds": 0.065497585, - "uploadSeconds": 0.127547688, - "downloadSeconds": 0.000048445 + "connectionEstablishedSeconds": 0.063939707, + "uploadSeconds": 0.124645573, + "downloadSeconds": 0.000094452 }, { - "connectionEstablishedSeconds": 0.062053488, - "uploadSeconds": 0.120570934, - "downloadSeconds": 0.000051426 + "connectionEstablishedSeconds": 0.062277571, + "uploadSeconds": 0.121253083, + "downloadSeconds": 0.000099857 }, { - "connectionEstablishedSeconds": 0.065189638, - "uploadSeconds": 0.126649956, - "downloadSeconds": 0.000079552 + "connectionEstablishedSeconds": 0.063885842, + "uploadSeconds": 0.124489881, + "downloadSeconds": 0.000091707 }, { - "connectionEstablishedSeconds": 0.064666342, - "uploadSeconds": 0.125720425, - "downloadSeconds": 0.000089942 + "connectionEstablishedSeconds": 0.065121956, + "uploadSeconds": 0.126881527, + "downloadSeconds": 0.000080073 }, { - "connectionEstablishedSeconds": 0.062484754, - "uploadSeconds": 0.121424687, - "downloadSeconds": 0.0000493 + "connectionEstablishedSeconds": 0.063944015, + "uploadSeconds": 0.124517809, + "downloadSeconds": 0.00007133 }, { - "connectionEstablishedSeconds": 0.064606624, - "uploadSeconds": 0.125707048, - "downloadSeconds": 0.0000876 + "connectionEstablishedSeconds": 0.063215954, + "uploadSeconds": 0.122983571, + "downloadSeconds": 0.000075483 }, { - "connectionEstablishedSeconds": 0.066222267, - "uploadSeconds": 0.128878726, - "downloadSeconds": 0.00008468 + "connectionEstablishedSeconds": 0.062753195, + "uploadSeconds": 0.122299301, + "downloadSeconds": 0.000074919 }, { - "connectionEstablishedSeconds": 0.063119375, - "uploadSeconds": 0.122659138, - "downloadSeconds": 0.000105409 + "connectionEstablishedSeconds": 0.062395452, + "uploadSeconds": 0.121787297, + "downloadSeconds": 0.000107686 }, { - "connectionEstablishedSeconds": 0.064945702, - "uploadSeconds": 0.125868481, - "downloadSeconds": 0.000085921 + "connectionEstablishedSeconds": 0.062985342, + "uploadSeconds": 0.122406854, + "downloadSeconds": 0.000078724 }, { - "connectionEstablishedSeconds": 0.061924524, - "uploadSeconds": 0.120503709, - "downloadSeconds": 0.00007517 + "connectionEstablishedSeconds": 0.064946298, + "uploadSeconds": 0.126410273, + "downloadSeconds": 0.000082567 }, { - "connectionEstablishedSeconds": 0.063605631, - "uploadSeconds": 0.123602947, - "downloadSeconds": 0.000102754 + "connectionEstablishedSeconds": 0.064756678, + "uploadSeconds": 0.126160138, + "downloadSeconds": 0.000031208 }, { - "connectionEstablishedSeconds": 0.065523997, - "uploadSeconds": 0.127420361, - "downloadSeconds": 0.000106991 + "connectionEstablishedSeconds": 0.06421922, + "uploadSeconds": 0.12529639, + "downloadSeconds": 0.000078245 }, { - "connectionEstablishedSeconds": 0.063640155, - "uploadSeconds": 0.123723695, - "downloadSeconds": 0.000076951 + "connectionEstablishedSeconds": 0.061292622, + "uploadSeconds": 0.119452983, + "downloadSeconds": 0.000068746 }, { - "connectionEstablishedSeconds": 0.064030146, - "uploadSeconds": 0.124476116, - "downloadSeconds": 0.000083057 + "connectionEstablishedSeconds": 0.062844098, + "uploadSeconds": 0.122445485, + "downloadSeconds": 0.000075351 }, { - "connectionEstablishedSeconds": 0.063251595, - "uploadSeconds": 0.123027875, - "downloadSeconds": 0.000107909 + "connectionEstablishedSeconds": 0.064734313, + "uploadSeconds": 0.1262624, + "downloadSeconds": 0.00013077 }, { - "connectionEstablishedSeconds": 0.06472421, - "uploadSeconds": 0.125950818, - "downloadSeconds": 0.000050403 + "connectionEstablishedSeconds": 0.063172545, + "uploadSeconds": 0.123045706, + "downloadSeconds": 0.000078989 }, { - "connectionEstablishedSeconds": 0.063615584, - "uploadSeconds": 0.123676684, - "downloadSeconds": 0.000100003 + "connectionEstablishedSeconds": 0.061765529, + "uploadSeconds": 0.120209572, + "downloadSeconds": 0.000082957 }, { - "connectionEstablishedSeconds": 0.064527459, - "uploadSeconds": 0.125573941, - "downloadSeconds": 0.000142577 + "connectionEstablishedSeconds": 0.06603262, + "uploadSeconds": 0.128706706, + "downloadSeconds": 0.000129909 }, { - "connectionEstablishedSeconds": 0.065239512, - "uploadSeconds": 0.127007647, - "downloadSeconds": 0.000102753 + "connectionEstablishedSeconds": 0.062404356, + "uploadSeconds": 0.121408457, + "downloadSeconds": 0.000077832 }, { - "connectionEstablishedSeconds": 0.065002136, - "uploadSeconds": 0.126428268, - "downloadSeconds": 0.000100366 + "connectionEstablishedSeconds": 0.06463015, + "uploadSeconds": 0.126062199, + "downloadSeconds": 0.000112965 }, { - "connectionEstablishedSeconds": 0.064491103, - "uploadSeconds": 0.125496774, - "downloadSeconds": 0.000082914 + "connectionEstablishedSeconds": 0.063353178, + "uploadSeconds": 0.123447775, + "downloadSeconds": 0.00007586 }, { - "connectionEstablishedSeconds": 0.061470431, - "uploadSeconds": 0.119681012, - "downloadSeconds": 0.000092367 + "connectionEstablishedSeconds": 0.065616971, + "uploadSeconds": 0.128011955, + "downloadSeconds": 0.000076824 }, { - "connectionEstablishedSeconds": 0.066128934, - "uploadSeconds": 0.128684243, - "downloadSeconds": 0.000050939 + "connectionEstablishedSeconds": 0.062332867, + "uploadSeconds": 0.12145863, + "downloadSeconds": 0.000076705 }, { - "connectionEstablishedSeconds": 0.062860625, - "uploadSeconds": 0.122331128, - "downloadSeconds": 0.000077326 + "connectionEstablishedSeconds": 0.063510853, + "uploadSeconds": 0.124005083, + "downloadSeconds": 0.000092898 }, { - "connectionEstablishedSeconds": 0.065758037, - "uploadSeconds": 0.128014455, - "downloadSeconds": 0.000049593 + "connectionEstablishedSeconds": 0.064150443, + "uploadSeconds": 0.125125734, + "downloadSeconds": 0.000075764 }, { - "connectionEstablishedSeconds": 0.064911288, - "uploadSeconds": 0.126244849, - "downloadSeconds": 0.00008702 + "connectionEstablishedSeconds": 0.064170424, + "uploadSeconds": 0.125084065, + "downloadSeconds": 0.000074709 }, { - "connectionEstablishedSeconds": 0.060500391, - "uploadSeconds": 0.117433404, - "downloadSeconds": 0.000098985 + "connectionEstablishedSeconds": 0.062841857, + "uploadSeconds": 0.122277809, + "downloadSeconds": 0.000072405 }, { - "connectionEstablishedSeconds": 0.064570379, - "uploadSeconds": 0.125612761, - "downloadSeconds": 0.000052489 + "connectionEstablishedSeconds": 0.063611611, + "uploadSeconds": 0.124122617, + "downloadSeconds": 0.000066236 }, { - "connectionEstablishedSeconds": 0.061610704, - "uploadSeconds": 0.119766429, - "downloadSeconds": 0.000049095 + "connectionEstablishedSeconds": 0.063870786, + "uploadSeconds": 0.124393202, + "downloadSeconds": 0.00007474 }, { - "connectionEstablishedSeconds": 0.063889781, - "uploadSeconds": 0.124191347, - "downloadSeconds": 0.000102015 + "connectionEstablishedSeconds": 0.063539917, + "uploadSeconds": 0.123865338, + "downloadSeconds": 0.000107758 }, { - "connectionEstablishedSeconds": 0.063067354, - "uploadSeconds": 0.122699173, - "downloadSeconds": 0.000089304 + "connectionEstablishedSeconds": 0.063430723, + "uploadSeconds": 0.123516186, + "downloadSeconds": 0.000064434 }, { - "connectionEstablishedSeconds": 0.063439324, - "uploadSeconds": 0.123255208, - "downloadSeconds": 0.000085337 + "connectionEstablishedSeconds": 0.065472971, + "uploadSeconds": 0.127594031, + "downloadSeconds": 0.000066605 }, { - "connectionEstablishedSeconds": 0.065063968, - "uploadSeconds": 0.126475373, - "downloadSeconds": 0.000126626 + "connectionEstablishedSeconds": 0.062129424, + "uploadSeconds": 0.121091365, + "downloadSeconds": 0.000073461 }, { - "connectionEstablishedSeconds": 0.066271463, - "uploadSeconds": 0.128935528, - "downloadSeconds": 0.000046158 + "connectionEstablishedSeconds": 0.06585531, + "uploadSeconds": 0.128565888, + "downloadSeconds": 0.000076886 }, { - "connectionEstablishedSeconds": 0.063950299, - "uploadSeconds": 0.124443584, - "downloadSeconds": 0.000051703 + "connectionEstablishedSeconds": 0.063584865, + "uploadSeconds": 0.124036269, + "downloadSeconds": 0.000074685 }, { - "connectionEstablishedSeconds": 0.064774385, - "uploadSeconds": 0.126063081, - "downloadSeconds": 0.00007508 + "connectionEstablishedSeconds": 0.064177802, + "uploadSeconds": 0.125393652, + "downloadSeconds": 0.000080112 }, { - "connectionEstablishedSeconds": 0.065636329, - "uploadSeconds": 0.127636465, - "downloadSeconds": 0.000090008 + "connectionEstablishedSeconds": 0.063876094, + "uploadSeconds": 0.124695268, + "downloadSeconds": 0.000072771 }, { - "connectionEstablishedSeconds": 0.063451078, - "uploadSeconds": 0.123364682, - "downloadSeconds": 0.000101472 + "connectionEstablishedSeconds": 0.063384346, + "uploadSeconds": 0.123569729, + "downloadSeconds": 0.000106485 }, { - "connectionEstablishedSeconds": 0.06323798, - "uploadSeconds": 0.122975014, - "downloadSeconds": 0.000070985 + "connectionEstablishedSeconds": 0.060557532, + "uploadSeconds": 0.117909823, + "downloadSeconds": 0.000080434 }, { - "connectionEstablishedSeconds": 0.064770406, - "uploadSeconds": 0.126004915, - "downloadSeconds": 0.000072125 + "connectionEstablishedSeconds": 0.061715602, + "uploadSeconds": 0.120185345, + "downloadSeconds": 0.000075141 }, { - "connectionEstablishedSeconds": 0.065279787, - "uploadSeconds": 0.126962819, - "downloadSeconds": 0.000097796 + "connectionEstablishedSeconds": 0.063313935, + "uploadSeconds": 0.123465157, + "downloadSeconds": 0.000077032 }, { - "connectionEstablishedSeconds": 0.064901942, - "uploadSeconds": 0.125585521, - "downloadSeconds": 0.000049299 + "connectionEstablishedSeconds": 0.065822412, + "uploadSeconds": 0.128407554, + "downloadSeconds": 0.000084521 }, { - "connectionEstablishedSeconds": 0.061443554, - "uploadSeconds": 0.119494502, - "downloadSeconds": 0.000091291 + "connectionEstablishedSeconds": 0.063722106, + "uploadSeconds": 0.124297724, + "downloadSeconds": 0.000075054 }, { - "connectionEstablishedSeconds": 0.063441921, - "uploadSeconds": 0.123328693, - "downloadSeconds": 0.000049731 + "connectionEstablishedSeconds": 0.062747653, + "uploadSeconds": 0.122252288, + "downloadSeconds": 0.000078251 }, { - "connectionEstablishedSeconds": 0.062608409, - "uploadSeconds": 0.121783217, - "downloadSeconds": 0.000091694 + "connectionEstablishedSeconds": 0.063449721, + "uploadSeconds": 0.123630602, + "downloadSeconds": 0.000076311 }, { - "connectionEstablishedSeconds": 0.063711363, - "uploadSeconds": 0.123972621, - "downloadSeconds": 0.000103791 + "connectionEstablishedSeconds": 0.0644094, + "uploadSeconds": 0.125442619, + "downloadSeconds": 0.000090846 }, { - "connectionEstablishedSeconds": 0.064214588, - "uploadSeconds": 0.125143771, - "downloadSeconds": 0.000020481 + "connectionEstablishedSeconds": 0.063082268, + "uploadSeconds": 0.122954727, + "downloadSeconds": 0.000075656 }, { - "connectionEstablishedSeconds": 0.060506092, - "uploadSeconds": 0.117461449, - "downloadSeconds": 0.00009433 + "connectionEstablishedSeconds": 0.065263634, + "uploadSeconds": 0.127313841, + "downloadSeconds": 0.000093562 }, { - "connectionEstablishedSeconds": 0.06548947, - "uploadSeconds": 0.12762932, - "downloadSeconds": 0.000019611 + "connectionEstablishedSeconds": 0.063756921, + "uploadSeconds": 0.124325695, + "downloadSeconds": 0.000077578 }, { - "connectionEstablishedSeconds": 0.06343756, - "uploadSeconds": 0.12326629, - "downloadSeconds": 0.000080451 + "connectionEstablishedSeconds": 0.065226602, + "uploadSeconds": 0.127408746, + "downloadSeconds": 0.000063328 }, { - "connectionEstablishedSeconds": 0.064497925, - "uploadSeconds": 0.125432572, - "downloadSeconds": 0.000053455 + "connectionEstablishedSeconds": 0.062674923, + "uploadSeconds": 0.122178219, + "downloadSeconds": 0.00008401 }, { - "connectionEstablishedSeconds": 0.064198009, - "uploadSeconds": 0.124789315, - "downloadSeconds": 0.000102881 + "connectionEstablishedSeconds": 0.063754848, + "uploadSeconds": 0.124379335, + "downloadSeconds": 0.000051964 }, { - "connectionEstablishedSeconds": 0.065856671, - "uploadSeconds": 0.128240388, - "downloadSeconds": 0.000053864 + "connectionEstablishedSeconds": 0.065296851, + "uploadSeconds": 0.127246931, + "downloadSeconds": 0.000081588 }, { - "connectionEstablishedSeconds": 0.066265894, - "uploadSeconds": 0.129040126, - "downloadSeconds": 0.000090861 + "connectionEstablishedSeconds": 0.063616519, + "uploadSeconds": 0.124179761, + "downloadSeconds": 0.000044467 }, { - "connectionEstablishedSeconds": 0.064372464, - "uploadSeconds": 0.12513222, - "downloadSeconds": 0.00010157 + "connectionEstablishedSeconds": 0.061579295, + "uploadSeconds": 0.119979899, + "downloadSeconds": 0.000101516 }, { - "connectionEstablishedSeconds": 0.063916167, - "uploadSeconds": 0.124636789, - "downloadSeconds": 0.000073509 + "connectionEstablishedSeconds": 0.062572771, + "uploadSeconds": 0.122046019, + "downloadSeconds": 0.000088343 }, { - "connectionEstablishedSeconds": 0.061572516, - "uploadSeconds": 0.119719968, - "downloadSeconds": 0.000085707 + "connectionEstablishedSeconds": 0.063334286, + "uploadSeconds": 0.123357959, + "downloadSeconds": 0.00007871 }, { - "connectionEstablishedSeconds": 0.065074184, - "uploadSeconds": 0.126698852, - "downloadSeconds": 0.00008027 + "connectionEstablishedSeconds": 0.064733463, + "uploadSeconds": 0.12629003, + "downloadSeconds": 0.000078053 }, { - "connectionEstablishedSeconds": 0.06569187, - "uploadSeconds": 0.127787894, - "downloadSeconds": 0.000095077 + "connectionEstablishedSeconds": 0.063418871, + "uploadSeconds": 0.123562308, + "downloadSeconds": 0.00012644 }, { - "connectionEstablishedSeconds": 0.063378177, - "uploadSeconds": 0.123475499, - "downloadSeconds": 0.000103336 + "connectionEstablishedSeconds": 0.063024151, + "uploadSeconds": 0.122698679, + "downloadSeconds": 0.000088133 }, { - "connectionEstablishedSeconds": 0.064730038, - "uploadSeconds": 0.125953752, - "downloadSeconds": 0.000061881 + "connectionEstablishedSeconds": 0.065781879, + "uploadSeconds": 0.128445348, + "downloadSeconds": 0.000082524 }, { - "connectionEstablishedSeconds": 0.06603802, - "uploadSeconds": 0.128568222, - "downloadSeconds": 0.000022934 + "connectionEstablishedSeconds": 0.060848145, + "uploadSeconds": 0.11849403, + "downloadSeconds": 0.000052046 }, { - "connectionEstablishedSeconds": 0.062661405, - "uploadSeconds": 0.121714334, - "downloadSeconds": 0.000078985 + "connectionEstablishedSeconds": 0.065397278, + "uploadSeconds": 0.127812905, + "downloadSeconds": 0.000081862 }, { - "connectionEstablishedSeconds": 0.066337935, - "uploadSeconds": 0.129140541, - "downloadSeconds": 0.000086636 + "connectionEstablishedSeconds": 0.06331458, + "uploadSeconds": 0.123419175, + "downloadSeconds": 0.000064125 }, { - "connectionEstablishedSeconds": 0.063668639, - "uploadSeconds": 0.123844589, - "downloadSeconds": 0.000050411 + "connectionEstablishedSeconds": 0.061434991, + "uploadSeconds": 0.119663241, + "downloadSeconds": 0.000065614 }, { - "connectionEstablishedSeconds": 0.064122074, - "uploadSeconds": 0.12476925, - "downloadSeconds": 0.000075981 + "connectionEstablishedSeconds": 0.064118877, + "uploadSeconds": 0.125160915, + "downloadSeconds": 0.000076191 }, { - "connectionEstablishedSeconds": 0.065372135, - "uploadSeconds": 0.127211626, - "downloadSeconds": 0.000091012 + "connectionEstablishedSeconds": 0.06609273, + "uploadSeconds": 0.128976658, + "downloadSeconds": 0.000075263 }, { - "connectionEstablishedSeconds": 0.059813543, - "uploadSeconds": 0.116184542, - "downloadSeconds": 0.000076299 + "connectionEstablishedSeconds": 0.062119204, + "uploadSeconds": 0.121211198, + "downloadSeconds": 0.000090149 }, { - "connectionEstablishedSeconds": 0.064338913, - "uploadSeconds": 0.125357074, - "downloadSeconds": 0.000048772 + "connectionEstablishedSeconds": 0.065484144, + "uploadSeconds": 0.127686959, + "downloadSeconds": 0.00011936 }, { - "connectionEstablishedSeconds": 0.061904241, - "uploadSeconds": 0.120371589, - "downloadSeconds": 0.000085246 + "connectionEstablishedSeconds": 0.061099895, + "uploadSeconds": 0.118903555, + "downloadSeconds": 0.000093157 }, { - "connectionEstablishedSeconds": 0.062849555, - "uploadSeconds": 0.122130636, - "downloadSeconds": 0.00005213 + "connectionEstablishedSeconds": 0.066346868, + "uploadSeconds": 0.129013408, + "downloadSeconds": 0.000113448 }, { - "connectionEstablishedSeconds": 0.063626359, - "uploadSeconds": 0.123786209, - "downloadSeconds": 0.000073933 + "connectionEstablishedSeconds": 0.063363322, + "uploadSeconds": 0.12354139, + "downloadSeconds": 0.000081933 }, { - "connectionEstablishedSeconds": 0.065144197, - "uploadSeconds": 0.126835146, - "downloadSeconds": 0.000080652 + "connectionEstablishedSeconds": 0.065708913, + "uploadSeconds": 0.127996795, + "downloadSeconds": 0.000115991 }, { - "connectionEstablishedSeconds": 0.063006839, - "uploadSeconds": 0.122330209, - "downloadSeconds": 0.000100892 + "connectionEstablishedSeconds": 0.065038988, + "uploadSeconds": 0.126883528, + "downloadSeconds": 0.000111241 }, { - "connectionEstablishedSeconds": 0.0656745, - "uploadSeconds": 0.12785452, - "downloadSeconds": 0.000056427 + "connectionEstablishedSeconds": 0.06582632, + "uploadSeconds": 0.128563521, + "downloadSeconds": 0.000087801 }, { - "connectionEstablishedSeconds": 0.065664141, - "uploadSeconds": 0.127793254, - "downloadSeconds": 0.000089199 + "connectionEstablishedSeconds": 0.063173671, + "uploadSeconds": 0.123237588, + "downloadSeconds": 0.000080491 }, { - "connectionEstablishedSeconds": 0.063336824, - "uploadSeconds": 0.123224446, - "downloadSeconds": 0.00009833 + "connectionEstablishedSeconds": 0.064649962, + "uploadSeconds": 0.126206981, + "downloadSeconds": 0.000071408 }, { - "connectionEstablishedSeconds": 0.063508944, - "uploadSeconds": 0.123534801, - "downloadSeconds": 0.000090801 + "connectionEstablishedSeconds": 0.065991627, + "uploadSeconds": 0.128836539, + "downloadSeconds": 0.00008055 }, { - "connectionEstablishedSeconds": 0.063052371, - "uploadSeconds": 0.12258054, - "downloadSeconds": 0.000099776 + "connectionEstablishedSeconds": 0.061908521, + "uploadSeconds": 0.120909384, + "downloadSeconds": 0.000078715 }, { - "connectionEstablishedSeconds": 0.063967578, - "uploadSeconds": 0.12440295, - "downloadSeconds": 0.00009315 + "connectionEstablishedSeconds": 0.065387878, + "uploadSeconds": 0.127366811, + "downloadSeconds": 0.000098709 }, { - "connectionEstablishedSeconds": 0.064650102, - "uploadSeconds": 0.125943909, - "downloadSeconds": 0.000095094 + "connectionEstablishedSeconds": 0.062797077, + "uploadSeconds": 0.122537156, + "downloadSeconds": 0.000072229 }, { - "connectionEstablishedSeconds": 0.063100822, - "uploadSeconds": 0.122738159, - "downloadSeconds": 0.00005022 + "connectionEstablishedSeconds": 0.063171665, + "uploadSeconds": 0.123225664, + "downloadSeconds": 0.000086358 }, { - "connectionEstablishedSeconds": 0.062892339, - "uploadSeconds": 0.122973305, - "downloadSeconds": 0.000109195 + "connectionEstablishedSeconds": 0.063818464, + "uploadSeconds": 0.12427302, + "downloadSeconds": 0.000044336 }, { - "connectionEstablishedSeconds": 0.062691186, - "uploadSeconds": 0.121850273, - "downloadSeconds": 0.000046814 + "connectionEstablishedSeconds": 0.064874975, + "uploadSeconds": 0.126579857, + "downloadSeconds": 0.000075379 }, { - "connectionEstablishedSeconds": 0.065547722, - "uploadSeconds": 0.127526939, - "downloadSeconds": 0.000086215 + "connectionEstablishedSeconds": 0.06323232, + "uploadSeconds": 0.123291944, + "downloadSeconds": 0.000073215 }, { - "connectionEstablishedSeconds": 0.063465129, - "uploadSeconds": 0.123536217, - "downloadSeconds": 0.000049009 + "connectionEstablishedSeconds": 0.063251915, + "uploadSeconds": 0.123362543, + "downloadSeconds": 0.000080585 }, { - "connectionEstablishedSeconds": 0.066192294, - "uploadSeconds": 0.12883507, - "downloadSeconds": 0.00010391 + "connectionEstablishedSeconds": 0.062978757, + "uploadSeconds": 0.122864356, + "downloadSeconds": 0.000073106 }, { - "connectionEstablishedSeconds": 0.06537651, - "uploadSeconds": 0.1272119, - "downloadSeconds": 0.000073702 + "connectionEstablishedSeconds": 0.064929259, + "uploadSeconds": 0.126705193, + "downloadSeconds": 0.000073625 }, { - "connectionEstablishedSeconds": 0.062524589, - "uploadSeconds": 0.121543935, - "downloadSeconds": 0.000089477 + "connectionEstablishedSeconds": 0.066067453, + "uploadSeconds": 0.128731447, + "downloadSeconds": 0.000077397 }, { - "connectionEstablishedSeconds": 0.065393812, - "uploadSeconds": 0.127120697, - "downloadSeconds": 0.000077362 + "connectionEstablishedSeconds": 0.063177485, + "uploadSeconds": 0.123223254, + "downloadSeconds": 0.00009193 } ], "implementation": "rust-libp2p", @@ -1996,504 +1996,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.062965213, - "uploadSeconds": 0.122682753, - "downloadSeconds": 0.000096943 + "connectionEstablishedSeconds": 0.066293855, + "uploadSeconds": 0.128838694, + "downloadSeconds": 0.000109071 }, { - "connectionEstablishedSeconds": 0.065489033, - "uploadSeconds": 0.127334506, - "downloadSeconds": 0.00005148 + "connectionEstablishedSeconds": 0.066044661, + "uploadSeconds": 0.128552189, + "downloadSeconds": 0.000054501 }, { - "connectionEstablishedSeconds": 0.064780118, - "uploadSeconds": 0.125533161, - "downloadSeconds": 0.000179768 + "connectionEstablishedSeconds": 0.066218271, + "uploadSeconds": 0.12887538, + "downloadSeconds": 0.000094154 }, { - "connectionEstablishedSeconds": 0.064576145, - "uploadSeconds": 0.125430556, - "downloadSeconds": 0.000079431 + "connectionEstablishedSeconds": 0.062379976, + "uploadSeconds": 0.118404419, + "downloadSeconds": 0.000049924 }, { - "connectionEstablishedSeconds": 0.06390552, - "uploadSeconds": 0.12410876, - "downloadSeconds": 0.000056454 + "connectionEstablishedSeconds": 0.064759047, + "uploadSeconds": 0.126432775, + "downloadSeconds": 0.000105999 }, { - "connectionEstablishedSeconds": 0.06475562, - "uploadSeconds": 0.125875636, - "downloadSeconds": 0.000046953 + "connectionEstablishedSeconds": 0.066085657, + "uploadSeconds": 0.128805395, + "downloadSeconds": 0.000043488 }, { - "connectionEstablishedSeconds": 0.064233033, - "uploadSeconds": 0.124969035, - "downloadSeconds": 0.000048843 + "connectionEstablishedSeconds": 0.063836653, + "uploadSeconds": 0.124501237, + "downloadSeconds": 0.000061385 }, { - "connectionEstablishedSeconds": 0.066038617, - "uploadSeconds": 0.128523885, - "downloadSeconds": 0.000048385 + "connectionEstablishedSeconds": 0.063411751, + "uploadSeconds": 0.123530984, + "downloadSeconds": 0.000066786 }, { - "connectionEstablishedSeconds": 0.062580181, - "uploadSeconds": 0.121513512, - "downloadSeconds": 0.000058131 + "connectionEstablishedSeconds": 0.063151001, + "uploadSeconds": 0.122962178, + "downloadSeconds": 0.000071225 }, { - "connectionEstablishedSeconds": 0.065504828, - "uploadSeconds": 0.127820586, - "downloadSeconds": 0.000048425 + "connectionEstablishedSeconds": 0.063029447, + "uploadSeconds": 0.122810231, + "downloadSeconds": 0.000045789 }, { - "connectionEstablishedSeconds": 0.064665241, - "uploadSeconds": 0.12597723, - "downloadSeconds": 0.000052844 + "connectionEstablishedSeconds": 0.064916644, + "uploadSeconds": 0.126394694, + "downloadSeconds": 0.000082889 }, { - "connectionEstablishedSeconds": 0.064701557, - "uploadSeconds": 0.125833183, - "downloadSeconds": 0.000092905 + "connectionEstablishedSeconds": 0.063766039, + "uploadSeconds": 0.124300394, + "downloadSeconds": 0.000057969 }, { - "connectionEstablishedSeconds": 0.06448686, - "uploadSeconds": 0.125395967, - "downloadSeconds": 0.000085099 + "connectionEstablishedSeconds": 0.065127441, + "uploadSeconds": 0.126831722, + "downloadSeconds": 0.000062703 }, { - "connectionEstablishedSeconds": 0.065915145, - "uploadSeconds": 0.12835944, - "downloadSeconds": 0.000050811 + "connectionEstablishedSeconds": 0.062038374, + "uploadSeconds": 0.12078609, + "downloadSeconds": 0.000060429 }, { - "connectionEstablishedSeconds": 0.064480849, - "uploadSeconds": 0.125422879, - "downloadSeconds": 0.000067528 + "connectionEstablishedSeconds": 0.061448811, + "uploadSeconds": 0.11961297, + "downloadSeconds": 0.000068448 }, { - "connectionEstablishedSeconds": 0.06609195, - "uploadSeconds": 0.12874033, - "downloadSeconds": 0.000051072 + "connectionEstablishedSeconds": 0.064899522, + "uploadSeconds": 0.126568866, + "downloadSeconds": 0.000048038 }, { - "connectionEstablishedSeconds": 0.065812462, - "uploadSeconds": 0.128129494, - "downloadSeconds": 0.000050144 + "connectionEstablishedSeconds": 0.065273294, + "uploadSeconds": 0.127268102, + "downloadSeconds": 0.000050118 }, { - "connectionEstablishedSeconds": 0.063794081, - "uploadSeconds": 0.124079512, - "downloadSeconds": 0.000075582 + "connectionEstablishedSeconds": 0.063516307, + "uploadSeconds": 0.123758702, + "downloadSeconds": 0.000067881 }, { - "connectionEstablishedSeconds": 0.065288735, - "uploadSeconds": 0.127120097, - "downloadSeconds": 0.000045388 + "connectionEstablishedSeconds": 0.062746456, + "uploadSeconds": 0.122660261, + "downloadSeconds": 0.000048767 }, { - "connectionEstablishedSeconds": 0.064935727, - "uploadSeconds": 0.126263076, - "downloadSeconds": 0.0000764 + "connectionEstablishedSeconds": 0.067157762, + "uploadSeconds": 0.129308345, + "downloadSeconds": 0.000043885 }, { - "connectionEstablishedSeconds": 0.064595678, - "uploadSeconds": 0.125849896, - "downloadSeconds": 0.000051446 + "connectionEstablishedSeconds": 0.06478928, + "uploadSeconds": 0.126306743, + "downloadSeconds": 0.000053643 }, { - "connectionEstablishedSeconds": 0.064087762, - "uploadSeconds": 0.124715294, - "downloadSeconds": 0.000085901 + "connectionEstablishedSeconds": 0.060772493, + "uploadSeconds": 0.118447541, + "downloadSeconds": 0.000043745 }, { - "connectionEstablishedSeconds": 0.064889148, - "uploadSeconds": 0.126489863, - "downloadSeconds": 0.000049797 + "connectionEstablishedSeconds": 0.062497528, + "uploadSeconds": 0.121945691, + "downloadSeconds": 0.000050597 }, { - "connectionEstablishedSeconds": 0.062467826, - "uploadSeconds": 0.121297594, - "downloadSeconds": 0.00005279 + "connectionEstablishedSeconds": 0.065664218, + "uploadSeconds": 0.128117385, + "downloadSeconds": 0.000046102 }, { - "connectionEstablishedSeconds": 0.062480328, - "uploadSeconds": 0.121542251, - "downloadSeconds": 0.000071948 + "connectionEstablishedSeconds": 0.065402008, + "uploadSeconds": 0.127307752, + "downloadSeconds": 0.000047742 }, { - "connectionEstablishedSeconds": 0.065630362, - "uploadSeconds": 0.127637877, - "downloadSeconds": 0.000053017 + "connectionEstablishedSeconds": 0.06218077, + "uploadSeconds": 0.121057154, + "downloadSeconds": 0.000045149 }, { - "connectionEstablishedSeconds": 0.062966299, - "uploadSeconds": 0.122626191, - "downloadSeconds": 0.000100311 + "connectionEstablishedSeconds": 0.063104503, + "uploadSeconds": 0.122896606, + "downloadSeconds": 0.0000516 }, { - "connectionEstablishedSeconds": 0.065212714, - "uploadSeconds": 0.126882573, - "downloadSeconds": 0.000103539 + "connectionEstablishedSeconds": 0.065216033, + "uploadSeconds": 0.127229111, + "downloadSeconds": 0.000044079 }, { - "connectionEstablishedSeconds": 0.063160796, - "uploadSeconds": 0.122707305, - "downloadSeconds": 0.000091295 + "connectionEstablishedSeconds": 0.064356653, + "uploadSeconds": 0.125582002, + "downloadSeconds": 0.000044951 }, { - "connectionEstablishedSeconds": 0.065610229, - "uploadSeconds": 0.127561854, - "downloadSeconds": 0.000044342 + "connectionEstablishedSeconds": 0.06124353, + "uploadSeconds": 0.119388, + "downloadSeconds": 0.000041664 }, { - "connectionEstablishedSeconds": 0.062578162, - "uploadSeconds": 0.121752053, - "downloadSeconds": 0.0000859 + "connectionEstablishedSeconds": 0.06430739, + "uploadSeconds": 0.125459188, + "downloadSeconds": 0.000044305 }, { - "connectionEstablishedSeconds": 0.066255772, - "uploadSeconds": 0.127226144, - "downloadSeconds": 0.000048046 + "connectionEstablishedSeconds": 0.063070535, + "uploadSeconds": 0.123019138, + "downloadSeconds": 0.000079823 }, { - "connectionEstablishedSeconds": 0.064441426, - "uploadSeconds": 0.125328846, - "downloadSeconds": 0.000055709 + "connectionEstablishedSeconds": 0.063156585, + "uploadSeconds": 0.123055698, + "downloadSeconds": 0.000043145 }, { - "connectionEstablishedSeconds": 0.063287629, - "uploadSeconds": 0.123149429, - "downloadSeconds": 0.000052619 + "connectionEstablishedSeconds": 0.064462957, + "uploadSeconds": 0.12543376, + "downloadSeconds": 0.000068488 }, { - "connectionEstablishedSeconds": 0.062782396, - "uploadSeconds": 0.122141871, - "downloadSeconds": 0.000053622 + "connectionEstablishedSeconds": 0.062023748, + "uploadSeconds": 0.120737552, + "downloadSeconds": 0.000055591 }, { - "connectionEstablishedSeconds": 0.066718479, - "uploadSeconds": 0.130087424, - "downloadSeconds": 0.000046998 + "connectionEstablishedSeconds": 0.063462423, + "uploadSeconds": 0.123716044, + "downloadSeconds": 0.000042694 }, { - "connectionEstablishedSeconds": 0.065404341, - "uploadSeconds": 0.127412669, - "downloadSeconds": 0.000053589 + "connectionEstablishedSeconds": 0.062781062, + "uploadSeconds": 0.122466443, + "downloadSeconds": 0.000054478 }, { - "connectionEstablishedSeconds": 0.062921035, - "uploadSeconds": 0.12245603, - "downloadSeconds": 0.000048439 + "connectionEstablishedSeconds": 0.063981831, + "uploadSeconds": 0.124848737, + "downloadSeconds": 0.000069009 }, { - "connectionEstablishedSeconds": 0.063269545, - "uploadSeconds": 0.12313399, - "downloadSeconds": 0.000046705 + "connectionEstablishedSeconds": 0.06130626, + "uploadSeconds": 0.1193835, + "downloadSeconds": 0.00009292 }, { - "connectionEstablishedSeconds": 0.064657458, - "uploadSeconds": 0.12558721, - "downloadSeconds": 0.000089519 + "connectionEstablishedSeconds": 0.065247146, + "uploadSeconds": 0.127370527, + "downloadSeconds": 0.000072377 }, { - "connectionEstablishedSeconds": 0.064372159, - "uploadSeconds": 0.125307848, - "downloadSeconds": 0.000056282 + "connectionEstablishedSeconds": 0.063327282, + "uploadSeconds": 0.12356483, + "downloadSeconds": 0.000043629 }, { - "connectionEstablishedSeconds": 0.063471511, - "uploadSeconds": 0.123603874, - "downloadSeconds": 0.000053637 + "connectionEstablishedSeconds": 0.063911442, + "uploadSeconds": 0.124664435, + "downloadSeconds": 0.000044125 }, { - "connectionEstablishedSeconds": 0.064454589, - "uploadSeconds": 0.125511651, - "downloadSeconds": 0.000064808 + "connectionEstablishedSeconds": 0.06343294, + "uploadSeconds": 0.123700053, + "downloadSeconds": 0.000075065 }, { - "connectionEstablishedSeconds": 0.064763882, - "uploadSeconds": 0.126017266, - "downloadSeconds": 0.000047926 + "connectionEstablishedSeconds": 0.064634539, + "uploadSeconds": 0.126111265, + "downloadSeconds": 0.000061258 }, { - "connectionEstablishedSeconds": 0.065445739, - "uploadSeconds": 0.127456516, - "downloadSeconds": 0.000050466 + "connectionEstablishedSeconds": 0.065161663, + "uploadSeconds": 0.127349492, + "downloadSeconds": 0.000063018 }, { - "connectionEstablishedSeconds": 0.063431453, - "uploadSeconds": 0.123508824, - "downloadSeconds": 0.000050062 + "connectionEstablishedSeconds": 0.063589554, + "uploadSeconds": 0.123524262, + "downloadSeconds": 0.000053298 }, { - "connectionEstablishedSeconds": 0.064876121, - "uploadSeconds": 0.126287247, - "downloadSeconds": 0.000086023 + "connectionEstablishedSeconds": 0.060602978, + "uploadSeconds": 0.117673782, + "downloadSeconds": 0.000042326 }, { - "connectionEstablishedSeconds": 0.063792115, - "uploadSeconds": 0.12380564, - "downloadSeconds": 0.000059282 + "connectionEstablishedSeconds": 0.064852721, + "uploadSeconds": 0.126461212, + "downloadSeconds": 0.000041829 }, { - "connectionEstablishedSeconds": 0.064643853, - "uploadSeconds": 0.12569494, - "downloadSeconds": 0.000055511 + "connectionEstablishedSeconds": 0.06298342, + "uploadSeconds": 0.122936763, + "downloadSeconds": 0.000046214 }, { - "connectionEstablishedSeconds": 0.064326266, - "uploadSeconds": 0.125203995, - "downloadSeconds": 0.00005376 + "connectionEstablishedSeconds": 0.065531317, + "uploadSeconds": 0.127887135, + "downloadSeconds": 0.00004526 }, { - "connectionEstablishedSeconds": 0.063819705, - "uploadSeconds": 0.124362927, - "downloadSeconds": 0.000049904 + "connectionEstablishedSeconds": 0.065374762, + "uploadSeconds": 0.127439175, + "downloadSeconds": 0.000063495 }, { - "connectionEstablishedSeconds": 0.062724828, - "uploadSeconds": 0.121708761, - "downloadSeconds": 0.000086279 + "connectionEstablishedSeconds": 0.065463941, + "uploadSeconds": 0.127815628, + "downloadSeconds": 0.000043459 }, { - "connectionEstablishedSeconds": 0.064082258, - "uploadSeconds": 0.124765938, - "downloadSeconds": 0.00006986 + "connectionEstablishedSeconds": 0.065122609, + "uploadSeconds": 0.127021187, + "downloadSeconds": 0.000063603 }, { - "connectionEstablishedSeconds": 0.061541865, - "uploadSeconds": 0.119683336, - "downloadSeconds": 0.000046545 + "connectionEstablishedSeconds": 0.06383867, + "uploadSeconds": 0.124412336, + "downloadSeconds": 0.000045804 }, { - "connectionEstablishedSeconds": 0.0639851, - "uploadSeconds": 0.124269542, - "downloadSeconds": 0.000072711 + "connectionEstablishedSeconds": 0.064228688, + "uploadSeconds": 0.125228463, + "downloadSeconds": 0.000065232 }, { - "connectionEstablishedSeconds": 0.060457326, - "uploadSeconds": 0.117418959, - "downloadSeconds": 0.000071158 + "connectionEstablishedSeconds": 0.062811454, + "uploadSeconds": 0.122469789, + "downloadSeconds": 0.000042892 }, { - "connectionEstablishedSeconds": 0.06312529, - "uploadSeconds": 0.122446747, - "downloadSeconds": 0.000065805 + "connectionEstablishedSeconds": 0.062547227, + "uploadSeconds": 0.121882683, + "downloadSeconds": 0.000077208 }, { - "connectionEstablishedSeconds": 0.062976684, - "uploadSeconds": 0.122669083, - "downloadSeconds": 0.000093549 + "connectionEstablishedSeconds": 0.06284941, + "uploadSeconds": 0.122538014, + "downloadSeconds": 0.000095453 }, { - "connectionEstablishedSeconds": 0.065746472, - "uploadSeconds": 0.128321234, - "downloadSeconds": 0.000051595 + "connectionEstablishedSeconds": 0.066098911, + "uploadSeconds": 0.129004454, + "downloadSeconds": 0.000043178 }, { - "connectionEstablishedSeconds": 0.066366627, - "uploadSeconds": 0.129283919, - "downloadSeconds": 0.000050745 + "connectionEstablishedSeconds": 0.062815475, + "uploadSeconds": 0.122317576, + "downloadSeconds": 0.000088037 }, { - "connectionEstablishedSeconds": 0.065415799, - "uploadSeconds": 0.127190661, - "downloadSeconds": 0.000062322 + "connectionEstablishedSeconds": 0.066287114, + "uploadSeconds": 0.129409299, + "downloadSeconds": 0.000092224 }, { - "connectionEstablishedSeconds": 0.063648161, - "uploadSeconds": 0.123781895, - "downloadSeconds": 0.000046654 + "connectionEstablishedSeconds": 0.062671299, + "uploadSeconds": 0.122033709, + "downloadSeconds": 0.00006392 }, { - "connectionEstablishedSeconds": 0.06167661, - "uploadSeconds": 0.119790221, - "downloadSeconds": 0.000047639 + "connectionEstablishedSeconds": 0.063377735, + "uploadSeconds": 0.123620435, + "downloadSeconds": 0.000050908 }, { - "connectionEstablishedSeconds": 0.065250442, - "uploadSeconds": 0.127054158, - "downloadSeconds": 0.00006243 + "connectionEstablishedSeconds": 0.06538328, + "uploadSeconds": 0.12750699, + "downloadSeconds": 0.000056413 }, { - "connectionEstablishedSeconds": 0.063930895, - "uploadSeconds": 0.124296611, - "downloadSeconds": 0.000048271 + "connectionEstablishedSeconds": 0.063522213, + "uploadSeconds": 0.123819808, + "downloadSeconds": 0.000067559 }, { - "connectionEstablishedSeconds": 0.063170568, - "uploadSeconds": 0.122844096, - "downloadSeconds": 0.000059985 + "connectionEstablishedSeconds": 0.0659601, + "uploadSeconds": 0.128779919, + "downloadSeconds": 0.000064312 }, { - "connectionEstablishedSeconds": 0.064963847, - "uploadSeconds": 0.126469775, - "downloadSeconds": 0.00009783 + "connectionEstablishedSeconds": 0.065575178, + "uploadSeconds": 0.12799637, + "downloadSeconds": 0.000052054 }, { - "connectionEstablishedSeconds": 0.062416817, - "uploadSeconds": 0.121274763, - "downloadSeconds": 0.000063675 + "connectionEstablishedSeconds": 0.064139778, + "uploadSeconds": 0.125176728, + "downloadSeconds": 0.000075293 }, { - "connectionEstablishedSeconds": 0.06274952, - "uploadSeconds": 0.121991328, - "downloadSeconds": 0.00004915 + "connectionEstablishedSeconds": 0.063111646, + "uploadSeconds": 0.123056972, + "downloadSeconds": 0.000047648 }, { - "connectionEstablishedSeconds": 0.062530976, - "uploadSeconds": 0.121535015, - "downloadSeconds": 0.000053865 + "connectionEstablishedSeconds": 0.065287877, + "uploadSeconds": 0.127419796, + "downloadSeconds": 0.000044081 }, { - "connectionEstablishedSeconds": 0.064192983, - "uploadSeconds": 0.12497331, - "downloadSeconds": 0.000053834 + "connectionEstablishedSeconds": 0.064179332, + "uploadSeconds": 0.124868524, + "downloadSeconds": 0.000058339 }, { - "connectionEstablishedSeconds": 0.063269385, - "uploadSeconds": 0.122713127, - "downloadSeconds": 0.000051999 + "connectionEstablishedSeconds": 0.063847942, + "uploadSeconds": 0.124473084, + "downloadSeconds": 0.000043143 }, { - "connectionEstablishedSeconds": 0.063591056, - "uploadSeconds": 0.123664118, - "downloadSeconds": 0.000047505 + "connectionEstablishedSeconds": 0.065343678, + "uploadSeconds": 0.127495389, + "downloadSeconds": 0.000058849 }, { - "connectionEstablishedSeconds": 0.064500664, - "uploadSeconds": 0.125451392, - "downloadSeconds": 0.000052342 + "connectionEstablishedSeconds": 0.062360192, + "uploadSeconds": 0.121570947, + "downloadSeconds": 0.000043107 }, { - "connectionEstablishedSeconds": 0.064386192, - "uploadSeconds": 0.125257624, - "downloadSeconds": 0.000055289 + "connectionEstablishedSeconds": 0.065844591, + "uploadSeconds": 0.128239351, + "downloadSeconds": 0.000066319 }, { - "connectionEstablishedSeconds": 0.063064753, - "uploadSeconds": 0.122466459, - "downloadSeconds": 0.000069603 + "connectionEstablishedSeconds": 0.065322628, + "uploadSeconds": 0.127487935, + "downloadSeconds": 0.000044149 }, { - "connectionEstablishedSeconds": 0.065334896, - "uploadSeconds": 0.127050874, - "downloadSeconds": 0.000065784 + "connectionEstablishedSeconds": 0.066464531, + "uploadSeconds": 0.129952884, + "downloadSeconds": 0.000060471 }, { - "connectionEstablishedSeconds": 0.06524476, - "uploadSeconds": 0.127040032, - "downloadSeconds": 0.000047416 + "connectionEstablishedSeconds": 0.064306115, + "uploadSeconds": 0.125431056, + "downloadSeconds": 0.00010413 }, { - "connectionEstablishedSeconds": 0.062676442, - "uploadSeconds": 0.121891488, - "downloadSeconds": 0.000056458 + "connectionEstablishedSeconds": 0.063619726, + "uploadSeconds": 0.124078136, + "downloadSeconds": 0.0000852 }, { - "connectionEstablishedSeconds": 0.064216517, - "uploadSeconds": 0.124848172, - "downloadSeconds": 0.000089715 + "connectionEstablishedSeconds": 0.062638913, + "uploadSeconds": 0.122031095, + "downloadSeconds": 0.000074539 }, { - "connectionEstablishedSeconds": 0.06513872, - "uploadSeconds": 0.126780996, - "downloadSeconds": 0.000065766 + "connectionEstablishedSeconds": 0.06155076, + "uploadSeconds": 0.119838688, + "downloadSeconds": 0.000042917 }, { - "connectionEstablishedSeconds": 0.065030584, - "uploadSeconds": 0.12662517, - "downloadSeconds": 0.000053753 + "connectionEstablishedSeconds": 0.062433044, + "uploadSeconds": 0.121616772, + "downloadSeconds": 0.000086568 }, { - "connectionEstablishedSeconds": 0.062538152, - "uploadSeconds": 0.12168764, - "downloadSeconds": 0.00011266 + "connectionEstablishedSeconds": 0.06341812, + "uploadSeconds": 0.123585474, + "downloadSeconds": 0.000071418 }, { - "connectionEstablishedSeconds": 0.066310676, - "uploadSeconds": 0.129074605, - "downloadSeconds": 0.000053125 + "connectionEstablishedSeconds": 0.066048887, + "uploadSeconds": 0.128822032, + "downloadSeconds": 0.000099427 }, { - "connectionEstablishedSeconds": 0.066263897, - "uploadSeconds": 0.129142804, - "downloadSeconds": 0.000049113 + "connectionEstablishedSeconds": 0.062968092, + "uploadSeconds": 0.122552074, + "downloadSeconds": 0.000083105 }, { - "connectionEstablishedSeconds": 0.066270579, - "uploadSeconds": 0.129054171, - "downloadSeconds": 0.000092392 + "connectionEstablishedSeconds": 0.063012973, + "uploadSeconds": 0.122698468, + "downloadSeconds": 0.000086725 }, { - "connectionEstablishedSeconds": 0.066166914, - "uploadSeconds": 0.128875248, - "downloadSeconds": 0.000052999 + "connectionEstablishedSeconds": 0.065530269, + "uploadSeconds": 0.12795265, + "downloadSeconds": 0.000044245 }, { - "connectionEstablishedSeconds": 0.064122605, - "uploadSeconds": 0.124866938, - "downloadSeconds": 0.000066255 + "connectionEstablishedSeconds": 0.064960776, + "uploadSeconds": 0.126513551, + "downloadSeconds": 0.000044453 }, { - "connectionEstablishedSeconds": 0.061991146, - "uploadSeconds": 0.120611253, - "downloadSeconds": 0.000046815 + "connectionEstablishedSeconds": 0.061790656, + "uploadSeconds": 0.120286236, + "downloadSeconds": 0.000066911 }, { - "connectionEstablishedSeconds": 0.06589036, - "uploadSeconds": 0.128228162, - "downloadSeconds": 0.000047445 + "connectionEstablishedSeconds": 0.066244713, + "uploadSeconds": 0.129109878, + "downloadSeconds": 0.000071863 }, { - "connectionEstablishedSeconds": 0.064135612, - "uploadSeconds": 0.12479438, - "downloadSeconds": 0.000052391 + "connectionEstablishedSeconds": 0.06453071, + "uploadSeconds": 0.125708928, + "downloadSeconds": 0.000071678 }, { - "connectionEstablishedSeconds": 0.065295866, - "uploadSeconds": 0.127137163, - "downloadSeconds": 0.000046542 + "connectionEstablishedSeconds": 0.0624927, + "uploadSeconds": 0.1218161, + "downloadSeconds": 0.000056356 }, { - "connectionEstablishedSeconds": 0.06473605, - "uploadSeconds": 0.126032657, - "downloadSeconds": 0.000050489 + "connectionEstablishedSeconds": 0.063537376, + "uploadSeconds": 0.123929577, + "downloadSeconds": 0.000039988 }, { - "connectionEstablishedSeconds": 0.063691798, - "uploadSeconds": 0.123769338, - "downloadSeconds": 0.000060976 + "connectionEstablishedSeconds": 0.063965224, + "uploadSeconds": 0.124748106, + "downloadSeconds": 0.000063244 }, { - "connectionEstablishedSeconds": 0.064162208, - "uploadSeconds": 0.124859646, - "downloadSeconds": 0.000090241 + "connectionEstablishedSeconds": 0.062425074, + "uploadSeconds": 0.121450899, + "downloadSeconds": 0.000039717 }, { - "connectionEstablishedSeconds": 0.062561977, - "uploadSeconds": 0.121690886, - "downloadSeconds": 0.000047624 + "connectionEstablishedSeconds": 0.064375788, + "uploadSeconds": 0.125731952, + "downloadSeconds": 0.000045356 }, { - "connectionEstablishedSeconds": 0.064724475, - "uploadSeconds": 0.125989931, - "downloadSeconds": 0.000079598 + "connectionEstablishedSeconds": 0.065792091, + "uploadSeconds": 0.128431911, + "downloadSeconds": 0.000041651 }, { - "connectionEstablishedSeconds": 0.063654223, - "uploadSeconds": 0.123738224, - "downloadSeconds": 0.000054464 + "connectionEstablishedSeconds": 0.062532951, + "uploadSeconds": 0.12193893, + "downloadSeconds": 0.000089181 }, { - "connectionEstablishedSeconds": 0.064422792, - "uploadSeconds": 0.125386097, - "downloadSeconds": 0.00005014 + "connectionEstablishedSeconds": 0.065898519, + "uploadSeconds": 0.128566453, + "downloadSeconds": 0.00004398 }, { - "connectionEstablishedSeconds": 0.063905178, - "uploadSeconds": 0.124427918, - "downloadSeconds": 0.000093924 + "connectionEstablishedSeconds": 0.065879497, + "uploadSeconds": 0.128738269, + "downloadSeconds": 0.000044414 } ], "implementation": "rust-libp2p-quinn", @@ -2504,503 +2504,503 @@ "result": [ { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.1821398, - "downloadSeconds": 0.000026881 + "uploadSeconds": 0.190829819, + "downloadSeconds": 0.000026367 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.195773944, - "downloadSeconds": 0.000025118 + "uploadSeconds": 0.189724003, + "downloadSeconds": 0.000018734 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183498433, - "downloadSeconds": 0.000031034 + "uploadSeconds": 0.175119696, + "downloadSeconds": 0.000022903 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192985197, - "downloadSeconds": 0.000023865 + "uploadSeconds": 0.188146694, + "downloadSeconds": 0.000020093 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184632175, - "downloadSeconds": 0.000023122 + "uploadSeconds": 0.186209685, + "downloadSeconds": 0.000021729 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187860929, - "downloadSeconds": 0.000025513 + "uploadSeconds": 0.190081623, + "downloadSeconds": 0.000016961 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18858002, - "downloadSeconds": 0.000025404 + "uploadSeconds": 0.183954634, + "downloadSeconds": 0.000021747 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186972658, - "downloadSeconds": 0.000024657 + "uploadSeconds": 0.187800533, + "downloadSeconds": 0.000016526 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188982188, - "downloadSeconds": 0.000027395 + "uploadSeconds": 0.194375024, + "downloadSeconds": 0.000020647 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191543178, - "downloadSeconds": 0.000023934 + "uploadSeconds": 0.185626309, + "downloadSeconds": 0.000018187 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193977061, - "downloadSeconds": 0.000022836 + "uploadSeconds": 0.183967119, + "downloadSeconds": 0.000015378 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191907741, - "downloadSeconds": 0.000033653 + "uploadSeconds": 0.188981234, + "downloadSeconds": 0.000016356 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190081621, - "downloadSeconds": 0.000025243 + "uploadSeconds": 0.191034607, + "downloadSeconds": 0.000026368 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187260309, - "downloadSeconds": 0.000026162 + "uploadSeconds": 0.187801904, + "downloadSeconds": 0.000014983 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18507505, - "downloadSeconds": 0.000029837 + "uploadSeconds": 0.191242364, + "downloadSeconds": 0.00002859 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.175075255, - "downloadSeconds": 0.000023352 + "uploadSeconds": 0.181841544, + "downloadSeconds": 0.000023666 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189134819, - "downloadSeconds": 0.000025628 + "uploadSeconds": 0.182974342, + "downloadSeconds": 0.000020641 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188676944, - "downloadSeconds": 0.000024155 + "uploadSeconds": 0.191821115, + "downloadSeconds": 0.000018431 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185896518, - "downloadSeconds": 0.000021262 + "uploadSeconds": 0.184156948, + "downloadSeconds": 0.00002234 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186597685, - "downloadSeconds": 0.000025792 + "uploadSeconds": 0.191289271, + "downloadSeconds": 0.000019148 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.176832111, - "downloadSeconds": 0.000022594 + "uploadSeconds": 0.184407929, + "downloadSeconds": 0.000024548 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.17509324, - "downloadSeconds": 0.000024377 + "uploadSeconds": 0.185799153, + "downloadSeconds": 0.000028872 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189129547, - "downloadSeconds": 0.000025202 + "uploadSeconds": 0.183993881, + "downloadSeconds": 0.000027891 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185398974, - "downloadSeconds": 0.000022065 + "uploadSeconds": 0.179438681, + "downloadSeconds": 0.000021462 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187933492, - "downloadSeconds": 0.000023911 + "uploadSeconds": 0.191636042, + "downloadSeconds": 0.000019996 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189684911, - "downloadSeconds": 0.000023018 + "uploadSeconds": 0.178288188, + "downloadSeconds": 0.000024328 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191771551, - "downloadSeconds": 0.000022407 + "uploadSeconds": 0.18257587, + "downloadSeconds": 0.000031845 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186256005, - "downloadSeconds": 0.000027753 + "uploadSeconds": 0.192563712, + "downloadSeconds": 0.000023345 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.175575956, - "downloadSeconds": 0.000025303 + "uploadSeconds": 0.186481306, + "downloadSeconds": 0.000020744 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183450944, - "downloadSeconds": 0.000026464 + "uploadSeconds": 0.182478621, + "downloadSeconds": 0.000026664 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190320051, - "downloadSeconds": 0.000023076 + "uploadSeconds": 0.185973403, + "downloadSeconds": 0.000030388 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192783509, - "downloadSeconds": 0.000026041 + "uploadSeconds": 0.195619821, + "downloadSeconds": 0.000022561 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184762516, - "downloadSeconds": 0.000040371 + "uploadSeconds": 0.190640131, + "downloadSeconds": 0.000025218 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191807584, - "downloadSeconds": 0.000023094 + "uploadSeconds": 0.194154188, + "downloadSeconds": 0.00002682 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.181300724, - "downloadSeconds": 0.000023035 + "uploadSeconds": 0.175067998, + "downloadSeconds": 0.000027339 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.181617298, - "downloadSeconds": 0.000022889 + "uploadSeconds": 0.182302437, + "downloadSeconds": 0.00002018 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186888535, - "downloadSeconds": 0.000025779 + "uploadSeconds": 0.186602272, + "downloadSeconds": 0.000023225 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191734437, - "downloadSeconds": 0.000025407 + "uploadSeconds": 0.193258189, + "downloadSeconds": 0.000017303 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.1870718, - "downloadSeconds": 0.000025818 + "uploadSeconds": 0.187432573, + "downloadSeconds": 0.000017959 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190846856, - "downloadSeconds": 0.000023349 + "uploadSeconds": 0.186673202, + "downloadSeconds": 0.000017697 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188427418, - "downloadSeconds": 0.000026628 + "uploadSeconds": 0.1840051, + "downloadSeconds": 0.000026612 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.180998284, - "downloadSeconds": 0.000025526 + "uploadSeconds": 0.180351292, + "downloadSeconds": 0.000021126 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185872193, - "downloadSeconds": 0.000028614 + "uploadSeconds": 0.187515329, + "downloadSeconds": 0.000026493 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193576062, - "downloadSeconds": 0.000023458 + "uploadSeconds": 0.19165545, + "downloadSeconds": 0.000020239 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.194089134, - "downloadSeconds": 0.000021827 + "uploadSeconds": 0.1913683, + "downloadSeconds": 0.000026373 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.178674659, - "downloadSeconds": 0.000026203 + "uploadSeconds": 0.189143758, + "downloadSeconds": 0.000016708 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185130393, - "downloadSeconds": 0.000024973 + "uploadSeconds": 0.192845203, + "downloadSeconds": 0.000026 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.178811065, - "downloadSeconds": 0.000023368 + "uploadSeconds": 0.187126564, + "downloadSeconds": 0.000021633 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187995598, - "downloadSeconds": 0.00002634 + "uploadSeconds": 0.180921, + "downloadSeconds": 0.000025552 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.195339953, - "downloadSeconds": 0.000020748 + "uploadSeconds": 0.193008942, + "downloadSeconds": 0.000016859 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186196457, - "downloadSeconds": 0.000036929 + "uploadSeconds": 0.190203365, + "downloadSeconds": 0.000020266 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188973136, - "downloadSeconds": 0.000024914 + "uploadSeconds": 0.182482709, + "downloadSeconds": 0.000020732 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192528886, - "downloadSeconds": 0.000025572 + "uploadSeconds": 0.190294803, + "downloadSeconds": 0.000016914 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193148886, - "downloadSeconds": 0.000027763 + "uploadSeconds": 0.182667268, + "downloadSeconds": 0.000027923 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193900042, - "downloadSeconds": 0.000021874 + "uploadSeconds": 0.191917692, + "downloadSeconds": 0.000025807 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.195939328, - "downloadSeconds": 0.000026014 + "uploadSeconds": 0.190478427, + "downloadSeconds": 0.000020197 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191246907, - "downloadSeconds": 0.000026981 + "uploadSeconds": 0.185475785, + "downloadSeconds": 0.000022971 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18417502, - "downloadSeconds": 0.000026181 + "uploadSeconds": 0.188164921, + "downloadSeconds": 0.000020304 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191423524, - "downloadSeconds": 0.000021579 + "uploadSeconds": 0.186614057, + "downloadSeconds": 0.000025448 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183943936, - "downloadSeconds": 0.000022064 + "uploadSeconds": 0.179410965, + "downloadSeconds": 0.000020335 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182280169, - "downloadSeconds": 0.000024752 + "uploadSeconds": 0.17681052, + "downloadSeconds": 0.000019569 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184413819, - "downloadSeconds": 0.000024742 + "uploadSeconds": 0.189011903, + "downloadSeconds": 0.000020669 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191802659, - "downloadSeconds": 0.000023783 + "uploadSeconds": 0.181773739, + "downloadSeconds": 0.000026211 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192117827, - "downloadSeconds": 0.000024709 + "uploadSeconds": 0.188491206, + "downloadSeconds": 0.000019699 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18619131, - "downloadSeconds": 0.000024901 + "uploadSeconds": 0.183390411, + "downloadSeconds": 0.000018848 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187654897, - "downloadSeconds": 0.000032967 + "uploadSeconds": 0.185615334, + "downloadSeconds": 0.000021242 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187674364, - "downloadSeconds": 0.000025345 + "uploadSeconds": 0.192796663, + "downloadSeconds": 0.0000267 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187036773, - "downloadSeconds": 0.000024928 + "uploadSeconds": 0.191523937, + "downloadSeconds": 0.000019043 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18494965, - "downloadSeconds": 0.000027452 + "uploadSeconds": 0.188481766, + "downloadSeconds": 0.00002015 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.180378838, - "downloadSeconds": 0.000023578 + "uploadSeconds": 0.182858133, + "downloadSeconds": 0.000020072 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187225719, - "downloadSeconds": 0.000022053 + "uploadSeconds": 0.189826548, + "downloadSeconds": 0.000019722 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191425341, - "downloadSeconds": 0.000024108 + "uploadSeconds": 0.191102888, + "downloadSeconds": 0.000019171 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184853694, - "downloadSeconds": 0.000028837 + "uploadSeconds": 0.18590116, + "downloadSeconds": 0.000021372 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.181655026, - "downloadSeconds": 0.000025577 + "uploadSeconds": 0.182045717, + "downloadSeconds": 0.00002833 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192752062, - "downloadSeconds": 0.000027913 + "uploadSeconds": 0.192834462, + "downloadSeconds": 0.000019869 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.19259968, - "downloadSeconds": 0.00002855 + "uploadSeconds": 0.188932071, + "downloadSeconds": 0.000016028 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188552023, - "downloadSeconds": 0.000024955 + "uploadSeconds": 0.185099844, + "downloadSeconds": 0.000015168 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183730429, - "downloadSeconds": 0.000023694 + "uploadSeconds": 0.187062817, + "downloadSeconds": 0.000020813 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.177422708, - "downloadSeconds": 0.000022784 + "uploadSeconds": 0.192939134, + "downloadSeconds": 0.000029159 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187951807, - "downloadSeconds": 0.000024424 + "uploadSeconds": 0.183802921, + "downloadSeconds": 0.000015881 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185678393, - "downloadSeconds": 0.000024968 + "uploadSeconds": 0.184443925, + "downloadSeconds": 0.000020116 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191673411, - "downloadSeconds": 0.000023488 + "uploadSeconds": 0.185712804, + "downloadSeconds": 0.000018765 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.181048061, - "downloadSeconds": 0.000020906 + "uploadSeconds": 0.188233273, + "downloadSeconds": 0.000020631 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185683204, - "downloadSeconds": 0.000023901 + "uploadSeconds": 0.185631526, + "downloadSeconds": 0.000028845 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182405216, - "downloadSeconds": 0.00002517 + "uploadSeconds": 0.192848887, + "downloadSeconds": 0.000021973 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193882525, - "downloadSeconds": 0.000025305 + "uploadSeconds": 0.191156271, + "downloadSeconds": 0.000020326 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190209202, - "downloadSeconds": 0.000031225 + "uploadSeconds": 0.184871291, + "downloadSeconds": 0.000020244 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185653646, - "downloadSeconds": 0.000025465 + "uploadSeconds": 0.185582832, + "downloadSeconds": 0.000019709 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191666166, - "downloadSeconds": 0.000025486 + "uploadSeconds": 0.187915718, + "downloadSeconds": 0.000017824 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18358427, - "downloadSeconds": 0.000026064 + "uploadSeconds": 0.187682742, + "downloadSeconds": 0.00001679 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189650703, - "downloadSeconds": 0.000024602 + "uploadSeconds": 0.182566196, + "downloadSeconds": 0.000025467 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186723161, - "downloadSeconds": 0.000026009 + "uploadSeconds": 0.183468819, + "downloadSeconds": 0.000020719 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184713584, - "downloadSeconds": 0.000025332 + "uploadSeconds": 0.192901692, + "downloadSeconds": 0.000020941 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192077544, - "downloadSeconds": 0.00002107 + "uploadSeconds": 0.191062949, + "downloadSeconds": 0.000026448 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189386708, - "downloadSeconds": 0.000039476 + "uploadSeconds": 0.184961912, + "downloadSeconds": 0.000020404 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.19138384, - "downloadSeconds": 0.000024091 + "uploadSeconds": 0.190932014, + "downloadSeconds": 0.000025117 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183304304, - "downloadSeconds": 0.000025534 + "uploadSeconds": 0.183801006, + "downloadSeconds": 0.000028242 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190941356, - "downloadSeconds": 0.000023583 + "uploadSeconds": 0.183451578, + "downloadSeconds": 0.000019198 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186071754, - "downloadSeconds": 0.000026885 + "uploadSeconds": 0.188130309, + "downloadSeconds": 0.000023245 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186465452, - "downloadSeconds": 0.000024554 + "uploadSeconds": 0.174860664, + "downloadSeconds": 0.000019883 } ], "implementation": "https", @@ -3010,504 +3010,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.189865033, - "uploadSeconds": 0.000003755, - "downloadSeconds": 0.063326819 + "connectionEstablishedSeconds": 0.18602892, + "uploadSeconds": 0.000004153, + "downloadSeconds": 0.061598606 }, { - "connectionEstablishedSeconds": 0.190167163, - "uploadSeconds": 0.000003405, - "downloadSeconds": 0.06291947 + "connectionEstablishedSeconds": 0.18622377, + "uploadSeconds": 0.000002971, + "downloadSeconds": 0.061746741 }, { - "connectionEstablishedSeconds": 0.19127148, - "uploadSeconds": 0.000003459, - "downloadSeconds": 0.063311819 + "connectionEstablishedSeconds": 0.180874368, + "uploadSeconds": 0.000002872, + "downloadSeconds": 0.059406891 }, { - "connectionEstablishedSeconds": 0.191882774, - "uploadSeconds": 0.00000357, - "downloadSeconds": 0.063451717 + "connectionEstablishedSeconds": 0.189937988, + "uploadSeconds": 0.000003087, + "downloadSeconds": 0.063066518 }, { - "connectionEstablishedSeconds": 0.191717471, - "uploadSeconds": 0.000003752, - "downloadSeconds": 0.063499436 + "connectionEstablishedSeconds": 0.183944746, + "uploadSeconds": 0.000003107, + "downloadSeconds": 0.061057143 }, { - "connectionEstablishedSeconds": 0.178632645, - "uploadSeconds": 0.000003283, - "downloadSeconds": 0.059170141 + "connectionEstablishedSeconds": 0.191397161, + "uploadSeconds": 0.000003218, + "downloadSeconds": 0.063651111 }, { - "connectionEstablishedSeconds": 0.186360132, - "uploadSeconds": 0.000003649, - "downloadSeconds": 0.061683229 + "connectionEstablishedSeconds": 0.193077722, + "uploadSeconds": 0.000010163, + "downloadSeconds": 0.06344105 }, { - "connectionEstablishedSeconds": 0.18410758, - "uploadSeconds": 0.000003259, - "downloadSeconds": 0.060973875 + "connectionEstablishedSeconds": 0.176729639, + "uploadSeconds": 0.000003926, + "downloadSeconds": 0.058682831 }, { - "connectionEstablishedSeconds": 0.188355392, - "uploadSeconds": 0.000003324, - "downloadSeconds": 0.062420337 + "connectionEstablishedSeconds": 0.180268536, + "uploadSeconds": 0.00000309, + "downloadSeconds": 0.059922445 }, { - "connectionEstablishedSeconds": 0.192853788, - "uploadSeconds": 0.000004574, - "downloadSeconds": 0.063856996 + "connectionEstablishedSeconds": 0.183408802, + "uploadSeconds": 0.000002701, + "downloadSeconds": 0.060995294 }, { - "connectionEstablishedSeconds": 0.19061551, - "uploadSeconds": 0.00000336, - "downloadSeconds": 0.063080255 + "connectionEstablishedSeconds": 0.189877011, + "uploadSeconds": 0.000002622, + "downloadSeconds": 0.063075599 }, { - "connectionEstablishedSeconds": 0.194515365, - "uploadSeconds": 0.000003426, - "downloadSeconds": 0.063687147 + "connectionEstablishedSeconds": 0.191549892, + "uploadSeconds": 0.000002678, + "downloadSeconds": 0.063583603 }, { - "connectionEstablishedSeconds": 0.192444206, - "uploadSeconds": 0.000003363, - "downloadSeconds": 0.063767405 + "connectionEstablishedSeconds": 0.189363009, + "uploadSeconds": 0.000002668, + "downloadSeconds": 0.062810223 }, { - "connectionEstablishedSeconds": 0.185178857, - "uploadSeconds": 0.000003962, - "downloadSeconds": 0.061233797 + "connectionEstablishedSeconds": 0.189410448, + "uploadSeconds": 0.000002537, + "downloadSeconds": 0.0627811 }, { - "connectionEstablishedSeconds": 0.189486458, - "uploadSeconds": 0.000003111, - "downloadSeconds": 0.062118443 + "connectionEstablishedSeconds": 0.194343699, + "uploadSeconds": 0.000002781, + "downloadSeconds": 0.064447304 }, { - "connectionEstablishedSeconds": 0.196167145, - "uploadSeconds": 0.000003706, - "downloadSeconds": 0.064887836 + "connectionEstablishedSeconds": 0.191340441, + "uploadSeconds": 0.000003159, + "downloadSeconds": 0.063011311 }, { - "connectionEstablishedSeconds": 0.192284557, - "uploadSeconds": 0.000003459, - "downloadSeconds": 0.063691101 + "connectionEstablishedSeconds": 0.189077277, + "uploadSeconds": 0.00000282, + "downloadSeconds": 0.062820491 }, { - "connectionEstablishedSeconds": 0.188827342, - "uploadSeconds": 0.000003991, - "downloadSeconds": 0.061963325 + "connectionEstablishedSeconds": 0.185293584, + "uploadSeconds": 0.000003171, + "downloadSeconds": 0.061489593 }, { - "connectionEstablishedSeconds": 0.185525831, - "uploadSeconds": 0.000006237, - "downloadSeconds": 0.061254952 + "connectionEstablishedSeconds": 0.190616996, + "uploadSeconds": 0.000002932, + "downloadSeconds": 0.063121604 }, { - "connectionEstablishedSeconds": 0.193967423, - "uploadSeconds": 0.000003491, - "downloadSeconds": 0.064179438 + "connectionEstablishedSeconds": 0.18796317, + "uploadSeconds": 0.000028401, + "downloadSeconds": 0.062464299 }, { - "connectionEstablishedSeconds": 0.187580283, - "uploadSeconds": 0.000003175, - "downloadSeconds": 0.06221106 + "connectionEstablishedSeconds": 0.183496365, + "uploadSeconds": 0.000002836, + "downloadSeconds": 0.060826735 }, { - "connectionEstablishedSeconds": 0.185444221, - "uploadSeconds": 0.000003223, - "downloadSeconds": 0.061453914 + "connectionEstablishedSeconds": 0.187426188, + "uploadSeconds": 0.000003099, + "downloadSeconds": 0.061851308 }, { - "connectionEstablishedSeconds": 0.191583765, - "uploadSeconds": 0.0000033, - "downloadSeconds": 0.063420643 + "connectionEstablishedSeconds": 0.185069502, + "uploadSeconds": 0.000004125, + "downloadSeconds": 0.060757529 }, { - "connectionEstablishedSeconds": 0.188379636, - "uploadSeconds": 0.000030857, - "downloadSeconds": 0.062499979 + "connectionEstablishedSeconds": 0.19652728, + "uploadSeconds": 0.000002902, + "downloadSeconds": 0.064634486 }, { - "connectionEstablishedSeconds": 0.195192589, - "uploadSeconds": 0.000003374, - "downloadSeconds": 0.064022674 + "connectionEstablishedSeconds": 0.193530441, + "uploadSeconds": 0.000002858, + "downloadSeconds": 0.064251579 }, { - "connectionEstablishedSeconds": 0.186875039, - "uploadSeconds": 0.000005618, - "downloadSeconds": 0.061720819 + "connectionEstablishedSeconds": 0.191211869, + "uploadSeconds": 0.000007171, + "downloadSeconds": 0.063487568 }, { - "connectionEstablishedSeconds": 0.192027134, - "uploadSeconds": 0.000003157, - "downloadSeconds": 0.063552229 + "connectionEstablishedSeconds": 0.185865536, + "uploadSeconds": 0.000003343, + "downloadSeconds": 0.061733755 }, { - "connectionEstablishedSeconds": 0.186630503, - "uploadSeconds": 0.000004785, - "downloadSeconds": 0.061890439 + "connectionEstablishedSeconds": 0.19268154, + "uploadSeconds": 0.00003022, + "downloadSeconds": 0.063942595 }, { - "connectionEstablishedSeconds": 0.182287487, - "uploadSeconds": 0.00000373, - "downloadSeconds": 0.060437908 + "connectionEstablishedSeconds": 0.191815197, + "uploadSeconds": 0.000002643, + "downloadSeconds": 0.063617172 }, { - "connectionEstablishedSeconds": 0.190073749, - "uploadSeconds": 0.000003001, - "downloadSeconds": 0.062892605 + "connectionEstablishedSeconds": 0.193099282, + "uploadSeconds": 0.000004542, + "downloadSeconds": 0.064115167 }, { - "connectionEstablishedSeconds": 0.187970588, - "uploadSeconds": 0.000004204, - "downloadSeconds": 0.062110529 + "connectionEstablishedSeconds": 0.183398419, + "uploadSeconds": 0.000002698, + "downloadSeconds": 0.060392741 }, { - "connectionEstablishedSeconds": 0.185083699, - "uploadSeconds": 0.00000318, - "downloadSeconds": 0.061196717 + "connectionEstablishedSeconds": 0.18804384, + "uploadSeconds": 0.000002982, + "downloadSeconds": 0.06208455 }, { - "connectionEstablishedSeconds": 0.184069718, - "uploadSeconds": 0.000004065, - "downloadSeconds": 0.060306442 + "connectionEstablishedSeconds": 0.192333002, + "uploadSeconds": 0.000002939, + "downloadSeconds": 0.064010462 }, { - "connectionEstablishedSeconds": 0.185998883, - "uploadSeconds": 0.00000313, - "downloadSeconds": 0.061513072 + "connectionEstablishedSeconds": 0.175926483, + "uploadSeconds": 0.000002943, + "downloadSeconds": 0.058416668 }, { - "connectionEstablishedSeconds": 0.192536728, - "uploadSeconds": 0.000003128, - "downloadSeconds": 0.063119368 + "connectionEstablishedSeconds": 0.191761195, + "uploadSeconds": 0.000003728, + "downloadSeconds": 0.06370819 }, { - "connectionEstablishedSeconds": 0.185464008, - "uploadSeconds": 0.000004191, - "downloadSeconds": 0.060725965 + "connectionEstablishedSeconds": 0.181451881, + "uploadSeconds": 0.00002481, + "downloadSeconds": 0.060171605 }, { - "connectionEstablishedSeconds": 0.180226658, - "uploadSeconds": 0.000003442, - "downloadSeconds": 0.059633921 + "connectionEstablishedSeconds": 0.178859394, + "uploadSeconds": 0.000002631, + "downloadSeconds": 0.058906285 }, { - "connectionEstablishedSeconds": 0.194965481, - "uploadSeconds": 0.000005938, - "downloadSeconds": 0.064359458 + "connectionEstablishedSeconds": 0.193071463, + "uploadSeconds": 0.000003168, + "downloadSeconds": 0.063933478 }, { - "connectionEstablishedSeconds": 0.182439182, - "uploadSeconds": 0.000003614, - "downloadSeconds": 0.060362038 + "connectionEstablishedSeconds": 0.1942518, + "uploadSeconds": 0.000003341, + "downloadSeconds": 0.063785473 }, { - "connectionEstablishedSeconds": 0.192508667, - "uploadSeconds": 0.000003412, - "downloadSeconds": 0.063704292 + "connectionEstablishedSeconds": 0.194198855, + "uploadSeconds": 0.000004423, + "downloadSeconds": 0.064326692 }, { - "connectionEstablishedSeconds": 0.186931537, - "uploadSeconds": 0.000003467, - "downloadSeconds": 0.061294501 + "connectionEstablishedSeconds": 0.189108971, + "uploadSeconds": 0.000002624, + "downloadSeconds": 0.06246116 }, { - "connectionEstablishedSeconds": 0.191518338, - "uploadSeconds": 0.000004447, - "downloadSeconds": 0.062653135 + "connectionEstablishedSeconds": 0.193802364, + "uploadSeconds": 0.000002596, + "downloadSeconds": 0.064371357 }, { - "connectionEstablishedSeconds": 0.19192684, - "uploadSeconds": 0.000003705, - "downloadSeconds": 0.062893242 + "connectionEstablishedSeconds": 0.181799416, + "uploadSeconds": 0.000003264, + "downloadSeconds": 0.060315279 }, { - "connectionEstablishedSeconds": 0.185394753, - "uploadSeconds": 0.000004483, - "downloadSeconds": 0.061331984 + "connectionEstablishedSeconds": 0.182736265, + "uploadSeconds": 0.000002612, + "downloadSeconds": 0.060715025 }, { - "connectionEstablishedSeconds": 0.185708486, - "uploadSeconds": 0.000003951, - "downloadSeconds": 0.0607885 + "connectionEstablishedSeconds": 0.189285828, + "uploadSeconds": 0.000003092, + "downloadSeconds": 0.062144327 }, { - "connectionEstablishedSeconds": 0.183875796, - "uploadSeconds": 0.0000047, - "downloadSeconds": 0.060791407 + "connectionEstablishedSeconds": 0.186374639, + "uploadSeconds": 0.000004295, + "downloadSeconds": 0.06175066 }, { - "connectionEstablishedSeconds": 0.192025954, - "uploadSeconds": 0.000006376, - "downloadSeconds": 0.063456396 + "connectionEstablishedSeconds": 0.179232586, + "uploadSeconds": 0.000002349, + "downloadSeconds": 0.05948277 }, { - "connectionEstablishedSeconds": 0.196378458, - "uploadSeconds": 0.000003546, - "downloadSeconds": 0.065019283 + "connectionEstablishedSeconds": 0.194845175, + "uploadSeconds": 0.000003513, + "downloadSeconds": 0.064459094 }, { - "connectionEstablishedSeconds": 0.181342825, - "uploadSeconds": 0.00000346, - "downloadSeconds": 0.059890191 + "connectionEstablishedSeconds": 0.187319215, + "uploadSeconds": 0.000002968, + "downloadSeconds": 0.061596038 }, { - "connectionEstablishedSeconds": 0.182238767, - "uploadSeconds": 0.000017619, - "downloadSeconds": 0.060241578 + "connectionEstablishedSeconds": 0.193249349, + "uploadSeconds": 0.000002877, + "downloadSeconds": 0.064236436 }, { - "connectionEstablishedSeconds": 0.185472707, - "uploadSeconds": 0.000010933, - "downloadSeconds": 0.060708375 + "connectionEstablishedSeconds": 0.187806069, + "uploadSeconds": 0.000002935, + "downloadSeconds": 0.0616018 }, { - "connectionEstablishedSeconds": 0.188838896, - "uploadSeconds": 0.000003734, - "downloadSeconds": 0.061928968 + "connectionEstablishedSeconds": 0.192541009, + "uploadSeconds": 0.000002834, + "downloadSeconds": 0.063193006 }, { - "connectionEstablishedSeconds": 0.185193048, - "uploadSeconds": 0.000003366, - "downloadSeconds": 0.061215954 + "connectionEstablishedSeconds": 0.189595011, + "uploadSeconds": 0.000003026, + "downloadSeconds": 0.062836532 }, { - "connectionEstablishedSeconds": 0.187592679, - "uploadSeconds": 0.000004438, - "downloadSeconds": 0.061473994 + "connectionEstablishedSeconds": 0.193320048, + "uploadSeconds": 0.000002983, + "downloadSeconds": 0.063484618 }, { - "connectionEstablishedSeconds": 0.193636801, - "uploadSeconds": 0.000004524, - "downloadSeconds": 0.064099879 + "connectionEstablishedSeconds": 0.184752238, + "uploadSeconds": 0.000003379, + "downloadSeconds": 0.060715129 }, { - "connectionEstablishedSeconds": 0.184201271, - "uploadSeconds": 0.000003432, - "downloadSeconds": 0.060985428 + "connectionEstablishedSeconds": 0.189715106, + "uploadSeconds": 0.00000287, + "downloadSeconds": 0.062886227 }, { - "connectionEstablishedSeconds": 0.194326728, - "uploadSeconds": 0.000003155, - "downloadSeconds": 0.064259504 + "connectionEstablishedSeconds": 0.180912878, + "uploadSeconds": 0.000003124, + "downloadSeconds": 0.060038683 }, { - "connectionEstablishedSeconds": 0.194445779, - "uploadSeconds": 0.000004119, - "downloadSeconds": 0.064261936 + "connectionEstablishedSeconds": 0.195103774, + "uploadSeconds": 0.000006881, + "downloadSeconds": 0.064766213 }, { - "connectionEstablishedSeconds": 0.185737118, - "uploadSeconds": 0.00000329, - "downloadSeconds": 0.060933254 + "connectionEstablishedSeconds": 0.188295162, + "uploadSeconds": 0.000002852, + "downloadSeconds": 0.062561186 }, { - "connectionEstablishedSeconds": 0.191702829, - "uploadSeconds": 0.000003619, - "downloadSeconds": 0.06283655 + "connectionEstablishedSeconds": 0.186669891, + "uploadSeconds": 0.000003293, + "downloadSeconds": 0.061921396 }, { - "connectionEstablishedSeconds": 0.193856428, - "uploadSeconds": 0.000003181, - "downloadSeconds": 0.064125639 + "connectionEstablishedSeconds": 0.194390849, + "uploadSeconds": 0.00000309, + "downloadSeconds": 0.064499179 }, { - "connectionEstablishedSeconds": 0.197002058, - "uploadSeconds": 0.000003796, - "downloadSeconds": 0.065150551 + "connectionEstablishedSeconds": 0.192080383, + "uploadSeconds": 0.000002742, + "downloadSeconds": 0.063824539 }, { - "connectionEstablishedSeconds": 0.188234771, - "uploadSeconds": 0.000002842, - "downloadSeconds": 0.062380961 + "connectionEstablishedSeconds": 0.180107459, + "uploadSeconds": 0.000002878, + "downloadSeconds": 0.059085625 }, { - "connectionEstablishedSeconds": 0.189238149, - "uploadSeconds": 0.000002815, - "downloadSeconds": 0.062670946 + "connectionEstablishedSeconds": 0.189457917, + "uploadSeconds": 0.000003601, + "downloadSeconds": 0.062800628 }, { - "connectionEstablishedSeconds": 0.190280679, - "uploadSeconds": 0.000003373, - "downloadSeconds": 0.063065695 + "connectionEstablishedSeconds": 0.192219109, + "uploadSeconds": 0.000002654, + "downloadSeconds": 0.063200532 }, { - "connectionEstablishedSeconds": 0.186700069, - "uploadSeconds": 0.000003589, - "downloadSeconds": 0.061838272 + "connectionEstablishedSeconds": 0.186066078, + "uploadSeconds": 0.000003006, + "downloadSeconds": 0.061782842 }, { - "connectionEstablishedSeconds": 0.188825445, - "uploadSeconds": 0.000026162, - "downloadSeconds": 0.062522361 + "connectionEstablishedSeconds": 0.178292261, + "uploadSeconds": 0.000002578, + "downloadSeconds": 0.059281861 }, { - "connectionEstablishedSeconds": 0.184322559, - "uploadSeconds": 0.000003948, - "downloadSeconds": 0.060868078 + "connectionEstablishedSeconds": 0.188360264, + "uploadSeconds": 0.000002794, + "downloadSeconds": 0.061971787 }, { - "connectionEstablishedSeconds": 0.183973916, - "uploadSeconds": 0.000010764, - "downloadSeconds": 0.060144183 + "connectionEstablishedSeconds": 0.18682045, + "uploadSeconds": 0.000002777, + "downloadSeconds": 0.062144381 }, { - "connectionEstablishedSeconds": 0.193049526, - "uploadSeconds": 0.000003917, - "downloadSeconds": 0.063845259 + "connectionEstablishedSeconds": 0.185328415, + "uploadSeconds": 0.000005876, + "downloadSeconds": 0.061429379 }, { - "connectionEstablishedSeconds": 0.191696109, - "uploadSeconds": 0.000003516, - "downloadSeconds": 0.063412521 + "connectionEstablishedSeconds": 0.19448819, + "uploadSeconds": 0.000003334, + "downloadSeconds": 0.064559337 }, { - "connectionEstablishedSeconds": 0.186839716, - "uploadSeconds": 0.000003305, - "downloadSeconds": 0.061833216 + "connectionEstablishedSeconds": 0.190425544, + "uploadSeconds": 0.000002646, + "downloadSeconds": 0.063204937 }, { - "connectionEstablishedSeconds": 0.191809822, - "uploadSeconds": 0.000003792, - "downloadSeconds": 0.063403856 + "connectionEstablishedSeconds": 0.183260307, + "uploadSeconds": 0.000003162, + "downloadSeconds": 0.060799798 }, { - "connectionEstablishedSeconds": 0.194129095, - "uploadSeconds": 0.00001352, - "downloadSeconds": 0.06352246 + "connectionEstablishedSeconds": 0.189616162, + "uploadSeconds": 0.000002976, + "downloadSeconds": 0.063054707 }, { - "connectionEstablishedSeconds": 0.181180001, - "uploadSeconds": 0.000004572, - "downloadSeconds": 0.059934202 + "connectionEstablishedSeconds": 0.190281849, + "uploadSeconds": 0.00000269, + "downloadSeconds": 0.062777191 }, { - "connectionEstablishedSeconds": 0.180661281, - "uploadSeconds": 0.000003547, - "downloadSeconds": 0.059755159 + "connectionEstablishedSeconds": 0.191438437, + "uploadSeconds": 0.000002825, + "downloadSeconds": 0.06314234 }, { - "connectionEstablishedSeconds": 0.190152936, - "uploadSeconds": 0.000003181, - "downloadSeconds": 0.063054685 + "connectionEstablishedSeconds": 0.187431847, + "uploadSeconds": 0.000002973, + "downloadSeconds": 0.062198146 }, { - "connectionEstablishedSeconds": 0.186944328, - "uploadSeconds": 0.000003496, - "downloadSeconds": 0.061904523 + "connectionEstablishedSeconds": 0.186301056, + "uploadSeconds": 0.000002732, + "downloadSeconds": 0.061755747 }, { - "connectionEstablishedSeconds": 0.190184668, - "uploadSeconds": 0.000003288, - "downloadSeconds": 0.062883361 + "connectionEstablishedSeconds": 0.189180848, + "uploadSeconds": 0.000002752, + "downloadSeconds": 0.062239647 }, { - "connectionEstablishedSeconds": 0.187276895, - "uploadSeconds": 0.000003031, - "downloadSeconds": 0.061909398 + "connectionEstablishedSeconds": 0.188264334, + "uploadSeconds": 0.000004076, + "downloadSeconds": 0.062427204 }, { - "connectionEstablishedSeconds": 0.196410805, - "uploadSeconds": 0.000003343, - "downloadSeconds": 0.064392076 + "connectionEstablishedSeconds": 0.190132447, + "uploadSeconds": 0.000006117, + "downloadSeconds": 0.063118215 }, { - "connectionEstablishedSeconds": 0.186942448, - "uploadSeconds": 0.000003256, - "downloadSeconds": 0.061798213 + "connectionEstablishedSeconds": 0.191642674, + "uploadSeconds": 0.000002791, + "downloadSeconds": 0.063286427 }, { - "connectionEstablishedSeconds": 0.195507958, - "uploadSeconds": 0.000004205, - "downloadSeconds": 0.06431094 + "connectionEstablishedSeconds": 0.185004565, + "uploadSeconds": 0.000003147, + "downloadSeconds": 0.061410454 }, { - "connectionEstablishedSeconds": 0.188729854, - "uploadSeconds": 0.000003247, - "downloadSeconds": 0.062861007 + "connectionEstablishedSeconds": 0.18653667, + "uploadSeconds": 0.000003, + "downloadSeconds": 0.061905721 }, { - "connectionEstablishedSeconds": 0.176308767, - "uploadSeconds": 0.000003269, - "downloadSeconds": 0.058376847 + "connectionEstablishedSeconds": 0.18829221, + "uploadSeconds": 0.000003633, + "downloadSeconds": 0.06249163 }, { - "connectionEstablishedSeconds": 0.185853802, - "uploadSeconds": 0.000034454, - "downloadSeconds": 0.060993945 + "connectionEstablishedSeconds": 0.192070229, + "uploadSeconds": 0.0000035, + "downloadSeconds": 0.063153651 }, { - "connectionEstablishedSeconds": 0.195486075, - "uploadSeconds": 0.000003437, - "downloadSeconds": 0.064021667 + "connectionEstablishedSeconds": 0.189367979, + "uploadSeconds": 0.000024474, + "downloadSeconds": 0.062773943 }, { - "connectionEstablishedSeconds": 0.189181712, - "uploadSeconds": 0.000003585, - "downloadSeconds": 0.062231455 + "connectionEstablishedSeconds": 0.19480962, + "uploadSeconds": 0.000002935, + "downloadSeconds": 0.064351059 }, { - "connectionEstablishedSeconds": 0.189533428, - "uploadSeconds": 0.000003974, - "downloadSeconds": 0.061964976 + "connectionEstablishedSeconds": 0.189541776, + "uploadSeconds": 0.000003037, + "downloadSeconds": 0.062908756 }, { - "connectionEstablishedSeconds": 0.196418242, - "uploadSeconds": 0.000004446, - "downloadSeconds": 0.064289062 + "connectionEstablishedSeconds": 0.189487089, + "uploadSeconds": 0.000002895, + "downloadSeconds": 0.062128969 }, { - "connectionEstablishedSeconds": 0.185007671, - "uploadSeconds": 0.000003875, - "downloadSeconds": 0.061191973 + "connectionEstablishedSeconds": 0.192466591, + "uploadSeconds": 0.000003053, + "downloadSeconds": 0.063825799 }, { - "connectionEstablishedSeconds": 0.194761992, - "uploadSeconds": 0.000003472, - "downloadSeconds": 0.064167683 + "connectionEstablishedSeconds": 0.188874236, + "uploadSeconds": 0.000002628, + "downloadSeconds": 0.062710413 }, { - "connectionEstablishedSeconds": 0.189410553, - "uploadSeconds": 0.000003401, - "downloadSeconds": 0.062670457 + "connectionEstablishedSeconds": 0.187796689, + "uploadSeconds": 0.000002747, + "downloadSeconds": 0.062401155 }, { - "connectionEstablishedSeconds": 0.184269226, - "uploadSeconds": 0.000003269, - "downloadSeconds": 0.061020116 + "connectionEstablishedSeconds": 0.182240887, + "uploadSeconds": 0.000003969, + "downloadSeconds": 0.0605472 }, { - "connectionEstablishedSeconds": 0.191795192, - "uploadSeconds": 0.000003046, - "downloadSeconds": 0.063424398 + "connectionEstablishedSeconds": 0.195602403, + "uploadSeconds": 0.000002474, + "downloadSeconds": 0.064809993 }, { - "connectionEstablishedSeconds": 0.187122482, - "uploadSeconds": 0.000003171, - "downloadSeconds": 0.061827626 + "connectionEstablishedSeconds": 0.191483299, + "uploadSeconds": 0.000003185, + "downloadSeconds": 0.063687853 }, { - "connectionEstablishedSeconds": 0.187808498, - "uploadSeconds": 0.000004047, - "downloadSeconds": 0.061480245 + "connectionEstablishedSeconds": 0.191243095, + "uploadSeconds": 0.000002505, + "downloadSeconds": 0.063051395 }, { - "connectionEstablishedSeconds": 0.189174617, - "uploadSeconds": 0.000003394, - "downloadSeconds": 0.062532492 + "connectionEstablishedSeconds": 0.195143817, + "uploadSeconds": 0.000002992, + "downloadSeconds": 0.064749351 }, { - "connectionEstablishedSeconds": 0.189730447, - "uploadSeconds": 0.000003184, - "downloadSeconds": 0.062915557 + "connectionEstablishedSeconds": 0.190142246, + "uploadSeconds": 0.000003076, + "downloadSeconds": 0.063023023 }, { - "connectionEstablishedSeconds": 0.194496172, - "uploadSeconds": 0.00000356, - "downloadSeconds": 0.064392806 + "connectionEstablishedSeconds": 0.17722092, + "uploadSeconds": 0.000003115, + "downloadSeconds": 0.058777706 } ], "implementation": "go-libp2p", @@ -3517,504 +3517,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.066922628, - "uploadSeconds": 0.000005352, - "downloadSeconds": 0.063030899 + "connectionEstablishedSeconds": 0.068412685, + "uploadSeconds": 0.000002516, + "downloadSeconds": 0.064797708 }, { - "connectionEstablishedSeconds": 0.06707135, - "uploadSeconds": 0.000002129, - "downloadSeconds": 0.063328551 + "connectionEstablishedSeconds": 0.064324706, + "uploadSeconds": 0.000002912, + "downloadSeconds": 0.060200812 }, { - "connectionEstablishedSeconds": 0.067132787, - "uploadSeconds": 0.000001963, - "downloadSeconds": 0.063505627 + "connectionEstablishedSeconds": 0.066280511, + "uploadSeconds": 0.000001526, + "downloadSeconds": 0.063452133 }, { - "connectionEstablishedSeconds": 0.065440265, - "uploadSeconds": 0.000009053, - "downloadSeconds": 0.06154525 + "connectionEstablishedSeconds": 0.065776631, + "uploadSeconds": 0.000001859, + "downloadSeconds": 0.063089423 }, { - "connectionEstablishedSeconds": 0.06621482, - "uploadSeconds": 0.000002119, - "downloadSeconds": 0.062139616 + "connectionEstablishedSeconds": 0.065141632, + "uploadSeconds": 0.00003544, + "downloadSeconds": 0.061711953 }, { - "connectionEstablishedSeconds": 0.065910382, - "uploadSeconds": 0.000012239, - "downloadSeconds": 0.062562526 + "connectionEstablishedSeconds": 0.064474186, + "uploadSeconds": 0.000001578, + "downloadSeconds": 0.061216672 }, { - "connectionEstablishedSeconds": 0.065909146, - "uploadSeconds": 0.000002035, - "downloadSeconds": 0.0621534 + "connectionEstablishedSeconds": 0.066782238, + "uploadSeconds": 0.000001357, + "downloadSeconds": 0.064079803 }, { - "connectionEstablishedSeconds": 0.06801384, - "uploadSeconds": 0.000002923, - "downloadSeconds": 0.064059605 + "connectionEstablishedSeconds": 0.06398536, + "uploadSeconds": 0.00000288, + "downloadSeconds": 0.061139583 }, { - "connectionEstablishedSeconds": 0.067818056, - "uploadSeconds": 0.000002197, - "downloadSeconds": 0.064130496 + "connectionEstablishedSeconds": 0.068067069, + "uploadSeconds": 0.000002156, + "downloadSeconds": 0.064472434 }, { - "connectionEstablishedSeconds": 0.06785023, - "uploadSeconds": 0.000002279, - "downloadSeconds": 0.063949204 + "connectionEstablishedSeconds": 0.06708389, + "uploadSeconds": 0.000001722, + "downloadSeconds": 0.065264478 }, { - "connectionEstablishedSeconds": 0.064979961, - "uploadSeconds": 0.000002137, - "downloadSeconds": 0.06111793 + "connectionEstablishedSeconds": 0.067883008, + "uploadSeconds": 0.000002294, + "downloadSeconds": 0.064007176 }, { - "connectionEstablishedSeconds": 0.063004329, - "uploadSeconds": 0.000002053, - "downloadSeconds": 0.060985052 + "connectionEstablishedSeconds": 0.067333071, + "uploadSeconds": 0.000006342, + "downloadSeconds": 0.063618485 }, { - "connectionEstablishedSeconds": 0.067792429, - "uploadSeconds": 0.000002436, - "downloadSeconds": 0.063913122 + "connectionEstablishedSeconds": 0.065412455, + "uploadSeconds": 0.000001918, + "downloadSeconds": 0.061822062 }, { - "connectionEstablishedSeconds": 0.067990841, - "uploadSeconds": 0.000002295, - "downloadSeconds": 0.06444806 + "connectionEstablishedSeconds": 0.066375871, + "uploadSeconds": 0.000001724, + "downloadSeconds": 0.062693896 }, { - "connectionEstablishedSeconds": 0.066343242, - "uploadSeconds": 0.000002096, - "downloadSeconds": 0.062580386 + "connectionEstablishedSeconds": 0.068152304, + "uploadSeconds": 0.000001564, + "downloadSeconds": 0.06470551 }, { - "connectionEstablishedSeconds": 0.065857475, - "uploadSeconds": 0.00000196, - "downloadSeconds": 0.06216352 + "connectionEstablishedSeconds": 0.067182843, + "uploadSeconds": 0.000002127, + "downloadSeconds": 0.063600163 }, { - "connectionEstablishedSeconds": 0.065371853, - "uploadSeconds": 0.000023269, - "downloadSeconds": 0.063442293 + "connectionEstablishedSeconds": 0.066941457, + "uploadSeconds": 0.000002067, + "downloadSeconds": 0.063703972 }, { - "connectionEstablishedSeconds": 0.068804013, - "uploadSeconds": 0.00000206, - "downloadSeconds": 0.064941111 + "connectionEstablishedSeconds": 0.06611439, + "uploadSeconds": 0.000001706, + "downloadSeconds": 0.063366481 }, { - "connectionEstablishedSeconds": 0.063637443, - "uploadSeconds": 0.000002768, - "downloadSeconds": 0.059679162 + "connectionEstablishedSeconds": 0.066129372, + "uploadSeconds": 0.00000182, + "downloadSeconds": 0.062579649 }, { - "connectionEstablishedSeconds": 0.065207434, - "uploadSeconds": 0.000001918, - "downloadSeconds": 0.061318134 + "connectionEstablishedSeconds": 0.062335938, + "uploadSeconds": 0.000001972, + "downloadSeconds": 0.05878872 }, { - "connectionEstablishedSeconds": 0.06569069, - "uploadSeconds": 0.000001914, - "downloadSeconds": 0.063650073 + "connectionEstablishedSeconds": 0.066694293, + "uploadSeconds": 0.000001867, + "downloadSeconds": 0.063049221 }, { - "connectionEstablishedSeconds": 0.065767399, - "uploadSeconds": 0.00000194, - "downloadSeconds": 0.061918382 + "connectionEstablishedSeconds": 0.067414944, + "uploadSeconds": 0.000001535, + "downloadSeconds": 0.064799683 }, { - "connectionEstablishedSeconds": 0.064315928, - "uploadSeconds": 0.000001921, - "downloadSeconds": 0.062339162 + "connectionEstablishedSeconds": 0.06518752, + "uploadSeconds": 0.000001552, + "downloadSeconds": 0.062349832 }, { - "connectionEstablishedSeconds": 0.062556024, - "uploadSeconds": 0.00000372, - "downloadSeconds": 0.059064693 + "connectionEstablishedSeconds": 0.061877535, + "uploadSeconds": 0.000001499, + "downloadSeconds": 0.058564781 }, { - "connectionEstablishedSeconds": 0.063431722, - "uploadSeconds": 0.000001945, - "downloadSeconds": 0.059542485 + "connectionEstablishedSeconds": 0.066430896, + "uploadSeconds": 0.000001442, + "downloadSeconds": 0.063694023 }, { - "connectionEstablishedSeconds": 0.06581807, - "uploadSeconds": 0.000002505, - "downloadSeconds": 0.062084981 + "connectionEstablishedSeconds": 0.064731357, + "uploadSeconds": 0.00003255, + "downloadSeconds": 0.062981006 }, { - "connectionEstablishedSeconds": 0.065171919, - "uploadSeconds": 0.000002065, - "downloadSeconds": 0.061944794 + "connectionEstablishedSeconds": 0.066347639, + "uploadSeconds": 0.00000141, + "downloadSeconds": 0.064596248 }, { - "connectionEstablishedSeconds": 0.065486746, - "uploadSeconds": 0.000002186, - "downloadSeconds": 0.061692866 + "connectionEstablishedSeconds": 0.067458308, + "uploadSeconds": 0.000001564, + "downloadSeconds": 0.063954437 }, { - "connectionEstablishedSeconds": 0.065934792, - "uploadSeconds": 0.000001834, - "downloadSeconds": 0.062104727 + "connectionEstablishedSeconds": 0.064434342, + "uploadSeconds": 0.000001391, + "downloadSeconds": 0.060993137 }, { - "connectionEstablishedSeconds": 0.066978153, - "uploadSeconds": 0.000009043, - "downloadSeconds": 0.063348551 + "connectionEstablishedSeconds": 0.065125655, + "uploadSeconds": 0.00000194, + "downloadSeconds": 0.061612967 }, { - "connectionEstablishedSeconds": 0.065119357, - "uploadSeconds": 0.000002436, - "downloadSeconds": 0.061256806 + "connectionEstablishedSeconds": 0.065538234, + "uploadSeconds": 0.000001789, + "downloadSeconds": 0.063744777 }, { - "connectionEstablishedSeconds": 0.062444797, - "uploadSeconds": 0.000002411, - "downloadSeconds": 0.059050465 + "connectionEstablishedSeconds": 0.066512205, + "uploadSeconds": 0.000001819, + "downloadSeconds": 0.063103099 }, { - "connectionEstablishedSeconds": 0.065695197, - "uploadSeconds": 0.000001928, - "downloadSeconds": 0.061853956 + "connectionEstablishedSeconds": 0.068181578, + "uploadSeconds": 0.000001743, + "downloadSeconds": 0.064613543 }, { - "connectionEstablishedSeconds": 0.064993491, - "uploadSeconds": 0.000002038, - "downloadSeconds": 0.061670047 + "connectionEstablishedSeconds": 0.066880693, + "uploadSeconds": 0.000016608, + "downloadSeconds": 0.063681294 }, { - "connectionEstablishedSeconds": 0.065312902, - "uploadSeconds": 0.000002547, - "downloadSeconds": 0.061374028 + "connectionEstablishedSeconds": 0.065652237, + "uploadSeconds": 0.000002358, + "downloadSeconds": 0.062038613 }, { - "connectionEstablishedSeconds": 0.065156961, - "uploadSeconds": 0.000001894, - "downloadSeconds": 0.061883038 + "connectionEstablishedSeconds": 0.062414847, + "uploadSeconds": 0.000001588, + "downloadSeconds": 0.059029761 }, { - "connectionEstablishedSeconds": 0.067970966, - "uploadSeconds": 0.000002151, - "downloadSeconds": 0.064037572 + "connectionEstablishedSeconds": 0.068415045, + "uploadSeconds": 0.0000021, + "downloadSeconds": 0.064864195 }, { - "connectionEstablishedSeconds": 0.063205386, - "uploadSeconds": 0.000001849, - "downloadSeconds": 0.061184034 + "connectionEstablishedSeconds": 0.067716158, + "uploadSeconds": 0.000002011, + "downloadSeconds": 0.064528097 }, { - "connectionEstablishedSeconds": 0.064585287, - "uploadSeconds": 0.000002009, - "downloadSeconds": 0.061121857 + "connectionEstablishedSeconds": 0.064510015, + "uploadSeconds": 0.000013208, + "downloadSeconds": 0.061097914 }, { - "connectionEstablishedSeconds": 0.066126302, - "uploadSeconds": 0.000002709, - "downloadSeconds": 0.062159423 + "connectionEstablishedSeconds": 0.065796241, + "uploadSeconds": 0.000010612, + "downloadSeconds": 0.06245106 }, { - "connectionEstablishedSeconds": 0.066305019, - "uploadSeconds": 0.000002026, - "downloadSeconds": 0.062225233 + "connectionEstablishedSeconds": 0.066345416, + "uploadSeconds": 0.000001851, + "downloadSeconds": 0.062766237 }, { - "connectionEstablishedSeconds": 0.064983252, - "uploadSeconds": 0.000002131, - "downloadSeconds": 0.061307883 + "connectionEstablishedSeconds": 0.063834373, + "uploadSeconds": 0.000010248, + "downloadSeconds": 0.060548052 }, { - "connectionEstablishedSeconds": 0.065947013, - "uploadSeconds": 0.00000197, - "downloadSeconds": 0.062179803 + "connectionEstablishedSeconds": 0.068054574, + "uploadSeconds": 0.000001971, + "downloadSeconds": 0.064349841 }, { - "connectionEstablishedSeconds": 0.066676695, - "uploadSeconds": 0.000002067, - "downloadSeconds": 0.064400947 + "connectionEstablishedSeconds": 0.06511917, + "uploadSeconds": 0.000002263, + "downloadSeconds": 0.061685451 }, { - "connectionEstablishedSeconds": 0.06638853, - "uploadSeconds": 0.000002339, - "downloadSeconds": 0.062730715 + "connectionEstablishedSeconds": 0.066724972, + "uploadSeconds": 0.000001892, + "downloadSeconds": 0.063166832 }, { - "connectionEstablishedSeconds": 0.063345535, - "uploadSeconds": 0.000002166, - "downloadSeconds": 0.059499311 + "connectionEstablishedSeconds": 0.066728786, + "uploadSeconds": 0.000001726, + "downloadSeconds": 0.063168065 }, { - "connectionEstablishedSeconds": 0.065428625, - "uploadSeconds": 0.000001985, - "downloadSeconds": 0.061408008 + "connectionEstablishedSeconds": 0.067999484, + "uploadSeconds": 0.000001895, + "downloadSeconds": 0.064341538 }, { - "connectionEstablishedSeconds": 0.06867818, - "uploadSeconds": 0.000001867, - "downloadSeconds": 0.06490522 + "connectionEstablishedSeconds": 0.065651442, + "uploadSeconds": 0.000001856, + "downloadSeconds": 0.062122777 }, { - "connectionEstablishedSeconds": 0.065678468, - "uploadSeconds": 0.000002841, - "downloadSeconds": 0.063536271 + "connectionEstablishedSeconds": 0.064335876, + "uploadSeconds": 0.000001728, + "downloadSeconds": 0.062699772 }, { - "connectionEstablishedSeconds": 0.065225608, - "uploadSeconds": 0.000002395, - "downloadSeconds": 0.061372583 + "connectionEstablishedSeconds": 0.064316787, + "uploadSeconds": 0.000008406, + "downloadSeconds": 0.061373534 }, { - "connectionEstablishedSeconds": 0.063468774, - "uploadSeconds": 0.000002418, - "downloadSeconds": 0.060022087 + "connectionEstablishedSeconds": 0.065429981, + "uploadSeconds": 0.000001432, + "downloadSeconds": 0.062063271 }, { - "connectionEstablishedSeconds": 0.066156549, - "uploadSeconds": 0.00000233, - "downloadSeconds": 0.062415564 + "connectionEstablishedSeconds": 0.067760267, + "uploadSeconds": 0.000001544, + "downloadSeconds": 0.064399719 }, { - "connectionEstablishedSeconds": 0.065140902, - "uploadSeconds": 0.000001934, - "downloadSeconds": 0.061305908 + "connectionEstablishedSeconds": 0.065672862, + "uploadSeconds": 0.000001801, + "downloadSeconds": 0.062782076 }, { - "connectionEstablishedSeconds": 0.065056648, - "uploadSeconds": 0.000002397, - "downloadSeconds": 0.061307842 + "connectionEstablishedSeconds": 0.06776626, + "uploadSeconds": 0.000001395, + "downloadSeconds": 0.064656666 }, { - "connectionEstablishedSeconds": 0.066963459, - "uploadSeconds": 0.00000545, - "downloadSeconds": 0.063221831 + "connectionEstablishedSeconds": 0.066116769, + "uploadSeconds": 0.000023202, + "downloadSeconds": 0.062685994 }, { - "connectionEstablishedSeconds": 0.065800288, - "uploadSeconds": 0.000003101, - "downloadSeconds": 0.062124241 + "connectionEstablishedSeconds": 0.064793844, + "uploadSeconds": 0.000001539, + "downloadSeconds": 0.061183876 }, { - "connectionEstablishedSeconds": 0.064775748, - "uploadSeconds": 0.000002067, - "downloadSeconds": 0.061071155 + "connectionEstablishedSeconds": 0.063976764, + "uploadSeconds": 0.000001354, + "downloadSeconds": 0.060561553 }, { - "connectionEstablishedSeconds": 0.067344037, - "uploadSeconds": 0.000002334, - "downloadSeconds": 0.063530574 + "connectionEstablishedSeconds": 0.066032843, + "uploadSeconds": 0.00000189, + "downloadSeconds": 0.062581742 }, { - "connectionEstablishedSeconds": 0.067101632, - "uploadSeconds": 0.000001963, - "downloadSeconds": 0.063331796 + "connectionEstablishedSeconds": 0.06660754, + "uploadSeconds": 0.000001789, + "downloadSeconds": 0.063538903 }, { - "connectionEstablishedSeconds": 0.066652538, - "uploadSeconds": 0.000002026, - "downloadSeconds": 0.063471765 + "connectionEstablishedSeconds": 0.067071175, + "uploadSeconds": 0.000001783, + "downloadSeconds": 0.063299946 }, { - "connectionEstablishedSeconds": 0.065557726, - "uploadSeconds": 0.000002198, - "downloadSeconds": 0.06225219 + "connectionEstablishedSeconds": 0.067117808, + "uploadSeconds": 0.000001433, + "downloadSeconds": 0.064265667 }, { - "connectionEstablishedSeconds": 0.062330938, - "uploadSeconds": 0.000002131, - "downloadSeconds": 0.058568864 + "connectionEstablishedSeconds": 0.064179194, + "uploadSeconds": 0.000001999, + "downloadSeconds": 0.060530572 }, { - "connectionEstablishedSeconds": 0.068259918, - "uploadSeconds": 0.000001937, - "downloadSeconds": 0.064531738 + "connectionEstablishedSeconds": 0.061937884, + "uploadSeconds": 0.000001471, + "downloadSeconds": 0.058552895 }, { - "connectionEstablishedSeconds": 0.068372289, - "uploadSeconds": 0.000004991, - "downloadSeconds": 0.064424253 + "connectionEstablishedSeconds": 0.066775397, + "uploadSeconds": 0.000003441, + "downloadSeconds": 0.063917681 }, { - "connectionEstablishedSeconds": 0.0678853, - "uploadSeconds": 0.000002062, - "downloadSeconds": 0.06454054 + "connectionEstablishedSeconds": 0.066254504, + "uploadSeconds": 0.000001452, + "downloadSeconds": 0.062837022 }, { - "connectionEstablishedSeconds": 0.065395706, - "uploadSeconds": 0.000001855, - "downloadSeconds": 0.061657675 + "connectionEstablishedSeconds": 0.067886541, + "uploadSeconds": 0.000001382, + "downloadSeconds": 0.064370448 }, { - "connectionEstablishedSeconds": 0.06675671, - "uploadSeconds": 0.000002136, - "downloadSeconds": 0.063114776 + "connectionEstablishedSeconds": 0.06650787, + "uploadSeconds": 0.000001916, + "downloadSeconds": 0.062578243 }, { - "connectionEstablishedSeconds": 0.065232293, - "uploadSeconds": 0.000002104, - "downloadSeconds": 0.06195556 + "connectionEstablishedSeconds": 0.06378071, + "uploadSeconds": 0.000001886, + "downloadSeconds": 0.061063098 }, { - "connectionEstablishedSeconds": 0.065495674, - "uploadSeconds": 0.000008899, - "downloadSeconds": 0.063826287 + "connectionEstablishedSeconds": 0.0659356, + "uploadSeconds": 0.000001926, + "downloadSeconds": 0.062421678 }, { - "connectionEstablishedSeconds": 0.063829334, - "uploadSeconds": 0.000001837, - "downloadSeconds": 0.060089253 + "connectionEstablishedSeconds": 0.065218309, + "uploadSeconds": 0.000001889, + "downloadSeconds": 0.061668683 }, { - "connectionEstablishedSeconds": 0.06529261, - "uploadSeconds": 0.000028577, - "downloadSeconds": 0.061037682 + "connectionEstablishedSeconds": 0.067584243, + "uploadSeconds": 0.000011952, + "downloadSeconds": 0.06397102 }, { - "connectionEstablishedSeconds": 0.063842091, - "uploadSeconds": 0.000002584, - "downloadSeconds": 0.061806972 + "connectionEstablishedSeconds": 0.064054446, + "uploadSeconds": 0.000001371, + "downloadSeconds": 0.061140314 }, { - "connectionEstablishedSeconds": 0.068373301, - "uploadSeconds": 0.000002235, - "downloadSeconds": 0.064564059 + "connectionEstablishedSeconds": 0.066691801, + "uploadSeconds": 0.000001516, + "downloadSeconds": 0.063717651 }, { - "connectionEstablishedSeconds": 0.067130341, - "uploadSeconds": 0.000006149, - "downloadSeconds": 0.063393923 + "connectionEstablishedSeconds": 0.067906231, + "uploadSeconds": 0.000001519, + "downloadSeconds": 0.064411925 }, { - "connectionEstablishedSeconds": 0.067629003, - "uploadSeconds": 0.000002073, - "downloadSeconds": 0.063739106 + "connectionEstablishedSeconds": 0.066135681, + "uploadSeconds": 0.000001776, + "downloadSeconds": 0.062692545 }, { - "connectionEstablishedSeconds": 0.063323175, - "uploadSeconds": 0.000001912, - "downloadSeconds": 0.060204556 + "connectionEstablishedSeconds": 0.06623152, + "uploadSeconds": 0.000001604, + "downloadSeconds": 0.062602906 }, { - "connectionEstablishedSeconds": 0.065988954, - "uploadSeconds": 0.000002086, - "downloadSeconds": 0.063942446 + "connectionEstablishedSeconds": 0.066158872, + "uploadSeconds": 0.000001429, + "downloadSeconds": 0.062712893 }, { - "connectionEstablishedSeconds": 0.065993252, - "uploadSeconds": 0.000001936, - "downloadSeconds": 0.061955874 + "connectionEstablishedSeconds": 0.06377935, + "uploadSeconds": 0.000001316, + "downloadSeconds": 0.062009325 }, { - "connectionEstablishedSeconds": 0.065754517, - "uploadSeconds": 0.00000236, - "downloadSeconds": 0.06190852 + "connectionEstablishedSeconds": 0.065737012, + "uploadSeconds": 0.000001603, + "downloadSeconds": 0.062409703 }, { - "connectionEstablishedSeconds": 0.068200333, - "uploadSeconds": 0.00000205, - "downloadSeconds": 0.064447659 + "connectionEstablishedSeconds": 0.063924777, + "uploadSeconds": 0.000001496, + "downloadSeconds": 0.060813256 }, { - "connectionEstablishedSeconds": 0.067581364, - "uploadSeconds": 0.000005537, - "downloadSeconds": 0.064519643 + "connectionEstablishedSeconds": 0.06437613, + "uploadSeconds": 0.00000167, + "downloadSeconds": 0.06074933 }, { - "connectionEstablishedSeconds": 0.067438544, - "uploadSeconds": 0.000002636, - "downloadSeconds": 0.063958896 + "connectionEstablishedSeconds": 0.06408008, + "uploadSeconds": 0.000001629, + "downloadSeconds": 0.060769787 }, { - "connectionEstablishedSeconds": 0.064491387, - "uploadSeconds": 0.000002088, - "downloadSeconds": 0.060455355 + "connectionEstablishedSeconds": 0.064911408, + "uploadSeconds": 0.000001617, + "downloadSeconds": 0.061460904 }, { - "connectionEstablishedSeconds": 0.066671158, - "uploadSeconds": 0.000026897, - "downloadSeconds": 0.063500121 + "connectionEstablishedSeconds": 0.068175317, + "uploadSeconds": 0.000001745, + "downloadSeconds": 0.064591085 }, { - "connectionEstablishedSeconds": 0.064514258, - "uploadSeconds": 0.000002129, - "downloadSeconds": 0.062438357 + "connectionEstablishedSeconds": 0.065877499, + "uploadSeconds": 0.000001481, + "downloadSeconds": 0.062317272 }, { - "connectionEstablishedSeconds": 0.063022356, - "uploadSeconds": 0.000002118, - "downloadSeconds": 0.059175326 + "connectionEstablishedSeconds": 0.065398992, + "uploadSeconds": 0.000002004, + "downloadSeconds": 0.061873622 }, { - "connectionEstablishedSeconds": 0.068643807, - "uploadSeconds": 0.000001978, - "downloadSeconds": 0.064998081 + "connectionEstablishedSeconds": 0.064755621, + "uploadSeconds": 0.000001364, + "downloadSeconds": 0.061760128 }, { - "connectionEstablishedSeconds": 0.065079035, - "uploadSeconds": 0.000002169, - "downloadSeconds": 0.061898486 + "connectionEstablishedSeconds": 0.066438807, + "uploadSeconds": 0.000001823, + "downloadSeconds": 0.062905845 }, { - "connectionEstablishedSeconds": 0.066517253, - "uploadSeconds": 0.000001859, - "downloadSeconds": 0.064493146 + "connectionEstablishedSeconds": 0.066592605, + "uploadSeconds": 0.00000404, + "downloadSeconds": 0.063212413 }, { - "connectionEstablishedSeconds": 0.06317092, - "uploadSeconds": 0.000002025, - "downloadSeconds": 0.061145378 + "connectionEstablishedSeconds": 0.063449456, + "uploadSeconds": 0.000001468, + "downloadSeconds": 0.061855103 }, { - "connectionEstablishedSeconds": 0.065386759, - "uploadSeconds": 0.000001972, - "downloadSeconds": 0.061464088 + "connectionEstablishedSeconds": 0.064931769, + "uploadSeconds": 0.000001351, + "downloadSeconds": 0.063321199 }, { - "connectionEstablishedSeconds": 0.065555644, - "uploadSeconds": 0.000002253, - "downloadSeconds": 0.061802737 + "connectionEstablishedSeconds": 0.065800777, + "uploadSeconds": 0.000002067, + "downloadSeconds": 0.064019248 }, { - "connectionEstablishedSeconds": 0.066860035, - "uploadSeconds": 0.000001965, - "downloadSeconds": 0.06360708 + "connectionEstablishedSeconds": 0.065260193, + "uploadSeconds": 0.000001649, + "downloadSeconds": 0.063450759 }, { - "connectionEstablishedSeconds": 0.066994728, - "uploadSeconds": 0.000002868, - "downloadSeconds": 0.063096596 + "connectionEstablishedSeconds": 0.066537241, + "uploadSeconds": 0.000001684, + "downloadSeconds": 0.063612042 }, { - "connectionEstablishedSeconds": 0.064946091, - "uploadSeconds": 0.000001994, - "downloadSeconds": 0.062688798 + "connectionEstablishedSeconds": 0.060287593, + "uploadSeconds": 0.000002182, + "downloadSeconds": 0.058456552 }, { - "connectionEstablishedSeconds": 0.067006589, - "uploadSeconds": 0.000002901, - "downloadSeconds": 0.063116296 + "connectionEstablishedSeconds": 0.065054073, + "uploadSeconds": 0.000002425, + "downloadSeconds": 0.062287837 }, { - "connectionEstablishedSeconds": 0.068036808, - "uploadSeconds": 0.000002707, - "downloadSeconds": 0.063847827 + "connectionEstablishedSeconds": 0.067504678, + "uploadSeconds": 0.000002805, + "downloadSeconds": 0.062513336 }, { - "connectionEstablishedSeconds": 0.066680459, - "uploadSeconds": 0.000002029, - "downloadSeconds": 0.062822478 + "connectionEstablishedSeconds": 0.065028554, + "uploadSeconds": 0.000023464, + "downloadSeconds": 0.061357986 }, { - "connectionEstablishedSeconds": 0.065744865, - "uploadSeconds": 0.000002751, - "downloadSeconds": 0.062387904 + "connectionEstablishedSeconds": 0.064854282, + "uploadSeconds": 0.000001959, + "downloadSeconds": 0.061365878 }, { - "connectionEstablishedSeconds": 0.065077772, - "uploadSeconds": 0.000001905, - "downloadSeconds": 0.061134873 + "connectionEstablishedSeconds": 0.066916117, + "uploadSeconds": 0.000002116, + "downloadSeconds": 0.063219243 } ], "implementation": "go-libp2p", @@ -4031,173 +4031,173 @@ "pings": { "unit": "s", "results": [ - 0.0631, - 0.0628, - 0.0628, - 0.0628, - 0.0629, - 0.0631, - 0.0632, - 0.0628, - 0.0628, - 0.0678, - 0.0681, - 0.0681, - 0.0681, - 0.0681, - 0.0681, - 0.0681, - 0.0624, - 0.0629, - 0.0629, - 0.0629, - 0.0629, - 0.0629, - 0.0628, - 0.0629, - 0.0629, - 0.0629, - 0.0629, - 0.0629, - 0.0629, - 0.0628, - 0.0629, - 0.0629, - 0.0629, - 0.0629, - 0.0629, - 0.0629, - 0.0629, - 0.0629, - 0.0634, - 0.0629, - 0.0629, - 0.0629, - 0.0629, - 0.0629, - 0.0629, - 0.063, - 0.0629, - 0.0629, - 0.0628, - 0.0629, - 0.0631, - 0.0629, - 0.0629, - 0.0628, - 0.0629, - 0.0629, - 0.0628, - 0.06420000000000001, - 0.0629, - 0.0629, - 0.0629, - 0.0628, - 0.0629, - 0.0629, - 0.0629, - 0.0629, - 0.0629, - 0.0629, - 0.0629, - 0.0629, - 0.0629, - 0.063, - 0.0629, - 0.0629, - 0.063, - 0.0629, - 0.0629, - 0.0629, - 0.0629, - 0.0629, - 0.0632, - 0.0628, - 0.0629, - 0.0629, - 0.0629, - 0.0629, - 0.0628, - 0.0629, - 0.0629, - 0.0628, - 0.0629, - 0.0629, - 0.0628, - 0.0629, - 0.0629, - 0.0629, - 0.0629, - 0.0628, - 0.0629, - 0.0629 + 0.060200000000000004, + 0.060200000000000004, + 0.0601, + 0.060200000000000004, + 0.0603, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.0603, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.0601, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.0601, + 0.060200000000000004, + 0.0601, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.0601, + 0.060200000000000004, + 0.060200000000000004, + 0.0601, + 0.060200000000000004, + 0.0601, + 0.0601, + 0.0601, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.0601, + 0.0601, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.0603, + 0.0601, + 0.0601, + 0.060200000000000004, + 0.060200000000000004, + 0.0601, + 0.0601, + 0.0601, + 0.0601, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.0601, + 0.060200000000000004, + 0.060200000000000004, + 0.0603, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.0601, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.0601, + 0.060200000000000004, + 0.060200000000000004, + 0.0601, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.0601, + 0.0601, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.0601, + 0.0601, + 0.060200000000000004, + 0.060200000000000004, + 0.060200000000000004, + 0.0601, + 0.0601, + 0.0601 ] }, "iperf": { "unit": "bit/s", "results": [ - 3340000000, - 3340000000, - 3340000000, - 3340000000, - 3340000000, - 3340000000, - 3340000000, - 3340000000, - 3340000000, - 3340000000, - 3340000000, - 3330000000, - 3330000000, - 3330000000, - 3330000000, - 3330000000, - 3330000000, - 3330000000, - 3330000000, - 3330000000, - 3330000000, - 3330000000, - 3330000000, - 3340000000, - 3340000000, - 3330000000, - 3340000000, - 3340000000, - 3340000000, - 3330000000, - 3300000000, - 3290000000, - 3280000000, - 3280000000, - 3280000000, - 3310000000, - 3330000000, - 3340000000, - 3340000000, - 3340000000, - 3340000000, - 3340000000, - 3330000000, - 3330000000, - 3330000000, - 3330000000, - 3330000000, - 3330000000, - 3330000000, - 3330000000, - 3330000000, - 3330000000, - 3330000000, - 3340000000, - 3330000000, - 3340000000, - 3340000000, - 3340000000, - 3340000000, - 3340000000, - 3330000000, - 3120000000 + 3230000000, + 3240000000, + 3240000000, + 3240000000, + 3240000000, + 3230000000, + 3240000000, + 3230000000, + 3230000000, + 3230000000, + 3240000000, + 3230000000, + 3230000000, + 3230000000, + 3230000000, + 3230000000, + 3230000000, + 3230000000, + 3240000000, + 3240000000, + 3230000000, + 3230000000, + 3230000000, + 3230000000, + 3190000000, + 3190000000, + 3180000000, + 3170000000, + 3180000000, + 3220000000, + 3220000000, + 3230000000, + 3230000000, + 3220000000, + 3230000000, + 3230000000, + 3230000000, + 3220000000, + 3220000000, + 3220000000, + 3220000000, + 3220000000, + 3220000000, + 3220000000, + 3220000000, + 3220000000, + 3220000000, + 3220000000, + 3220000000, + 3220000000, + 3220000000, + 3220000000, + 3210000000, + 3180000000, + 3180000000, + 3170000000, + 3170000000, + 3180000000, + 3220000000, + 3220000000, + 3220000000, + 3060000000 ] } } \ No newline at end of file diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index 48b706903..43a2077e1 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -128,7 +128,7 @@ function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Bench const killSTDOUT = execCommand(killCMD); console.error(killSTDOUT); - let serverCMD = `ssh -o StrictHostKeyChecking=no ec2-user@${args.serverPublicIP} 'nohup ./impl/${version.implementation}/${version.id}/perf --run-server --server-address 0.0.0.0:4001 --secret-key-seed 0 > server.log 2>&1 & echo \$! > pidfile '`; + let serverCMD = `ssh -o StrictHostKeyChecking=no ec2-user@${args.serverPublicIP} 'nohup ./impl/${version.implementation}/${version.id}/perf --run-server --server-address 0.0.0.0:4001 > server.log 2>&1 & echo \$! > pidfile '`; const serverSTDOUT = execCommand(serverCMD); console.error(serverSTDOUT); From 285149d1c5bb53d398eba501e947f03913f98253 Mon Sep 17 00:00:00 2001 From: Piotr Galar Date: Mon, 5 Jun 2023 03:40:54 +0200 Subject: [PATCH 113/143] feat: automate performance benchmarking (#185) Co-authored-by: Max Inden --- .github/workflows/perf.yml | 101 +++++++++++++++ perf/Makefile | 5 + perf/README.md | 16 ++- perf/terraform/.gitignore | 4 +- perf/terraform/.terraform.lock.hcl | 25 ---- perf/terraform/configs/README.md | 13 ++ .../configs/local/.terraform.lock.hcl | 44 +++++++ perf/terraform/configs/local/terraform.tf | 121 ++++++++++++++++++ .../configs/remote/.terraform.lock.hcl | 44 +++++++ perf/terraform/configs/remote/terraform.tf | 1 + .../configs/remote/terraform_override.tf | 19 +++ perf/terraform/modules/ci/cleanup.tf | 107 ++++++++++++++++ perf/terraform/modules/ci/files/.gitignore | 2 + perf/terraform/modules/ci/files/cleanup.json | 1 + perf/terraform/modules/ci/files/cleanup.py | 45 +++++++ perf/terraform/modules/ci/files/cleanup.sh | 7 + perf/terraform/modules/ci/files/cleanup.yml | 19 +++ perf/terraform/modules/ci/main.tf | 38 ++++++ .../long_lived/files}/user-data.sh | 0 .../{region => modules/long_lived}/main.tf | 72 +++-------- .../modules/short_lived/files/.gitignore | 3 + perf/terraform/modules/short_lived/main.tf | 29 +++++ perf/terraform/terraform.tf | 38 ------ 23 files changed, 631 insertions(+), 123 deletions(-) create mode 100644 .github/workflows/perf.yml create mode 100644 perf/Makefile delete mode 100644 perf/terraform/.terraform.lock.hcl create mode 100644 perf/terraform/configs/README.md create mode 100644 perf/terraform/configs/local/.terraform.lock.hcl create mode 100644 perf/terraform/configs/local/terraform.tf create mode 100644 perf/terraform/configs/remote/.terraform.lock.hcl create mode 120000 perf/terraform/configs/remote/terraform.tf create mode 100644 perf/terraform/configs/remote/terraform_override.tf create mode 100644 perf/terraform/modules/ci/cleanup.tf create mode 100644 perf/terraform/modules/ci/files/.gitignore create mode 100644 perf/terraform/modules/ci/files/cleanup.json create mode 100644 perf/terraform/modules/ci/files/cleanup.py create mode 100755 perf/terraform/modules/ci/files/cleanup.sh create mode 100644 perf/terraform/modules/ci/files/cleanup.yml create mode 100644 perf/terraform/modules/ci/main.tf rename perf/terraform/{ => modules/long_lived/files}/user-data.sh (100%) rename perf/terraform/{region => modules/long_lived}/main.tf (60%) create mode 100644 perf/terraform/modules/short_lived/files/.gitignore create mode 100644 perf/terraform/modules/short_lived/main.tf delete mode 100644 perf/terraform/terraform.tf diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml new file mode 100644 index 000000000..9c0423502 --- /dev/null +++ b/.github/workflows/perf.yml @@ -0,0 +1,101 @@ +name: libp2p perf test + +# How to configure a repository for running this workflow: +# 1. Configure auth for the AWS provider as per https://registry.terraform.io/providers/hashicorp/aws/latest/docs#authentication-and-configuration +# 2. Run 'terraform init' and 'terraform apply' in 'perf/terraform/configs/remote' to create the resources needed for this workflow +# 3. Go to https://console.aws.amazon.com/iamv2/home?#/users/details/perf?section=security_credentials +# 4. Click 'Create access key' to get the access key ID and secret access key +# 5. Go to https://github.com/libp2p/test-plans/settings/secrets/actions +# 6. Click 'New repository secret', set the name to 'PERF_AWS_SECRET_ACCESS_KEY', and paste the secret access key from step 5 +# 7. Go to https://github.com/libp2p/test-plans/settings/variables/actions +# 8. Click 'New repository variable', set the name to 'PERF_AWS_ACCESS_KEY_ID', and paste the access key ID from step 5 + +on: + workflow_dispatch: + inputs: + push: + description: 'Push the benchmark results to the repository' + required: false + default: 'true' + +jobs: + perf: + name: Perf + runs-on: ubuntu-latest + timeout-minutes: 40 + defaults: + run: + shell: bash + working-directory: perf + env: + AWS_ACCESS_KEY_ID: ${{ vars.PERF_AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.PERF_AWS_SECRET_ACCESS_KEY }} + TF_IN_AUTOMATION: 1 + TF_INPUT: 0 + steps: + - name: Checkout test-plans + uses: actions/checkout@v3 + with: + repository: ${{ github.repository }} + ref: ${{ github.ref }} + - id: ssh + name: Generate SSH key + run: | + make ssh-keygen + echo "key<> $GITHUB_OUTPUT + while read -r line; do + echo "::add-mask::$line" + echo "$line" >> $GITHUB_OUTPUT + done < terraform/modules/short_lived/files/perf + echo "EOF" >> $GITHUB_OUTPUT + - name: Configure SSH + uses: webfactory/ssh-agent@d4b9b8ff72958532804b70bbe600ad43b36d5f2e # v0.8.0 + with: + ssh-private-key: ${{ steps.ssh.outputs.key }} + - name: Configure git + run: | + git config --global user.email "${GITHUB_ACTOR}@users.noreply.github.com>" + git config --global user.name "${GITHUB_ACTOR}" + - name: Configure terraform + uses: hashicorp/setup-terraform@633666f66e0061ca3b725c73b2ec20cd13a8fdd1 # v2.0.3 + - name: Init terraform + id: init + run: terraform init + working-directory: perf/terraform/configs/local + - name: Apply terraform + run: terraform apply -auto-approve + working-directory: perf/terraform/configs/local + - id: server + name: Retrieve server's IP + run: terraform output -raw server_ip + working-directory: perf/terraform/configs/local + - id: client + name: Retrieve client's IP + run: terraform output -raw client_ip + working-directory: perf/terraform/configs/local + - name: Download dependencies + run: npm ci + working-directory: perf/runner + - name: Run tests + env: + SERVER_IP: ${{ steps.server.outputs.stdout }} + CLIENT_IP: ${{ steps.client.outputs.stdout }} + run: npm run start -- --client-public-ip $CLIENT_IP --server-public-ip $SERVER_IP + working-directory: perf/runner + - name: Push + if: github.event.inputs.push == 'true' + run: | + git add benchmark-results.json + git commit -m "perf: update benchmark results" + git push + working-directory: perf/runner + - name: Archive + if: github.event.intputs.push == 'false' + uses: actions/upload-artifact@v2 + with: + name: benchmark-results + path: perf/runner/benchmark-results.json + - name: Destroy terraform + if: always() && steps.init.outputs.exitcode == 0 + run: terraform destroy -auto-approve + working-directory: perf/terraform/configs/local diff --git a/perf/Makefile b/perf/Makefile new file mode 100644 index 000000000..1d826b01c --- /dev/null +++ b/perf/Makefile @@ -0,0 +1,5 @@ +ssh-keygen: + ssh-keygen -t ed25519 -f ./terraform/modules/short_lived/files/perf -N '' + +ssh-add: + ssh-add ./terraform/modules/short_lived/files/perf diff --git a/perf/README.md b/perf/README.md index 3d7606a91..ed891f38d 100644 --- a/perf/README.md +++ b/perf/README.md @@ -10,21 +10,27 @@ Benchmark results can be visualized with https://observablehq.com/@mxinden-works ## Provision infrastructure -1. `cd terraform` -2. Save your public SSH key as the file `./user.pub`. +### Bootstrap + +1. Save your public SSH key as the file `./terraform/modules/short_lived/files/perf.pub`; or generate a new key pair with `make ssh-keygen` and add it to your SSH agent with `make ssh-add`. +2. `cd terraform/configs/local` 3. `terraform init` 4. `terraform apply` +5. `CLIENT_IP=$(terraform output -raw client_ip)` +6. `SERVER_IP=$(terraform output -raw server_ip)` ## Build and run implementations +_WARNING_: Running the perf tests might take a while. + 1. `cd runner` 2. `npm ci` -3. `npm run start -- --client-public-ip $(terraform output -raw -state ../terraform/terraform.tfstate client_public_ip) --server-public-ip $(terraform output -raw -state ../terraform/terraform.tfstate server_public_ip)` +3. `npm run start -- --client-public-ip $CLIENT_IP --server-public-ip $SERVER_IP` ## Deprovision infrastructure -1. `cd terraform` -3. `terraform destroy` +1. `cd terraform/configs/local` +2. `terraform destroy` ## Adding a new implementation diff --git a/perf/terraform/.gitignore b/perf/terraform/.gitignore index bb09c5300..80795e780 100644 --- a/perf/terraform/.gitignore +++ b/perf/terraform/.gitignore @@ -24,7 +24,7 @@ override.tf.json *_override.tf.json # Include override files you do wish to add to version control using negated pattern -# !example_override.tf +!configs/remote/terraform_override.tf # Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan # example: *tfplan* @@ -32,5 +32,3 @@ override.tf.json # Ignore CLI configuration files .terraformrc terraform.rc - -*.pub diff --git a/perf/terraform/.terraform.lock.hcl b/perf/terraform/.terraform.lock.hcl deleted file mode 100644 index e54d18d34..000000000 --- a/perf/terraform/.terraform.lock.hcl +++ /dev/null @@ -1,25 +0,0 @@ -# This file is maintained automatically by "terraform init". -# Manual edits may be lost in future updates. - -provider "registry.terraform.io/hashicorp/aws" { - version = "4.61.0" - constraints = "~> 4.0" - hashes = [ - "h1:mJSchOA6VkYwEsi+tuspadRmyyE+FGZGYJFUt5kHV+M=", - "zh:051e2588410b7448a5c4c30d668948dd6fdfa8037700bfc00fb228986ccbf3a5", - "zh:082fbcf9706b48d0880ba552a11c29527e228dadd6d83668d0789abda24e5922", - "zh:0e0e72f214fb24f4f9c601cab088a2d8e00ec3327c451bc753911951d773214a", - "zh:3af6d38ca733ca66cce15c6a5735ded7c18348ad26040ebd9a59778b2cd9cf6c", - "zh:404898bc2258bbb9527fa06c72cb927ca011fd9bc3f4b90931c0912652c3f9e9", - "zh:4f617653b0f17a7708bc896f029c4ab0b677a1a1c987bd77166acad1d82db469", - "zh:5dbe393355ac137aa3fd329e3d24871f27012d3ba93d714485b55820df240349", - "zh:6067c2127eb5c879227aca671f101de6dcba909d0d8d15d5711480351962a248", - "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", - "zh:a939f94461f91aa3b7ec7096271e2714309bd917fe9a03e02f68afb556d65e0f", - "zh:b21227b9082e5fafe8b7c415dc6a99c0d82da05492457377a5fe7d4acaed80e2", - "zh:b8d9f09ed5fc8c654b768b7bee1237eaf1e2287c898249e740695055fb0fe072", - "zh:d360e1e185b148ff6b1d0ed4f7d574e08f2391697ab43df62085b04a1a5b1284", - "zh:da962da17ddda744911cb1e92b983fa3874d73a28f3ee72faa9ddb6680a63774", - "zh:e2f1c4f5ebeb4fd7ef690178168a4c529025b54a91bb7a087dcea48e0b82737a", - ] -} diff --git a/perf/terraform/configs/README.md b/perf/terraform/configs/README.md new file mode 100644 index 000000000..97ce004a4 --- /dev/null +++ b/perf/terraform/configs/README.md @@ -0,0 +1,13 @@ +# Configs + +The terraform configs defined in this directory are used to provision the infrastructure for the libp2p perf tests. + +The configs are named after the type of backend they use. The defaults for what parts of infrastructure they provision differ between the two. + +## local + +Terraform state in this configuration will be stored locally. The defaults are configured for a single performance benchmark run, i.e. `terraform apply` will bring up short-lived infrastructure only. It will skip long-lived infrastructure like the clean-up Lambda and the instance launch template. + +## remote + +Terraform state here will be stored remotely in an S3 bucket. `terraform apply` will only bring up the long-lived infrastructure needed to run the performance benchmarks It will skip short-lived infrastructure like launching EC2 instances. diff --git a/perf/terraform/configs/local/.terraform.lock.hcl b/perf/terraform/configs/local/.terraform.lock.hcl new file mode 100644 index 000000000..e490491e1 --- /dev/null +++ b/perf/terraform/configs/local/.terraform.lock.hcl @@ -0,0 +1,44 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/archive" { + version = "2.3.0" + hashes = [ + "h1:NaDbOqAcA9d8DiAS5/6+5smXwN3/+twJGb3QRiz6pNw=", + "zh:0869128d13abe12b297b0cd13b8767f10d6bf047f5afc4215615aabc39c2eb4f", + "zh:481ed837d63ba3aa45dd8736da83e911e3509dee0e7961bf5c00ed2644f807b3", + "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", + "zh:9f08fe2977e2166849be24fb9f394e4d2697414d463f7996fd0d7beb4e19a29c", + "zh:9fe566deeafd460d27999ca0bbfd85426a5fcfcb40007b23884deb76da127b6f", + "zh:a1bd9a60925d9769e0da322e4523330ee86af9dc2e770cba1d0247a999ef29cb", + "zh:bb4094c8149f74308b22a87e1ac19bcccca76e8ef021b571074d9bccf1c0c6f0", + "zh:c8984c9def239041ce41ec8e19bbd76a49e74ed2024ff736dad60429dee89bcc", + "zh:ea4bb5ae73db1de3a586e62f39106f5e56770804a55aa5e6b4f642df973e0e75", + "zh:f44a9d596ecc3a8c5653f56ba0cd202ad93b49f76767f4608daf7260b813289e", + "zh:f5c5e6cc9f7f070020ab7d95fcc9ed8e20d5cf219978295a71236e22cbb6d508", + "zh:fd2273f51dcc8f43403bf1e425ba9db08a57c3ddcba5ad7a51742ccde21ca611", + ] +} + +provider "registry.terraform.io/hashicorp/aws" { + version = "4.67.0" + constraints = "4.67.0" + hashes = [ + "h1:5Zfo3GfRSWBaXs4TGQNOflr1XaYj6pRnVJLX5VAjFX4=", + "zh:0843017ecc24385f2b45f2c5fce79dc25b258e50d516877b3affee3bef34f060", + "zh:19876066cfa60de91834ec569a6448dab8c2518b8a71b5ca870b2444febddac6", + "zh:24995686b2ad88c1ffaa242e36eee791fc6070e6144f418048c4ce24d0ba5183", + "zh:4a002990b9f4d6d225d82cb2fb8805789ffef791999ee5d9cb1fef579aeff8f1", + "zh:559a2b5ace06b878c6de3ecf19b94fbae3512562f7a51e930674b16c2f606e29", + "zh:6a07da13b86b9753b95d4d8218f6dae874cf34699bca1470d6effbb4dee7f4b7", + "zh:768b3bfd126c3b77dc975c7c0e5db3207e4f9997cf41aa3385c63206242ba043", + "zh:7be5177e698d4b547083cc738b977742d70ed68487ce6f49ecd0c94dbf9d1362", + "zh:8b562a818915fb0d85959257095251a05c76f3467caa3ba95c583ba5fe043f9b", + "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", + "zh:9c385d03a958b54e2afd5279cd8c7cbdd2d6ca5c7d6a333e61092331f38af7cf", + "zh:b3ca45f2821a89af417787df8289cb4314b273d29555ad3b2a5ab98bb4816b3b", + "zh:da3c317f1db2469615ab40aa6baba63b5643bae7110ff855277a1fb9d8eb4f2c", + "zh:dc6430622a8dc5cdab359a8704aec81d3825ea1d305bbb3bbd032b1c6adfae0c", + "zh:fac0d2ddeadf9ec53da87922f666e1e73a603a611c57bcbc4b86ac2821619b1d", + ] +} diff --git a/perf/terraform/configs/local/terraform.tf b/perf/terraform/configs/local/terraform.tf new file mode 100644 index 000000000..22c745f5a --- /dev/null +++ b/perf/terraform/configs/local/terraform.tf @@ -0,0 +1,121 @@ +terraform { + required_providers { + aws = { + source = "hashicorp/aws" + version = "4.67.0" + } + } +} + +locals { + tags = { + Project = "perf" + } +} + +provider "aws" { + alias = "us-west-2" + region = "us-west-2" + default_tags { + tags = local.tags + } +} + +provider "aws" { + alias = "us-east-1" + region = "us-east-1" + default_tags { + tags = local.tags + } +} + + +variable "ci_enabled" { + type = bool + description = "Whether or not to create resources required to automate the setup in CI (e.g. IAM user, cleanup Lambda)" + default = false +} + +variable "long_lived_enabled" { + type = bool + description = "Whether or not to create long lived resources (in CI, used across runs; e.g. VPCs)" + default = false +} + +variable "short_lived_enabled" { + type = bool + description = "Whether or not to create short lived resources (in CI, specific to each run; e.g. EC2 instances)" + default = true +} + +module "ci" { + count = var.ci_enabled ? 1 : 0 + + source = "../../modules/ci" + + regions = ["us-west-2", "us-east-1"] + tags = local.tags + + providers = { + aws = aws.us-west-2 + } +} + +module "long_lived_server" { + count = var.long_lived_enabled ? 1 : 0 + + source = "../../modules/long_lived" + + region = "us-west-2" + ami = "ami-0747e613a2a1ff483" + + providers = { + aws = aws.us-west-2 + } +} + +module "long_lived_client" { + count = var.long_lived_enabled ? 1 : 0 + + source = "../../modules/long_lived" + + region = "us-east-1" + ami = "ami-06e46074ae430fba6" + + providers = { + aws = aws.us-east-1 + } +} + +module "short_lived_server" { + count = var.short_lived_enabled ? 1 : 0 + + source = "../../modules/short_lived" + + providers = { + aws = aws.us-west-2 + } + + depends_on = [module.long_lived_server] +} + +module "short_lived_client" { + count = var.short_lived_enabled ? 1 : 0 + + source = "../../modules/short_lived" + + providers = { + aws = aws.us-east-1 + } + + depends_on = [module.long_lived_client] +} + +output "client_ip" { + value = var.short_lived_enabled ? module.short_lived_client[0].public_ip : null +} + +output "server_ip" { + value = var.short_lived_enabled ? module.short_lived_server[0].public_ip : null +} + diff --git a/perf/terraform/configs/remote/.terraform.lock.hcl b/perf/terraform/configs/remote/.terraform.lock.hcl new file mode 100644 index 000000000..e490491e1 --- /dev/null +++ b/perf/terraform/configs/remote/.terraform.lock.hcl @@ -0,0 +1,44 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/archive" { + version = "2.3.0" + hashes = [ + "h1:NaDbOqAcA9d8DiAS5/6+5smXwN3/+twJGb3QRiz6pNw=", + "zh:0869128d13abe12b297b0cd13b8767f10d6bf047f5afc4215615aabc39c2eb4f", + "zh:481ed837d63ba3aa45dd8736da83e911e3509dee0e7961bf5c00ed2644f807b3", + "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", + "zh:9f08fe2977e2166849be24fb9f394e4d2697414d463f7996fd0d7beb4e19a29c", + "zh:9fe566deeafd460d27999ca0bbfd85426a5fcfcb40007b23884deb76da127b6f", + "zh:a1bd9a60925d9769e0da322e4523330ee86af9dc2e770cba1d0247a999ef29cb", + "zh:bb4094c8149f74308b22a87e1ac19bcccca76e8ef021b571074d9bccf1c0c6f0", + "zh:c8984c9def239041ce41ec8e19bbd76a49e74ed2024ff736dad60429dee89bcc", + "zh:ea4bb5ae73db1de3a586e62f39106f5e56770804a55aa5e6b4f642df973e0e75", + "zh:f44a9d596ecc3a8c5653f56ba0cd202ad93b49f76767f4608daf7260b813289e", + "zh:f5c5e6cc9f7f070020ab7d95fcc9ed8e20d5cf219978295a71236e22cbb6d508", + "zh:fd2273f51dcc8f43403bf1e425ba9db08a57c3ddcba5ad7a51742ccde21ca611", + ] +} + +provider "registry.terraform.io/hashicorp/aws" { + version = "4.67.0" + constraints = "4.67.0" + hashes = [ + "h1:5Zfo3GfRSWBaXs4TGQNOflr1XaYj6pRnVJLX5VAjFX4=", + "zh:0843017ecc24385f2b45f2c5fce79dc25b258e50d516877b3affee3bef34f060", + "zh:19876066cfa60de91834ec569a6448dab8c2518b8a71b5ca870b2444febddac6", + "zh:24995686b2ad88c1ffaa242e36eee791fc6070e6144f418048c4ce24d0ba5183", + "zh:4a002990b9f4d6d225d82cb2fb8805789ffef791999ee5d9cb1fef579aeff8f1", + "zh:559a2b5ace06b878c6de3ecf19b94fbae3512562f7a51e930674b16c2f606e29", + "zh:6a07da13b86b9753b95d4d8218f6dae874cf34699bca1470d6effbb4dee7f4b7", + "zh:768b3bfd126c3b77dc975c7c0e5db3207e4f9997cf41aa3385c63206242ba043", + "zh:7be5177e698d4b547083cc738b977742d70ed68487ce6f49ecd0c94dbf9d1362", + "zh:8b562a818915fb0d85959257095251a05c76f3467caa3ba95c583ba5fe043f9b", + "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", + "zh:9c385d03a958b54e2afd5279cd8c7cbdd2d6ca5c7d6a333e61092331f38af7cf", + "zh:b3ca45f2821a89af417787df8289cb4314b273d29555ad3b2a5ab98bb4816b3b", + "zh:da3c317f1db2469615ab40aa6baba63b5643bae7110ff855277a1fb9d8eb4f2c", + "zh:dc6430622a8dc5cdab359a8704aec81d3825ea1d305bbb3bbd032b1c6adfae0c", + "zh:fac0d2ddeadf9ec53da87922f666e1e73a603a611c57bcbc4b86ac2821619b1d", + ] +} diff --git a/perf/terraform/configs/remote/terraform.tf b/perf/terraform/configs/remote/terraform.tf new file mode 120000 index 000000000..e51ea571a --- /dev/null +++ b/perf/terraform/configs/remote/terraform.tf @@ -0,0 +1 @@ +../local/terraform.tf \ No newline at end of file diff --git a/perf/terraform/configs/remote/terraform_override.tf b/perf/terraform/configs/remote/terraform_override.tf new file mode 100644 index 000000000..e12102fb0 --- /dev/null +++ b/perf/terraform/configs/remote/terraform_override.tf @@ -0,0 +1,19 @@ +terraform { + backend "s3" { + bucket = "libp2p-terraform-state" + key = "github.com/libp2p/test-plans/perf/terraform/configs/remote/terraform.tfstate" + region = "us-west-2" + } +} + +variable "ci_enabled" { + default = true +} + +variable "long_lived_enabled" { + default = true +} + +variable "short_lived_enabled" { + default = false +} diff --git a/perf/terraform/modules/ci/cleanup.tf b/perf/terraform/modules/ci/cleanup.tf new file mode 100644 index 000000000..27e7bcedc --- /dev/null +++ b/perf/terraform/modules/ci/cleanup.tf @@ -0,0 +1,107 @@ +data "archive_file" "cleanup" { + type = "zip" + source_file = "${path.module}/files/cleanup.py" + output_path = "${path.module}/files/cleanup.zip" +} + +resource "aws_lambda_function" "cleanup" { + filename = data.archive_file.cleanup.output_path + source_code_hash = data.archive_file.cleanup.output_base64sha256 + function_name = "perf-cleanup" + role = aws_iam_role.cleanup.arn + handler = "cleanup.lambda_handler" + runtime = "python3.9" + memory_size = 128 + timeout = 30 + + environment { + variables = { + REGIONS = jsonencode(var.regions) + TAGS = jsonencode(var.tags) + MAX_AGE_MINUTES = 50 + } + } +} + +resource "aws_cloudwatch_log_group" "cleanup" { + name = "/aws/lambda/${aws_lambda_function.cleanup.function_name}" + retention_in_days = 7 +} + +resource "aws_cloudwatch_event_rule" "cleanup" { + name = "perf-cleanup-rule" + schedule_expression = "cron(37 * * * ? *)" # 00:37, 01:37, 02:37, ..., 23:37 +} + +resource "aws_cloudwatch_event_target" "cleanup" { + rule = aws_cloudwatch_event_rule.cleanup.name + arn = aws_lambda_function.cleanup.arn +} + +resource "aws_lambda_permission" "cleanup" { + statement_id = "AllowExecutionFromCloudWatch" + action = "lambda:InvokeFunction" + function_name = aws_lambda_function.cleanup.function_name + principal = "events.amazonaws.com" + source_arn = aws_cloudwatch_event_rule.cleanup.arn +} + +data "aws_iam_policy_document" "cleanup_assume_role" { + statement { + actions = ["sts:AssumeRole"] + + principals { + type = "Service" + identifiers = ["lambda.amazonaws.com"] + } + } +} + +resource "aws_iam_role" "cleanup" { + name = "perf-cleanup-lambda-role" + assume_role_policy = data.aws_iam_policy_document.cleanup_assume_role.json +} + +data "aws_iam_policy_document" "cleanup" { + statement { + actions = ["ec2:DescribeInstances", "ec2:DescribeTags", "ec2:DescribeKeyPairs"] + resources = ["*"] + effect = "Allow" + } + + statement { + actions = ["ec2:TerminateInstances", "ec2:DeleteKeyPair"] + resources = ["*"] + effect = "Allow" + + dynamic "condition" { + for_each = var.tags + + content { + test = "StringEquals" + variable = "ec2:ResourceTag/${condition.key}" + values = [condition.value] + } + } + } +} + +resource "aws_iam_role_policy" "cleanup" { + name = "perf-cleanup-lamda-policy" + role = aws_iam_role.cleanup.name + policy = data.aws_iam_policy_document.cleanup.json +} + +data "aws_iam_policy_document" "cleanup_logging" { + statement { + actions = ["logs:CreateLogStream", "logs:PutLogEvents"] + resources = ["${aws_cloudwatch_log_group.cleanup.arn}*"] + effect = "Allow" + } +} + +resource "aws_iam_role_policy" "cleanup_logging" { + name = "perf-lambda-logging" + role = aws_iam_role.cleanup.name + policy = data.aws_iam_policy_document.cleanup_logging.json +} diff --git a/perf/terraform/modules/ci/files/.gitignore b/perf/terraform/modules/ci/files/.gitignore new file mode 100644 index 000000000..47066beae --- /dev/null +++ b/perf/terraform/modules/ci/files/.gitignore @@ -0,0 +1,2 @@ +# generated ZIP for AWS Lambda +cleanup.zip diff --git a/perf/terraform/modules/ci/files/cleanup.json b/perf/terraform/modules/ci/files/cleanup.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/perf/terraform/modules/ci/files/cleanup.json @@ -0,0 +1 @@ +{} diff --git a/perf/terraform/modules/ci/files/cleanup.py b/perf/terraform/modules/ci/files/cleanup.py new file mode 100644 index 000000000..4cb2f483a --- /dev/null +++ b/perf/terraform/modules/ci/files/cleanup.py @@ -0,0 +1,45 @@ +import boto3 +import os +import json +import datetime + +regions = json.loads(os.environ['REGIONS']) # Assuming this is a JSON array +tags = json.loads(os.environ['TAGS']) # Assuming this is a JSON object +max_age_minutes = int(os.environ['MAX_AGE_MINUTES']) # Assuming this is an integer + +# TODO: Find and delete unused key pairs +def lambda_handler(event, context): + # iterate over all regions + for region in regions: + ec2 = boto3.client('ec2', region_name=region) + + now = datetime.datetime.now(datetime.timezone.utc) + + filters = [{'Name': 'instance-state-name', 'Values': ['running']}] + filters = filters + [{ + 'Name': 'tag:' + k, + 'Values': [v] + } for k, v in tags.items()] + + response = ec2.describe_instances(Filters=filters) + + instances = [] + + for reservation in response['Reservations']: + for instance in reservation['Instances']: + launch_time = instance['LaunchTime'] + instance_id = instance['InstanceId'] + + print( + f'Instance ID: {instance_id} has been running since {launch_time}.') + + if launch_time < now - datetime.timedelta(minutes=max_age_minutes): + print( + f'Instance ID: {instance_id} has been running for more than {max_age_minutes} minutes.') + instances.append(instance_id) + + if instances: + ec2.terminate_instances(InstanceIds=instances) + print(f'Terminating instances: {instances}') + + ec2.describe_ diff --git a/perf/terraform/modules/ci/files/cleanup.sh b/perf/terraform/modules/ci/files/cleanup.sh new file mode 100755 index 000000000..e540775c2 --- /dev/null +++ b/perf/terraform/modules/ci/files/cleanup.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +# This script can be used to test the cleanup lambda. +# It requires the AWS CLI and SAM CLI to be installed. +# You can get SAM CLI at https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html + +sam local invoke Cleanup --template cleanup.yml --event cleanup.json diff --git a/perf/terraform/modules/ci/files/cleanup.yml b/perf/terraform/modules/ci/files/cleanup.yml new file mode 100644 index 000000000..21336ff6f --- /dev/null +++ b/perf/terraform/modules/ci/files/cleanup.yml @@ -0,0 +1,19 @@ +AWSTemplateFormatVersion: '2010-09-09' +Transform: AWS::Serverless-2016-10-31 +Description: An AWS Lambda application. + +Resources: + Cleanup: + Type: AWS::Serverless::Function + Properties: + Handler: cleanup.lambda_handler + Runtime: python3.9 + CodeUri: . + Environment: + Variables: + REGIONS: '["us-west-2", "us-east-1"]' + TAGS: '{"Project":"perf", "Name":"node"}' + MAX_AGE_MINUTES: '30' + Policies: + - AmazonEC2FullAccess + Timeout: 30 diff --git a/perf/terraform/modules/ci/main.tf b/perf/terraform/modules/ci/main.tf new file mode 100644 index 000000000..6237e3306 --- /dev/null +++ b/perf/terraform/modules/ci/main.tf @@ -0,0 +1,38 @@ +terraform { + required_providers { + aws = { + source = "hashicorp/aws" + version = "4.67.0" + } + } +} + +variable "tags" { + type = map(string) + description = "Tags that the perf resources are tagged with" +} + +variable "regions" { + type = list(string) + description = "Regions that the perf resources are created in" +} + +resource "aws_iam_user" "perf" { + name = "perf" +} + +# TODO: Make the policy more restrictive; it needs to be able to create/destroy instances and key pairs +data "aws_iam_policy_document" "perf" { + statement { + actions = ["ec2:*"] + resources = ["*"] + effect = "Allow" + } +} + +resource "aws_iam_user_policy" "perf" { + name = "perf" + user = aws_iam_user.perf.name + + policy = data.aws_iam_policy_document.perf.json +} diff --git a/perf/terraform/user-data.sh b/perf/terraform/modules/long_lived/files/user-data.sh similarity index 100% rename from perf/terraform/user-data.sh rename to perf/terraform/modules/long_lived/files/user-data.sh diff --git a/perf/terraform/region/main.tf b/perf/terraform/modules/long_lived/main.tf similarity index 60% rename from perf/terraform/region/main.tf rename to perf/terraform/modules/long_lived/main.tf index 81a3db2bc..7fbc9588b 100644 --- a/perf/terraform/region/main.tf +++ b/perf/terraform/modules/long_lived/main.tf @@ -1,30 +1,26 @@ +terraform { + required_providers { + aws = { + source = "hashicorp/aws" + version = "4.67.0" + } + } +} + variable "region" { - description = "The AWS region to create resources in" + description = "The AWS region of the provider" } variable "ami" { description = "The Amazon Machine Image to use" } -variable "common_tags" { - type = map(string) - description = "Common tags to apply to all resources" -} - locals { availability_zone = "${var.region}a" } -provider "aws" { - region = var.region -} - resource "aws_vpc" "perf" { cidr_block = "10.0.0.0/16" - - tags = merge(var.common_tags, { - Name = "perf" - }) } resource "aws_subnet" "perf" { @@ -32,18 +28,10 @@ resource "aws_subnet" "perf" { cidr_block = "10.0.0.0/16" availability_zone = local.availability_zone map_public_ip_on_launch = true - - tags = merge(var.common_tags, { - Name = "perf" - }) } resource "aws_internet_gateway" "perf" { vpc_id = aws_vpc.perf.id - - tags = merge(var.common_tags, { - Name = "perf-igw" - }) } resource "aws_route_table" "perf" { @@ -53,10 +41,6 @@ resource "aws_route_table" "perf" { cidr_block = "0.0.0.0/0" gateway_id = aws_internet_gateway.perf.id } - - tags = merge(var.common_tags, { - Name = "perf-route-table" - }) } resource "aws_route_table_association" "perf" { @@ -105,39 +89,23 @@ resource "aws_security_group" "restricted_inbound" { protocol = "-1" cidr_blocks = ["0.0.0.0/0"] } - - tags = merge(var.common_tags, { - Name = "restricted_inbound_sg" - }) } -resource "aws_key_pair" "perf" { - key_name = "user-public-key" - public_key = file("./user.pub") -} - -resource "aws_instance" "node" { - ami = var.ami +resource "aws_launch_template" "perf" { + name = "perf-node" + image_id = var.ami instance_type = "m5n.8xlarge" - subnet_id = aws_subnet.perf.id - - key_name = aws_key_pair.perf.key_name - - vpc_security_group_ids = [aws_security_group.restricted_inbound.id] - # Debug via: # - /var/log/cloud-init.log and # - /var/log/cloud-init-output.log - user_data = file("./user-data.sh") - user_data_replace_on_change = true + user_data = filebase64("${path.module}/files/user-data.sh") - tags = merge(var.common_tags, { - Name = "node" - }) -} + instance_initiated_shutdown_behavior = "terminate" -output "node_public_ip" { - value = aws_instance.node.public_ip - description = "Public IP address of the node instance" + network_interfaces { + subnet_id = aws_subnet.perf.id + security_groups = [aws_security_group.restricted_inbound.id] + delete_on_termination = true + } } diff --git a/perf/terraform/modules/short_lived/files/.gitignore b/perf/terraform/modules/short_lived/files/.gitignore new file mode 100644 index 000000000..d53e7f9d3 --- /dev/null +++ b/perf/terraform/modules/short_lived/files/.gitignore @@ -0,0 +1,3 @@ +# generated SSH key +perf +perf.pub diff --git a/perf/terraform/modules/short_lived/main.tf b/perf/terraform/modules/short_lived/main.tf new file mode 100644 index 000000000..17782a51c --- /dev/null +++ b/perf/terraform/modules/short_lived/main.tf @@ -0,0 +1,29 @@ +terraform { + required_providers { + aws = { + source = "hashicorp/aws" + version = "4.67.0" + } + } +} + +resource "aws_key_pair" "perf" { + key_name_prefix = "perf-" + public_key = file("${path.module}/files/perf.pub") +} + +resource "aws_instance" "perf" { + tags = { + Name = "perf-node" + } + + launch_template { + name = "perf-node" + } + + key_name = aws_key_pair.perf.key_name +} + +output "public_ip" { + value = aws_instance.perf.public_ip +} diff --git a/perf/terraform/terraform.tf b/perf/terraform/terraform.tf deleted file mode 100644 index 79ad18050..000000000 --- a/perf/terraform/terraform.tf +++ /dev/null @@ -1,38 +0,0 @@ -terraform { - required_providers { - aws = { - source = "hashicorp/aws" - version = "~> 4.0" - } - } -} - -module "server_region" { - source = "./region" - region = "us-west-2" - ami = "ami-0747e613a2a1ff483" - - common_tags = { - Project = "perf" - } -} - -module "client_region" { - source = "./region" - region = "us-east-1" - ami = "ami-06e46074ae430fba6" - - common_tags = { - Project = "perf" - } -} - -output "server_public_ip" { - value = module.server_region.node_public_ip - description = "Public IP address of the server instance" -} - -output "client_public_ip" { - value = module.client_region.node_public_ip - description = "Public IP address of the client instance" -} From 9b1524da03c9d80e1de68a8bfa4eb4318f42170b Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 8 Jun 2023 10:49:50 +0900 Subject: [PATCH 114/143] Add config/local terraform lock updates --- perf/terraform/configs/local/.terraform.lock.hcl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/perf/terraform/configs/local/.terraform.lock.hcl b/perf/terraform/configs/local/.terraform.lock.hcl index e490491e1..32564df51 100644 --- a/perf/terraform/configs/local/.terraform.lock.hcl +++ b/perf/terraform/configs/local/.terraform.lock.hcl @@ -5,6 +5,7 @@ provider "registry.terraform.io/hashicorp/archive" { version = "2.3.0" hashes = [ "h1:NaDbOqAcA9d8DiAS5/6+5smXwN3/+twJGb3QRiz6pNw=", + "h1:OmE1tPjiST8iQp6fC0N3Xzur+q2RvgvD7Lz0TpKSRBw=", "zh:0869128d13abe12b297b0cd13b8767f10d6bf047f5afc4215615aabc39c2eb4f", "zh:481ed837d63ba3aa45dd8736da83e911e3509dee0e7961bf5c00ed2644f807b3", "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", @@ -25,6 +26,7 @@ provider "registry.terraform.io/hashicorp/aws" { constraints = "4.67.0" hashes = [ "h1:5Zfo3GfRSWBaXs4TGQNOflr1XaYj6pRnVJLX5VAjFX4=", + "h1:dCRc4GqsyfqHEMjgtlM1EympBcgTmcTkWaJmtd91+KA=", "zh:0843017ecc24385f2b45f2c5fce79dc25b258e50d516877b3affee3bef34f060", "zh:19876066cfa60de91834ec569a6448dab8c2518b8a71b5ca870b2444febddac6", "zh:24995686b2ad88c1ffaa242e36eee791fc6070e6144f418048c4ce24d0ba5183", From d38d8bd55d547dc5bc9284b03fa732e0e359ced8 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 8 Jun 2023 10:54:15 +0900 Subject: [PATCH 115/143] Update to latest rust master This includes https://github.com/libp2p/rust-libp2p/pull/4019. --- perf/impl/rust-libp2p/v0.52/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/impl/rust-libp2p/v0.52/Makefile b/perf/impl/rust-libp2p/v0.52/Makefile index 7fc46c59a..888185ee9 100644 --- a/perf/impl/rust-libp2p/v0.52/Makefile +++ b/perf/impl/rust-libp2p/v0.52/Makefile @@ -1,4 +1,4 @@ -commitSha := 9b765fa202c9ad69fcbbf4ea17de69762f46cfba +commitSha := ed14630672b66958d1da52ecbff03004f0c057c0 all: perf From 5f1a4ba051a11e8bf5847672c7df32ba62dce502 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 8 Jun 2023 10:58:29 +0900 Subject: [PATCH 116/143] fix(go-libp2p): use net.SplitHostPort --- perf/impl/go-libp2p/v0.27/main.go | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/perf/impl/go-libp2p/v0.27/main.go b/perf/impl/go-libp2p/v0.27/main.go index 7253382b8..942c536f7 100644 --- a/perf/impl/go-libp2p/v0.27/main.go +++ b/perf/impl/go-libp2p/v0.27/main.go @@ -5,7 +5,7 @@ import ( "encoding/json" "flag" "fmt" - "strings" + "net" "time" "github.com/libp2p/go-libp2p" @@ -26,16 +26,13 @@ func main() { downloadBytes := flag.Uint64("download-bytes", 0, "Download bytes") flag.Parse() - ipPort := strings.Split(*serverAddr, ":") - if len(ipPort) != 2 { - fmt.Println("Invalid server address format. Expected format: 'ip:port'") - return + host, port, err := net.SplitHostPort(*serverAddr) + if err != nil { + log.Fatal(err) } - ip := ipPort[0] - port := ipPort[1] - tcpMultiAddrStr := fmt.Sprintf("/ip4/%s/tcp/%s", ip, port) - quicMultiAddrStr := fmt.Sprintf("/ip4/%s/udp/%s/quic-v1", ip, port) + tcpMultiAddrStr := fmt.Sprintf("/ip4/%s/tcp/%s", host, port) + quicMultiAddrStr := fmt.Sprintf("/ip4/%s/udp/%s/quic-v1", host, port) opts := []libp2p.Option{ // Use TLS only instead of both TLS and Noise. Removes the From e5cb56b61e7892fb6f75d3df9ae1a7288052ffb5 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 8 Jun 2023 11:07:10 +0900 Subject: [PATCH 117/143] fix(go-libp2p): use log.Fatalf instead of panic --- perf/impl/go-libp2p/v0.27/main.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/perf/impl/go-libp2p/v0.27/main.go b/perf/impl/go-libp2p/v0.27/main.go index 942c536f7..62cd067f8 100644 --- a/perf/impl/go-libp2p/v0.27/main.go +++ b/perf/impl/go-libp2p/v0.27/main.go @@ -57,7 +57,7 @@ func main() { // Generate fake identity. priv, _, err := crypto.GenerateEd25519Key(&simpleReader{seed: 0}) if err != nil { - panic(err) + log.Fatalf("failed to generate key: %s", err) } opts = append(opts, libp2p.Identity(priv)) } else { @@ -66,7 +66,7 @@ func main() { h, err := libp2p.NewWithoutDefaults(opts...) if err != nil { - panic(err) + log.Fatalf("failed to instantiate libp2p: %s", err) } perf := NewPerfService(h) @@ -92,7 +92,7 @@ func main() { multiAddrStr = multiAddrStr + "/p2p/12D3KooWDpJ7As7BWAwRMfu1VU2WCqNjvq387JEYKDBj4kx6nXTN" serverInfo, err := peer.AddrInfoFromString(multiAddrStr) if err != nil { - panic(err) + log.Fatalf("failed to build address info: %s", err) } start := time.Now() @@ -101,13 +101,13 @@ func main() { // identify protocol to finish. _, err = h.Network().DialPeer(context.Background(), serverInfo.ID) if err != nil { - panic(err) + log.Fatalf("failed to dial peer: %s", err) } connectionEstablished := time.Since(start) upload, download, err := perf.RunPerf(context.Background(), serverInfo.ID, uint64(*uploadBytes), uint64(*downloadBytes)) if err != nil { - panic(err) + log.Fatalf("failed to execute perf: %s", err) } jsonB, err := json.Marshal(Result{ @@ -116,7 +116,7 @@ func main() { DownloadSeconds: download.Seconds(), }) if err != nil { - panic(err) + log.Fatalf("failed to marshal perf result: %s", err) } fmt.Println(string(jsonB)) From 38469e6c347df00e9ebb9a99edf83aca68203dac Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 8 Jun 2023 11:08:18 +0900 Subject: [PATCH 118/143] fix(https): use log.Falalf instead of panic --- perf/impl/https/v0.1/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/impl/https/v0.1/main.go b/perf/impl/https/v0.1/main.go index 9e9a89478..000e08724 100644 --- a/perf/impl/https/v0.1/main.go +++ b/perf/impl/https/v0.1/main.go @@ -192,7 +192,7 @@ func main() { DownloadSeconds: download.Seconds(), }) if err != nil { - panic(err) + log.Fatalf("failed to marshal perf result: %s", err) } fmt.Println(string(jsonB)) } From e28351d20005d68c662722d031dd7a9c577fefb6 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 8 Jun 2023 13:46:05 +0900 Subject: [PATCH 119/143] Document stable fake identity --- perf/impl/go-libp2p/v0.27/main.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/perf/impl/go-libp2p/v0.27/main.go b/perf/impl/go-libp2p/v0.27/main.go index 62cd067f8..bf58934b1 100644 --- a/perf/impl/go-libp2p/v0.27/main.go +++ b/perf/impl/go-libp2p/v0.27/main.go @@ -54,7 +54,11 @@ func main() { if *runServer { opts = append(opts, libp2p.ListenAddrStrings(tcpMultiAddrStr, quicMultiAddrStr)) - // Generate fake identity. + // Generate stable fake identity. + // + // Using a stable identity (i.e. peer ID) allows the client to + // connect to the server without a prior exchange of the + // server's peer ID. priv, _, err := crypto.GenerateEd25519Key(&simpleReader{seed: 0}) if err != nil { log.Fatalf("failed to generate key: %s", err) From a9cd2a297feede2ca59c3ac868458482a1dae1eb Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 8 Jun 2023 13:52:41 +0900 Subject: [PATCH 120/143] refactor(go-libp2p): don't reuse buf and use io.Copy io.Discard --- perf/impl/go-libp2p/v0.27/perf.go | 37 +++++++++++++------------------ 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/perf/impl/go-libp2p/v0.27/perf.go b/perf/impl/go-libp2p/v0.27/perf.go index d620abd76..17cc00122 100644 --- a/perf/impl/go-libp2p/v0.27/perf.go +++ b/perf/impl/go-libp2p/v0.27/perf.go @@ -34,9 +34,6 @@ func NewPerfService(h host.Host) *PerfService { } func (p *PerfService) PerfHandler(s network.Stream) { - buf := pool.Get(BlockSize) - defer pool.Put(buf) - u64Buf := make([]byte, 8) _, err := io.ReadFull(s, u64Buf) if err != nil { @@ -47,14 +44,14 @@ func (p *PerfService) PerfHandler(s network.Stream) { bytesToSend := binary.BigEndian.Uint64(u64Buf) - _, err = p.drainStream(context.Background(), s, buf) + _, err = p.drainStream(context.Background(), s) if err != nil { log.Errorw("err", err) s.Reset() return } - err = p.sendBytes(context.Background(), s, bytesToSend, buf) + err = p.sendBytes(context.Background(), s, bytesToSend) if err != nil { log.Errorw("err", err) s.Reset() @@ -63,7 +60,10 @@ func (p *PerfService) PerfHandler(s network.Stream) { } -func (ps *PerfService) sendBytes(ctx context.Context, s network.Stream, bytesToSend uint64, buf []byte) error { +func (ps *PerfService) sendBytes(ctx context.Context, s network.Stream, bytesToSend uint64) error { + buf := pool.Get(BlockSize) + defer pool.Put(buf) + for bytesToSend > 0 { toSend := buf if bytesToSend < BlockSize { @@ -81,18 +81,14 @@ func (ps *PerfService) sendBytes(ctx context.Context, s network.Stream, bytesToS return nil } -func (ps *PerfService) drainStream(ctx context.Context, s network.Stream, buf []byte) (uint64, error) { - var recvd uint64 - for { - n, err := s.Read(buf) - recvd += uint64(n) - if err == io.EOF { - return recvd, nil - } else if err != nil { - s.Reset() - return recvd, err - } +func (ps *PerfService) drainStream(ctx context.Context, s network.Stream) (uint64, error) { + var recvd int64 + recvd, err := io.Copy(io.Discard, s) + if err != nil && err != io.EOF { + s.Reset() + return uint64(recvd), err } + return uint64(recvd), nil } func (ps *PerfService) RunPerf(ctx context.Context, p peer.ID, bytesToSend uint64, bytesToRecv uint64) (time.Duration, time.Duration, error) { @@ -109,9 +105,6 @@ func (ps *PerfService) RunPerf(ctx context.Context, p peer.ID, bytesToSend uint6 rw: lzcon, } - buf := pool.Get(BlockSize) - defer pool.Put(buf) - sizeBuf := make([]byte, 8) binary.BigEndian.PutUint64(sizeBuf, bytesToRecv) @@ -121,14 +114,14 @@ func (ps *PerfService) RunPerf(ctx context.Context, p peer.ID, bytesToSend uint6 } sendStart := time.Now() - err = ps.sendBytes(ctx, s, bytesToSend, buf) + err = ps.sendBytes(ctx, s, bytesToSend) if err != nil { return 0, 0, err } sendDuration := time.Since(sendStart) recvStart := time.Now() - recvd, err := ps.drainStream(ctx, s, buf) + recvd, err := ps.drainStream(ctx, s) if err != nil { return sendDuration, 0, err } From 6e0fc1d7e8a71971e5fd33c758d1ee7ba1360bc1 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 8 Jun 2023 13:59:45 +0900 Subject: [PATCH 121/143] Revert "fix(go-libp2p): don't wait for identify when dialing" This reverts commit 9ad921ec5a734bb7e9d7b642a51249f47ce60342. --- perf/impl/go-libp2p/v0.27/main.go | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/perf/impl/go-libp2p/v0.27/main.go b/perf/impl/go-libp2p/v0.27/main.go index bf58934b1..914ce6e60 100644 --- a/perf/impl/go-libp2p/v0.27/main.go +++ b/perf/impl/go-libp2p/v0.27/main.go @@ -11,11 +11,8 @@ import ( "github.com/libp2p/go-libp2p" "github.com/libp2p/go-libp2p/core/crypto" "github.com/libp2p/go-libp2p/core/peer" - "github.com/libp2p/go-libp2p/core/peerstore" - tls "github.com/libp2p/go-libp2p/p2p/security/tls" - quic "github.com/libp2p/go-libp2p/p2p/transport/quic" - "github.com/libp2p/go-libp2p/p2p/transport/tcp" "github.com/multiformats/go-multiaddr" + tls "github.com/libp2p/go-libp2p/p2p/security/tls" ) func main() { @@ -100,10 +97,7 @@ func main() { } start := time.Now() - h.Peerstore().AddAddrs(serverInfo.ID, serverInfo.Addrs, peerstore.TempAddrTTL) - // Use h.Network().DialPeer() instead of h.Connect to skip waiting for - // identify protocol to finish. - _, err = h.Network().DialPeer(context.Background(), serverInfo.ID) + err = h.Connect(context.Background(), *serverInfo) if err != nil { log.Fatalf("failed to dial peer: %s", err) } From 88b6f34685162e7308eba27e01ab7983bcfbe10a Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 8 Jun 2023 14:00:55 +0900 Subject: [PATCH 122/143] Revert "fix(go-libp2p): don't wait for identify round trip" This reverts commit e1a49dad0704afcae0c444f6df840c157bea3e81. --- perf/impl/go-libp2p/v0.27/perf.go | 40 +------------------------------ 1 file changed, 1 insertion(+), 39 deletions(-) diff --git a/perf/impl/go-libp2p/v0.27/perf.go b/perf/impl/go-libp2p/v0.27/perf.go index 17cc00122..c748dda4a 100644 --- a/perf/impl/go-libp2p/v0.27/perf.go +++ b/perf/impl/go-libp2p/v0.27/perf.go @@ -12,7 +12,6 @@ import ( "github.com/libp2p/go-libp2p/core/host" "github.com/libp2p/go-libp2p/core/network" "github.com/libp2p/go-libp2p/core/peer" - msmux "github.com/multiformats/go-multistream" ) var log = logging.Logger("perf") @@ -92,18 +91,10 @@ func (ps *PerfService) drainStream(ctx context.Context, s network.Stream) (uint6 } func (ps *PerfService) RunPerf(ctx context.Context, p peer.ID, bytesToSend uint64, bytesToRecv uint64) (time.Duration, time.Duration, error) { - // Use ps.Host.Network().NewStream() instead of ps.Host.NewStream() to - // skip waiting for identify protocol to finish. - s, err := ps.Host.Network().NewStream(network.WithNoDial(ctx, "already dialed"), p) + s, err := ps.Host.NewStream(ctx, p, ID) if err != nil { return 0, 0, err } - s.SetProtocol(ID) - lzcon := msmux.NewMSSelect(s, ID) - s = &streamWrapper{ - Stream: s, - rw: lzcon, - } sizeBuf := make([]byte, 8) binary.BigEndian.PutUint64(sizeBuf, bytesToRecv) @@ -133,32 +124,3 @@ func (ps *PerfService) RunPerf(ctx context.Context, p peer.ID, bytesToSend uint6 return sendDuration, recvDuration, nil } - -type streamWrapper struct { - network.Stream - rw io.ReadWriteCloser -} - -func (s *streamWrapper) Read(b []byte) (int, error) { - return s.rw.Read(b) -} - -func (s *streamWrapper) Write(b []byte) (int, error) { - return s.rw.Write(b) -} - -func (s *streamWrapper) Close() error { - return s.rw.Close() -} - -func (s *streamWrapper) CloseWrite() error { - // Flush the handshake before closing, but ignore the error. The other - // end may have closed their side for reading. - // - // If something is wrong with the stream, the user will get on error on - // read instead. - if flusher, ok := s.rw.(interface{ Flush() error }); ok { - _ = flusher.Flush() - } - return s.Stream.CloseWrite() -} From a8ded97b984a8816ee9f3e772d2877d1702be35d Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 8 Jun 2023 14:02:27 +0900 Subject: [PATCH 123/143] Revert "fix(go-libp2p): use NewWithoutDefaults to disable Noise" This reverts commit f6b968a80896dff08ca231c3ddb16899a6c3b4a4. --- perf/impl/go-libp2p/v0.27/main.go | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/perf/impl/go-libp2p/v0.27/main.go b/perf/impl/go-libp2p/v0.27/main.go index 914ce6e60..de4e85524 100644 --- a/perf/impl/go-libp2p/v0.27/main.go +++ b/perf/impl/go-libp2p/v0.27/main.go @@ -36,16 +36,6 @@ func main() { // additional multistream-select security protocol negotiation. // Thus makes it easier to compare with TCP+TLS+HTTP/2 libp2p.Security(tls.ID, tls.New), - - libp2p.DefaultListenAddrs, - libp2p.Transport(tcp.NewTCPTransport), - libp2p.Transport(quic.NewTransport), - libp2p.DefaultMuxers, - libp2p.DefaultPeerstore, - libp2p.DefaultResourceManager, - libp2p.DefaultConnectionManager, - libp2p.DefaultMultiaddrResolver, - libp2p.DefaultPrometheusRegisterer, } if *runServer { @@ -61,11 +51,9 @@ func main() { log.Fatalf("failed to generate key: %s", err) } opts = append(opts, libp2p.Identity(priv)) - } else { - opts = append(opts, libp2p.RandomIdentity) } - h, err := libp2p.NewWithoutDefaults(opts...) + h, err := libp2p.New(opts...) if err != nil { log.Fatalf("failed to instantiate libp2p: %s", err) } From 13e244b6515e5d324f3cbed1f77b92ad1c37b49a Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 8 Jun 2023 14:04:02 +0900 Subject: [PATCH 124/143] Revert "fix(go-libp2p): use tls only" This reverts commit 388886f3f6a419632cca5fefb240844b0cce9e8b. --- perf/impl/go-libp2p/v0.27/main.go | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/perf/impl/go-libp2p/v0.27/main.go b/perf/impl/go-libp2p/v0.27/main.go index de4e85524..36ef75318 100644 --- a/perf/impl/go-libp2p/v0.27/main.go +++ b/perf/impl/go-libp2p/v0.27/main.go @@ -12,7 +12,6 @@ import ( "github.com/libp2p/go-libp2p/core/crypto" "github.com/libp2p/go-libp2p/core/peer" "github.com/multiformats/go-multiaddr" - tls "github.com/libp2p/go-libp2p/p2p/security/tls" ) func main() { @@ -31,13 +30,7 @@ func main() { tcpMultiAddrStr := fmt.Sprintf("/ip4/%s/tcp/%s", host, port) quicMultiAddrStr := fmt.Sprintf("/ip4/%s/udp/%s/quic-v1", host, port) - opts := []libp2p.Option{ - // Use TLS only instead of both TLS and Noise. Removes the - // additional multistream-select security protocol negotiation. - // Thus makes it easier to compare with TCP+TLS+HTTP/2 - libp2p.Security(tls.ID, tls.New), - } - + var opts []libp2p.Option if *runServer { opts = append(opts, libp2p.ListenAddrStrings(tcpMultiAddrStr, quicMultiAddrStr)) From 57c99f871619cb6c76b95fe31178ed7b47622941 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 8 Jun 2023 14:48:15 +0900 Subject: [PATCH 125/143] Update results json --- perf/runner/benchmark-results.json | 4724 ++++++++++++++-------------- 1 file changed, 2362 insertions(+), 2362 deletions(-) diff --git a/perf/runner/benchmark-results.json b/perf/runner/benchmark-results.json index 7d0166e21..cad023b3a 100644 --- a/perf/runner/benchmark-results.json +++ b/perf/runner/benchmark-results.json @@ -7,29 +7,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.074363976, - "uploadSeconds": 0.998871022, - "downloadSeconds": 4e-8 + "connectionEstablishedSeconds": 0.072449675, + "uploadSeconds": 1.030402714, + "downloadSeconds": 6.2e-8 }, { - "connectionEstablishedSeconds": 0.062225376, - "uploadSeconds": 0.970638047, - "downloadSeconds": 4.5e-8 + "connectionEstablishedSeconds": 0.065078019, + "uploadSeconds": 1.01713714, + "downloadSeconds": 5.3e-8 }, { - "connectionEstablishedSeconds": 0.061977784, - "uploadSeconds": 0.964050368, - "downloadSeconds": 8.8e-8 + "connectionEstablishedSeconds": 0.062098232, + "uploadSeconds": 0.96615869, + "downloadSeconds": 5.5e-8 }, { - "connectionEstablishedSeconds": 0.066506366, - "uploadSeconds": 1.035592918, - "downloadSeconds": 6.1e-8 + "connectionEstablishedSeconds": 0.063812558, + "uploadSeconds": 0.998745941, + "downloadSeconds": 5.6e-8 }, { - "connectionEstablishedSeconds": 0.066534943, - "uploadSeconds": 1.034859392, - "downloadSeconds": 4.8e-8 + "connectionEstablishedSeconds": 0.064916563, + "uploadSeconds": 1.00571755, + "downloadSeconds": 9.1e-8 } ], "implementation": "quic-go", @@ -39,29 +39,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.127705953, - "uploadSeconds": 45.946316634, - "downloadSeconds": 0.062300209 + "connectionEstablishedSeconds": 0.131605383, + "uploadSeconds": 48.446660109, + "downloadSeconds": 0.065213711 }, { - "connectionEstablishedSeconds": 0.126080405, - "uploadSeconds": 43.658456912, - "downloadSeconds": 0.06279113 + "connectionEstablishedSeconds": 0.125085683, + "uploadSeconds": 45.941211022, + "downloadSeconds": 0.062245307 }, { - "connectionEstablishedSeconds": 0.12689833, - "uploadSeconds": 45.632169605, - "downloadSeconds": 0.063284608 + "connectionEstablishedSeconds": 0.123359879, + "uploadSeconds": 45.639332467, + "downloadSeconds": 0.061656387 }, { - "connectionEstablishedSeconds": 0.122602188, - "uploadSeconds": 44.129207306, - "downloadSeconds": 0.061105233 + "connectionEstablishedSeconds": 0.130839372, + "uploadSeconds": 48.523818032, + "downloadSeconds": 0.065057067 }, { - "connectionEstablishedSeconds": 0.125174996, - "uploadSeconds": 44.437749805, - "downloadSeconds": 0.062352019 + "connectionEstablishedSeconds": 0.126453412, + "uploadSeconds": 47.064771282, + "downloadSeconds": 0.063175669 } ], "implementation": "rust-libp2p", @@ -71,29 +71,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.069554853, - "uploadSeconds": 20.167791138, - "downloadSeconds": 0.0001142 + "connectionEstablishedSeconds": 0.065353727, + "uploadSeconds": 12.262468399, + "downloadSeconds": 0.000167363 }, { - "connectionEstablishedSeconds": 0.063700205, - "uploadSeconds": 10.026282075, - "downloadSeconds": 0.000061025 + "connectionEstablishedSeconds": 0.061081125, + "uploadSeconds": 8.820958739, + "downloadSeconds": 0.000227147 }, { - "connectionEstablishedSeconds": 0.062852666, - "uploadSeconds": 13.39213996, - "downloadSeconds": 0.000186704 + "connectionEstablishedSeconds": 0.065143053, + "uploadSeconds": 12.975333062, + "downloadSeconds": 0.000115633 }, { - "connectionEstablishedSeconds": 0.061400863, - "uploadSeconds": 14.065481592, - "downloadSeconds": 0.000118338 + "connectionEstablishedSeconds": 0.063208525, + "uploadSeconds": 13.790904599, + "downloadSeconds": 0.000049341 }, { - "connectionEstablishedSeconds": 0.064775716, - "uploadSeconds": 13.403064772, - "downloadSeconds": 0.000165197 + "connectionEstablishedSeconds": 0.062556533, + "uploadSeconds": 11.182217787, + "downloadSeconds": 0.000053128 } ], "implementation": "rust-libp2p", @@ -103,29 +103,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.070222265, - "uploadSeconds": 1.4518498530000001, - "downloadSeconds": 0.000048946 + "connectionEstablishedSeconds": 0.072534418, + "uploadSeconds": 1.462708575, + "downloadSeconds": 0.000160756 }, { - "connectionEstablishedSeconds": 0.065152611, - "uploadSeconds": 1.436151888, - "downloadSeconds": 0.000038165 + "connectionEstablishedSeconds": 0.066319403, + "uploadSeconds": 1.46642264, + "downloadSeconds": 0.00006893 }, { - "connectionEstablishedSeconds": 0.065866337, - "uploadSeconds": 1.458817775, - "downloadSeconds": 0.000039511 + "connectionEstablishedSeconds": 0.065209059, + "uploadSeconds": 1.438553374, + "downloadSeconds": 0.000052726 }, { - "connectionEstablishedSeconds": 0.062364177, - "uploadSeconds": 1.375811427, - "downloadSeconds": 0.000045021 + "connectionEstablishedSeconds": 0.065100121, + "uploadSeconds": 1.4122218069999999, + "downloadSeconds": 0.0000389 }, { - "connectionEstablishedSeconds": 0.06632095, - "uploadSeconds": 1.470985776, - "downloadSeconds": 0.000065078 + "connectionEstablishedSeconds": 0.065734243, + "uploadSeconds": 1.459448772, + "downloadSeconds": 0.000124337 } ], "implementation": "rust-libp2p-quinn", @@ -136,28 +136,28 @@ "result": [ { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.66607993, - "downloadSeconds": 0.000004442 + "uploadSeconds": 2.96921235, + "downloadSeconds": 0.00000452 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.731363119, - "downloadSeconds": 0.000004605 + "uploadSeconds": 2.746917199, + "downloadSeconds": 0.000004984 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.702454247, - "downloadSeconds": 0.000002261 + "uploadSeconds": 2.864667991, + "downloadSeconds": 0.000007865 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.885055072, - "downloadSeconds": 0.00000493 + "uploadSeconds": 2.83754267, + "downloadSeconds": 0.000004523 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.690581079, - "downloadSeconds": 0.000002423 + "uploadSeconds": 3.049346733, + "downloadSeconds": 0.000004667 } ], "implementation": "https", @@ -167,29 +167,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.193212109, - "uploadSeconds": 2.88003278, - "downloadSeconds": 0.125641699 + "connectionEstablishedSeconds": 0.257613059, + "uploadSeconds": 2.957171284, + "downloadSeconds": 0.125790574 }, { - "connectionEstablishedSeconds": 0.181535503, - "uploadSeconds": 2.712291289, - "downloadSeconds": 0.118133213 + "connectionEstablishedSeconds": 0.245230275, + "uploadSeconds": 3.006494356, + "downloadSeconds": 0.120326062 }, { - "connectionEstablishedSeconds": 0.190919285, - "uploadSeconds": 2.870908507, - "downloadSeconds": 0.125196908 + "connectionEstablishedSeconds": 0.24409476, + "uploadSeconds": 3.012811311, + "downloadSeconds": 0.119716713 }, { - "connectionEstablishedSeconds": 0.192510197, - "uploadSeconds": 2.898111663, - "downloadSeconds": 0.12652688 + "connectionEstablishedSeconds": 0.263280449, + "uploadSeconds": 3.167721294, + "downloadSeconds": 0.128946405 }, { - "connectionEstablishedSeconds": 0.193803107, - "uploadSeconds": 2.893479047, - "downloadSeconds": 0.126186436 + "connectionEstablishedSeconds": 0.254791811, + "uploadSeconds": 3.138565841, + "downloadSeconds": 0.125131355 } ], "implementation": "go-libp2p", @@ -199,29 +199,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.067236185, - "uploadSeconds": 1.306191737, - "downloadSeconds": 0.063233675 + "connectionEstablishedSeconds": 0.127486232, + "uploadSeconds": 1.273493851, + "downloadSeconds": 0.061723295 }, { - "connectionEstablishedSeconds": 0.06770958, - "uploadSeconds": 1.30817735, - "downloadSeconds": 0.063352606 + "connectionEstablishedSeconds": 0.131678454, + "uploadSeconds": 1.316089244, + "downloadSeconds": 0.06383276 }, { - "connectionEstablishedSeconds": 0.064357463, - "uploadSeconds": 1.23558667, - "downloadSeconds": 0.059910762 + "connectionEstablishedSeconds": 0.127641785, + "uploadSeconds": 1.281985034, + "downloadSeconds": 0.062096237 }, { - "connectionEstablishedSeconds": 0.064052972, - "uploadSeconds": 1.25881874, - "downloadSeconds": 0.060944813 + "connectionEstablishedSeconds": 0.128318443, + "uploadSeconds": 1.287210642, + "downloadSeconds": 0.062603176 }, { - "connectionEstablishedSeconds": 0.065543969, - "uploadSeconds": 1.281249855, - "downloadSeconds": 0.06208869 + "connectionEstablishedSeconds": 0.126235861, + "uploadSeconds": 1.264455668, + "downloadSeconds": 0.061309238 } ], "implementation": "go-libp2p", @@ -241,29 +241,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.06250556, - "uploadSeconds": 5.96e-7, - "downloadSeconds": 1.025502528 + "connectionEstablishedSeconds": 0.066849418, + "uploadSeconds": 8.42e-7, + "downloadSeconds": 1.148469656 }, { - "connectionEstablishedSeconds": 0.063743829, - "uploadSeconds": 6.02e-7, - "downloadSeconds": 1.052553003 + "connectionEstablishedSeconds": 0.064916464, + "uploadSeconds": 5.89e-7, + "downloadSeconds": 1.065743155 }, { - "connectionEstablishedSeconds": 0.06598807, - "uploadSeconds": 7.18e-7, - "downloadSeconds": 1.082953226 + "connectionEstablishedSeconds": 0.065089258, + "uploadSeconds": 5.71e-7, + "downloadSeconds": 1.069833204 }, { - "connectionEstablishedSeconds": 0.064441008, - "uploadSeconds": 5.23e-7, - "downloadSeconds": 1.073724122 + "connectionEstablishedSeconds": 0.063360127, + "uploadSeconds": 5.66e-7, + "downloadSeconds": 1.362412545 }, { - "connectionEstablishedSeconds": 0.063019322, - "uploadSeconds": 5.81e-7, - "downloadSeconds": 1.035937028 + "connectionEstablishedSeconds": 0.064698489, + "uploadSeconds": 5.9e-7, + "downloadSeconds": 1.065152768 } ], "implementation": "quic-go", @@ -273,29 +273,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.120555118, - "uploadSeconds": 0.060273181, - "downloadSeconds": 43.102938507 + "connectionEstablishedSeconds": 0.124287626, + "uploadSeconds": 0.000002103, + "downloadSeconds": 44.196140181 }, { - "connectionEstablishedSeconds": 0.124299934, - "uploadSeconds": 0.061979403, - "downloadSeconds": 44.391264 + "connectionEstablishedSeconds": 0.124831338, + "uploadSeconds": 0.000002011, + "downloadSeconds": 44.612427596 }, { - "connectionEstablishedSeconds": 0.124262374, - "uploadSeconds": 0.061933096, - "downloadSeconds": 44.363202222 + "connectionEstablishedSeconds": 0.123545103, + "uploadSeconds": 0.000001764, + "downloadSeconds": 43.579652838 }, { - "connectionEstablishedSeconds": 0.129200044, - "uploadSeconds": 0.064478175, - "downloadSeconds": 45.197337627 + "connectionEstablishedSeconds": 0.130886785, + "uploadSeconds": 0.000001755, + "downloadSeconds": 47.576309607 }, { - "connectionEstablishedSeconds": 0.122438267, - "uploadSeconds": 0.061086155, - "downloadSeconds": 45.309849929 + "connectionEstablishedSeconds": 0.121452779, + "uploadSeconds": 0.000002187, + "downloadSeconds": 44.545545321 } ], "implementation": "rust-libp2p", @@ -305,29 +305,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.065351071, - "uploadSeconds": 0.127458408, - "downloadSeconds": 12.827548861 + "connectionEstablishedSeconds": 0.06348953, + "uploadSeconds": 0.062120395, + "downloadSeconds": 20.69702088 }, { - "connectionEstablishedSeconds": 0.063043839, - "uploadSeconds": 0.122955691, - "downloadSeconds": 13.376663548 + "connectionEstablishedSeconds": 0.063186779, + "uploadSeconds": 0.061815366, + "downloadSeconds": 15.684835977 }, { - "connectionEstablishedSeconds": 0.065057648, - "uploadSeconds": 0.126759065, - "downloadSeconds": 12.731502078 + "connectionEstablishedSeconds": 0.066841607, + "uploadSeconds": 0.06544202, + "downloadSeconds": 10.861424959 }, { - "connectionEstablishedSeconds": 0.061858544, - "uploadSeconds": 0.12052888, - "downloadSeconds": 12.507266782 + "connectionEstablishedSeconds": 0.062966328, + "uploadSeconds": 0.061589204, + "downloadSeconds": 12.449638803 }, { - "connectionEstablishedSeconds": 0.062446706, - "uploadSeconds": 0.121626442, - "downloadSeconds": 12.387055489 + "connectionEstablishedSeconds": 0.063937979, + "uploadSeconds": 0.062556162, + "downloadSeconds": 14.921888036 } ], "implementation": "rust-libp2p", @@ -337,29 +337,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.064164513, - "uploadSeconds": 0.124420796, - "downloadSeconds": 1.419924904 + "connectionEstablishedSeconds": 0.067401915, + "uploadSeconds": 0.130826389, + "downloadSeconds": 1.41032336 }, { - "connectionEstablishedSeconds": 0.062919568, - "uploadSeconds": 0.122697163, - "downloadSeconds": 1.338096594 + "connectionEstablishedSeconds": 0.065353235, + "uploadSeconds": 0.127452583, + "downloadSeconds": 1.378807626 }, { - "connectionEstablishedSeconds": 0.066353865, - "uploadSeconds": 0.129322245, - "downloadSeconds": 1.390287443 + "connectionEstablishedSeconds": 0.061499164, + "uploadSeconds": 0.119836231, + "downloadSeconds": 1.287433224 }, { - "connectionEstablishedSeconds": 0.066876243, - "uploadSeconds": 0.130102589, - "downloadSeconds": 1.404477995 + "connectionEstablishedSeconds": 0.063043108, + "uploadSeconds": 0.12275197, + "downloadSeconds": 1.3262028510000001 }, { - "connectionEstablishedSeconds": 0.064229343, - "uploadSeconds": 0.125172202, - "downloadSeconds": 1.338670638 + "connectionEstablishedSeconds": 0.065985328, + "uploadSeconds": 0.128694935, + "downloadSeconds": 1.554000195 } ], "implementation": "rust-libp2p-quinn", @@ -370,28 +370,28 @@ "result": [ { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188675885, - "downloadSeconds": 2.8317920130000003 + "uploadSeconds": 0.186182973, + "downloadSeconds": 2.619372302 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.19518273, - "downloadSeconds": 3.162140193 + "uploadSeconds": 0.193889311, + "downloadSeconds": 2.824401632 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185010404, - "downloadSeconds": 2.788954458 + "uploadSeconds": 0.18165888, + "downloadSeconds": 2.657601003 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183908629, - "downloadSeconds": 2.653023389 + "uploadSeconds": 0.186969921, + "downloadSeconds": 2.6911300970000003 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190967701, - "downloadSeconds": 2.797767328 + "uploadSeconds": 0.189217967, + "downloadSeconds": 2.700721686 } ], "implementation": "https", @@ -401,29 +401,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.192624886, - "uploadSeconds": 0.000002282, - "downloadSeconds": 3.089672318 + "connectionEstablishedSeconds": 0.25134947, + "uploadSeconds": 0.000051543, + "downloadSeconds": 3.312918919 }, { - "connectionEstablishedSeconds": 0.194334156, - "uploadSeconds": 0.000002163, - "downloadSeconds": 3.321315513 + "connectionEstablishedSeconds": 0.244010043, + "uploadSeconds": 0.000034203, + "downloadSeconds": 2.875339677 }, { - "connectionEstablishedSeconds": 0.193377894, - "uploadSeconds": 0.000002503, - "downloadSeconds": 3.049396372 + "connectionEstablishedSeconds": 0.248259003, + "uploadSeconds": 0.000049219, + "downloadSeconds": 3.124084551 }, { - "connectionEstablishedSeconds": 0.18416813, - "uploadSeconds": 0.000002552, - "downloadSeconds": 2.901573697 + "connectionEstablishedSeconds": 0.252905873, + "uploadSeconds": 0.000027753, + "downloadSeconds": 3.037485126 }, { - "connectionEstablishedSeconds": 0.184138889, - "uploadSeconds": 0.00000249, - "downloadSeconds": 2.907330639 + "connectionEstablishedSeconds": 0.253081873, + "uploadSeconds": 0.00005523, + "downloadSeconds": 3.170042065 } ], "implementation": "go-libp2p", @@ -433,29 +433,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.067938169, - "uploadSeconds": 0.00000159, - "downloadSeconds": 1.373367014 + "connectionEstablishedSeconds": 0.131181146, + "uploadSeconds": 0.000030275, + "downloadSeconds": 1.354067741 }, { - "connectionEstablishedSeconds": 0.067721805, - "uploadSeconds": 0.000001792, - "downloadSeconds": 1.372499001 + "connectionEstablishedSeconds": 0.127718116, + "uploadSeconds": 0.000049603, + "downloadSeconds": 1.285225673 }, { - "connectionEstablishedSeconds": 0.06796363, - "uploadSeconds": 0.000001391, - "downloadSeconds": 1.376050306 + "connectionEstablishedSeconds": 0.125049804, + "uploadSeconds": 0.000051739, + "downloadSeconds": 1.316503146 }, { - "connectionEstablishedSeconds": 0.067016664, - "uploadSeconds": 0.00000173, - "downloadSeconds": 1.3715384 + "connectionEstablishedSeconds": 0.130920731, + "uploadSeconds": 0.000052412, + "downloadSeconds": 1.359474152 }, { - "connectionEstablishedSeconds": 0.067221814, - "uploadSeconds": 0.000013465, - "downloadSeconds": 1.365336662 + "connectionEstablishedSeconds": 0.132994649, + "uploadSeconds": 0.000028668, + "downloadSeconds": 1.396280989 } ], "implementation": "go-libp2p", @@ -475,504 +475,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.065882054, - "uploadSeconds": 0.000001938, - "downloadSeconds": 0.063329545 + "connectionEstablishedSeconds": 0.066765497, + "uploadSeconds": 8.49e-7, + "downloadSeconds": 0.064509165 }, { - "connectionEstablishedSeconds": 0.066028968, - "uploadSeconds": 0.000001958, - "downloadSeconds": 0.064285497 + "connectionEstablishedSeconds": 0.065249817, + "uploadSeconds": 0.000002064, + "downloadSeconds": 0.063428602 }, { - "connectionEstablishedSeconds": 0.065069427, - "uploadSeconds": 0.000001963, - "downloadSeconds": 0.063319462 + "connectionEstablishedSeconds": 0.064323673, + "uploadSeconds": 0.000001848, + "downloadSeconds": 0.062542597 }, { - "connectionEstablishedSeconds": 0.063809338, - "uploadSeconds": 0.000002068, - "downloadSeconds": 0.062120713 + "connectionEstablishedSeconds": 0.064078296, + "uploadSeconds": 0.000001893, + "downloadSeconds": 0.062267341 }, { - "connectionEstablishedSeconds": 0.064972946, - "uploadSeconds": 0.000001974, - "downloadSeconds": 0.063323896 + "connectionEstablishedSeconds": 0.064892548, + "uploadSeconds": 0.000001798, + "downloadSeconds": 0.063135283 }, { - "connectionEstablishedSeconds": 0.06294058, - "uploadSeconds": 0.000001836, - "downloadSeconds": 0.06117457 + "connectionEstablishedSeconds": 0.066085712, + "uploadSeconds": 0.000001869, + "downloadSeconds": 0.064364651 }, { - "connectionEstablishedSeconds": 0.062514388, - "uploadSeconds": 0.000001753, - "downloadSeconds": 0.060786311 + "connectionEstablishedSeconds": 0.063996537, + "uploadSeconds": 6.61e-7, + "downloadSeconds": 0.062301982 }, { - "connectionEstablishedSeconds": 0.066043205, - "uploadSeconds": 0.000001912, - "downloadSeconds": 0.064258799 + "connectionEstablishedSeconds": 0.06546416, + "uploadSeconds": 7.56e-7, + "downloadSeconds": 0.063875737 }, { - "connectionEstablishedSeconds": 0.062835234, - "uploadSeconds": 0.000001934, - "downloadSeconds": 0.061143225 + "connectionEstablishedSeconds": 0.065416165, + "uploadSeconds": 6.94e-7, + "downloadSeconds": 0.063732626 }, { - "connectionEstablishedSeconds": 0.064499184, - "uploadSeconds": 0.00000188, - "downloadSeconds": 0.062795234 + "connectionEstablishedSeconds": 0.064864606, + "uploadSeconds": 0.000001795, + "downloadSeconds": 0.063192263 }, { - "connectionEstablishedSeconds": 0.064632049, - "uploadSeconds": 0.000001843, - "downloadSeconds": 0.063159666 + "connectionEstablishedSeconds": 0.065476116, + "uploadSeconds": 0.000001934, + "downloadSeconds": 0.063629997 }, { - "connectionEstablishedSeconds": 0.064775522, - "uploadSeconds": 0.000001884, - "downloadSeconds": 0.063102507 + "connectionEstablishedSeconds": 0.0631728, + "uploadSeconds": 0.000001744, + "downloadSeconds": 0.061417554 }, { - "connectionEstablishedSeconds": 0.065422199, - "uploadSeconds": 0.000001718, - "downloadSeconds": 0.063710272 + "connectionEstablishedSeconds": 0.063835369, + "uploadSeconds": 0.000001859, + "downloadSeconds": 0.06205733 }, { - "connectionEstablishedSeconds": 0.063474621, - "uploadSeconds": 7.79e-7, - "downloadSeconds": 0.061750648 + "connectionEstablishedSeconds": 0.06236461, + "uploadSeconds": 0.000001774, + "downloadSeconds": 0.060755829 }, { - "connectionEstablishedSeconds": 0.065575925, - "uploadSeconds": 0.000001815, - "downloadSeconds": 0.06392008 + "connectionEstablishedSeconds": 0.066131451, + "uploadSeconds": 0.000001886, + "downloadSeconds": 0.064495405 }, { - "connectionEstablishedSeconds": 0.060809381, - "uploadSeconds": 0.000001796, - "downloadSeconds": 0.059148284 + "connectionEstablishedSeconds": 0.064163352, + "uploadSeconds": 0.000001812, + "downloadSeconds": 0.062487802 }, { - "connectionEstablishedSeconds": 0.064426255, - "uploadSeconds": 8.72e-7, - "downloadSeconds": 0.064450311 + "connectionEstablishedSeconds": 0.065808614, + "uploadSeconds": 0.000001739, + "downloadSeconds": 0.065856638 }, { - "connectionEstablishedSeconds": 0.065902382, - "uploadSeconds": 7.82e-7, - "downloadSeconds": 0.064262953 + "connectionEstablishedSeconds": 0.064721061, + "uploadSeconds": 6.82e-7, + "downloadSeconds": 0.063039484 }, { - "connectionEstablishedSeconds": 0.063041009, - "uploadSeconds": 0.000001851, - "downloadSeconds": 0.061372132 + "connectionEstablishedSeconds": 0.063967381, + "uploadSeconds": 0.000001846, + "downloadSeconds": 0.062232549 }, { - "connectionEstablishedSeconds": 0.061666911, - "uploadSeconds": 0.000001891, - "downloadSeconds": 0.060006363 + "connectionEstablishedSeconds": 0.063330984, + "uploadSeconds": 0.000001814, + "downloadSeconds": 0.061504769 }, { - "connectionEstablishedSeconds": 0.062326508, - "uploadSeconds": 0.000001916, - "downloadSeconds": 0.060670203 + "connectionEstablishedSeconds": 0.06485703, + "uploadSeconds": 0.000001917, + "downloadSeconds": 0.063242253 }, { - "connectionEstablishedSeconds": 0.064942447, - "uploadSeconds": 7.62e-7, - "downloadSeconds": 0.063298343 + "connectionEstablishedSeconds": 0.062530353, + "uploadSeconds": 6.99e-7, + "downloadSeconds": 0.061033139 }, { - "connectionEstablishedSeconds": 0.062837601, - "uploadSeconds": 0.000001798, - "downloadSeconds": 0.061152921 + "connectionEstablishedSeconds": 0.063668019, + "uploadSeconds": 0.000001716, + "downloadSeconds": 0.061979884 }, { - "connectionEstablishedSeconds": 0.0633203, - "uploadSeconds": 0.000001788, - "downloadSeconds": 0.061746749 + "connectionEstablishedSeconds": 0.064174072, + "uploadSeconds": 7.09e-7, + "downloadSeconds": 0.062551597 }, { - "connectionEstablishedSeconds": 0.063357873, - "uploadSeconds": 0.000001791, - "downloadSeconds": 0.061667817 + "connectionEstablishedSeconds": 0.065585093, + "uploadSeconds": 7.62e-7, + "downloadSeconds": 0.063813559 }, { - "connectionEstablishedSeconds": 0.065345298, - "uploadSeconds": 0.000001732, - "downloadSeconds": 0.063618743 + "connectionEstablishedSeconds": 0.06321931, + "uploadSeconds": 0.000001777, + "downloadSeconds": 0.06151385 }, { - "connectionEstablishedSeconds": 0.063207892, - "uploadSeconds": 0.000001772, - "downloadSeconds": 0.061785442 + "connectionEstablishedSeconds": 0.061412259, + "uploadSeconds": 0.000001777, + "downloadSeconds": 0.059813195 }, { - "connectionEstablishedSeconds": 0.064623499, - "uploadSeconds": 0.00000168, - "downloadSeconds": 0.062839582 + "connectionEstablishedSeconds": 0.063207574, + "uploadSeconds": 0.000001789, + "downloadSeconds": 0.061549663 }, { - "connectionEstablishedSeconds": 0.065077103, - "uploadSeconds": 0.000001862, - "downloadSeconds": 0.063396746 + "connectionEstablishedSeconds": 0.063484349, + "uploadSeconds": 0.000001819, + "downloadSeconds": 0.062310606 }, { - "connectionEstablishedSeconds": 0.061822298, - "uploadSeconds": 0.000001982, - "downloadSeconds": 0.0601243 + "connectionEstablishedSeconds": 0.065723205, + "uploadSeconds": 7.17e-7, + "downloadSeconds": 0.064060456 }, { - "connectionEstablishedSeconds": 0.063154287, - "uploadSeconds": 0.000001788, - "downloadSeconds": 0.061514853 + "connectionEstablishedSeconds": 0.061603145, + "uploadSeconds": 0.000001972, + "downloadSeconds": 0.059893142 }, { - "connectionEstablishedSeconds": 0.063000807, - "uploadSeconds": 7.79e-7, - "downloadSeconds": 0.061340444 + "connectionEstablishedSeconds": 0.062999379, + "uploadSeconds": 0.000001794, + "downloadSeconds": 0.06138553 }, { - "connectionEstablishedSeconds": 0.065536315, - "uploadSeconds": 0.000001727, - "downloadSeconds": 0.064006592 + "connectionEstablishedSeconds": 0.06546399, + "uploadSeconds": 7e-7, + "downloadSeconds": 0.063783392 }, { - "connectionEstablishedSeconds": 0.063391175, - "uploadSeconds": 0.000001967, - "downloadSeconds": 0.062564537 + "connectionEstablishedSeconds": 0.064754701, + "uploadSeconds": 0.000001778, + "downloadSeconds": 0.062162329 }, { - "connectionEstablishedSeconds": 0.064735637, - "uploadSeconds": 0.000001824, - "downloadSeconds": 0.063092475 + "connectionEstablishedSeconds": 0.066409246, + "uploadSeconds": 0.000001752, + "downloadSeconds": 0.064705081 }, { - "connectionEstablishedSeconds": 0.063053482, - "uploadSeconds": 0.000001866, - "downloadSeconds": 0.061317893 + "connectionEstablishedSeconds": 0.063568865, + "uploadSeconds": 0.000001838, + "downloadSeconds": 0.061832693 }, { - "connectionEstablishedSeconds": 0.065305633, - "uploadSeconds": 0.000001903, - "downloadSeconds": 0.063708648 + "connectionEstablishedSeconds": 0.062524544, + "uploadSeconds": 0.000001723, + "downloadSeconds": 0.060836967 }, { - "connectionEstablishedSeconds": 0.063688642, - "uploadSeconds": 0.000001744, - "downloadSeconds": 0.061908515 + "connectionEstablishedSeconds": 0.062566124, + "uploadSeconds": 0.000001785, + "downloadSeconds": 0.060894745 }, { - "connectionEstablishedSeconds": 0.065536368, - "uploadSeconds": 0.000001797, - "downloadSeconds": 0.063829916 + "connectionEstablishedSeconds": 0.062123987, + "uploadSeconds": 6.87e-7, + "downloadSeconds": 0.060441128 }, { - "connectionEstablishedSeconds": 0.064454029, - "uploadSeconds": 0.000001774, - "downloadSeconds": 0.063271458 + "connectionEstablishedSeconds": 0.065409356, + "uploadSeconds": 0.000001692, + "downloadSeconds": 0.063798047 }, { - "connectionEstablishedSeconds": 0.062892907, - "uploadSeconds": 0.000001945, - "downloadSeconds": 0.06125851 + "connectionEstablishedSeconds": 0.063575833, + "uploadSeconds": 0.000001719, + "downloadSeconds": 0.061841826 }, { - "connectionEstablishedSeconds": 0.064602001, - "uploadSeconds": 6.96e-7, - "downloadSeconds": 0.062918437 + "connectionEstablishedSeconds": 0.063055948, + "uploadSeconds": 0.000001725, + "downloadSeconds": 0.061328576 }, { - "connectionEstablishedSeconds": 0.064547153, - "uploadSeconds": 0.000001823, - "downloadSeconds": 0.062874092 + "connectionEstablishedSeconds": 0.065493623, + "uploadSeconds": 0.000001916, + "downloadSeconds": 0.063835479 }, { - "connectionEstablishedSeconds": 0.060979847, - "uploadSeconds": 0.00000179, - "downloadSeconds": 0.059437693 + "connectionEstablishedSeconds": 0.063976489, + "uploadSeconds": 0.000001806, + "downloadSeconds": 0.062332488 }, { - "connectionEstablishedSeconds": 0.063828571, - "uploadSeconds": 6.76e-7, - "downloadSeconds": 0.062130018 + "connectionEstablishedSeconds": 0.063056447, + "uploadSeconds": 0.000001719, + "downloadSeconds": 0.061373652 }, { - "connectionEstablishedSeconds": 0.062631998, - "uploadSeconds": 0.00000179, - "downloadSeconds": 0.060844295 + "connectionEstablishedSeconds": 0.064495665, + "uploadSeconds": 7.46e-7, + "downloadSeconds": 0.0629602 }, { - "connectionEstablishedSeconds": 0.063430539, - "uploadSeconds": 0.000001737, - "downloadSeconds": 0.061764257 + "connectionEstablishedSeconds": 0.065546956, + "uploadSeconds": 6.76e-7, + "downloadSeconds": 0.063418188 }, { - "connectionEstablishedSeconds": 0.064820491, - "uploadSeconds": 7.62e-7, - "downloadSeconds": 0.063123954 + "connectionEstablishedSeconds": 0.062339067, + "uploadSeconds": 0.00000186, + "downloadSeconds": 0.060670395 }, { - "connectionEstablishedSeconds": 0.062331385, - "uploadSeconds": 0.000001725, - "downloadSeconds": 0.060720175 + "connectionEstablishedSeconds": 0.063049046, + "uploadSeconds": 0.000001734, + "downloadSeconds": 0.061329875 }, { - "connectionEstablishedSeconds": 0.064130376, - "uploadSeconds": 6.84e-7, - "downloadSeconds": 0.062462477 + "connectionEstablishedSeconds": 0.062357505, + "uploadSeconds": 0.000001764, + "downloadSeconds": 0.060664117 }, { - "connectionEstablishedSeconds": 0.065243526, - "uploadSeconds": 0.000001822, - "downloadSeconds": 0.063562629 + "connectionEstablishedSeconds": 0.06528281, + "uploadSeconds": 0.000001762, + "downloadSeconds": 0.063516551 }, { - "connectionEstablishedSeconds": 0.063272386, - "uploadSeconds": 7.22e-7, - "downloadSeconds": 0.061669219 + "connectionEstablishedSeconds": 0.066320258, + "uploadSeconds": 0.0000018, + "downloadSeconds": 0.064720648 }, { - "connectionEstablishedSeconds": 0.064626055, - "uploadSeconds": 0.000001779, - "downloadSeconds": 0.062825225 + "connectionEstablishedSeconds": 0.066028628, + "uploadSeconds": 0.000001778, + "downloadSeconds": 0.064328142 }, { - "connectionEstablishedSeconds": 0.062730339, - "uploadSeconds": 0.000001862, - "downloadSeconds": 0.061026124 + "connectionEstablishedSeconds": 0.063634942, + "uploadSeconds": 0.000001821, + "downloadSeconds": 0.061944178 }, { - "connectionEstablishedSeconds": 0.065446917, - "uploadSeconds": 8.05e-7, - "downloadSeconds": 0.063572076 + "connectionEstablishedSeconds": 0.062519258, + "uploadSeconds": 7.66e-7, + "downloadSeconds": 0.060698542 }, { - "connectionEstablishedSeconds": 0.065050085, - "uploadSeconds": 0.000001816, - "downloadSeconds": 0.063333995 + "connectionEstablishedSeconds": 0.064855668, + "uploadSeconds": 7.1e-7, + "downloadSeconds": 0.063180069 }, { - "connectionEstablishedSeconds": 0.06638139, - "uploadSeconds": 7.34e-7, - "downloadSeconds": 0.06462557 + "connectionEstablishedSeconds": 0.064752006, + "uploadSeconds": 0.000001749, + "downloadSeconds": 0.063132987 }, { - "connectionEstablishedSeconds": 0.064235736, - "uploadSeconds": 0.000001772, - "downloadSeconds": 0.062498337 + "connectionEstablishedSeconds": 0.066273212, + "uploadSeconds": 0.000001759, + "downloadSeconds": 0.064158788 }, { - "connectionEstablishedSeconds": 0.063667108, - "uploadSeconds": 0.00000188, - "downloadSeconds": 0.061807483 + "connectionEstablishedSeconds": 0.063833946, + "uploadSeconds": 6.95e-7, + "downloadSeconds": 0.062299067 }, { - "connectionEstablishedSeconds": 0.060839819, - "uploadSeconds": 0.000001712, - "downloadSeconds": 0.059126149 + "connectionEstablishedSeconds": 0.066265482, + "uploadSeconds": 0.00000185, + "downloadSeconds": 0.064636803 }, { - "connectionEstablishedSeconds": 0.062833168, - "uploadSeconds": 8.01e-7, - "downloadSeconds": 0.06116432 + "connectionEstablishedSeconds": 0.062868719, + "uploadSeconds": 0.000001725, + "downloadSeconds": 0.061204063 }, { - "connectionEstablishedSeconds": 0.063625147, - "uploadSeconds": 0.0000019, - "downloadSeconds": 0.061920975 + "connectionEstablishedSeconds": 0.065831795, + "uploadSeconds": 0.000001831, + "downloadSeconds": 0.06417076 }, { - "connectionEstablishedSeconds": 0.065952783, - "uploadSeconds": 0.000001739, - "downloadSeconds": 0.064116186 + "connectionEstablishedSeconds": 0.062539241, + "uploadSeconds": 0.00000176, + "downloadSeconds": 0.060880993 }, { - "connectionEstablishedSeconds": 0.065333213, - "uploadSeconds": 7.97e-7, - "downloadSeconds": 0.063640336 + "connectionEstablishedSeconds": 0.064352389, + "uploadSeconds": 0.00000178, + "downloadSeconds": 0.062691998 }, { - "connectionEstablishedSeconds": 0.0649866, - "uploadSeconds": 0.0000019, - "downloadSeconds": 0.063352452 + "connectionEstablishedSeconds": 0.063286495, + "uploadSeconds": 0.000001666, + "downloadSeconds": 0.061654188 }, { - "connectionEstablishedSeconds": 0.06601955, - "uploadSeconds": 7.5e-7, - "downloadSeconds": 0.064472928 + "connectionEstablishedSeconds": 0.066874172, + "uploadSeconds": 7.05e-7, + "downloadSeconds": 0.065273994 }, { - "connectionEstablishedSeconds": 0.066007639, - "uploadSeconds": 0.000001927, - "downloadSeconds": 0.064297203 + "connectionEstablishedSeconds": 0.06370884, + "uploadSeconds": 0.00000186, + "downloadSeconds": 0.061990566 }, { - "connectionEstablishedSeconds": 0.060866632, - "uploadSeconds": 0.000001837, - "downloadSeconds": 0.059214214 + "connectionEstablishedSeconds": 0.064256796, + "uploadSeconds": 0.000001717, + "downloadSeconds": 0.062566426 }, { - "connectionEstablishedSeconds": 0.064662112, - "uploadSeconds": 0.000001797, - "downloadSeconds": 0.063006571 + "connectionEstablishedSeconds": 0.066084311, + "uploadSeconds": 0.000001784, + "downloadSeconds": 0.064423069 }, { - "connectionEstablishedSeconds": 0.062222184, - "uploadSeconds": 0.000001969, - "downloadSeconds": 0.060617405 + "connectionEstablishedSeconds": 0.06311346, + "uploadSeconds": 0.000001834, + "downloadSeconds": 0.061419018 }, { - "connectionEstablishedSeconds": 0.065573294, - "uploadSeconds": 0.000001909, - "downloadSeconds": 0.063384853 + "connectionEstablishedSeconds": 0.064526777, + "uploadSeconds": 0.000001867, + "downloadSeconds": 0.062889137 }, { - "connectionEstablishedSeconds": 0.060471716, - "uploadSeconds": 0.00000174, - "downloadSeconds": 0.05876243 + "connectionEstablishedSeconds": 0.06163524, + "uploadSeconds": 0.000001804, + "downloadSeconds": 0.059249436 }, { - "connectionEstablishedSeconds": 0.063396436, - "uploadSeconds": 0.000001894, - "downloadSeconds": 0.061687148 + "connectionEstablishedSeconds": 0.061023444, + "uploadSeconds": 0.000001782, + "downloadSeconds": 0.059338741 }, { - "connectionEstablishedSeconds": 0.064968625, - "uploadSeconds": 7.48e-7, - "downloadSeconds": 0.063275068 + "connectionEstablishedSeconds": 0.062568746, + "uploadSeconds": 0.000001766, + "downloadSeconds": 0.060868058 }, { - "connectionEstablishedSeconds": 0.066065038, - "uploadSeconds": 0.000001905, - "downloadSeconds": 0.064416883 + "connectionEstablishedSeconds": 0.065575941, + "uploadSeconds": 0.000001818, + "downloadSeconds": 0.063924263 }, { - "connectionEstablishedSeconds": 0.062158055, - "uploadSeconds": 8.03e-7, - "downloadSeconds": 0.060423222 + "connectionEstablishedSeconds": 0.066583833, + "uploadSeconds": 7.17e-7, + "downloadSeconds": 0.064938765 }, { - "connectionEstablishedSeconds": 0.062498771, - "uploadSeconds": 7.82e-7, - "downloadSeconds": 0.060901782 + "connectionEstablishedSeconds": 0.062918719, + "uploadSeconds": 0.00000179, + "downloadSeconds": 0.061368007 }, { - "connectionEstablishedSeconds": 0.064959054, - "uploadSeconds": 0.000001864, - "downloadSeconds": 0.06329718 + "connectionEstablishedSeconds": 0.063977938, + "uploadSeconds": 0.000001784, + "downloadSeconds": 0.062353546 }, { - "connectionEstablishedSeconds": 0.065270905, - "uploadSeconds": 0.000001831, - "downloadSeconds": 0.063345246 + "connectionEstablishedSeconds": 0.065522523, + "uploadSeconds": 0.000001741, + "downloadSeconds": 0.063821618 }, { - "connectionEstablishedSeconds": 0.065934381, - "uploadSeconds": 0.000001905, - "downloadSeconds": 0.064248558 + "connectionEstablishedSeconds": 0.064201759, + "uploadSeconds": 0.000001789, + "downloadSeconds": 0.062403678 }, { - "connectionEstablishedSeconds": 0.061868211, - "uploadSeconds": 0.000001856, - "downloadSeconds": 0.060187673 + "connectionEstablishedSeconds": 0.061279513, + "uploadSeconds": 0.000001717, + "downloadSeconds": 0.059549167 }, { - "connectionEstablishedSeconds": 0.066919055, - "uploadSeconds": 0.000001842, - "downloadSeconds": 0.065187901 + "connectionEstablishedSeconds": 0.065773354, + "uploadSeconds": 6.72e-7, + "downloadSeconds": 0.064134225 }, { - "connectionEstablishedSeconds": 0.065127196, - "uploadSeconds": 0.000001795, - "downloadSeconds": 0.063484308 + "connectionEstablishedSeconds": 0.061808823, + "uploadSeconds": 0.00000169, + "downloadSeconds": 0.060056193 }, { - "connectionEstablishedSeconds": 0.064882942, - "uploadSeconds": 0.000001808, - "downloadSeconds": 0.063167147 + "connectionEstablishedSeconds": 0.064457583, + "uploadSeconds": 6.91e-7, + "downloadSeconds": 0.062859012 }, { - "connectionEstablishedSeconds": 0.061981758, - "uploadSeconds": 0.000001836, - "downloadSeconds": 0.06030995 + "connectionEstablishedSeconds": 0.064123311, + "uploadSeconds": 0.000001778, + "downloadSeconds": 0.06234587 }, { - "connectionEstablishedSeconds": 0.066133359, - "uploadSeconds": 7.37e-7, - "downloadSeconds": 0.064433854 + "connectionEstablishedSeconds": 0.064627414, + "uploadSeconds": 0.00000178, + "downloadSeconds": 0.062955395 }, { - "connectionEstablishedSeconds": 0.063796176, - "uploadSeconds": 0.000001847, - "downloadSeconds": 0.06172291 + "connectionEstablishedSeconds": 0.065323841, + "uploadSeconds": 8.41e-7, + "downloadSeconds": 0.063461689 }, { - "connectionEstablishedSeconds": 0.063002923, - "uploadSeconds": 0.000001888, - "downloadSeconds": 0.061294327 + "connectionEstablishedSeconds": 0.063694653, + "uploadSeconds": 6.72e-7, + "downloadSeconds": 0.061998772 }, { - "connectionEstablishedSeconds": 0.061570653, - "uploadSeconds": 0.000001723, - "downloadSeconds": 0.059854651 + "connectionEstablishedSeconds": 0.063802829, + "uploadSeconds": 0.000001795, + "downloadSeconds": 0.06219577 }, { - "connectionEstablishedSeconds": 0.060772114, - "uploadSeconds": 0.000001872, - "downloadSeconds": 0.059070695 + "connectionEstablishedSeconds": 0.064755301, + "uploadSeconds": 0.00000179, + "downloadSeconds": 0.063085813 }, { - "connectionEstablishedSeconds": 0.062894542, - "uploadSeconds": 6.87e-7, - "downloadSeconds": 0.061264939 + "connectionEstablishedSeconds": 0.062301066, + "uploadSeconds": 0.000001798, + "downloadSeconds": 0.060639559 }, { - "connectionEstablishedSeconds": 0.065758631, - "uploadSeconds": 0.000001826, - "downloadSeconds": 0.063904459 + "connectionEstablishedSeconds": 0.060794408, + "uploadSeconds": 0.000001698, + "downloadSeconds": 0.059111416 }, { - "connectionEstablishedSeconds": 0.063357454, - "uploadSeconds": 7.06e-7, - "downloadSeconds": 0.061596787 + "connectionEstablishedSeconds": 0.06689889, + "uploadSeconds": 0.000001814, + "downloadSeconds": 0.065201592 }, { - "connectionEstablishedSeconds": 0.06495729, - "uploadSeconds": 0.000001747, - "downloadSeconds": 0.063341071 + "connectionEstablishedSeconds": 0.065509148, + "uploadSeconds": 0.00000178, + "downloadSeconds": 0.063845276 }, { - "connectionEstablishedSeconds": 0.061965158, - "uploadSeconds": 0.000001707, - "downloadSeconds": 0.060223192 + "connectionEstablishedSeconds": 0.065946012, + "uploadSeconds": 0.000001854, + "downloadSeconds": 0.064321984 }, { - "connectionEstablishedSeconds": 0.063959458, - "uploadSeconds": 7.21e-7, - "downloadSeconds": 0.062279523 + "connectionEstablishedSeconds": 0.064152174, + "uploadSeconds": 7.32e-7, + "downloadSeconds": 0.062566448 }, { - "connectionEstablishedSeconds": 0.062337663, - "uploadSeconds": 7.86e-7, - "downloadSeconds": 0.060707175 + "connectionEstablishedSeconds": 0.065330067, + "uploadSeconds": 0.000001724, + "downloadSeconds": 0.063714083 }, { - "connectionEstablishedSeconds": 0.064751048, - "uploadSeconds": 7.22e-7, - "downloadSeconds": 0.063059043 + "connectionEstablishedSeconds": 0.065594275, + "uploadSeconds": 0.000001807, + "downloadSeconds": 0.06395082 }, { - "connectionEstablishedSeconds": 0.06513626, - "uploadSeconds": 0.000001796, - "downloadSeconds": 0.063346966 + "connectionEstablishedSeconds": 0.063978098, + "uploadSeconds": 0.000001742, + "downloadSeconds": 0.06233047 }, { - "connectionEstablishedSeconds": 0.063214922, - "uploadSeconds": 0.000001804, - "downloadSeconds": 0.06218055 + "connectionEstablishedSeconds": 0.06552409, + "uploadSeconds": 0.000001726, + "downloadSeconds": 0.063913669 } ], "implementation": "quic-go", @@ -982,504 +982,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.124058021, - "uploadSeconds": 0.062077478, - "downloadSeconds": 0.061494736 + "connectionEstablishedSeconds": 0.124378833, + "uploadSeconds": 0.000002193, + "downloadSeconds": 0.062383666 }, { - "connectionEstablishedSeconds": 0.127102209, - "uploadSeconds": 0.063383977, - "downloadSeconds": 0.063038509 + "connectionEstablishedSeconds": 0.128294335, + "uploadSeconds": 0.000002024, + "downloadSeconds": 0.064032541 }, { - "connectionEstablishedSeconds": 0.121267961, - "uploadSeconds": 0.060470678, - "downloadSeconds": 0.060127486 + "connectionEstablishedSeconds": 0.12910615, + "uploadSeconds": 0.000001752, + "downloadSeconds": 0.064508982 }, { - "connectionEstablishedSeconds": 0.129524005, - "uploadSeconds": 0.064640051, - "downloadSeconds": 0.06430353 + "connectionEstablishedSeconds": 0.129261468, + "uploadSeconds": 0.000001681, + "downloadSeconds": 0.064543567 }, { - "connectionEstablishedSeconds": 0.127542905, - "uploadSeconds": 0.063614602, - "downloadSeconds": 0.063612141 + "connectionEstablishedSeconds": 0.128192413, + "uploadSeconds": 0.000001766, + "downloadSeconds": 0.064050417 }, { - "connectionEstablishedSeconds": 0.12082494, - "uploadSeconds": 0.060314976, - "downloadSeconds": 0.059951873 + "connectionEstablishedSeconds": 0.124067496, + "uploadSeconds": 0.000001851, + "downloadSeconds": 0.061974516 }, { - "connectionEstablishedSeconds": 0.123016011, - "uploadSeconds": 0.06146973, - "downloadSeconds": 0.061027897 + "connectionEstablishedSeconds": 0.123780415, + "uploadSeconds": 0.000001898, + "downloadSeconds": 0.061769081 }, { - "connectionEstablishedSeconds": 0.119034365, - "uploadSeconds": 0.059416155, - "downloadSeconds": 0.059058323 + "connectionEstablishedSeconds": 0.128777848, + "uploadSeconds": 0.00000176, + "downloadSeconds": 0.064291555 }, { - "connectionEstablishedSeconds": 0.128539861, - "uploadSeconds": 0.064145482, - "downloadSeconds": 0.064758555 + "connectionEstablishedSeconds": 0.126821691, + "uploadSeconds": 0.00000187, + "downloadSeconds": 0.0633383 }, { - "connectionEstablishedSeconds": 0.126172847, - "uploadSeconds": 0.062934903, - "downloadSeconds": 0.062615373 + "connectionEstablishedSeconds": 0.123136777, + "uploadSeconds": 0.000002115, + "downloadSeconds": 0.061429054 }, { - "connectionEstablishedSeconds": 0.127601794, - "uploadSeconds": 0.063763541, - "downloadSeconds": 0.063381563 + "connectionEstablishedSeconds": 0.124467119, + "uploadSeconds": 0.000001868, + "downloadSeconds": 0.062177393 }, { - "connectionEstablishedSeconds": 0.120291024, - "uploadSeconds": 0.060627011, - "downloadSeconds": 0.059673913 + "connectionEstablishedSeconds": 0.121326879, + "uploadSeconds": 0.000002001, + "downloadSeconds": 0.060327711 }, { - "connectionEstablishedSeconds": 0.122798549, - "uploadSeconds": 0.061259892, - "downloadSeconds": 0.060914391 + "connectionEstablishedSeconds": 0.129695162, + "uploadSeconds": 0.000002036, + "downloadSeconds": 0.064738889 }, { - "connectionEstablishedSeconds": 0.130316306, - "uploadSeconds": 0.065019972, - "downloadSeconds": 0.064689209 + "connectionEstablishedSeconds": 0.121632929, + "uploadSeconds": 0.000001873, + "downloadSeconds": 0.060731638 }, { - "connectionEstablishedSeconds": 0.119631181, - "uploadSeconds": 0.059720818, - "downloadSeconds": 0.059367563 + "connectionEstablishedSeconds": 0.128068805, + "uploadSeconds": 0.000002012, + "downloadSeconds": 0.063928132 }, { - "connectionEstablishedSeconds": 0.128467126, - "uploadSeconds": 0.064108639, - "downloadSeconds": 0.063753911 + "connectionEstablishedSeconds": 0.126780642, + "uploadSeconds": 0.000001794, + "downloadSeconds": 0.063322521 }, { - "connectionEstablishedSeconds": 0.124354844, - "uploadSeconds": 0.062229517, - "downloadSeconds": 0.061767435 + "connectionEstablishedSeconds": 0.123526513, + "uploadSeconds": 0.000001687, + "downloadSeconds": 0.061642433 }, { - "connectionEstablishedSeconds": 0.125419268, - "uploadSeconds": 0.062631359, - "downloadSeconds": 0.062243518 + "connectionEstablishedSeconds": 0.126118956, + "uploadSeconds": 0.000001753, + "downloadSeconds": 0.06306937 }, { - "connectionEstablishedSeconds": 0.130104541, - "uploadSeconds": 0.06495349, - "downloadSeconds": 0.064591408 + "connectionEstablishedSeconds": 0.121963371, + "uploadSeconds": 0.000001819, + "downloadSeconds": 0.060932858 }, { - "connectionEstablishedSeconds": 0.122528744, - "uploadSeconds": 0.061325284, - "downloadSeconds": 0.060857039 + "connectionEstablishedSeconds": 0.117066304, + "uploadSeconds": 0.000001823, + "downloadSeconds": 0.058447344 }, { - "connectionEstablishedSeconds": 0.125358979, - "uploadSeconds": 0.062639917, - "downloadSeconds": 0.062219645 + "connectionEstablishedSeconds": 0.127689528, + "uploadSeconds": 0.00000173, + "downloadSeconds": 0.063740805 }, { - "connectionEstablishedSeconds": 0.123678457, - "uploadSeconds": 0.061709973, - "downloadSeconds": 0.061333029 + "connectionEstablishedSeconds": 0.120728842, + "uploadSeconds": 0.000001819, + "downloadSeconds": 0.060263499 }, { - "connectionEstablishedSeconds": 0.123886457, - "uploadSeconds": 0.061824328, - "downloadSeconds": 0.061486719 + "connectionEstablishedSeconds": 0.123857006, + "uploadSeconds": 0.000001763, + "downloadSeconds": 0.061863201 }, { - "connectionEstablishedSeconds": 0.128529591, - "uploadSeconds": 0.064134847, - "downloadSeconds": 0.063784319 + "connectionEstablishedSeconds": 0.128155106, + "uploadSeconds": 0.000001684, + "downloadSeconds": 0.064017441 }, { - "connectionEstablishedSeconds": 0.123460513, - "uploadSeconds": 0.06161852, - "downloadSeconds": 0.061295237 + "connectionEstablishedSeconds": 0.126665277, + "uploadSeconds": 0.000001648, + "downloadSeconds": 0.063228687 }, { - "connectionEstablishedSeconds": 0.12941244, - "uploadSeconds": 0.064615066, - "downloadSeconds": 0.064315308 + "connectionEstablishedSeconds": 0.12523749, + "uploadSeconds": 0.000001695, + "downloadSeconds": 0.06258789 }, { - "connectionEstablishedSeconds": 0.126028135, - "uploadSeconds": 0.0628055, - "downloadSeconds": 0.062512649 + "connectionEstablishedSeconds": 0.125100106, + "uploadSeconds": 0.000001809, + "downloadSeconds": 0.062519008 }, { - "connectionEstablishedSeconds": 0.127794905, - "uploadSeconds": 0.063742337, - "downloadSeconds": 0.063416089 + "connectionEstablishedSeconds": 0.125707676, + "uploadSeconds": 0.000001694, + "downloadSeconds": 0.062795296 }, { - "connectionEstablishedSeconds": 0.126653066, - "uploadSeconds": 0.063223387, - "downloadSeconds": 0.062878385 + "connectionEstablishedSeconds": 0.118719715, + "uploadSeconds": 0.000001664, + "downloadSeconds": 0.059258567 }, { - "connectionEstablishedSeconds": 0.125217304, - "uploadSeconds": 0.062524137, - "downloadSeconds": 0.062175822 + "connectionEstablishedSeconds": 0.123909031, + "uploadSeconds": 0.000001686, + "downloadSeconds": 0.061865771 }, { - "connectionEstablishedSeconds": 0.117809879, - "uploadSeconds": 0.058805616, - "downloadSeconds": 0.058486286 + "connectionEstablishedSeconds": 0.126209098, + "uploadSeconds": 0.000001742, + "downloadSeconds": 0.063073793 }, { - "connectionEstablishedSeconds": 0.121667383, - "uploadSeconds": 0.060728191, - "downloadSeconds": 0.060423417 + "connectionEstablishedSeconds": 0.122318674, + "uploadSeconds": 0.000001711, + "downloadSeconds": 0.061068545 }, { - "connectionEstablishedSeconds": 0.12906208, - "uploadSeconds": 0.064489169, - "downloadSeconds": 0.064071083 + "connectionEstablishedSeconds": 0.128960382, + "uploadSeconds": 0.000001729, + "downloadSeconds": 0.064389227 }, { - "connectionEstablishedSeconds": 0.124977986, - "uploadSeconds": 0.062567327, - "downloadSeconds": 0.062019843 + "connectionEstablishedSeconds": 0.121538122, + "uploadSeconds": 0.000001669, + "downloadSeconds": 0.060684629 }, { - "connectionEstablishedSeconds": 0.128708389, - "uploadSeconds": 0.064225364, - "downloadSeconds": 0.063876376 + "connectionEstablishedSeconds": 0.126202178, + "uploadSeconds": 0.000001699, + "downloadSeconds": 0.06300512 }, { - "connectionEstablishedSeconds": 0.12765236, - "uploadSeconds": 0.063687139, - "downloadSeconds": 0.063335697 + "connectionEstablishedSeconds": 0.129326378, + "uploadSeconds": 0.000001939, + "downloadSeconds": 0.064577206 }, { - "connectionEstablishedSeconds": 0.125130661, - "uploadSeconds": 0.062468174, - "downloadSeconds": 0.062144584 + "connectionEstablishedSeconds": 0.126972251, + "uploadSeconds": 0.000001876, + "downloadSeconds": 0.063389073 }, { - "connectionEstablishedSeconds": 0.123978418, - "uploadSeconds": 0.061895087, - "downloadSeconds": 0.06150544 + "connectionEstablishedSeconds": 0.125214293, + "uploadSeconds": 0.000001788, + "downloadSeconds": 0.062581876 }, { - "connectionEstablishedSeconds": 0.126549043, - "uploadSeconds": 0.063210499, - "downloadSeconds": 0.062840988 + "connectionEstablishedSeconds": 0.127571771, + "uploadSeconds": 0.000001607, + "downloadSeconds": 0.063750801 }, { - "connectionEstablishedSeconds": 0.124811148, - "uploadSeconds": 0.06233627, - "downloadSeconds": 0.061885969 + "connectionEstablishedSeconds": 0.126183527, + "uploadSeconds": 0.000002174, + "downloadSeconds": 0.062965749 }, { - "connectionEstablishedSeconds": 0.122069078, - "uploadSeconds": 0.06080467, - "downloadSeconds": 0.06044802 + "connectionEstablishedSeconds": 0.121882083, + "uploadSeconds": 0.000001864, + "downloadSeconds": 0.060884727 }, { - "connectionEstablishedSeconds": 0.130993255, - "uploadSeconds": 0.065385158, - "downloadSeconds": 0.065066852 + "connectionEstablishedSeconds": 0.124478448, + "uploadSeconds": 0.000001684, + "downloadSeconds": 0.062159613 }, { - "connectionEstablishedSeconds": 0.12098012, - "uploadSeconds": 0.06035747, - "downloadSeconds": 0.060081032 + "connectionEstablishedSeconds": 0.126855259, + "uploadSeconds": 0.000001716, + "downloadSeconds": 0.063366884 }, { - "connectionEstablishedSeconds": 0.127430678, - "uploadSeconds": 0.063528991, - "downloadSeconds": 0.063176529 + "connectionEstablishedSeconds": 0.125965845, + "uploadSeconds": 0.000001736, + "downloadSeconds": 0.062903669 }, { - "connectionEstablishedSeconds": 0.120162636, - "uploadSeconds": 0.059940422, - "downloadSeconds": 0.059604314 + "connectionEstablishedSeconds": 0.127347751, + "uploadSeconds": 0.000001951, + "downloadSeconds": 0.063613556 }, { - "connectionEstablishedSeconds": 0.122255884, - "uploadSeconds": 0.06101592, - "downloadSeconds": 0.060644892 + "connectionEstablishedSeconds": 0.126262343, + "uploadSeconds": 0.000001777, + "downloadSeconds": 0.063153229 }, { - "connectionEstablishedSeconds": 0.12139227, - "uploadSeconds": 0.060616841, - "downloadSeconds": 0.060226881 + "connectionEstablishedSeconds": 0.126697581, + "uploadSeconds": 0.000001737, + "downloadSeconds": 0.063287252 }, { - "connectionEstablishedSeconds": 0.126449646, - "uploadSeconds": 0.063146003, - "downloadSeconds": 0.062773405 + "connectionEstablishedSeconds": 0.129710611, + "uploadSeconds": 0.000002475, + "downloadSeconds": 0.06477665 }, { - "connectionEstablishedSeconds": 0.124729358, - "uploadSeconds": 0.062296148, - "downloadSeconds": 0.061904317 + "connectionEstablishedSeconds": 0.12736264, + "uploadSeconds": 0.000001884, + "downloadSeconds": 0.063614193 }, { - "connectionEstablishedSeconds": 0.121826779, - "uploadSeconds": 0.060788757, - "downloadSeconds": 0.060428134 + "connectionEstablishedSeconds": 0.122110709, + "uploadSeconds": 0.000001817, + "downloadSeconds": 0.060996305 }, { - "connectionEstablishedSeconds": 0.122688283, - "uploadSeconds": 0.061284084, - "downloadSeconds": 0.060689293 + "connectionEstablishedSeconds": 0.127762485, + "uploadSeconds": 0.000001727, + "downloadSeconds": 0.063846496 }, { - "connectionEstablishedSeconds": 0.126258021, - "uploadSeconds": 0.063033437, - "downloadSeconds": 0.063484232 + "connectionEstablishedSeconds": 0.121892988, + "uploadSeconds": 0.000001904, + "downloadSeconds": 0.060890791 }, { - "connectionEstablishedSeconds": 0.123938486, - "uploadSeconds": 0.061877246, - "downloadSeconds": 0.061480637 + "connectionEstablishedSeconds": 0.127129574, + "uploadSeconds": 0.000001887, + "downloadSeconds": 0.063512603 }, { - "connectionEstablishedSeconds": 0.124503456, - "uploadSeconds": 0.062172986, - "downloadSeconds": 0.061783205 + "connectionEstablishedSeconds": 0.127140323, + "uploadSeconds": 0.000001834, + "downloadSeconds": 0.063491042 }, { - "connectionEstablishedSeconds": 0.119105181, - "uploadSeconds": 0.059418569, - "downloadSeconds": 0.059103765 + "connectionEstablishedSeconds": 0.126044157, + "uploadSeconds": 0.000002062, + "downloadSeconds": 0.062949581 }, { - "connectionEstablishedSeconds": 0.129954486, - "uploadSeconds": 0.064858418, - "downloadSeconds": 0.064516901 + "connectionEstablishedSeconds": 0.128712392, + "uploadSeconds": 0.000001816, + "downloadSeconds": 0.064311506 }, { - "connectionEstablishedSeconds": 0.126320254, - "uploadSeconds": 0.063035169, - "downloadSeconds": 0.062693213 + "connectionEstablishedSeconds": 0.129992907, + "uploadSeconds": 0.000001697, + "downloadSeconds": 0.06493816 }, { - "connectionEstablishedSeconds": 0.128407702, - "uploadSeconds": 0.064102092, - "downloadSeconds": 0.063852901 + "connectionEstablishedSeconds": 0.126048502, + "uploadSeconds": 0.000001721, + "downloadSeconds": 0.062949089 }, { - "connectionEstablishedSeconds": 0.122226383, - "uploadSeconds": 0.060836179, - "downloadSeconds": 0.060556746 + "connectionEstablishedSeconds": 0.123410133, + "uploadSeconds": 0.000001769, + "downloadSeconds": 0.061616182 }, { - "connectionEstablishedSeconds": 0.123249218, - "uploadSeconds": 0.061455064, - "downloadSeconds": 0.061151104 + "connectionEstablishedSeconds": 0.126184617, + "uploadSeconds": 0.0000019, + "downloadSeconds": 0.062991624 }, { - "connectionEstablishedSeconds": 0.121813637, - "uploadSeconds": 0.060681847, - "downloadSeconds": 0.06043271 + "connectionEstablishedSeconds": 0.12891464, + "uploadSeconds": 0.000001859, + "downloadSeconds": 0.06451573 }, { - "connectionEstablishedSeconds": 0.125649646, - "uploadSeconds": 0.062646247, - "downloadSeconds": 0.062361244 + "connectionEstablishedSeconds": 0.127562569, + "uploadSeconds": 0.000001749, + "downloadSeconds": 0.063710051 }, { - "connectionEstablishedSeconds": 0.123307101, - "uploadSeconds": 0.061423444, - "downloadSeconds": 0.061139615 + "connectionEstablishedSeconds": 0.123565396, + "uploadSeconds": 0.000001792, + "downloadSeconds": 0.06171273 }, { - "connectionEstablishedSeconds": 0.124774445, - "uploadSeconds": 0.062319587, - "downloadSeconds": 0.061947556 + "connectionEstablishedSeconds": 0.120443199, + "uploadSeconds": 0.000001894, + "downloadSeconds": 0.060124479 }, { - "connectionEstablishedSeconds": 0.127672627, - "uploadSeconds": 0.063798926, - "downloadSeconds": 0.063339798 + "connectionEstablishedSeconds": 0.121749153, + "uploadSeconds": 0.00000184, + "downloadSeconds": 0.060858912 }, { - "connectionEstablishedSeconds": 0.123911962, - "uploadSeconds": 0.061826366, - "downloadSeconds": 0.061486729 + "connectionEstablishedSeconds": 0.127699962, + "uploadSeconds": 0.000001991, + "downloadSeconds": 0.063750282 }, { - "connectionEstablishedSeconds": 0.125979776, - "uploadSeconds": 0.062828014, - "downloadSeconds": 0.062509218 + "connectionEstablishedSeconds": 0.126655762, + "uploadSeconds": 0.000001883, + "downloadSeconds": 0.062968176 }, { - "connectionEstablishedSeconds": 0.126000827, - "uploadSeconds": 0.062927782, - "downloadSeconds": 0.062554888 + "connectionEstablishedSeconds": 0.126138145, + "uploadSeconds": 0.000001742, + "downloadSeconds": 0.063001965 }, { - "connectionEstablishedSeconds": 0.125953363, - "uploadSeconds": 0.063413706, - "downloadSeconds": 0.062504602 + "connectionEstablishedSeconds": 0.126657721, + "uploadSeconds": 0.000001714, + "downloadSeconds": 0.063242309 }, { - "connectionEstablishedSeconds": 0.127443917, - "uploadSeconds": 0.063530974, - "downloadSeconds": 0.063218737 + "connectionEstablishedSeconds": 0.126894807, + "uploadSeconds": 0.000001704, + "downloadSeconds": 0.063405973 }, { - "connectionEstablishedSeconds": 0.123219759, - "uploadSeconds": 0.061498881, - "downloadSeconds": 0.061126394 + "connectionEstablishedSeconds": 0.126088081, + "uploadSeconds": 0.000001704, + "downloadSeconds": 0.062964452 }, { - "connectionEstablishedSeconds": 0.124893144, - "uploadSeconds": 0.062332706, - "downloadSeconds": 0.06200117 + "connectionEstablishedSeconds": 0.130194705, + "uploadSeconds": 0.000001801, + "downloadSeconds": 0.065007107 }, { - "connectionEstablishedSeconds": 0.12447858, - "uploadSeconds": 0.062152892, - "downloadSeconds": 0.061778092 + "connectionEstablishedSeconds": 0.126205527, + "uploadSeconds": 0.000001851, + "downloadSeconds": 0.063025846 }, { - "connectionEstablishedSeconds": 0.128283307, - "uploadSeconds": 0.064066358, - "downloadSeconds": 0.063828436 + "connectionEstablishedSeconds": 0.126715914, + "uploadSeconds": 0.000001756, + "downloadSeconds": 0.063283763 }, { - "connectionEstablishedSeconds": 0.127589626, - "uploadSeconds": 0.063622483, - "downloadSeconds": 0.06329308 + "connectionEstablishedSeconds": 0.12998454, + "uploadSeconds": 0.000001703, + "downloadSeconds": 0.064893323 }, { - "connectionEstablishedSeconds": 0.125670206, - "uploadSeconds": 0.062690311, - "downloadSeconds": 0.062363062 + "connectionEstablishedSeconds": 0.121072823, + "uploadSeconds": 0.000001766, + "downloadSeconds": 0.060450248 }, { - "connectionEstablishedSeconds": 0.121826964, - "uploadSeconds": 0.060771711, - "downloadSeconds": 0.060455865 + "connectionEstablishedSeconds": 0.122474741, + "uploadSeconds": 0.000001826, + "downloadSeconds": 0.061207818 }, { - "connectionEstablishedSeconds": 0.127231225, - "uploadSeconds": 0.063419489, - "downloadSeconds": 0.063104113 + "connectionEstablishedSeconds": 0.125905306, + "uploadSeconds": 0.000001752, + "downloadSeconds": 0.062867992 }, { - "connectionEstablishedSeconds": 0.130804406, - "uploadSeconds": 0.065269187, - "downloadSeconds": 0.064924763 + "connectionEstablishedSeconds": 0.126974815, + "uploadSeconds": 0.000001929, + "downloadSeconds": 0.063417472 }, { - "connectionEstablishedSeconds": 0.127485358, - "uploadSeconds": 0.063649053, - "downloadSeconds": 0.063282452 + "connectionEstablishedSeconds": 0.121299774, + "uploadSeconds": 0.000001753, + "downloadSeconds": 0.060567392 }, { - "connectionEstablishedSeconds": 0.129062566, - "uploadSeconds": 0.064438719, - "downloadSeconds": 0.064088616 + "connectionEstablishedSeconds": 0.127253347, + "uploadSeconds": 0.000001818, + "downloadSeconds": 0.063536139 }, { - "connectionEstablishedSeconds": 0.122165349, - "uploadSeconds": 0.060976149, - "downloadSeconds": 0.060601658 + "connectionEstablishedSeconds": 0.129001397, + "uploadSeconds": 0.000001756, + "downloadSeconds": 0.064470172 }, { - "connectionEstablishedSeconds": 0.126948063, - "uploadSeconds": 0.063315021, - "downloadSeconds": 0.062998477 + "connectionEstablishedSeconds": 0.124111101, + "uploadSeconds": 0.000001685, + "downloadSeconds": 0.062034655 }, { - "connectionEstablishedSeconds": 0.128671901, - "uploadSeconds": 0.064205217, - "downloadSeconds": 0.063928201 + "connectionEstablishedSeconds": 0.124518464, + "uploadSeconds": 0.00000173, + "downloadSeconds": 0.062219896 }, { - "connectionEstablishedSeconds": 0.125096519, - "uploadSeconds": 0.062512627, - "downloadSeconds": 0.062107226 + "connectionEstablishedSeconds": 0.125227349, + "uploadSeconds": 0.000001979, + "downloadSeconds": 0.062483051 }, { - "connectionEstablishedSeconds": 0.122250943, - "uploadSeconds": 0.061051283, - "downloadSeconds": 0.060697623 + "connectionEstablishedSeconds": 0.124379143, + "uploadSeconds": 0.00000191, + "downloadSeconds": 0.062097758 }, { - "connectionEstablishedSeconds": 0.124797483, - "uploadSeconds": 0.062298275, - "downloadSeconds": 0.061901884 + "connectionEstablishedSeconds": 0.12133127, + "uploadSeconds": 0.000001797, + "downloadSeconds": 0.060556588 }, { - "connectionEstablishedSeconds": 0.119372172, - "uploadSeconds": 0.059511722, - "downloadSeconds": 0.059173997 + "connectionEstablishedSeconds": 0.122854379, + "uploadSeconds": 0.000001793, + "downloadSeconds": 0.061288404 }, { - "connectionEstablishedSeconds": 0.121685887, - "uploadSeconds": 0.060755303, - "downloadSeconds": 0.060397952 + "connectionEstablishedSeconds": 0.127730271, + "uploadSeconds": 0.000001727, + "downloadSeconds": 0.06381694 }, { - "connectionEstablishedSeconds": 0.12351013, - "uploadSeconds": 0.06137572, - "downloadSeconds": 0.061073932 + "connectionEstablishedSeconds": 0.127567632, + "uploadSeconds": 0.000001741, + "downloadSeconds": 0.06372157 }, { - "connectionEstablishedSeconds": 0.123165334, - "uploadSeconds": 0.0613883, - "downloadSeconds": 0.061064862 + "connectionEstablishedSeconds": 0.122974372, + "uploadSeconds": 0.000001577, + "downloadSeconds": 0.061429535 }, { - "connectionEstablishedSeconds": 0.120983026, - "uploadSeconds": 0.060346049, - "downloadSeconds": 0.060024381 + "connectionEstablishedSeconds": 0.126815056, + "uploadSeconds": 0.000001952, + "downloadSeconds": 0.063319545 }, { - "connectionEstablishedSeconds": 0.126065842, - "uploadSeconds": 0.062937155, - "downloadSeconds": 0.062535339 + "connectionEstablishedSeconds": 0.125831799, + "uploadSeconds": 0.000001603, + "downloadSeconds": 0.062871982 }, { - "connectionEstablishedSeconds": 0.126260984, - "uploadSeconds": 0.06303293, - "downloadSeconds": 0.062668296 + "connectionEstablishedSeconds": 0.126075339, + "uploadSeconds": 0.000001857, + "downloadSeconds": 0.062969068 }, { - "connectionEstablishedSeconds": 0.123518604, - "uploadSeconds": 0.061500273, - "downloadSeconds": 0.061126555 + "connectionEstablishedSeconds": 0.126817894, + "uploadSeconds": 0.000001644, + "downloadSeconds": 0.063225893 }, { - "connectionEstablishedSeconds": 0.121865268, - "uploadSeconds": 0.060807917, - "downloadSeconds": 0.060464767 + "connectionEstablishedSeconds": 0.122641575, + "uploadSeconds": 0.000002067, + "downloadSeconds": 0.06127793 }, { - "connectionEstablishedSeconds": 0.125334794, - "uploadSeconds": 0.0624872, - "downloadSeconds": 0.062171626 + "connectionEstablishedSeconds": 0.126486851, + "uploadSeconds": 0.00000163, + "downloadSeconds": 0.063154986 }, { - "connectionEstablishedSeconds": 0.118961932, - "uploadSeconds": 0.059461436, - "downloadSeconds": 0.05899401 + "connectionEstablishedSeconds": 0.121948432, + "uploadSeconds": 0.000001618, + "downloadSeconds": 0.060967115 }, { - "connectionEstablishedSeconds": 0.126231878, - "uploadSeconds": 0.063030315, - "downloadSeconds": 0.062642855 + "connectionEstablishedSeconds": 0.124433485, + "uploadSeconds": 0.000001869, + "downloadSeconds": 0.06210957 }, { - "connectionEstablishedSeconds": 0.125711641, - "uploadSeconds": 0.062704495, - "downloadSeconds": 0.062361051 + "connectionEstablishedSeconds": 0.120115725, + "uploadSeconds": 0.000001854, + "downloadSeconds": 0.059940243 } ], "implementation": "rust-libp2p", @@ -1489,504 +1489,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.063203869, - "uploadSeconds": 0.122656498, - "downloadSeconds": 0.000103783 + "connectionEstablishedSeconds": 0.065498309, + "uploadSeconds": 0.063963217, + "downloadSeconds": 0.000110663 }, { - "connectionEstablishedSeconds": 0.063515664, - "uploadSeconds": 0.123714623, - "downloadSeconds": 0.000075894 + "connectionEstablishedSeconds": 0.066352264, + "uploadSeconds": 0.064955915, + "downloadSeconds": 0.000076427 }, { - "connectionEstablishedSeconds": 0.064600478, - "uploadSeconds": 0.126119206, - "downloadSeconds": 0.000084941 + "connectionEstablishedSeconds": 0.064251802, + "uploadSeconds": 0.062864468, + "downloadSeconds": 0.000076496 }, { - "connectionEstablishedSeconds": 0.06378471, - "uploadSeconds": 0.124441627, - "downloadSeconds": 0.000111488 + "connectionEstablishedSeconds": 0.064300349, + "uploadSeconds": 0.062954665, + "downloadSeconds": 0.000081552 }, { - "connectionEstablishedSeconds": 0.062926406, - "uploadSeconds": 0.122615946, - "downloadSeconds": 0.000116401 + "connectionEstablishedSeconds": 0.066000859, + "uploadSeconds": 0.064602792, + "downloadSeconds": 0.00007587 }, { - "connectionEstablishedSeconds": 0.065221722, - "uploadSeconds": 0.127275116, - "downloadSeconds": 0.000086185 + "connectionEstablishedSeconds": 0.064292734, + "uploadSeconds": 0.062997783, + "downloadSeconds": 0.000086026 }, { - "connectionEstablishedSeconds": 0.062312061, - "uploadSeconds": 0.121466792, - "downloadSeconds": 0.000072074 + "connectionEstablishedSeconds": 0.063390854, + "uploadSeconds": 0.061991755, + "downloadSeconds": 0.000098353 }, { - "connectionEstablishedSeconds": 0.063252052, - "uploadSeconds": 0.123669523, - "downloadSeconds": 0.00008179 + "connectionEstablishedSeconds": 0.061981883, + "uploadSeconds": 0.060712745, + "downloadSeconds": 0.000077276 }, { - "connectionEstablishedSeconds": 0.064667278, - "uploadSeconds": 0.12632167, - "downloadSeconds": 0.000078583 + "connectionEstablishedSeconds": 0.060282773, + "uploadSeconds": 0.058915855, + "downloadSeconds": 0.000075583 }, { - "connectionEstablishedSeconds": 0.063529571, - "uploadSeconds": 0.123793077, - "downloadSeconds": 0.000074419 + "connectionEstablishedSeconds": 0.063535064, + "uploadSeconds": 0.062329915, + "downloadSeconds": 0.000078556 }, { - "connectionEstablishedSeconds": 0.063939707, - "uploadSeconds": 0.124645573, - "downloadSeconds": 0.000094452 + "connectionEstablishedSeconds": 0.063823495, + "uploadSeconds": 0.062438363, + "downloadSeconds": 0.000062755 }, { - "connectionEstablishedSeconds": 0.062277571, - "uploadSeconds": 0.121253083, - "downloadSeconds": 0.000099857 + "connectionEstablishedSeconds": 0.064784819, + "uploadSeconds": 0.063457955, + "downloadSeconds": 0.000076724 }, { - "connectionEstablishedSeconds": 0.063885842, - "uploadSeconds": 0.124489881, - "downloadSeconds": 0.000091707 + "connectionEstablishedSeconds": 0.064888971, + "uploadSeconds": 0.063017835, + "downloadSeconds": 0.000076803 }, { - "connectionEstablishedSeconds": 0.065121956, - "uploadSeconds": 0.126881527, - "downloadSeconds": 0.000080073 + "connectionEstablishedSeconds": 0.065497931, + "uploadSeconds": 0.064116416, + "downloadSeconds": 0.000032257 }, { - "connectionEstablishedSeconds": 0.063944015, - "uploadSeconds": 0.124517809, - "downloadSeconds": 0.00007133 + "connectionEstablishedSeconds": 0.065821669, + "uploadSeconds": 0.064453546, + "downloadSeconds": 0.000082331 }, { - "connectionEstablishedSeconds": 0.063215954, - "uploadSeconds": 0.122983571, - "downloadSeconds": 0.000075483 + "connectionEstablishedSeconds": 0.065095541, + "uploadSeconds": 0.063914588, + "downloadSeconds": 0.000128067 }, { - "connectionEstablishedSeconds": 0.062753195, - "uploadSeconds": 0.122299301, - "downloadSeconds": 0.000074919 + "connectionEstablishedSeconds": 0.060087466, + "uploadSeconds": 0.058825659, + "downloadSeconds": 0.000076026 }, { - "connectionEstablishedSeconds": 0.062395452, - "uploadSeconds": 0.121787297, - "downloadSeconds": 0.000107686 + "connectionEstablishedSeconds": 0.062558833, + "uploadSeconds": 0.061185092, + "downloadSeconds": 0.000077062 }, { - "connectionEstablishedSeconds": 0.062985342, - "uploadSeconds": 0.122406854, - "downloadSeconds": 0.000078724 + "connectionEstablishedSeconds": 0.06153757, + "uploadSeconds": 0.060208082, + "downloadSeconds": 0.000083862 }, { - "connectionEstablishedSeconds": 0.064946298, - "uploadSeconds": 0.126410273, - "downloadSeconds": 0.000082567 + "connectionEstablishedSeconds": 0.061961747, + "uploadSeconds": 0.060660285, + "downloadSeconds": 0.000082 }, { - "connectionEstablishedSeconds": 0.064756678, - "uploadSeconds": 0.126160138, - "downloadSeconds": 0.000031208 + "connectionEstablishedSeconds": 0.065749907, + "uploadSeconds": 0.064388882, + "downloadSeconds": 0.000044229 }, { - "connectionEstablishedSeconds": 0.06421922, - "uploadSeconds": 0.12529639, - "downloadSeconds": 0.000078245 + "connectionEstablishedSeconds": 0.065412578, + "uploadSeconds": 0.064035178, + "downloadSeconds": 0.000090118 }, { - "connectionEstablishedSeconds": 0.061292622, - "uploadSeconds": 0.119452983, - "downloadSeconds": 0.000068746 + "connectionEstablishedSeconds": 0.062381258, + "uploadSeconds": 0.060993353, + "downloadSeconds": 0.000086217 }, { - "connectionEstablishedSeconds": 0.062844098, - "uploadSeconds": 0.122445485, - "downloadSeconds": 0.000075351 + "connectionEstablishedSeconds": 0.063491215, + "uploadSeconds": 0.062050766, + "downloadSeconds": 0.000076918 }, { - "connectionEstablishedSeconds": 0.064734313, - "uploadSeconds": 0.1262624, - "downloadSeconds": 0.00013077 + "connectionEstablishedSeconds": 0.062304354, + "uploadSeconds": 0.060697002, + "downloadSeconds": 0.000276357 }, { - "connectionEstablishedSeconds": 0.063172545, - "uploadSeconds": 0.123045706, - "downloadSeconds": 0.000078989 + "connectionEstablishedSeconds": 0.063481083, + "uploadSeconds": 0.062078125, + "downloadSeconds": 0.000077437 }, { - "connectionEstablishedSeconds": 0.061765529, - "uploadSeconds": 0.120209572, - "downloadSeconds": 0.000082957 + "connectionEstablishedSeconds": 0.063865352, + "uploadSeconds": 0.062546218, + "downloadSeconds": 0.000071874 }, { - "connectionEstablishedSeconds": 0.06603262, - "uploadSeconds": 0.128706706, - "downloadSeconds": 0.000129909 + "connectionEstablishedSeconds": 0.064077109, + "uploadSeconds": 0.062630948, + "downloadSeconds": 0.000084832 }, { - "connectionEstablishedSeconds": 0.062404356, - "uploadSeconds": 0.121408457, - "downloadSeconds": 0.000077832 + "connectionEstablishedSeconds": 0.064764139, + "uploadSeconds": 0.063448696, + "downloadSeconds": 0.00008032 }, { - "connectionEstablishedSeconds": 0.06463015, - "uploadSeconds": 0.126062199, - "downloadSeconds": 0.000112965 + "connectionEstablishedSeconds": 0.064032461, + "uploadSeconds": 0.062751348, + "downloadSeconds": 0.000073452 }, { - "connectionEstablishedSeconds": 0.063353178, - "uploadSeconds": 0.123447775, - "downloadSeconds": 0.00007586 + "connectionEstablishedSeconds": 0.065047021, + "uploadSeconds": 0.063708564, + "downloadSeconds": 0.000044353 }, { - "connectionEstablishedSeconds": 0.065616971, - "uploadSeconds": 0.128011955, - "downloadSeconds": 0.000076824 + "connectionEstablishedSeconds": 0.066179958, + "uploadSeconds": 0.065005934, + "downloadSeconds": 0.000069713 }, { - "connectionEstablishedSeconds": 0.062332867, - "uploadSeconds": 0.12145863, - "downloadSeconds": 0.000076705 + "connectionEstablishedSeconds": 0.064745709, + "uploadSeconds": 0.063315025, + "downloadSeconds": 0.000083173 }, { - "connectionEstablishedSeconds": 0.063510853, - "uploadSeconds": 0.124005083, - "downloadSeconds": 0.000092898 + "connectionEstablishedSeconds": 0.064384712, + "uploadSeconds": 0.063016721, + "downloadSeconds": 0.000078181 }, { - "connectionEstablishedSeconds": 0.064150443, - "uploadSeconds": 0.125125734, - "downloadSeconds": 0.000075764 + "connectionEstablishedSeconds": 0.063283924, + "uploadSeconds": 0.061814414, + "downloadSeconds": 0.000079108 }, { - "connectionEstablishedSeconds": 0.064170424, - "uploadSeconds": 0.125084065, - "downloadSeconds": 0.000074709 + "connectionEstablishedSeconds": 0.061370013, + "uploadSeconds": 0.060091339, + "downloadSeconds": 0.00007473 }, { - "connectionEstablishedSeconds": 0.062841857, - "uploadSeconds": 0.122277809, - "downloadSeconds": 0.000072405 + "connectionEstablishedSeconds": 0.064706055, + "uploadSeconds": 0.063611132, + "downloadSeconds": 0.000050147 }, { - "connectionEstablishedSeconds": 0.063611611, - "uploadSeconds": 0.124122617, - "downloadSeconds": 0.000066236 + "connectionEstablishedSeconds": 0.063503588, + "uploadSeconds": 0.062095367, + "downloadSeconds": 0.000084274 }, { - "connectionEstablishedSeconds": 0.063870786, - "uploadSeconds": 0.124393202, - "downloadSeconds": 0.00007474 + "connectionEstablishedSeconds": 0.065948447, + "uploadSeconds": 0.064519378, + "downloadSeconds": 0.000090414 }, { - "connectionEstablishedSeconds": 0.063539917, - "uploadSeconds": 0.123865338, - "downloadSeconds": 0.000107758 + "connectionEstablishedSeconds": 0.064384921, + "uploadSeconds": 0.063031893, + "downloadSeconds": 0.000083421 }, { - "connectionEstablishedSeconds": 0.063430723, - "uploadSeconds": 0.123516186, - "downloadSeconds": 0.000064434 + "connectionEstablishedSeconds": 0.066066412, + "uploadSeconds": 0.064791803, + "downloadSeconds": 0.000075718 }, { - "connectionEstablishedSeconds": 0.065472971, - "uploadSeconds": 0.127594031, - "downloadSeconds": 0.000066605 + "connectionEstablishedSeconds": 0.065049928, + "uploadSeconds": 0.063729375, + "downloadSeconds": 0.000034276 }, { - "connectionEstablishedSeconds": 0.062129424, - "uploadSeconds": 0.121091365, - "downloadSeconds": 0.000073461 + "connectionEstablishedSeconds": 0.061172411, + "uploadSeconds": 0.059716958, + "downloadSeconds": 0.000075337 }, { - "connectionEstablishedSeconds": 0.06585531, - "uploadSeconds": 0.128565888, - "downloadSeconds": 0.000076886 + "connectionEstablishedSeconds": 0.062870413, + "uploadSeconds": 0.061557425, + "downloadSeconds": 0.000074626 }, { - "connectionEstablishedSeconds": 0.063584865, - "uploadSeconds": 0.124036269, - "downloadSeconds": 0.000074685 + "connectionEstablishedSeconds": 0.062062112, + "uploadSeconds": 0.060718265, + "downloadSeconds": 0.000072551 }, { - "connectionEstablishedSeconds": 0.064177802, - "uploadSeconds": 0.125393652, - "downloadSeconds": 0.000080112 + "connectionEstablishedSeconds": 0.063914045, + "uploadSeconds": 0.062527722, + "downloadSeconds": 0.000076349 }, { - "connectionEstablishedSeconds": 0.063876094, - "uploadSeconds": 0.124695268, - "downloadSeconds": 0.000072771 + "connectionEstablishedSeconds": 0.063350381, + "uploadSeconds": 0.062072111, + "downloadSeconds": 0.000073957 }, { - "connectionEstablishedSeconds": 0.063384346, - "uploadSeconds": 0.123569729, - "downloadSeconds": 0.000106485 + "connectionEstablishedSeconds": 0.063427646, + "uploadSeconds": 0.062161484, + "downloadSeconds": 0.000034628 }, { - "connectionEstablishedSeconds": 0.060557532, - "uploadSeconds": 0.117909823, - "downloadSeconds": 0.000080434 + "connectionEstablishedSeconds": 0.061263987, + "uploadSeconds": 0.059730047, + "downloadSeconds": 0.000268126 }, { - "connectionEstablishedSeconds": 0.061715602, - "uploadSeconds": 0.120185345, - "downloadSeconds": 0.000075141 + "connectionEstablishedSeconds": 0.066701607, + "uploadSeconds": 0.06528515, + "downloadSeconds": 0.000075631 }, { - "connectionEstablishedSeconds": 0.063313935, - "uploadSeconds": 0.123465157, - "downloadSeconds": 0.000077032 + "connectionEstablishedSeconds": 0.064611331, + "uploadSeconds": 0.063197252, + "downloadSeconds": 0.000077528 }, { - "connectionEstablishedSeconds": 0.065822412, - "uploadSeconds": 0.128407554, - "downloadSeconds": 0.000084521 + "connectionEstablishedSeconds": 0.064259357, + "uploadSeconds": 0.06296268, + "downloadSeconds": 0.000082668 }, { - "connectionEstablishedSeconds": 0.063722106, - "uploadSeconds": 0.124297724, - "downloadSeconds": 0.000075054 + "connectionEstablishedSeconds": 0.065502439, + "uploadSeconds": 0.064086552, + "downloadSeconds": 0.000077745 }, { - "connectionEstablishedSeconds": 0.062747653, - "uploadSeconds": 0.122252288, - "downloadSeconds": 0.000078251 + "connectionEstablishedSeconds": 0.065933122, + "uploadSeconds": 0.064584192, + "downloadSeconds": 0.000012591 }, { - "connectionEstablishedSeconds": 0.063449721, - "uploadSeconds": 0.123630602, - "downloadSeconds": 0.000076311 + "connectionEstablishedSeconds": 0.060246348, + "uploadSeconds": 0.058880981, + "downloadSeconds": 0.000078718 }, { - "connectionEstablishedSeconds": 0.0644094, - "uploadSeconds": 0.125442619, - "downloadSeconds": 0.000090846 + "connectionEstablishedSeconds": 0.062347678, + "uploadSeconds": 0.060994172, + "downloadSeconds": 0.000076074 }, { - "connectionEstablishedSeconds": 0.063082268, - "uploadSeconds": 0.122954727, - "downloadSeconds": 0.000075656 + "connectionEstablishedSeconds": 0.064884178, + "uploadSeconds": 0.063505428, + "downloadSeconds": 0.000093469 }, { - "connectionEstablishedSeconds": 0.065263634, - "uploadSeconds": 0.127313841, - "downloadSeconds": 0.000093562 + "connectionEstablishedSeconds": 0.063181371, + "uploadSeconds": 0.061809906, + "downloadSeconds": 0.000075479 }, { - "connectionEstablishedSeconds": 0.063756921, - "uploadSeconds": 0.124325695, - "downloadSeconds": 0.000077578 + "connectionEstablishedSeconds": 0.064960888, + "uploadSeconds": 0.063655175, + "downloadSeconds": 0.000081 }, { - "connectionEstablishedSeconds": 0.065226602, - "uploadSeconds": 0.127408746, - "downloadSeconds": 0.000063328 + "connectionEstablishedSeconds": 0.064750128, + "uploadSeconds": 0.063236861, + "downloadSeconds": 0.000218561 }, { - "connectionEstablishedSeconds": 0.062674923, - "uploadSeconds": 0.122178219, - "downloadSeconds": 0.00008401 + "connectionEstablishedSeconds": 0.063814042, + "uploadSeconds": 0.062523353, + "downloadSeconds": 0.000034572 }, { - "connectionEstablishedSeconds": 0.063754848, - "uploadSeconds": 0.124379335, - "downloadSeconds": 0.000051964 + "connectionEstablishedSeconds": 0.06585332, + "uploadSeconds": 0.064392595, + "downloadSeconds": 0.000080292 }, { - "connectionEstablishedSeconds": 0.065296851, - "uploadSeconds": 0.127246931, - "downloadSeconds": 0.000081588 + "connectionEstablishedSeconds": 0.065896994, + "uploadSeconds": 0.064488783, + "downloadSeconds": 0.000076237 }, { - "connectionEstablishedSeconds": 0.063616519, - "uploadSeconds": 0.124179761, - "downloadSeconds": 0.000044467 + "connectionEstablishedSeconds": 0.062997646, + "uploadSeconds": 0.061654694, + "downloadSeconds": 0.000084775 }, { - "connectionEstablishedSeconds": 0.061579295, - "uploadSeconds": 0.119979899, - "downloadSeconds": 0.000101516 + "connectionEstablishedSeconds": 0.065263527, + "uploadSeconds": 0.063891442, + "downloadSeconds": 0.000079792 }, { - "connectionEstablishedSeconds": 0.062572771, - "uploadSeconds": 0.122046019, - "downloadSeconds": 0.000088343 + "connectionEstablishedSeconds": 0.062148804, + "uploadSeconds": 0.060878161, + "downloadSeconds": 0.000070801 }, { - "connectionEstablishedSeconds": 0.063334286, - "uploadSeconds": 0.123357959, - "downloadSeconds": 0.00007871 + "connectionEstablishedSeconds": 0.063382609, + "uploadSeconds": 0.062101099, + "downloadSeconds": 0.000080955 }, { - "connectionEstablishedSeconds": 0.064733463, - "uploadSeconds": 0.12629003, - "downloadSeconds": 0.000078053 + "connectionEstablishedSeconds": 0.063483389, + "uploadSeconds": 0.062208616, + "downloadSeconds": 0.00007695 }, { - "connectionEstablishedSeconds": 0.063418871, - "uploadSeconds": 0.123562308, - "downloadSeconds": 0.00012644 + "connectionEstablishedSeconds": 0.061747333, + "uploadSeconds": 0.060397716, + "downloadSeconds": 0.000091487 }, { - "connectionEstablishedSeconds": 0.063024151, - "uploadSeconds": 0.122698679, - "downloadSeconds": 0.000088133 + "connectionEstablishedSeconds": 0.064043001, + "uploadSeconds": 0.062721853, + "downloadSeconds": 0.000078838 }, { - "connectionEstablishedSeconds": 0.065781879, - "uploadSeconds": 0.128445348, - "downloadSeconds": 0.000082524 + "connectionEstablishedSeconds": 0.062539265, + "uploadSeconds": 0.061212868, + "downloadSeconds": 0.000082724 }, { - "connectionEstablishedSeconds": 0.060848145, - "uploadSeconds": 0.11849403, - "downloadSeconds": 0.000052046 + "connectionEstablishedSeconds": 0.06378957, + "uploadSeconds": 0.062483273, + "downloadSeconds": 0.000087621 }, { - "connectionEstablishedSeconds": 0.065397278, - "uploadSeconds": 0.127812905, - "downloadSeconds": 0.000081862 + "connectionEstablishedSeconds": 0.06344643, + "uploadSeconds": 0.062024354, + "downloadSeconds": 0.000127271 }, { - "connectionEstablishedSeconds": 0.06331458, - "uploadSeconds": 0.123419175, - "downloadSeconds": 0.000064125 + "connectionEstablishedSeconds": 0.064907077, + "uploadSeconds": 0.063657779, + "downloadSeconds": 0.000089816 }, { - "connectionEstablishedSeconds": 0.061434991, - "uploadSeconds": 0.119663241, - "downloadSeconds": 0.000065614 + "connectionEstablishedSeconds": 0.066376037, + "uploadSeconds": 0.064972148, + "downloadSeconds": 0.000044345 }, { - "connectionEstablishedSeconds": 0.064118877, - "uploadSeconds": 0.125160915, - "downloadSeconds": 0.000076191 + "connectionEstablishedSeconds": 0.062585061, + "uploadSeconds": 0.061270805, + "downloadSeconds": 0.00007439 }, { - "connectionEstablishedSeconds": 0.06609273, - "uploadSeconds": 0.128976658, - "downloadSeconds": 0.000075263 + "connectionEstablishedSeconds": 0.062800139, + "uploadSeconds": 0.061461338, + "downloadSeconds": 0.000084143 }, { - "connectionEstablishedSeconds": 0.062119204, - "uploadSeconds": 0.121211198, - "downloadSeconds": 0.000090149 + "connectionEstablishedSeconds": 0.063088608, + "uploadSeconds": 0.061765023, + "downloadSeconds": 0.000083161 }, { - "connectionEstablishedSeconds": 0.065484144, - "uploadSeconds": 0.127686959, - "downloadSeconds": 0.00011936 + "connectionEstablishedSeconds": 0.062970816, + "uploadSeconds": 0.061567059, + "downloadSeconds": 0.00007798 }, { - "connectionEstablishedSeconds": 0.061099895, - "uploadSeconds": 0.118903555, - "downloadSeconds": 0.000093157 + "connectionEstablishedSeconds": 0.064158988, + "uploadSeconds": 0.062798405, + "downloadSeconds": 0.000043117 }, { - "connectionEstablishedSeconds": 0.066346868, - "uploadSeconds": 0.129013408, - "downloadSeconds": 0.000113448 + "connectionEstablishedSeconds": 0.06435458, + "uploadSeconds": 0.062898391, + "downloadSeconds": 0.000094095 }, { - "connectionEstablishedSeconds": 0.063363322, - "uploadSeconds": 0.12354139, - "downloadSeconds": 0.000081933 + "connectionEstablishedSeconds": 0.064365977, + "uploadSeconds": 0.062982643, + "downloadSeconds": 0.00008722 }, { - "connectionEstablishedSeconds": 0.065708913, - "uploadSeconds": 0.127996795, - "downloadSeconds": 0.000115991 + "connectionEstablishedSeconds": 0.066241203, + "uploadSeconds": 0.064829239, + "downloadSeconds": 0.000082176 }, { - "connectionEstablishedSeconds": 0.065038988, - "uploadSeconds": 0.126883528, - "downloadSeconds": 0.000111241 + "connectionEstablishedSeconds": 0.06345732, + "uploadSeconds": 0.062331512, + "downloadSeconds": 0.000042994 }, { - "connectionEstablishedSeconds": 0.06582632, - "uploadSeconds": 0.128563521, - "downloadSeconds": 0.000087801 + "connectionEstablishedSeconds": 0.061942778, + "uploadSeconds": 0.06061854, + "downloadSeconds": 0.000112886 }, { - "connectionEstablishedSeconds": 0.063173671, - "uploadSeconds": 0.123237588, - "downloadSeconds": 0.000080491 + "connectionEstablishedSeconds": 0.064431186, + "uploadSeconds": 0.063011824, + "downloadSeconds": 0.000075842 }, { - "connectionEstablishedSeconds": 0.064649962, - "uploadSeconds": 0.126206981, - "downloadSeconds": 0.000071408 + "connectionEstablishedSeconds": 0.065304742, + "uploadSeconds": 0.064025723, + "downloadSeconds": 0.000086335 }, { - "connectionEstablishedSeconds": 0.065991627, - "uploadSeconds": 0.128836539, - "downloadSeconds": 0.00008055 + "connectionEstablishedSeconds": 0.066152931, + "uploadSeconds": 0.064788484, + "downloadSeconds": 0.000077384 }, { - "connectionEstablishedSeconds": 0.061908521, - "uploadSeconds": 0.120909384, - "downloadSeconds": 0.000078715 + "connectionEstablishedSeconds": 0.064515699, + "uploadSeconds": 0.063120856, + "downloadSeconds": 0.000041413 }, { - "connectionEstablishedSeconds": 0.065387878, - "uploadSeconds": 0.127366811, - "downloadSeconds": 0.000098709 + "connectionEstablishedSeconds": 0.065207914, + "uploadSeconds": 0.06387325, + "downloadSeconds": 0.000075661 }, { - "connectionEstablishedSeconds": 0.062797077, - "uploadSeconds": 0.122537156, - "downloadSeconds": 0.000072229 + "connectionEstablishedSeconds": 0.063530102, + "uploadSeconds": 0.062192793, + "downloadSeconds": 0.00009561 }, { - "connectionEstablishedSeconds": 0.063171665, - "uploadSeconds": 0.123225664, - "downloadSeconds": 0.000086358 + "connectionEstablishedSeconds": 0.062775655, + "uploadSeconds": 0.061444648, + "downloadSeconds": 0.000071928 }, { - "connectionEstablishedSeconds": 0.063818464, - "uploadSeconds": 0.12427302, - "downloadSeconds": 0.000044336 + "connectionEstablishedSeconds": 0.065223444, + "uploadSeconds": 0.063788109, + "downloadSeconds": 0.000069069 }, { - "connectionEstablishedSeconds": 0.064874975, - "uploadSeconds": 0.126579857, - "downloadSeconds": 0.000075379 + "connectionEstablishedSeconds": 0.062171596, + "uploadSeconds": 0.060731552, + "downloadSeconds": 0.000107437 }, { - "connectionEstablishedSeconds": 0.06323232, - "uploadSeconds": 0.123291944, - "downloadSeconds": 0.000073215 + "connectionEstablishedSeconds": 0.065568056, + "uploadSeconds": 0.064164219, + "downloadSeconds": 0.00007941 }, { - "connectionEstablishedSeconds": 0.063251915, - "uploadSeconds": 0.123362543, - "downloadSeconds": 0.000080585 + "connectionEstablishedSeconds": 0.06273371, + "uploadSeconds": 0.061361467, + "downloadSeconds": 0.000209307 }, { - "connectionEstablishedSeconds": 0.062978757, - "uploadSeconds": 0.122864356, - "downloadSeconds": 0.000073106 + "connectionEstablishedSeconds": 0.06366634, + "uploadSeconds": 0.062231598, + "downloadSeconds": 0.000090888 }, { - "connectionEstablishedSeconds": 0.064929259, - "uploadSeconds": 0.126705193, - "downloadSeconds": 0.000073625 + "connectionEstablishedSeconds": 0.061694215, + "uploadSeconds": 0.060280493, + "downloadSeconds": 0.000085348 }, { - "connectionEstablishedSeconds": 0.066067453, - "uploadSeconds": 0.128731447, - "downloadSeconds": 0.000077397 + "connectionEstablishedSeconds": 0.064793097, + "uploadSeconds": 0.063493328, + "downloadSeconds": 0.000083748 }, { - "connectionEstablishedSeconds": 0.063177485, - "uploadSeconds": 0.123223254, - "downloadSeconds": 0.00009193 + "connectionEstablishedSeconds": 0.065374157, + "uploadSeconds": 0.064003824, + "downloadSeconds": 0.000085661 } ], "implementation": "rust-libp2p", @@ -1996,504 +1996,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.066293855, - "uploadSeconds": 0.128838694, - "downloadSeconds": 0.000109071 + "connectionEstablishedSeconds": 0.064462948, + "uploadSeconds": 0.125119596, + "downloadSeconds": 0.000067016 }, { - "connectionEstablishedSeconds": 0.066044661, - "uploadSeconds": 0.128552189, - "downloadSeconds": 0.000054501 + "connectionEstablishedSeconds": 0.065831813, + "uploadSeconds": 0.128228469, + "downloadSeconds": 0.000047935 }, { - "connectionEstablishedSeconds": 0.066218271, - "uploadSeconds": 0.12887538, - "downloadSeconds": 0.000094154 + "connectionEstablishedSeconds": 0.064402013, + "uploadSeconds": 0.125435568, + "downloadSeconds": 0.000045575 }, { - "connectionEstablishedSeconds": 0.062379976, - "uploadSeconds": 0.118404419, - "downloadSeconds": 0.000049924 + "connectionEstablishedSeconds": 0.061406925, + "uploadSeconds": 0.119611146, + "downloadSeconds": 0.000042647 }, { - "connectionEstablishedSeconds": 0.064759047, - "uploadSeconds": 0.126432775, - "downloadSeconds": 0.000105999 + "connectionEstablishedSeconds": 0.06254491, + "uploadSeconds": 0.121980727, + "downloadSeconds": 0.000044263 }, { - "connectionEstablishedSeconds": 0.066085657, - "uploadSeconds": 0.128805395, - "downloadSeconds": 0.000043488 + "connectionEstablishedSeconds": 0.062698836, + "uploadSeconds": 0.122012634, + "downloadSeconds": 0.000070228 }, { - "connectionEstablishedSeconds": 0.063836653, - "uploadSeconds": 0.124501237, - "downloadSeconds": 0.000061385 + "connectionEstablishedSeconds": 0.066283752, + "uploadSeconds": 0.12933051, + "downloadSeconds": 0.000041224 }, { - "connectionEstablishedSeconds": 0.063411751, - "uploadSeconds": 0.123530984, - "downloadSeconds": 0.000066786 + "connectionEstablishedSeconds": 0.066355151, + "uploadSeconds": 0.129307896, + "downloadSeconds": 0.000111055 }, { - "connectionEstablishedSeconds": 0.063151001, - "uploadSeconds": 0.122962178, - "downloadSeconds": 0.000071225 + "connectionEstablishedSeconds": 0.065097377, + "uploadSeconds": 0.126720524, + "downloadSeconds": 0.000046311 }, { - "connectionEstablishedSeconds": 0.063029447, - "uploadSeconds": 0.122810231, - "downloadSeconds": 0.000045789 + "connectionEstablishedSeconds": 0.065598773, + "uploadSeconds": 0.12788643, + "downloadSeconds": 0.000065528 }, { - "connectionEstablishedSeconds": 0.064916644, - "uploadSeconds": 0.126394694, - "downloadSeconds": 0.000082889 + "connectionEstablishedSeconds": 0.063874631, + "uploadSeconds": 0.125049538, + "downloadSeconds": 0.000046175 }, { - "connectionEstablishedSeconds": 0.063766039, - "uploadSeconds": 0.124300394, - "downloadSeconds": 0.000057969 + "connectionEstablishedSeconds": 0.061878697, + "uploadSeconds": 0.120464425, + "downloadSeconds": 0.000064265 }, { - "connectionEstablishedSeconds": 0.065127441, - "uploadSeconds": 0.126831722, - "downloadSeconds": 0.000062703 + "connectionEstablishedSeconds": 0.066837904, + "uploadSeconds": 0.130196029, + "downloadSeconds": 0.000056874 }, { - "connectionEstablishedSeconds": 0.062038374, - "uploadSeconds": 0.12078609, - "downloadSeconds": 0.000060429 + "connectionEstablishedSeconds": 0.062387765, + "uploadSeconds": 0.121608986, + "downloadSeconds": 0.00006255 }, { - "connectionEstablishedSeconds": 0.061448811, - "uploadSeconds": 0.11961297, - "downloadSeconds": 0.000068448 + "connectionEstablishedSeconds": 0.060818783, + "uploadSeconds": 0.118620769, + "downloadSeconds": 0.000051438 }, { - "connectionEstablishedSeconds": 0.064899522, - "uploadSeconds": 0.126568866, - "downloadSeconds": 0.000048038 + "connectionEstablishedSeconds": 0.062497413, + "uploadSeconds": 0.121748006, + "downloadSeconds": 0.000047441 }, { - "connectionEstablishedSeconds": 0.065273294, - "uploadSeconds": 0.127268102, - "downloadSeconds": 0.000050118 + "connectionEstablishedSeconds": 0.064094899, + "uploadSeconds": 0.124947053, + "downloadSeconds": 0.00004906 }, { - "connectionEstablishedSeconds": 0.063516307, - "uploadSeconds": 0.123758702, - "downloadSeconds": 0.000067881 + "connectionEstablishedSeconds": 0.065992279, + "uploadSeconds": 0.129015496, + "downloadSeconds": 0.000045885 }, { - "connectionEstablishedSeconds": 0.062746456, - "uploadSeconds": 0.122660261, - "downloadSeconds": 0.000048767 + "connectionEstablishedSeconds": 0.063487935, + "uploadSeconds": 0.123865417, + "downloadSeconds": 0.000102135 }, { - "connectionEstablishedSeconds": 0.067157762, - "uploadSeconds": 0.129308345, - "downloadSeconds": 0.000043885 + "connectionEstablishedSeconds": 0.064334053, + "uploadSeconds": 0.125535106, + "downloadSeconds": 0.000070054 }, { - "connectionEstablishedSeconds": 0.06478928, - "uploadSeconds": 0.126306743, - "downloadSeconds": 0.000053643 + "connectionEstablishedSeconds": 0.065028569, + "uploadSeconds": 0.126920455, + "downloadSeconds": 0.000060293 }, { - "connectionEstablishedSeconds": 0.060772493, - "uploadSeconds": 0.118447541, - "downloadSeconds": 0.000043745 + "connectionEstablishedSeconds": 0.062264881, + "uploadSeconds": 0.121199353, + "downloadSeconds": 0.000071576 }, { - "connectionEstablishedSeconds": 0.062497528, - "uploadSeconds": 0.121945691, - "downloadSeconds": 0.000050597 + "connectionEstablishedSeconds": 0.065520706, + "uploadSeconds": 0.127636085, + "downloadSeconds": 0.00004333 }, { - "connectionEstablishedSeconds": 0.065664218, - "uploadSeconds": 0.128117385, - "downloadSeconds": 0.000046102 + "connectionEstablishedSeconds": 0.061164417, + "uploadSeconds": 0.119148881, + "downloadSeconds": 0.000044735 }, { - "connectionEstablishedSeconds": 0.065402008, - "uploadSeconds": 0.127307752, - "downloadSeconds": 0.000047742 + "connectionEstablishedSeconds": 0.062587419, + "uploadSeconds": 0.121969334, + "downloadSeconds": 0.000041428 }, { - "connectionEstablishedSeconds": 0.06218077, - "uploadSeconds": 0.121057154, - "downloadSeconds": 0.000045149 + "connectionEstablishedSeconds": 0.065961086, + "uploadSeconds": 0.128735485, + "downloadSeconds": 0.000046919 }, { - "connectionEstablishedSeconds": 0.063104503, - "uploadSeconds": 0.122896606, - "downloadSeconds": 0.0000516 + "connectionEstablishedSeconds": 0.063503642, + "uploadSeconds": 0.123728438, + "downloadSeconds": 0.000043632 }, { - "connectionEstablishedSeconds": 0.065216033, - "uploadSeconds": 0.127229111, - "downloadSeconds": 0.000044079 + "connectionEstablishedSeconds": 0.060113546, + "uploadSeconds": 0.116927809, + "downloadSeconds": 0.000057169 }, { - "connectionEstablishedSeconds": 0.064356653, - "uploadSeconds": 0.125582002, - "downloadSeconds": 0.000044951 + "connectionEstablishedSeconds": 0.061635441, + "uploadSeconds": 0.120208205, + "downloadSeconds": 0.00010044 }, { - "connectionEstablishedSeconds": 0.06124353, - "uploadSeconds": 0.119388, - "downloadSeconds": 0.000041664 + "connectionEstablishedSeconds": 0.063677554, + "uploadSeconds": 0.124053914, + "downloadSeconds": 0.000050868 }, { - "connectionEstablishedSeconds": 0.06430739, - "uploadSeconds": 0.125459188, - "downloadSeconds": 0.000044305 + "connectionEstablishedSeconds": 0.065183396, + "uploadSeconds": 0.12708526, + "downloadSeconds": 0.000044888 }, { - "connectionEstablishedSeconds": 0.063070535, - "uploadSeconds": 0.123019138, - "downloadSeconds": 0.000079823 + "connectionEstablishedSeconds": 0.064433094, + "uploadSeconds": 0.125591109, + "downloadSeconds": 0.000054742 }, { - "connectionEstablishedSeconds": 0.063156585, - "uploadSeconds": 0.123055698, - "downloadSeconds": 0.000043145 + "connectionEstablishedSeconds": 0.063914601, + "uploadSeconds": 0.124234774, + "downloadSeconds": 0.000065223 }, { - "connectionEstablishedSeconds": 0.064462957, - "uploadSeconds": 0.12543376, - "downloadSeconds": 0.000068488 + "connectionEstablishedSeconds": 0.060867402, + "uploadSeconds": 0.118631418, + "downloadSeconds": 0.00006135 }, { - "connectionEstablishedSeconds": 0.062023748, - "uploadSeconds": 0.120737552, - "downloadSeconds": 0.000055591 + "connectionEstablishedSeconds": 0.064661226, + "uploadSeconds": 0.12598699, + "downloadSeconds": 0.000044281 }, { - "connectionEstablishedSeconds": 0.063462423, - "uploadSeconds": 0.123716044, - "downloadSeconds": 0.000042694 + "connectionEstablishedSeconds": 0.065515644, + "uploadSeconds": 0.128063708, + "downloadSeconds": 0.000044676 }, { - "connectionEstablishedSeconds": 0.062781062, - "uploadSeconds": 0.122466443, - "downloadSeconds": 0.000054478 + "connectionEstablishedSeconds": 0.064469964, + "uploadSeconds": 0.125701776, + "downloadSeconds": 0.000048991 }, { - "connectionEstablishedSeconds": 0.063981831, - "uploadSeconds": 0.124848737, - "downloadSeconds": 0.000069009 + "connectionEstablishedSeconds": 0.065245431, + "uploadSeconds": 0.127041621, + "downloadSeconds": 0.000056653 }, { - "connectionEstablishedSeconds": 0.06130626, - "uploadSeconds": 0.1193835, - "downloadSeconds": 0.00009292 + "connectionEstablishedSeconds": 0.064494485, + "uploadSeconds": 0.125738483, + "downloadSeconds": 0.000076911 }, { - "connectionEstablishedSeconds": 0.065247146, - "uploadSeconds": 0.127370527, - "downloadSeconds": 0.000072377 + "connectionEstablishedSeconds": 0.064877096, + "uploadSeconds": 0.12664143, + "downloadSeconds": 0.00004586 }, { - "connectionEstablishedSeconds": 0.063327282, - "uploadSeconds": 0.12356483, - "downloadSeconds": 0.000043629 + "connectionEstablishedSeconds": 0.063684388, + "uploadSeconds": 0.124312679, + "downloadSeconds": 0.000068558 }, { - "connectionEstablishedSeconds": 0.063911442, - "uploadSeconds": 0.124664435, - "downloadSeconds": 0.000044125 + "connectionEstablishedSeconds": 0.064394283, + "uploadSeconds": 0.125685297, + "downloadSeconds": 0.000047193 }, { - "connectionEstablishedSeconds": 0.06343294, - "uploadSeconds": 0.123700053, - "downloadSeconds": 0.000075065 + "connectionEstablishedSeconds": 0.064935148, + "uploadSeconds": 0.126808038, + "downloadSeconds": 0.000044662 }, { - "connectionEstablishedSeconds": 0.064634539, - "uploadSeconds": 0.126111265, - "downloadSeconds": 0.000061258 + "connectionEstablishedSeconds": 0.065173993, + "uploadSeconds": 0.127079133, + "downloadSeconds": 0.000046756 }, { - "connectionEstablishedSeconds": 0.065161663, - "uploadSeconds": 0.127349492, - "downloadSeconds": 0.000063018 + "connectionEstablishedSeconds": 0.063725706, + "uploadSeconds": 0.124510166, + "downloadSeconds": 0.000061739 }, { - "connectionEstablishedSeconds": 0.063589554, - "uploadSeconds": 0.123524262, - "downloadSeconds": 0.000053298 + "connectionEstablishedSeconds": 0.06343755, + "uploadSeconds": 0.123655096, + "downloadSeconds": 0.000051849 }, { - "connectionEstablishedSeconds": 0.060602978, - "uploadSeconds": 0.117673782, - "downloadSeconds": 0.000042326 + "connectionEstablishedSeconds": 0.065352365, + "uploadSeconds": 0.127504892, + "downloadSeconds": 0.000061346 }, { - "connectionEstablishedSeconds": 0.064852721, - "uploadSeconds": 0.126461212, - "downloadSeconds": 0.000041829 + "connectionEstablishedSeconds": 0.065783236, + "uploadSeconds": 0.128499342, + "downloadSeconds": 0.000051394 }, { - "connectionEstablishedSeconds": 0.06298342, - "uploadSeconds": 0.122936763, - "downloadSeconds": 0.000046214 + "connectionEstablishedSeconds": 0.065065235, + "uploadSeconds": 0.126698515, + "downloadSeconds": 0.000062773 }, { - "connectionEstablishedSeconds": 0.065531317, - "uploadSeconds": 0.127887135, - "downloadSeconds": 0.00004526 + "connectionEstablishedSeconds": 0.065970178, + "uploadSeconds": 0.128634765, + "downloadSeconds": 0.000051208 }, { - "connectionEstablishedSeconds": 0.065374762, - "uploadSeconds": 0.127439175, - "downloadSeconds": 0.000063495 + "connectionEstablishedSeconds": 0.064967178, + "uploadSeconds": 0.126737755, + "downloadSeconds": 0.000058531 }, { - "connectionEstablishedSeconds": 0.065463941, - "uploadSeconds": 0.127815628, - "downloadSeconds": 0.000043459 + "connectionEstablishedSeconds": 0.063823739, + "uploadSeconds": 0.124666751, + "downloadSeconds": 0.000066499 }, { - "connectionEstablishedSeconds": 0.065122609, - "uploadSeconds": 0.127021187, - "downloadSeconds": 0.000063603 + "connectionEstablishedSeconds": 0.064303025, + "uploadSeconds": 0.125377321, + "downloadSeconds": 0.000065829 }, { - "connectionEstablishedSeconds": 0.06383867, - "uploadSeconds": 0.124412336, - "downloadSeconds": 0.000045804 + "connectionEstablishedSeconds": 0.063231758, + "uploadSeconds": 0.123401045, + "downloadSeconds": 0.000044451 }, { - "connectionEstablishedSeconds": 0.064228688, - "uploadSeconds": 0.125228463, - "downloadSeconds": 0.000065232 + "connectionEstablishedSeconds": 0.065238466, + "uploadSeconds": 0.127331459, + "downloadSeconds": 0.000069124 }, { - "connectionEstablishedSeconds": 0.062811454, - "uploadSeconds": 0.122469789, - "downloadSeconds": 0.000042892 + "connectionEstablishedSeconds": 0.064653307, + "uploadSeconds": 0.126187794, + "downloadSeconds": 0.000055878 }, { - "connectionEstablishedSeconds": 0.062547227, - "uploadSeconds": 0.121882683, - "downloadSeconds": 0.000077208 + "connectionEstablishedSeconds": 0.064352031, + "uploadSeconds": 0.125579134, + "downloadSeconds": 0.000046481 }, { - "connectionEstablishedSeconds": 0.06284941, - "uploadSeconds": 0.122538014, - "downloadSeconds": 0.000095453 + "connectionEstablishedSeconds": 0.065965326, + "uploadSeconds": 0.128712002, + "downloadSeconds": 0.000045973 }, { - "connectionEstablishedSeconds": 0.066098911, - "uploadSeconds": 0.129004454, - "downloadSeconds": 0.000043178 + "connectionEstablishedSeconds": 0.064485753, + "uploadSeconds": 0.125675389, + "downloadSeconds": 0.000070212 }, { - "connectionEstablishedSeconds": 0.062815475, - "uploadSeconds": 0.122317576, - "downloadSeconds": 0.000088037 + "connectionEstablishedSeconds": 0.061702269, + "uploadSeconds": 0.120323005, + "downloadSeconds": 0.000049601 }, { - "connectionEstablishedSeconds": 0.066287114, - "uploadSeconds": 0.129409299, - "downloadSeconds": 0.000092224 + "connectionEstablishedSeconds": 0.06361865, + "uploadSeconds": 0.124047595, + "downloadSeconds": 0.000044623 }, { - "connectionEstablishedSeconds": 0.062671299, - "uploadSeconds": 0.122033709, - "downloadSeconds": 0.00006392 + "connectionEstablishedSeconds": 0.061886618, + "uploadSeconds": 0.12049852, + "downloadSeconds": 0.000044687 }, { - "connectionEstablishedSeconds": 0.063377735, - "uploadSeconds": 0.123620435, - "downloadSeconds": 0.000050908 + "connectionEstablishedSeconds": 0.065386186, + "uploadSeconds": 0.127658217, + "downloadSeconds": 0.000042701 }, { - "connectionEstablishedSeconds": 0.06538328, - "uploadSeconds": 0.12750699, - "downloadSeconds": 0.000056413 + "connectionEstablishedSeconds": 0.065599662, + "uploadSeconds": 0.127732747, + "downloadSeconds": 0.000039307 }, { - "connectionEstablishedSeconds": 0.063522213, - "uploadSeconds": 0.123819808, - "downloadSeconds": 0.000067559 + "connectionEstablishedSeconds": 0.06496517, + "uploadSeconds": 0.126670341, + "downloadSeconds": 0.000068866 }, { - "connectionEstablishedSeconds": 0.0659601, - "uploadSeconds": 0.128779919, - "downloadSeconds": 0.000064312 + "connectionEstablishedSeconds": 0.064304167, + "uploadSeconds": 0.12559832, + "downloadSeconds": 0.000061641 }, { - "connectionEstablishedSeconds": 0.065575178, - "uploadSeconds": 0.12799637, - "downloadSeconds": 0.000052054 + "connectionEstablishedSeconds": 0.062582496, + "uploadSeconds": 0.122043851, + "downloadSeconds": 0.000075862 }, { - "connectionEstablishedSeconds": 0.064139778, - "uploadSeconds": 0.125176728, - "downloadSeconds": 0.000075293 + "connectionEstablishedSeconds": 0.061798651, + "uploadSeconds": 0.120463397, + "downloadSeconds": 0.000058025 }, { - "connectionEstablishedSeconds": 0.063111646, - "uploadSeconds": 0.123056972, - "downloadSeconds": 0.000047648 + "connectionEstablishedSeconds": 0.065998197, + "uploadSeconds": 0.128827992, + "downloadSeconds": 0.000057713 }, { - "connectionEstablishedSeconds": 0.065287877, - "uploadSeconds": 0.127419796, - "downloadSeconds": 0.000044081 + "connectionEstablishedSeconds": 0.064320426, + "uploadSeconds": 0.12555849, + "downloadSeconds": 0.000043647 }, { - "connectionEstablishedSeconds": 0.064179332, - "uploadSeconds": 0.124868524, - "downloadSeconds": 0.000058339 + "connectionEstablishedSeconds": 0.064770212, + "uploadSeconds": 0.126704859, + "downloadSeconds": 0.000049868 }, { - "connectionEstablishedSeconds": 0.063847942, - "uploadSeconds": 0.124473084, - "downloadSeconds": 0.000043143 + "connectionEstablishedSeconds": 0.066170346, + "uploadSeconds": 0.129157357, + "downloadSeconds": 0.00006461 }, { - "connectionEstablishedSeconds": 0.065343678, - "uploadSeconds": 0.127495389, - "downloadSeconds": 0.000058849 + "connectionEstablishedSeconds": 0.065782602, + "uploadSeconds": 0.128516874, + "downloadSeconds": 0.000044179 }, { - "connectionEstablishedSeconds": 0.062360192, - "uploadSeconds": 0.121570947, - "downloadSeconds": 0.000043107 + "connectionEstablishedSeconds": 0.062308974, + "uploadSeconds": 0.121684367, + "downloadSeconds": 0.000055255 }, { - "connectionEstablishedSeconds": 0.065844591, - "uploadSeconds": 0.128239351, - "downloadSeconds": 0.000066319 + "connectionEstablishedSeconds": 0.065101312, + "uploadSeconds": 0.126841715, + "downloadSeconds": 0.000046293 }, { - "connectionEstablishedSeconds": 0.065322628, - "uploadSeconds": 0.127487935, - "downloadSeconds": 0.000044149 + "connectionEstablishedSeconds": 0.064022899, + "uploadSeconds": 0.124769379, + "downloadSeconds": 0.000042282 }, { - "connectionEstablishedSeconds": 0.066464531, - "uploadSeconds": 0.129952884, - "downloadSeconds": 0.000060471 + "connectionEstablishedSeconds": 0.063785913, + "uploadSeconds": 0.124487175, + "downloadSeconds": 0.000046295 }, { - "connectionEstablishedSeconds": 0.064306115, - "uploadSeconds": 0.125431056, - "downloadSeconds": 0.00010413 + "connectionEstablishedSeconds": 0.062254414, + "uploadSeconds": 0.121345959, + "downloadSeconds": 0.000044065 }, { - "connectionEstablishedSeconds": 0.063619726, - "uploadSeconds": 0.124078136, - "downloadSeconds": 0.0000852 + "connectionEstablishedSeconds": 0.065335209, + "uploadSeconds": 0.127234463, + "downloadSeconds": 0.000050635 }, { - "connectionEstablishedSeconds": 0.062638913, - "uploadSeconds": 0.122031095, - "downloadSeconds": 0.000074539 + "connectionEstablishedSeconds": 0.063069683, + "uploadSeconds": 0.122983411, + "downloadSeconds": 0.000054152 }, { - "connectionEstablishedSeconds": 0.06155076, - "uploadSeconds": 0.119838688, - "downloadSeconds": 0.000042917 + "connectionEstablishedSeconds": 0.066118387, + "uploadSeconds": 0.129152211, + "downloadSeconds": 0.000046137 }, { - "connectionEstablishedSeconds": 0.062433044, - "uploadSeconds": 0.121616772, - "downloadSeconds": 0.000086568 + "connectionEstablishedSeconds": 0.06307401, + "uploadSeconds": 0.122988555, + "downloadSeconds": 0.000046959 }, { - "connectionEstablishedSeconds": 0.06341812, - "uploadSeconds": 0.123585474, - "downloadSeconds": 0.000071418 + "connectionEstablishedSeconds": 0.062981886, + "uploadSeconds": 0.122672461, + "downloadSeconds": 0.000067137 }, { - "connectionEstablishedSeconds": 0.066048887, - "uploadSeconds": 0.128822032, - "downloadSeconds": 0.000099427 + "connectionEstablishedSeconds": 0.062563236, + "uploadSeconds": 0.122018618, + "downloadSeconds": 0.000053972 }, { - "connectionEstablishedSeconds": 0.062968092, - "uploadSeconds": 0.122552074, - "downloadSeconds": 0.000083105 + "connectionEstablishedSeconds": 0.062639675, + "uploadSeconds": 0.122164465, + "downloadSeconds": 0.000050684 }, { - "connectionEstablishedSeconds": 0.063012973, - "uploadSeconds": 0.122698468, - "downloadSeconds": 0.000086725 + "connectionEstablishedSeconds": 0.065211957, + "uploadSeconds": 0.127131818, + "downloadSeconds": 0.000044262 }, { - "connectionEstablishedSeconds": 0.065530269, - "uploadSeconds": 0.12795265, - "downloadSeconds": 0.000044245 + "connectionEstablishedSeconds": 0.066136058, + "uploadSeconds": 0.12916792, + "downloadSeconds": 0.000049405 }, { - "connectionEstablishedSeconds": 0.064960776, - "uploadSeconds": 0.126513551, - "downloadSeconds": 0.000044453 + "connectionEstablishedSeconds": 0.065200996, + "uploadSeconds": 0.127128813, + "downloadSeconds": 0.000046609 }, { - "connectionEstablishedSeconds": 0.061790656, - "uploadSeconds": 0.120286236, - "downloadSeconds": 0.000066911 + "connectionEstablishedSeconds": 0.063393044, + "uploadSeconds": 0.123642137, + "downloadSeconds": 0.000040417 }, { - "connectionEstablishedSeconds": 0.066244713, - "uploadSeconds": 0.129109878, - "downloadSeconds": 0.000071863 + "connectionEstablishedSeconds": 0.061455141, + "uploadSeconds": 0.119868598, + "downloadSeconds": 0.000045237 }, { - "connectionEstablishedSeconds": 0.06453071, - "uploadSeconds": 0.125708928, - "downloadSeconds": 0.000071678 + "connectionEstablishedSeconds": 0.063550234, + "uploadSeconds": 0.123857917, + "downloadSeconds": 0.000043898 }, { - "connectionEstablishedSeconds": 0.0624927, - "uploadSeconds": 0.1218161, - "downloadSeconds": 0.000056356 + "connectionEstablishedSeconds": 0.065183734, + "uploadSeconds": 0.127223855, + "downloadSeconds": 0.000047105 }, { - "connectionEstablishedSeconds": 0.063537376, - "uploadSeconds": 0.123929577, - "downloadSeconds": 0.000039988 + "connectionEstablishedSeconds": 0.066121179, + "uploadSeconds": 0.129125684, + "downloadSeconds": 0.000040685 }, { - "connectionEstablishedSeconds": 0.063965224, - "uploadSeconds": 0.124748106, - "downloadSeconds": 0.000063244 + "connectionEstablishedSeconds": 0.064451883, + "uploadSeconds": 0.12564272, + "downloadSeconds": 0.000073099 }, { - "connectionEstablishedSeconds": 0.062425074, - "uploadSeconds": 0.121450899, - "downloadSeconds": 0.000039717 + "connectionEstablishedSeconds": 0.062976407, + "uploadSeconds": 0.122649689, + "downloadSeconds": 0.000045305 }, { - "connectionEstablishedSeconds": 0.064375788, - "uploadSeconds": 0.125731952, - "downloadSeconds": 0.000045356 + "connectionEstablishedSeconds": 0.063653225, + "uploadSeconds": 0.124112745, + "downloadSeconds": 0.000061768 }, { - "connectionEstablishedSeconds": 0.065792091, - "uploadSeconds": 0.128431911, - "downloadSeconds": 0.000041651 + "connectionEstablishedSeconds": 0.06612814, + "uploadSeconds": 0.129159697, + "downloadSeconds": 0.000068674 }, { - "connectionEstablishedSeconds": 0.062532951, - "uploadSeconds": 0.12193893, - "downloadSeconds": 0.000089181 + "connectionEstablishedSeconds": 0.065257504, + "uploadSeconds": 0.127275972, + "downloadSeconds": 0.000044804 }, { - "connectionEstablishedSeconds": 0.065898519, - "uploadSeconds": 0.128566453, - "downloadSeconds": 0.00004398 + "connectionEstablishedSeconds": 0.063792408, + "uploadSeconds": 0.124254596, + "downloadSeconds": 0.000043881 }, { - "connectionEstablishedSeconds": 0.065879497, - "uploadSeconds": 0.128738269, - "downloadSeconds": 0.000044414 + "connectionEstablishedSeconds": 0.063544629, + "uploadSeconds": 0.124036509, + "downloadSeconds": 0.000075228 } ], "implementation": "rust-libp2p-quinn", @@ -2504,503 +2504,503 @@ "result": [ { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190829819, - "downloadSeconds": 0.000026367 + "uploadSeconds": 0.187336474, + "downloadSeconds": 0.000027001 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189724003, - "downloadSeconds": 0.000018734 + "uploadSeconds": 0.188607583, + "downloadSeconds": 0.000019844 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.175119696, - "downloadSeconds": 0.000022903 + "uploadSeconds": 0.18466744, + "downloadSeconds": 0.000016649 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188146694, - "downloadSeconds": 0.000020093 + "uploadSeconds": 0.184762106, + "downloadSeconds": 0.000030501 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186209685, - "downloadSeconds": 0.000021729 + "uploadSeconds": 0.182522595, + "downloadSeconds": 0.00001647 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190081623, - "downloadSeconds": 0.000016961 + "uploadSeconds": 0.180723038, + "downloadSeconds": 0.000026391 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183954634, - "downloadSeconds": 0.000021747 + "uploadSeconds": 0.188368934, + "downloadSeconds": 0.000017424 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187800533, - "downloadSeconds": 0.000016526 + "uploadSeconds": 0.186429652, + "downloadSeconds": 0.000017475 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.194375024, - "downloadSeconds": 0.000020647 + "uploadSeconds": 0.182650717, + "downloadSeconds": 0.000019971 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185626309, - "downloadSeconds": 0.000018187 + "uploadSeconds": 0.189152786, + "downloadSeconds": 0.00001974 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183967119, - "downloadSeconds": 0.000015378 + "uploadSeconds": 0.188810984, + "downloadSeconds": 0.000019274 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188981234, - "downloadSeconds": 0.000016356 + "uploadSeconds": 0.187238723, + "downloadSeconds": 0.000017663 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191034607, - "downloadSeconds": 0.000026368 + "uploadSeconds": 0.184754598, + "downloadSeconds": 0.000026468 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187801904, - "downloadSeconds": 0.000014983 + "uploadSeconds": 0.184773665, + "downloadSeconds": 0.000021201 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191242364, - "downloadSeconds": 0.00002859 + "uploadSeconds": 0.192364079, + "downloadSeconds": 0.000020463 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.181841544, - "downloadSeconds": 0.000023666 + "uploadSeconds": 0.192014779, + "downloadSeconds": 0.00002401 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182974342, - "downloadSeconds": 0.000020641 + "uploadSeconds": 0.183385091, + "downloadSeconds": 0.000024884 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191821115, - "downloadSeconds": 0.000018431 + "uploadSeconds": 0.188721173, + "downloadSeconds": 0.000025917 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184156948, - "downloadSeconds": 0.00002234 + "uploadSeconds": 0.193474904, + "downloadSeconds": 0.00001762 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191289271, - "downloadSeconds": 0.000019148 + "uploadSeconds": 0.182962082, + "downloadSeconds": 0.000029005 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184407929, - "downloadSeconds": 0.000024548 + "uploadSeconds": 0.188652552, + "downloadSeconds": 0.000022818 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185799153, - "downloadSeconds": 0.000028872 + "uploadSeconds": 0.186364742, + "downloadSeconds": 0.000029362 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183993881, - "downloadSeconds": 0.000027891 + "uploadSeconds": 0.195843479, + "downloadSeconds": 0.000019829 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.179438681, - "downloadSeconds": 0.000021462 + "uploadSeconds": 0.179663823, + "downloadSeconds": 0.000021055 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191636042, - "downloadSeconds": 0.000019996 + "uploadSeconds": 0.18746598, + "downloadSeconds": 0.000020241 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.178288188, - "downloadSeconds": 0.000024328 + "uploadSeconds": 0.192316325, + "downloadSeconds": 0.000026247 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18257587, - "downloadSeconds": 0.000031845 + "uploadSeconds": 0.190017759, + "downloadSeconds": 0.000020245 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192563712, - "downloadSeconds": 0.000023345 + "uploadSeconds": 0.185414721, + "downloadSeconds": 0.000019234 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186481306, - "downloadSeconds": 0.000020744 + "uploadSeconds": 0.191582017, + "downloadSeconds": 0.000021056 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182478621, - "downloadSeconds": 0.000026664 + "uploadSeconds": 0.181537417, + "downloadSeconds": 0.000025969 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185973403, - "downloadSeconds": 0.000030388 + "uploadSeconds": 0.190118377, + "downloadSeconds": 0.000020703 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.195619821, - "downloadSeconds": 0.000022561 + "uploadSeconds": 0.182609953, + "downloadSeconds": 0.000020388 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190640131, - "downloadSeconds": 0.000025218 + "uploadSeconds": 0.184658949, + "downloadSeconds": 0.000026633 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.194154188, - "downloadSeconds": 0.00002682 + "uploadSeconds": 0.186113078, + "downloadSeconds": 0.000018084 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.175067998, - "downloadSeconds": 0.000027339 + "uploadSeconds": 0.190350806, + "downloadSeconds": 0.000017912 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182302437, - "downloadSeconds": 0.00002018 + "uploadSeconds": 0.192394434, + "downloadSeconds": 0.000020188 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186602272, - "downloadSeconds": 0.000023225 + "uploadSeconds": 0.187480235, + "downloadSeconds": 0.000020475 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193258189, - "downloadSeconds": 0.000017303 + "uploadSeconds": 0.178086179, + "downloadSeconds": 0.000017823 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187432573, - "downloadSeconds": 0.000017959 + "uploadSeconds": 0.193497257, + "downloadSeconds": 0.00002246 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186673202, - "downloadSeconds": 0.000017697 + "uploadSeconds": 0.188899742, + "downloadSeconds": 0.000025437 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.1840051, - "downloadSeconds": 0.000026612 + "uploadSeconds": 0.189408733, + "downloadSeconds": 0.000025956 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.180351292, - "downloadSeconds": 0.000021126 + "uploadSeconds": 0.191247094, + "downloadSeconds": 0.000016695 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187515329, - "downloadSeconds": 0.000026493 + "uploadSeconds": 0.18511824, + "downloadSeconds": 0.000027156 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.19165545, - "downloadSeconds": 0.000020239 + "uploadSeconds": 0.184173921, + "downloadSeconds": 0.000026291 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.1913683, - "downloadSeconds": 0.000026373 + "uploadSeconds": 0.191214041, + "downloadSeconds": 0.000025633 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189143758, - "downloadSeconds": 0.000016708 + "uploadSeconds": 0.191231499, + "downloadSeconds": 0.000018728 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192845203, - "downloadSeconds": 0.000026 + "uploadSeconds": 0.180318665, + "downloadSeconds": 0.000026797 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187126564, - "downloadSeconds": 0.000021633 + "uploadSeconds": 0.183687341, + "downloadSeconds": 0.000020061 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.180921, - "downloadSeconds": 0.000025552 + "uploadSeconds": 0.188828337, + "downloadSeconds": 0.000020648 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193008942, - "downloadSeconds": 0.000016859 + "uploadSeconds": 0.188139511, + "downloadSeconds": 0.000016889 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190203365, - "downloadSeconds": 0.000020266 + "uploadSeconds": 0.189151884, + "downloadSeconds": 0.000020564 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182482709, - "downloadSeconds": 0.000020732 + "uploadSeconds": 0.188649231, + "downloadSeconds": 0.000021825 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190294803, - "downloadSeconds": 0.000016914 + "uploadSeconds": 0.188991477, + "downloadSeconds": 0.000036717 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182667268, - "downloadSeconds": 0.000027923 + "uploadSeconds": 0.193672712, + "downloadSeconds": 0.000026065 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191917692, - "downloadSeconds": 0.000025807 + "uploadSeconds": 0.194298014, + "downloadSeconds": 0.000020063 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190478427, - "downloadSeconds": 0.000020197 + "uploadSeconds": 0.183158008, + "downloadSeconds": 0.000020925 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185475785, - "downloadSeconds": 0.000022971 + "uploadSeconds": 0.181886457, + "downloadSeconds": 0.000019911 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188164921, - "downloadSeconds": 0.000020304 + "uploadSeconds": 0.186204957, + "downloadSeconds": 0.000019998 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186614057, - "downloadSeconds": 0.000025448 + "uploadSeconds": 0.181372742, + "downloadSeconds": 0.000020262 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.179410965, - "downloadSeconds": 0.000020335 + "uploadSeconds": 0.190978423, + "downloadSeconds": 0.000025949 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.17681052, - "downloadSeconds": 0.000019569 + "uploadSeconds": 0.181181876, + "downloadSeconds": 0.000021136 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189011903, - "downloadSeconds": 0.000020669 + "uploadSeconds": 0.184800921, + "downloadSeconds": 0.000022716 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.181773739, - "downloadSeconds": 0.000026211 + "uploadSeconds": 0.180923207, + "downloadSeconds": 0.000021249 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188491206, - "downloadSeconds": 0.000019699 + "uploadSeconds": 0.190089021, + "downloadSeconds": 0.000026065 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183390411, - "downloadSeconds": 0.000018848 + "uploadSeconds": 0.190248416, + "downloadSeconds": 0.000020957 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185615334, - "downloadSeconds": 0.000021242 + "uploadSeconds": 0.185732568, + "downloadSeconds": 0.000019825 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192796663, - "downloadSeconds": 0.0000267 + "uploadSeconds": 0.180522243, + "downloadSeconds": 0.000020458 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191523937, - "downloadSeconds": 0.000019043 + "uploadSeconds": 0.187214506, + "downloadSeconds": 0.000017789 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188481766, - "downloadSeconds": 0.00002015 + "uploadSeconds": 0.185276533, + "downloadSeconds": 0.000020344 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182858133, - "downloadSeconds": 0.000020072 + "uploadSeconds": 0.184465285, + "downloadSeconds": 0.000020254 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189826548, - "downloadSeconds": 0.000019722 + "uploadSeconds": 0.192350508, + "downloadSeconds": 0.000021908 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191102888, - "downloadSeconds": 0.000019171 + "uploadSeconds": 0.185707562, + "downloadSeconds": 0.000026446 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18590116, - "downloadSeconds": 0.000021372 + "uploadSeconds": 0.190142326, + "downloadSeconds": 0.000020709 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182045717, - "downloadSeconds": 0.00002833 + "uploadSeconds": 0.18709492, + "downloadSeconds": 0.000026824 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192834462, - "downloadSeconds": 0.000019869 + "uploadSeconds": 0.187463197, + "downloadSeconds": 0.000027344 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188932071, - "downloadSeconds": 0.000016028 + "uploadSeconds": 0.189165488, + "downloadSeconds": 0.000020685 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185099844, - "downloadSeconds": 0.000015168 + "uploadSeconds": 0.180210589, + "downloadSeconds": 0.000026518 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187062817, - "downloadSeconds": 0.000020813 + "uploadSeconds": 0.182347594, + "downloadSeconds": 0.00002087 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192939134, - "downloadSeconds": 0.000029159 + "uploadSeconds": 0.185115576, + "downloadSeconds": 0.000019386 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183802921, - "downloadSeconds": 0.000015881 + "uploadSeconds": 0.188803481, + "downloadSeconds": 0.000025393 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184443925, - "downloadSeconds": 0.000020116 + "uploadSeconds": 0.184401601, + "downloadSeconds": 0.000019671 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185712804, - "downloadSeconds": 0.000018765 + "uploadSeconds": 0.188300063, + "downloadSeconds": 0.0000201 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188233273, - "downloadSeconds": 0.000020631 + "uploadSeconds": 0.188984689, + "downloadSeconds": 0.000019144 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185631526, - "downloadSeconds": 0.000028845 + "uploadSeconds": 0.189069992, + "downloadSeconds": 0.00001937 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192848887, - "downloadSeconds": 0.000021973 + "uploadSeconds": 0.183233536, + "downloadSeconds": 0.000025663 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191156271, - "downloadSeconds": 0.000020326 + "uploadSeconds": 0.188350134, + "downloadSeconds": 0.000020338 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184871291, - "downloadSeconds": 0.000020244 + "uploadSeconds": 0.190040441, + "downloadSeconds": 0.000022649 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185582832, - "downloadSeconds": 0.000019709 + "uploadSeconds": 0.1890317, + "downloadSeconds": 0.000025625 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187915718, - "downloadSeconds": 0.000017824 + "uploadSeconds": 0.186303741, + "downloadSeconds": 0.000030524 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187682742, - "downloadSeconds": 0.00001679 + "uploadSeconds": 0.195865408, + "downloadSeconds": 0.000019802 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182566196, - "downloadSeconds": 0.000025467 + "uploadSeconds": 0.192835011, + "downloadSeconds": 0.000025245 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183468819, - "downloadSeconds": 0.000020719 + "uploadSeconds": 0.18650235, + "downloadSeconds": 0.000012228 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192901692, - "downloadSeconds": 0.000020941 + "uploadSeconds": 0.181285383, + "downloadSeconds": 0.000025743 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191062949, - "downloadSeconds": 0.000026448 + "uploadSeconds": 0.191334621, + "downloadSeconds": 0.000020166 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184961912, - "downloadSeconds": 0.000020404 + "uploadSeconds": 0.180964155, + "downloadSeconds": 0.000015831 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190932014, - "downloadSeconds": 0.000025117 + "uploadSeconds": 0.182563482, + "downloadSeconds": 0.000019721 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183801006, - "downloadSeconds": 0.000028242 + "uploadSeconds": 0.176758052, + "downloadSeconds": 0.00001974 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183451578, - "downloadSeconds": 0.000019198 + "uploadSeconds": 0.188819774, + "downloadSeconds": 0.000015973 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188130309, - "downloadSeconds": 0.000023245 + "uploadSeconds": 0.184503662, + "downloadSeconds": 0.00002682 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.174860664, - "downloadSeconds": 0.000019883 + "uploadSeconds": 0.191513221, + "downloadSeconds": 0.000025511 } ], "implementation": "https", @@ -3010,504 +3010,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.18602892, - "uploadSeconds": 0.000004153, - "downloadSeconds": 0.061598606 + "connectionEstablishedSeconds": 0.249458553, + "uploadSeconds": 0.000028414, + "downloadSeconds": 0.122592612 }, { - "connectionEstablishedSeconds": 0.18622377, - "uploadSeconds": 0.000002971, - "downloadSeconds": 0.061746741 + "connectionEstablishedSeconds": 0.247312478, + "uploadSeconds": 0.000043668, + "downloadSeconds": 0.121909257 }, { - "connectionEstablishedSeconds": 0.180874368, - "uploadSeconds": 0.000002872, - "downloadSeconds": 0.059406891 + "connectionEstablishedSeconds": 0.258303483, + "uploadSeconds": 0.000054247, + "downloadSeconds": 0.06368402 }, { - "connectionEstablishedSeconds": 0.189937988, - "uploadSeconds": 0.000003087, - "downloadSeconds": 0.063066518 + "connectionEstablishedSeconds": 0.254822488, + "uploadSeconds": 0.000047655, + "downloadSeconds": 0.063303587 }, { - "connectionEstablishedSeconds": 0.183944746, - "uploadSeconds": 0.000003107, - "downloadSeconds": 0.061057143 + "connectionEstablishedSeconds": 0.25003933, + "uploadSeconds": 0.000049661, + "downloadSeconds": 0.062060265 }, { - "connectionEstablishedSeconds": 0.191397161, - "uploadSeconds": 0.000003218, - "downloadSeconds": 0.063651111 + "connectionEstablishedSeconds": 0.258359444, + "uploadSeconds": 0.000053778, + "downloadSeconds": 0.126816048 }, { - "connectionEstablishedSeconds": 0.193077722, - "uploadSeconds": 0.000010163, - "downloadSeconds": 0.06344105 + "connectionEstablishedSeconds": 0.254771593, + "uploadSeconds": 0.000049543, + "downloadSeconds": 0.06324348 }, { - "connectionEstablishedSeconds": 0.176729639, - "uploadSeconds": 0.000003926, - "downloadSeconds": 0.058682831 + "connectionEstablishedSeconds": 0.252118006, + "uploadSeconds": 0.000030447, + "downloadSeconds": 0.062157875 }, { - "connectionEstablishedSeconds": 0.180268536, - "uploadSeconds": 0.00000309, - "downloadSeconds": 0.059922445 + "connectionEstablishedSeconds": 0.255402749, + "uploadSeconds": 0.000032062, + "downloadSeconds": 0.125955001 }, { - "connectionEstablishedSeconds": 0.183408802, - "uploadSeconds": 0.000002701, - "downloadSeconds": 0.060995294 + "connectionEstablishedSeconds": 0.252831842, + "uploadSeconds": 0.00001656, + "downloadSeconds": 0.062768759 }, { - "connectionEstablishedSeconds": 0.189877011, - "uploadSeconds": 0.000002622, - "downloadSeconds": 0.063075599 + "connectionEstablishedSeconds": 0.252166391, + "uploadSeconds": 0.000050357, + "downloadSeconds": 0.124532495 }, { - "connectionEstablishedSeconds": 0.191549892, - "uploadSeconds": 0.000002678, - "downloadSeconds": 0.063583603 + "connectionEstablishedSeconds": 0.25944755, + "uploadSeconds": 0.000034168, + "downloadSeconds": 0.128243179 }, { - "connectionEstablishedSeconds": 0.189363009, - "uploadSeconds": 0.000002668, - "downloadSeconds": 0.062810223 + "connectionEstablishedSeconds": 0.247286603, + "uploadSeconds": 0.000026212, + "downloadSeconds": 0.060924231 }, { - "connectionEstablishedSeconds": 0.189410448, - "uploadSeconds": 0.000002537, - "downloadSeconds": 0.0627811 + "connectionEstablishedSeconds": 0.254367132, + "uploadSeconds": 0.000056844, + "downloadSeconds": 0.062637884 }, { - "connectionEstablishedSeconds": 0.194343699, - "uploadSeconds": 0.000002781, - "downloadSeconds": 0.064447304 + "connectionEstablishedSeconds": 0.244510209, + "uploadSeconds": 0.000029727, + "downloadSeconds": 0.120218298 }, { - "connectionEstablishedSeconds": 0.191340441, - "uploadSeconds": 0.000003159, - "downloadSeconds": 0.063011311 + "connectionEstablishedSeconds": 0.252494163, + "uploadSeconds": 0.000030221, + "downloadSeconds": 0.062203882 }, { - "connectionEstablishedSeconds": 0.189077277, - "uploadSeconds": 0.00000282, - "downloadSeconds": 0.062820491 + "connectionEstablishedSeconds": 0.248812777, + "uploadSeconds": 0.000030673, + "downloadSeconds": 0.06170967 }, { - "connectionEstablishedSeconds": 0.185293584, - "uploadSeconds": 0.000003171, - "downloadSeconds": 0.061489593 + "connectionEstablishedSeconds": 0.257495779, + "uploadSeconds": 0.000055482, + "downloadSeconds": 0.126361637 }, { - "connectionEstablishedSeconds": 0.190616996, - "uploadSeconds": 0.000002932, - "downloadSeconds": 0.063121604 + "connectionEstablishedSeconds": 0.252612125, + "uploadSeconds": 0.000054873, + "downloadSeconds": 0.062667614 }, { - "connectionEstablishedSeconds": 0.18796317, - "uploadSeconds": 0.000028401, - "downloadSeconds": 0.062464299 + "connectionEstablishedSeconds": 0.244278305, + "uploadSeconds": 0.000058882, + "downloadSeconds": 0.060501883 }, { - "connectionEstablishedSeconds": 0.183496365, - "uploadSeconds": 0.000002836, - "downloadSeconds": 0.060826735 + "connectionEstablishedSeconds": 0.254082685, + "uploadSeconds": 0.000047783, + "downloadSeconds": 0.125340527 }, { - "connectionEstablishedSeconds": 0.187426188, - "uploadSeconds": 0.000003099, - "downloadSeconds": 0.061851308 + "connectionEstablishedSeconds": 0.248797249, + "uploadSeconds": 0.000044238, + "downloadSeconds": 0.06155821 }, { - "connectionEstablishedSeconds": 0.185069502, - "uploadSeconds": 0.000004125, - "downloadSeconds": 0.060757529 + "connectionEstablishedSeconds": 0.248076016, + "uploadSeconds": 0.000031229, + "downloadSeconds": 0.061105653 }, { - "connectionEstablishedSeconds": 0.19652728, - "uploadSeconds": 0.000002902, - "downloadSeconds": 0.064634486 + "connectionEstablishedSeconds": 0.257100919, + "uploadSeconds": 0.000031849, + "downloadSeconds": 0.063796128 }, { - "connectionEstablishedSeconds": 0.193530441, - "uploadSeconds": 0.000002858, - "downloadSeconds": 0.064251579 + "connectionEstablishedSeconds": 0.259615268, + "uploadSeconds": 0.000026648, + "downloadSeconds": 0.064004581 }, { - "connectionEstablishedSeconds": 0.191211869, - "uploadSeconds": 0.000007171, - "downloadSeconds": 0.063487568 + "connectionEstablishedSeconds": 0.25828284, + "uploadSeconds": 0.000031248, + "downloadSeconds": 0.064109695 }, { - "connectionEstablishedSeconds": 0.185865536, - "uploadSeconds": 0.000003343, - "downloadSeconds": 0.061733755 + "connectionEstablishedSeconds": 0.236468414, + "uploadSeconds": 0.000050985, + "downloadSeconds": 0.058695418 }, { - "connectionEstablishedSeconds": 0.19268154, - "uploadSeconds": 0.00003022, - "downloadSeconds": 0.063942595 + "connectionEstablishedSeconds": 0.260843771, + "uploadSeconds": 0.000045929, + "downloadSeconds": 0.127693806 }, { - "connectionEstablishedSeconds": 0.191815197, - "uploadSeconds": 0.000002643, - "downloadSeconds": 0.063617172 + "connectionEstablishedSeconds": 0.25288058, + "uploadSeconds": 0.00004643, + "downloadSeconds": 0.062360243 }, { - "connectionEstablishedSeconds": 0.193099282, - "uploadSeconds": 0.000004542, - "downloadSeconds": 0.064115167 + "connectionEstablishedSeconds": 0.251751149, + "uploadSeconds": 0.000032993, + "downloadSeconds": 0.123518466 }, { - "connectionEstablishedSeconds": 0.183398419, - "uploadSeconds": 0.000002698, - "downloadSeconds": 0.060392741 + "connectionEstablishedSeconds": 0.251798916, + "uploadSeconds": 0.000051907, + "downloadSeconds": 0.124238038 }, { - "connectionEstablishedSeconds": 0.18804384, - "uploadSeconds": 0.000002982, - "downloadSeconds": 0.06208455 + "connectionEstablishedSeconds": 0.251814088, + "uploadSeconds": 0.000027468, + "downloadSeconds": 0.124336259 }, { - "connectionEstablishedSeconds": 0.192333002, - "uploadSeconds": 0.000002939, - "downloadSeconds": 0.064010462 + "connectionEstablishedSeconds": 0.243298897, + "uploadSeconds": 0.000043435, + "downloadSeconds": 0.059843532 }, { - "connectionEstablishedSeconds": 0.175926483, - "uploadSeconds": 0.000002943, - "downloadSeconds": 0.058416668 + "connectionEstablishedSeconds": 0.234658833, + "uploadSeconds": 0.000043873, + "downloadSeconds": 0.057796906 }, { - "connectionEstablishedSeconds": 0.191761195, - "uploadSeconds": 0.000003728, - "downloadSeconds": 0.06370819 + "connectionEstablishedSeconds": 0.250618664, + "uploadSeconds": 0.000021416, + "downloadSeconds": 0.062229288 }, { - "connectionEstablishedSeconds": 0.181451881, - "uploadSeconds": 0.00002481, - "downloadSeconds": 0.060171605 + "connectionEstablishedSeconds": 0.260245362, + "uploadSeconds": 0.000048069, + "downloadSeconds": 0.064103982 }, { - "connectionEstablishedSeconds": 0.178859394, - "uploadSeconds": 0.000002631, - "downloadSeconds": 0.058906285 + "connectionEstablishedSeconds": 0.242188772, + "uploadSeconds": 0.000053124, + "downloadSeconds": 0.11868107 }, { - "connectionEstablishedSeconds": 0.193071463, - "uploadSeconds": 0.000003168, - "downloadSeconds": 0.063933478 + "connectionEstablishedSeconds": 0.255565283, + "uploadSeconds": 0.000015988, + "downloadSeconds": 0.063286264 }, { - "connectionEstablishedSeconds": 0.1942518, - "uploadSeconds": 0.000003341, - "downloadSeconds": 0.063785473 + "connectionEstablishedSeconds": 0.258570334, + "uploadSeconds": 0.000056939, + "downloadSeconds": 0.06419182 }, { - "connectionEstablishedSeconds": 0.194198855, - "uploadSeconds": 0.000004423, - "downloadSeconds": 0.064326692 + "connectionEstablishedSeconds": 0.259778805, + "uploadSeconds": 0.00002641, + "downloadSeconds": 0.064507637 }, { - "connectionEstablishedSeconds": 0.189108971, - "uploadSeconds": 0.000002624, - "downloadSeconds": 0.06246116 + "connectionEstablishedSeconds": 0.25727772, + "uploadSeconds": 0.000019691, + "downloadSeconds": 0.063399477 }, { - "connectionEstablishedSeconds": 0.193802364, - "uploadSeconds": 0.000002596, - "downloadSeconds": 0.064371357 + "connectionEstablishedSeconds": 0.248847064, + "uploadSeconds": 0.000025473, + "downloadSeconds": 0.061369601 }, { - "connectionEstablishedSeconds": 0.181799416, - "uploadSeconds": 0.000003264, - "downloadSeconds": 0.060315279 + "connectionEstablishedSeconds": 0.260333944, + "uploadSeconds": 0.000049223, + "downloadSeconds": 0.064126562 }, { - "connectionEstablishedSeconds": 0.182736265, - "uploadSeconds": 0.000002612, - "downloadSeconds": 0.060715025 + "connectionEstablishedSeconds": 0.242645705, + "uploadSeconds": 0.000053568, + "downloadSeconds": 0.060179002 }, { - "connectionEstablishedSeconds": 0.189285828, - "uploadSeconds": 0.000003092, - "downloadSeconds": 0.062144327 + "connectionEstablishedSeconds": 0.248844471, + "uploadSeconds": 0.000028074, + "downloadSeconds": 0.122156035 }, { - "connectionEstablishedSeconds": 0.186374639, - "uploadSeconds": 0.000004295, - "downloadSeconds": 0.06175066 + "connectionEstablishedSeconds": 0.257734408, + "uploadSeconds": 0.000032532, + "downloadSeconds": 0.063525357 }, { - "connectionEstablishedSeconds": 0.179232586, - "uploadSeconds": 0.000002349, - "downloadSeconds": 0.05948277 + "connectionEstablishedSeconds": 0.249678488, + "uploadSeconds": 0.000018689, + "downloadSeconds": 0.061933725 }, { - "connectionEstablishedSeconds": 0.194845175, - "uploadSeconds": 0.000003513, - "downloadSeconds": 0.064459094 + "connectionEstablishedSeconds": 0.248281296, + "uploadSeconds": 0.000046413, + "downloadSeconds": 0.061582403 }, { - "connectionEstablishedSeconds": 0.187319215, - "uploadSeconds": 0.000002968, - "downloadSeconds": 0.061596038 + "connectionEstablishedSeconds": 0.252421019, + "uploadSeconds": 0.000050119, + "downloadSeconds": 0.062636058 }, { - "connectionEstablishedSeconds": 0.193249349, - "uploadSeconds": 0.000002877, - "downloadSeconds": 0.064236436 + "connectionEstablishedSeconds": 0.251372403, + "uploadSeconds": 0.000051992, + "downloadSeconds": 0.061933501 }, { - "connectionEstablishedSeconds": 0.187806069, - "uploadSeconds": 0.000002935, - "downloadSeconds": 0.0616018 + "connectionEstablishedSeconds": 0.257889001, + "uploadSeconds": 0.000013464, + "downloadSeconds": 0.063576699 }, { - "connectionEstablishedSeconds": 0.192541009, - "uploadSeconds": 0.000002834, - "downloadSeconds": 0.063193006 + "connectionEstablishedSeconds": 0.247461649, + "uploadSeconds": 0.000028068, + "downloadSeconds": 0.061386435 }, { - "connectionEstablishedSeconds": 0.189595011, - "uploadSeconds": 0.000003026, - "downloadSeconds": 0.062836532 + "connectionEstablishedSeconds": 0.254586068, + "uploadSeconds": 0.000036283, + "downloadSeconds": 0.12489383 }, { - "connectionEstablishedSeconds": 0.193320048, - "uploadSeconds": 0.000002983, - "downloadSeconds": 0.063484618 + "connectionEstablishedSeconds": 0.238070333, + "uploadSeconds": 0.000052152, + "downloadSeconds": 0.117486854 }, { - "connectionEstablishedSeconds": 0.184752238, - "uploadSeconds": 0.000003379, - "downloadSeconds": 0.060715129 + "connectionEstablishedSeconds": 0.260064571, + "uploadSeconds": 0.000028205, + "downloadSeconds": 0.128338265 }, { - "connectionEstablishedSeconds": 0.189715106, - "uploadSeconds": 0.00000287, - "downloadSeconds": 0.062886227 + "connectionEstablishedSeconds": 0.24965493, + "uploadSeconds": 0.000047758, + "downloadSeconds": 0.06151788 }, { - "connectionEstablishedSeconds": 0.180912878, - "uploadSeconds": 0.000003124, - "downloadSeconds": 0.060038683 + "connectionEstablishedSeconds": 0.253392381, + "uploadSeconds": 0.000051852, + "downloadSeconds": 0.125040913 }, { - "connectionEstablishedSeconds": 0.195103774, - "uploadSeconds": 0.000006881, - "downloadSeconds": 0.064766213 + "connectionEstablishedSeconds": 0.245513511, + "uploadSeconds": 0.000049926, + "downloadSeconds": 0.060885894 }, { - "connectionEstablishedSeconds": 0.188295162, - "uploadSeconds": 0.000002852, - "downloadSeconds": 0.062561186 + "connectionEstablishedSeconds": 0.255671999, + "uploadSeconds": 0.000046062, + "downloadSeconds": 0.063454879 }, { - "connectionEstablishedSeconds": 0.186669891, - "uploadSeconds": 0.000003293, - "downloadSeconds": 0.061921396 + "connectionEstablishedSeconds": 0.242942741, + "uploadSeconds": 0.000036701, + "downloadSeconds": 0.059841988 }, { - "connectionEstablishedSeconds": 0.194390849, - "uploadSeconds": 0.00000309, - "downloadSeconds": 0.064499179 + "connectionEstablishedSeconds": 0.255830864, + "uploadSeconds": 0.000054372, + "downloadSeconds": 0.063402494 }, { - "connectionEstablishedSeconds": 0.192080383, - "uploadSeconds": 0.000002742, - "downloadSeconds": 0.063824539 + "connectionEstablishedSeconds": 0.243858874, + "uploadSeconds": 0.00002936, + "downloadSeconds": 0.060018781 }, { - "connectionEstablishedSeconds": 0.180107459, - "uploadSeconds": 0.000002878, - "downloadSeconds": 0.059085625 + "connectionEstablishedSeconds": 0.246750527, + "uploadSeconds": 0.000053095, + "downloadSeconds": 0.120873474 }, { - "connectionEstablishedSeconds": 0.189457917, - "uploadSeconds": 0.000003601, - "downloadSeconds": 0.062800628 + "connectionEstablishedSeconds": 0.252541499, + "uploadSeconds": 0.000030146, + "downloadSeconds": 0.123816728 }, { - "connectionEstablishedSeconds": 0.192219109, - "uploadSeconds": 0.000002654, - "downloadSeconds": 0.063200532 + "connectionEstablishedSeconds": 0.259676411, + "uploadSeconds": 0.000045169, + "downloadSeconds": 0.064088187 }, { - "connectionEstablishedSeconds": 0.186066078, - "uploadSeconds": 0.000003006, - "downloadSeconds": 0.061782842 + "connectionEstablishedSeconds": 0.252014036, + "uploadSeconds": 0.000029344, + "downloadSeconds": 0.124372491 }, { - "connectionEstablishedSeconds": 0.178292261, - "uploadSeconds": 0.000002578, - "downloadSeconds": 0.059281861 + "connectionEstablishedSeconds": 0.257812221, + "uploadSeconds": 0.000017745, + "downloadSeconds": 0.063527914 }, { - "connectionEstablishedSeconds": 0.188360264, - "uploadSeconds": 0.000002794, - "downloadSeconds": 0.061971787 + "connectionEstablishedSeconds": 0.250263745, + "uploadSeconds": 0.000017957, + "downloadSeconds": 0.122722571 }, { - "connectionEstablishedSeconds": 0.18682045, - "uploadSeconds": 0.000002777, - "downloadSeconds": 0.062144381 + "connectionEstablishedSeconds": 0.254614062, + "uploadSeconds": 0.00004993, + "downloadSeconds": 0.125724388 }, { - "connectionEstablishedSeconds": 0.185328415, - "uploadSeconds": 0.000005876, - "downloadSeconds": 0.061429379 + "connectionEstablishedSeconds": 0.253987513, + "uploadSeconds": 0.000048535, + "downloadSeconds": 0.062586681 }, { - "connectionEstablishedSeconds": 0.19448819, - "uploadSeconds": 0.000003334, - "downloadSeconds": 0.064559337 + "connectionEstablishedSeconds": 0.253844707, + "uploadSeconds": 0.000015426, + "downloadSeconds": 0.062542364 }, { - "connectionEstablishedSeconds": 0.190425544, - "uploadSeconds": 0.000002646, - "downloadSeconds": 0.063204937 + "connectionEstablishedSeconds": 0.246321818, + "uploadSeconds": 0.000033221, + "downloadSeconds": 0.060748106 }, { - "connectionEstablishedSeconds": 0.183260307, - "uploadSeconds": 0.000003162, - "downloadSeconds": 0.060799798 + "connectionEstablishedSeconds": 0.253459916, + "uploadSeconds": 0.000050912, + "downloadSeconds": 0.062889664 }, { - "connectionEstablishedSeconds": 0.189616162, - "uploadSeconds": 0.000002976, - "downloadSeconds": 0.063054707 + "connectionEstablishedSeconds": 0.240565083, + "uploadSeconds": 0.000030113, + "downloadSeconds": 0.059219374 }, { - "connectionEstablishedSeconds": 0.190281849, - "uploadSeconds": 0.00000269, - "downloadSeconds": 0.062777191 + "connectionEstablishedSeconds": 0.258225715, + "uploadSeconds": 0.000049799, + "downloadSeconds": 0.063634527 }, { - "connectionEstablishedSeconds": 0.191438437, - "uploadSeconds": 0.000002825, - "downloadSeconds": 0.06314234 + "connectionEstablishedSeconds": 0.254271864, + "uploadSeconds": 0.000024076, + "downloadSeconds": 0.063047991 }, { - "connectionEstablishedSeconds": 0.187431847, - "uploadSeconds": 0.000002973, - "downloadSeconds": 0.062198146 + "connectionEstablishedSeconds": 0.253685325, + "uploadSeconds": 0.000027376, + "downloadSeconds": 0.124524098 }, { - "connectionEstablishedSeconds": 0.186301056, - "uploadSeconds": 0.000002732, - "downloadSeconds": 0.061755747 + "connectionEstablishedSeconds": 0.257355688, + "uploadSeconds": 0.000047317, + "downloadSeconds": 0.063401641 }, { - "connectionEstablishedSeconds": 0.189180848, - "uploadSeconds": 0.000002752, - "downloadSeconds": 0.062239647 + "connectionEstablishedSeconds": 0.255853836, + "uploadSeconds": 0.000037268, + "downloadSeconds": 0.062351568 }, { - "connectionEstablishedSeconds": 0.188264334, - "uploadSeconds": 0.000004076, - "downloadSeconds": 0.062427204 + "connectionEstablishedSeconds": 0.255744895, + "uploadSeconds": 0.000029519, + "downloadSeconds": 0.126378334 }, { - "connectionEstablishedSeconds": 0.190132447, - "uploadSeconds": 0.000006117, - "downloadSeconds": 0.063118215 + "connectionEstablishedSeconds": 0.248936009, + "uploadSeconds": 0.000053438, + "downloadSeconds": 0.061737422 }, { - "connectionEstablishedSeconds": 0.191642674, - "uploadSeconds": 0.000002791, - "downloadSeconds": 0.063286427 + "connectionEstablishedSeconds": 0.252836686, + "uploadSeconds": 0.000027197, + "downloadSeconds": 0.062221281 }, { - "connectionEstablishedSeconds": 0.185004565, - "uploadSeconds": 0.000003147, - "downloadSeconds": 0.061410454 + "connectionEstablishedSeconds": 0.255892929, + "uploadSeconds": 0.000051908, + "downloadSeconds": 0.125531954 }, { - "connectionEstablishedSeconds": 0.18653667, - "uploadSeconds": 0.000003, - "downloadSeconds": 0.061905721 + "connectionEstablishedSeconds": 0.249744152, + "uploadSeconds": 0.000023791, + "downloadSeconds": 0.062073504 }, { - "connectionEstablishedSeconds": 0.18829221, - "uploadSeconds": 0.000003633, - "downloadSeconds": 0.06249163 + "connectionEstablishedSeconds": 0.255203488, + "uploadSeconds": 0.000054273, + "downloadSeconds": 0.063334903 }, { - "connectionEstablishedSeconds": 0.192070229, - "uploadSeconds": 0.0000035, - "downloadSeconds": 0.063153651 + "connectionEstablishedSeconds": 0.249790592, + "uploadSeconds": 0.000049161, + "downloadSeconds": 0.122786201 }, { - "connectionEstablishedSeconds": 0.189367979, - "uploadSeconds": 0.000024474, - "downloadSeconds": 0.062773943 + "connectionEstablishedSeconds": 0.26346129, + "uploadSeconds": 0.00002875, + "downloadSeconds": 0.129434278 }, { - "connectionEstablishedSeconds": 0.19480962, - "uploadSeconds": 0.000002935, - "downloadSeconds": 0.064351059 + "connectionEstablishedSeconds": 0.255610355, + "uploadSeconds": 0.000061779, + "downloadSeconds": 0.126579688 }, { - "connectionEstablishedSeconds": 0.189541776, - "uploadSeconds": 0.000003037, - "downloadSeconds": 0.062908756 + "connectionEstablishedSeconds": 0.246970716, + "uploadSeconds": 0.000023467, + "downloadSeconds": 0.060755427 }, { - "connectionEstablishedSeconds": 0.189487089, - "uploadSeconds": 0.000002895, - "downloadSeconds": 0.062128969 + "connectionEstablishedSeconds": 0.253297534, + "uploadSeconds": 0.000023315, + "downloadSeconds": 0.06239508 }, { - "connectionEstablishedSeconds": 0.192466591, - "uploadSeconds": 0.000003053, - "downloadSeconds": 0.063825799 + "connectionEstablishedSeconds": 0.251752939, + "uploadSeconds": 0.000051714, + "downloadSeconds": 0.062069414 }, { - "connectionEstablishedSeconds": 0.188874236, - "uploadSeconds": 0.000002628, - "downloadSeconds": 0.062710413 + "connectionEstablishedSeconds": 0.249531305, + "uploadSeconds": 0.000045756, + "downloadSeconds": 0.061872011 }, { - "connectionEstablishedSeconds": 0.187796689, - "uploadSeconds": 0.000002747, - "downloadSeconds": 0.062401155 + "connectionEstablishedSeconds": 0.245071468, + "uploadSeconds": 0.000053743, + "downloadSeconds": 0.119991652 }, { - "connectionEstablishedSeconds": 0.182240887, - "uploadSeconds": 0.000003969, - "downloadSeconds": 0.0605472 + "connectionEstablishedSeconds": 0.244598379, + "uploadSeconds": 0.000029747, + "downloadSeconds": 0.06063609 }, { - "connectionEstablishedSeconds": 0.195602403, - "uploadSeconds": 0.000002474, - "downloadSeconds": 0.064809993 + "connectionEstablishedSeconds": 0.251924436, + "uploadSeconds": 0.00003311, + "downloadSeconds": 0.062714942 }, { - "connectionEstablishedSeconds": 0.191483299, - "uploadSeconds": 0.000003185, - "downloadSeconds": 0.063687853 + "connectionEstablishedSeconds": 0.248874797, + "uploadSeconds": 0.000030715, + "downloadSeconds": 0.122975017 }, { - "connectionEstablishedSeconds": 0.191243095, - "uploadSeconds": 0.000002505, - "downloadSeconds": 0.063051395 + "connectionEstablishedSeconds": 0.246639069, + "uploadSeconds": 0.000033525, + "downloadSeconds": 0.060661102 }, { - "connectionEstablishedSeconds": 0.195143817, - "uploadSeconds": 0.000002992, - "downloadSeconds": 0.064749351 + "connectionEstablishedSeconds": 0.250309218, + "uploadSeconds": 0.000050539, + "downloadSeconds": 0.122885977 }, { - "connectionEstablishedSeconds": 0.190142246, - "uploadSeconds": 0.000003076, - "downloadSeconds": 0.063023023 + "connectionEstablishedSeconds": 0.252793035, + "uploadSeconds": 0.000060763, + "downloadSeconds": 0.124808386 }, { - "connectionEstablishedSeconds": 0.17722092, - "uploadSeconds": 0.000003115, - "downloadSeconds": 0.058777706 + "connectionEstablishedSeconds": 0.255145652, + "uploadSeconds": 0.000048612, + "downloadSeconds": 0.126036133 } ], "implementation": "go-libp2p", @@ -3517,504 +3517,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.068412685, - "uploadSeconds": 0.000002516, - "downloadSeconds": 0.064797708 + "connectionEstablishedSeconds": 0.129739067, + "uploadSeconds": 0.000051385, + "downloadSeconds": 0.062197901 }, { - "connectionEstablishedSeconds": 0.064324706, - "uploadSeconds": 0.000002912, - "downloadSeconds": 0.060200812 + "connectionEstablishedSeconds": 0.127841391, + "uploadSeconds": 0.000052588, + "downloadSeconds": 0.061900959 }, { - "connectionEstablishedSeconds": 0.066280511, - "uploadSeconds": 0.000001526, - "downloadSeconds": 0.063452133 + "connectionEstablishedSeconds": 0.128860282, + "uploadSeconds": 0.000054377, + "downloadSeconds": 0.062851143 }, { - "connectionEstablishedSeconds": 0.065776631, - "uploadSeconds": 0.000001859, - "downloadSeconds": 0.063089423 + "connectionEstablishedSeconds": 0.128967217, + "uploadSeconds": 0.000050002, + "downloadSeconds": 0.062888836 }, { - "connectionEstablishedSeconds": 0.065141632, - "uploadSeconds": 0.00003544, - "downloadSeconds": 0.061711953 + "connectionEstablishedSeconds": 0.135041444, + "uploadSeconds": 0.000024289, + "downloadSeconds": 0.065069517 }, { - "connectionEstablishedSeconds": 0.064474186, - "uploadSeconds": 0.000001578, - "downloadSeconds": 0.061216672 + "connectionEstablishedSeconds": 0.127907768, + "uploadSeconds": 0.000024553, + "downloadSeconds": 0.061588721 }, { - "connectionEstablishedSeconds": 0.066782238, - "uploadSeconds": 0.000001357, - "downloadSeconds": 0.064079803 + "connectionEstablishedSeconds": 0.130442097, + "uploadSeconds": 0.000016104, + "downloadSeconds": 0.063624451 }, { - "connectionEstablishedSeconds": 0.06398536, - "uploadSeconds": 0.00000288, - "downloadSeconds": 0.061139583 + "connectionEstablishedSeconds": 0.128560636, + "uploadSeconds": 0.000024795, + "downloadSeconds": 0.061789015 }, { - "connectionEstablishedSeconds": 0.068067069, - "uploadSeconds": 0.000002156, - "downloadSeconds": 0.064472434 + "connectionEstablishedSeconds": 0.128653078, + "uploadSeconds": 0.000029895, + "downloadSeconds": 0.062701668 }, { - "connectionEstablishedSeconds": 0.06708389, - "uploadSeconds": 0.000001722, - "downloadSeconds": 0.065264478 + "connectionEstablishedSeconds": 0.131039726, + "uploadSeconds": 0.000057579, + "downloadSeconds": 0.063100541 }, { - "connectionEstablishedSeconds": 0.067883008, - "uploadSeconds": 0.000002294, - "downloadSeconds": 0.064007176 + "connectionEstablishedSeconds": 0.132710401, + "uploadSeconds": 0.000052716, + "downloadSeconds": 0.063985376 }, { - "connectionEstablishedSeconds": 0.067333071, - "uploadSeconds": 0.000006342, - "downloadSeconds": 0.063618485 + "connectionEstablishedSeconds": 0.129767783, + "uploadSeconds": 0.000030343, + "downloadSeconds": 0.062557734 }, { - "connectionEstablishedSeconds": 0.065412455, - "uploadSeconds": 0.000001918, - "downloadSeconds": 0.061822062 + "connectionEstablishedSeconds": 0.134255443, + "uploadSeconds": 0.000055859, + "downloadSeconds": 0.064705555 }, { - "connectionEstablishedSeconds": 0.066375871, - "uploadSeconds": 0.000001724, - "downloadSeconds": 0.062693896 + "connectionEstablishedSeconds": 0.132345397, + "uploadSeconds": 0.000030452, + "downloadSeconds": 0.064556419 }, { - "connectionEstablishedSeconds": 0.068152304, - "uploadSeconds": 0.000001564, - "downloadSeconds": 0.06470551 + "connectionEstablishedSeconds": 0.124929202, + "uploadSeconds": 0.000048378, + "downloadSeconds": 0.060932143 }, { - "connectionEstablishedSeconds": 0.067182843, - "uploadSeconds": 0.000002127, - "downloadSeconds": 0.063600163 + "connectionEstablishedSeconds": 0.128566912, + "uploadSeconds": 0.000048561, + "downloadSeconds": 0.061818258 }, { - "connectionEstablishedSeconds": 0.066941457, - "uploadSeconds": 0.000002067, - "downloadSeconds": 0.063703972 + "connectionEstablishedSeconds": 0.130786426, + "uploadSeconds": 0.000060392, + "downloadSeconds": 0.06375307 }, { - "connectionEstablishedSeconds": 0.06611439, - "uploadSeconds": 0.000001706, - "downloadSeconds": 0.063366481 + "connectionEstablishedSeconds": 0.126842543, + "uploadSeconds": 0.000030173, + "downloadSeconds": 0.061000503 }, { - "connectionEstablishedSeconds": 0.066129372, - "uploadSeconds": 0.00000182, - "downloadSeconds": 0.062579649 + "connectionEstablishedSeconds": 0.134767796, + "uploadSeconds": 0.000048197, + "downloadSeconds": 0.064960976 }, { - "connectionEstablishedSeconds": 0.062335938, - "uploadSeconds": 0.000001972, - "downloadSeconds": 0.05878872 + "connectionEstablishedSeconds": 0.130874973, + "uploadSeconds": 0.000026434, + "downloadSeconds": 0.0639605 }, { - "connectionEstablishedSeconds": 0.066694293, - "uploadSeconds": 0.000001867, - "downloadSeconds": 0.063049221 + "connectionEstablishedSeconds": 0.133461438, + "uploadSeconds": 0.000051691, + "downloadSeconds": 0.064362761 }, { - "connectionEstablishedSeconds": 0.067414944, - "uploadSeconds": 0.000001535, - "downloadSeconds": 0.064799683 + "connectionEstablishedSeconds": 0.13155445, + "uploadSeconds": 0.000050827, + "downloadSeconds": 0.063342133 }, { - "connectionEstablishedSeconds": 0.06518752, - "uploadSeconds": 0.000001552, - "downloadSeconds": 0.062349832 + "connectionEstablishedSeconds": 0.132831847, + "uploadSeconds": 0.000026967, + "downloadSeconds": 0.064061782 }, { - "connectionEstablishedSeconds": 0.061877535, - "uploadSeconds": 0.000001499, - "downloadSeconds": 0.058564781 + "connectionEstablishedSeconds": 0.131188884, + "uploadSeconds": 0.000047481, + "downloadSeconds": 0.063673811 }, { - "connectionEstablishedSeconds": 0.066430896, - "uploadSeconds": 0.000001442, - "downloadSeconds": 0.063694023 + "connectionEstablishedSeconds": 0.126347098, + "uploadSeconds": 0.000041505, + "downloadSeconds": 0.061586655 }, { - "connectionEstablishedSeconds": 0.064731357, - "uploadSeconds": 0.00003255, - "downloadSeconds": 0.062981006 + "connectionEstablishedSeconds": 0.130028044, + "uploadSeconds": 0.000048594, + "downloadSeconds": 0.062471827 }, { - "connectionEstablishedSeconds": 0.066347639, - "uploadSeconds": 0.00000141, - "downloadSeconds": 0.064596248 + "connectionEstablishedSeconds": 0.13368019, + "uploadSeconds": 0.000054938, + "downloadSeconds": 0.06451194 }, { - "connectionEstablishedSeconds": 0.067458308, - "uploadSeconds": 0.000001564, - "downloadSeconds": 0.063954437 + "connectionEstablishedSeconds": 0.128740091, + "uploadSeconds": 0.000050773, + "downloadSeconds": 0.061904377 }, { - "connectionEstablishedSeconds": 0.064434342, - "uploadSeconds": 0.000001391, - "downloadSeconds": 0.060993137 + "connectionEstablishedSeconds": 0.125643734, + "uploadSeconds": 0.00004629, + "downloadSeconds": 0.061542681 }, { - "connectionEstablishedSeconds": 0.065125655, - "uploadSeconds": 0.00000194, - "downloadSeconds": 0.061612967 + "connectionEstablishedSeconds": 0.13253083, + "uploadSeconds": 0.000054162, + "downloadSeconds": 0.063853076 }, { - "connectionEstablishedSeconds": 0.065538234, - "uploadSeconds": 0.000001789, - "downloadSeconds": 0.063744777 + "connectionEstablishedSeconds": 0.126640012, + "uploadSeconds": 0.00002839, + "downloadSeconds": 0.061851773 }, { - "connectionEstablishedSeconds": 0.066512205, - "uploadSeconds": 0.000001819, - "downloadSeconds": 0.063103099 + "connectionEstablishedSeconds": 0.127760183, + "uploadSeconds": 0.000025044, + "downloadSeconds": 0.061483193 }, { - "connectionEstablishedSeconds": 0.068181578, - "uploadSeconds": 0.000001743, - "downloadSeconds": 0.064613543 + "connectionEstablishedSeconds": 0.131758823, + "uploadSeconds": 0.000030088, + "downloadSeconds": 0.063515333 }, { - "connectionEstablishedSeconds": 0.066880693, - "uploadSeconds": 0.000016608, - "downloadSeconds": 0.063681294 + "connectionEstablishedSeconds": 0.12414578, + "uploadSeconds": 0.000047563, + "downloadSeconds": 0.059631619 }, { - "connectionEstablishedSeconds": 0.065652237, - "uploadSeconds": 0.000002358, - "downloadSeconds": 0.062038613 + "connectionEstablishedSeconds": 0.128170749, + "uploadSeconds": 0.000028587, + "downloadSeconds": 0.061799877 }, { - "connectionEstablishedSeconds": 0.062414847, - "uploadSeconds": 0.000001588, - "downloadSeconds": 0.059029761 + "connectionEstablishedSeconds": 0.12509911, + "uploadSeconds": 0.000051038, + "downloadSeconds": 0.060066043 }, { - "connectionEstablishedSeconds": 0.068415045, - "uploadSeconds": 0.0000021, - "downloadSeconds": 0.064864195 + "connectionEstablishedSeconds": 0.126294107, + "uploadSeconds": 0.000029474, + "downloadSeconds": 0.060718439 }, { - "connectionEstablishedSeconds": 0.067716158, - "uploadSeconds": 0.000002011, - "downloadSeconds": 0.064528097 + "connectionEstablishedSeconds": 0.12879216, + "uploadSeconds": 0.000030308, + "downloadSeconds": 0.062013036 }, { - "connectionEstablishedSeconds": 0.064510015, - "uploadSeconds": 0.000013208, - "downloadSeconds": 0.061097914 + "connectionEstablishedSeconds": 0.128922894, + "uploadSeconds": 0.000026797, + "downloadSeconds": 0.062095345 }, { - "connectionEstablishedSeconds": 0.065796241, - "uploadSeconds": 0.000010612, - "downloadSeconds": 0.06245106 + "connectionEstablishedSeconds": 0.127819447, + "uploadSeconds": 0.000027067, + "downloadSeconds": 0.062399314 }, { - "connectionEstablishedSeconds": 0.066345416, - "uploadSeconds": 0.000001851, - "downloadSeconds": 0.062766237 + "connectionEstablishedSeconds": 0.126493427, + "uploadSeconds": 0.000052293, + "downloadSeconds": 0.061801552 }, { - "connectionEstablishedSeconds": 0.063834373, - "uploadSeconds": 0.000010248, - "downloadSeconds": 0.060548052 + "connectionEstablishedSeconds": 0.127699873, + "uploadSeconds": 0.000028039, + "downloadSeconds": 0.062339146 }, { - "connectionEstablishedSeconds": 0.068054574, - "uploadSeconds": 0.000001971, - "downloadSeconds": 0.064349841 + "connectionEstablishedSeconds": 0.12734424, + "uploadSeconds": 0.000025093, + "downloadSeconds": 0.061804324 }, { - "connectionEstablishedSeconds": 0.06511917, - "uploadSeconds": 0.000002263, - "downloadSeconds": 0.061685451 + "connectionEstablishedSeconds": 0.134071463, + "uploadSeconds": 0.000047884, + "downloadSeconds": 0.064163154 }, { - "connectionEstablishedSeconds": 0.066724972, - "uploadSeconds": 0.000001892, - "downloadSeconds": 0.063166832 + "connectionEstablishedSeconds": 0.130198797, + "uploadSeconds": 0.000030166, + "downloadSeconds": 0.063557221 }, { - "connectionEstablishedSeconds": 0.066728786, - "uploadSeconds": 0.000001726, - "downloadSeconds": 0.063168065 + "connectionEstablishedSeconds": 0.126590311, + "uploadSeconds": 0.00002351, + "downloadSeconds": 0.061738569 }, { - "connectionEstablishedSeconds": 0.067999484, - "uploadSeconds": 0.000001895, - "downloadSeconds": 0.064341538 + "connectionEstablishedSeconds": 0.128241547, + "uploadSeconds": 0.000036758, + "downloadSeconds": 0.061542599 }, { - "connectionEstablishedSeconds": 0.065651442, - "uploadSeconds": 0.000001856, - "downloadSeconds": 0.062122777 + "connectionEstablishedSeconds": 0.133960025, + "uploadSeconds": 0.000049963, + "downloadSeconds": 0.064391499 }, { - "connectionEstablishedSeconds": 0.064335876, - "uploadSeconds": 0.000001728, - "downloadSeconds": 0.062699772 + "connectionEstablishedSeconds": 0.12604412, + "uploadSeconds": 0.000048581, + "downloadSeconds": 0.060665451 }, { - "connectionEstablishedSeconds": 0.064316787, - "uploadSeconds": 0.000008406, - "downloadSeconds": 0.061373534 + "connectionEstablishedSeconds": 0.131709339, + "uploadSeconds": 0.000016083, + "downloadSeconds": 0.064340402 }, { - "connectionEstablishedSeconds": 0.065429981, - "uploadSeconds": 0.000001432, - "downloadSeconds": 0.062063271 + "connectionEstablishedSeconds": 0.130226655, + "uploadSeconds": 0.000053754, + "downloadSeconds": 0.06265236 }, { - "connectionEstablishedSeconds": 0.067760267, - "uploadSeconds": 0.000001544, - "downloadSeconds": 0.064399719 + "connectionEstablishedSeconds": 0.131225524, + "uploadSeconds": 0.000048533, + "downloadSeconds": 0.064096906 }, { - "connectionEstablishedSeconds": 0.065672862, - "uploadSeconds": 0.000001801, - "downloadSeconds": 0.062782076 + "connectionEstablishedSeconds": 0.128171842, + "uploadSeconds": 0.000039466, + "downloadSeconds": 0.062551009 }, { - "connectionEstablishedSeconds": 0.06776626, - "uploadSeconds": 0.000001395, - "downloadSeconds": 0.064656666 + "connectionEstablishedSeconds": 0.132729137, + "uploadSeconds": 0.000053796, + "downloadSeconds": 0.064844385 }, { - "connectionEstablishedSeconds": 0.066116769, - "uploadSeconds": 0.000023202, - "downloadSeconds": 0.062685994 + "connectionEstablishedSeconds": 0.125841376, + "uploadSeconds": 0.000047136, + "downloadSeconds": 0.061860235 }, { - "connectionEstablishedSeconds": 0.064793844, - "uploadSeconds": 0.000001539, - "downloadSeconds": 0.061183876 + "connectionEstablishedSeconds": 0.133387678, + "uploadSeconds": 0.000033418, + "downloadSeconds": 0.064961469 }, { - "connectionEstablishedSeconds": 0.063976764, - "uploadSeconds": 0.000001354, - "downloadSeconds": 0.060561553 + "connectionEstablishedSeconds": 0.126541658, + "uploadSeconds": 0.000020816, + "downloadSeconds": 0.060868344 }, { - "connectionEstablishedSeconds": 0.066032843, - "uploadSeconds": 0.00000189, - "downloadSeconds": 0.062581742 + "connectionEstablishedSeconds": 0.128317166, + "uploadSeconds": 0.000051748, + "downloadSeconds": 0.06267879 }, { - "connectionEstablishedSeconds": 0.06660754, - "uploadSeconds": 0.000001789, - "downloadSeconds": 0.063538903 + "connectionEstablishedSeconds": 0.122697174, + "uploadSeconds": 0.000014449, + "downloadSeconds": 0.05986584 }, { - "connectionEstablishedSeconds": 0.067071175, - "uploadSeconds": 0.000001783, - "downloadSeconds": 0.063299946 + "connectionEstablishedSeconds": 0.128342696, + "uploadSeconds": 0.000029692, + "downloadSeconds": 0.062645884 }, { - "connectionEstablishedSeconds": 0.067117808, - "uploadSeconds": 0.000001433, - "downloadSeconds": 0.064265667 + "connectionEstablishedSeconds": 0.129140007, + "uploadSeconds": 0.000029855, + "downloadSeconds": 0.063109066 }, { - "connectionEstablishedSeconds": 0.064179194, - "uploadSeconds": 0.000001999, - "downloadSeconds": 0.060530572 + "connectionEstablishedSeconds": 0.127571594, + "uploadSeconds": 0.000026367, + "downloadSeconds": 0.061311258 }, { - "connectionEstablishedSeconds": 0.061937884, - "uploadSeconds": 0.000001471, - "downloadSeconds": 0.058552895 + "connectionEstablishedSeconds": 0.124472756, + "uploadSeconds": 0.000013128, + "downloadSeconds": 0.060726498 }, { - "connectionEstablishedSeconds": 0.066775397, - "uploadSeconds": 0.000003441, - "downloadSeconds": 0.063917681 + "connectionEstablishedSeconds": 0.129069725, + "uploadSeconds": 0.00004495, + "downloadSeconds": 0.062104583 }, { - "connectionEstablishedSeconds": 0.066254504, - "uploadSeconds": 0.000001452, - "downloadSeconds": 0.062837022 + "connectionEstablishedSeconds": 0.127156142, + "uploadSeconds": 0.000054938, + "downloadSeconds": 0.061178505 }, { - "connectionEstablishedSeconds": 0.067886541, - "uploadSeconds": 0.000001382, - "downloadSeconds": 0.064370448 + "connectionEstablishedSeconds": 0.130094267, + "uploadSeconds": 0.000014146, + "downloadSeconds": 0.06349934 }, { - "connectionEstablishedSeconds": 0.06650787, - "uploadSeconds": 0.000001916, - "downloadSeconds": 0.062578243 + "connectionEstablishedSeconds": 0.130295968, + "uploadSeconds": 0.000026304, + "downloadSeconds": 0.0626357 }, { - "connectionEstablishedSeconds": 0.06378071, - "uploadSeconds": 0.000001886, - "downloadSeconds": 0.061063098 + "connectionEstablishedSeconds": 0.125776628, + "uploadSeconds": 0.000051033, + "downloadSeconds": 0.060507226 }, { - "connectionEstablishedSeconds": 0.0659356, - "uploadSeconds": 0.000001926, - "downloadSeconds": 0.062421678 + "connectionEstablishedSeconds": 0.124402377, + "uploadSeconds": 0.000029436, + "downloadSeconds": 0.059797462 }, { - "connectionEstablishedSeconds": 0.065218309, - "uploadSeconds": 0.000001889, - "downloadSeconds": 0.061668683 + "connectionEstablishedSeconds": 0.127775829, + "uploadSeconds": 0.000052704, + "downloadSeconds": 0.061434653 }, { - "connectionEstablishedSeconds": 0.067584243, - "uploadSeconds": 0.000011952, - "downloadSeconds": 0.06397102 + "connectionEstablishedSeconds": 0.132310524, + "uploadSeconds": 0.000051932, + "downloadSeconds": 0.063651634 }, { - "connectionEstablishedSeconds": 0.064054446, - "uploadSeconds": 0.000001371, - "downloadSeconds": 0.061140314 + "connectionEstablishedSeconds": 0.128383685, + "uploadSeconds": 0.00002864, + "downloadSeconds": 0.061776984 }, { - "connectionEstablishedSeconds": 0.066691801, - "uploadSeconds": 0.000001516, - "downloadSeconds": 0.063717651 + "connectionEstablishedSeconds": 0.127472232, + "uploadSeconds": 0.000032168, + "downloadSeconds": 0.062138658 }, { - "connectionEstablishedSeconds": 0.067906231, - "uploadSeconds": 0.000001519, - "downloadSeconds": 0.064411925 + "connectionEstablishedSeconds": 0.126338257, + "uploadSeconds": 0.00002501, + "downloadSeconds": 0.060739126 }, { - "connectionEstablishedSeconds": 0.066135681, - "uploadSeconds": 0.000001776, - "downloadSeconds": 0.062692545 + "connectionEstablishedSeconds": 0.127088626, + "uploadSeconds": 0.000050761, + "downloadSeconds": 0.062012149 }, { - "connectionEstablishedSeconds": 0.06623152, - "uploadSeconds": 0.000001604, - "downloadSeconds": 0.062602906 + "connectionEstablishedSeconds": 0.1342596, + "uploadSeconds": 0.000031908, + "downloadSeconds": 0.064073195 }, { - "connectionEstablishedSeconds": 0.066158872, - "uploadSeconds": 0.000001429, - "downloadSeconds": 0.062712893 + "connectionEstablishedSeconds": 0.131957643, + "uploadSeconds": 0.000026338, + "downloadSeconds": 0.064435866 }, { - "connectionEstablishedSeconds": 0.06377935, - "uploadSeconds": 0.000001316, - "downloadSeconds": 0.062009325 + "connectionEstablishedSeconds": 0.131746256, + "uploadSeconds": 0.000031572, + "downloadSeconds": 0.06433756 }, { - "connectionEstablishedSeconds": 0.065737012, - "uploadSeconds": 0.000001603, - "downloadSeconds": 0.062409703 + "connectionEstablishedSeconds": 0.127872137, + "uploadSeconds": 0.000046905, + "downloadSeconds": 0.061479259 }, { - "connectionEstablishedSeconds": 0.063924777, - "uploadSeconds": 0.000001496, - "downloadSeconds": 0.060813256 + "connectionEstablishedSeconds": 0.128340473, + "uploadSeconds": 0.000054364, + "downloadSeconds": 0.062751716 }, { - "connectionEstablishedSeconds": 0.06437613, - "uploadSeconds": 0.00000167, - "downloadSeconds": 0.06074933 + "connectionEstablishedSeconds": 0.123719063, + "uploadSeconds": 0.000054434, + "downloadSeconds": 0.060267376 }, { - "connectionEstablishedSeconds": 0.06408008, - "uploadSeconds": 0.000001629, - "downloadSeconds": 0.060769787 + "connectionEstablishedSeconds": 0.133436814, + "uploadSeconds": 0.000025508, + "downloadSeconds": 0.064277548 }, { - "connectionEstablishedSeconds": 0.064911408, - "uploadSeconds": 0.000001617, - "downloadSeconds": 0.061460904 + "connectionEstablishedSeconds": 0.126576346, + "uploadSeconds": 0.000029643, + "downloadSeconds": 0.061843824 }, { - "connectionEstablishedSeconds": 0.068175317, - "uploadSeconds": 0.000001745, - "downloadSeconds": 0.064591085 + "connectionEstablishedSeconds": 0.130027453, + "uploadSeconds": 0.000051458, + "downloadSeconds": 0.063493114 }, { - "connectionEstablishedSeconds": 0.065877499, - "uploadSeconds": 0.000001481, - "downloadSeconds": 0.062317272 + "connectionEstablishedSeconds": 0.130499401, + "uploadSeconds": 0.000047309, + "downloadSeconds": 0.063262941 }, { - "connectionEstablishedSeconds": 0.065398992, - "uploadSeconds": 0.000002004, - "downloadSeconds": 0.061873622 + "connectionEstablishedSeconds": 0.129402396, + "uploadSeconds": 0.000015919, + "downloadSeconds": 0.062311824 }, { - "connectionEstablishedSeconds": 0.064755621, - "uploadSeconds": 0.000001364, - "downloadSeconds": 0.061760128 + "connectionEstablishedSeconds": 0.128732369, + "uploadSeconds": 0.00003396, + "downloadSeconds": 0.062766512 }, { - "connectionEstablishedSeconds": 0.066438807, - "uploadSeconds": 0.000001823, - "downloadSeconds": 0.062905845 + "connectionEstablishedSeconds": 0.130255907, + "uploadSeconds": 0.000013652, + "downloadSeconds": 0.062742994 }, { - "connectionEstablishedSeconds": 0.066592605, - "uploadSeconds": 0.00000404, - "downloadSeconds": 0.063212413 + "connectionEstablishedSeconds": 0.127896782, + "uploadSeconds": 0.00003025, + "downloadSeconds": 0.062330118 }, { - "connectionEstablishedSeconds": 0.063449456, - "uploadSeconds": 0.000001468, - "downloadSeconds": 0.061855103 + "connectionEstablishedSeconds": 0.130753702, + "uploadSeconds": 0.000059518, + "downloadSeconds": 0.062882608 }, { - "connectionEstablishedSeconds": 0.064931769, - "uploadSeconds": 0.000001351, - "downloadSeconds": 0.063321199 + "connectionEstablishedSeconds": 0.126986551, + "uploadSeconds": 0.000047775, + "downloadSeconds": 0.061050645 }, { - "connectionEstablishedSeconds": 0.065800777, - "uploadSeconds": 0.000002067, - "downloadSeconds": 0.064019248 + "connectionEstablishedSeconds": 0.127279319, + "uploadSeconds": 0.000030946, + "downloadSeconds": 0.062100028 }, { - "connectionEstablishedSeconds": 0.065260193, - "uploadSeconds": 0.000001649, - "downloadSeconds": 0.063450759 + "connectionEstablishedSeconds": 0.130154313, + "uploadSeconds": 0.000053991, + "downloadSeconds": 0.062536243 }, { - "connectionEstablishedSeconds": 0.066537241, - "uploadSeconds": 0.000001684, - "downloadSeconds": 0.063612042 + "connectionEstablishedSeconds": 0.125910688, + "uploadSeconds": 0.000031902, + "downloadSeconds": 0.061372586 }, { - "connectionEstablishedSeconds": 0.060287593, - "uploadSeconds": 0.000002182, - "downloadSeconds": 0.058456552 + "connectionEstablishedSeconds": 0.124903408, + "uploadSeconds": 0.000032447, + "downloadSeconds": 0.060916243 }, { - "connectionEstablishedSeconds": 0.065054073, - "uploadSeconds": 0.000002425, - "downloadSeconds": 0.062287837 + "connectionEstablishedSeconds": 0.123476595, + "uploadSeconds": 0.000026731, + "downloadSeconds": 0.060158326 }, { - "connectionEstablishedSeconds": 0.067504678, - "uploadSeconds": 0.000002805, - "downloadSeconds": 0.062513336 + "connectionEstablishedSeconds": 0.129307852, + "uploadSeconds": 0.000029131, + "downloadSeconds": 0.062256843 }, { - "connectionEstablishedSeconds": 0.065028554, - "uploadSeconds": 0.000023464, - "downloadSeconds": 0.061357986 + "connectionEstablishedSeconds": 0.12745988, + "uploadSeconds": 0.000030412, + "downloadSeconds": 0.061331065 }, { - "connectionEstablishedSeconds": 0.064854282, - "uploadSeconds": 0.000001959, - "downloadSeconds": 0.061365878 + "connectionEstablishedSeconds": 0.123084436, + "uploadSeconds": 0.000053393, + "downloadSeconds": 0.05998429 }, { - "connectionEstablishedSeconds": 0.066916117, - "uploadSeconds": 0.000002116, - "downloadSeconds": 0.063219243 + "connectionEstablishedSeconds": 0.129570557, + "uploadSeconds": 0.000049303, + "downloadSeconds": 0.062803679 } ], "implementation": "go-libp2p", @@ -4031,173 +4031,173 @@ "pings": { "unit": "s", "results": [ - 0.060200000000000004, - 0.060200000000000004, - 0.0601, - 0.060200000000000004, - 0.0603, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.0603, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.0601, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.0601, - 0.060200000000000004, - 0.0601, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.0601, - 0.060200000000000004, - 0.060200000000000004, - 0.0601, - 0.060200000000000004, - 0.0601, - 0.0601, - 0.0601, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.0601, - 0.0601, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.0603, - 0.0601, - 0.0601, - 0.060200000000000004, - 0.060200000000000004, - 0.0601, - 0.0601, - 0.0601, - 0.0601, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.0601, - 0.060200000000000004, - 0.060200000000000004, - 0.0603, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.0601, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.0601, - 0.060200000000000004, - 0.060200000000000004, - 0.0601, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.0601, - 0.0601, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.0601, - 0.0601, - 0.060200000000000004, - 0.060200000000000004, - 0.060200000000000004, - 0.0601, - 0.0601, - 0.0601 + 0.0648, + 0.06470000000000001, + 0.0648, + 0.06470000000000001, + 0.06509999999999999, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.0648, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.0648, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.0648, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.0648, + 0.06470000000000001, + 0.06470000000000001, + 0.065, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.0648, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.0648, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.0648, + 0.06470000000000001, + 0.0648, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.0648, + 0.06470000000000001, + 0.06470000000000001, + 0.0648, + 0.06470000000000001, + 0.06470000000000001, + 0.0648, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.0648, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.0648, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.06470000000000001, + 0.0648, + 0.06470000000000001, + 0.06470000000000001, + 0.0648 ] }, "iperf": { "unit": "bit/s", "results": [ - 3230000000, - 3240000000, - 3240000000, - 3240000000, - 3240000000, - 3230000000, - 3240000000, - 3230000000, - 3230000000, - 3230000000, - 3240000000, - 3230000000, - 3230000000, - 3230000000, - 3230000000, - 3230000000, - 3230000000, - 3230000000, - 3240000000, - 3240000000, - 3230000000, - 3230000000, - 3230000000, - 3230000000, - 3190000000, - 3190000000, - 3180000000, - 3170000000, - 3180000000, - 3220000000, - 3220000000, - 3230000000, - 3230000000, - 3220000000, - 3230000000, - 3230000000, - 3230000000, - 3220000000, - 3220000000, - 3220000000, - 3220000000, - 3220000000, - 3220000000, - 3220000000, - 3220000000, - 3220000000, - 3220000000, - 3220000000, - 3220000000, - 3220000000, - 3220000000, - 3220000000, - 3210000000, - 3180000000, - 3180000000, - 3170000000, - 3170000000, - 3180000000, - 3220000000, - 3220000000, - 3220000000, - 3060000000 + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3300000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3300000000, + 3300000000, + 3300000000, + 3300000000, + 3310000000, + 3300000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3300000000, + 3310000000, + 3260000000, + 3260000000, + 3260000000, + 3260000000, + 3260000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3290000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3310000000, + 3300000000, + 2970000000 ] } } \ No newline at end of file From 962b0a6dffd78e0c44266dcf01951c88ef6fc33c Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 8 Jun 2023 15:12:42 +0900 Subject: [PATCH 126/143] Update results json --- perf/runner/benchmark-results.json | 4710 ++++++++++++++-------------- 1 file changed, 2355 insertions(+), 2355 deletions(-) diff --git a/perf/runner/benchmark-results.json b/perf/runner/benchmark-results.json index cad023b3a..3a920a154 100644 --- a/perf/runner/benchmark-results.json +++ b/perf/runner/benchmark-results.json @@ -7,29 +7,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.072449675, - "uploadSeconds": 1.030402714, - "downloadSeconds": 6.2e-8 + "connectionEstablishedSeconds": 0.064833759, + "uploadSeconds": 1.003781228, + "downloadSeconds": 6.1e-8 }, { - "connectionEstablishedSeconds": 0.065078019, - "uploadSeconds": 1.01713714, - "downloadSeconds": 5.3e-8 + "connectionEstablishedSeconds": 0.064830162, + "uploadSeconds": 1.005809057, + "downloadSeconds": 5.5e-8 }, { - "connectionEstablishedSeconds": 0.062098232, - "uploadSeconds": 0.96615869, - "downloadSeconds": 5.5e-8 + "connectionEstablishedSeconds": 0.064274521, + "uploadSeconds": 1.000458848, + "downloadSeconds": 8.7e-8 }, { - "connectionEstablishedSeconds": 0.063812558, - "uploadSeconds": 0.998745941, + "connectionEstablishedSeconds": 0.06277733, + "uploadSeconds": 0.978196166, "downloadSeconds": 5.6e-8 }, { - "connectionEstablishedSeconds": 0.064916563, - "uploadSeconds": 1.00571755, - "downloadSeconds": 9.1e-8 + "connectionEstablishedSeconds": 0.065110407, + "uploadSeconds": 1.014704029, + "downloadSeconds": 6.3e-8 } ], "implementation": "quic-go", @@ -39,29 +39,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.131605383, - "uploadSeconds": 48.446660109, - "downloadSeconds": 0.065213711 + "connectionEstablishedSeconds": 0.122456164, + "uploadSeconds": 46.129141106, + "downloadSeconds": 0.06252562 }, { - "connectionEstablishedSeconds": 0.125085683, - "uploadSeconds": 45.941211022, - "downloadSeconds": 0.062245307 + "connectionEstablishedSeconds": 0.12200015, + "uploadSeconds": 44.215909846, + "downloadSeconds": 0.060778362 }, { - "connectionEstablishedSeconds": 0.123359879, - "uploadSeconds": 45.639332467, - "downloadSeconds": 0.061656387 + "connectionEstablishedSeconds": 0.126685357, + "uploadSeconds": 44.101379409, + "downloadSeconds": 0.062993323 }, { - "connectionEstablishedSeconds": 0.130839372, - "uploadSeconds": 48.523818032, - "downloadSeconds": 0.065057067 + "connectionEstablishedSeconds": 0.125446343, + "uploadSeconds": 44.600296518, + "downloadSeconds": 0.062419352 }, { - "connectionEstablishedSeconds": 0.126453412, - "uploadSeconds": 47.064771282, - "downloadSeconds": 0.063175669 + "connectionEstablishedSeconds": 0.117814836, + "uploadSeconds": 43.385681412, + "downloadSeconds": 0.058723937 } ], "implementation": "rust-libp2p", @@ -71,29 +71,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.065353727, - "uploadSeconds": 12.262468399, - "downloadSeconds": 0.000167363 + "connectionEstablishedSeconds": 0.067254673, + "uploadSeconds": 11.152916552, + "downloadSeconds": 0.000120107 }, { - "connectionEstablishedSeconds": 0.061081125, - "uploadSeconds": 8.820958739, - "downloadSeconds": 0.000227147 + "connectionEstablishedSeconds": 0.06358057, + "uploadSeconds": 16.18795254, + "downloadSeconds": 0.000048209 }, { - "connectionEstablishedSeconds": 0.065143053, - "uploadSeconds": 12.975333062, - "downloadSeconds": 0.000115633 + "connectionEstablishedSeconds": 0.062912856, + "uploadSeconds": 13.017362603, + "downloadSeconds": 0.000094993 }, { - "connectionEstablishedSeconds": 0.063208525, - "uploadSeconds": 13.790904599, - "downloadSeconds": 0.000049341 + "connectionEstablishedSeconds": 0.062978255, + "uploadSeconds": 8.807038187, + "downloadSeconds": 0.000050072 }, { - "connectionEstablishedSeconds": 0.062556533, - "uploadSeconds": 11.182217787, - "downloadSeconds": 0.000053128 + "connectionEstablishedSeconds": 0.06500002, + "uploadSeconds": 15.824445739, + "downloadSeconds": 0.000101791 } ], "implementation": "rust-libp2p", @@ -103,29 +103,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.072534418, - "uploadSeconds": 1.462708575, - "downloadSeconds": 0.000160756 + "connectionEstablishedSeconds": 0.063379132, + "uploadSeconds": 1.3972297359999999, + "downloadSeconds": 0.000048003 }, { - "connectionEstablishedSeconds": 0.066319403, - "uploadSeconds": 1.46642264, - "downloadSeconds": 0.00006893 + "connectionEstablishedSeconds": 0.063652386, + "uploadSeconds": 1.4034387210000001, + "downloadSeconds": 0.0000725 }, { - "connectionEstablishedSeconds": 0.065209059, - "uploadSeconds": 1.438553374, - "downloadSeconds": 0.000052726 + "connectionEstablishedSeconds": 0.066053759, + "uploadSeconds": 1.459048393, + "downloadSeconds": 0.000140063 }, { - "connectionEstablishedSeconds": 0.065100121, - "uploadSeconds": 1.4122218069999999, - "downloadSeconds": 0.0000389 + "connectionEstablishedSeconds": 0.065239505, + "uploadSeconds": 1.4444509810000001, + "downloadSeconds": 0.000147022 }, { - "connectionEstablishedSeconds": 0.065734243, - "uploadSeconds": 1.459448772, - "downloadSeconds": 0.000124337 + "connectionEstablishedSeconds": 0.064955651, + "uploadSeconds": 1.404617279, + "downloadSeconds": 0.000069664 } ], "implementation": "rust-libp2p-quinn", @@ -136,28 +136,28 @@ "result": [ { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.96921235, - "downloadSeconds": 0.00000452 + "uploadSeconds": 2.9160687039999997, + "downloadSeconds": 0.000004406 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.746917199, - "downloadSeconds": 0.000004984 + "uploadSeconds": 2.713660734, + "downloadSeconds": 0.000004473 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.864667991, - "downloadSeconds": 0.000007865 + "uploadSeconds": 3.019830798, + "downloadSeconds": 0.000001856 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.83754267, - "downloadSeconds": 0.000004523 + "uploadSeconds": 2.913823459, + "downloadSeconds": 0.000004438 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 3.049346733, - "downloadSeconds": 0.000004667 + "uploadSeconds": 2.790044832, + "downloadSeconds": 0.000002194 } ], "implementation": "https", @@ -167,29 +167,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.257613059, - "uploadSeconds": 2.957171284, - "downloadSeconds": 0.125790574 + "connectionEstablishedSeconds": 0.259795001, + "uploadSeconds": 2.857762791, + "downloadSeconds": 0.126962797 }, { - "connectionEstablishedSeconds": 0.245230275, - "uploadSeconds": 3.006494356, - "downloadSeconds": 0.120326062 + "connectionEstablishedSeconds": 0.253034562, + "uploadSeconds": 3.055207592, + "downloadSeconds": 0.124652419 }, { - "connectionEstablishedSeconds": 0.24409476, - "uploadSeconds": 3.012811311, - "downloadSeconds": 0.119716713 + "connectionEstablishedSeconds": 0.256653274, + "uploadSeconds": 2.911630112, + "downloadSeconds": 0.126498529 }, { - "connectionEstablishedSeconds": 0.263280449, - "uploadSeconds": 3.167721294, - "downloadSeconds": 0.128946405 + "connectionEstablishedSeconds": 0.252451731, + "uploadSeconds": 3.092179765, + "downloadSeconds": 0.123183174 }, { - "connectionEstablishedSeconds": 0.254791811, - "uploadSeconds": 3.138565841, - "downloadSeconds": 0.125131355 + "connectionEstablishedSeconds": 0.239666838, + "uploadSeconds": 2.953570685, + "downloadSeconds": 0.117462589 } ], "implementation": "go-libp2p", @@ -199,29 +199,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.127486232, - "uploadSeconds": 1.273493851, - "downloadSeconds": 0.061723295 + "connectionEstablishedSeconds": 0.132163677, + "uploadSeconds": 1.310971934, + "downloadSeconds": 0.063578789 }, { - "connectionEstablishedSeconds": 0.131678454, - "uploadSeconds": 1.316089244, - "downloadSeconds": 0.06383276 + "connectionEstablishedSeconds": 0.130402622, + "uploadSeconds": 1.2985999160000001, + "downloadSeconds": 0.062291374 }, { - "connectionEstablishedSeconds": 0.127641785, - "uploadSeconds": 1.281985034, - "downloadSeconds": 0.062096237 + "connectionEstablishedSeconds": 0.129379059, + "uploadSeconds": 1.277691639, + "downloadSeconds": 0.062039418 }, { - "connectionEstablishedSeconds": 0.128318443, - "uploadSeconds": 1.287210642, - "downloadSeconds": 0.062603176 + "connectionEstablishedSeconds": 0.127959714, + "uploadSeconds": 1.266482562, + "downloadSeconds": 0.06231049 }, { - "connectionEstablishedSeconds": 0.126235861, - "uploadSeconds": 1.264455668, - "downloadSeconds": 0.061309238 + "connectionEstablishedSeconds": 0.129116983, + "uploadSeconds": 1.335219809, + "downloadSeconds": 0.061995737 } ], "implementation": "go-libp2p", @@ -241,29 +241,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.066849418, - "uploadSeconds": 8.42e-7, - "downloadSeconds": 1.148469656 + "connectionEstablishedSeconds": 0.066141651, + "uploadSeconds": 4.82e-7, + "downloadSeconds": 1.144077887 }, { - "connectionEstablishedSeconds": 0.064916464, - "uploadSeconds": 5.89e-7, - "downloadSeconds": 1.065743155 + "connectionEstablishedSeconds": 0.067169088, + "uploadSeconds": 5.13e-7, + "downloadSeconds": 1.105346271 }, { - "connectionEstablishedSeconds": 0.065089258, - "uploadSeconds": 5.71e-7, - "downloadSeconds": 1.069833204 + "connectionEstablishedSeconds": 0.063688185, + "uploadSeconds": 5.64e-7, + "downloadSeconds": 1.046742396 }, { - "connectionEstablishedSeconds": 0.063360127, - "uploadSeconds": 5.66e-7, - "downloadSeconds": 1.362412545 + "connectionEstablishedSeconds": 0.064494587, + "uploadSeconds": 5.18e-7, + "downloadSeconds": 1.059553724 }, { - "connectionEstablishedSeconds": 0.064698489, - "uploadSeconds": 5.9e-7, - "downloadSeconds": 1.065152768 + "connectionEstablishedSeconds": 0.063728582, + "uploadSeconds": 5.92e-7, + "downloadSeconds": 1.046182875 } ], "implementation": "quic-go", @@ -273,29 +273,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.124287626, - "uploadSeconds": 0.000002103, - "downloadSeconds": 44.196140181 + "connectionEstablishedSeconds": 0.11915755, + "uploadSeconds": 0.00000233, + "downloadSeconds": 43.045695357 }, { - "connectionEstablishedSeconds": 0.124831338, - "uploadSeconds": 0.000002011, - "downloadSeconds": 44.612427596 + "connectionEstablishedSeconds": 0.130429631, + "uploadSeconds": 0.000001872, + "downloadSeconds": 48.436912164 }, { - "connectionEstablishedSeconds": 0.123545103, - "uploadSeconds": 0.000001764, - "downloadSeconds": 43.579652838 + "connectionEstablishedSeconds": 0.126394546, + "uploadSeconds": 0.00000173, + "downloadSeconds": 45.595972788 }, { - "connectionEstablishedSeconds": 0.130886785, - "uploadSeconds": 0.000001755, - "downloadSeconds": 47.576309607 + "connectionEstablishedSeconds": 0.124729252, + "uploadSeconds": 0.000002227, + "downloadSeconds": 45.330052256 }, { - "connectionEstablishedSeconds": 0.121452779, - "uploadSeconds": 0.000002187, - "downloadSeconds": 44.545545321 + "connectionEstablishedSeconds": 0.121243578, + "uploadSeconds": 0.000001985, + "downloadSeconds": 45.112276715 } ], "implementation": "rust-libp2p", @@ -305,29 +305,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.06348953, - "uploadSeconds": 0.062120395, - "downloadSeconds": 20.69702088 + "connectionEstablishedSeconds": 0.065735047, + "uploadSeconds": 0.063951068, + "downloadSeconds": 5.58952994 }, { - "connectionEstablishedSeconds": 0.063186779, - "uploadSeconds": 0.061815366, - "downloadSeconds": 15.684835977 + "connectionEstablishedSeconds": 0.065837788, + "uploadSeconds": 0.064477494, + "downloadSeconds": 12.783492749 }, { - "connectionEstablishedSeconds": 0.066841607, - "uploadSeconds": 0.06544202, - "downloadSeconds": 10.861424959 + "connectionEstablishedSeconds": 0.062981356, + "uploadSeconds": 0.061610933, + "downloadSeconds": 9.562241419 }, { - "connectionEstablishedSeconds": 0.062966328, - "uploadSeconds": 0.061589204, - "downloadSeconds": 12.449638803 + "connectionEstablishedSeconds": 0.062310375, + "uploadSeconds": 0.060937649, + "downloadSeconds": 16.483080879 }, { - "connectionEstablishedSeconds": 0.063937979, - "uploadSeconds": 0.062556162, - "downloadSeconds": 14.921888036 + "connectionEstablishedSeconds": 0.063463306, + "uploadSeconds": 0.062164245, + "downloadSeconds": 27.648685238 } ], "implementation": "rust-libp2p", @@ -337,29 +337,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.067401915, - "uploadSeconds": 0.130826389, - "downloadSeconds": 1.41032336 + "connectionEstablishedSeconds": 0.06448184, + "uploadSeconds": 0.125069285, + "downloadSeconds": 1.347057411 }, { - "connectionEstablishedSeconds": 0.065353235, - "uploadSeconds": 0.127452583, - "downloadSeconds": 1.378807626 + "connectionEstablishedSeconds": 0.066253084, + "uploadSeconds": 0.129354937, + "downloadSeconds": 1.484249223 }, { - "connectionEstablishedSeconds": 0.061499164, - "uploadSeconds": 0.119836231, - "downloadSeconds": 1.287433224 + "connectionEstablishedSeconds": 0.063983458, + "uploadSeconds": 0.124674136, + "downloadSeconds": 1.347173993 }, { - "connectionEstablishedSeconds": 0.063043108, - "uploadSeconds": 0.12275197, - "downloadSeconds": 1.3262028510000001 + "connectionEstablishedSeconds": 0.065885277, + "uploadSeconds": 0.128489707, + "downloadSeconds": 1.413574416 }, { - "connectionEstablishedSeconds": 0.065985328, - "uploadSeconds": 0.128694935, - "downloadSeconds": 1.554000195 + "connectionEstablishedSeconds": 0.064679396, + "uploadSeconds": 0.126120588, + "downloadSeconds": 1.356967517 } ], "implementation": "rust-libp2p-quinn", @@ -370,28 +370,28 @@ "result": [ { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186182973, - "downloadSeconds": 2.619372302 + "uploadSeconds": 0.185184652, + "downloadSeconds": 2.63489813 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193889311, - "downloadSeconds": 2.824401632 + "uploadSeconds": 0.183698651, + "downloadSeconds": 2.64681236 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18165888, - "downloadSeconds": 2.657601003 + "uploadSeconds": 0.186395918, + "downloadSeconds": 2.626377335 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186969921, - "downloadSeconds": 2.6911300970000003 + "uploadSeconds": 0.188763186, + "downloadSeconds": 2.752533627 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189217967, - "downloadSeconds": 2.700721686 + "uploadSeconds": 0.193742144, + "downloadSeconds": 2.9134923759999998 } ], "implementation": "https", @@ -401,29 +401,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.25134947, - "uploadSeconds": 0.000051543, - "downloadSeconds": 3.312918919 + "connectionEstablishedSeconds": 0.257664865, + "uploadSeconds": 0.000031311, + "downloadSeconds": 2.983405715 }, { - "connectionEstablishedSeconds": 0.244010043, - "uploadSeconds": 0.000034203, - "downloadSeconds": 2.875339677 + "connectionEstablishedSeconds": 0.262072515, + "uploadSeconds": 0.000031989, + "downloadSeconds": 3.018357562 }, { - "connectionEstablishedSeconds": 0.248259003, - "uploadSeconds": 0.000049219, - "downloadSeconds": 3.124084551 + "connectionEstablishedSeconds": 0.249953301, + "uploadSeconds": 0.000027662, + "downloadSeconds": 2.9633232720000002 }, { - "connectionEstablishedSeconds": 0.252905873, - "uploadSeconds": 0.000027753, - "downloadSeconds": 3.037485126 + "connectionEstablishedSeconds": 0.248572445, + "uploadSeconds": 0.000015216, + "downloadSeconds": 3.203071388 }, { - "connectionEstablishedSeconds": 0.253081873, - "uploadSeconds": 0.00005523, - "downloadSeconds": 3.170042065 + "connectionEstablishedSeconds": 0.255820496, + "uploadSeconds": 0.000031172, + "downloadSeconds": 3.012235122 } ], "implementation": "go-libp2p", @@ -433,29 +433,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.131181146, - "uploadSeconds": 0.000030275, - "downloadSeconds": 1.354067741 + "connectionEstablishedSeconds": 0.125459887, + "uploadSeconds": 0.000048227, + "downloadSeconds": 1.308276667 }, { - "connectionEstablishedSeconds": 0.127718116, - "uploadSeconds": 0.000049603, - "downloadSeconds": 1.285225673 + "connectionEstablishedSeconds": 0.133661806, + "uploadSeconds": 0.00002847, + "downloadSeconds": 1.387949287 }, { - "connectionEstablishedSeconds": 0.125049804, - "uploadSeconds": 0.000051739, - "downloadSeconds": 1.316503146 + "connectionEstablishedSeconds": 0.124750203, + "uploadSeconds": 0.000054501, + "downloadSeconds": 1.311621328 }, { - "connectionEstablishedSeconds": 0.130920731, - "uploadSeconds": 0.000052412, - "downloadSeconds": 1.359474152 + "connectionEstablishedSeconds": 0.125873355, + "uploadSeconds": 0.000058397, + "downloadSeconds": 1.3032299840000001 }, { - "connectionEstablishedSeconds": 0.132994649, - "uploadSeconds": 0.000028668, - "downloadSeconds": 1.396280989 + "connectionEstablishedSeconds": 0.127935169, + "uploadSeconds": 0.000024901, + "downloadSeconds": 1.4567634950000001 } ], "implementation": "go-libp2p", @@ -475,504 +475,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.066765497, - "uploadSeconds": 8.49e-7, - "downloadSeconds": 0.064509165 + "connectionEstablishedSeconds": 0.065860067, + "uploadSeconds": 0.000002089, + "downloadSeconds": 0.06330949 }, { - "connectionEstablishedSeconds": 0.065249817, - "uploadSeconds": 0.000002064, - "downloadSeconds": 0.063428602 + "connectionEstablishedSeconds": 0.065755698, + "uploadSeconds": 0.000001964, + "downloadSeconds": 0.063951556 }, { - "connectionEstablishedSeconds": 0.064323673, - "uploadSeconds": 0.000001848, - "downloadSeconds": 0.062542597 + "connectionEstablishedSeconds": 0.063790335, + "uploadSeconds": 0.000001995, + "downloadSeconds": 0.062018036 }, { - "connectionEstablishedSeconds": 0.064078296, - "uploadSeconds": 0.000001893, - "downloadSeconds": 0.062267341 + "connectionEstablishedSeconds": 0.064027459, + "uploadSeconds": 7.09e-7, + "downloadSeconds": 0.062354487 }, { - "connectionEstablishedSeconds": 0.064892548, - "uploadSeconds": 0.000001798, - "downloadSeconds": 0.063135283 + "connectionEstablishedSeconds": 0.062990695, + "uploadSeconds": 0.000001957, + "downloadSeconds": 0.061331824 }, { - "connectionEstablishedSeconds": 0.066085712, - "uploadSeconds": 0.000001869, - "downloadSeconds": 0.064364651 + "connectionEstablishedSeconds": 0.064661415, + "uploadSeconds": 0.000001726, + "downloadSeconds": 0.063029776 }, { - "connectionEstablishedSeconds": 0.063996537, - "uploadSeconds": 6.61e-7, - "downloadSeconds": 0.062301982 + "connectionEstablishedSeconds": 0.064567056, + "uploadSeconds": 8.66e-7, + "downloadSeconds": 0.062985359 }, { - "connectionEstablishedSeconds": 0.06546416, - "uploadSeconds": 7.56e-7, - "downloadSeconds": 0.063875737 + "connectionEstablishedSeconds": 0.063748842, + "uploadSeconds": 0.000001944, + "downloadSeconds": 0.062029407 }, { - "connectionEstablishedSeconds": 0.065416165, - "uploadSeconds": 6.94e-7, - "downloadSeconds": 0.063732626 + "connectionEstablishedSeconds": 0.066351056, + "uploadSeconds": 0.000001752, + "downloadSeconds": 0.064638792 }, { - "connectionEstablishedSeconds": 0.064864606, - "uploadSeconds": 0.000001795, - "downloadSeconds": 0.063192263 + "connectionEstablishedSeconds": 0.06565357, + "uploadSeconds": 0.00000197, + "downloadSeconds": 0.063849937 }, { - "connectionEstablishedSeconds": 0.065476116, - "uploadSeconds": 0.000001934, - "downloadSeconds": 0.063629997 + "connectionEstablishedSeconds": 0.065368983, + "uploadSeconds": 0.000001732, + "downloadSeconds": 0.063676573 }, { - "connectionEstablishedSeconds": 0.0631728, - "uploadSeconds": 0.000001744, - "downloadSeconds": 0.061417554 + "connectionEstablishedSeconds": 0.062926528, + "uploadSeconds": 0.000001747, + "downloadSeconds": 0.061187897 }, { - "connectionEstablishedSeconds": 0.063835369, - "uploadSeconds": 0.000001859, - "downloadSeconds": 0.06205733 + "connectionEstablishedSeconds": 0.064313506, + "uploadSeconds": 0.000001862, + "downloadSeconds": 0.062400141 }, { - "connectionEstablishedSeconds": 0.06236461, - "uploadSeconds": 0.000001774, - "downloadSeconds": 0.060755829 + "connectionEstablishedSeconds": 0.06479631, + "uploadSeconds": 0.000001983, + "downloadSeconds": 0.063131066 }, { - "connectionEstablishedSeconds": 0.066131451, - "uploadSeconds": 0.000001886, - "downloadSeconds": 0.064495405 + "connectionEstablishedSeconds": 0.062364887, + "uploadSeconds": 0.000001921, + "downloadSeconds": 0.060672675 }, { - "connectionEstablishedSeconds": 0.064163352, - "uploadSeconds": 0.000001812, - "downloadSeconds": 0.062487802 + "connectionEstablishedSeconds": 0.064966047, + "uploadSeconds": 6.47e-7, + "downloadSeconds": 0.063326332 }, { - "connectionEstablishedSeconds": 0.065808614, - "uploadSeconds": 0.000001739, - "downloadSeconds": 0.065856638 + "connectionEstablishedSeconds": 0.066048616, + "uploadSeconds": 7.19e-7, + "downloadSeconds": 0.064365454 }, { - "connectionEstablishedSeconds": 0.064721061, - "uploadSeconds": 6.82e-7, - "downloadSeconds": 0.063039484 + "connectionEstablishedSeconds": 0.063129973, + "uploadSeconds": 0.000001881, + "downloadSeconds": 0.061403211 }, { - "connectionEstablishedSeconds": 0.063967381, - "uploadSeconds": 0.000001846, - "downloadSeconds": 0.062232549 + "connectionEstablishedSeconds": 0.065908159, + "uploadSeconds": 0.000001963, + "downloadSeconds": 0.064189644 }, { - "connectionEstablishedSeconds": 0.063330984, - "uploadSeconds": 0.000001814, - "downloadSeconds": 0.061504769 + "connectionEstablishedSeconds": 0.06387082, + "uploadSeconds": 7.88e-7, + "downloadSeconds": 0.062205181 }, { - "connectionEstablishedSeconds": 0.06485703, - "uploadSeconds": 0.000001917, - "downloadSeconds": 0.063242253 + "connectionEstablishedSeconds": 0.064045661, + "uploadSeconds": 0.000001697, + "downloadSeconds": 0.062369529 }, { - "connectionEstablishedSeconds": 0.062530353, - "uploadSeconds": 6.99e-7, - "downloadSeconds": 0.061033139 + "connectionEstablishedSeconds": 0.060515744, + "uploadSeconds": 0.000001826, + "downloadSeconds": 0.058944724 }, { - "connectionEstablishedSeconds": 0.063668019, - "uploadSeconds": 0.000001716, - "downloadSeconds": 0.061979884 + "connectionEstablishedSeconds": 0.06514631, + "uploadSeconds": 0.000001746, + "downloadSeconds": 0.063467215 }, { - "connectionEstablishedSeconds": 0.064174072, - "uploadSeconds": 7.09e-7, - "downloadSeconds": 0.062551597 + "connectionEstablishedSeconds": 0.065486949, + "uploadSeconds": 0.000001778, + "downloadSeconds": 0.063739325 }, { - "connectionEstablishedSeconds": 0.065585093, - "uploadSeconds": 7.62e-7, - "downloadSeconds": 0.063813559 + "connectionEstablishedSeconds": 0.065852385, + "uploadSeconds": 0.000001684, + "downloadSeconds": 0.064175721 }, { - "connectionEstablishedSeconds": 0.06321931, - "uploadSeconds": 0.000001777, - "downloadSeconds": 0.06151385 + "connectionEstablishedSeconds": 0.06490223, + "uploadSeconds": 0.000001833, + "downloadSeconds": 0.063243286 }, { - "connectionEstablishedSeconds": 0.061412259, - "uploadSeconds": 0.000001777, - "downloadSeconds": 0.059813195 + "connectionEstablishedSeconds": 0.063306822, + "uploadSeconds": 0.00000198, + "downloadSeconds": 0.061552475 }, { - "connectionEstablishedSeconds": 0.063207574, - "uploadSeconds": 0.000001789, - "downloadSeconds": 0.061549663 + "connectionEstablishedSeconds": 0.063114809, + "uploadSeconds": 7.07e-7, + "downloadSeconds": 0.061451126 }, { - "connectionEstablishedSeconds": 0.063484349, - "uploadSeconds": 0.000001819, - "downloadSeconds": 0.062310606 + "connectionEstablishedSeconds": 0.061477817, + "uploadSeconds": 0.000001733, + "downloadSeconds": 0.059818339 }, { - "connectionEstablishedSeconds": 0.065723205, - "uploadSeconds": 7.17e-7, - "downloadSeconds": 0.064060456 + "connectionEstablishedSeconds": 0.066747116, + "uploadSeconds": 0.000001805, + "downloadSeconds": 0.065020327 }, { - "connectionEstablishedSeconds": 0.061603145, - "uploadSeconds": 0.000001972, - "downloadSeconds": 0.059893142 + "connectionEstablishedSeconds": 0.064715311, + "uploadSeconds": 0.000001689, + "downloadSeconds": 0.06288911 }, { - "connectionEstablishedSeconds": 0.062999379, - "uploadSeconds": 0.000001794, - "downloadSeconds": 0.06138553 + "connectionEstablishedSeconds": 0.063052797, + "uploadSeconds": 0.000001777, + "downloadSeconds": 0.061376108 }, { - "connectionEstablishedSeconds": 0.06546399, - "uploadSeconds": 7e-7, - "downloadSeconds": 0.063783392 + "connectionEstablishedSeconds": 0.075500815, + "uploadSeconds": 0.000001712, + "downloadSeconds": 0.060729076 }, { - "connectionEstablishedSeconds": 0.064754701, - "uploadSeconds": 0.000001778, - "downloadSeconds": 0.062162329 + "connectionEstablishedSeconds": 0.064641159, + "uploadSeconds": 7.66e-7, + "downloadSeconds": 0.063150322 }, { - "connectionEstablishedSeconds": 0.066409246, - "uploadSeconds": 0.000001752, - "downloadSeconds": 0.064705081 + "connectionEstablishedSeconds": 0.063538609, + "uploadSeconds": 0.000001818, + "downloadSeconds": 0.061825625 }, { - "connectionEstablishedSeconds": 0.063568865, - "uploadSeconds": 0.000001838, - "downloadSeconds": 0.061832693 + "connectionEstablishedSeconds": 0.065220587, + "uploadSeconds": 0.000001809, + "downloadSeconds": 0.063686983 }, { - "connectionEstablishedSeconds": 0.062524544, - "uploadSeconds": 0.000001723, - "downloadSeconds": 0.060836967 + "connectionEstablishedSeconds": 0.062347115, + "uploadSeconds": 8e-7, + "downloadSeconds": 0.060693164 }, { - "connectionEstablishedSeconds": 0.062566124, - "uploadSeconds": 0.000001785, - "downloadSeconds": 0.060894745 + "connectionEstablishedSeconds": 0.063403723, + "uploadSeconds": 0.00000167, + "downloadSeconds": 0.061907841 }, { - "connectionEstablishedSeconds": 0.062123987, - "uploadSeconds": 6.87e-7, - "downloadSeconds": 0.060441128 + "connectionEstablishedSeconds": 0.065506195, + "uploadSeconds": 0.0000017, + "downloadSeconds": 0.063787751 }, { - "connectionEstablishedSeconds": 0.065409356, - "uploadSeconds": 0.000001692, - "downloadSeconds": 0.063798047 + "connectionEstablishedSeconds": 0.062121795, + "uploadSeconds": 7.31e-7, + "downloadSeconds": 0.060600913 }, { - "connectionEstablishedSeconds": 0.063575833, - "uploadSeconds": 0.000001719, - "downloadSeconds": 0.061841826 + "connectionEstablishedSeconds": 0.06459815, + "uploadSeconds": 0.000001848, + "downloadSeconds": 0.062969568 }, { - "connectionEstablishedSeconds": 0.063055948, - "uploadSeconds": 0.000001725, - "downloadSeconds": 0.061328576 + "connectionEstablishedSeconds": 0.062506026, + "uploadSeconds": 7.27e-7, + "downloadSeconds": 0.060832975 }, { - "connectionEstablishedSeconds": 0.065493623, - "uploadSeconds": 0.000001916, - "downloadSeconds": 0.063835479 + "connectionEstablishedSeconds": 0.0647996, + "uploadSeconds": 6.87e-7, + "downloadSeconds": 0.063170702 }, { - "connectionEstablishedSeconds": 0.063976489, - "uploadSeconds": 0.000001806, - "downloadSeconds": 0.062332488 + "connectionEstablishedSeconds": 0.065459344, + "uploadSeconds": 0.000001769, + "downloadSeconds": 0.063234999 }, { - "connectionEstablishedSeconds": 0.063056447, - "uploadSeconds": 0.000001719, - "downloadSeconds": 0.061373652 + "connectionEstablishedSeconds": 0.065848267, + "uploadSeconds": 6.53e-7, + "downloadSeconds": 0.064122659 }, { - "connectionEstablishedSeconds": 0.064495665, - "uploadSeconds": 7.46e-7, - "downloadSeconds": 0.0629602 + "connectionEstablishedSeconds": 0.06451668, + "uploadSeconds": 0.000001765, + "downloadSeconds": 0.062808288 }, { - "connectionEstablishedSeconds": 0.065546956, - "uploadSeconds": 6.76e-7, - "downloadSeconds": 0.063418188 + "connectionEstablishedSeconds": 0.062712151, + "uploadSeconds": 0.000001906, + "downloadSeconds": 0.061015491 }, { - "connectionEstablishedSeconds": 0.062339067, - "uploadSeconds": 0.00000186, - "downloadSeconds": 0.060670395 + "connectionEstablishedSeconds": 0.064454386, + "uploadSeconds": 0.000001709, + "downloadSeconds": 0.062861849 }, { - "connectionEstablishedSeconds": 0.063049046, - "uploadSeconds": 0.000001734, - "downloadSeconds": 0.061329875 + "connectionEstablishedSeconds": 0.065913503, + "uploadSeconds": 0.000001797, + "downloadSeconds": 0.06417216 }, { - "connectionEstablishedSeconds": 0.062357505, - "uploadSeconds": 0.000001764, - "downloadSeconds": 0.060664117 + "connectionEstablishedSeconds": 0.064343358, + "uploadSeconds": 0.000001752, + "downloadSeconds": 0.062674031 }, { - "connectionEstablishedSeconds": 0.06528281, - "uploadSeconds": 0.000001762, - "downloadSeconds": 0.063516551 + "connectionEstablishedSeconds": 0.063147302, + "uploadSeconds": 0.000001789, + "downloadSeconds": 0.0614893 }, { - "connectionEstablishedSeconds": 0.066320258, - "uploadSeconds": 0.0000018, - "downloadSeconds": 0.064720648 + "connectionEstablishedSeconds": 0.065270179, + "uploadSeconds": 0.000001743, + "downloadSeconds": 0.063642437 }, { - "connectionEstablishedSeconds": 0.066028628, - "uploadSeconds": 0.000001778, - "downloadSeconds": 0.064328142 + "connectionEstablishedSeconds": 0.061303157, + "uploadSeconds": 7.39e-7, + "downloadSeconds": 0.059654526 }, { - "connectionEstablishedSeconds": 0.063634942, - "uploadSeconds": 0.000001821, - "downloadSeconds": 0.061944178 + "connectionEstablishedSeconds": 0.066182862, + "uploadSeconds": 0.000001847, + "downloadSeconds": 0.064553973 }, { - "connectionEstablishedSeconds": 0.062519258, - "uploadSeconds": 7.66e-7, - "downloadSeconds": 0.060698542 + "connectionEstablishedSeconds": 0.063550238, + "uploadSeconds": 0.000001792, + "downloadSeconds": 0.061875842 }, { - "connectionEstablishedSeconds": 0.064855668, - "uploadSeconds": 7.1e-7, - "downloadSeconds": 0.063180069 + "connectionEstablishedSeconds": 0.063976441, + "uploadSeconds": 0.000001793, + "downloadSeconds": 0.062304624 }, { - "connectionEstablishedSeconds": 0.064752006, - "uploadSeconds": 0.000001749, - "downloadSeconds": 0.063132987 + "connectionEstablishedSeconds": 0.064865383, + "uploadSeconds": 0.000001778, + "downloadSeconds": 0.06324226 }, { - "connectionEstablishedSeconds": 0.066273212, - "uploadSeconds": 0.000001759, - "downloadSeconds": 0.064158788 + "connectionEstablishedSeconds": 0.065654695, + "uploadSeconds": 0.000001776, + "downloadSeconds": 0.063919581 }, { - "connectionEstablishedSeconds": 0.063833946, - "uploadSeconds": 6.95e-7, - "downloadSeconds": 0.062299067 + "connectionEstablishedSeconds": 0.064745622, + "uploadSeconds": 0.000001797, + "downloadSeconds": 0.062204648 }, { - "connectionEstablishedSeconds": 0.066265482, - "uploadSeconds": 0.00000185, - "downloadSeconds": 0.064636803 + "connectionEstablishedSeconds": 0.064830596, + "uploadSeconds": 0.000001825, + "downloadSeconds": 0.063129223 }, { - "connectionEstablishedSeconds": 0.062868719, - "uploadSeconds": 0.000001725, - "downloadSeconds": 0.061204063 + "connectionEstablishedSeconds": 0.062620308, + "uploadSeconds": 0.00000171, + "downloadSeconds": 0.060938594 }, { - "connectionEstablishedSeconds": 0.065831795, - "uploadSeconds": 0.000001831, - "downloadSeconds": 0.06417076 + "connectionEstablishedSeconds": 0.061658349, + "uploadSeconds": 0.000001867, + "downloadSeconds": 0.060072466 }, { - "connectionEstablishedSeconds": 0.062539241, - "uploadSeconds": 0.00000176, - "downloadSeconds": 0.060880993 + "connectionEstablishedSeconds": 0.064572474, + "uploadSeconds": 0.00000178, + "downloadSeconds": 0.062931026 }, { - "connectionEstablishedSeconds": 0.064352389, - "uploadSeconds": 0.00000178, - "downloadSeconds": 0.062691998 + "connectionEstablishedSeconds": 0.06624519, + "uploadSeconds": 0.000001751, + "downloadSeconds": 0.064647464 }, { - "connectionEstablishedSeconds": 0.063286495, - "uploadSeconds": 0.000001666, - "downloadSeconds": 0.061654188 + "connectionEstablishedSeconds": 0.065158101, + "uploadSeconds": 6.76e-7, + "downloadSeconds": 0.063504044 }, { - "connectionEstablishedSeconds": 0.066874172, - "uploadSeconds": 7.05e-7, - "downloadSeconds": 0.065273994 + "connectionEstablishedSeconds": 0.063891927, + "uploadSeconds": 7.55e-7, + "downloadSeconds": 0.062320027 }, { - "connectionEstablishedSeconds": 0.06370884, - "uploadSeconds": 0.00000186, - "downloadSeconds": 0.061990566 + "connectionEstablishedSeconds": 0.062599205, + "uploadSeconds": 0.000001941, + "downloadSeconds": 0.061118531 }, { - "connectionEstablishedSeconds": 0.064256796, - "uploadSeconds": 0.000001717, - "downloadSeconds": 0.062566426 + "connectionEstablishedSeconds": 0.064851573, + "uploadSeconds": 8.06e-7, + "downloadSeconds": 0.063260184 }, { - "connectionEstablishedSeconds": 0.066084311, - "uploadSeconds": 0.000001784, - "downloadSeconds": 0.064423069 + "connectionEstablishedSeconds": 0.06338514, + "uploadSeconds": 0.000001828, + "downloadSeconds": 0.061673669 }, { - "connectionEstablishedSeconds": 0.06311346, - "uploadSeconds": 0.000001834, - "downloadSeconds": 0.061419018 + "connectionEstablishedSeconds": 0.064893805, + "uploadSeconds": 0.00000179, + "downloadSeconds": 0.06321688 }, { - "connectionEstablishedSeconds": 0.064526777, - "uploadSeconds": 0.000001867, - "downloadSeconds": 0.062889137 + "connectionEstablishedSeconds": 0.06336691, + "uploadSeconds": 0.000001839, + "downloadSeconds": 0.060953253 }, { - "connectionEstablishedSeconds": 0.06163524, - "uploadSeconds": 0.000001804, - "downloadSeconds": 0.059249436 + "connectionEstablishedSeconds": 0.065529486, + "uploadSeconds": 0.000001988, + "downloadSeconds": 0.063717686 }, { - "connectionEstablishedSeconds": 0.061023444, - "uploadSeconds": 0.000001782, - "downloadSeconds": 0.059338741 + "connectionEstablishedSeconds": 0.066304643, + "uploadSeconds": 0.000001905, + "downloadSeconds": 0.064568256 }, { - "connectionEstablishedSeconds": 0.062568746, - "uploadSeconds": 0.000001766, - "downloadSeconds": 0.060868058 + "connectionEstablishedSeconds": 0.064887274, + "uploadSeconds": 0.000001796, + "downloadSeconds": 0.063263702 }, { - "connectionEstablishedSeconds": 0.065575941, - "uploadSeconds": 0.000001818, - "downloadSeconds": 0.063924263 + "connectionEstablishedSeconds": 0.06219528, + "uploadSeconds": 7.36e-7, + "downloadSeconds": 0.060497025 }, { - "connectionEstablishedSeconds": 0.066583833, - "uploadSeconds": 7.17e-7, - "downloadSeconds": 0.064938765 + "connectionEstablishedSeconds": 0.064394532, + "uploadSeconds": 7.25e-7, + "downloadSeconds": 0.062708529 }, { - "connectionEstablishedSeconds": 0.062918719, - "uploadSeconds": 0.00000179, - "downloadSeconds": 0.061368007 + "connectionEstablishedSeconds": 0.064131415, + "uploadSeconds": 0.000001843, + "downloadSeconds": 0.062500871 }, { - "connectionEstablishedSeconds": 0.063977938, - "uploadSeconds": 0.000001784, - "downloadSeconds": 0.062353546 + "connectionEstablishedSeconds": 0.063581396, + "uploadSeconds": 0.000001843, + "downloadSeconds": 0.061952662 }, { - "connectionEstablishedSeconds": 0.065522523, - "uploadSeconds": 0.000001741, - "downloadSeconds": 0.063821618 + "connectionEstablishedSeconds": 0.062906457, + "uploadSeconds": 0.000001715, + "downloadSeconds": 0.061313419 }, { - "connectionEstablishedSeconds": 0.064201759, - "uploadSeconds": 0.000001789, - "downloadSeconds": 0.062403678 + "connectionEstablishedSeconds": 0.065294332, + "uploadSeconds": 7.15e-7, + "downloadSeconds": 0.063665958 }, { - "connectionEstablishedSeconds": 0.061279513, - "uploadSeconds": 0.000001717, - "downloadSeconds": 0.059549167 + "connectionEstablishedSeconds": 0.065696318, + "uploadSeconds": 6.49e-7, + "downloadSeconds": 0.064093115 }, { - "connectionEstablishedSeconds": 0.065773354, - "uploadSeconds": 6.72e-7, - "downloadSeconds": 0.064134225 + "connectionEstablishedSeconds": 0.06418668, + "uploadSeconds": 0.000001814, + "downloadSeconds": 0.062461252 }, { - "connectionEstablishedSeconds": 0.061808823, - "uploadSeconds": 0.00000169, - "downloadSeconds": 0.060056193 + "connectionEstablishedSeconds": 0.06226811, + "uploadSeconds": 0.00000181, + "downloadSeconds": 0.060537779 }, { - "connectionEstablishedSeconds": 0.064457583, - "uploadSeconds": 6.91e-7, - "downloadSeconds": 0.062859012 + "connectionEstablishedSeconds": 0.060924851, + "uploadSeconds": 0.000001759, + "downloadSeconds": 0.058346114 }, { - "connectionEstablishedSeconds": 0.064123311, - "uploadSeconds": 0.000001778, - "downloadSeconds": 0.06234587 + "connectionEstablishedSeconds": 0.065818474, + "uploadSeconds": 7.01e-7, + "downloadSeconds": 0.064145443 }, { - "connectionEstablishedSeconds": 0.064627414, - "uploadSeconds": 0.00000178, - "downloadSeconds": 0.062955395 + "connectionEstablishedSeconds": 0.06539988, + "uploadSeconds": 0.000001836, + "downloadSeconds": 0.063750283 }, { - "connectionEstablishedSeconds": 0.065323841, - "uploadSeconds": 8.41e-7, - "downloadSeconds": 0.063461689 + "connectionEstablishedSeconds": 0.064745647, + "uploadSeconds": 0.000001888, + "downloadSeconds": 0.063198929 }, { - "connectionEstablishedSeconds": 0.063694653, - "uploadSeconds": 6.72e-7, - "downloadSeconds": 0.061998772 + "connectionEstablishedSeconds": 0.064855386, + "uploadSeconds": 0.000001837, + "downloadSeconds": 0.063167072 }, { - "connectionEstablishedSeconds": 0.063802829, - "uploadSeconds": 0.000001795, - "downloadSeconds": 0.06219577 + "connectionEstablishedSeconds": 0.060413674, + "uploadSeconds": 0.000001785, + "downloadSeconds": 0.058740826 }, { - "connectionEstablishedSeconds": 0.064755301, - "uploadSeconds": 0.00000179, - "downloadSeconds": 0.063085813 + "connectionEstablishedSeconds": 0.064570402, + "uploadSeconds": 0.000001758, + "downloadSeconds": 0.06284718 }, { - "connectionEstablishedSeconds": 0.062301066, - "uploadSeconds": 0.000001798, - "downloadSeconds": 0.060639559 + "connectionEstablishedSeconds": 0.06283695, + "uploadSeconds": 7.58e-7, + "downloadSeconds": 0.061195916 }, { - "connectionEstablishedSeconds": 0.060794408, - "uploadSeconds": 0.000001698, - "downloadSeconds": 0.059111416 + "connectionEstablishedSeconds": 0.063199726, + "uploadSeconds": 0.000001789, + "downloadSeconds": 0.06150939 }, { - "connectionEstablishedSeconds": 0.06689889, - "uploadSeconds": 0.000001814, - "downloadSeconds": 0.065201592 + "connectionEstablishedSeconds": 0.065272718, + "uploadSeconds": 0.00000176, + "downloadSeconds": 0.063542883 }, { - "connectionEstablishedSeconds": 0.065509148, - "uploadSeconds": 0.00000178, - "downloadSeconds": 0.063845276 + "connectionEstablishedSeconds": 0.062132433, + "uploadSeconds": 7.05e-7, + "downloadSeconds": 0.060604922 }, { - "connectionEstablishedSeconds": 0.065946012, - "uploadSeconds": 0.000001854, - "downloadSeconds": 0.064321984 + "connectionEstablishedSeconds": 0.065863374, + "uploadSeconds": 0.000001837, + "downloadSeconds": 0.064007617 }, { - "connectionEstablishedSeconds": 0.064152174, - "uploadSeconds": 7.32e-7, - "downloadSeconds": 0.062566448 + "connectionEstablishedSeconds": 0.065732699, + "uploadSeconds": 0.00000176, + "downloadSeconds": 0.064107551 }, { - "connectionEstablishedSeconds": 0.065330067, - "uploadSeconds": 0.000001724, - "downloadSeconds": 0.063714083 + "connectionEstablishedSeconds": 0.06390818, + "uploadSeconds": 0.000001884, + "downloadSeconds": 0.062303317 }, { - "connectionEstablishedSeconds": 0.065594275, - "uploadSeconds": 0.000001807, - "downloadSeconds": 0.06395082 + "connectionEstablishedSeconds": 0.064746973, + "uploadSeconds": 0.000001764, + "downloadSeconds": 0.063015287 }, { - "connectionEstablishedSeconds": 0.063978098, - "uploadSeconds": 0.000001742, - "downloadSeconds": 0.06233047 + "connectionEstablishedSeconds": 0.062040942, + "uploadSeconds": 0.000001941, + "downloadSeconds": 0.06031319 }, { - "connectionEstablishedSeconds": 0.06552409, - "uploadSeconds": 0.000001726, - "downloadSeconds": 0.063913669 + "connectionEstablishedSeconds": 0.066969439, + "uploadSeconds": 8.15e-7, + "downloadSeconds": 0.064368523 } ], "implementation": "quic-go", @@ -982,504 +982,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.124378833, - "uploadSeconds": 0.000002193, - "downloadSeconds": 0.062383666 + "connectionEstablishedSeconds": 0.125864596, + "uploadSeconds": 0.000002772, + "downloadSeconds": 0.063055349 }, { - "connectionEstablishedSeconds": 0.128294335, - "uploadSeconds": 0.000002024, - "downloadSeconds": 0.064032541 + "connectionEstablishedSeconds": 0.123491644, + "uploadSeconds": 0.000001888, + "downloadSeconds": 0.061775763 }, { - "connectionEstablishedSeconds": 0.12910615, - "uploadSeconds": 0.000001752, - "downloadSeconds": 0.064508982 + "connectionEstablishedSeconds": 0.12694878, + "uploadSeconds": 0.000001722, + "downloadSeconds": 0.063433037 }, { - "connectionEstablishedSeconds": 0.129261468, - "uploadSeconds": 0.000001681, - "downloadSeconds": 0.064543567 + "connectionEstablishedSeconds": 0.127179877, + "uploadSeconds": 0.000001889, + "downloadSeconds": 0.063503318 }, { - "connectionEstablishedSeconds": 0.128192413, - "uploadSeconds": 0.000001766, - "downloadSeconds": 0.064050417 + "connectionEstablishedSeconds": 0.127289357, + "uploadSeconds": 0.000001752, + "downloadSeconds": 0.063579844 }, { - "connectionEstablishedSeconds": 0.124067496, - "uploadSeconds": 0.000001851, - "downloadSeconds": 0.061974516 + "connectionEstablishedSeconds": 0.121312037, + "uploadSeconds": 0.000001654, + "downloadSeconds": 0.060547465 }, { - "connectionEstablishedSeconds": 0.123780415, - "uploadSeconds": 0.000001898, - "downloadSeconds": 0.061769081 + "connectionEstablishedSeconds": 0.122529129, + "uploadSeconds": 0.000001707, + "downloadSeconds": 0.061278012 }, { - "connectionEstablishedSeconds": 0.128777848, - "uploadSeconds": 0.00000176, - "downloadSeconds": 0.064291555 + "connectionEstablishedSeconds": 0.124381818, + "uploadSeconds": 0.0000018, + "downloadSeconds": 0.062152704 }, { - "connectionEstablishedSeconds": 0.126821691, - "uploadSeconds": 0.00000187, - "downloadSeconds": 0.0633383 + "connectionEstablishedSeconds": 0.128386567, + "uploadSeconds": 0.000001871, + "downloadSeconds": 0.064107778 }, { - "connectionEstablishedSeconds": 0.123136777, - "uploadSeconds": 0.000002115, - "downloadSeconds": 0.061429054 + "connectionEstablishedSeconds": 0.124432618, + "uploadSeconds": 0.000002187, + "downloadSeconds": 0.062111675 }, { - "connectionEstablishedSeconds": 0.124467119, - "uploadSeconds": 0.000001868, - "downloadSeconds": 0.062177393 + "connectionEstablishedSeconds": 0.122760721, + "uploadSeconds": 0.000001701, + "downloadSeconds": 0.061269488 }, { - "connectionEstablishedSeconds": 0.121326879, - "uploadSeconds": 0.000002001, - "downloadSeconds": 0.060327711 + "connectionEstablishedSeconds": 0.128072419, + "uploadSeconds": 0.000001734, + "downloadSeconds": 0.064025897 }, { - "connectionEstablishedSeconds": 0.129695162, - "uploadSeconds": 0.000002036, - "downloadSeconds": 0.064738889 + "connectionEstablishedSeconds": 0.122439554, + "uploadSeconds": 0.000001733, + "downloadSeconds": 0.061688303 }, { - "connectionEstablishedSeconds": 0.121632929, - "uploadSeconds": 0.000001873, - "downloadSeconds": 0.060731638 + "connectionEstablishedSeconds": 0.126707428, + "uploadSeconds": 0.000001841, + "downloadSeconds": 0.063300849 }, { - "connectionEstablishedSeconds": 0.128068805, - "uploadSeconds": 0.000002012, - "downloadSeconds": 0.063928132 + "connectionEstablishedSeconds": 0.127912727, + "uploadSeconds": 0.000001708, + "downloadSeconds": 0.063919812 }, { - "connectionEstablishedSeconds": 0.126780642, - "uploadSeconds": 0.000001794, - "downloadSeconds": 0.063322521 + "connectionEstablishedSeconds": 0.124351399, + "uploadSeconds": 0.00000169, + "downloadSeconds": 0.062174378 }, { - "connectionEstablishedSeconds": 0.123526513, - "uploadSeconds": 0.000001687, - "downloadSeconds": 0.061642433 + "connectionEstablishedSeconds": 0.128863697, + "uploadSeconds": 0.000001952, + "downloadSeconds": 0.064418679 }, { - "connectionEstablishedSeconds": 0.126118956, - "uploadSeconds": 0.000001753, - "downloadSeconds": 0.06306937 + "connectionEstablishedSeconds": 0.124939359, + "uploadSeconds": 0.000001815, + "downloadSeconds": 0.062383218 }, { - "connectionEstablishedSeconds": 0.121963371, - "uploadSeconds": 0.000001819, - "downloadSeconds": 0.060932858 + "connectionEstablishedSeconds": 0.126117628, + "uploadSeconds": 0.00000186, + "downloadSeconds": 0.062959035 }, { - "connectionEstablishedSeconds": 0.117066304, - "uploadSeconds": 0.000001823, - "downloadSeconds": 0.058447344 + "connectionEstablishedSeconds": 0.126695605, + "uploadSeconds": 0.000001936, + "downloadSeconds": 0.06329457 }, { - "connectionEstablishedSeconds": 0.127689528, - "uploadSeconds": 0.00000173, - "downloadSeconds": 0.063740805 + "connectionEstablishedSeconds": 0.124757281, + "uploadSeconds": 0.000001628, + "downloadSeconds": 0.062308171 }, { - "connectionEstablishedSeconds": 0.120728842, - "uploadSeconds": 0.000001819, - "downloadSeconds": 0.060263499 + "connectionEstablishedSeconds": 0.128362833, + "uploadSeconds": 0.000002231, + "downloadSeconds": 0.06391271 }, { - "connectionEstablishedSeconds": 0.123857006, - "uploadSeconds": 0.000001763, - "downloadSeconds": 0.061863201 + "connectionEstablishedSeconds": 0.123266961, + "uploadSeconds": 0.000001812, + "downloadSeconds": 0.061569255 }, { - "connectionEstablishedSeconds": 0.128155106, - "uploadSeconds": 0.000001684, - "downloadSeconds": 0.064017441 + "connectionEstablishedSeconds": 0.122151225, + "uploadSeconds": 0.000001659, + "downloadSeconds": 0.061032603 }, { - "connectionEstablishedSeconds": 0.126665277, - "uploadSeconds": 0.000001648, - "downloadSeconds": 0.063228687 + "connectionEstablishedSeconds": 0.123195246, + "uploadSeconds": 0.000001695, + "downloadSeconds": 0.061529918 }, { - "connectionEstablishedSeconds": 0.12523749, - "uploadSeconds": 0.000001695, - "downloadSeconds": 0.06258789 + "connectionEstablishedSeconds": 0.12781422, + "uploadSeconds": 0.000001661, + "downloadSeconds": 0.063801551 }, { - "connectionEstablishedSeconds": 0.125100106, - "uploadSeconds": 0.000001809, - "downloadSeconds": 0.062519008 + "connectionEstablishedSeconds": 0.121333817, + "uploadSeconds": 0.000001559, + "downloadSeconds": 0.060559987 }, { - "connectionEstablishedSeconds": 0.125707676, - "uploadSeconds": 0.000001694, - "downloadSeconds": 0.062795296 + "connectionEstablishedSeconds": 0.123791514, + "uploadSeconds": 0.000001864, + "downloadSeconds": 0.061894562 }, { - "connectionEstablishedSeconds": 0.118719715, - "uploadSeconds": 0.000001664, - "downloadSeconds": 0.059258567 + "connectionEstablishedSeconds": 0.127907339, + "uploadSeconds": 0.000001657, + "downloadSeconds": 0.063909095 }, { - "connectionEstablishedSeconds": 0.123909031, - "uploadSeconds": 0.000001686, - "downloadSeconds": 0.061865771 + "connectionEstablishedSeconds": 0.120877209, + "uploadSeconds": 0.000001857, + "downloadSeconds": 0.060353253 }, { - "connectionEstablishedSeconds": 0.126209098, - "uploadSeconds": 0.000001742, - "downloadSeconds": 0.063073793 + "connectionEstablishedSeconds": 0.129040334, + "uploadSeconds": 0.000001794, + "downloadSeconds": 0.064492514 }, { - "connectionEstablishedSeconds": 0.122318674, - "uploadSeconds": 0.000001711, - "downloadSeconds": 0.061068545 + "connectionEstablishedSeconds": 0.118434801, + "uploadSeconds": 0.000001782, + "downloadSeconds": 0.059101595 }, { - "connectionEstablishedSeconds": 0.128960382, - "uploadSeconds": 0.000001729, - "downloadSeconds": 0.064389227 + "connectionEstablishedSeconds": 0.122249937, + "uploadSeconds": 0.000001637, + "downloadSeconds": 0.061033016 }, { - "connectionEstablishedSeconds": 0.121538122, + "connectionEstablishedSeconds": 0.127137679, "uploadSeconds": 0.000001669, - "downloadSeconds": 0.060684629 + "downloadSeconds": 0.063529225 }, { - "connectionEstablishedSeconds": 0.126202178, - "uploadSeconds": 0.000001699, - "downloadSeconds": 0.06300512 + "connectionEstablishedSeconds": 0.127508144, + "uploadSeconds": 0.000001594, + "downloadSeconds": 0.063692139 }, { - "connectionEstablishedSeconds": 0.129326378, - "uploadSeconds": 0.000001939, - "downloadSeconds": 0.064577206 + "connectionEstablishedSeconds": 0.126690808, + "uploadSeconds": 0.000001971, + "downloadSeconds": 0.063255092 }, { - "connectionEstablishedSeconds": 0.126972251, - "uploadSeconds": 0.000001876, - "downloadSeconds": 0.063389073 + "connectionEstablishedSeconds": 0.122374936, + "uploadSeconds": 0.000001928, + "downloadSeconds": 0.061093207 }, { - "connectionEstablishedSeconds": 0.125214293, - "uploadSeconds": 0.000001788, - "downloadSeconds": 0.062581876 + "connectionEstablishedSeconds": 0.126711611, + "uploadSeconds": 0.000001692, + "downloadSeconds": 0.063235949 }, { - "connectionEstablishedSeconds": 0.127571771, - "uploadSeconds": 0.000001607, - "downloadSeconds": 0.063750801 + "connectionEstablishedSeconds": 0.126206027, + "uploadSeconds": 0.000002214, + "downloadSeconds": 0.063002306 }, { - "connectionEstablishedSeconds": 0.126183527, - "uploadSeconds": 0.000002174, - "downloadSeconds": 0.062965749 + "connectionEstablishedSeconds": 0.123557442, + "uploadSeconds": 0.000001828, + "downloadSeconds": 0.061706717 }, { - "connectionEstablishedSeconds": 0.121882083, - "uploadSeconds": 0.000001864, - "downloadSeconds": 0.060884727 + "connectionEstablishedSeconds": 0.123377371, + "uploadSeconds": 0.000001664, + "downloadSeconds": 0.061611751 }, { - "connectionEstablishedSeconds": 0.124478448, - "uploadSeconds": 0.000001684, - "downloadSeconds": 0.062159613 + "connectionEstablishedSeconds": 0.124918307, + "uploadSeconds": 0.00000181, + "downloadSeconds": 0.062299247 }, { - "connectionEstablishedSeconds": 0.126855259, - "uploadSeconds": 0.000001716, - "downloadSeconds": 0.063366884 + "connectionEstablishedSeconds": 0.124519571, + "uploadSeconds": 0.0000018, + "downloadSeconds": 0.062158418 }, { - "connectionEstablishedSeconds": 0.125965845, - "uploadSeconds": 0.000001736, - "downloadSeconds": 0.062903669 + "connectionEstablishedSeconds": 0.127727308, + "uploadSeconds": 0.000001787, + "downloadSeconds": 0.06384063 }, { - "connectionEstablishedSeconds": 0.127347751, - "uploadSeconds": 0.000001951, - "downloadSeconds": 0.063613556 + "connectionEstablishedSeconds": 0.121857759, + "uploadSeconds": 0.000001675, + "downloadSeconds": 0.060830158 }, { - "connectionEstablishedSeconds": 0.126262343, - "uploadSeconds": 0.000001777, - "downloadSeconds": 0.063153229 + "connectionEstablishedSeconds": 0.1252348, + "uploadSeconds": 0.000001722, + "downloadSeconds": 0.062531923 }, { - "connectionEstablishedSeconds": 0.126697581, - "uploadSeconds": 0.000001737, - "downloadSeconds": 0.063287252 + "connectionEstablishedSeconds": 0.128058911, + "uploadSeconds": 0.000001866, + "downloadSeconds": 0.063971078 }, { - "connectionEstablishedSeconds": 0.129710611, - "uploadSeconds": 0.000002475, - "downloadSeconds": 0.06477665 + "connectionEstablishedSeconds": 0.122712487, + "uploadSeconds": 0.0000018, + "downloadSeconds": 0.061253969 }, { - "connectionEstablishedSeconds": 0.12736264, - "uploadSeconds": 0.000001884, - "downloadSeconds": 0.063614193 + "connectionEstablishedSeconds": 0.125598843, + "uploadSeconds": 0.000001733, + "downloadSeconds": 0.062679831 }, { - "connectionEstablishedSeconds": 0.122110709, - "uploadSeconds": 0.000001817, - "downloadSeconds": 0.060996305 + "connectionEstablishedSeconds": 0.127607096, + "uploadSeconds": 0.000001862, + "downloadSeconds": 0.063723857 }, { - "connectionEstablishedSeconds": 0.127762485, - "uploadSeconds": 0.000001727, - "downloadSeconds": 0.063846496 + "connectionEstablishedSeconds": 0.122365683, + "uploadSeconds": 0.000001874, + "downloadSeconds": 0.061111555 }, { - "connectionEstablishedSeconds": 0.121892988, - "uploadSeconds": 0.000001904, - "downloadSeconds": 0.060890791 + "connectionEstablishedSeconds": 0.127263098, + "uploadSeconds": 0.000001892, + "downloadSeconds": 0.063602516 }, { - "connectionEstablishedSeconds": 0.127129574, - "uploadSeconds": 0.000001887, - "downloadSeconds": 0.063512603 + "connectionEstablishedSeconds": 0.122675566, + "uploadSeconds": 0.000002023, + "downloadSeconds": 0.061285723 }, { - "connectionEstablishedSeconds": 0.127140323, - "uploadSeconds": 0.000001834, - "downloadSeconds": 0.063491042 + "connectionEstablishedSeconds": 0.124245756, + "uploadSeconds": 0.00000183, + "downloadSeconds": 0.061995454 }, { - "connectionEstablishedSeconds": 0.126044157, - "uploadSeconds": 0.000002062, - "downloadSeconds": 0.062949581 + "connectionEstablishedSeconds": 0.12645112, + "uploadSeconds": 0.000001792, + "downloadSeconds": 0.063177905 }, { - "connectionEstablishedSeconds": 0.128712392, - "uploadSeconds": 0.000001816, - "downloadSeconds": 0.064311506 + "connectionEstablishedSeconds": 0.126114342, + "uploadSeconds": 0.000001818, + "downloadSeconds": 0.062983754 }, { - "connectionEstablishedSeconds": 0.129992907, - "uploadSeconds": 0.000001697, - "downloadSeconds": 0.06493816 + "connectionEstablishedSeconds": 0.12989619, + "uploadSeconds": 0.000001829, + "downloadSeconds": 0.064899237 }, { - "connectionEstablishedSeconds": 0.126048502, - "uploadSeconds": 0.000001721, - "downloadSeconds": 0.062949089 + "connectionEstablishedSeconds": 0.124053057, + "uploadSeconds": 0.000001663, + "downloadSeconds": 0.061928184 }, { - "connectionEstablishedSeconds": 0.123410133, - "uploadSeconds": 0.000001769, - "downloadSeconds": 0.061616182 + "connectionEstablishedSeconds": 0.121044784, + "uploadSeconds": 0.000001726, + "downloadSeconds": 0.060426706 }, { - "connectionEstablishedSeconds": 0.126184617, - "uploadSeconds": 0.0000019, - "downloadSeconds": 0.062991624 + "connectionEstablishedSeconds": 0.128309323, + "uploadSeconds": 0.00000183, + "downloadSeconds": 0.064022123 }, { - "connectionEstablishedSeconds": 0.12891464, - "uploadSeconds": 0.000001859, - "downloadSeconds": 0.06451573 + "connectionEstablishedSeconds": 0.126038673, + "uploadSeconds": 0.000001828, + "downloadSeconds": 0.062922924 }, { - "connectionEstablishedSeconds": 0.127562569, - "uploadSeconds": 0.000001749, - "downloadSeconds": 0.063710051 + "connectionEstablishedSeconds": 0.129437853, + "uploadSeconds": 0.000001923, + "downloadSeconds": 0.064619704 }, { - "connectionEstablishedSeconds": 0.123565396, - "uploadSeconds": 0.000001792, - "downloadSeconds": 0.06171273 + "connectionEstablishedSeconds": 0.126566963, + "uploadSeconds": 0.000001939, + "downloadSeconds": 0.063208622 }, { - "connectionEstablishedSeconds": 0.120443199, - "uploadSeconds": 0.000001894, - "downloadSeconds": 0.060124479 + "connectionEstablishedSeconds": 0.125559459, + "uploadSeconds": 0.000001741, + "downloadSeconds": 0.062722745 }, { - "connectionEstablishedSeconds": 0.121749153, - "uploadSeconds": 0.00000184, - "downloadSeconds": 0.060858912 + "connectionEstablishedSeconds": 0.126466586, + "uploadSeconds": 0.000001666, + "downloadSeconds": 0.063173868 }, { - "connectionEstablishedSeconds": 0.127699962, - "uploadSeconds": 0.000001991, - "downloadSeconds": 0.063750282 + "connectionEstablishedSeconds": 0.122449873, + "uploadSeconds": 0.000001669, + "downloadSeconds": 0.061048241 }, { - "connectionEstablishedSeconds": 0.126655762, - "uploadSeconds": 0.000001883, - "downloadSeconds": 0.062968176 + "connectionEstablishedSeconds": 0.122366411, + "uploadSeconds": 0.000001782, + "downloadSeconds": 0.061100592 }, { - "connectionEstablishedSeconds": 0.126138145, - "uploadSeconds": 0.000001742, - "downloadSeconds": 0.063001965 + "connectionEstablishedSeconds": 0.128322408, + "uploadSeconds": 0.000001794, + "downloadSeconds": 0.064055552 }, { - "connectionEstablishedSeconds": 0.126657721, - "uploadSeconds": 0.000001714, - "downloadSeconds": 0.063242309 + "connectionEstablishedSeconds": 0.11862713, + "uploadSeconds": 0.000001585, + "downloadSeconds": 0.059270918 }, { - "connectionEstablishedSeconds": 0.126894807, - "uploadSeconds": 0.000001704, - "downloadSeconds": 0.063405973 + "connectionEstablishedSeconds": 0.12344625, + "uploadSeconds": 0.000001621, + "downloadSeconds": 0.061653469 }, { - "connectionEstablishedSeconds": 0.126088081, - "uploadSeconds": 0.000001704, - "downloadSeconds": 0.062964452 + "connectionEstablishedSeconds": 0.128076956, + "uploadSeconds": 0.000001906, + "downloadSeconds": 0.063964027 }, { - "connectionEstablishedSeconds": 0.130194705, - "uploadSeconds": 0.000001801, - "downloadSeconds": 0.065007107 + "connectionEstablishedSeconds": 0.128052495, + "uploadSeconds": 0.000001782, + "downloadSeconds": 0.063966066 }, { - "connectionEstablishedSeconds": 0.126205527, - "uploadSeconds": 0.000001851, - "downloadSeconds": 0.063025846 + "connectionEstablishedSeconds": 0.124643356, + "uploadSeconds": 0.000001779, + "downloadSeconds": 0.062262803 }, { - "connectionEstablishedSeconds": 0.126715914, - "uploadSeconds": 0.000001756, - "downloadSeconds": 0.063283763 + "connectionEstablishedSeconds": 0.128289351, + "uploadSeconds": 0.000001864, + "downloadSeconds": 0.064086809 }, { - "connectionEstablishedSeconds": 0.12998454, - "uploadSeconds": 0.000001703, - "downloadSeconds": 0.064893323 + "connectionEstablishedSeconds": 0.122094684, + "uploadSeconds": 0.000001771, + "downloadSeconds": 0.060957218 }, { - "connectionEstablishedSeconds": 0.121072823, - "uploadSeconds": 0.000001766, - "downloadSeconds": 0.060450248 + "connectionEstablishedSeconds": 0.122589418, + "uploadSeconds": 0.000001814, + "downloadSeconds": 0.061186266 }, { - "connectionEstablishedSeconds": 0.122474741, - "uploadSeconds": 0.000001826, - "downloadSeconds": 0.061207818 + "connectionEstablishedSeconds": 0.128022751, + "uploadSeconds": 0.000001649, + "downloadSeconds": 0.063909837 }, { - "connectionEstablishedSeconds": 0.125905306, - "uploadSeconds": 0.000001752, - "downloadSeconds": 0.062867992 + "connectionEstablishedSeconds": 0.120139804, + "uploadSeconds": 0.000001639, + "downloadSeconds": 0.059962477 }, { - "connectionEstablishedSeconds": 0.126974815, - "uploadSeconds": 0.000001929, - "downloadSeconds": 0.063417472 + "connectionEstablishedSeconds": 0.123965197, + "uploadSeconds": 0.000001695, + "downloadSeconds": 0.061910515 }, { - "connectionEstablishedSeconds": 0.121299774, - "uploadSeconds": 0.000001753, - "downloadSeconds": 0.060567392 + "connectionEstablishedSeconds": 0.129003872, + "uploadSeconds": 0.000001964, + "downloadSeconds": 0.064437571 }, { - "connectionEstablishedSeconds": 0.127253347, - "uploadSeconds": 0.000001818, - "downloadSeconds": 0.063536139 + "connectionEstablishedSeconds": 0.125273273, + "uploadSeconds": 0.00000167, + "downloadSeconds": 0.062608041 }, { - "connectionEstablishedSeconds": 0.129001397, - "uploadSeconds": 0.000001756, - "downloadSeconds": 0.064470172 + "connectionEstablishedSeconds": 0.124395803, + "uploadSeconds": 0.000001711, + "downloadSeconds": 0.062088105 }, { - "connectionEstablishedSeconds": 0.124111101, - "uploadSeconds": 0.000001685, - "downloadSeconds": 0.062034655 + "connectionEstablishedSeconds": 0.118248742, + "uploadSeconds": 0.000001884, + "downloadSeconds": 0.059030065 }, { - "connectionEstablishedSeconds": 0.124518464, - "uploadSeconds": 0.00000173, - "downloadSeconds": 0.062219896 + "connectionEstablishedSeconds": 0.12468695, + "uploadSeconds": 0.000001703, + "downloadSeconds": 0.062248412 }, { - "connectionEstablishedSeconds": 0.125227349, - "uploadSeconds": 0.000001979, - "downloadSeconds": 0.062483051 + "connectionEstablishedSeconds": 0.124129146, + "uploadSeconds": 0.000001654, + "downloadSeconds": 0.061975201 }, { - "connectionEstablishedSeconds": 0.124379143, - "uploadSeconds": 0.00000191, - "downloadSeconds": 0.062097758 + "connectionEstablishedSeconds": 0.124597114, + "uploadSeconds": 0.00000697, + "downloadSeconds": 0.062307603 }, { - "connectionEstablishedSeconds": 0.12133127, - "uploadSeconds": 0.000001797, - "downloadSeconds": 0.060556588 + "connectionEstablishedSeconds": 0.125130312, + "uploadSeconds": 0.000002146, + "downloadSeconds": 0.062495811 }, { - "connectionEstablishedSeconds": 0.122854379, - "uploadSeconds": 0.000001793, - "downloadSeconds": 0.061288404 + "connectionEstablishedSeconds": 0.128058525, + "uploadSeconds": 0.000001711, + "downloadSeconds": 0.064003315 }, { - "connectionEstablishedSeconds": 0.127730271, - "uploadSeconds": 0.000001727, - "downloadSeconds": 0.06381694 + "connectionEstablishedSeconds": 0.124293806, + "uploadSeconds": 0.000001842, + "downloadSeconds": 0.061592338 }, { - "connectionEstablishedSeconds": 0.127567632, - "uploadSeconds": 0.000001741, - "downloadSeconds": 0.06372157 + "connectionEstablishedSeconds": 0.12660551, + "uploadSeconds": 0.00000192, + "downloadSeconds": 0.063189559 }, { - "connectionEstablishedSeconds": 0.122974372, - "uploadSeconds": 0.000001577, - "downloadSeconds": 0.061429535 + "connectionEstablishedSeconds": 0.125876916, + "uploadSeconds": 0.000002427, + "downloadSeconds": 0.06282273 }, { - "connectionEstablishedSeconds": 0.126815056, - "uploadSeconds": 0.000001952, - "downloadSeconds": 0.063319545 + "connectionEstablishedSeconds": 0.120511336, + "uploadSeconds": 0.000001699, + "downloadSeconds": 0.060159333 }, { - "connectionEstablishedSeconds": 0.125831799, - "uploadSeconds": 0.000001603, - "downloadSeconds": 0.062871982 + "connectionEstablishedSeconds": 0.122895101, + "uploadSeconds": 0.000001704, + "downloadSeconds": 0.061372026 }, { - "connectionEstablishedSeconds": 0.126075339, - "uploadSeconds": 0.000001857, - "downloadSeconds": 0.062969068 + "connectionEstablishedSeconds": 0.129146262, + "uploadSeconds": 0.000001696, + "downloadSeconds": 0.064448929 }, { - "connectionEstablishedSeconds": 0.126817894, - "uploadSeconds": 0.000001644, - "downloadSeconds": 0.063225893 + "connectionEstablishedSeconds": 0.126989589, + "uploadSeconds": 0.000001595, + "downloadSeconds": 0.063359108 }, { - "connectionEstablishedSeconds": 0.122641575, - "uploadSeconds": 0.000002067, - "downloadSeconds": 0.06127793 + "connectionEstablishedSeconds": 0.124515358, + "uploadSeconds": 0.000001672, + "downloadSeconds": 0.062196377 }, { - "connectionEstablishedSeconds": 0.126486851, - "uploadSeconds": 0.00000163, - "downloadSeconds": 0.063154986 + "connectionEstablishedSeconds": 0.125877262, + "uploadSeconds": 0.00000182, + "downloadSeconds": 0.062827061 }, { - "connectionEstablishedSeconds": 0.121948432, - "uploadSeconds": 0.000001618, - "downloadSeconds": 0.060967115 + "connectionEstablishedSeconds": 0.121738236, + "uploadSeconds": 0.000010331, + "downloadSeconds": 0.060643958 }, { - "connectionEstablishedSeconds": 0.124433485, - "uploadSeconds": 0.000001869, - "downloadSeconds": 0.06210957 + "connectionEstablishedSeconds": 0.123796092, + "uploadSeconds": 0.000001679, + "downloadSeconds": 0.061779824 }, { - "connectionEstablishedSeconds": 0.120115725, - "uploadSeconds": 0.000001854, - "downloadSeconds": 0.059940243 + "connectionEstablishedSeconds": 0.124448348, + "uploadSeconds": 0.000001759, + "downloadSeconds": 0.062178093 } ], "implementation": "rust-libp2p", @@ -1489,504 +1489,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.065498309, - "uploadSeconds": 0.063963217, - "downloadSeconds": 0.000110663 + "connectionEstablishedSeconds": 0.063257752, + "uploadSeconds": 0.061878279, + "downloadSeconds": 0.000102898 }, { - "connectionEstablishedSeconds": 0.066352264, - "uploadSeconds": 0.064955915, - "downloadSeconds": 0.000076427 + "connectionEstablishedSeconds": 0.062952025, + "uploadSeconds": 0.061652308, + "downloadSeconds": 0.000101063 }, { - "connectionEstablishedSeconds": 0.064251802, - "uploadSeconds": 0.062864468, - "downloadSeconds": 0.000076496 + "connectionEstablishedSeconds": 0.066167662, + "uploadSeconds": 0.06484377, + "downloadSeconds": 0.000074516 }, { - "connectionEstablishedSeconds": 0.064300349, - "uploadSeconds": 0.062954665, - "downloadSeconds": 0.000081552 + "connectionEstablishedSeconds": 0.063759391, + "uploadSeconds": 0.06238371, + "downloadSeconds": 0.000079069 }, { - "connectionEstablishedSeconds": 0.066000859, - "uploadSeconds": 0.064602792, - "downloadSeconds": 0.00007587 + "connectionEstablishedSeconds": 0.064380168, + "uploadSeconds": 0.06308419, + "downloadSeconds": 0.000079214 }, { - "connectionEstablishedSeconds": 0.064292734, - "uploadSeconds": 0.062997783, - "downloadSeconds": 0.000086026 + "connectionEstablishedSeconds": 0.064026004, + "uploadSeconds": 0.062669232, + "downloadSeconds": 0.000077651 }, { - "connectionEstablishedSeconds": 0.063390854, - "uploadSeconds": 0.061991755, - "downloadSeconds": 0.000098353 + "connectionEstablishedSeconds": 0.064249131, + "uploadSeconds": 0.062960135, + "downloadSeconds": 0.000079878 }, { - "connectionEstablishedSeconds": 0.061981883, - "uploadSeconds": 0.060712745, - "downloadSeconds": 0.000077276 + "connectionEstablishedSeconds": 0.062635373, + "uploadSeconds": 0.061317931, + "downloadSeconds": 0.000077502 }, { - "connectionEstablishedSeconds": 0.060282773, - "uploadSeconds": 0.058915855, - "downloadSeconds": 0.000075583 + "connectionEstablishedSeconds": 0.063581254, + "uploadSeconds": 0.062217815, + "downloadSeconds": 0.000084164 }, { - "connectionEstablishedSeconds": 0.063535064, - "uploadSeconds": 0.062329915, - "downloadSeconds": 0.000078556 + "connectionEstablishedSeconds": 0.065975247, + "uploadSeconds": 0.064569197, + "downloadSeconds": 0.000074938 }, { - "connectionEstablishedSeconds": 0.063823495, - "uploadSeconds": 0.062438363, - "downloadSeconds": 0.000062755 + "connectionEstablishedSeconds": 0.06622112, + "uploadSeconds": 0.064883374, + "downloadSeconds": 0.000085421 }, { - "connectionEstablishedSeconds": 0.064784819, - "uploadSeconds": 0.063457955, - "downloadSeconds": 0.000076724 + "connectionEstablishedSeconds": 0.062712669, + "uploadSeconds": 0.061584012, + "downloadSeconds": 0.00008273 }, { - "connectionEstablishedSeconds": 0.064888971, - "uploadSeconds": 0.063017835, - "downloadSeconds": 0.000076803 + "connectionEstablishedSeconds": 0.064869871, + "uploadSeconds": 0.063499577, + "downloadSeconds": 0.000077601 }, { - "connectionEstablishedSeconds": 0.065497931, - "uploadSeconds": 0.064116416, - "downloadSeconds": 0.000032257 + "connectionEstablishedSeconds": 0.065307492, + "uploadSeconds": 0.063949987, + "downloadSeconds": 0.000044744 }, { - "connectionEstablishedSeconds": 0.065821669, - "uploadSeconds": 0.064453546, - "downloadSeconds": 0.000082331 + "connectionEstablishedSeconds": 0.063255566, + "uploadSeconds": 0.061852884, + "downloadSeconds": 0.000090197 }, { - "connectionEstablishedSeconds": 0.065095541, - "uploadSeconds": 0.063914588, - "downloadSeconds": 0.000128067 + "connectionEstablishedSeconds": 0.06152507, + "uploadSeconds": 0.060321177, + "downloadSeconds": 0.000050528 }, { - "connectionEstablishedSeconds": 0.060087466, - "uploadSeconds": 0.058825659, - "downloadSeconds": 0.000076026 + "connectionEstablishedSeconds": 0.06517706, + "uploadSeconds": 0.063842125, + "downloadSeconds": 0.000082184 }, { - "connectionEstablishedSeconds": 0.062558833, - "uploadSeconds": 0.061185092, - "downloadSeconds": 0.000077062 + "connectionEstablishedSeconds": 0.063764411, + "uploadSeconds": 0.062444077, + "downloadSeconds": 0.000071402 }, { - "connectionEstablishedSeconds": 0.06153757, - "uploadSeconds": 0.060208082, - "downloadSeconds": 0.000083862 + "connectionEstablishedSeconds": 0.06491776, + "uploadSeconds": 0.06358971, + "downloadSeconds": 0.000079039 }, { - "connectionEstablishedSeconds": 0.061961747, - "uploadSeconds": 0.060660285, - "downloadSeconds": 0.000082 + "connectionEstablishedSeconds": 0.063835785, + "uploadSeconds": 0.062456096, + "downloadSeconds": 0.000077111 }, { - "connectionEstablishedSeconds": 0.065749907, - "uploadSeconds": 0.064388882, - "downloadSeconds": 0.000044229 + "connectionEstablishedSeconds": 0.065213991, + "uploadSeconds": 0.063831148, + "downloadSeconds": 0.000072372 }, { - "connectionEstablishedSeconds": 0.065412578, - "uploadSeconds": 0.064035178, - "downloadSeconds": 0.000090118 + "connectionEstablishedSeconds": 0.063857203, + "uploadSeconds": 0.06243492, + "downloadSeconds": 0.000074971 }, { - "connectionEstablishedSeconds": 0.062381258, - "uploadSeconds": 0.060993353, - "downloadSeconds": 0.000086217 + "connectionEstablishedSeconds": 0.065228642, + "uploadSeconds": 0.064247805, + "downloadSeconds": 0.000073201 }, { - "connectionEstablishedSeconds": 0.063491215, - "uploadSeconds": 0.062050766, - "downloadSeconds": 0.000076918 + "connectionEstablishedSeconds": 0.064219065, + "uploadSeconds": 0.062879303, + "downloadSeconds": 0.000087899 }, { - "connectionEstablishedSeconds": 0.062304354, - "uploadSeconds": 0.060697002, - "downloadSeconds": 0.000276357 + "connectionEstablishedSeconds": 0.065993171, + "uploadSeconds": 0.064646618, + "downloadSeconds": 0.000074434 }, { - "connectionEstablishedSeconds": 0.063481083, - "uploadSeconds": 0.062078125, - "downloadSeconds": 0.000077437 + "connectionEstablishedSeconds": 0.06188298, + "uploadSeconds": 0.060476557, + "downloadSeconds": 0.000076633 }, { - "connectionEstablishedSeconds": 0.063865352, - "uploadSeconds": 0.062546218, - "downloadSeconds": 0.000071874 + "connectionEstablishedSeconds": 0.06267738, + "uploadSeconds": 0.061367179, + "downloadSeconds": 0.000087659 }, { - "connectionEstablishedSeconds": 0.064077109, - "uploadSeconds": 0.062630948, - "downloadSeconds": 0.000084832 + "connectionEstablishedSeconds": 0.062727636, + "uploadSeconds": 0.061417017, + "downloadSeconds": 0.000078944 }, { - "connectionEstablishedSeconds": 0.064764139, - "uploadSeconds": 0.063448696, - "downloadSeconds": 0.00008032 + "connectionEstablishedSeconds": 0.065360407, + "uploadSeconds": 0.064065799, + "downloadSeconds": 0.000117038 }, { - "connectionEstablishedSeconds": 0.064032461, - "uploadSeconds": 0.062751348, - "downloadSeconds": 0.000073452 + "connectionEstablishedSeconds": 0.064415196, + "uploadSeconds": 0.063002004, + "downloadSeconds": 0.000082966 }, { - "connectionEstablishedSeconds": 0.065047021, - "uploadSeconds": 0.063708564, - "downloadSeconds": 0.000044353 + "connectionEstablishedSeconds": 0.062447721, + "uploadSeconds": 0.061054353, + "downloadSeconds": 0.000075476 }, { - "connectionEstablishedSeconds": 0.066179958, - "uploadSeconds": 0.065005934, - "downloadSeconds": 0.000069713 + "connectionEstablishedSeconds": 0.06519953, + "uploadSeconds": 0.063688796, + "downloadSeconds": 0.000241966 }, { - "connectionEstablishedSeconds": 0.064745709, - "uploadSeconds": 0.063315025, - "downloadSeconds": 0.000083173 + "connectionEstablishedSeconds": 0.06606042, + "uploadSeconds": 0.065138897, + "downloadSeconds": 0.000046599 }, { - "connectionEstablishedSeconds": 0.064384712, - "uploadSeconds": 0.063016721, - "downloadSeconds": 0.000078181 + "connectionEstablishedSeconds": 0.064930903, + "uploadSeconds": 0.063575798, + "downloadSeconds": 0.000012397 }, { - "connectionEstablishedSeconds": 0.063283924, - "uploadSeconds": 0.061814414, - "downloadSeconds": 0.000079108 + "connectionEstablishedSeconds": 0.064589451, + "uploadSeconds": 0.063213078, + "downloadSeconds": 0.000083414 }, { - "connectionEstablishedSeconds": 0.061370013, - "uploadSeconds": 0.060091339, - "downloadSeconds": 0.00007473 + "connectionEstablishedSeconds": 0.064499906, + "uploadSeconds": 0.063106063, + "downloadSeconds": 0.000086556 }, { - "connectionEstablishedSeconds": 0.064706055, - "uploadSeconds": 0.063611132, - "downloadSeconds": 0.000050147 + "connectionEstablishedSeconds": 0.065364914, + "uploadSeconds": 0.064143288, + "downloadSeconds": 0.000086138 }, { - "connectionEstablishedSeconds": 0.063503588, - "uploadSeconds": 0.062095367, - "downloadSeconds": 0.000084274 + "connectionEstablishedSeconds": 0.063940234, + "uploadSeconds": 0.062559126, + "downloadSeconds": 0.000037631 }, { - "connectionEstablishedSeconds": 0.065948447, - "uploadSeconds": 0.064519378, - "downloadSeconds": 0.000090414 + "connectionEstablishedSeconds": 0.062382424, + "uploadSeconds": 0.060956143, + "downloadSeconds": 0.000082692 }, { - "connectionEstablishedSeconds": 0.064384921, - "uploadSeconds": 0.063031893, - "downloadSeconds": 0.000083421 + "connectionEstablishedSeconds": 0.064239148, + "uploadSeconds": 0.062902449, + "downloadSeconds": 0.000081257 }, { - "connectionEstablishedSeconds": 0.066066412, - "uploadSeconds": 0.064791803, - "downloadSeconds": 0.000075718 + "connectionEstablishedSeconds": 0.063927216, + "uploadSeconds": 0.062593202, + "downloadSeconds": 0.000075774 }, { - "connectionEstablishedSeconds": 0.065049928, - "uploadSeconds": 0.063729375, - "downloadSeconds": 0.000034276 + "connectionEstablishedSeconds": 0.063316938, + "uploadSeconds": 0.062124715, + "downloadSeconds": 0.000074621 }, { - "connectionEstablishedSeconds": 0.061172411, - "uploadSeconds": 0.059716958, - "downloadSeconds": 0.000075337 + "connectionEstablishedSeconds": 0.065097133, + "uploadSeconds": 0.06366093, + "downloadSeconds": 0.000069793 }, { - "connectionEstablishedSeconds": 0.062870413, - "uploadSeconds": 0.061557425, - "downloadSeconds": 0.000074626 + "connectionEstablishedSeconds": 0.065419145, + "uploadSeconds": 0.064052135, + "downloadSeconds": 0.000083853 }, { - "connectionEstablishedSeconds": 0.062062112, - "uploadSeconds": 0.060718265, - "downloadSeconds": 0.000072551 + "connectionEstablishedSeconds": 0.063073795, + "uploadSeconds": 0.06170365, + "downloadSeconds": 0.000076509 }, { - "connectionEstablishedSeconds": 0.063914045, - "uploadSeconds": 0.062527722, - "downloadSeconds": 0.000076349 + "connectionEstablishedSeconds": 0.063296853, + "uploadSeconds": 0.062047312, + "downloadSeconds": 0.0000876 }, { - "connectionEstablishedSeconds": 0.063350381, - "uploadSeconds": 0.062072111, - "downloadSeconds": 0.000073957 + "connectionEstablishedSeconds": 0.061398114, + "uploadSeconds": 0.060639764, + "downloadSeconds": 0.000121588 }, { - "connectionEstablishedSeconds": 0.063427646, - "uploadSeconds": 0.062161484, - "downloadSeconds": 0.000034628 + "connectionEstablishedSeconds": 0.06208718, + "uploadSeconds": 0.060714176, + "downloadSeconds": 0.000077028 }, { - "connectionEstablishedSeconds": 0.061263987, - "uploadSeconds": 0.059730047, - "downloadSeconds": 0.000268126 + "connectionEstablishedSeconds": 0.066243039, + "uploadSeconds": 0.064776812, + "downloadSeconds": 0.000077635 }, { - "connectionEstablishedSeconds": 0.066701607, - "uploadSeconds": 0.06528515, - "downloadSeconds": 0.000075631 + "connectionEstablishedSeconds": 0.064423632, + "uploadSeconds": 0.063122409, + "downloadSeconds": 0.00007297 }, { - "connectionEstablishedSeconds": 0.064611331, - "uploadSeconds": 0.063197252, - "downloadSeconds": 0.000077528 + "connectionEstablishedSeconds": 0.063248546, + "uploadSeconds": 0.062105778, + "downloadSeconds": 0.000072681 }, { - "connectionEstablishedSeconds": 0.064259357, - "uploadSeconds": 0.06296268, - "downloadSeconds": 0.000082668 + "connectionEstablishedSeconds": 0.064744826, + "uploadSeconds": 0.063594385, + "downloadSeconds": 0.000075898 }, { - "connectionEstablishedSeconds": 0.065502439, - "uploadSeconds": 0.064086552, - "downloadSeconds": 0.000077745 + "connectionEstablishedSeconds": 0.064997825, + "uploadSeconds": 0.063641084, + "downloadSeconds": 0.000033492 }, { - "connectionEstablishedSeconds": 0.065933122, - "uploadSeconds": 0.064584192, - "downloadSeconds": 0.000012591 + "connectionEstablishedSeconds": 0.063296394, + "uploadSeconds": 0.061948588, + "downloadSeconds": 0.00006432 }, { - "connectionEstablishedSeconds": 0.060246348, - "uploadSeconds": 0.058880981, - "downloadSeconds": 0.000078718 + "connectionEstablishedSeconds": 0.065327883, + "uploadSeconds": 0.064033786, + "downloadSeconds": 0.000070056 }, { - "connectionEstablishedSeconds": 0.062347678, - "uploadSeconds": 0.060994172, - "downloadSeconds": 0.000076074 + "connectionEstablishedSeconds": 0.062977683, + "uploadSeconds": 0.061582017, + "downloadSeconds": 0.000057854 }, { - "connectionEstablishedSeconds": 0.064884178, - "uploadSeconds": 0.063505428, - "downloadSeconds": 0.000093469 + "connectionEstablishedSeconds": 0.064605457, + "uploadSeconds": 0.063267915, + "downloadSeconds": 0.000072283 }, { - "connectionEstablishedSeconds": 0.063181371, - "uploadSeconds": 0.061809906, - "downloadSeconds": 0.000075479 + "connectionEstablishedSeconds": 0.065617917, + "uploadSeconds": 0.064263964, + "downloadSeconds": 0.000103446 }, { - "connectionEstablishedSeconds": 0.064960888, - "uploadSeconds": 0.063655175, - "downloadSeconds": 0.000081 + "connectionEstablishedSeconds": 0.062099522, + "uploadSeconds": 0.060776365, + "downloadSeconds": 0.000074521 }, { - "connectionEstablishedSeconds": 0.064750128, - "uploadSeconds": 0.063236861, - "downloadSeconds": 0.000218561 + "connectionEstablishedSeconds": 0.066287637, + "uploadSeconds": 0.064976443, + "downloadSeconds": 0.000079612 }, { - "connectionEstablishedSeconds": 0.063814042, - "uploadSeconds": 0.062523353, - "downloadSeconds": 0.000034572 + "connectionEstablishedSeconds": 0.065759998, + "uploadSeconds": 0.064081755, + "downloadSeconds": 0.000085913 }, { - "connectionEstablishedSeconds": 0.06585332, - "uploadSeconds": 0.064392595, - "downloadSeconds": 0.000080292 + "connectionEstablishedSeconds": 0.062490144, + "uploadSeconds": 0.061099903, + "downloadSeconds": 0.000074025 }, { - "connectionEstablishedSeconds": 0.065896994, - "uploadSeconds": 0.064488783, - "downloadSeconds": 0.000076237 + "connectionEstablishedSeconds": 0.064250861, + "uploadSeconds": 0.062912494, + "downloadSeconds": 0.000053518 }, { - "connectionEstablishedSeconds": 0.062997646, - "uploadSeconds": 0.061654694, - "downloadSeconds": 0.000084775 + "connectionEstablishedSeconds": 0.064214955, + "uploadSeconds": 0.062836093, + "downloadSeconds": 0.000073779 }, { - "connectionEstablishedSeconds": 0.065263527, - "uploadSeconds": 0.063891442, - "downloadSeconds": 0.000079792 + "connectionEstablishedSeconds": 0.065649108, + "uploadSeconds": 0.064302593, + "downloadSeconds": 0.000089556 }, { - "connectionEstablishedSeconds": 0.062148804, - "uploadSeconds": 0.060878161, - "downloadSeconds": 0.000070801 + "connectionEstablishedSeconds": 0.064106778, + "uploadSeconds": 0.062602081, + "downloadSeconds": 0.000074866 }, { - "connectionEstablishedSeconds": 0.063382609, - "uploadSeconds": 0.062101099, - "downloadSeconds": 0.000080955 + "connectionEstablishedSeconds": 0.0626398, + "uploadSeconds": 0.061006656, + "downloadSeconds": 0.000081926 }, { - "connectionEstablishedSeconds": 0.063483389, - "uploadSeconds": 0.062208616, - "downloadSeconds": 0.00007695 + "connectionEstablishedSeconds": 0.061814729, + "uploadSeconds": 0.060554102, + "downloadSeconds": 0.000034304 }, { - "connectionEstablishedSeconds": 0.061747333, - "uploadSeconds": 0.060397716, - "downloadSeconds": 0.000091487 + "connectionEstablishedSeconds": 0.061917904, + "uploadSeconds": 0.060510557, + "downloadSeconds": 0.000078039 }, { - "connectionEstablishedSeconds": 0.064043001, - "uploadSeconds": 0.062721853, - "downloadSeconds": 0.000078838 + "connectionEstablishedSeconds": 0.064831765, + "uploadSeconds": 0.063412033, + "downloadSeconds": 0.000076381 }, { - "connectionEstablishedSeconds": 0.062539265, - "uploadSeconds": 0.061212868, - "downloadSeconds": 0.000082724 + "connectionEstablishedSeconds": 0.064330491, + "uploadSeconds": 0.062809701, + "downloadSeconds": 0.000075685 }, { - "connectionEstablishedSeconds": 0.06378957, - "uploadSeconds": 0.062483273, - "downloadSeconds": 0.000087621 + "connectionEstablishedSeconds": 0.064824202, + "uploadSeconds": 0.063481323, + "downloadSeconds": 0.000090581 }, { - "connectionEstablishedSeconds": 0.06344643, - "uploadSeconds": 0.062024354, - "downloadSeconds": 0.000127271 + "connectionEstablishedSeconds": 0.063275122, + "uploadSeconds": 0.061961777, + "downloadSeconds": 0.000032939 }, { - "connectionEstablishedSeconds": 0.064907077, - "uploadSeconds": 0.063657779, - "downloadSeconds": 0.000089816 + "connectionEstablishedSeconds": 0.063108036, + "uploadSeconds": 0.061784369, + "downloadSeconds": 0.000079742 }, { - "connectionEstablishedSeconds": 0.066376037, - "uploadSeconds": 0.064972148, - "downloadSeconds": 0.000044345 + "connectionEstablishedSeconds": 0.063635633, + "uploadSeconds": 0.062247393, + "downloadSeconds": 0.000079612 }, { - "connectionEstablishedSeconds": 0.062585061, - "uploadSeconds": 0.061270805, - "downloadSeconds": 0.00007439 + "connectionEstablishedSeconds": 0.061361719, + "uploadSeconds": 0.060015032, + "downloadSeconds": 0.000085874 }, { - "connectionEstablishedSeconds": 0.062800139, - "uploadSeconds": 0.061461338, - "downloadSeconds": 0.000084143 + "connectionEstablishedSeconds": 0.061396301, + "uploadSeconds": 0.060029398, + "downloadSeconds": 0.000068314 }, { - "connectionEstablishedSeconds": 0.063088608, - "uploadSeconds": 0.061765023, - "downloadSeconds": 0.000083161 + "connectionEstablishedSeconds": 0.065079631, + "uploadSeconds": 0.063514831, + "downloadSeconds": 0.000240961 }, { - "connectionEstablishedSeconds": 0.062970816, - "uploadSeconds": 0.061567059, - "downloadSeconds": 0.00007798 + "connectionEstablishedSeconds": 0.063512261, + "uploadSeconds": 0.062147122, + "downloadSeconds": 0.000088158 }, { - "connectionEstablishedSeconds": 0.064158988, - "uploadSeconds": 0.062798405, - "downloadSeconds": 0.000043117 + "connectionEstablishedSeconds": 0.064000309, + "uploadSeconds": 0.062692444, + "downloadSeconds": 0.000069012 }, { - "connectionEstablishedSeconds": 0.06435458, - "uploadSeconds": 0.062898391, - "downloadSeconds": 0.000094095 + "connectionEstablishedSeconds": 0.062198236, + "uploadSeconds": 0.060801307, + "downloadSeconds": 0.000085906 }, { - "connectionEstablishedSeconds": 0.064365977, - "uploadSeconds": 0.062982643, - "downloadSeconds": 0.00008722 + "connectionEstablishedSeconds": 0.06604594, + "uploadSeconds": 0.064755756, + "downloadSeconds": 0.000043128 }, { - "connectionEstablishedSeconds": 0.066241203, - "uploadSeconds": 0.064829239, - "downloadSeconds": 0.000082176 + "connectionEstablishedSeconds": 0.066042764, + "uploadSeconds": 0.064601542, + "downloadSeconds": 0.000061757 }, { - "connectionEstablishedSeconds": 0.06345732, - "uploadSeconds": 0.062331512, - "downloadSeconds": 0.000042994 + "connectionEstablishedSeconds": 0.062640348, + "uploadSeconds": 0.061223274, + "downloadSeconds": 0.000088744 }, { - "connectionEstablishedSeconds": 0.061942778, - "uploadSeconds": 0.06061854, - "downloadSeconds": 0.000112886 + "connectionEstablishedSeconds": 0.065357167, + "uploadSeconds": 0.064097735, + "downloadSeconds": 0.000077609 }, { - "connectionEstablishedSeconds": 0.064431186, - "uploadSeconds": 0.063011824, - "downloadSeconds": 0.000075842 + "connectionEstablishedSeconds": 0.062347367, + "uploadSeconds": 0.061039715, + "downloadSeconds": 0.000085032 }, { - "connectionEstablishedSeconds": 0.065304742, - "uploadSeconds": 0.064025723, - "downloadSeconds": 0.000086335 + "connectionEstablishedSeconds": 0.065302042, + "uploadSeconds": 0.063912661, + "downloadSeconds": 0.000077526 }, { - "connectionEstablishedSeconds": 0.066152931, - "uploadSeconds": 0.064788484, - "downloadSeconds": 0.000077384 + "connectionEstablishedSeconds": 0.065216012, + "uploadSeconds": 0.063864007, + "downloadSeconds": 0.000074128 }, { - "connectionEstablishedSeconds": 0.064515699, - "uploadSeconds": 0.063120856, - "downloadSeconds": 0.000041413 + "connectionEstablishedSeconds": 0.064335646, + "uploadSeconds": 0.062993498, + "downloadSeconds": 0.000099046 }, { - "connectionEstablishedSeconds": 0.065207914, - "uploadSeconds": 0.06387325, - "downloadSeconds": 0.000075661 + "connectionEstablishedSeconds": 0.066534805, + "uploadSeconds": 0.065147601, + "downloadSeconds": 0.000074264 }, { - "connectionEstablishedSeconds": 0.063530102, - "uploadSeconds": 0.062192793, - "downloadSeconds": 0.00009561 + "connectionEstablishedSeconds": 0.064137312, + "uploadSeconds": 0.062757462, + "downloadSeconds": 0.000097806 }, { - "connectionEstablishedSeconds": 0.062775655, - "uploadSeconds": 0.061444648, - "downloadSeconds": 0.000071928 + "connectionEstablishedSeconds": 0.063796774, + "uploadSeconds": 0.062519867, + "downloadSeconds": 0.000075917 }, { - "connectionEstablishedSeconds": 0.065223444, - "uploadSeconds": 0.063788109, - "downloadSeconds": 0.000069069 + "connectionEstablishedSeconds": 0.063841773, + "uploadSeconds": 0.062586083, + "downloadSeconds": 0.000076575 }, { - "connectionEstablishedSeconds": 0.062171596, - "uploadSeconds": 0.060731552, - "downloadSeconds": 0.000107437 + "connectionEstablishedSeconds": 0.064735616, + "uploadSeconds": 0.063326263, + "downloadSeconds": 0.000077619 }, { - "connectionEstablishedSeconds": 0.065568056, - "uploadSeconds": 0.064164219, - "downloadSeconds": 0.00007941 + "connectionEstablishedSeconds": 0.062305278, + "uploadSeconds": 0.061001317, + "downloadSeconds": 0.000083401 }, { - "connectionEstablishedSeconds": 0.06273371, - "uploadSeconds": 0.061361467, - "downloadSeconds": 0.000209307 + "connectionEstablishedSeconds": 0.063175535, + "uploadSeconds": 0.0617513, + "downloadSeconds": 0.000080892 }, { - "connectionEstablishedSeconds": 0.06366634, - "uploadSeconds": 0.062231598, - "downloadSeconds": 0.000090888 + "connectionEstablishedSeconds": 0.061668919, + "uploadSeconds": 0.060278846, + "downloadSeconds": 0.000082534 }, { - "connectionEstablishedSeconds": 0.061694215, - "uploadSeconds": 0.060280493, - "downloadSeconds": 0.000085348 + "connectionEstablishedSeconds": 0.065713014, + "uploadSeconds": 0.064404475, + "downloadSeconds": 0.000079107 }, { - "connectionEstablishedSeconds": 0.064793097, - "uploadSeconds": 0.063493328, - "downloadSeconds": 0.000083748 + "connectionEstablishedSeconds": 0.064854742, + "uploadSeconds": 0.063502029, + "downloadSeconds": 0.000082711 }, { - "connectionEstablishedSeconds": 0.065374157, - "uploadSeconds": 0.064003824, - "downloadSeconds": 0.000085661 + "connectionEstablishedSeconds": 0.06462043, + "uploadSeconds": 0.063374377, + "downloadSeconds": 0.000078422 } ], "implementation": "rust-libp2p", @@ -1996,504 +1996,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.064462948, - "uploadSeconds": 0.125119596, - "downloadSeconds": 0.000067016 + "connectionEstablishedSeconds": 0.064989847, + "uploadSeconds": 0.126199519, + "downloadSeconds": 0.000041651 }, { - "connectionEstablishedSeconds": 0.065831813, - "uploadSeconds": 0.128228469, - "downloadSeconds": 0.000047935 + "connectionEstablishedSeconds": 0.064525983, + "uploadSeconds": 0.125617255, + "downloadSeconds": 0.00006148 }, { - "connectionEstablishedSeconds": 0.064402013, - "uploadSeconds": 0.125435568, - "downloadSeconds": 0.000045575 + "connectionEstablishedSeconds": 0.065716862, + "uploadSeconds": 0.127757205, + "downloadSeconds": 0.000042941 }, { - "connectionEstablishedSeconds": 0.061406925, - "uploadSeconds": 0.119611146, - "downloadSeconds": 0.000042647 + "connectionEstablishedSeconds": 0.065997867, + "uploadSeconds": 0.128689895, + "downloadSeconds": 0.000044761 }, { - "connectionEstablishedSeconds": 0.06254491, - "uploadSeconds": 0.121980727, - "downloadSeconds": 0.000044263 + "connectionEstablishedSeconds": 0.063130493, + "uploadSeconds": 0.1230169, + "downloadSeconds": 0.000034771 }, { - "connectionEstablishedSeconds": 0.062698836, - "uploadSeconds": 0.122012634, - "downloadSeconds": 0.000070228 + "connectionEstablishedSeconds": 0.063442004, + "uploadSeconds": 0.123935778, + "downloadSeconds": 0.000053474 }, { - "connectionEstablishedSeconds": 0.066283752, - "uploadSeconds": 0.12933051, - "downloadSeconds": 0.000041224 + "connectionEstablishedSeconds": 0.063409803, + "uploadSeconds": 0.123699864, + "downloadSeconds": 0.000061715 }, { - "connectionEstablishedSeconds": 0.066355151, - "uploadSeconds": 0.129307896, - "downloadSeconds": 0.000111055 + "connectionEstablishedSeconds": 0.066007623, + "uploadSeconds": 0.128849238, + "downloadSeconds": 0.00004131 }, { - "connectionEstablishedSeconds": 0.065097377, - "uploadSeconds": 0.126720524, - "downloadSeconds": 0.000046311 + "connectionEstablishedSeconds": 0.064361292, + "uploadSeconds": 0.125445961, + "downloadSeconds": 0.000118936 }, { - "connectionEstablishedSeconds": 0.065598773, - "uploadSeconds": 0.12788643, - "downloadSeconds": 0.000065528 + "connectionEstablishedSeconds": 0.06448392, + "uploadSeconds": 0.125774894, + "downloadSeconds": 0.000065156 }, { - "connectionEstablishedSeconds": 0.063874631, - "uploadSeconds": 0.125049538, - "downloadSeconds": 0.000046175 + "connectionEstablishedSeconds": 0.062574302, + "uploadSeconds": 0.121980267, + "downloadSeconds": 0.000042611 }, { - "connectionEstablishedSeconds": 0.061878697, - "uploadSeconds": 0.120464425, - "downloadSeconds": 0.000064265 + "connectionEstablishedSeconds": 0.062807081, + "uploadSeconds": 0.122211694, + "downloadSeconds": 0.000044252 }, { - "connectionEstablishedSeconds": 0.066837904, - "uploadSeconds": 0.130196029, - "downloadSeconds": 0.000056874 + "connectionEstablishedSeconds": 0.065070502, + "uploadSeconds": 0.126946249, + "downloadSeconds": 0.000043436 }, { - "connectionEstablishedSeconds": 0.062387765, - "uploadSeconds": 0.121608986, - "downloadSeconds": 0.00006255 + "connectionEstablishedSeconds": 0.065297089, + "uploadSeconds": 0.127560699, + "downloadSeconds": 0.000050637 }, { - "connectionEstablishedSeconds": 0.060818783, - "uploadSeconds": 0.118620769, - "downloadSeconds": 0.000051438 + "connectionEstablishedSeconds": 0.06286966, + "uploadSeconds": 0.122957993, + "downloadSeconds": 0.000073073 }, { - "connectionEstablishedSeconds": 0.062497413, - "uploadSeconds": 0.121748006, - "downloadSeconds": 0.000047441 + "connectionEstablishedSeconds": 0.0656597, + "uploadSeconds": 0.128210876, + "downloadSeconds": 0.000071043 }, { - "connectionEstablishedSeconds": 0.064094899, - "uploadSeconds": 0.124947053, - "downloadSeconds": 0.00004906 + "connectionEstablishedSeconds": 0.062683488, + "uploadSeconds": 0.121490218, + "downloadSeconds": 0.000044258 }, { - "connectionEstablishedSeconds": 0.065992279, - "uploadSeconds": 0.129015496, - "downloadSeconds": 0.000045885 + "connectionEstablishedSeconds": 0.063230051, + "uploadSeconds": 0.122956926, + "downloadSeconds": 0.000043377 }, { - "connectionEstablishedSeconds": 0.063487935, - "uploadSeconds": 0.123865417, - "downloadSeconds": 0.000102135 + "connectionEstablishedSeconds": 0.064549145, + "uploadSeconds": 0.125800192, + "downloadSeconds": 0.000062698 }, { - "connectionEstablishedSeconds": 0.064334053, - "uploadSeconds": 0.125535106, - "downloadSeconds": 0.000070054 + "connectionEstablishedSeconds": 0.065950319, + "uploadSeconds": 0.12884674, + "downloadSeconds": 0.000076522 }, { - "connectionEstablishedSeconds": 0.065028569, - "uploadSeconds": 0.126920455, - "downloadSeconds": 0.000060293 + "connectionEstablishedSeconds": 0.066415156, + "uploadSeconds": 0.129229438, + "downloadSeconds": 0.000043872 }, { - "connectionEstablishedSeconds": 0.062264881, - "uploadSeconds": 0.121199353, - "downloadSeconds": 0.000071576 + "connectionEstablishedSeconds": 0.063556269, + "uploadSeconds": 0.123945344, + "downloadSeconds": 0.000042911 }, { - "connectionEstablishedSeconds": 0.065520706, - "uploadSeconds": 0.127636085, - "downloadSeconds": 0.00004333 + "connectionEstablishedSeconds": 0.064390956, + "uploadSeconds": 0.125738658, + "downloadSeconds": 0.000045942 }, { - "connectionEstablishedSeconds": 0.061164417, - "uploadSeconds": 0.119148881, - "downloadSeconds": 0.000044735 + "connectionEstablishedSeconds": 0.063954564, + "uploadSeconds": 0.124624473, + "downloadSeconds": 0.000064727 }, { - "connectionEstablishedSeconds": 0.062587419, - "uploadSeconds": 0.121969334, - "downloadSeconds": 0.000041428 + "connectionEstablishedSeconds": 0.06528402, + "uploadSeconds": 0.127312275, + "downloadSeconds": 0.00005077 }, { - "connectionEstablishedSeconds": 0.065961086, - "uploadSeconds": 0.128735485, - "downloadSeconds": 0.000046919 + "connectionEstablishedSeconds": 0.060914492, + "uploadSeconds": 0.118802532, + "downloadSeconds": 0.000050276 }, { - "connectionEstablishedSeconds": 0.063503642, - "uploadSeconds": 0.123728438, - "downloadSeconds": 0.000043632 + "connectionEstablishedSeconds": 0.064429579, + "uploadSeconds": 0.125557722, + "downloadSeconds": 0.000050261 }, { - "connectionEstablishedSeconds": 0.060113546, - "uploadSeconds": 0.116927809, - "downloadSeconds": 0.000057169 + "connectionEstablishedSeconds": 0.061555485, + "uploadSeconds": 0.120310524, + "downloadSeconds": 0.000047265 }, { - "connectionEstablishedSeconds": 0.061635441, - "uploadSeconds": 0.120208205, - "downloadSeconds": 0.00010044 + "connectionEstablishedSeconds": 0.06409562, + "uploadSeconds": 0.12501898, + "downloadSeconds": 0.000043125 }, { - "connectionEstablishedSeconds": 0.063677554, - "uploadSeconds": 0.124053914, - "downloadSeconds": 0.000050868 + "connectionEstablishedSeconds": 0.065945492, + "uploadSeconds": 0.12862795, + "downloadSeconds": 0.000058074 }, { - "connectionEstablishedSeconds": 0.065183396, - "uploadSeconds": 0.12708526, - "downloadSeconds": 0.000044888 + "connectionEstablishedSeconds": 0.063566291, + "uploadSeconds": 0.123841265, + "downloadSeconds": 0.000086991 }, { - "connectionEstablishedSeconds": 0.064433094, - "uploadSeconds": 0.125591109, - "downloadSeconds": 0.000054742 + "connectionEstablishedSeconds": 0.06396013, + "uploadSeconds": 0.124567615, + "downloadSeconds": 0.000046787 }, { - "connectionEstablishedSeconds": 0.063914601, - "uploadSeconds": 0.124234774, - "downloadSeconds": 0.000065223 + "connectionEstablishedSeconds": 0.064704388, + "uploadSeconds": 0.126210911, + "downloadSeconds": 0.000043862 }, { - "connectionEstablishedSeconds": 0.060867402, - "uploadSeconds": 0.118631418, - "downloadSeconds": 0.00006135 + "connectionEstablishedSeconds": 0.065603676, + "uploadSeconds": 0.127953971, + "downloadSeconds": 0.000046123 }, { - "connectionEstablishedSeconds": 0.064661226, - "uploadSeconds": 0.12598699, - "downloadSeconds": 0.000044281 + "connectionEstablishedSeconds": 0.063338141, + "uploadSeconds": 0.123503336, + "downloadSeconds": 0.000072595 }, { - "connectionEstablishedSeconds": 0.065515644, - "uploadSeconds": 0.128063708, - "downloadSeconds": 0.000044676 + "connectionEstablishedSeconds": 0.061068522, + "uploadSeconds": 0.118627679, + "downloadSeconds": 0.000045601 }, { - "connectionEstablishedSeconds": 0.064469964, - "uploadSeconds": 0.125701776, - "downloadSeconds": 0.000048991 + "connectionEstablishedSeconds": 0.065999822, + "uploadSeconds": 0.128847246, + "downloadSeconds": 0.000045366 }, { - "connectionEstablishedSeconds": 0.065245431, - "uploadSeconds": 0.127041621, - "downloadSeconds": 0.000056653 + "connectionEstablishedSeconds": 0.06565487, + "uploadSeconds": 0.124021885, + "downloadSeconds": 0.00004433 }, { - "connectionEstablishedSeconds": 0.064494485, - "uploadSeconds": 0.125738483, - "downloadSeconds": 0.000076911 + "connectionEstablishedSeconds": 0.06358014, + "uploadSeconds": 0.123966016, + "downloadSeconds": 0.000044329 }, { - "connectionEstablishedSeconds": 0.064877096, - "uploadSeconds": 0.12664143, - "downloadSeconds": 0.00004586 + "connectionEstablishedSeconds": 0.064945395, + "uploadSeconds": 0.126818384, + "downloadSeconds": 0.00009595 }, { - "connectionEstablishedSeconds": 0.063684388, - "uploadSeconds": 0.124312679, - "downloadSeconds": 0.000068558 + "connectionEstablishedSeconds": 0.065370762, + "uploadSeconds": 0.127670679, + "downloadSeconds": 0.000044455 }, { - "connectionEstablishedSeconds": 0.064394283, - "uploadSeconds": 0.125685297, - "downloadSeconds": 0.000047193 + "connectionEstablishedSeconds": 0.066651519, + "uploadSeconds": 0.13026552, + "downloadSeconds": 0.000048681 }, { - "connectionEstablishedSeconds": 0.064935148, - "uploadSeconds": 0.126808038, - "downloadSeconds": 0.000044662 + "connectionEstablishedSeconds": 0.065453225, + "uploadSeconds": 0.127765453, + "downloadSeconds": 0.00007099 }, { - "connectionEstablishedSeconds": 0.065173993, - "uploadSeconds": 0.127079133, - "downloadSeconds": 0.000046756 + "connectionEstablishedSeconds": 0.064952824, + "uploadSeconds": 0.126515726, + "downloadSeconds": 0.000046547 }, { - "connectionEstablishedSeconds": 0.063725706, - "uploadSeconds": 0.124510166, - "downloadSeconds": 0.000061739 + "connectionEstablishedSeconds": 0.064761833, + "uploadSeconds": 0.126296185, + "downloadSeconds": 0.00005516 }, { - "connectionEstablishedSeconds": 0.06343755, - "uploadSeconds": 0.123655096, - "downloadSeconds": 0.000051849 + "connectionEstablishedSeconds": 0.065274445, + "uploadSeconds": 0.127332678, + "downloadSeconds": 0.000077114 }, { - "connectionEstablishedSeconds": 0.065352365, - "uploadSeconds": 0.127504892, - "downloadSeconds": 0.000061346 + "connectionEstablishedSeconds": 0.065084284, + "uploadSeconds": 0.126512934, + "downloadSeconds": 0.000083062 }, { - "connectionEstablishedSeconds": 0.065783236, - "uploadSeconds": 0.128499342, - "downloadSeconds": 0.000051394 + "connectionEstablishedSeconds": 0.064347611, + "uploadSeconds": 0.125467059, + "downloadSeconds": 0.000044846 }, { - "connectionEstablishedSeconds": 0.065065235, - "uploadSeconds": 0.126698515, - "downloadSeconds": 0.000062773 + "connectionEstablishedSeconds": 0.06547493, + "uploadSeconds": 0.127802231, + "downloadSeconds": 0.000056509 }, { - "connectionEstablishedSeconds": 0.065970178, - "uploadSeconds": 0.128634765, - "downloadSeconds": 0.000051208 + "connectionEstablishedSeconds": 0.062503736, + "uploadSeconds": 0.121880331, + "downloadSeconds": 0.000052613 }, { - "connectionEstablishedSeconds": 0.064967178, - "uploadSeconds": 0.126737755, - "downloadSeconds": 0.000058531 + "connectionEstablishedSeconds": 0.06395318, + "uploadSeconds": 0.124689129, + "downloadSeconds": 0.000063323 }, { - "connectionEstablishedSeconds": 0.063823739, - "uploadSeconds": 0.124666751, - "downloadSeconds": 0.000066499 + "connectionEstablishedSeconds": 0.061711421, + "uploadSeconds": 0.120229173, + "downloadSeconds": 0.000044942 }, { - "connectionEstablishedSeconds": 0.064303025, - "uploadSeconds": 0.125377321, - "downloadSeconds": 0.000065829 + "connectionEstablishedSeconds": 0.066054783, + "uploadSeconds": 0.128740808, + "downloadSeconds": 0.000059915 }, { - "connectionEstablishedSeconds": 0.063231758, - "uploadSeconds": 0.123401045, - "downloadSeconds": 0.000044451 + "connectionEstablishedSeconds": 0.065170274, + "uploadSeconds": 0.126444731, + "downloadSeconds": 0.000046612 }, { - "connectionEstablishedSeconds": 0.065238466, - "uploadSeconds": 0.127331459, - "downloadSeconds": 0.000069124 + "connectionEstablishedSeconds": 0.063112, + "uploadSeconds": 0.123124184, + "downloadSeconds": 0.000044343 }, { - "connectionEstablishedSeconds": 0.064653307, - "uploadSeconds": 0.126187794, - "downloadSeconds": 0.000055878 + "connectionEstablishedSeconds": 0.063827286, + "uploadSeconds": 0.123313061, + "downloadSeconds": 0.000058335 }, { - "connectionEstablishedSeconds": 0.064352031, - "uploadSeconds": 0.125579134, - "downloadSeconds": 0.000046481 + "connectionEstablishedSeconds": 0.065271355, + "uploadSeconds": 0.126296789, + "downloadSeconds": 0.000052691 }, { - "connectionEstablishedSeconds": 0.065965326, - "uploadSeconds": 0.128712002, - "downloadSeconds": 0.000045973 + "connectionEstablishedSeconds": 0.065771643, + "uploadSeconds": 0.127354604, + "downloadSeconds": 0.000043724 }, { - "connectionEstablishedSeconds": 0.064485753, - "uploadSeconds": 0.125675389, - "downloadSeconds": 0.000070212 + "connectionEstablishedSeconds": 0.06394245, + "uploadSeconds": 0.124651981, + "downloadSeconds": 0.000059016 }, { - "connectionEstablishedSeconds": 0.061702269, - "uploadSeconds": 0.120323005, - "downloadSeconds": 0.000049601 + "connectionEstablishedSeconds": 0.062731271, + "uploadSeconds": 0.122359724, + "downloadSeconds": 0.000044793 }, { - "connectionEstablishedSeconds": 0.06361865, - "uploadSeconds": 0.124047595, - "downloadSeconds": 0.000044623 + "connectionEstablishedSeconds": 0.062771161, + "uploadSeconds": 0.122219529, + "downloadSeconds": 0.00004256 }, { - "connectionEstablishedSeconds": 0.061886618, - "uploadSeconds": 0.12049852, - "downloadSeconds": 0.000044687 + "connectionEstablishedSeconds": 0.064469366, + "uploadSeconds": 0.125827086, + "downloadSeconds": 0.000063902 }, { - "connectionEstablishedSeconds": 0.065386186, - "uploadSeconds": 0.127658217, - "downloadSeconds": 0.000042701 + "connectionEstablishedSeconds": 0.062417903, + "uploadSeconds": 0.121725202, + "downloadSeconds": 0.000042352 }, { - "connectionEstablishedSeconds": 0.065599662, - "uploadSeconds": 0.127732747, - "downloadSeconds": 0.000039307 + "connectionEstablishedSeconds": 0.064515496, + "uploadSeconds": 0.125827421, + "downloadSeconds": 0.000046047 }, { - "connectionEstablishedSeconds": 0.06496517, - "uploadSeconds": 0.126670341, - "downloadSeconds": 0.000068866 + "connectionEstablishedSeconds": 0.065949198, + "uploadSeconds": 0.128662241, + "downloadSeconds": 0.000046049 }, { - "connectionEstablishedSeconds": 0.064304167, - "uploadSeconds": 0.12559832, - "downloadSeconds": 0.000061641 + "connectionEstablishedSeconds": 0.064630197, + "uploadSeconds": 0.12592958, + "downloadSeconds": 0.00007051 }, { - "connectionEstablishedSeconds": 0.062582496, - "uploadSeconds": 0.122043851, - "downloadSeconds": 0.000075862 + "connectionEstablishedSeconds": 0.063468384, + "uploadSeconds": 0.123866641, + "downloadSeconds": 0.000043237 }, { - "connectionEstablishedSeconds": 0.061798651, - "uploadSeconds": 0.120463397, - "downloadSeconds": 0.000058025 + "connectionEstablishedSeconds": 0.063773005, + "uploadSeconds": 0.124486821, + "downloadSeconds": 0.000043579 }, { - "connectionEstablishedSeconds": 0.065998197, - "uploadSeconds": 0.128827992, - "downloadSeconds": 0.000057713 + "connectionEstablishedSeconds": 0.063834463, + "uploadSeconds": 0.124810566, + "downloadSeconds": 0.000044652 }, { - "connectionEstablishedSeconds": 0.064320426, - "uploadSeconds": 0.12555849, - "downloadSeconds": 0.000043647 + "connectionEstablishedSeconds": 0.065495272, + "uploadSeconds": 0.125848225, + "downloadSeconds": 0.000053273 }, { - "connectionEstablishedSeconds": 0.064770212, - "uploadSeconds": 0.126704859, - "downloadSeconds": 0.000049868 + "connectionEstablishedSeconds": 0.06621194, + "uploadSeconds": 0.128738202, + "downloadSeconds": 0.000043982 }, { - "connectionEstablishedSeconds": 0.066170346, - "uploadSeconds": 0.129157357, - "downloadSeconds": 0.00006461 + "connectionEstablishedSeconds": 0.061972145, + "uploadSeconds": 0.120902655, + "downloadSeconds": 0.000044809 }, { - "connectionEstablishedSeconds": 0.065782602, - "uploadSeconds": 0.128516874, - "downloadSeconds": 0.000044179 + "connectionEstablishedSeconds": 0.063632943, + "uploadSeconds": 0.124133569, + "downloadSeconds": 0.000072365 }, { - "connectionEstablishedSeconds": 0.062308974, - "uploadSeconds": 0.121684367, - "downloadSeconds": 0.000055255 + "connectionEstablishedSeconds": 0.064791542, + "uploadSeconds": 0.126365102, + "downloadSeconds": 0.000056162 }, { - "connectionEstablishedSeconds": 0.065101312, - "uploadSeconds": 0.126841715, - "downloadSeconds": 0.000046293 + "connectionEstablishedSeconds": 0.066517947, + "uploadSeconds": 0.129490792, + "downloadSeconds": 0.000064983 }, { - "connectionEstablishedSeconds": 0.064022899, - "uploadSeconds": 0.124769379, - "downloadSeconds": 0.000042282 + "connectionEstablishedSeconds": 0.065478186, + "uploadSeconds": 0.127995501, + "downloadSeconds": 0.000045633 }, { - "connectionEstablishedSeconds": 0.063785913, - "uploadSeconds": 0.124487175, - "downloadSeconds": 0.000046295 + "connectionEstablishedSeconds": 0.06283253, + "uploadSeconds": 0.122619861, + "downloadSeconds": 0.000049629 }, { - "connectionEstablishedSeconds": 0.062254414, - "uploadSeconds": 0.121345959, - "downloadSeconds": 0.000044065 + "connectionEstablishedSeconds": 0.065423127, + "uploadSeconds": 0.127431685, + "downloadSeconds": 0.000066335 }, { - "connectionEstablishedSeconds": 0.065335209, - "uploadSeconds": 0.127234463, - "downloadSeconds": 0.000050635 + "connectionEstablishedSeconds": 0.063486091, + "uploadSeconds": 0.123786664, + "downloadSeconds": 0.000064869 }, { - "connectionEstablishedSeconds": 0.063069683, - "uploadSeconds": 0.122983411, - "downloadSeconds": 0.000054152 + "connectionEstablishedSeconds": 0.065313009, + "uploadSeconds": 0.127496203, + "downloadSeconds": 0.000047152 }, { - "connectionEstablishedSeconds": 0.066118387, - "uploadSeconds": 0.129152211, - "downloadSeconds": 0.000046137 + "connectionEstablishedSeconds": 0.064726366, + "uploadSeconds": 0.126332969, + "downloadSeconds": 0.000038565 }, { - "connectionEstablishedSeconds": 0.06307401, - "uploadSeconds": 0.122988555, - "downloadSeconds": 0.000046959 + "connectionEstablishedSeconds": 0.06622344, + "uploadSeconds": 0.129419106, + "downloadSeconds": 0.000044283 }, { - "connectionEstablishedSeconds": 0.062981886, - "uploadSeconds": 0.122672461, - "downloadSeconds": 0.000067137 + "connectionEstablishedSeconds": 0.063535445, + "uploadSeconds": 0.123994324, + "downloadSeconds": 0.000069228 }, { - "connectionEstablishedSeconds": 0.062563236, - "uploadSeconds": 0.122018618, - "downloadSeconds": 0.000053972 + "connectionEstablishedSeconds": 0.063562961, + "uploadSeconds": 0.123834119, + "downloadSeconds": 0.000059735 }, { - "connectionEstablishedSeconds": 0.062639675, - "uploadSeconds": 0.122164465, - "downloadSeconds": 0.000050684 + "connectionEstablishedSeconds": 0.064182398, + "uploadSeconds": 0.125322493, + "downloadSeconds": 0.000042194 }, { - "connectionEstablishedSeconds": 0.065211957, - "uploadSeconds": 0.127131818, - "downloadSeconds": 0.000044262 + "connectionEstablishedSeconds": 0.063652315, + "uploadSeconds": 0.124026321, + "downloadSeconds": 0.000045113 }, { - "connectionEstablishedSeconds": 0.066136058, - "uploadSeconds": 0.12916792, - "downloadSeconds": 0.000049405 + "connectionEstablishedSeconds": 0.061893428, + "uploadSeconds": 0.120831043, + "downloadSeconds": 0.000045085 }, { - "connectionEstablishedSeconds": 0.065200996, - "uploadSeconds": 0.127128813, - "downloadSeconds": 0.000046609 + "connectionEstablishedSeconds": 0.061594396, + "uploadSeconds": 0.119906316, + "downloadSeconds": 0.000057942 }, { - "connectionEstablishedSeconds": 0.063393044, - "uploadSeconds": 0.123642137, - "downloadSeconds": 0.000040417 + "connectionEstablishedSeconds": 0.063097354, + "uploadSeconds": 0.123129569, + "downloadSeconds": 0.000044125 }, { - "connectionEstablishedSeconds": 0.061455141, - "uploadSeconds": 0.119868598, - "downloadSeconds": 0.000045237 + "connectionEstablishedSeconds": 0.064726062, + "uploadSeconds": 0.12618174, + "downloadSeconds": 0.000089514 }, { - "connectionEstablishedSeconds": 0.063550234, - "uploadSeconds": 0.123857917, - "downloadSeconds": 0.000043898 + "connectionEstablishedSeconds": 0.061963248, + "uploadSeconds": 0.120682982, + "downloadSeconds": 0.000081561 }, { - "connectionEstablishedSeconds": 0.065183734, - "uploadSeconds": 0.127223855, - "downloadSeconds": 0.000047105 + "connectionEstablishedSeconds": 0.062831478, + "uploadSeconds": 0.122302397, + "downloadSeconds": 0.00004533 }, { - "connectionEstablishedSeconds": 0.066121179, - "uploadSeconds": 0.129125684, - "downloadSeconds": 0.000040685 + "connectionEstablishedSeconds": 0.064657911, + "uploadSeconds": 0.126325536, + "downloadSeconds": 0.00007649 }, { - "connectionEstablishedSeconds": 0.064451883, - "uploadSeconds": 0.12564272, - "downloadSeconds": 0.000073099 + "connectionEstablishedSeconds": 0.063226904, + "uploadSeconds": 0.12336988, + "downloadSeconds": 0.000077946 }, { - "connectionEstablishedSeconds": 0.062976407, - "uploadSeconds": 0.122649689, - "downloadSeconds": 0.000045305 + "connectionEstablishedSeconds": 0.064407685, + "uploadSeconds": 0.125550312, + "downloadSeconds": 0.000066191 }, { - "connectionEstablishedSeconds": 0.063653225, - "uploadSeconds": 0.124112745, - "downloadSeconds": 0.000061768 + "connectionEstablishedSeconds": 0.065448969, + "uploadSeconds": 0.126620456, + "downloadSeconds": 0.000044801 }, { - "connectionEstablishedSeconds": 0.06612814, - "uploadSeconds": 0.129159697, - "downloadSeconds": 0.000068674 + "connectionEstablishedSeconds": 0.06512996, + "uploadSeconds": 0.126012246, + "downloadSeconds": 0.000055354 }, { - "connectionEstablishedSeconds": 0.065257504, - "uploadSeconds": 0.127275972, - "downloadSeconds": 0.000044804 + "connectionEstablishedSeconds": 0.06321954, + "uploadSeconds": 0.12325113, + "downloadSeconds": 0.000057514 }, { - "connectionEstablishedSeconds": 0.063792408, - "uploadSeconds": 0.124254596, - "downloadSeconds": 0.000043881 + "connectionEstablishedSeconds": 0.0636593, + "uploadSeconds": 0.124350779, + "downloadSeconds": 0.000047263 }, { - "connectionEstablishedSeconds": 0.063544629, - "uploadSeconds": 0.124036509, - "downloadSeconds": 0.000075228 + "connectionEstablishedSeconds": 0.06608048, + "uploadSeconds": 0.128730179, + "downloadSeconds": 0.000067914 } ], "implementation": "rust-libp2p-quinn", @@ -2504,503 +2504,503 @@ "result": [ { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187336474, - "downloadSeconds": 0.000027001 + "uploadSeconds": 0.189267147, + "downloadSeconds": 0.000023118 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188607583, - "downloadSeconds": 0.000019844 + "uploadSeconds": 0.184763191, + "downloadSeconds": 0.000019722 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18466744, - "downloadSeconds": 0.000016649 + "uploadSeconds": 0.184888519, + "downloadSeconds": 0.00002075 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184762106, - "downloadSeconds": 0.000030501 + "uploadSeconds": 0.187164931, + "downloadSeconds": 0.000019868 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182522595, - "downloadSeconds": 0.00001647 + "uploadSeconds": 0.191404983, + "downloadSeconds": 0.000021542 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.180723038, - "downloadSeconds": 0.000026391 + "uploadSeconds": 0.191564605, + "downloadSeconds": 0.000021492 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188368934, - "downloadSeconds": 0.000017424 + "uploadSeconds": 0.191431829, + "downloadSeconds": 0.000023755 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186429652, - "downloadSeconds": 0.000017475 + "uploadSeconds": 0.188935634, + "downloadSeconds": 0.000019982 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182650717, - "downloadSeconds": 0.000019971 + "uploadSeconds": 0.183258271, + "downloadSeconds": 0.00001929 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189152786, - "downloadSeconds": 0.00001974 + "uploadSeconds": 0.191659424, + "downloadSeconds": 0.000029746 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188810984, - "downloadSeconds": 0.000019274 + "uploadSeconds": 0.194543249, + "downloadSeconds": 0.000020293 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187238723, - "downloadSeconds": 0.000017663 + "uploadSeconds": 0.192386457, + "downloadSeconds": 0.000020272 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184754598, - "downloadSeconds": 0.000026468 + "uploadSeconds": 0.184510661, + "downloadSeconds": 0.000017055 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184773665, - "downloadSeconds": 0.000021201 + "uploadSeconds": 0.191485559, + "downloadSeconds": 0.000026189 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192364079, - "downloadSeconds": 0.000020463 + "uploadSeconds": 0.189345722, + "downloadSeconds": 0.000020576 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192014779, - "downloadSeconds": 0.00002401 + "uploadSeconds": 0.189079938, + "downloadSeconds": 0.000016478 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183385091, - "downloadSeconds": 0.000024884 + "uploadSeconds": 0.183037247, + "downloadSeconds": 0.000026998 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188721173, - "downloadSeconds": 0.000025917 + "uploadSeconds": 0.189148633, + "downloadSeconds": 0.000020164 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193474904, - "downloadSeconds": 0.00001762 + "uploadSeconds": 0.186289142, + "downloadSeconds": 0.000014269 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182962082, - "downloadSeconds": 0.000029005 + "uploadSeconds": 0.187123218, + "downloadSeconds": 0.000021729 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188652552, - "downloadSeconds": 0.000022818 + "uploadSeconds": 0.182348165, + "downloadSeconds": 0.000016478 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186364742, - "downloadSeconds": 0.000029362 + "uploadSeconds": 0.186190262, + "downloadSeconds": 0.000016799 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.195843479, - "downloadSeconds": 0.000019829 + "uploadSeconds": 0.191954535, + "downloadSeconds": 0.000020295 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.179663823, - "downloadSeconds": 0.000021055 + "uploadSeconds": 0.185084289, + "downloadSeconds": 0.000021399 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18746598, - "downloadSeconds": 0.000020241 + "uploadSeconds": 0.19662104, + "downloadSeconds": 0.000021309 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192316325, - "downloadSeconds": 0.000026247 + "uploadSeconds": 0.190851966, + "downloadSeconds": 0.000022305 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190017759, - "downloadSeconds": 0.000020245 + "uploadSeconds": 0.190039613, + "downloadSeconds": 0.000017184 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185414721, - "downloadSeconds": 0.000019234 + "uploadSeconds": 0.193494836, + "downloadSeconds": 0.000022197 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191582017, - "downloadSeconds": 0.000021056 + "uploadSeconds": 0.195363583, + "downloadSeconds": 0.000019441 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.181537417, - "downloadSeconds": 0.000025969 + "uploadSeconds": 0.193577147, + "downloadSeconds": 0.00002684 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190118377, - "downloadSeconds": 0.000020703 + "uploadSeconds": 0.193039679, + "downloadSeconds": 0.000020139 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182609953, - "downloadSeconds": 0.000020388 + "uploadSeconds": 0.193534393, + "downloadSeconds": 0.000020874 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184658949, - "downloadSeconds": 0.000026633 + "uploadSeconds": 0.189257972, + "downloadSeconds": 0.000020494 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186113078, - "downloadSeconds": 0.000018084 + "uploadSeconds": 0.193975312, + "downloadSeconds": 0.000020359 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190350806, - "downloadSeconds": 0.000017912 + "uploadSeconds": 0.182411806, + "downloadSeconds": 0.000026956 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192394434, - "downloadSeconds": 0.000020188 + "uploadSeconds": 0.184638929, + "downloadSeconds": 0.000026197 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187480235, - "downloadSeconds": 0.000020475 + "uploadSeconds": 0.190320061, + "downloadSeconds": 0.000028195 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.178086179, - "downloadSeconds": 0.000017823 + "uploadSeconds": 0.188202659, + "downloadSeconds": 0.000020412 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193497257, - "downloadSeconds": 0.00002246 + "uploadSeconds": 0.187990159, + "downloadSeconds": 0.000017974 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188899742, - "downloadSeconds": 0.000025437 + "uploadSeconds": 0.190462373, + "downloadSeconds": 0.000020444 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189408733, - "downloadSeconds": 0.000025956 + "uploadSeconds": 0.188917162, + "downloadSeconds": 0.000015894 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191247094, - "downloadSeconds": 0.000016695 + "uploadSeconds": 0.180019634, + "downloadSeconds": 0.000020097 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18511824, - "downloadSeconds": 0.000027156 + "uploadSeconds": 0.181175045, + "downloadSeconds": 0.000026061 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184173921, - "downloadSeconds": 0.000026291 + "uploadSeconds": 0.181380335, + "downloadSeconds": 0.000019573 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191214041, - "downloadSeconds": 0.000025633 + "uploadSeconds": 0.189190864, + "downloadSeconds": 0.000027496 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191231499, - "downloadSeconds": 0.000018728 + "uploadSeconds": 0.191000274, + "downloadSeconds": 0.000020337 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.180318665, - "downloadSeconds": 0.000026797 + "uploadSeconds": 0.191000864, + "downloadSeconds": 0.000021126 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183687341, - "downloadSeconds": 0.000020061 + "uploadSeconds": 0.192291796, + "downloadSeconds": 0.000027606 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188828337, - "downloadSeconds": 0.000020648 + "uploadSeconds": 0.194502125, + "downloadSeconds": 0.000026952 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188139511, - "downloadSeconds": 0.000016889 + "uploadSeconds": 0.191148976, + "downloadSeconds": 0.00002249 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189151884, - "downloadSeconds": 0.000020564 + "uploadSeconds": 0.184539258, + "downloadSeconds": 0.000022786 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188649231, - "downloadSeconds": 0.000021825 + "uploadSeconds": 0.189964347, + "downloadSeconds": 0.000023144 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188991477, - "downloadSeconds": 0.000036717 + "uploadSeconds": 0.190095005, + "downloadSeconds": 0.00002704 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193672712, - "downloadSeconds": 0.000026065 + "uploadSeconds": 0.183948838, + "downloadSeconds": 0.00002712 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.194298014, - "downloadSeconds": 0.000020063 + "uploadSeconds": 0.191614718, + "downloadSeconds": 0.000030041 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183158008, - "downloadSeconds": 0.000020925 + "uploadSeconds": 0.191666532, + "downloadSeconds": 0.000026662 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.181886457, - "downloadSeconds": 0.000019911 + "uploadSeconds": 0.191578559, + "downloadSeconds": 0.000026833 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186204957, - "downloadSeconds": 0.000019998 + "uploadSeconds": 0.19594538, + "downloadSeconds": 0.000026989 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.181372742, - "downloadSeconds": 0.000020262 + "uploadSeconds": 0.18409524, + "downloadSeconds": 0.000018636 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190978423, - "downloadSeconds": 0.000025949 + "uploadSeconds": 0.183135021, + "downloadSeconds": 0.00002243 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.181181876, - "downloadSeconds": 0.000021136 + "uploadSeconds": 0.184593702, + "downloadSeconds": 0.000016374 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184800921, - "downloadSeconds": 0.000022716 + "uploadSeconds": 0.194286742, + "downloadSeconds": 0.000026169 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.180923207, - "downloadSeconds": 0.000021249 + "uploadSeconds": 0.183960499, + "downloadSeconds": 0.000020744 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190089021, - "downloadSeconds": 0.000026065 + "uploadSeconds": 0.182023084, + "downloadSeconds": 0.000016307 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190248416, - "downloadSeconds": 0.000020957 + "uploadSeconds": 0.187481049, + "downloadSeconds": 0.000020307 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185732568, - "downloadSeconds": 0.000019825 + "uploadSeconds": 0.196164422, + "downloadSeconds": 0.000020252 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.180522243, - "downloadSeconds": 0.000020458 + "uploadSeconds": 0.183049657, + "downloadSeconds": 0.000016652 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187214506, - "downloadSeconds": 0.000017789 + "uploadSeconds": 0.186614428, + "downloadSeconds": 0.000021321 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185276533, - "downloadSeconds": 0.000020344 + "uploadSeconds": 0.193611179, + "downloadSeconds": 0.00002088 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184465285, - "downloadSeconds": 0.000020254 + "uploadSeconds": 0.188991353, + "downloadSeconds": 0.000026263 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192350508, - "downloadSeconds": 0.000021908 + "uploadSeconds": 0.18446024, + "downloadSeconds": 0.000025945 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185707562, - "downloadSeconds": 0.000026446 + "uploadSeconds": 0.192896099, + "downloadSeconds": 0.000026597 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190142326, - "downloadSeconds": 0.000020709 + "uploadSeconds": 0.189832501, + "downloadSeconds": 0.000019777 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18709492, - "downloadSeconds": 0.000026824 + "uploadSeconds": 0.188400091, + "downloadSeconds": 0.000025209 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187463197, - "downloadSeconds": 0.000027344 + "uploadSeconds": 0.184789988, + "downloadSeconds": 0.000025622 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189165488, - "downloadSeconds": 0.000020685 + "uploadSeconds": 0.19162245, + "downloadSeconds": 0.000025873 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.180210589, - "downloadSeconds": 0.000026518 + "uploadSeconds": 0.190383583, + "downloadSeconds": 0.000022718 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182347594, - "downloadSeconds": 0.00002087 + "uploadSeconds": 0.185777002, + "downloadSeconds": 0.000020386 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185115576, - "downloadSeconds": 0.000019386 + "uploadSeconds": 0.192800999, + "downloadSeconds": 0.000020362 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188803481, - "downloadSeconds": 0.000025393 + "uploadSeconds": 0.191621888, + "downloadSeconds": 0.000019744 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184401601, - "downloadSeconds": 0.000019671 + "uploadSeconds": 0.189799668, + "downloadSeconds": 0.000026076 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188300063, - "downloadSeconds": 0.0000201 + "uploadSeconds": 0.190284254, + "downloadSeconds": 0.000025595 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188984689, - "downloadSeconds": 0.000019144 + "uploadSeconds": 0.187427433, + "downloadSeconds": 0.00001935 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189069992, - "downloadSeconds": 0.00001937 + "uploadSeconds": 0.183066846, + "downloadSeconds": 0.000024408 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183233536, - "downloadSeconds": 0.000025663 + "uploadSeconds": 0.183763717, + "downloadSeconds": 0.000023137 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188350134, - "downloadSeconds": 0.000020338 + "uploadSeconds": 0.191519447, + "downloadSeconds": 0.000031777 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190040441, - "downloadSeconds": 0.000022649 + "uploadSeconds": 0.185958147, + "downloadSeconds": 0.000020353 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.1890317, - "downloadSeconds": 0.000025625 + "uploadSeconds": 0.191672227, + "downloadSeconds": 0.00002107 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186303741, - "downloadSeconds": 0.000030524 + "uploadSeconds": 0.193992936, + "downloadSeconds": 0.000023003 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.195865408, - "downloadSeconds": 0.000019802 + "uploadSeconds": 0.188363887, + "downloadSeconds": 0.000017526 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192835011, - "downloadSeconds": 0.000025245 + "uploadSeconds": 0.185904391, + "downloadSeconds": 0.000036649 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18650235, - "downloadSeconds": 0.000012228 + "uploadSeconds": 0.182140279, + "downloadSeconds": 0.000019992 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.181285383, - "downloadSeconds": 0.000025743 + "uploadSeconds": 0.187772286, + "downloadSeconds": 0.000027301 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191334621, - "downloadSeconds": 0.000020166 + "uploadSeconds": 0.18482486, + "downloadSeconds": 0.000017292 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.180964155, - "downloadSeconds": 0.000015831 + "uploadSeconds": 0.191987011, + "downloadSeconds": 0.000015975 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182563482, - "downloadSeconds": 0.000019721 + "uploadSeconds": 0.187062789, + "downloadSeconds": 0.000019881 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.176758052, - "downloadSeconds": 0.00001974 + "uploadSeconds": 0.196147068, + "downloadSeconds": 0.000026193 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188819774, - "downloadSeconds": 0.000015973 + "uploadSeconds": 0.185321644, + "downloadSeconds": 0.000020158 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184503662, - "downloadSeconds": 0.00002682 + "uploadSeconds": 0.181423631, + "downloadSeconds": 0.000020315 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191513221, - "downloadSeconds": 0.000025511 + "uploadSeconds": 0.185474012, + "downloadSeconds": 0.000027516 } ], "implementation": "https", @@ -3010,504 +3010,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.249458553, - "uploadSeconds": 0.000028414, - "downloadSeconds": 0.122592612 + "connectionEstablishedSeconds": 0.256319993, + "uploadSeconds": 0.000047984, + "downloadSeconds": 0.125203567 }, { - "connectionEstablishedSeconds": 0.247312478, - "uploadSeconds": 0.000043668, - "downloadSeconds": 0.121909257 + "connectionEstablishedSeconds": 0.26011794, + "uploadSeconds": 0.000049981, + "downloadSeconds": 0.0640433 }, { - "connectionEstablishedSeconds": 0.258303483, - "uploadSeconds": 0.000054247, - "downloadSeconds": 0.06368402 + "connectionEstablishedSeconds": 0.238145162, + "uploadSeconds": 0.00003084, + "downloadSeconds": 0.058628427 }, { - "connectionEstablishedSeconds": 0.254822488, - "uploadSeconds": 0.000047655, - "downloadSeconds": 0.063303587 + "connectionEstablishedSeconds": 0.247161065, + "uploadSeconds": 0.00003178, + "downloadSeconds": 0.060937482 }, { - "connectionEstablishedSeconds": 0.25003933, - "uploadSeconds": 0.000049661, - "downloadSeconds": 0.062060265 + "connectionEstablishedSeconds": 0.250174636, + "uploadSeconds": 0.000054242, + "downloadSeconds": 0.061592374 }, { - "connectionEstablishedSeconds": 0.258359444, - "uploadSeconds": 0.000053778, - "downloadSeconds": 0.126816048 + "connectionEstablishedSeconds": 0.246869611, + "uploadSeconds": 0.00003407, + "downloadSeconds": 0.061178141 }, { - "connectionEstablishedSeconds": 0.254771593, - "uploadSeconds": 0.000049543, - "downloadSeconds": 0.06324348 + "connectionEstablishedSeconds": 0.251099399, + "uploadSeconds": 0.000064801, + "downloadSeconds": 0.062280095 }, { - "connectionEstablishedSeconds": 0.252118006, - "uploadSeconds": 0.000030447, - "downloadSeconds": 0.062157875 + "connectionEstablishedSeconds": 0.257778069, + "uploadSeconds": 0.000032702, + "downloadSeconds": 0.063586207 }, { - "connectionEstablishedSeconds": 0.255402749, - "uploadSeconds": 0.000032062, - "downloadSeconds": 0.125955001 + "connectionEstablishedSeconds": 0.253540087, + "uploadSeconds": 0.000031149, + "downloadSeconds": 0.124866694 }, { - "connectionEstablishedSeconds": 0.252831842, - "uploadSeconds": 0.00001656, - "downloadSeconds": 0.062768759 + "connectionEstablishedSeconds": 0.248484254, + "uploadSeconds": 0.000030364, + "downloadSeconds": 0.061302807 }, { - "connectionEstablishedSeconds": 0.252166391, - "uploadSeconds": 0.000050357, - "downloadSeconds": 0.124532495 + "connectionEstablishedSeconds": 0.242615189, + "uploadSeconds": 0.000056092, + "downloadSeconds": 0.060161978 }, { - "connectionEstablishedSeconds": 0.25944755, - "uploadSeconds": 0.000034168, - "downloadSeconds": 0.128243179 + "connectionEstablishedSeconds": 0.251453045, + "uploadSeconds": 0.000054791, + "downloadSeconds": 0.061898466 }, { - "connectionEstablishedSeconds": 0.247286603, - "uploadSeconds": 0.000026212, - "downloadSeconds": 0.060924231 + "connectionEstablishedSeconds": 0.249655031, + "uploadSeconds": 0.000030891, + "downloadSeconds": 0.123379222 }, { - "connectionEstablishedSeconds": 0.254367132, - "uploadSeconds": 0.000056844, - "downloadSeconds": 0.062637884 + "connectionEstablishedSeconds": 0.253996564, + "uploadSeconds": 0.000048189, + "downloadSeconds": 0.063398707 }, { - "connectionEstablishedSeconds": 0.244510209, - "uploadSeconds": 0.000029727, - "downloadSeconds": 0.120218298 + "connectionEstablishedSeconds": 0.258959438, + "uploadSeconds": 0.000033505, + "downloadSeconds": 0.064162684 }, { - "connectionEstablishedSeconds": 0.252494163, - "uploadSeconds": 0.000030221, - "downloadSeconds": 0.062203882 + "connectionEstablishedSeconds": 0.256679477, + "uploadSeconds": 0.000049404, + "downloadSeconds": 0.063350389 }, { - "connectionEstablishedSeconds": 0.248812777, - "uploadSeconds": 0.000030673, - "downloadSeconds": 0.06170967 + "connectionEstablishedSeconds": 0.243726925, + "uploadSeconds": 0.000027676, + "downloadSeconds": 0.059960918 }, { - "connectionEstablishedSeconds": 0.257495779, - "uploadSeconds": 0.000055482, - "downloadSeconds": 0.126361637 + "connectionEstablishedSeconds": 0.247914925, + "uploadSeconds": 0.000032532, + "downloadSeconds": 0.061055126 }, { - "connectionEstablishedSeconds": 0.252612125, - "uploadSeconds": 0.000054873, - "downloadSeconds": 0.062667614 + "connectionEstablishedSeconds": 0.248590749, + "uploadSeconds": 0.000051774, + "downloadSeconds": 0.121905796 }, { - "connectionEstablishedSeconds": 0.244278305, - "uploadSeconds": 0.000058882, - "downloadSeconds": 0.060501883 + "connectionEstablishedSeconds": 0.252480238, + "uploadSeconds": 0.000035087, + "downloadSeconds": 0.06267783 }, { - "connectionEstablishedSeconds": 0.254082685, - "uploadSeconds": 0.000047783, - "downloadSeconds": 0.125340527 + "connectionEstablishedSeconds": 0.253326074, + "uploadSeconds": 0.000028785, + "downloadSeconds": 0.062475809 }, { - "connectionEstablishedSeconds": 0.248797249, - "uploadSeconds": 0.000044238, - "downloadSeconds": 0.06155821 + "connectionEstablishedSeconds": 0.25855489, + "uploadSeconds": 0.000048855, + "downloadSeconds": 0.127678353 }, { - "connectionEstablishedSeconds": 0.248076016, - "uploadSeconds": 0.000031229, - "downloadSeconds": 0.061105653 + "connectionEstablishedSeconds": 0.257452377, + "uploadSeconds": 0.00003393, + "downloadSeconds": 0.063456048 }, { - "connectionEstablishedSeconds": 0.257100919, - "uploadSeconds": 0.000031849, - "downloadSeconds": 0.063796128 + "connectionEstablishedSeconds": 0.257838064, + "uploadSeconds": 0.000020589, + "downloadSeconds": 0.127401195 }, { - "connectionEstablishedSeconds": 0.259615268, - "uploadSeconds": 0.000026648, - "downloadSeconds": 0.064004581 + "connectionEstablishedSeconds": 0.257968545, + "uploadSeconds": 0.000021808, + "downloadSeconds": 0.064215353 }, { - "connectionEstablishedSeconds": 0.25828284, - "uploadSeconds": 0.000031248, - "downloadSeconds": 0.064109695 + "connectionEstablishedSeconds": 0.236236414, + "uploadSeconds": 0.00003058, + "downloadSeconds": 0.115828759 }, { - "connectionEstablishedSeconds": 0.236468414, - "uploadSeconds": 0.000050985, - "downloadSeconds": 0.058695418 + "connectionEstablishedSeconds": 0.253718395, + "uploadSeconds": 0.00002821, + "downloadSeconds": 0.062983137 }, { - "connectionEstablishedSeconds": 0.260843771, - "uploadSeconds": 0.000045929, - "downloadSeconds": 0.127693806 + "connectionEstablishedSeconds": 0.256885038, + "uploadSeconds": 0.000030515, + "downloadSeconds": 0.063400044 }, { - "connectionEstablishedSeconds": 0.25288058, - "uploadSeconds": 0.00004643, - "downloadSeconds": 0.062360243 + "connectionEstablishedSeconds": 0.25335717, + "uploadSeconds": 0.00005035, + "downloadSeconds": 0.125017792 }, { - "connectionEstablishedSeconds": 0.251751149, - "uploadSeconds": 0.000032993, - "downloadSeconds": 0.123518466 + "connectionEstablishedSeconds": 0.25202324, + "uploadSeconds": 0.000030034, + "downloadSeconds": 0.123716371 }, { - "connectionEstablishedSeconds": 0.251798916, - "uploadSeconds": 0.000051907, - "downloadSeconds": 0.124238038 + "connectionEstablishedSeconds": 0.255615485, + "uploadSeconds": 0.000030887, + "downloadSeconds": 0.063468488 }, { - "connectionEstablishedSeconds": 0.251814088, - "uploadSeconds": 0.000027468, - "downloadSeconds": 0.124336259 + "connectionEstablishedSeconds": 0.246457235, + "uploadSeconds": 0.0000341, + "downloadSeconds": 0.061175681 }, { - "connectionEstablishedSeconds": 0.243298897, - "uploadSeconds": 0.000043435, - "downloadSeconds": 0.059843532 + "connectionEstablishedSeconds": 0.246728016, + "uploadSeconds": 0.000052148, + "downloadSeconds": 0.061215407 }, { - "connectionEstablishedSeconds": 0.234658833, - "uploadSeconds": 0.000043873, - "downloadSeconds": 0.057796906 + "connectionEstablishedSeconds": 0.258042591, + "uploadSeconds": 0.000051413, + "downloadSeconds": 0.064014784 }, { - "connectionEstablishedSeconds": 0.250618664, - "uploadSeconds": 0.000021416, - "downloadSeconds": 0.062229288 + "connectionEstablishedSeconds": 0.252486402, + "uploadSeconds": 0.000029743, + "downloadSeconds": 0.06271285 }, { - "connectionEstablishedSeconds": 0.260245362, - "uploadSeconds": 0.000048069, - "downloadSeconds": 0.064103982 + "connectionEstablishedSeconds": 0.262881587, + "uploadSeconds": 0.000050906, + "downloadSeconds": 0.129047822 }, { - "connectionEstablishedSeconds": 0.242188772, - "uploadSeconds": 0.000053124, - "downloadSeconds": 0.11868107 + "connectionEstablishedSeconds": 0.261647157, + "uploadSeconds": 0.000027078, + "downloadSeconds": 0.065049406 }, { - "connectionEstablishedSeconds": 0.255565283, - "uploadSeconds": 0.000015988, - "downloadSeconds": 0.063286264 + "connectionEstablishedSeconds": 0.246188697, + "uploadSeconds": 0.000055479, + "downloadSeconds": 0.120586801 }, { - "connectionEstablishedSeconds": 0.258570334, - "uploadSeconds": 0.000056939, - "downloadSeconds": 0.06419182 + "connectionEstablishedSeconds": 0.258424654, + "uploadSeconds": 0.000045915, + "downloadSeconds": 0.064133503 }, { - "connectionEstablishedSeconds": 0.259778805, - "uploadSeconds": 0.00002641, - "downloadSeconds": 0.064507637 + "connectionEstablishedSeconds": 0.258470198, + "uploadSeconds": 0.000053064, + "downloadSeconds": 0.126843822 }, { - "connectionEstablishedSeconds": 0.25727772, - "uploadSeconds": 0.000019691, - "downloadSeconds": 0.063399477 + "connectionEstablishedSeconds": 0.247970244, + "uploadSeconds": 0.000026312, + "downloadSeconds": 0.121542143 }, { - "connectionEstablishedSeconds": 0.248847064, - "uploadSeconds": 0.000025473, - "downloadSeconds": 0.061369601 + "connectionEstablishedSeconds": 0.252805263, + "uploadSeconds": 0.000024202, + "downloadSeconds": 0.062806906 }, { - "connectionEstablishedSeconds": 0.260333944, - "uploadSeconds": 0.000049223, - "downloadSeconds": 0.064126562 + "connectionEstablishedSeconds": 0.248680613, + "uploadSeconds": 0.00002521, + "downloadSeconds": 0.061309824 }, { - "connectionEstablishedSeconds": 0.242645705, - "uploadSeconds": 0.000053568, - "downloadSeconds": 0.060179002 + "connectionEstablishedSeconds": 0.246677129, + "uploadSeconds": 0.000035229, + "downloadSeconds": 0.061179173 }, { - "connectionEstablishedSeconds": 0.248844471, - "uploadSeconds": 0.000028074, - "downloadSeconds": 0.122156035 + "connectionEstablishedSeconds": 0.242483853, + "uploadSeconds": 0.000019519, + "downloadSeconds": 0.06017204 }, { - "connectionEstablishedSeconds": 0.257734408, - "uploadSeconds": 0.000032532, - "downloadSeconds": 0.063525357 + "connectionEstablishedSeconds": 0.25525089, + "uploadSeconds": 0.000049177, + "downloadSeconds": 0.063111446 }, { - "connectionEstablishedSeconds": 0.249678488, - "uploadSeconds": 0.000018689, - "downloadSeconds": 0.061933725 + "connectionEstablishedSeconds": 0.257686356, + "uploadSeconds": 0.000032478, + "downloadSeconds": 0.126418083 }, { - "connectionEstablishedSeconds": 0.248281296, - "uploadSeconds": 0.000046413, - "downloadSeconds": 0.061582403 + "connectionEstablishedSeconds": 0.257095885, + "uploadSeconds": 0.000047791, + "downloadSeconds": 0.063795086 }, { - "connectionEstablishedSeconds": 0.252421019, - "uploadSeconds": 0.000050119, - "downloadSeconds": 0.062636058 + "connectionEstablishedSeconds": 0.243729188, + "uploadSeconds": 0.000035532, + "downloadSeconds": 0.059996409 }, { - "connectionEstablishedSeconds": 0.251372403, - "uploadSeconds": 0.000051992, - "downloadSeconds": 0.061933501 + "connectionEstablishedSeconds": 0.262009218, + "uploadSeconds": 0.000047254, + "downloadSeconds": 0.065003282 }, { - "connectionEstablishedSeconds": 0.257889001, - "uploadSeconds": 0.000013464, - "downloadSeconds": 0.063576699 + "connectionEstablishedSeconds": 0.258401414, + "uploadSeconds": 0.00006994, + "downloadSeconds": 0.063684563 }, { - "connectionEstablishedSeconds": 0.247461649, - "uploadSeconds": 0.000028068, - "downloadSeconds": 0.061386435 + "connectionEstablishedSeconds": 0.252884323, + "uploadSeconds": 0.000050269, + "downloadSeconds": 0.062709839 }, { - "connectionEstablishedSeconds": 0.254586068, - "uploadSeconds": 0.000036283, - "downloadSeconds": 0.12489383 + "connectionEstablishedSeconds": 0.250485298, + "uploadSeconds": 0.00005337, + "downloadSeconds": 0.062170847 }, { - "connectionEstablishedSeconds": 0.238070333, - "uploadSeconds": 0.000052152, - "downloadSeconds": 0.117486854 + "connectionEstablishedSeconds": 0.254718934, + "uploadSeconds": 0.000050676, + "downloadSeconds": 0.062783841 }, { - "connectionEstablishedSeconds": 0.260064571, - "uploadSeconds": 0.000028205, - "downloadSeconds": 0.128338265 + "connectionEstablishedSeconds": 0.256479592, + "uploadSeconds": 0.000033173, + "downloadSeconds": 0.063716853 }, { - "connectionEstablishedSeconds": 0.24965493, - "uploadSeconds": 0.000047758, - "downloadSeconds": 0.06151788 + "connectionEstablishedSeconds": 0.250940902, + "uploadSeconds": 0.000032112, + "downloadSeconds": 0.061864679 }, { - "connectionEstablishedSeconds": 0.253392381, - "uploadSeconds": 0.000051852, - "downloadSeconds": 0.125040913 + "connectionEstablishedSeconds": 0.25601928, + "uploadSeconds": 0.000054211, + "downloadSeconds": 0.126404654 }, { - "connectionEstablishedSeconds": 0.245513511, - "uploadSeconds": 0.000049926, - "downloadSeconds": 0.060885894 + "connectionEstablishedSeconds": 0.251294714, + "uploadSeconds": 0.000033635, + "downloadSeconds": 0.124203533 }, { - "connectionEstablishedSeconds": 0.255671999, - "uploadSeconds": 0.000046062, - "downloadSeconds": 0.063454879 + "connectionEstablishedSeconds": 0.247495048, + "uploadSeconds": 0.000027803, + "downloadSeconds": 0.060974013 }, { - "connectionEstablishedSeconds": 0.242942741, - "uploadSeconds": 0.000036701, - "downloadSeconds": 0.059841988 + "connectionEstablishedSeconds": 0.246995791, + "uploadSeconds": 0.00004461, + "downloadSeconds": 0.12115156 }, { - "connectionEstablishedSeconds": 0.255830864, - "uploadSeconds": 0.000054372, - "downloadSeconds": 0.063402494 + "connectionEstablishedSeconds": 0.260059075, + "uploadSeconds": 0.000027943, + "downloadSeconds": 0.064163736 }, { - "connectionEstablishedSeconds": 0.243858874, - "uploadSeconds": 0.00002936, - "downloadSeconds": 0.060018781 + "connectionEstablishedSeconds": 0.258560162, + "uploadSeconds": 0.000047971, + "downloadSeconds": 0.064208141 }, { - "connectionEstablishedSeconds": 0.246750527, - "uploadSeconds": 0.000053095, - "downloadSeconds": 0.120873474 + "connectionEstablishedSeconds": 0.235908966, + "uploadSeconds": 0.000030916, + "downloadSeconds": 0.058548782 }, { - "connectionEstablishedSeconds": 0.252541499, - "uploadSeconds": 0.000030146, - "downloadSeconds": 0.123816728 + "connectionEstablishedSeconds": 0.261513272, + "uploadSeconds": 0.000048246, + "downloadSeconds": 0.064925108 }, { - "connectionEstablishedSeconds": 0.259676411, - "uploadSeconds": 0.000045169, - "downloadSeconds": 0.064088187 + "connectionEstablishedSeconds": 0.246711037, + "uploadSeconds": 0.000051645, + "downloadSeconds": 0.121876968 }, { - "connectionEstablishedSeconds": 0.252014036, - "uploadSeconds": 0.000029344, - "downloadSeconds": 0.124372491 + "connectionEstablishedSeconds": 0.241043815, + "uploadSeconds": 0.000032014, + "downloadSeconds": 0.118162864 }, { - "connectionEstablishedSeconds": 0.257812221, - "uploadSeconds": 0.000017745, - "downloadSeconds": 0.063527914 + "connectionEstablishedSeconds": 0.247259731, + "uploadSeconds": 0.000028639, + "downloadSeconds": 0.06137501 }, { - "connectionEstablishedSeconds": 0.250263745, - "uploadSeconds": 0.000017957, - "downloadSeconds": 0.122722571 + "connectionEstablishedSeconds": 0.25145911, + "uploadSeconds": 0.000051156, + "downloadSeconds": 0.062975407 }, { - "connectionEstablishedSeconds": 0.254614062, - "uploadSeconds": 0.00004993, - "downloadSeconds": 0.125724388 + "connectionEstablishedSeconds": 0.252888039, + "uploadSeconds": 0.000055034, + "downloadSeconds": 0.062725867 }, { - "connectionEstablishedSeconds": 0.253987513, - "uploadSeconds": 0.000048535, - "downloadSeconds": 0.062586681 + "connectionEstablishedSeconds": 0.260055251, + "uploadSeconds": 0.000049014, + "downloadSeconds": 0.127488692 }, { - "connectionEstablishedSeconds": 0.253844707, - "uploadSeconds": 0.000015426, - "downloadSeconds": 0.062542364 + "connectionEstablishedSeconds": 0.249378367, + "uploadSeconds": 0.000046993, + "downloadSeconds": 0.061853686 }, { - "connectionEstablishedSeconds": 0.246321818, - "uploadSeconds": 0.000033221, - "downloadSeconds": 0.060748106 + "connectionEstablishedSeconds": 0.24229299, + "uploadSeconds": 0.00004729, + "downloadSeconds": 0.059681849 }, { - "connectionEstablishedSeconds": 0.253459916, - "uploadSeconds": 0.000050912, - "downloadSeconds": 0.062889664 + "connectionEstablishedSeconds": 0.257501975, + "uploadSeconds": 0.00002631, + "downloadSeconds": 0.063461289 }, { - "connectionEstablishedSeconds": 0.240565083, - "uploadSeconds": 0.000030113, - "downloadSeconds": 0.059219374 + "connectionEstablishedSeconds": 0.247062015, + "uploadSeconds": 0.000027788, + "downloadSeconds": 0.122050433 }, { - "connectionEstablishedSeconds": 0.258225715, - "uploadSeconds": 0.000049799, - "downloadSeconds": 0.063634527 + "connectionEstablishedSeconds": 0.254054719, + "uploadSeconds": 0.00005408, + "downloadSeconds": 0.125497284 }, { - "connectionEstablishedSeconds": 0.254271864, - "uploadSeconds": 0.000024076, - "downloadSeconds": 0.063047991 + "connectionEstablishedSeconds": 0.252972942, + "uploadSeconds": 0.00002877, + "downloadSeconds": 0.062740292 }, { - "connectionEstablishedSeconds": 0.253685325, - "uploadSeconds": 0.000027376, - "downloadSeconds": 0.124524098 + "connectionEstablishedSeconds": 0.248875061, + "uploadSeconds": 0.00005126, + "downloadSeconds": 0.061469229 }, { - "connectionEstablishedSeconds": 0.257355688, - "uploadSeconds": 0.000047317, - "downloadSeconds": 0.063401641 + "connectionEstablishedSeconds": 0.246679671, + "uploadSeconds": 0.000066637, + "downloadSeconds": 0.060802934 }, { - "connectionEstablishedSeconds": 0.255853836, - "uploadSeconds": 0.000037268, - "downloadSeconds": 0.062351568 + "connectionEstablishedSeconds": 0.248438836, + "uploadSeconds": 0.00003783, + "downloadSeconds": 0.061584904 }, { - "connectionEstablishedSeconds": 0.255744895, - "uploadSeconds": 0.000029519, - "downloadSeconds": 0.126378334 + "connectionEstablishedSeconds": 0.245100346, + "uploadSeconds": 0.000044784, + "downloadSeconds": 0.06083217 }, { - "connectionEstablishedSeconds": 0.248936009, - "uploadSeconds": 0.000053438, - "downloadSeconds": 0.061737422 + "connectionEstablishedSeconds": 0.255532684, + "uploadSeconds": 0.000028128, + "downloadSeconds": 0.125393184 }, { - "connectionEstablishedSeconds": 0.252836686, - "uploadSeconds": 0.000027197, - "downloadSeconds": 0.062221281 + "connectionEstablishedSeconds": 0.257547206, + "uploadSeconds": 0.00001332, + "downloadSeconds": 0.063877457 }, { - "connectionEstablishedSeconds": 0.255892929, - "uploadSeconds": 0.000051908, - "downloadSeconds": 0.125531954 + "connectionEstablishedSeconds": 0.259499304, + "uploadSeconds": 0.000053521, + "downloadSeconds": 0.064441891 }, { - "connectionEstablishedSeconds": 0.249744152, - "uploadSeconds": 0.000023791, - "downloadSeconds": 0.062073504 + "connectionEstablishedSeconds": 0.255541556, + "uploadSeconds": 0.000048818, + "downloadSeconds": 0.12613515 }, { - "connectionEstablishedSeconds": 0.255203488, - "uploadSeconds": 0.000054273, - "downloadSeconds": 0.063334903 + "connectionEstablishedSeconds": 0.254467048, + "uploadSeconds": 0.00006023, + "downloadSeconds": 0.062601345 }, { - "connectionEstablishedSeconds": 0.249790592, - "uploadSeconds": 0.000049161, - "downloadSeconds": 0.122786201 + "connectionEstablishedSeconds": 0.242995937, + "uploadSeconds": 0.000050785, + "downloadSeconds": 0.060241221 }, { - "connectionEstablishedSeconds": 0.26346129, - "uploadSeconds": 0.00002875, - "downloadSeconds": 0.129434278 + "connectionEstablishedSeconds": 0.245555077, + "uploadSeconds": 0.000025996, + "downloadSeconds": 0.060494489 }, { - "connectionEstablishedSeconds": 0.255610355, - "uploadSeconds": 0.000061779, - "downloadSeconds": 0.126579688 + "connectionEstablishedSeconds": 0.244138963, + "uploadSeconds": 0.000054065, + "downloadSeconds": 0.060587146 }, { - "connectionEstablishedSeconds": 0.246970716, - "uploadSeconds": 0.000023467, - "downloadSeconds": 0.060755427 + "connectionEstablishedSeconds": 0.252880764, + "uploadSeconds": 0.000049297, + "downloadSeconds": 0.06279983 }, { - "connectionEstablishedSeconds": 0.253297534, - "uploadSeconds": 0.000023315, - "downloadSeconds": 0.06239508 + "connectionEstablishedSeconds": 0.258505699, + "uploadSeconds": 0.000024994, + "downloadSeconds": 0.06373 }, { - "connectionEstablishedSeconds": 0.251752939, - "uploadSeconds": 0.000051714, - "downloadSeconds": 0.062069414 + "connectionEstablishedSeconds": 0.250093086, + "uploadSeconds": 0.000032901, + "downloadSeconds": 0.061627601 }, { - "connectionEstablishedSeconds": 0.249531305, - "uploadSeconds": 0.000045756, - "downloadSeconds": 0.061872011 + "connectionEstablishedSeconds": 0.247269086, + "uploadSeconds": 0.000015822, + "downloadSeconds": 0.061264311 }, { - "connectionEstablishedSeconds": 0.245071468, - "uploadSeconds": 0.000053743, - "downloadSeconds": 0.119991652 + "connectionEstablishedSeconds": 0.254753101, + "uploadSeconds": 0.00002955, + "downloadSeconds": 0.063289311 }, { - "connectionEstablishedSeconds": 0.244598379, - "uploadSeconds": 0.000029747, - "downloadSeconds": 0.06063609 + "connectionEstablishedSeconds": 0.249847556, + "uploadSeconds": 0.000026385, + "downloadSeconds": 0.122550669 }, { - "connectionEstablishedSeconds": 0.251924436, - "uploadSeconds": 0.00003311, - "downloadSeconds": 0.062714942 + "connectionEstablishedSeconds": 0.243353911, + "uploadSeconds": 0.000049805, + "downloadSeconds": 0.120007018 }, { - "connectionEstablishedSeconds": 0.248874797, - "uploadSeconds": 0.000030715, - "downloadSeconds": 0.122975017 + "connectionEstablishedSeconds": 0.243254754, + "uploadSeconds": 0.000031893, + "downloadSeconds": 0.059928958 }, { - "connectionEstablishedSeconds": 0.246639069, - "uploadSeconds": 0.000033525, - "downloadSeconds": 0.060661102 + "connectionEstablishedSeconds": 0.263284906, + "uploadSeconds": 0.000030528, + "downloadSeconds": 0.128646855 }, { - "connectionEstablishedSeconds": 0.250309218, - "uploadSeconds": 0.000050539, - "downloadSeconds": 0.122885977 + "connectionEstablishedSeconds": 0.243387739, + "uploadSeconds": 0.00003132, + "downloadSeconds": 0.119271677 }, { - "connectionEstablishedSeconds": 0.252793035, - "uploadSeconds": 0.000060763, - "downloadSeconds": 0.124808386 + "connectionEstablishedSeconds": 0.254152271, + "uploadSeconds": 0.000051641, + "downloadSeconds": 0.062526913 }, { - "connectionEstablishedSeconds": 0.255145652, - "uploadSeconds": 0.000048612, - "downloadSeconds": 0.126036133 + "connectionEstablishedSeconds": 0.260916495, + "uploadSeconds": 0.000031368, + "downloadSeconds": 0.064320832 } ], "implementation": "go-libp2p", @@ -3517,504 +3517,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.129739067, - "uploadSeconds": 0.000051385, - "downloadSeconds": 0.062197901 + "connectionEstablishedSeconds": 0.129254463, + "uploadSeconds": 0.000049725, + "downloadSeconds": 0.061846977 }, { - "connectionEstablishedSeconds": 0.127841391, - "uploadSeconds": 0.000052588, - "downloadSeconds": 0.061900959 + "connectionEstablishedSeconds": 0.130316177, + "uploadSeconds": 0.000047676, + "downloadSeconds": 0.062767513 }, { - "connectionEstablishedSeconds": 0.128860282, - "uploadSeconds": 0.000054377, - "downloadSeconds": 0.062851143 + "connectionEstablishedSeconds": 0.126589883, + "uploadSeconds": 0.000032542, + "downloadSeconds": 0.060271958 }, { - "connectionEstablishedSeconds": 0.128967217, - "uploadSeconds": 0.000050002, - "downloadSeconds": 0.062888836 + "connectionEstablishedSeconds": 0.132256276, + "uploadSeconds": 0.000054845, + "downloadSeconds": 0.063596991 }, { - "connectionEstablishedSeconds": 0.135041444, - "uploadSeconds": 0.000024289, - "downloadSeconds": 0.065069517 + "connectionEstablishedSeconds": 0.126574061, + "uploadSeconds": 0.000052384, + "downloadSeconds": 0.060770083 }, { - "connectionEstablishedSeconds": 0.127907768, - "uploadSeconds": 0.000024553, - "downloadSeconds": 0.061588721 + "connectionEstablishedSeconds": 0.123489062, + "uploadSeconds": 0.000048841, + "downloadSeconds": 0.059230188 }, { - "connectionEstablishedSeconds": 0.130442097, - "uploadSeconds": 0.000016104, - "downloadSeconds": 0.063624451 + "connectionEstablishedSeconds": 0.132815025, + "uploadSeconds": 0.000034575, + "downloadSeconds": 0.063881482 }, { - "connectionEstablishedSeconds": 0.128560636, - "uploadSeconds": 0.000024795, - "downloadSeconds": 0.061789015 + "connectionEstablishedSeconds": 0.128407809, + "uploadSeconds": 0.000052665, + "downloadSeconds": 0.061677283 }, { - "connectionEstablishedSeconds": 0.128653078, - "uploadSeconds": 0.000029895, - "downloadSeconds": 0.062701668 + "connectionEstablishedSeconds": 0.129413817, + "uploadSeconds": 0.000031544, + "downloadSeconds": 0.063156417 }, { - "connectionEstablishedSeconds": 0.131039726, - "uploadSeconds": 0.000057579, - "downloadSeconds": 0.063100541 + "connectionEstablishedSeconds": 0.12959371, + "uploadSeconds": 0.000029927, + "downloadSeconds": 0.063277751 }, { - "connectionEstablishedSeconds": 0.132710401, - "uploadSeconds": 0.000052716, - "downloadSeconds": 0.063985376 + "connectionEstablishedSeconds": 0.131892389, + "uploadSeconds": 0.000031865, + "downloadSeconds": 0.063457006 }, { - "connectionEstablishedSeconds": 0.129767783, - "uploadSeconds": 0.000030343, - "downloadSeconds": 0.062557734 + "connectionEstablishedSeconds": 0.124958862, + "uploadSeconds": 0.000048609, + "downloadSeconds": 0.060004363 }, { - "connectionEstablishedSeconds": 0.134255443, - "uploadSeconds": 0.000055859, - "downloadSeconds": 0.064705555 + "connectionEstablishedSeconds": 0.130880916, + "uploadSeconds": 0.00004977, + "downloadSeconds": 0.063000308 }, { - "connectionEstablishedSeconds": 0.132345397, - "uploadSeconds": 0.000030452, - "downloadSeconds": 0.064556419 + "connectionEstablishedSeconds": 0.129500785, + "uploadSeconds": 0.000029957, + "downloadSeconds": 0.062914406 }, { - "connectionEstablishedSeconds": 0.124929202, - "uploadSeconds": 0.000048378, - "downloadSeconds": 0.060932143 + "connectionEstablishedSeconds": 0.130903159, + "uploadSeconds": 0.000049696, + "downloadSeconds": 0.063005622 }, { - "connectionEstablishedSeconds": 0.128566912, - "uploadSeconds": 0.000048561, - "downloadSeconds": 0.061818258 + "connectionEstablishedSeconds": 0.124117181, + "uploadSeconds": 0.000029737, + "downloadSeconds": 0.059640918 }, { - "connectionEstablishedSeconds": 0.130786426, - "uploadSeconds": 0.000060392, - "downloadSeconds": 0.06375307 + "connectionEstablishedSeconds": 0.130397756, + "uploadSeconds": 0.000043317, + "downloadSeconds": 0.062713708 }, { - "connectionEstablishedSeconds": 0.126842543, - "uploadSeconds": 0.000030173, - "downloadSeconds": 0.061000503 + "connectionEstablishedSeconds": 0.12638938, + "uploadSeconds": 0.000025987, + "downloadSeconds": 0.06072112 }, { - "connectionEstablishedSeconds": 0.134767796, - "uploadSeconds": 0.000048197, - "downloadSeconds": 0.064960976 + "connectionEstablishedSeconds": 0.129288895, + "uploadSeconds": 0.000031794, + "downloadSeconds": 0.062449124 }, { - "connectionEstablishedSeconds": 0.130874973, - "uploadSeconds": 0.000026434, - "downloadSeconds": 0.0639605 + "connectionEstablishedSeconds": 0.13388669, + "uploadSeconds": 0.000026924, + "downloadSeconds": 0.065007704 }, { - "connectionEstablishedSeconds": 0.133461438, - "uploadSeconds": 0.000051691, - "downloadSeconds": 0.064362761 + "connectionEstablishedSeconds": 0.121311206, + "uploadSeconds": 0.000050372, + "downloadSeconds": 0.059203885 }, { - "connectionEstablishedSeconds": 0.13155445, - "uploadSeconds": 0.000050827, - "downloadSeconds": 0.063342133 + "connectionEstablishedSeconds": 0.130775663, + "uploadSeconds": 0.000027556, + "downloadSeconds": 0.062691752 }, { - "connectionEstablishedSeconds": 0.132831847, - "uploadSeconds": 0.000026967, - "downloadSeconds": 0.064061782 + "connectionEstablishedSeconds": 0.128908072, + "uploadSeconds": 0.00002597, + "downloadSeconds": 0.062005463 }, { - "connectionEstablishedSeconds": 0.131188884, - "uploadSeconds": 0.000047481, - "downloadSeconds": 0.063673811 + "connectionEstablishedSeconds": 0.129656787, + "uploadSeconds": 0.000052805, + "downloadSeconds": 0.06237751 }, { - "connectionEstablishedSeconds": 0.126347098, - "uploadSeconds": 0.000041505, - "downloadSeconds": 0.061586655 + "connectionEstablishedSeconds": 0.127277437, + "uploadSeconds": 0.000012249, + "downloadSeconds": 0.061080051 }, { - "connectionEstablishedSeconds": 0.130028044, - "uploadSeconds": 0.000048594, - "downloadSeconds": 0.062471827 + "connectionEstablishedSeconds": 0.130034948, + "uploadSeconds": 0.000050341, + "downloadSeconds": 0.06304521 }, { - "connectionEstablishedSeconds": 0.13368019, - "uploadSeconds": 0.000054938, - "downloadSeconds": 0.06451194 + "connectionEstablishedSeconds": 0.129751215, + "uploadSeconds": 0.000027788, + "downloadSeconds": 0.063169058 }, { - "connectionEstablishedSeconds": 0.128740091, - "uploadSeconds": 0.000050773, - "downloadSeconds": 0.061904377 + "connectionEstablishedSeconds": 0.12084432, + "uploadSeconds": 0.000032037, + "downloadSeconds": 0.058148912 }, { - "connectionEstablishedSeconds": 0.125643734, - "uploadSeconds": 0.00004629, - "downloadSeconds": 0.061542681 + "connectionEstablishedSeconds": 0.128661937, + "uploadSeconds": 0.000057283, + "downloadSeconds": 0.061943933 }, { - "connectionEstablishedSeconds": 0.13253083, - "uploadSeconds": 0.000054162, - "downloadSeconds": 0.063853076 + "connectionEstablishedSeconds": 0.131446332, + "uploadSeconds": 0.000030493, + "downloadSeconds": 0.064105135 }, { - "connectionEstablishedSeconds": 0.126640012, - "uploadSeconds": 0.00002839, - "downloadSeconds": 0.061851773 + "connectionEstablishedSeconds": 0.124816197, + "uploadSeconds": 0.000031692, + "downloadSeconds": 0.060856795 }, { - "connectionEstablishedSeconds": 0.127760183, - "uploadSeconds": 0.000025044, - "downloadSeconds": 0.061483193 + "connectionEstablishedSeconds": 0.129928676, + "uploadSeconds": 0.000051053, + "downloadSeconds": 0.06304851 }, { - "connectionEstablishedSeconds": 0.131758823, - "uploadSeconds": 0.000030088, - "downloadSeconds": 0.063515333 + "connectionEstablishedSeconds": 0.125660228, + "uploadSeconds": 0.000050083, + "downloadSeconds": 0.060358488 }, { - "connectionEstablishedSeconds": 0.12414578, - "uploadSeconds": 0.000047563, - "downloadSeconds": 0.059631619 + "connectionEstablishedSeconds": 0.133714288, + "uploadSeconds": 0.000053368, + "downloadSeconds": 0.064398007 }, { - "connectionEstablishedSeconds": 0.128170749, - "uploadSeconds": 0.000028587, - "downloadSeconds": 0.061799877 + "connectionEstablishedSeconds": 0.125712875, + "uploadSeconds": 0.000052731, + "downloadSeconds": 0.061397797 }, { - "connectionEstablishedSeconds": 0.12509911, - "uploadSeconds": 0.000051038, - "downloadSeconds": 0.060066043 + "connectionEstablishedSeconds": 0.128668103, + "uploadSeconds": 0.000033243, + "downloadSeconds": 0.061858803 }, { - "connectionEstablishedSeconds": 0.126294107, - "uploadSeconds": 0.000029474, - "downloadSeconds": 0.060718439 + "connectionEstablishedSeconds": 0.122160333, + "uploadSeconds": 0.000038451, + "downloadSeconds": 0.059563458 }, { - "connectionEstablishedSeconds": 0.12879216, - "uploadSeconds": 0.000030308, - "downloadSeconds": 0.062013036 + "connectionEstablishedSeconds": 0.130131619, + "uploadSeconds": 0.000027621, + "downloadSeconds": 0.063514417 }, { - "connectionEstablishedSeconds": 0.128922894, - "uploadSeconds": 0.000026797, - "downloadSeconds": 0.062095345 + "connectionEstablishedSeconds": 0.131818764, + "uploadSeconds": 0.00005014, + "downloadSeconds": 0.063434126 }, { - "connectionEstablishedSeconds": 0.127819447, - "uploadSeconds": 0.000027067, - "downloadSeconds": 0.062399314 + "connectionEstablishedSeconds": 0.126106281, + "uploadSeconds": 0.000051341, + "downloadSeconds": 0.061519447 }, { - "connectionEstablishedSeconds": 0.126493427, - "uploadSeconds": 0.000052293, - "downloadSeconds": 0.061801552 + "connectionEstablishedSeconds": 0.126493559, + "uploadSeconds": 0.000068396, + "downloadSeconds": 0.060872719 }, { - "connectionEstablishedSeconds": 0.127699873, - "uploadSeconds": 0.000028039, - "downloadSeconds": 0.062339146 + "connectionEstablishedSeconds": 0.131254471, + "uploadSeconds": 0.000020387, + "downloadSeconds": 0.063200881 }, { - "connectionEstablishedSeconds": 0.12734424, - "uploadSeconds": 0.000025093, - "downloadSeconds": 0.061804324 + "connectionEstablishedSeconds": 0.131170736, + "uploadSeconds": 0.000029471, + "downloadSeconds": 0.06404072 }, { - "connectionEstablishedSeconds": 0.134071463, - "uploadSeconds": 0.000047884, - "downloadSeconds": 0.064163154 + "connectionEstablishedSeconds": 0.127364639, + "uploadSeconds": 0.000030475, + "downloadSeconds": 0.062236295 }, { - "connectionEstablishedSeconds": 0.130198797, - "uploadSeconds": 0.000030166, - "downloadSeconds": 0.063557221 + "connectionEstablishedSeconds": 0.132147797, + "uploadSeconds": 0.00004878, + "downloadSeconds": 0.063601618 }, { - "connectionEstablishedSeconds": 0.126590311, - "uploadSeconds": 0.00002351, - "downloadSeconds": 0.061738569 + "connectionEstablishedSeconds": 0.125832835, + "uploadSeconds": 0.000047051, + "downloadSeconds": 0.061379845 }, { - "connectionEstablishedSeconds": 0.128241547, - "uploadSeconds": 0.000036758, - "downloadSeconds": 0.061542599 + "connectionEstablishedSeconds": 0.131311656, + "uploadSeconds": 0.000049971, + "downloadSeconds": 0.064149678 }, { - "connectionEstablishedSeconds": 0.133960025, - "uploadSeconds": 0.000049963, - "downloadSeconds": 0.064391499 + "connectionEstablishedSeconds": 0.130336844, + "uploadSeconds": 0.000027102, + "downloadSeconds": 0.062714438 }, { - "connectionEstablishedSeconds": 0.12604412, - "uploadSeconds": 0.000048581, - "downloadSeconds": 0.060665451 + "connectionEstablishedSeconds": 0.127369116, + "uploadSeconds": 0.000047084, + "downloadSeconds": 0.060521436 }, { - "connectionEstablishedSeconds": 0.131709339, - "uploadSeconds": 0.000016083, - "downloadSeconds": 0.064340402 + "connectionEstablishedSeconds": 0.12445821, + "uploadSeconds": 0.00002759, + "downloadSeconds": 0.060734411 }, { - "connectionEstablishedSeconds": 0.130226655, - "uploadSeconds": 0.000053754, - "downloadSeconds": 0.06265236 + "connectionEstablishedSeconds": 0.130233205, + "uploadSeconds": 0.000027831, + "downloadSeconds": 0.063465522 }, { - "connectionEstablishedSeconds": 0.131225524, - "uploadSeconds": 0.000048533, - "downloadSeconds": 0.064096906 + "connectionEstablishedSeconds": 0.127668324, + "uploadSeconds": 0.000049029, + "downloadSeconds": 0.062179704 }, { - "connectionEstablishedSeconds": 0.128171842, - "uploadSeconds": 0.000039466, - "downloadSeconds": 0.062551009 + "connectionEstablishedSeconds": 0.122521976, + "uploadSeconds": 0.000028991, + "downloadSeconds": 0.059701973 }, { - "connectionEstablishedSeconds": 0.132729137, - "uploadSeconds": 0.000053796, - "downloadSeconds": 0.064844385 + "connectionEstablishedSeconds": 0.123943877, + "uploadSeconds": 0.000050212, + "downloadSeconds": 0.059482846 }, { - "connectionEstablishedSeconds": 0.125841376, - "uploadSeconds": 0.000047136, - "downloadSeconds": 0.061860235 + "connectionEstablishedSeconds": 0.125569846, + "uploadSeconds": 0.000025321, + "downloadSeconds": 0.060361071 }, { - "connectionEstablishedSeconds": 0.133387678, - "uploadSeconds": 0.000033418, - "downloadSeconds": 0.064961469 + "connectionEstablishedSeconds": 0.129304233, + "uploadSeconds": 0.000054485, + "downloadSeconds": 0.063103082 }, { - "connectionEstablishedSeconds": 0.126541658, - "uploadSeconds": 0.000020816, - "downloadSeconds": 0.060868344 + "connectionEstablishedSeconds": 0.12621692, + "uploadSeconds": 0.000032376, + "downloadSeconds": 0.061601783 }, { - "connectionEstablishedSeconds": 0.128317166, - "uploadSeconds": 0.000051748, - "downloadSeconds": 0.06267879 + "connectionEstablishedSeconds": 0.129265321, + "uploadSeconds": 0.000014157, + "downloadSeconds": 0.062883207 }, { - "connectionEstablishedSeconds": 0.122697174, - "uploadSeconds": 0.000014449, - "downloadSeconds": 0.05986584 + "connectionEstablishedSeconds": 0.125303603, + "uploadSeconds": 0.00003077, + "downloadSeconds": 0.061074498 }, { - "connectionEstablishedSeconds": 0.128342696, - "uploadSeconds": 0.000029692, - "downloadSeconds": 0.062645884 + "connectionEstablishedSeconds": 0.126343004, + "uploadSeconds": 0.00005128, + "downloadSeconds": 0.060759626 }, { - "connectionEstablishedSeconds": 0.129140007, - "uploadSeconds": 0.000029855, - "downloadSeconds": 0.063109066 + "connectionEstablishedSeconds": 0.130076212, + "uploadSeconds": 0.000028613, + "downloadSeconds": 0.062465879 }, { - "connectionEstablishedSeconds": 0.127571594, - "uploadSeconds": 0.000026367, - "downloadSeconds": 0.061311258 + "connectionEstablishedSeconds": 0.129852872, + "uploadSeconds": 0.000027143, + "downloadSeconds": 0.06261124 }, { - "connectionEstablishedSeconds": 0.124472756, - "uploadSeconds": 0.000013128, - "downloadSeconds": 0.060726498 + "connectionEstablishedSeconds": 0.1257118, + "uploadSeconds": 0.000028156, + "downloadSeconds": 0.061306291 }, { - "connectionEstablishedSeconds": 0.129069725, - "uploadSeconds": 0.00004495, - "downloadSeconds": 0.062104583 + "connectionEstablishedSeconds": 0.123838934, + "uploadSeconds": 0.000050165, + "downloadSeconds": 0.059417837 }, { - "connectionEstablishedSeconds": 0.127156142, - "uploadSeconds": 0.000054938, - "downloadSeconds": 0.061178505 + "connectionEstablishedSeconds": 0.130434207, + "uploadSeconds": 0.000029177, + "downloadSeconds": 0.063710401 }, { - "connectionEstablishedSeconds": 0.130094267, - "uploadSeconds": 0.000014146, - "downloadSeconds": 0.06349934 + "connectionEstablishedSeconds": 0.132712967, + "uploadSeconds": 0.000029904, + "downloadSeconds": 0.063906555 }, { - "connectionEstablishedSeconds": 0.130295968, - "uploadSeconds": 0.000026304, - "downloadSeconds": 0.0626357 + "connectionEstablishedSeconds": 0.131206059, + "uploadSeconds": 0.000048957, + "downloadSeconds": 0.064120677 }, { - "connectionEstablishedSeconds": 0.125776628, - "uploadSeconds": 0.000051033, - "downloadSeconds": 0.060507226 + "connectionEstablishedSeconds": 0.128576055, + "uploadSeconds": 0.00003434, + "downloadSeconds": 0.061779704 }, { - "connectionEstablishedSeconds": 0.124402377, - "uploadSeconds": 0.000029436, - "downloadSeconds": 0.059797462 + "connectionEstablishedSeconds": 0.128580244, + "uploadSeconds": 0.000051578, + "downloadSeconds": 0.061882697 }, { - "connectionEstablishedSeconds": 0.127775829, - "uploadSeconds": 0.000052704, - "downloadSeconds": 0.061434653 + "connectionEstablishedSeconds": 0.124619768, + "uploadSeconds": 0.000025594, + "downloadSeconds": 0.060795325 }, { - "connectionEstablishedSeconds": 0.132310524, - "uploadSeconds": 0.000051932, - "downloadSeconds": 0.063651634 + "connectionEstablishedSeconds": 0.124690448, + "uploadSeconds": 0.000049657, + "downloadSeconds": 0.060330452 }, { - "connectionEstablishedSeconds": 0.128383685, - "uploadSeconds": 0.00002864, - "downloadSeconds": 0.061776984 + "connectionEstablishedSeconds": 0.128483308, + "uploadSeconds": 0.00002808, + "downloadSeconds": 0.062744568 }, { - "connectionEstablishedSeconds": 0.127472232, - "uploadSeconds": 0.000032168, - "downloadSeconds": 0.062138658 + "connectionEstablishedSeconds": 0.124403868, + "uploadSeconds": 0.000046402, + "downloadSeconds": 0.0598167 }, { - "connectionEstablishedSeconds": 0.126338257, - "uploadSeconds": 0.00002501, - "downloadSeconds": 0.060739126 + "connectionEstablishedSeconds": 0.133384103, + "uploadSeconds": 0.000026993, + "downloadSeconds": 0.065154195 }, { - "connectionEstablishedSeconds": 0.127088626, - "uploadSeconds": 0.000050761, - "downloadSeconds": 0.062012149 + "connectionEstablishedSeconds": 0.130978927, + "uploadSeconds": 0.000027785, + "downloadSeconds": 0.063917872 }, { - "connectionEstablishedSeconds": 0.1342596, - "uploadSeconds": 0.000031908, - "downloadSeconds": 0.064073195 + "connectionEstablishedSeconds": 0.130336726, + "uploadSeconds": 0.000028152, + "downloadSeconds": 0.062205661 }, { - "connectionEstablishedSeconds": 0.131957643, - "uploadSeconds": 0.000026338, - "downloadSeconds": 0.064435866 + "connectionEstablishedSeconds": 0.13025496, + "uploadSeconds": 0.000028512, + "downloadSeconds": 0.062731493 }, { - "connectionEstablishedSeconds": 0.131746256, - "uploadSeconds": 0.000031572, - "downloadSeconds": 0.06433756 + "connectionEstablishedSeconds": 0.124000878, + "uploadSeconds": 0.000052929, + "downloadSeconds": 0.059636921 }, { - "connectionEstablishedSeconds": 0.127872137, - "uploadSeconds": 0.000046905, - "downloadSeconds": 0.061479259 + "connectionEstablishedSeconds": 0.128280078, + "uploadSeconds": 0.000048424, + "downloadSeconds": 0.062651944 }, { - "connectionEstablishedSeconds": 0.128340473, - "uploadSeconds": 0.000054364, - "downloadSeconds": 0.062751716 + "connectionEstablishedSeconds": 0.128797227, + "uploadSeconds": 0.000028539, + "downloadSeconds": 0.062063901 }, { - "connectionEstablishedSeconds": 0.123719063, - "uploadSeconds": 0.000054434, - "downloadSeconds": 0.060267376 + "connectionEstablishedSeconds": 0.130458011, + "uploadSeconds": 0.000046817, + "downloadSeconds": 0.062750738 }, { - "connectionEstablishedSeconds": 0.133436814, - "uploadSeconds": 0.000025508, - "downloadSeconds": 0.064277548 + "connectionEstablishedSeconds": 0.131126223, + "uploadSeconds": 0.000045723, + "downloadSeconds": 0.064068823 }, { - "connectionEstablishedSeconds": 0.126576346, - "uploadSeconds": 0.000029643, - "downloadSeconds": 0.061843824 + "connectionEstablishedSeconds": 0.12173857, + "uploadSeconds": 0.000026984, + "downloadSeconds": 0.059374912 }, { - "connectionEstablishedSeconds": 0.130027453, - "uploadSeconds": 0.000051458, - "downloadSeconds": 0.063493114 + "connectionEstablishedSeconds": 0.127766225, + "uploadSeconds": 0.000050603, + "downloadSeconds": 0.062380402 }, { - "connectionEstablishedSeconds": 0.130499401, - "uploadSeconds": 0.000047309, - "downloadSeconds": 0.063262941 + "connectionEstablishedSeconds": 0.132994131, + "uploadSeconds": 0.00005055, + "downloadSeconds": 0.064044932 }, { - "connectionEstablishedSeconds": 0.129402396, - "uploadSeconds": 0.000015919, - "downloadSeconds": 0.062311824 + "connectionEstablishedSeconds": 0.129118858, + "uploadSeconds": 0.000029905, + "downloadSeconds": 0.062115488 }, { - "connectionEstablishedSeconds": 0.128732369, - "uploadSeconds": 0.00003396, - "downloadSeconds": 0.062766512 + "connectionEstablishedSeconds": 0.124208781, + "uploadSeconds": 0.000048165, + "downloadSeconds": 0.0597049 }, { - "connectionEstablishedSeconds": 0.130255907, - "uploadSeconds": 0.000013652, - "downloadSeconds": 0.062742994 + "connectionEstablishedSeconds": 0.130495854, + "uploadSeconds": 0.000034704, + "downloadSeconds": 0.062834117 }, { - "connectionEstablishedSeconds": 0.127896782, - "uploadSeconds": 0.00003025, - "downloadSeconds": 0.062330118 + "connectionEstablishedSeconds": 0.130016672, + "uploadSeconds": 0.00004834, + "downloadSeconds": 0.063432322 }, { - "connectionEstablishedSeconds": 0.130753702, - "uploadSeconds": 0.000059518, - "downloadSeconds": 0.062882608 + "connectionEstablishedSeconds": 0.127844687, + "uploadSeconds": 0.000040963, + "downloadSeconds": 0.061609953 }, { - "connectionEstablishedSeconds": 0.126986551, - "uploadSeconds": 0.000047775, - "downloadSeconds": 0.061050645 + "connectionEstablishedSeconds": 0.127280829, + "uploadSeconds": 0.00002944, + "downloadSeconds": 0.062150441 }, { - "connectionEstablishedSeconds": 0.127279319, - "uploadSeconds": 0.000030946, - "downloadSeconds": 0.062100028 + "connectionEstablishedSeconds": 0.129465704, + "uploadSeconds": 0.000048457, + "downloadSeconds": 0.06313407 }, { - "connectionEstablishedSeconds": 0.130154313, - "uploadSeconds": 0.000053991, - "downloadSeconds": 0.062536243 + "connectionEstablishedSeconds": 0.12538187, + "uploadSeconds": 0.000044295, + "downloadSeconds": 0.06029626 }, { - "connectionEstablishedSeconds": 0.125910688, - "uploadSeconds": 0.000031902, - "downloadSeconds": 0.061372586 + "connectionEstablishedSeconds": 0.127666754, + "uploadSeconds": 0.000029005, + "downloadSeconds": 0.062383045 }, { - "connectionEstablishedSeconds": 0.124903408, - "uploadSeconds": 0.000032447, - "downloadSeconds": 0.060916243 + "connectionEstablishedSeconds": 0.123429586, + "uploadSeconds": 0.000044525, + "downloadSeconds": 0.060214148 }, { - "connectionEstablishedSeconds": 0.123476595, - "uploadSeconds": 0.000026731, - "downloadSeconds": 0.060158326 + "connectionEstablishedSeconds": 0.127534946, + "uploadSeconds": 0.000031261, + "downloadSeconds": 0.062193506 }, { - "connectionEstablishedSeconds": 0.129307852, - "uploadSeconds": 0.000029131, - "downloadSeconds": 0.062256843 + "connectionEstablishedSeconds": 0.126543214, + "uploadSeconds": 0.000053436, + "downloadSeconds": 0.061766702 }, { - "connectionEstablishedSeconds": 0.12745988, - "uploadSeconds": 0.000030412, - "downloadSeconds": 0.061331065 + "connectionEstablishedSeconds": 0.132090294, + "uploadSeconds": 0.000032864, + "downloadSeconds": 0.063654394 }, { - "connectionEstablishedSeconds": 0.123084436, - "uploadSeconds": 0.000053393, - "downloadSeconds": 0.05998429 + "connectionEstablishedSeconds": 0.128190835, + "uploadSeconds": 0.000031634, + "downloadSeconds": 0.062072127 }, { - "connectionEstablishedSeconds": 0.129570557, - "uploadSeconds": 0.000049303, - "downloadSeconds": 0.062803679 + "connectionEstablishedSeconds": 0.124651849, + "uploadSeconds": 0.000044168, + "downloadSeconds": 0.059888498 } ], "implementation": "go-libp2p", @@ -4031,173 +4031,173 @@ "pings": { "unit": "s", "results": [ - 0.0648, - 0.06470000000000001, - 0.0648, - 0.06470000000000001, - 0.06509999999999999, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.0648, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.0648, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.0648, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.0648, - 0.06470000000000001, - 0.06470000000000001, - 0.065, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.0648, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.0648, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.0648, - 0.06470000000000001, - 0.0648, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.0648, - 0.06470000000000001, - 0.06470000000000001, - 0.0648, - 0.06470000000000001, - 0.06470000000000001, - 0.0648, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.0648, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.0648, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.06470000000000001, - 0.0648, - 0.06470000000000001, - 0.06470000000000001, - 0.0648 + 0.0631, + 0.063, + 0.063, + 0.063, + 0.0631, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.0631, + 0.063, + 0.063, + 0.063, + 0.063, + 0.0631, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.0631, + 0.063, + 0.0631, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.0631, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063, + 0.063 ] }, "iperf": { "unit": "bit/s", "results": [ - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3300000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3300000000, - 3300000000, - 3300000000, - 3300000000, - 3310000000, - 3300000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3300000000, - 3310000000, + 3270000000, + 3270000000, + 3270000000, + 3270000000, + 3260000000, + 3260000000, + 3270000000, + 3270000000, + 3260000000, + 3270000000, + 3270000000, + 3270000000, + 3260000000, + 3260000000, + 3270000000, + 3260000000, + 3260000000, + 3240000000, + 3210000000, + 3200000000, + 3200000000, + 3200000000, + 3210000000, + 3250000000, + 3250000000, + 3250000000, + 3260000000, + 3260000000, + 3260000000, + 3260000000, + 3250000000, + 3250000000, + 3260000000, + 3260000000, + 3260000000, + 3250000000, + 3260000000, + 3250000000, + 3260000000, + 3250000000, + 3240000000, + 3200000000, + 3210000000, + 3210000000, + 3200000000, + 3220000000, + 3260000000, + 3260000000, 3260000000, 3260000000, 3260000000, + 3270000000, 3260000000, 3260000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3290000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3310000000, - 3300000000, - 2970000000 + 3250000000, + 3250000000, + 3250000000, + 3250000000, + 3250000000, + 3250000000, + 3250000000, + 3180000000 ] } } \ No newline at end of file From 0960c2ef172e96e984f0d76c2fdf374ba6b6ba7b Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 8 Jun 2023 16:59:44 +0900 Subject: [PATCH 127/143] chore(quinn): use latest master Includes https://github.com/libp2p/rust-libp2p/pull/4019 --- perf/impl/rust-libp2p-quinn/v0.52/Makefile | 2 +- perf/runner/benchmark-results.json | 4710 ++++++++++---------- 2 files changed, 2356 insertions(+), 2356 deletions(-) diff --git a/perf/impl/rust-libp2p-quinn/v0.52/Makefile b/perf/impl/rust-libp2p-quinn/v0.52/Makefile index a667f3808..cd7b88fc8 100644 --- a/perf/impl/rust-libp2p-quinn/v0.52/Makefile +++ b/perf/impl/rust-libp2p-quinn/v0.52/Makefile @@ -1,4 +1,4 @@ -commitSha := 3af9275c4a4d1edad651fe89c5bdd09547b0175c +commitSha := 84d29b34b19aef161a8583daffb9f63a385a613b all: perf diff --git a/perf/runner/benchmark-results.json b/perf/runner/benchmark-results.json index 3a920a154..fa49d3dd8 100644 --- a/perf/runner/benchmark-results.json +++ b/perf/runner/benchmark-results.json @@ -7,29 +7,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.064833759, - "uploadSeconds": 1.003781228, - "downloadSeconds": 6.1e-8 + "connectionEstablishedSeconds": 0.072591701, + "uploadSeconds": 0.993513826, + "downloadSeconds": 5.4e-8 }, { - "connectionEstablishedSeconds": 0.064830162, - "uploadSeconds": 1.005809057, - "downloadSeconds": 5.5e-8 + "connectionEstablishedSeconds": 0.063965486, + "uploadSeconds": 0.996597075, + "downloadSeconds": 5.4e-8 }, { - "connectionEstablishedSeconds": 0.064274521, - "uploadSeconds": 1.000458848, - "downloadSeconds": 8.7e-8 + "connectionEstablishedSeconds": 0.064042522, + "uploadSeconds": 0.996267952, + "downloadSeconds": 5.5e-8 }, { - "connectionEstablishedSeconds": 0.06277733, - "uploadSeconds": 0.978196166, - "downloadSeconds": 5.6e-8 + "connectionEstablishedSeconds": 0.061183387, + "uploadSeconds": 0.949102156, + "downloadSeconds": 5.5e-8 }, { - "connectionEstablishedSeconds": 0.065110407, - "uploadSeconds": 1.014704029, - "downloadSeconds": 6.3e-8 + "connectionEstablishedSeconds": 0.064004874, + "uploadSeconds": 0.997215029, + "downloadSeconds": 6e-8 } ], "implementation": "quic-go", @@ -39,29 +39,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.122456164, - "uploadSeconds": 46.129141106, - "downloadSeconds": 0.06252562 + "connectionEstablishedSeconds": 0.128149901, + "uploadSeconds": 44.471423935, + "downloadSeconds": 0.062837393 }, { - "connectionEstablishedSeconds": 0.12200015, - "uploadSeconds": 44.215909846, - "downloadSeconds": 0.060778362 + "connectionEstablishedSeconds": 0.12713727, + "uploadSeconds": 46.601514089, + "downloadSeconds": 0.063317674 }, { - "connectionEstablishedSeconds": 0.126685357, - "uploadSeconds": 44.101379409, - "downloadSeconds": 0.062993323 + "connectionEstablishedSeconds": 0.124852152, + "uploadSeconds": 46.419787687, + "downloadSeconds": 0.061992227 }, { - "connectionEstablishedSeconds": 0.125446343, - "uploadSeconds": 44.600296518, - "downloadSeconds": 0.062419352 + "connectionEstablishedSeconds": 0.127609022, + "uploadSeconds": 47.341400335, + "downloadSeconds": 0.06342464 }, { - "connectionEstablishedSeconds": 0.117814836, - "uploadSeconds": 43.385681412, - "downloadSeconds": 0.058723937 + "connectionEstablishedSeconds": 0.129867078, + "uploadSeconds": 46.542449905, + "downloadSeconds": 0.064421677 } ], "implementation": "rust-libp2p", @@ -71,29 +71,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.067254673, - "uploadSeconds": 11.152916552, - "downloadSeconds": 0.000120107 + "connectionEstablishedSeconds": 0.065010881, + "uploadSeconds": 11.94366409, + "downloadSeconds": 0.000143572 }, { - "connectionEstablishedSeconds": 0.06358057, - "uploadSeconds": 16.18795254, - "downloadSeconds": 0.000048209 + "connectionEstablishedSeconds": 0.064449364, + "uploadSeconds": 11.390967295, + "downloadSeconds": 0.000117889 }, { - "connectionEstablishedSeconds": 0.062912856, - "uploadSeconds": 13.017362603, - "downloadSeconds": 0.000094993 + "connectionEstablishedSeconds": 0.065164769, + "uploadSeconds": 7.893909053, + "downloadSeconds": 0.000145492 }, { - "connectionEstablishedSeconds": 0.062978255, - "uploadSeconds": 8.807038187, - "downloadSeconds": 0.000050072 + "connectionEstablishedSeconds": 0.065442849, + "uploadSeconds": 13.051619447, + "downloadSeconds": 0.000053836 }, { - "connectionEstablishedSeconds": 0.06500002, - "uploadSeconds": 15.824445739, - "downloadSeconds": 0.000101791 + "connectionEstablishedSeconds": 0.065312358, + "uploadSeconds": 13.784292966, + "downloadSeconds": 0.000106632 } ], "implementation": "rust-libp2p", @@ -103,29 +103,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.063379132, - "uploadSeconds": 1.3972297359999999, - "downloadSeconds": 0.000048003 + "connectionEstablishedSeconds": 0.067412293, + "uploadSeconds": 1.398169302, + "downloadSeconds": 0.000042912 }, { - "connectionEstablishedSeconds": 0.063652386, - "uploadSeconds": 1.4034387210000001, - "downloadSeconds": 0.0000725 + "connectionEstablishedSeconds": 0.064441856, + "uploadSeconds": 1.410075391, + "downloadSeconds": 0.000140306 }, { - "connectionEstablishedSeconds": 0.066053759, - "uploadSeconds": 1.459048393, - "downloadSeconds": 0.000140063 + "connectionEstablishedSeconds": 0.064378594, + "uploadSeconds": 1.418547115, + "downloadSeconds": 0.000044114 }, { - "connectionEstablishedSeconds": 0.065239505, - "uploadSeconds": 1.4444509810000001, - "downloadSeconds": 0.000147022 + "connectionEstablishedSeconds": 0.060640084, + "uploadSeconds": 1.340897619, + "downloadSeconds": 0.000050086 }, { - "connectionEstablishedSeconds": 0.064955651, - "uploadSeconds": 1.404617279, - "downloadSeconds": 0.000069664 + "connectionEstablishedSeconds": 0.066580562, + "uploadSeconds": 1.469474944, + "downloadSeconds": 0.000090476 } ], "implementation": "rust-libp2p-quinn", @@ -136,28 +136,28 @@ "result": [ { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.9160687039999997, - "downloadSeconds": 0.000004406 + "uploadSeconds": 2.546361149, + "downloadSeconds": 0.00000428 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.713660734, - "downloadSeconds": 0.000004473 + "uploadSeconds": 2.745976453, + "downloadSeconds": 0.000005038 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 3.019830798, - "downloadSeconds": 0.000001856 + "uploadSeconds": 2.713599509, + "downloadSeconds": 0.000010715 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.913823459, - "downloadSeconds": 0.000004438 + "uploadSeconds": 2.788424409, + "downloadSeconds": 0.000004897 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.790044832, - "downloadSeconds": 0.000002194 + "uploadSeconds": 2.78340292, + "downloadSeconds": 0.000004612 } ], "implementation": "https", @@ -167,29 +167,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.259795001, - "uploadSeconds": 2.857762791, - "downloadSeconds": 0.126962797 + "connectionEstablishedSeconds": 0.258152878, + "uploadSeconds": 2.903089138, + "downloadSeconds": 0.125816766 }, { - "connectionEstablishedSeconds": 0.253034562, - "uploadSeconds": 3.055207592, - "downloadSeconds": 0.124652419 + "connectionEstablishedSeconds": 0.247534233, + "uploadSeconds": 2.793107729, + "downloadSeconds": 0.120786085 }, { - "connectionEstablishedSeconds": 0.256653274, - "uploadSeconds": 2.911630112, - "downloadSeconds": 0.126498529 + "connectionEstablishedSeconds": 0.255590806, + "uploadSeconds": 2.900955997, + "downloadSeconds": 0.125743498 }, { - "connectionEstablishedSeconds": 0.252451731, - "uploadSeconds": 3.092179765, - "downloadSeconds": 0.123183174 + "connectionEstablishedSeconds": 0.256080872, + "uploadSeconds": 2.827943514, + "downloadSeconds": 0.125073074 }, { - "connectionEstablishedSeconds": 0.239666838, - "uploadSeconds": 2.953570685, - "downloadSeconds": 0.117462589 + "connectionEstablishedSeconds": 0.251226622, + "uploadSeconds": 3.014206189, + "downloadSeconds": 0.122625333 } ], "implementation": "go-libp2p", @@ -199,29 +199,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.132163677, - "uploadSeconds": 1.310971934, - "downloadSeconds": 0.063578789 + "connectionEstablishedSeconds": 0.136354261, + "uploadSeconds": 1.34037684, + "downloadSeconds": 0.065016578 }, { - "connectionEstablishedSeconds": 0.130402622, - "uploadSeconds": 1.2985999160000001, - "downloadSeconds": 0.062291374 + "connectionEstablishedSeconds": 0.125638465, + "uploadSeconds": 1.236551464, + "downloadSeconds": 0.059771373 }, { - "connectionEstablishedSeconds": 0.129379059, - "uploadSeconds": 1.277691639, - "downloadSeconds": 0.062039418 + "connectionEstablishedSeconds": 0.130059099, + "uploadSeconds": 1.3015519709999999, + "downloadSeconds": 0.063095418 }, { - "connectionEstablishedSeconds": 0.127959714, - "uploadSeconds": 1.266482562, - "downloadSeconds": 0.06231049 + "connectionEstablishedSeconds": 0.123634505, + "uploadSeconds": 1.240844318, + "downloadSeconds": 0.060056167 }, { - "connectionEstablishedSeconds": 0.129116983, - "uploadSeconds": 1.335219809, - "downloadSeconds": 0.061995737 + "connectionEstablishedSeconds": 0.130523277, + "uploadSeconds": 1.29241932, + "downloadSeconds": 0.062617775 } ], "implementation": "go-libp2p", @@ -241,29 +241,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.066141651, - "uploadSeconds": 4.82e-7, - "downloadSeconds": 1.144077887 + "connectionEstablishedSeconds": 0.065881341, + "uploadSeconds": 7.2e-7, + "downloadSeconds": 1.147514299 }, { - "connectionEstablishedSeconds": 0.067169088, - "uploadSeconds": 5.13e-7, - "downloadSeconds": 1.105346271 + "connectionEstablishedSeconds": 0.063107207, + "uploadSeconds": 5.21e-7, + "downloadSeconds": 1.022722282 }, { - "connectionEstablishedSeconds": 0.063688185, - "uploadSeconds": 5.64e-7, - "downloadSeconds": 1.046742396 + "connectionEstablishedSeconds": 0.063938955, + "uploadSeconds": 5.68e-7, + "downloadSeconds": 1.047213785 }, { - "connectionEstablishedSeconds": 0.064494587, - "uploadSeconds": 5.18e-7, - "downloadSeconds": 1.059553724 + "connectionEstablishedSeconds": 0.063826013, + "uploadSeconds": 4.93e-7, + "downloadSeconds": 1.049769468 }, { - "connectionEstablishedSeconds": 0.063728582, - "uploadSeconds": 5.92e-7, - "downloadSeconds": 1.046182875 + "connectionEstablishedSeconds": 0.066356304, + "uploadSeconds": 4.31e-7, + "downloadSeconds": 1.094437064 } ], "implementation": "quic-go", @@ -273,29 +273,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.11915755, - "uploadSeconds": 0.00000233, - "downloadSeconds": 43.045695357 + "connectionEstablishedSeconds": 0.124415501, + "uploadSeconds": 0.000013356, + "downloadSeconds": 44.214361619 }, { - "connectionEstablishedSeconds": 0.130429631, - "uploadSeconds": 0.000001872, - "downloadSeconds": 48.436912164 + "connectionEstablishedSeconds": 0.126392148, + "uploadSeconds": 0.00000904, + "downloadSeconds": 46.405967084 }, { - "connectionEstablishedSeconds": 0.126394546, - "uploadSeconds": 0.00000173, - "downloadSeconds": 45.595972788 + "connectionEstablishedSeconds": 0.119310633, + "uploadSeconds": 0.000002357, + "downloadSeconds": 43.149841696 }, { - "connectionEstablishedSeconds": 0.124729252, - "uploadSeconds": 0.000002227, - "downloadSeconds": 45.330052256 + "connectionEstablishedSeconds": 0.120753583, + "uploadSeconds": 0.000001923, + "downloadSeconds": 43.327216629 }, { - "connectionEstablishedSeconds": 0.121243578, - "uploadSeconds": 0.000001985, - "downloadSeconds": 45.112276715 + "connectionEstablishedSeconds": 0.128662408, + "uploadSeconds": 0.000001849, + "downloadSeconds": 46.204564851 } ], "implementation": "rust-libp2p", @@ -305,29 +305,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.065735047, - "uploadSeconds": 0.063951068, - "downloadSeconds": 5.58952994 + "connectionEstablishedSeconds": 0.063281293, + "uploadSeconds": 0.061164751, + "downloadSeconds": 12.644189355 }, { - "connectionEstablishedSeconds": 0.065837788, - "uploadSeconds": 0.064477494, - "downloadSeconds": 12.783492749 + "connectionEstablishedSeconds": 0.064788451, + "uploadSeconds": 0.063338964, + "downloadSeconds": 11.958387377 }, { - "connectionEstablishedSeconds": 0.062981356, - "uploadSeconds": 0.061610933, - "downloadSeconds": 9.562241419 + "connectionEstablishedSeconds": 0.064816461, + "uploadSeconds": 0.06356285, + "downloadSeconds": 12.735303433 }, { - "connectionEstablishedSeconds": 0.062310375, - "uploadSeconds": 0.060937649, - "downloadSeconds": 16.483080879 + "connectionEstablishedSeconds": 0.063857438, + "uploadSeconds": 0.062527125, + "downloadSeconds": 19.320648685 }, { - "connectionEstablishedSeconds": 0.063463306, - "uploadSeconds": 0.062164245, - "downloadSeconds": 27.648685238 + "connectionEstablishedSeconds": 0.064983316, + "uploadSeconds": 0.063643688, + "downloadSeconds": 11.610833824 } ], "implementation": "rust-libp2p", @@ -337,29 +337,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.06448184, - "uploadSeconds": 0.125069285, - "downloadSeconds": 1.347057411 + "connectionEstablishedSeconds": 0.065331777, + "uploadSeconds": 0.063431292, + "downloadSeconds": 1.348242627 }, { - "connectionEstablishedSeconds": 0.066253084, - "uploadSeconds": 0.129354937, - "downloadSeconds": 1.484249223 + "connectionEstablishedSeconds": 0.064813525, + "uploadSeconds": 0.06326287, + "downloadSeconds": 1.391417955 }, { - "connectionEstablishedSeconds": 0.063983458, - "uploadSeconds": 0.124674136, - "downloadSeconds": 1.347173993 + "connectionEstablishedSeconds": 0.064060896, + "uploadSeconds": 0.062629754, + "downloadSeconds": 1.332309391 }, { - "connectionEstablishedSeconds": 0.065885277, - "uploadSeconds": 0.128489707, - "downloadSeconds": 1.413574416 + "connectionEstablishedSeconds": 0.062360534, + "uploadSeconds": 0.061023163, + "downloadSeconds": 1.311276099 }, { - "connectionEstablishedSeconds": 0.064679396, - "uploadSeconds": 0.126120588, - "downloadSeconds": 1.356967517 + "connectionEstablishedSeconds": 0.061915192, + "uploadSeconds": 0.060483361, + "downloadSeconds": 1.305479673 } ], "implementation": "rust-libp2p-quinn", @@ -370,28 +370,28 @@ "result": [ { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185184652, - "downloadSeconds": 2.63489813 + "uploadSeconds": 0.184612887, + "downloadSeconds": 2.68305372 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183698651, - "downloadSeconds": 2.64681236 + "uploadSeconds": 0.193841282, + "downloadSeconds": 2.755002394 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186395918, - "downloadSeconds": 2.626377335 + "uploadSeconds": 0.186032876, + "downloadSeconds": 2.694924255 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188763186, - "downloadSeconds": 2.752533627 + "uploadSeconds": 0.186131234, + "downloadSeconds": 2.6360130010000002 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193742144, - "downloadSeconds": 2.9134923759999998 + "uploadSeconds": 0.187341762, + "downloadSeconds": 2.935211637 } ], "implementation": "https", @@ -401,29 +401,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.257664865, - "uploadSeconds": 0.000031311, - "downloadSeconds": 2.983405715 + "connectionEstablishedSeconds": 0.243756729, + "uploadSeconds": 0.000032644, + "downloadSeconds": 3.06384402 }, { - "connectionEstablishedSeconds": 0.262072515, - "uploadSeconds": 0.000031989, - "downloadSeconds": 3.018357562 + "connectionEstablishedSeconds": 0.256124405, + "uploadSeconds": 0.000062869, + "downloadSeconds": 2.944698752 }, { - "connectionEstablishedSeconds": 0.249953301, - "uploadSeconds": 0.000027662, - "downloadSeconds": 2.9633232720000002 + "connectionEstablishedSeconds": 0.254493128, + "uploadSeconds": 0.000063636, + "downloadSeconds": 3.000653302 }, { - "connectionEstablishedSeconds": 0.248572445, - "uploadSeconds": 0.000015216, - "downloadSeconds": 3.203071388 + "connectionEstablishedSeconds": 0.239470705, + "uploadSeconds": 0.000033936, + "downloadSeconds": 2.876978406 }, { - "connectionEstablishedSeconds": 0.255820496, - "uploadSeconds": 0.000031172, - "downloadSeconds": 3.012235122 + "connectionEstablishedSeconds": 0.256640393, + "uploadSeconds": 0.000034404, + "downloadSeconds": 3.034295351 } ], "implementation": "go-libp2p", @@ -433,29 +433,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.125459887, - "uploadSeconds": 0.000048227, - "downloadSeconds": 1.308276667 + "connectionEstablishedSeconds": 0.127539224, + "uploadSeconds": 0.000047314, + "downloadSeconds": 1.311046681 }, { - "connectionEstablishedSeconds": 0.133661806, - "uploadSeconds": 0.00002847, - "downloadSeconds": 1.387949287 + "connectionEstablishedSeconds": 0.122236166, + "uploadSeconds": 0.000043592, + "downloadSeconds": 1.284734337 }, { - "connectionEstablishedSeconds": 0.124750203, - "uploadSeconds": 0.000054501, - "downloadSeconds": 1.311621328 + "connectionEstablishedSeconds": 0.131773275, + "uploadSeconds": 0.00004765, + "downloadSeconds": 1.366333423 }, { - "connectionEstablishedSeconds": 0.125873355, - "uploadSeconds": 0.000058397, - "downloadSeconds": 1.3032299840000001 + "connectionEstablishedSeconds": 0.12741056, + "uploadSeconds": 0.000028269, + "downloadSeconds": 1.3108902439999999 }, { - "connectionEstablishedSeconds": 0.127935169, - "uploadSeconds": 0.000024901, - "downloadSeconds": 1.4567634950000001 + "connectionEstablishedSeconds": 0.130194803, + "uploadSeconds": 0.000031287, + "downloadSeconds": 1.368411917 } ], "implementation": "go-libp2p", @@ -475,504 +475,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.065860067, - "uploadSeconds": 0.000002089, - "downloadSeconds": 0.06330949 + "connectionEstablishedSeconds": 0.063757277, + "uploadSeconds": 0.000002098, + "downloadSeconds": 0.06153352 }, { - "connectionEstablishedSeconds": 0.065755698, - "uploadSeconds": 0.000001964, - "downloadSeconds": 0.063951556 + "connectionEstablishedSeconds": 0.064406775, + "uploadSeconds": 0.00000206, + "downloadSeconds": 0.062344916 }, { - "connectionEstablishedSeconds": 0.063790335, - "uploadSeconds": 0.000001995, - "downloadSeconds": 0.062018036 + "connectionEstablishedSeconds": 0.060652722, + "uploadSeconds": 0.000002053, + "downloadSeconds": 0.058777561 }, { - "connectionEstablishedSeconds": 0.064027459, - "uploadSeconds": 7.09e-7, - "downloadSeconds": 0.062354487 + "connectionEstablishedSeconds": 0.064089096, + "uploadSeconds": 9.1e-7, + "downloadSeconds": 0.062302712 }, { - "connectionEstablishedSeconds": 0.062990695, - "uploadSeconds": 0.000001957, - "downloadSeconds": 0.061331824 + "connectionEstablishedSeconds": 0.060688795, + "uploadSeconds": 0.000001958, + "downloadSeconds": 0.058708819 }, { - "connectionEstablishedSeconds": 0.064661415, - "uploadSeconds": 0.000001726, - "downloadSeconds": 0.063029776 + "connectionEstablishedSeconds": 0.064872545, + "uploadSeconds": 9.1e-7, + "downloadSeconds": 0.063219675 }, { - "connectionEstablishedSeconds": 0.064567056, - "uploadSeconds": 8.66e-7, - "downloadSeconds": 0.062985359 + "connectionEstablishedSeconds": 0.062259234, + "uploadSeconds": 8.11e-7, + "downloadSeconds": 0.060382555 }, { - "connectionEstablishedSeconds": 0.063748842, - "uploadSeconds": 0.000001944, - "downloadSeconds": 0.062029407 + "connectionEstablishedSeconds": 0.061013804, + "uploadSeconds": 0.000001942, + "downloadSeconds": 0.059175199 }, { - "connectionEstablishedSeconds": 0.066351056, - "uploadSeconds": 0.000001752, - "downloadSeconds": 0.064638792 + "connectionEstablishedSeconds": 0.062391085, + "uploadSeconds": 8.27e-7, + "downloadSeconds": 0.060469457 }, { - "connectionEstablishedSeconds": 0.06565357, - "uploadSeconds": 0.00000197, - "downloadSeconds": 0.063849937 + "connectionEstablishedSeconds": 0.06363342, + "uploadSeconds": 0.000002082, + "downloadSeconds": 0.061803819 }, { - "connectionEstablishedSeconds": 0.065368983, - "uploadSeconds": 0.000001732, - "downloadSeconds": 0.063676573 + "connectionEstablishedSeconds": 0.064986752, + "uploadSeconds": 0.000002243, + "downloadSeconds": 0.063115395 }, { - "connectionEstablishedSeconds": 0.062926528, - "uploadSeconds": 0.000001747, - "downloadSeconds": 0.061187897 + "connectionEstablishedSeconds": 0.063943816, + "uploadSeconds": 8.16e-7, + "downloadSeconds": 0.062153642 }, { - "connectionEstablishedSeconds": 0.064313506, - "uploadSeconds": 0.000001862, - "downloadSeconds": 0.062400141 + "connectionEstablishedSeconds": 0.065112835, + "uploadSeconds": 0.000001882, + "downloadSeconds": 0.063280987 }, { - "connectionEstablishedSeconds": 0.06479631, - "uploadSeconds": 0.000001983, - "downloadSeconds": 0.063131066 + "connectionEstablishedSeconds": 0.065172953, + "uploadSeconds": 0.000001997, + "downloadSeconds": 0.063402952 }, { - "connectionEstablishedSeconds": 0.062364887, - "uploadSeconds": 0.000001921, - "downloadSeconds": 0.060672675 + "connectionEstablishedSeconds": 0.063957018, + "uploadSeconds": 8.14e-7, + "downloadSeconds": 0.062247777 }, { - "connectionEstablishedSeconds": 0.064966047, - "uploadSeconds": 6.47e-7, - "downloadSeconds": 0.063326332 + "connectionEstablishedSeconds": 0.060415915, + "uploadSeconds": 0.000001923, + "downloadSeconds": 0.058581677 }, { - "connectionEstablishedSeconds": 0.066048616, - "uploadSeconds": 7.19e-7, - "downloadSeconds": 0.064365454 + "connectionEstablishedSeconds": 0.065567543, + "uploadSeconds": 8.44e-7, + "downloadSeconds": 0.061890709 }, { - "connectionEstablishedSeconds": 0.063129973, - "uploadSeconds": 0.000001881, - "downloadSeconds": 0.061403211 + "connectionEstablishedSeconds": 0.063604336, + "uploadSeconds": 0.00000192, + "downloadSeconds": 0.061730741 }, { - "connectionEstablishedSeconds": 0.065908159, - "uploadSeconds": 0.000001963, - "downloadSeconds": 0.064189644 + "connectionEstablishedSeconds": 0.065028989, + "uploadSeconds": 0.000002068, + "downloadSeconds": 0.062569353 }, { - "connectionEstablishedSeconds": 0.06387082, - "uploadSeconds": 7.88e-7, - "downloadSeconds": 0.062205181 + "connectionEstablishedSeconds": 0.064165452, + "uploadSeconds": 0.000001881, + "downloadSeconds": 0.062379744 }, { - "connectionEstablishedSeconds": 0.064045661, - "uploadSeconds": 0.000001697, - "downloadSeconds": 0.062369529 + "connectionEstablishedSeconds": 0.064301036, + "uploadSeconds": 0.000001922, + "downloadSeconds": 0.062620702 }, { - "connectionEstablishedSeconds": 0.060515744, - "uploadSeconds": 0.000001826, - "downloadSeconds": 0.058944724 + "connectionEstablishedSeconds": 0.063747948, + "uploadSeconds": 9.67e-7, + "downloadSeconds": 0.061884871 }, { - "connectionEstablishedSeconds": 0.06514631, - "uploadSeconds": 0.000001746, - "downloadSeconds": 0.063467215 + "connectionEstablishedSeconds": 0.065926167, + "uploadSeconds": 0.000001789, + "downloadSeconds": 0.064170849 }, { - "connectionEstablishedSeconds": 0.065486949, + "connectionEstablishedSeconds": 0.06364864, "uploadSeconds": 0.000001778, - "downloadSeconds": 0.063739325 + "downloadSeconds": 0.061967574 }, { - "connectionEstablishedSeconds": 0.065852385, - "uploadSeconds": 0.000001684, - "downloadSeconds": 0.064175721 + "connectionEstablishedSeconds": 0.063607643, + "uploadSeconds": 6.99e-7, + "downloadSeconds": 0.062030139 }, { - "connectionEstablishedSeconds": 0.06490223, - "uploadSeconds": 0.000001833, - "downloadSeconds": 0.063243286 + "connectionEstablishedSeconds": 0.066298775, + "uploadSeconds": 0.000001964, + "downloadSeconds": 0.064447687 }, { - "connectionEstablishedSeconds": 0.063306822, - "uploadSeconds": 0.00000198, - "downloadSeconds": 0.061552475 + "connectionEstablishedSeconds": 0.061143207, + "uploadSeconds": 7.76e-7, + "downloadSeconds": 0.05951208 }, { - "connectionEstablishedSeconds": 0.063114809, - "uploadSeconds": 7.07e-7, - "downloadSeconds": 0.061451126 + "connectionEstablishedSeconds": 0.064052036, + "uploadSeconds": 0.000001939, + "downloadSeconds": 0.062408256 }, { - "connectionEstablishedSeconds": 0.061477817, - "uploadSeconds": 0.000001733, - "downloadSeconds": 0.059818339 + "connectionEstablishedSeconds": 0.065916615, + "uploadSeconds": 0.000001948, + "downloadSeconds": 0.064179809 }, { - "connectionEstablishedSeconds": 0.066747116, - "uploadSeconds": 0.000001805, - "downloadSeconds": 0.065020327 + "connectionEstablishedSeconds": 0.060758193, + "uploadSeconds": 7.97e-7, + "downloadSeconds": 0.058960356 }, { - "connectionEstablishedSeconds": 0.064715311, - "uploadSeconds": 0.000001689, - "downloadSeconds": 0.06288911 + "connectionEstablishedSeconds": 0.065566506, + "uploadSeconds": 0.000001898, + "downloadSeconds": 0.063721724 }, { - "connectionEstablishedSeconds": 0.063052797, - "uploadSeconds": 0.000001777, - "downloadSeconds": 0.061376108 + "connectionEstablishedSeconds": 0.063050603, + "uploadSeconds": 7.68e-7, + "downloadSeconds": 0.061291676 }, { - "connectionEstablishedSeconds": 0.075500815, - "uploadSeconds": 0.000001712, - "downloadSeconds": 0.060729076 + "connectionEstablishedSeconds": 0.064640847, + "uploadSeconds": 0.000001889, + "downloadSeconds": 0.063094597 }, { - "connectionEstablishedSeconds": 0.064641159, - "uploadSeconds": 7.66e-7, - "downloadSeconds": 0.063150322 + "connectionEstablishedSeconds": 0.067286727, + "uploadSeconds": 0.00000185, + "downloadSeconds": 0.064225539 }, { - "connectionEstablishedSeconds": 0.063538609, - "uploadSeconds": 0.000001818, - "downloadSeconds": 0.061825625 + "connectionEstablishedSeconds": 0.065344644, + "uploadSeconds": 0.000001833, + "downloadSeconds": 0.063530664 }, { - "connectionEstablishedSeconds": 0.065220587, + "connectionEstablishedSeconds": 0.0650521, "uploadSeconds": 0.000001809, - "downloadSeconds": 0.063686983 + "downloadSeconds": 0.06329072 }, { - "connectionEstablishedSeconds": 0.062347115, - "uploadSeconds": 8e-7, - "downloadSeconds": 0.060693164 + "connectionEstablishedSeconds": 0.064894472, + "uploadSeconds": 0.000001806, + "downloadSeconds": 0.063028643 }, { - "connectionEstablishedSeconds": 0.063403723, - "uploadSeconds": 0.00000167, - "downloadSeconds": 0.061907841 + "connectionEstablishedSeconds": 0.063594258, + "uploadSeconds": 0.000001939, + "downloadSeconds": 0.06187519 }, { - "connectionEstablishedSeconds": 0.065506195, - "uploadSeconds": 0.0000017, - "downloadSeconds": 0.063787751 + "connectionEstablishedSeconds": 0.065571442, + "uploadSeconds": 7.23e-7, + "downloadSeconds": 0.063898123 }, { - "connectionEstablishedSeconds": 0.062121795, - "uploadSeconds": 7.31e-7, - "downloadSeconds": 0.060600913 + "connectionEstablishedSeconds": 0.062127089, + "uploadSeconds": 0.000001843, + "downloadSeconds": 0.060323751 }, { - "connectionEstablishedSeconds": 0.06459815, - "uploadSeconds": 0.000001848, - "downloadSeconds": 0.062969568 + "connectionEstablishedSeconds": 0.064335301, + "uploadSeconds": 8.06e-7, + "downloadSeconds": 0.062641153 }, { - "connectionEstablishedSeconds": 0.062506026, - "uploadSeconds": 7.27e-7, - "downloadSeconds": 0.060832975 + "connectionEstablishedSeconds": 0.06524518, + "uploadSeconds": 0.000001965, + "downloadSeconds": 0.063493729 }, { - "connectionEstablishedSeconds": 0.0647996, - "uploadSeconds": 6.87e-7, - "downloadSeconds": 0.063170702 + "connectionEstablishedSeconds": 0.064888498, + "uploadSeconds": 0.00000186, + "downloadSeconds": 0.062888329 }, { - "connectionEstablishedSeconds": 0.065459344, - "uploadSeconds": 0.000001769, - "downloadSeconds": 0.063234999 + "connectionEstablishedSeconds": 0.065954304, + "uploadSeconds": 0.000002015, + "downloadSeconds": 0.064085454 }, { - "connectionEstablishedSeconds": 0.065848267, - "uploadSeconds": 6.53e-7, - "downloadSeconds": 0.064122659 + "connectionEstablishedSeconds": 0.064389544, + "uploadSeconds": 0.000001811, + "downloadSeconds": 0.062455711 }, { - "connectionEstablishedSeconds": 0.06451668, - "uploadSeconds": 0.000001765, - "downloadSeconds": 0.062808288 + "connectionEstablishedSeconds": 0.063702299, + "uploadSeconds": 0.000001964, + "downloadSeconds": 0.062057032 }, { - "connectionEstablishedSeconds": 0.062712151, - "uploadSeconds": 0.000001906, - "downloadSeconds": 0.061015491 + "connectionEstablishedSeconds": 0.065016817, + "uploadSeconds": 0.00000184, + "downloadSeconds": 0.062188923 }, { - "connectionEstablishedSeconds": 0.064454386, - "uploadSeconds": 0.000001709, - "downloadSeconds": 0.062861849 + "connectionEstablishedSeconds": 0.065035619, + "uploadSeconds": 0.000002058, + "downloadSeconds": 0.063274735 }, { - "connectionEstablishedSeconds": 0.065913503, - "uploadSeconds": 0.000001797, - "downloadSeconds": 0.06417216 + "connectionEstablishedSeconds": 0.062839818, + "uploadSeconds": 7.8e-7, + "downloadSeconds": 0.061082748 }, { - "connectionEstablishedSeconds": 0.064343358, - "uploadSeconds": 0.000001752, - "downloadSeconds": 0.062674031 + "connectionEstablishedSeconds": 0.065934434, + "uploadSeconds": 0.000001841, + "downloadSeconds": 0.064131774 }, { - "connectionEstablishedSeconds": 0.063147302, - "uploadSeconds": 0.000001789, - "downloadSeconds": 0.0614893 + "connectionEstablishedSeconds": 0.063607034, + "uploadSeconds": 0.000001785, + "downloadSeconds": 0.061900905 }, { - "connectionEstablishedSeconds": 0.065270179, - "uploadSeconds": 0.000001743, - "downloadSeconds": 0.063642437 + "connectionEstablishedSeconds": 0.065002741, + "uploadSeconds": 0.000001909, + "downloadSeconds": 0.063153422 }, { - "connectionEstablishedSeconds": 0.061303157, - "uploadSeconds": 7.39e-7, - "downloadSeconds": 0.059654526 + "connectionEstablishedSeconds": 0.063872327, + "uploadSeconds": 0.000001816, + "downloadSeconds": 0.062116588 }, { - "connectionEstablishedSeconds": 0.066182862, - "uploadSeconds": 0.000001847, - "downloadSeconds": 0.064553973 + "connectionEstablishedSeconds": 0.063131908, + "uploadSeconds": 0.000001942, + "downloadSeconds": 0.061296468 }, { - "connectionEstablishedSeconds": 0.063550238, - "uploadSeconds": 0.000001792, - "downloadSeconds": 0.061875842 + "connectionEstablishedSeconds": 0.065480669, + "uploadSeconds": 0.000001939, + "downloadSeconds": 0.063691877 }, { - "connectionEstablishedSeconds": 0.063976441, - "uploadSeconds": 0.000001793, - "downloadSeconds": 0.062304624 + "connectionEstablishedSeconds": 0.063079263, + "uploadSeconds": 0.000001809, + "downloadSeconds": 0.060947198 }, { - "connectionEstablishedSeconds": 0.064865383, - "uploadSeconds": 0.000001778, - "downloadSeconds": 0.06324226 + "connectionEstablishedSeconds": 0.063233424, + "uploadSeconds": 7.83e-7, + "downloadSeconds": 0.061441264 }, { - "connectionEstablishedSeconds": 0.065654695, - "uploadSeconds": 0.000001776, - "downloadSeconds": 0.063919581 + "connectionEstablishedSeconds": 0.061935685, + "uploadSeconds": 0.000001885, + "downloadSeconds": 0.060381149 }, { - "connectionEstablishedSeconds": 0.064745622, - "uploadSeconds": 0.000001797, - "downloadSeconds": 0.062204648 + "connectionEstablishedSeconds": 0.064600406, + "uploadSeconds": 0.00000186, + "downloadSeconds": 0.062839281 }, { - "connectionEstablishedSeconds": 0.064830596, - "uploadSeconds": 0.000001825, - "downloadSeconds": 0.063129223 + "connectionEstablishedSeconds": 0.065516104, + "uploadSeconds": 0.000001893, + "downloadSeconds": 0.06374047 }, { - "connectionEstablishedSeconds": 0.062620308, - "uploadSeconds": 0.00000171, - "downloadSeconds": 0.060938594 + "connectionEstablishedSeconds": 0.065938802, + "uploadSeconds": 8.05e-7, + "downloadSeconds": 0.064165922 }, { - "connectionEstablishedSeconds": 0.061658349, - "uploadSeconds": 0.000001867, - "downloadSeconds": 0.060072466 + "connectionEstablishedSeconds": 0.063539109, + "uploadSeconds": 0.000001893, + "downloadSeconds": 0.061812606 }, { - "connectionEstablishedSeconds": 0.064572474, - "uploadSeconds": 0.00000178, - "downloadSeconds": 0.062931026 + "connectionEstablishedSeconds": 0.065168095, + "uploadSeconds": 0.000001865, + "downloadSeconds": 0.0633188 }, { - "connectionEstablishedSeconds": 0.06624519, - "uploadSeconds": 0.000001751, - "downloadSeconds": 0.064647464 + "connectionEstablishedSeconds": 0.06577026, + "uploadSeconds": 0.000001815, + "downloadSeconds": 0.064091842 }, { - "connectionEstablishedSeconds": 0.065158101, - "uploadSeconds": 6.76e-7, - "downloadSeconds": 0.063504044 + "connectionEstablishedSeconds": 0.065306406, + "uploadSeconds": 0.000001872, + "downloadSeconds": 0.06367882 }, { - "connectionEstablishedSeconds": 0.063891927, - "uploadSeconds": 7.55e-7, - "downloadSeconds": 0.062320027 + "connectionEstablishedSeconds": 0.065652041, + "uploadSeconds": 0.0000019, + "downloadSeconds": 0.063729744 }, { - "connectionEstablishedSeconds": 0.062599205, - "uploadSeconds": 0.000001941, - "downloadSeconds": 0.061118531 + "connectionEstablishedSeconds": 0.064137435, + "uploadSeconds": 0.000001868, + "downloadSeconds": 0.061969207 }, { - "connectionEstablishedSeconds": 0.064851573, - "uploadSeconds": 8.06e-7, - "downloadSeconds": 0.063260184 + "connectionEstablishedSeconds": 0.062031377, + "uploadSeconds": 7.9e-7, + "downloadSeconds": 0.060253354 }, { - "connectionEstablishedSeconds": 0.06338514, - "uploadSeconds": 0.000001828, - "downloadSeconds": 0.061673669 + "connectionEstablishedSeconds": 0.060716153, + "uploadSeconds": 0.000001926, + "downloadSeconds": 0.058806477 }, { - "connectionEstablishedSeconds": 0.064893805, - "uploadSeconds": 0.00000179, - "downloadSeconds": 0.06321688 + "connectionEstablishedSeconds": 0.063125529, + "uploadSeconds": 0.000001932, + "downloadSeconds": 0.061343725 }, { - "connectionEstablishedSeconds": 0.06336691, - "uploadSeconds": 0.000001839, - "downloadSeconds": 0.060953253 + "connectionEstablishedSeconds": 0.066066193, + "uploadSeconds": 7.26e-7, + "downloadSeconds": 0.064173226 }, { - "connectionEstablishedSeconds": 0.065529486, - "uploadSeconds": 0.000001988, - "downloadSeconds": 0.063717686 + "connectionEstablishedSeconds": 0.06159283, + "uploadSeconds": 0.000001958, + "downloadSeconds": 0.059657058 }, { - "connectionEstablishedSeconds": 0.066304643, - "uploadSeconds": 0.000001905, - "downloadSeconds": 0.064568256 + "connectionEstablishedSeconds": 0.064424025, + "uploadSeconds": 0.000001854, + "downloadSeconds": 0.062721436 }, { - "connectionEstablishedSeconds": 0.064887274, - "uploadSeconds": 0.000001796, - "downloadSeconds": 0.063263702 + "connectionEstablishedSeconds": 0.063076884, + "uploadSeconds": 0.000002037, + "downloadSeconds": 0.061361962 }, { - "connectionEstablishedSeconds": 0.06219528, - "uploadSeconds": 7.36e-7, - "downloadSeconds": 0.060497025 + "connectionEstablishedSeconds": 0.063058517, + "uploadSeconds": 0.000001907, + "downloadSeconds": 0.061255644 }, { - "connectionEstablishedSeconds": 0.064394532, - "uploadSeconds": 7.25e-7, - "downloadSeconds": 0.062708529 + "connectionEstablishedSeconds": 0.06353501, + "uploadSeconds": 0.000001928, + "downloadSeconds": 0.061832511 }, { - "connectionEstablishedSeconds": 0.064131415, - "uploadSeconds": 0.000001843, - "downloadSeconds": 0.062500871 + "connectionEstablishedSeconds": 0.062446208, + "uploadSeconds": 0.000001795, + "downloadSeconds": 0.060607468 }, { - "connectionEstablishedSeconds": 0.063581396, - "uploadSeconds": 0.000001843, - "downloadSeconds": 0.061952662 + "connectionEstablishedSeconds": 0.063028233, + "uploadSeconds": 0.000001805, + "downloadSeconds": 0.061393389 }, { - "connectionEstablishedSeconds": 0.062906457, - "uploadSeconds": 0.000001715, - "downloadSeconds": 0.061313419 + "connectionEstablishedSeconds": 0.065519134, + "uploadSeconds": 0.000001893, + "downloadSeconds": 0.063771924 }, { - "connectionEstablishedSeconds": 0.065294332, - "uploadSeconds": 7.15e-7, - "downloadSeconds": 0.063665958 + "connectionEstablishedSeconds": 0.065050952, + "uploadSeconds": 0.000001859, + "downloadSeconds": 0.063266079 }, { - "connectionEstablishedSeconds": 0.065696318, - "uploadSeconds": 6.49e-7, - "downloadSeconds": 0.064093115 + "connectionEstablishedSeconds": 0.063151649, + "uploadSeconds": 9.45e-7, + "downloadSeconds": 0.061509409 }, { - "connectionEstablishedSeconds": 0.06418668, - "uploadSeconds": 0.000001814, - "downloadSeconds": 0.062461252 + "connectionEstablishedSeconds": 0.066890052, + "uploadSeconds": 8.07e-7, + "downloadSeconds": 0.064313572 }, { - "connectionEstablishedSeconds": 0.06226811, - "uploadSeconds": 0.00000181, - "downloadSeconds": 0.060537779 + "connectionEstablishedSeconds": 0.062557685, + "uploadSeconds": 7.68e-7, + "downloadSeconds": 0.06071643 }, { - "connectionEstablishedSeconds": 0.060924851, - "uploadSeconds": 0.000001759, - "downloadSeconds": 0.058346114 + "connectionEstablishedSeconds": 0.062681991, + "uploadSeconds": 7.47e-7, + "downloadSeconds": 0.060954772 }, { - "connectionEstablishedSeconds": 0.065818474, - "uploadSeconds": 7.01e-7, - "downloadSeconds": 0.064145443 + "connectionEstablishedSeconds": 0.065464435, + "uploadSeconds": 0.000002008, + "downloadSeconds": 0.063787028 }, { - "connectionEstablishedSeconds": 0.06539988, - "uploadSeconds": 0.000001836, - "downloadSeconds": 0.063750283 + "connectionEstablishedSeconds": 0.0650721, + "uploadSeconds": 8.46e-7, + "downloadSeconds": 0.063374466 }, { - "connectionEstablishedSeconds": 0.064745647, - "uploadSeconds": 0.000001888, - "downloadSeconds": 0.063198929 + "connectionEstablishedSeconds": 0.06236308, + "uploadSeconds": 7.63e-7, + "downloadSeconds": 0.060511654 }, { - "connectionEstablishedSeconds": 0.064855386, - "uploadSeconds": 0.000001837, - "downloadSeconds": 0.063167072 + "connectionEstablishedSeconds": 0.064055201, + "uploadSeconds": 0.000001856, + "downloadSeconds": 0.062257626 }, { - "connectionEstablishedSeconds": 0.060413674, - "uploadSeconds": 0.000001785, - "downloadSeconds": 0.058740826 + "connectionEstablishedSeconds": 0.065790258, + "uploadSeconds": 7.58e-7, + "downloadSeconds": 0.063898247 }, { - "connectionEstablishedSeconds": 0.064570402, - "uploadSeconds": 0.000001758, - "downloadSeconds": 0.06284718 + "connectionEstablishedSeconds": 0.065136061, + "uploadSeconds": 7.02e-7, + "downloadSeconds": 0.063434263 }, { - "connectionEstablishedSeconds": 0.06283695, - "uploadSeconds": 7.58e-7, - "downloadSeconds": 0.061195916 + "connectionEstablishedSeconds": 0.065803846, + "uploadSeconds": 7.47e-7, + "downloadSeconds": 0.064150481 }, { - "connectionEstablishedSeconds": 0.063199726, - "uploadSeconds": 0.000001789, - "downloadSeconds": 0.06150939 + "connectionEstablishedSeconds": 0.062675967, + "uploadSeconds": 0.000001845, + "downloadSeconds": 0.060784967 }, { - "connectionEstablishedSeconds": 0.065272718, - "uploadSeconds": 0.00000176, - "downloadSeconds": 0.063542883 + "connectionEstablishedSeconds": 0.064472683, + "uploadSeconds": 0.000001787, + "downloadSeconds": 0.062740857 }, { - "connectionEstablishedSeconds": 0.062132433, - "uploadSeconds": 7.05e-7, - "downloadSeconds": 0.060604922 + "connectionEstablishedSeconds": 0.063671819, + "uploadSeconds": 7.71e-7, + "downloadSeconds": 0.062013449 }, { - "connectionEstablishedSeconds": 0.065863374, - "uploadSeconds": 0.000001837, - "downloadSeconds": 0.064007617 + "connectionEstablishedSeconds": 0.061282091, + "uploadSeconds": 0.000001734, + "downloadSeconds": 0.059847642 }, { - "connectionEstablishedSeconds": 0.065732699, - "uploadSeconds": 0.00000176, - "downloadSeconds": 0.064107551 + "connectionEstablishedSeconds": 0.064330656, + "uploadSeconds": 0.000001733, + "downloadSeconds": 0.062694559 }, { - "connectionEstablishedSeconds": 0.06390818, - "uploadSeconds": 0.000001884, - "downloadSeconds": 0.062303317 + "connectionEstablishedSeconds": 0.063130422, + "uploadSeconds": 7.14e-7, + "downloadSeconds": 0.061544387 }, { - "connectionEstablishedSeconds": 0.064746973, - "uploadSeconds": 0.000001764, - "downloadSeconds": 0.063015287 + "connectionEstablishedSeconds": 0.064130587, + "uploadSeconds": 0.000001914, + "downloadSeconds": 0.06243757 }, { - "connectionEstablishedSeconds": 0.062040942, - "uploadSeconds": 0.000001941, - "downloadSeconds": 0.06031319 + "connectionEstablishedSeconds": 0.065096218, + "uploadSeconds": 0.000001875, + "downloadSeconds": 0.063410501 }, { - "connectionEstablishedSeconds": 0.066969439, - "uploadSeconds": 8.15e-7, - "downloadSeconds": 0.064368523 + "connectionEstablishedSeconds": 0.065573584, + "uploadSeconds": 0.000001824, + "downloadSeconds": 0.063904533 } ], "implementation": "quic-go", @@ -982,504 +982,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.125864596, - "uploadSeconds": 0.000002772, - "downloadSeconds": 0.063055349 + "connectionEstablishedSeconds": 0.125877279, + "uploadSeconds": 0.000002929, + "downloadSeconds": 0.06297867 }, { - "connectionEstablishedSeconds": 0.123491644, - "uploadSeconds": 0.000001888, - "downloadSeconds": 0.061775763 + "connectionEstablishedSeconds": 0.123321532, + "uploadSeconds": 0.000001979, + "downloadSeconds": 0.061585527 }, { - "connectionEstablishedSeconds": 0.12694878, - "uploadSeconds": 0.000001722, - "downloadSeconds": 0.063433037 + "connectionEstablishedSeconds": 0.127756342, + "uploadSeconds": 0.000002075, + "downloadSeconds": 0.063745801 }, { - "connectionEstablishedSeconds": 0.127179877, - "uploadSeconds": 0.000001889, - "downloadSeconds": 0.063503318 + "connectionEstablishedSeconds": 0.124496431, + "uploadSeconds": 0.000001844, + "downloadSeconds": 0.062165728 }, { - "connectionEstablishedSeconds": 0.127289357, - "uploadSeconds": 0.000001752, - "downloadSeconds": 0.063579844 + "connectionEstablishedSeconds": 0.125871154, + "uploadSeconds": 0.000001836, + "downloadSeconds": 0.062815767 }, { - "connectionEstablishedSeconds": 0.121312037, - "uploadSeconds": 0.000001654, - "downloadSeconds": 0.060547465 + "connectionEstablishedSeconds": 0.124661338, + "uploadSeconds": 0.000001963, + "downloadSeconds": 0.062177125 }, { - "connectionEstablishedSeconds": 0.122529129, - "uploadSeconds": 0.000001707, - "downloadSeconds": 0.061278012 + "connectionEstablishedSeconds": 0.127367264, + "uploadSeconds": 0.00000224, + "downloadSeconds": 0.063558113 }, { - "connectionEstablishedSeconds": 0.124381818, - "uploadSeconds": 0.0000018, - "downloadSeconds": 0.062152704 + "connectionEstablishedSeconds": 0.127989448, + "uploadSeconds": 0.000001884, + "downloadSeconds": 0.06383298 }, { - "connectionEstablishedSeconds": 0.128386567, - "uploadSeconds": 0.000001871, - "downloadSeconds": 0.064107778 + "connectionEstablishedSeconds": 0.129170232, + "uploadSeconds": 0.000001974, + "downloadSeconds": 0.064357442 }, { - "connectionEstablishedSeconds": 0.124432618, - "uploadSeconds": 0.000002187, - "downloadSeconds": 0.062111675 + "connectionEstablishedSeconds": 0.122479616, + "uploadSeconds": 0.000001955, + "downloadSeconds": 0.061105045 }, { - "connectionEstablishedSeconds": 0.122760721, - "uploadSeconds": 0.000001701, - "downloadSeconds": 0.061269488 + "connectionEstablishedSeconds": 0.126765475, + "uploadSeconds": 0.000002041, + "downloadSeconds": 0.063167918 }, { - "connectionEstablishedSeconds": 0.128072419, - "uploadSeconds": 0.000001734, - "downloadSeconds": 0.064025897 + "connectionEstablishedSeconds": 0.123803367, + "uploadSeconds": 0.000001752, + "downloadSeconds": 0.061801678 }, { - "connectionEstablishedSeconds": 0.122439554, - "uploadSeconds": 0.000001733, - "downloadSeconds": 0.061688303 + "connectionEstablishedSeconds": 0.123552454, + "uploadSeconds": 0.00000165, + "downloadSeconds": 0.061673279 }, { - "connectionEstablishedSeconds": 0.126707428, - "uploadSeconds": 0.000001841, - "downloadSeconds": 0.063300849 + "connectionEstablishedSeconds": 0.120917013, + "uploadSeconds": 0.000001843, + "downloadSeconds": 0.060503667 }, { - "connectionEstablishedSeconds": 0.127912727, - "uploadSeconds": 0.000001708, - "downloadSeconds": 0.063919812 + "connectionEstablishedSeconds": 0.127367328, + "uploadSeconds": 0.00000168, + "downloadSeconds": 0.063582061 }, { - "connectionEstablishedSeconds": 0.124351399, - "uploadSeconds": 0.00000169, - "downloadSeconds": 0.062174378 + "connectionEstablishedSeconds": 0.127843871, + "uploadSeconds": 0.00000184, + "downloadSeconds": 0.06376099 }, { - "connectionEstablishedSeconds": 0.128863697, - "uploadSeconds": 0.000001952, - "downloadSeconds": 0.064418679 + "connectionEstablishedSeconds": 0.126403859, + "uploadSeconds": 0.000001954, + "downloadSeconds": 0.063040867 }, { - "connectionEstablishedSeconds": 0.124939359, - "uploadSeconds": 0.000001815, - "downloadSeconds": 0.062383218 + "connectionEstablishedSeconds": 0.123660718, + "uploadSeconds": 0.000002042, + "downloadSeconds": 0.06170693 }, { - "connectionEstablishedSeconds": 0.126117628, - "uploadSeconds": 0.00000186, - "downloadSeconds": 0.062959035 + "connectionEstablishedSeconds": 0.126043984, + "uploadSeconds": 0.000002, + "downloadSeconds": 0.06283842 }, { - "connectionEstablishedSeconds": 0.126695605, - "uploadSeconds": 0.000001936, - "downloadSeconds": 0.06329457 + "connectionEstablishedSeconds": 0.121012885, + "uploadSeconds": 0.00000178, + "downloadSeconds": 0.060430934 }, { - "connectionEstablishedSeconds": 0.124757281, - "uploadSeconds": 0.000001628, - "downloadSeconds": 0.062308171 + "connectionEstablishedSeconds": 0.120402559, + "uploadSeconds": 0.000002079, + "downloadSeconds": 0.060088674 }, { - "connectionEstablishedSeconds": 0.128362833, - "uploadSeconds": 0.000002231, - "downloadSeconds": 0.06391271 + "connectionEstablishedSeconds": 0.125819714, + "uploadSeconds": 0.000002017, + "downloadSeconds": 0.062758625 }, { - "connectionEstablishedSeconds": 0.123266961, - "uploadSeconds": 0.000001812, - "downloadSeconds": 0.061569255 + "connectionEstablishedSeconds": 0.121830498, + "uploadSeconds": 0.000001973, + "downloadSeconds": 0.060716951 }, { - "connectionEstablishedSeconds": 0.122151225, - "uploadSeconds": 0.000001659, - "downloadSeconds": 0.061032603 + "connectionEstablishedSeconds": 0.125600081, + "uploadSeconds": 0.00000208, + "downloadSeconds": 0.062676203 }, { - "connectionEstablishedSeconds": 0.123195246, - "uploadSeconds": 0.000001695, - "downloadSeconds": 0.061529918 + "connectionEstablishedSeconds": 0.123366678, + "uploadSeconds": 0.000001864, + "downloadSeconds": 0.061586898 }, { - "connectionEstablishedSeconds": 0.12781422, - "uploadSeconds": 0.000001661, - "downloadSeconds": 0.063801551 + "connectionEstablishedSeconds": 0.118127185, + "uploadSeconds": 0.000002, + "downloadSeconds": 0.05898421 }, { - "connectionEstablishedSeconds": 0.121333817, - "uploadSeconds": 0.000001559, - "downloadSeconds": 0.060559987 + "connectionEstablishedSeconds": 0.120584284, + "uploadSeconds": 0.000002113, + "downloadSeconds": 0.060024327 }, { - "connectionEstablishedSeconds": 0.123791514, - "uploadSeconds": 0.000001864, - "downloadSeconds": 0.061894562 + "connectionEstablishedSeconds": 0.122644564, + "uploadSeconds": 0.000001774, + "downloadSeconds": 0.061300817 }, { - "connectionEstablishedSeconds": 0.127907339, - "uploadSeconds": 0.000001657, - "downloadSeconds": 0.063909095 + "connectionEstablishedSeconds": 0.125063431, + "uploadSeconds": 0.000001783, + "downloadSeconds": 0.062469481 }, { - "connectionEstablishedSeconds": 0.120877209, - "uploadSeconds": 0.000001857, - "downloadSeconds": 0.060353253 + "connectionEstablishedSeconds": 0.120490954, + "uploadSeconds": 0.000001961, + "downloadSeconds": 0.060145176 }, { - "connectionEstablishedSeconds": 0.129040334, - "uploadSeconds": 0.000001794, - "downloadSeconds": 0.064492514 + "connectionEstablishedSeconds": 0.125387112, + "uploadSeconds": 0.00000187, + "downloadSeconds": 0.062572652 }, { - "connectionEstablishedSeconds": 0.118434801, - "uploadSeconds": 0.000001782, - "downloadSeconds": 0.059101595 + "connectionEstablishedSeconds": 0.125841897, + "uploadSeconds": 0.00000196, + "downloadSeconds": 0.062712834 }, { - "connectionEstablishedSeconds": 0.122249937, - "uploadSeconds": 0.000001637, - "downloadSeconds": 0.061033016 + "connectionEstablishedSeconds": 0.125229269, + "uploadSeconds": 0.000002044, + "downloadSeconds": 0.06242992 }, { - "connectionEstablishedSeconds": 0.127137679, - "uploadSeconds": 0.000001669, - "downloadSeconds": 0.063529225 + "connectionEstablishedSeconds": 0.124481006, + "uploadSeconds": 0.000001927, + "downloadSeconds": 0.06204001 }, { - "connectionEstablishedSeconds": 0.127508144, - "uploadSeconds": 0.000001594, - "downloadSeconds": 0.063692139 + "connectionEstablishedSeconds": 0.123964164, + "uploadSeconds": 0.0000019, + "downloadSeconds": 0.061908244 }, { - "connectionEstablishedSeconds": 0.126690808, - "uploadSeconds": 0.000001971, - "downloadSeconds": 0.063255092 + "connectionEstablishedSeconds": 0.124079589, + "uploadSeconds": 0.000002121, + "downloadSeconds": 0.061963061 }, { - "connectionEstablishedSeconds": 0.122374936, - "uploadSeconds": 0.000001928, - "downloadSeconds": 0.061093207 + "connectionEstablishedSeconds": 0.125630943, + "uploadSeconds": 0.000001899, + "downloadSeconds": 0.062740017 }, { - "connectionEstablishedSeconds": 0.126711611, - "uploadSeconds": 0.000001692, - "downloadSeconds": 0.063235949 + "connectionEstablishedSeconds": 0.120700277, + "uploadSeconds": 0.000002214, + "downloadSeconds": 0.060194727 }, { - "connectionEstablishedSeconds": 0.126206027, - "uploadSeconds": 0.000002214, - "downloadSeconds": 0.063002306 + "connectionEstablishedSeconds": 0.12406812, + "uploadSeconds": 0.000002027, + "downloadSeconds": 0.06188395 }, { - "connectionEstablishedSeconds": 0.123557442, - "uploadSeconds": 0.000001828, - "downloadSeconds": 0.061706717 + "connectionEstablishedSeconds": 0.130521979, + "uploadSeconds": 0.000001801, + "downloadSeconds": 0.065201309 }, { - "connectionEstablishedSeconds": 0.123377371, - "uploadSeconds": 0.000001664, - "downloadSeconds": 0.061611751 + "connectionEstablishedSeconds": 0.1280132, + "uploadSeconds": 0.00000204, + "downloadSeconds": 0.063880448 }, { - "connectionEstablishedSeconds": 0.124918307, - "uploadSeconds": 0.00000181, - "downloadSeconds": 0.062299247 + "connectionEstablishedSeconds": 0.126892964, + "uploadSeconds": 0.000002045, + "downloadSeconds": 0.063337609 }, { - "connectionEstablishedSeconds": 0.124519571, - "uploadSeconds": 0.0000018, - "downloadSeconds": 0.062158418 + "connectionEstablishedSeconds": 0.121141013, + "uploadSeconds": 0.000001881, + "downloadSeconds": 0.060402652 }, { - "connectionEstablishedSeconds": 0.127727308, - "uploadSeconds": 0.000001787, - "downloadSeconds": 0.06384063 + "connectionEstablishedSeconds": 0.125250104, + "uploadSeconds": 0.000002132, + "downloadSeconds": 0.062431249 }, { - "connectionEstablishedSeconds": 0.121857759, - "uploadSeconds": 0.000001675, - "downloadSeconds": 0.060830158 + "connectionEstablishedSeconds": 0.121159017, + "uploadSeconds": 0.000002044, + "downloadSeconds": 0.060452408 }, { - "connectionEstablishedSeconds": 0.1252348, - "uploadSeconds": 0.000001722, - "downloadSeconds": 0.062531923 + "connectionEstablishedSeconds": 0.126694711, + "uploadSeconds": 0.000002031, + "downloadSeconds": 0.063237758 }, { - "connectionEstablishedSeconds": 0.128058911, - "uploadSeconds": 0.000001866, - "downloadSeconds": 0.063971078 + "connectionEstablishedSeconds": 0.123084698, + "uploadSeconds": 0.000001837, + "downloadSeconds": 0.061382054 }, { - "connectionEstablishedSeconds": 0.122712487, - "uploadSeconds": 0.0000018, - "downloadSeconds": 0.061253969 + "connectionEstablishedSeconds": 0.127244033, + "uploadSeconds": 0.000002114, + "downloadSeconds": 0.063492354 }, { - "connectionEstablishedSeconds": 0.125598843, - "uploadSeconds": 0.000001733, - "downloadSeconds": 0.062679831 + "connectionEstablishedSeconds": 0.125894284, + "uploadSeconds": 0.000002149, + "downloadSeconds": 0.062775668 }, { - "connectionEstablishedSeconds": 0.127607096, - "uploadSeconds": 0.000001862, - "downloadSeconds": 0.063723857 + "connectionEstablishedSeconds": 0.127178195, + "uploadSeconds": 0.000001918, + "downloadSeconds": 0.063437603 }, { - "connectionEstablishedSeconds": 0.122365683, - "uploadSeconds": 0.000001874, - "downloadSeconds": 0.061111555 + "connectionEstablishedSeconds": 0.128176387, + "uploadSeconds": 0.000001704, + "downloadSeconds": 0.063964426 }, { - "connectionEstablishedSeconds": 0.127263098, - "uploadSeconds": 0.000001892, - "downloadSeconds": 0.063602516 + "connectionEstablishedSeconds": 0.128963986, + "uploadSeconds": 0.000002146, + "downloadSeconds": 0.064336002 }, { - "connectionEstablishedSeconds": 0.122675566, - "uploadSeconds": 0.000002023, - "downloadSeconds": 0.061285723 + "connectionEstablishedSeconds": 0.126871082, + "uploadSeconds": 0.000001989, + "downloadSeconds": 0.063348218 }, { - "connectionEstablishedSeconds": 0.124245756, - "uploadSeconds": 0.00000183, - "downloadSeconds": 0.061995454 + "connectionEstablishedSeconds": 0.126857157, + "uploadSeconds": 0.000002087, + "downloadSeconds": 0.063245194 }, { - "connectionEstablishedSeconds": 0.12645112, - "uploadSeconds": 0.000001792, - "downloadSeconds": 0.063177905 + "connectionEstablishedSeconds": 0.128080959, + "uploadSeconds": 0.00000182, + "downloadSeconds": 0.063950897 }, { - "connectionEstablishedSeconds": 0.126114342, - "uploadSeconds": 0.000001818, - "downloadSeconds": 0.062983754 + "connectionEstablishedSeconds": 0.120202774, + "uploadSeconds": 0.000002155, + "downloadSeconds": 0.059949375 }, { - "connectionEstablishedSeconds": 0.12989619, - "uploadSeconds": 0.000001829, - "downloadSeconds": 0.064899237 + "connectionEstablishedSeconds": 0.123289177, + "uploadSeconds": 0.000001739, + "downloadSeconds": 0.061597593 }, { - "connectionEstablishedSeconds": 0.124053057, - "uploadSeconds": 0.000001663, - "downloadSeconds": 0.061928184 + "connectionEstablishedSeconds": 0.121420988, + "uploadSeconds": 0.00000162, + "downloadSeconds": 0.060609643 }, { - "connectionEstablishedSeconds": 0.121044784, - "uploadSeconds": 0.000001726, - "downloadSeconds": 0.060426706 + "connectionEstablishedSeconds": 0.121140081, + "uploadSeconds": 0.000001649, + "downloadSeconds": 0.060475418 }, { - "connectionEstablishedSeconds": 0.128309323, - "uploadSeconds": 0.00000183, - "downloadSeconds": 0.064022123 + "connectionEstablishedSeconds": 0.125000042, + "uploadSeconds": 0.000001666, + "downloadSeconds": 0.062430941 }, { - "connectionEstablishedSeconds": 0.126038673, - "uploadSeconds": 0.000001828, - "downloadSeconds": 0.062922924 + "connectionEstablishedSeconds": 0.128665627, + "uploadSeconds": 0.000001714, + "downloadSeconds": 0.064227713 }, { - "connectionEstablishedSeconds": 0.129437853, - "uploadSeconds": 0.000001923, - "downloadSeconds": 0.064619704 + "connectionEstablishedSeconds": 0.120995827, + "uploadSeconds": 0.000001868, + "downloadSeconds": 0.060445289 }, { - "connectionEstablishedSeconds": 0.126566963, - "uploadSeconds": 0.000001939, - "downloadSeconds": 0.063208622 + "connectionEstablishedSeconds": 0.128091503, + "uploadSeconds": 0.000001563, + "downloadSeconds": 0.064019287 }, { - "connectionEstablishedSeconds": 0.125559459, - "uploadSeconds": 0.000001741, - "downloadSeconds": 0.062722745 + "connectionEstablishedSeconds": 0.12399953, + "uploadSeconds": 0.000001642, + "downloadSeconds": 0.061783456 }, { - "connectionEstablishedSeconds": 0.126466586, - "uploadSeconds": 0.000001666, - "downloadSeconds": 0.063173868 + "connectionEstablishedSeconds": 0.126914857, + "uploadSeconds": 0.000001781, + "downloadSeconds": 0.063383754 }, { - "connectionEstablishedSeconds": 0.122449873, - "uploadSeconds": 0.000001669, - "downloadSeconds": 0.061048241 + "connectionEstablishedSeconds": 0.122261894, + "uploadSeconds": 0.000001747, + "downloadSeconds": 0.061220394 }, { - "connectionEstablishedSeconds": 0.122366411, - "uploadSeconds": 0.000001782, - "downloadSeconds": 0.061100592 + "connectionEstablishedSeconds": 0.126204658, + "uploadSeconds": 0.000001679, + "downloadSeconds": 0.06306565 }, { - "connectionEstablishedSeconds": 0.128322408, - "uploadSeconds": 0.000001794, - "downloadSeconds": 0.064055552 + "connectionEstablishedSeconds": 0.127764665, + "uploadSeconds": 0.000001659, + "downloadSeconds": 0.063836994 }, { - "connectionEstablishedSeconds": 0.11862713, - "uploadSeconds": 0.000001585, - "downloadSeconds": 0.059270918 + "connectionEstablishedSeconds": 0.123105508, + "uploadSeconds": 0.000001715, + "downloadSeconds": 0.061462164 }, { - "connectionEstablishedSeconds": 0.12344625, - "uploadSeconds": 0.000001621, - "downloadSeconds": 0.061653469 + "connectionEstablishedSeconds": 0.129600918, + "uploadSeconds": 0.000001709, + "downloadSeconds": 0.064838782 }, { - "connectionEstablishedSeconds": 0.128076956, - "uploadSeconds": 0.000001906, - "downloadSeconds": 0.063964027 + "connectionEstablishedSeconds": 0.128904266, + "uploadSeconds": 0.000001822, + "downloadSeconds": 0.064360487 }, { - "connectionEstablishedSeconds": 0.128052495, - "uploadSeconds": 0.000001782, - "downloadSeconds": 0.063966066 + "connectionEstablishedSeconds": 0.126457766, + "uploadSeconds": 0.000001787, + "downloadSeconds": 0.063273887 }, { - "connectionEstablishedSeconds": 0.124643356, - "uploadSeconds": 0.000001779, - "downloadSeconds": 0.062262803 + "connectionEstablishedSeconds": 0.121326161, + "uploadSeconds": 0.000001728, + "downloadSeconds": 0.060589902 }, { - "connectionEstablishedSeconds": 0.128289351, - "uploadSeconds": 0.000001864, - "downloadSeconds": 0.064086809 + "connectionEstablishedSeconds": 0.121900959, + "uploadSeconds": 0.00000164, + "downloadSeconds": 0.060873223 }, { - "connectionEstablishedSeconds": 0.122094684, - "uploadSeconds": 0.000001771, - "downloadSeconds": 0.060957218 + "connectionEstablishedSeconds": 0.124135491, + "uploadSeconds": 0.000001691, + "downloadSeconds": 0.062049444 }, { - "connectionEstablishedSeconds": 0.122589418, - "uploadSeconds": 0.000001814, - "downloadSeconds": 0.061186266 + "connectionEstablishedSeconds": 0.125248622, + "uploadSeconds": 0.000001633, + "downloadSeconds": 0.062534825 }, { - "connectionEstablishedSeconds": 0.128022751, - "uploadSeconds": 0.000001649, - "downloadSeconds": 0.063909837 + "connectionEstablishedSeconds": 0.127479585, + "uploadSeconds": 0.000001606, + "downloadSeconds": 0.063652465 }, { - "connectionEstablishedSeconds": 0.120139804, - "uploadSeconds": 0.000001639, - "downloadSeconds": 0.059962477 + "connectionEstablishedSeconds": 0.120972738, + "uploadSeconds": 0.000001586, + "downloadSeconds": 0.060487395 }, { - "connectionEstablishedSeconds": 0.123965197, - "uploadSeconds": 0.000001695, - "downloadSeconds": 0.061910515 + "connectionEstablishedSeconds": 0.129764869, + "uploadSeconds": 0.00000159, + "downloadSeconds": 0.06481786 }, { - "connectionEstablishedSeconds": 0.129003872, - "uploadSeconds": 0.000001964, - "downloadSeconds": 0.064437571 + "connectionEstablishedSeconds": 0.121692305, + "uploadSeconds": 0.000001717, + "downloadSeconds": 0.060804818 }, { - "connectionEstablishedSeconds": 0.125273273, - "uploadSeconds": 0.00000167, - "downloadSeconds": 0.062608041 + "connectionEstablishedSeconds": 0.126831081, + "uploadSeconds": 0.000001729, + "downloadSeconds": 0.063355652 }, { - "connectionEstablishedSeconds": 0.124395803, - "uploadSeconds": 0.000001711, - "downloadSeconds": 0.062088105 + "connectionEstablishedSeconds": 0.127416961, + "uploadSeconds": 0.000001597, + "downloadSeconds": 0.063671584 }, { - "connectionEstablishedSeconds": 0.118248742, - "uploadSeconds": 0.000001884, - "downloadSeconds": 0.059030065 + "connectionEstablishedSeconds": 0.12808303, + "uploadSeconds": 0.000001724, + "downloadSeconds": 0.064026252 }, { - "connectionEstablishedSeconds": 0.12468695, - "uploadSeconds": 0.000001703, - "downloadSeconds": 0.062248412 + "connectionEstablishedSeconds": 0.123178631, + "uploadSeconds": 0.000001912, + "downloadSeconds": 0.061405582 }, { - "connectionEstablishedSeconds": 0.124129146, - "uploadSeconds": 0.000001654, - "downloadSeconds": 0.061975201 + "connectionEstablishedSeconds": 0.124060605, + "uploadSeconds": 0.00000233, + "downloadSeconds": 0.06191592 }, { - "connectionEstablishedSeconds": 0.124597114, - "uploadSeconds": 0.00000697, - "downloadSeconds": 0.062307603 + "connectionEstablishedSeconds": 0.121853909, + "uploadSeconds": 0.000001827, + "downloadSeconds": 0.060771816 }, { - "connectionEstablishedSeconds": 0.125130312, - "uploadSeconds": 0.000002146, - "downloadSeconds": 0.062495811 + "connectionEstablishedSeconds": 0.12484952, + "uploadSeconds": 0.000001897, + "downloadSeconds": 0.062289093 }, { - "connectionEstablishedSeconds": 0.128058525, - "uploadSeconds": 0.000001711, - "downloadSeconds": 0.064003315 + "connectionEstablishedSeconds": 0.127326742, + "uploadSeconds": 0.000001945, + "downloadSeconds": 0.063561913 }, { - "connectionEstablishedSeconds": 0.124293806, - "uploadSeconds": 0.000001842, - "downloadSeconds": 0.061592338 + "connectionEstablishedSeconds": 0.120865873, + "uploadSeconds": 0.000001997, + "downloadSeconds": 0.060261041 }, { - "connectionEstablishedSeconds": 0.12660551, - "uploadSeconds": 0.00000192, - "downloadSeconds": 0.063189559 + "connectionEstablishedSeconds": 0.122282942, + "uploadSeconds": 0.00000248, + "downloadSeconds": 0.061036943 }, { - "connectionEstablishedSeconds": 0.125876916, - "uploadSeconds": 0.000002427, - "downloadSeconds": 0.06282273 + "connectionEstablishedSeconds": 0.120202428, + "uploadSeconds": 0.000002037, + "downloadSeconds": 0.059941472 }, { - "connectionEstablishedSeconds": 0.120511336, - "uploadSeconds": 0.000001699, - "downloadSeconds": 0.060159333 + "connectionEstablishedSeconds": 0.12213982, + "uploadSeconds": 0.000001951, + "downloadSeconds": 0.060941954 }, { - "connectionEstablishedSeconds": 0.122895101, - "uploadSeconds": 0.000001704, - "downloadSeconds": 0.061372026 + "connectionEstablishedSeconds": 0.121626216, + "uploadSeconds": 0.000001936, + "downloadSeconds": 0.060661243 }, { - "connectionEstablishedSeconds": 0.129146262, - "uploadSeconds": 0.000001696, - "downloadSeconds": 0.064448929 + "connectionEstablishedSeconds": 0.127699298, + "uploadSeconds": 0.000001743, + "downloadSeconds": 0.063679197 }, { - "connectionEstablishedSeconds": 0.126989589, - "uploadSeconds": 0.000001595, - "downloadSeconds": 0.063359108 + "connectionEstablishedSeconds": 0.123009071, + "uploadSeconds": 0.000001915, + "downloadSeconds": 0.061372332 }, { - "connectionEstablishedSeconds": 0.124515358, - "uploadSeconds": 0.000001672, - "downloadSeconds": 0.062196377 + "connectionEstablishedSeconds": 0.122107169, + "uploadSeconds": 0.000001999, + "downloadSeconds": 0.060918777 }, { - "connectionEstablishedSeconds": 0.125877262, - "uploadSeconds": 0.00000182, - "downloadSeconds": 0.062827061 + "connectionEstablishedSeconds": 0.129022815, + "uploadSeconds": 0.000002242, + "downloadSeconds": 0.064376219 }, { - "connectionEstablishedSeconds": 0.121738236, - "uploadSeconds": 0.000010331, - "downloadSeconds": 0.060643958 + "connectionEstablishedSeconds": 0.128917551, + "uploadSeconds": 0.000001854, + "downloadSeconds": 0.064375063 }, { - "connectionEstablishedSeconds": 0.123796092, - "uploadSeconds": 0.000001679, - "downloadSeconds": 0.061779824 + "connectionEstablishedSeconds": 0.125109078, + "uploadSeconds": 0.000001944, + "downloadSeconds": 0.062407769 }, { - "connectionEstablishedSeconds": 0.124448348, - "uploadSeconds": 0.000001759, - "downloadSeconds": 0.062178093 + "connectionEstablishedSeconds": 0.125290466, + "uploadSeconds": 0.000002176, + "downloadSeconds": 0.062541654 } ], "implementation": "rust-libp2p", @@ -1489,504 +1489,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.063257752, - "uploadSeconds": 0.061878279, - "downloadSeconds": 0.000102898 + "connectionEstablishedSeconds": 0.062865436, + "uploadSeconds": 0.061487851, + "downloadSeconds": 0.000077862 }, { - "connectionEstablishedSeconds": 0.062952025, - "uploadSeconds": 0.061652308, - "downloadSeconds": 0.000101063 + "connectionEstablishedSeconds": 0.064871544, + "uploadSeconds": 0.063420631, + "downloadSeconds": 0.000084243 }, { - "connectionEstablishedSeconds": 0.066167662, - "uploadSeconds": 0.06484377, - "downloadSeconds": 0.000074516 + "connectionEstablishedSeconds": 0.064947981, + "uploadSeconds": 0.063496596, + "downloadSeconds": 0.000079279 }, { - "connectionEstablishedSeconds": 0.063759391, - "uploadSeconds": 0.06238371, - "downloadSeconds": 0.000079069 + "connectionEstablishedSeconds": 0.064753685, + "uploadSeconds": 0.063147444, + "downloadSeconds": 0.000075299 }, { - "connectionEstablishedSeconds": 0.064380168, - "uploadSeconds": 0.06308419, - "downloadSeconds": 0.000079214 + "connectionEstablishedSeconds": 0.063949209, + "uploadSeconds": 0.062408882, + "downloadSeconds": 0.000081667 }, { - "connectionEstablishedSeconds": 0.064026004, - "uploadSeconds": 0.062669232, - "downloadSeconds": 0.000077651 + "connectionEstablishedSeconds": 0.063854523, + "uploadSeconds": 0.062367597, + "downloadSeconds": 0.000091979 }, { - "connectionEstablishedSeconds": 0.064249131, - "uploadSeconds": 0.062960135, - "downloadSeconds": 0.000079878 + "connectionEstablishedSeconds": 0.066615921, + "uploadSeconds": 0.065045476, + "downloadSeconds": 0.000042544 }, { - "connectionEstablishedSeconds": 0.062635373, - "uploadSeconds": 0.061317931, - "downloadSeconds": 0.000077502 + "connectionEstablishedSeconds": 0.059508581, + "uploadSeconds": 0.058020007, + "downloadSeconds": 0.00009674 }, { - "connectionEstablishedSeconds": 0.063581254, - "uploadSeconds": 0.062217815, - "downloadSeconds": 0.000084164 + "connectionEstablishedSeconds": 0.061656679, + "uploadSeconds": 0.060028485, + "downloadSeconds": 0.00007702 }, { - "connectionEstablishedSeconds": 0.065975247, - "uploadSeconds": 0.064569197, - "downloadSeconds": 0.000074938 + "connectionEstablishedSeconds": 0.062431924, + "uploadSeconds": 0.060952973, + "downloadSeconds": 0.000079764 }, { - "connectionEstablishedSeconds": 0.06622112, - "uploadSeconds": 0.064883374, - "downloadSeconds": 0.000085421 + "connectionEstablishedSeconds": 0.065163809, + "uploadSeconds": 0.063583002, + "downloadSeconds": 0.000056389 }, { - "connectionEstablishedSeconds": 0.062712669, - "uploadSeconds": 0.061584012, - "downloadSeconds": 0.00008273 + "connectionEstablishedSeconds": 0.066080324, + "uploadSeconds": 0.064495727, + "downloadSeconds": 0.000084783 }, { - "connectionEstablishedSeconds": 0.064869871, - "uploadSeconds": 0.063499577, - "downloadSeconds": 0.000077601 + "connectionEstablishedSeconds": 0.065379927, + "uploadSeconds": 0.063796307, + "downloadSeconds": 0.000083215 }, { - "connectionEstablishedSeconds": 0.065307492, - "uploadSeconds": 0.063949987, - "downloadSeconds": 0.000044744 + "connectionEstablishedSeconds": 0.062499836, + "uploadSeconds": 0.060962733, + "downloadSeconds": 0.000080674 }, { - "connectionEstablishedSeconds": 0.063255566, - "uploadSeconds": 0.061852884, - "downloadSeconds": 0.000090197 + "connectionEstablishedSeconds": 0.065112372, + "uploadSeconds": 0.063614107, + "downloadSeconds": 0.000077436 }, { - "connectionEstablishedSeconds": 0.06152507, - "uploadSeconds": 0.060321177, - "downloadSeconds": 0.000050528 + "connectionEstablishedSeconds": 0.063911254, + "uploadSeconds": 0.062373491, + "downloadSeconds": 0.000090998 }, { - "connectionEstablishedSeconds": 0.06517706, - "uploadSeconds": 0.063842125, - "downloadSeconds": 0.000082184 + "connectionEstablishedSeconds": 0.066593574, + "uploadSeconds": 0.064997773, + "downloadSeconds": 0.00004441 }, { - "connectionEstablishedSeconds": 0.063764411, - "uploadSeconds": 0.062444077, - "downloadSeconds": 0.000071402 + "connectionEstablishedSeconds": 0.066388651, + "uploadSeconds": 0.064938244, + "downloadSeconds": 0.000086998 }, { - "connectionEstablishedSeconds": 0.06491776, - "uploadSeconds": 0.06358971, - "downloadSeconds": 0.000079039 + "connectionEstablishedSeconds": 0.06543506, + "uploadSeconds": 0.063801276, + "downloadSeconds": 0.000094974 }, { - "connectionEstablishedSeconds": 0.063835785, - "uploadSeconds": 0.062456096, - "downloadSeconds": 0.000077111 + "connectionEstablishedSeconds": 0.060545275, + "uploadSeconds": 0.059119123, + "downloadSeconds": 0.000152499 }, { - "connectionEstablishedSeconds": 0.065213991, - "uploadSeconds": 0.063831148, - "downloadSeconds": 0.000072372 + "connectionEstablishedSeconds": 0.064548419, + "uploadSeconds": 0.062972754, + "downloadSeconds": 0.00008001 }, { - "connectionEstablishedSeconds": 0.063857203, - "uploadSeconds": 0.06243492, - "downloadSeconds": 0.000074971 + "connectionEstablishedSeconds": 0.064446347, + "uploadSeconds": 0.062956684, + "downloadSeconds": 0.000089736 }, { - "connectionEstablishedSeconds": 0.065228642, - "uploadSeconds": 0.064247805, - "downloadSeconds": 0.000073201 + "connectionEstablishedSeconds": 0.065574345, + "uploadSeconds": 0.064160318, + "downloadSeconds": 0.0000807 }, { - "connectionEstablishedSeconds": 0.064219065, - "uploadSeconds": 0.062879303, - "downloadSeconds": 0.000087899 + "connectionEstablishedSeconds": 0.062409014, + "uploadSeconds": 0.060846554, + "downloadSeconds": 0.000088735 }, { - "connectionEstablishedSeconds": 0.065993171, - "uploadSeconds": 0.064646618, - "downloadSeconds": 0.000074434 + "connectionEstablishedSeconds": 0.062886788, + "uploadSeconds": 0.061462396, + "downloadSeconds": 0.000079566 }, { - "connectionEstablishedSeconds": 0.06188298, - "uploadSeconds": 0.060476557, - "downloadSeconds": 0.000076633 + "connectionEstablishedSeconds": 0.064775674, + "uploadSeconds": 0.063408894, + "downloadSeconds": 0.000077097 }, { - "connectionEstablishedSeconds": 0.06267738, - "uploadSeconds": 0.061367179, - "downloadSeconds": 0.000087659 + "connectionEstablishedSeconds": 0.062797464, + "uploadSeconds": 0.061316846, + "downloadSeconds": 0.000076055 }, { - "connectionEstablishedSeconds": 0.062727636, - "uploadSeconds": 0.061417017, - "downloadSeconds": 0.000078944 + "connectionEstablishedSeconds": 0.062601891, + "uploadSeconds": 0.061019989, + "downloadSeconds": 0.000089602 }, { - "connectionEstablishedSeconds": 0.065360407, - "uploadSeconds": 0.064065799, - "downloadSeconds": 0.000117038 + "connectionEstablishedSeconds": 0.063701816, + "uploadSeconds": 0.06223561, + "downloadSeconds": 0.000089269 }, { - "connectionEstablishedSeconds": 0.064415196, - "uploadSeconds": 0.063002004, - "downloadSeconds": 0.000082966 + "connectionEstablishedSeconds": 0.064377978, + "uploadSeconds": 0.062992878, + "downloadSeconds": 0.000104794 }, { - "connectionEstablishedSeconds": 0.062447721, - "uploadSeconds": 0.061054353, - "downloadSeconds": 0.000075476 + "connectionEstablishedSeconds": 0.062320894, + "uploadSeconds": 0.060919413, + "downloadSeconds": 0.000084472 }, { - "connectionEstablishedSeconds": 0.06519953, - "uploadSeconds": 0.063688796, - "downloadSeconds": 0.000241966 + "connectionEstablishedSeconds": 0.062763381, + "uploadSeconds": 0.061275513, + "downloadSeconds": 0.000099264 }, { - "connectionEstablishedSeconds": 0.06606042, - "uploadSeconds": 0.065138897, - "downloadSeconds": 0.000046599 + "connectionEstablishedSeconds": 0.065130202, + "uploadSeconds": 0.06371407, + "downloadSeconds": 0.000084153 }, { - "connectionEstablishedSeconds": 0.064930903, - "uploadSeconds": 0.063575798, - "downloadSeconds": 0.000012397 + "connectionEstablishedSeconds": 0.064644192, + "uploadSeconds": 0.063106814, + "downloadSeconds": 0.000095594 }, { - "connectionEstablishedSeconds": 0.064589451, - "uploadSeconds": 0.063213078, - "downloadSeconds": 0.000083414 + "connectionEstablishedSeconds": 0.063155975, + "uploadSeconds": 0.06161484, + "downloadSeconds": 0.000091456 }, { - "connectionEstablishedSeconds": 0.064499906, - "uploadSeconds": 0.063106063, - "downloadSeconds": 0.000086556 + "connectionEstablishedSeconds": 0.062708923, + "uploadSeconds": 0.061213453, + "downloadSeconds": 0.000069646 }, { - "connectionEstablishedSeconds": 0.065364914, - "uploadSeconds": 0.064143288, - "downloadSeconds": 0.000086138 + "connectionEstablishedSeconds": 0.065082593, + "uploadSeconds": 0.063685833, + "downloadSeconds": 0.000080667 }, { - "connectionEstablishedSeconds": 0.063940234, - "uploadSeconds": 0.062559126, - "downloadSeconds": 0.000037631 + "connectionEstablishedSeconds": 0.064759421, + "uploadSeconds": 0.063291331, + "downloadSeconds": 0.00011043 }, { - "connectionEstablishedSeconds": 0.062382424, - "uploadSeconds": 0.060956143, - "downloadSeconds": 0.000082692 + "connectionEstablishedSeconds": 0.065720272, + "uploadSeconds": 0.064282579, + "downloadSeconds": 0.000021286 }, { - "connectionEstablishedSeconds": 0.064239148, - "uploadSeconds": 0.062902449, - "downloadSeconds": 0.000081257 + "connectionEstablishedSeconds": 0.066243799, + "uploadSeconds": 0.064676631, + "downloadSeconds": 0.00007533 }, { - "connectionEstablishedSeconds": 0.063927216, - "uploadSeconds": 0.062593202, - "downloadSeconds": 0.000075774 + "connectionEstablishedSeconds": 0.065104578, + "uploadSeconds": 0.063679467, + "downloadSeconds": 0.000067506 }, { - "connectionEstablishedSeconds": 0.063316938, - "uploadSeconds": 0.062124715, - "downloadSeconds": 0.000074621 + "connectionEstablishedSeconds": 0.063477089, + "uploadSeconds": 0.061886515, + "downloadSeconds": 0.000084135 }, { - "connectionEstablishedSeconds": 0.065097133, - "uploadSeconds": 0.06366093, - "downloadSeconds": 0.000069793 + "connectionEstablishedSeconds": 0.064291074, + "uploadSeconds": 0.062884761, + "downloadSeconds": 0.000091725 }, { - "connectionEstablishedSeconds": 0.065419145, - "uploadSeconds": 0.064052135, - "downloadSeconds": 0.000083853 + "connectionEstablishedSeconds": 0.062949803, + "uploadSeconds": 0.061656209, + "downloadSeconds": 0.00016127 }, { - "connectionEstablishedSeconds": 0.063073795, - "uploadSeconds": 0.06170365, - "downloadSeconds": 0.000076509 + "connectionEstablishedSeconds": 0.065944203, + "uploadSeconds": 0.064454213, + "downloadSeconds": 0.00010313 }, { - "connectionEstablishedSeconds": 0.063296853, - "uploadSeconds": 0.062047312, - "downloadSeconds": 0.0000876 + "connectionEstablishedSeconds": 0.062548381, + "uploadSeconds": 0.061041945, + "downloadSeconds": 0.000086047 }, { - "connectionEstablishedSeconds": 0.061398114, - "uploadSeconds": 0.060639764, - "downloadSeconds": 0.000121588 + "connectionEstablishedSeconds": 0.064373075, + "uploadSeconds": 0.062766749, + "downloadSeconds": 0.000086884 }, { - "connectionEstablishedSeconds": 0.06208718, - "uploadSeconds": 0.060714176, - "downloadSeconds": 0.000077028 + "connectionEstablishedSeconds": 0.065442864, + "uploadSeconds": 0.063965697, + "downloadSeconds": 0.000078508 }, { - "connectionEstablishedSeconds": 0.066243039, - "uploadSeconds": 0.064776812, - "downloadSeconds": 0.000077635 + "connectionEstablishedSeconds": 0.064090366, + "uploadSeconds": 0.062611861, + "downloadSeconds": 0.000094339 }, { - "connectionEstablishedSeconds": 0.064423632, - "uploadSeconds": 0.063122409, - "downloadSeconds": 0.00007297 + "connectionEstablishedSeconds": 0.062328414, + "uploadSeconds": 0.060780703, + "downloadSeconds": 0.000093392 }, { - "connectionEstablishedSeconds": 0.063248546, - "uploadSeconds": 0.062105778, - "downloadSeconds": 0.000072681 + "connectionEstablishedSeconds": 0.065521301, + "uploadSeconds": 0.0639605, + "downloadSeconds": 0.00009032 }, { - "connectionEstablishedSeconds": 0.064744826, - "uploadSeconds": 0.063594385, - "downloadSeconds": 0.000075898 + "connectionEstablishedSeconds": 0.063330097, + "uploadSeconds": 0.061861947, + "downloadSeconds": 0.000085189 }, { - "connectionEstablishedSeconds": 0.064997825, - "uploadSeconds": 0.063641084, - "downloadSeconds": 0.000033492 + "connectionEstablishedSeconds": 0.062504607, + "uploadSeconds": 0.061069542, + "downloadSeconds": 0.000093704 }, { - "connectionEstablishedSeconds": 0.063296394, - "uploadSeconds": 0.061948588, - "downloadSeconds": 0.00006432 + "connectionEstablishedSeconds": 0.065428798, + "uploadSeconds": 0.063930396, + "downloadSeconds": 0.000090345 }, { - "connectionEstablishedSeconds": 0.065327883, - "uploadSeconds": 0.064033786, - "downloadSeconds": 0.000070056 + "connectionEstablishedSeconds": 0.066120899, + "uploadSeconds": 0.064635411, + "downloadSeconds": 0.000101006 }, { - "connectionEstablishedSeconds": 0.062977683, - "uploadSeconds": 0.061582017, - "downloadSeconds": 0.000057854 + "connectionEstablishedSeconds": 0.063441654, + "uploadSeconds": 0.061950059, + "downloadSeconds": 0.000085507 }, { - "connectionEstablishedSeconds": 0.064605457, - "uploadSeconds": 0.063267915, - "downloadSeconds": 0.000072283 + "connectionEstablishedSeconds": 0.06192081, + "uploadSeconds": 0.060446516, + "downloadSeconds": 0.000086801 }, { - "connectionEstablishedSeconds": 0.065617917, - "uploadSeconds": 0.064263964, - "downloadSeconds": 0.000103446 + "connectionEstablishedSeconds": 0.064780798, + "uploadSeconds": 0.06328297, + "downloadSeconds": 0.000082797 }, { - "connectionEstablishedSeconds": 0.062099522, - "uploadSeconds": 0.060776365, - "downloadSeconds": 0.000074521 + "connectionEstablishedSeconds": 0.065230626, + "uploadSeconds": 0.063956107, + "downloadSeconds": 0.000087041 }, { - "connectionEstablishedSeconds": 0.066287637, - "uploadSeconds": 0.064976443, - "downloadSeconds": 0.000079612 + "connectionEstablishedSeconds": 0.064336733, + "uploadSeconds": 0.062975047, + "downloadSeconds": 0.000057564 }, { - "connectionEstablishedSeconds": 0.065759998, - "uploadSeconds": 0.064081755, - "downloadSeconds": 0.000085913 + "connectionEstablishedSeconds": 0.063940465, + "uploadSeconds": 0.062386775, + "downloadSeconds": 0.000056524 }, { - "connectionEstablishedSeconds": 0.062490144, - "uploadSeconds": 0.061099903, - "downloadSeconds": 0.000074025 + "connectionEstablishedSeconds": 0.063153397, + "uploadSeconds": 0.061634663, + "downloadSeconds": 0.000089378 }, { - "connectionEstablishedSeconds": 0.064250861, - "uploadSeconds": 0.062912494, - "downloadSeconds": 0.000053518 + "connectionEstablishedSeconds": 0.062881309, + "uploadSeconds": 0.061372944, + "downloadSeconds": 0.000014302 }, { - "connectionEstablishedSeconds": 0.064214955, - "uploadSeconds": 0.062836093, - "downloadSeconds": 0.000073779 + "connectionEstablishedSeconds": 0.065793862, + "uploadSeconds": 0.064378747, + "downloadSeconds": 0.000092222 }, { - "connectionEstablishedSeconds": 0.065649108, - "uploadSeconds": 0.064302593, - "downloadSeconds": 0.000089556 + "connectionEstablishedSeconds": 0.062229183, + "uploadSeconds": 0.060670133, + "downloadSeconds": 0.000079002 }, { - "connectionEstablishedSeconds": 0.064106778, - "uploadSeconds": 0.062602081, - "downloadSeconds": 0.000074866 + "connectionEstablishedSeconds": 0.064045912, + "uploadSeconds": 0.062547321, + "downloadSeconds": 0.000068752 }, { - "connectionEstablishedSeconds": 0.0626398, - "uploadSeconds": 0.061006656, - "downloadSeconds": 0.000081926 + "connectionEstablishedSeconds": 0.065267324, + "uploadSeconds": 0.063865416, + "downloadSeconds": 0.000074088 }, { - "connectionEstablishedSeconds": 0.061814729, - "uploadSeconds": 0.060554102, - "downloadSeconds": 0.000034304 + "connectionEstablishedSeconds": 0.064339884, + "uploadSeconds": 0.062948599, + "downloadSeconds": 0.000073878 }, { - "connectionEstablishedSeconds": 0.061917904, - "uploadSeconds": 0.060510557, - "downloadSeconds": 0.000078039 + "connectionEstablishedSeconds": 0.066475572, + "uploadSeconds": 0.065188484, + "downloadSeconds": 0.00008183 }, { - "connectionEstablishedSeconds": 0.064831765, - "uploadSeconds": 0.063412033, - "downloadSeconds": 0.000076381 + "connectionEstablishedSeconds": 0.065496292, + "uploadSeconds": 0.064038299, + "downloadSeconds": 0.000054166 }, { - "connectionEstablishedSeconds": 0.064330491, - "uploadSeconds": 0.062809701, - "downloadSeconds": 0.000075685 + "connectionEstablishedSeconds": 0.063902925, + "uploadSeconds": 0.062423837, + "downloadSeconds": 0.000080288 }, { - "connectionEstablishedSeconds": 0.064824202, - "uploadSeconds": 0.063481323, - "downloadSeconds": 0.000090581 + "connectionEstablishedSeconds": 0.06604371, + "uploadSeconds": 0.064533194, + "downloadSeconds": 0.000049286 }, { - "connectionEstablishedSeconds": 0.063275122, - "uploadSeconds": 0.061961777, - "downloadSeconds": 0.000032939 + "connectionEstablishedSeconds": 0.062986941, + "uploadSeconds": 0.06151522, + "downloadSeconds": 0.000072148 }, { - "connectionEstablishedSeconds": 0.063108036, - "uploadSeconds": 0.061784369, - "downloadSeconds": 0.000079742 + "connectionEstablishedSeconds": 0.064172058, + "uploadSeconds": 0.062834729, + "downloadSeconds": 0.000081714 }, { - "connectionEstablishedSeconds": 0.063635633, - "uploadSeconds": 0.062247393, - "downloadSeconds": 0.000079612 + "connectionEstablishedSeconds": 0.063963896, + "uploadSeconds": 0.062563989, + "downloadSeconds": 0.000080245 }, { - "connectionEstablishedSeconds": 0.061361719, - "uploadSeconds": 0.060015032, - "downloadSeconds": 0.000085874 + "connectionEstablishedSeconds": 0.063585543, + "uploadSeconds": 0.062314249, + "downloadSeconds": 0.000076655 }, { - "connectionEstablishedSeconds": 0.061396301, - "uploadSeconds": 0.060029398, - "downloadSeconds": 0.000068314 + "connectionEstablishedSeconds": 0.062428317, + "uploadSeconds": 0.060851752, + "downloadSeconds": 0.00010259 }, { - "connectionEstablishedSeconds": 0.065079631, - "uploadSeconds": 0.063514831, - "downloadSeconds": 0.000240961 + "connectionEstablishedSeconds": 0.065131812, + "uploadSeconds": 0.063703607, + "downloadSeconds": 0.000085953 }, { - "connectionEstablishedSeconds": 0.063512261, - "uploadSeconds": 0.062147122, - "downloadSeconds": 0.000088158 + "connectionEstablishedSeconds": 0.064109898, + "uploadSeconds": 0.062582567, + "downloadSeconds": 0.000091137 }, { - "connectionEstablishedSeconds": 0.064000309, - "uploadSeconds": 0.062692444, - "downloadSeconds": 0.000069012 + "connectionEstablishedSeconds": 0.064474127, + "uploadSeconds": 0.062859402, + "downloadSeconds": 0.00009084 }, { - "connectionEstablishedSeconds": 0.062198236, - "uploadSeconds": 0.060801307, - "downloadSeconds": 0.000085906 + "connectionEstablishedSeconds": 0.063433636, + "uploadSeconds": 0.062060815, + "downloadSeconds": 0.000081587 }, { - "connectionEstablishedSeconds": 0.06604594, - "uploadSeconds": 0.064755756, - "downloadSeconds": 0.000043128 + "connectionEstablishedSeconds": 0.062763514, + "uploadSeconds": 0.06099925, + "downloadSeconds": 0.000089892 }, { - "connectionEstablishedSeconds": 0.066042764, - "uploadSeconds": 0.064601542, - "downloadSeconds": 0.000061757 + "connectionEstablishedSeconds": 0.063113345, + "uploadSeconds": 0.061645392, + "downloadSeconds": 0.000092456 }, { - "connectionEstablishedSeconds": 0.062640348, - "uploadSeconds": 0.061223274, - "downloadSeconds": 0.000088744 + "connectionEstablishedSeconds": 0.061861478, + "uploadSeconds": 0.060287224, + "downloadSeconds": 0.000079209 }, { - "connectionEstablishedSeconds": 0.065357167, - "uploadSeconds": 0.064097735, - "downloadSeconds": 0.000077609 + "connectionEstablishedSeconds": 0.064934032, + "uploadSeconds": 0.063540396, + "downloadSeconds": 0.000103942 }, { - "connectionEstablishedSeconds": 0.062347367, - "uploadSeconds": 0.061039715, - "downloadSeconds": 0.000085032 + "connectionEstablishedSeconds": 0.062558493, + "uploadSeconds": 0.061039599, + "downloadSeconds": 0.000105559 }, { - "connectionEstablishedSeconds": 0.065302042, - "uploadSeconds": 0.063912661, - "downloadSeconds": 0.000077526 + "connectionEstablishedSeconds": 0.062461342, + "uploadSeconds": 0.060998026, + "downloadSeconds": 0.000079211 }, { - "connectionEstablishedSeconds": 0.065216012, - "uploadSeconds": 0.063864007, - "downloadSeconds": 0.000074128 + "connectionEstablishedSeconds": 0.064963148, + "uploadSeconds": 0.063440355, + "downloadSeconds": 0.000128379 }, { - "connectionEstablishedSeconds": 0.064335646, - "uploadSeconds": 0.062993498, - "downloadSeconds": 0.000099046 + "connectionEstablishedSeconds": 0.064086958, + "uploadSeconds": 0.06267439, + "downloadSeconds": 0.000055328 }, { - "connectionEstablishedSeconds": 0.066534805, - "uploadSeconds": 0.065147601, - "downloadSeconds": 0.000074264 + "connectionEstablishedSeconds": 0.063558149, + "uploadSeconds": 0.062030811, + "downloadSeconds": 0.000092141 }, { - "connectionEstablishedSeconds": 0.064137312, - "uploadSeconds": 0.062757462, - "downloadSeconds": 0.000097806 + "connectionEstablishedSeconds": 0.063304619, + "uploadSeconds": 0.061878132, + "downloadSeconds": 0.000047941 }, { - "connectionEstablishedSeconds": 0.063796774, - "uploadSeconds": 0.062519867, - "downloadSeconds": 0.000075917 + "connectionEstablishedSeconds": 0.063461437, + "uploadSeconds": 0.062010201, + "downloadSeconds": 0.000097417 }, { - "connectionEstablishedSeconds": 0.063841773, - "uploadSeconds": 0.062586083, - "downloadSeconds": 0.000076575 + "connectionEstablishedSeconds": 0.065196537, + "uploadSeconds": 0.063593816, + "downloadSeconds": 0.000101259 }, { - "connectionEstablishedSeconds": 0.064735616, - "uploadSeconds": 0.063326263, - "downloadSeconds": 0.000077619 + "connectionEstablishedSeconds": 0.064749236, + "uploadSeconds": 0.063287594, + "downloadSeconds": 0.000074502 }, { - "connectionEstablishedSeconds": 0.062305278, - "uploadSeconds": 0.061001317, - "downloadSeconds": 0.000083401 + "connectionEstablishedSeconds": 0.06230025, + "uploadSeconds": 0.060811088, + "downloadSeconds": 0.000094483 }, { - "connectionEstablishedSeconds": 0.063175535, - "uploadSeconds": 0.0617513, - "downloadSeconds": 0.000080892 + "connectionEstablishedSeconds": 0.061935574, + "uploadSeconds": 0.060392553, + "downloadSeconds": 0.000104253 }, { - "connectionEstablishedSeconds": 0.061668919, - "uploadSeconds": 0.060278846, - "downloadSeconds": 0.000082534 + "connectionEstablishedSeconds": 0.065362872, + "uploadSeconds": 0.063935425, + "downloadSeconds": 0.000056902 }, { - "connectionEstablishedSeconds": 0.065713014, - "uploadSeconds": 0.064404475, - "downloadSeconds": 0.000079107 + "connectionEstablishedSeconds": 0.064596605, + "uploadSeconds": 0.063039911, + "downloadSeconds": 0.000090452 }, { - "connectionEstablishedSeconds": 0.064854742, - "uploadSeconds": 0.063502029, - "downloadSeconds": 0.000082711 + "connectionEstablishedSeconds": 0.062109338, + "uploadSeconds": 0.060577921, + "downloadSeconds": 0.000104947 }, { - "connectionEstablishedSeconds": 0.06462043, - "uploadSeconds": 0.063374377, - "downloadSeconds": 0.000078422 + "connectionEstablishedSeconds": 0.063893395, + "uploadSeconds": 0.062458605, + "downloadSeconds": 0.000073112 } ], "implementation": "rust-libp2p", @@ -1996,504 +1996,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.064989847, - "uploadSeconds": 0.126199519, - "downloadSeconds": 0.000041651 + "connectionEstablishedSeconds": 0.06277137, + "uploadSeconds": 0.060733951, + "downloadSeconds": 0.000306909 }, { - "connectionEstablishedSeconds": 0.064525983, - "uploadSeconds": 0.125617255, - "downloadSeconds": 0.00006148 + "connectionEstablishedSeconds": 0.062512019, + "uploadSeconds": 0.060731917, + "downloadSeconds": 0.000238689 }, { - "connectionEstablishedSeconds": 0.065716862, - "uploadSeconds": 0.127757205, - "downloadSeconds": 0.000042941 + "connectionEstablishedSeconds": 0.06625714, + "uploadSeconds": 0.064595448, + "downloadSeconds": 0.000166766 }, { - "connectionEstablishedSeconds": 0.065997867, - "uploadSeconds": 0.128689895, - "downloadSeconds": 0.000044761 + "connectionEstablishedSeconds": 0.064197297, + "uploadSeconds": 0.062478119, + "downloadSeconds": 0.000170833 }, { - "connectionEstablishedSeconds": 0.063130493, - "uploadSeconds": 0.1230169, - "downloadSeconds": 0.000034771 + "connectionEstablishedSeconds": 0.065478954, + "uploadSeconds": 0.063751405, + "downloadSeconds": 0.000152644 }, { - "connectionEstablishedSeconds": 0.063442004, - "uploadSeconds": 0.123935778, - "downloadSeconds": 0.000053474 + "connectionEstablishedSeconds": 0.063550367, + "uploadSeconds": 0.061830897, + "downloadSeconds": 0.000188575 }, { - "connectionEstablishedSeconds": 0.063409803, - "uploadSeconds": 0.123699864, - "downloadSeconds": 0.000061715 + "connectionEstablishedSeconds": 0.063527744, + "uploadSeconds": 0.06182121, + "downloadSeconds": 0.00015224 }, { - "connectionEstablishedSeconds": 0.066007623, - "uploadSeconds": 0.128849238, - "downloadSeconds": 0.00004131 + "connectionEstablishedSeconds": 0.065661804, + "uploadSeconds": 0.063940506, + "downloadSeconds": 0.000172961 }, { - "connectionEstablishedSeconds": 0.064361292, - "uploadSeconds": 0.125445961, - "downloadSeconds": 0.000118936 + "connectionEstablishedSeconds": 0.065612578, + "uploadSeconds": 0.064047862, + "downloadSeconds": 0.000143857 }, { - "connectionEstablishedSeconds": 0.06448392, - "uploadSeconds": 0.125774894, - "downloadSeconds": 0.000065156 + "connectionEstablishedSeconds": 0.064190099, + "uploadSeconds": 0.062550382, + "downloadSeconds": 0.000147368 }, { - "connectionEstablishedSeconds": 0.062574302, - "uploadSeconds": 0.121980267, - "downloadSeconds": 0.000042611 + "connectionEstablishedSeconds": 0.065222385, + "uploadSeconds": 0.063589251, + "downloadSeconds": 0.000212523 }, { - "connectionEstablishedSeconds": 0.062807081, - "uploadSeconds": 0.122211694, - "downloadSeconds": 0.000044252 + "connectionEstablishedSeconds": 0.065577328, + "uploadSeconds": 0.063807502, + "downloadSeconds": 0.000153616 }, { - "connectionEstablishedSeconds": 0.065070502, - "uploadSeconds": 0.126946249, - "downloadSeconds": 0.000043436 + "connectionEstablishedSeconds": 0.06500279, + "uploadSeconds": 0.063196092, + "downloadSeconds": 0.000162335 }, { - "connectionEstablishedSeconds": 0.065297089, - "uploadSeconds": 0.127560699, - "downloadSeconds": 0.000050637 + "connectionEstablishedSeconds": 0.066048987, + "uploadSeconds": 0.064452324, + "downloadSeconds": 0.00017652 }, { - "connectionEstablishedSeconds": 0.06286966, - "uploadSeconds": 0.122957993, - "downloadSeconds": 0.000073073 + "connectionEstablishedSeconds": 0.065267424, + "uploadSeconds": 0.06371593, + "downloadSeconds": 0.000176883 }, { - "connectionEstablishedSeconds": 0.0656597, - "uploadSeconds": 0.128210876, - "downloadSeconds": 0.000071043 + "connectionEstablishedSeconds": 0.062768405, + "uploadSeconds": 0.061265934, + "downloadSeconds": 0.000176763 }, { - "connectionEstablishedSeconds": 0.062683488, - "uploadSeconds": 0.121490218, - "downloadSeconds": 0.000044258 + "connectionEstablishedSeconds": 0.06080528, + "uploadSeconds": 0.059229335, + "downloadSeconds": 0.000182631 }, { - "connectionEstablishedSeconds": 0.063230051, - "uploadSeconds": 0.122956926, - "downloadSeconds": 0.000043377 + "connectionEstablishedSeconds": 0.0639676, + "uploadSeconds": 0.062350412, + "downloadSeconds": 0.000205363 }, { - "connectionEstablishedSeconds": 0.064549145, - "uploadSeconds": 0.125800192, - "downloadSeconds": 0.000062698 + "connectionEstablishedSeconds": 0.065227945, + "uploadSeconds": 0.063733038, + "downloadSeconds": 0.000208994 }, { - "connectionEstablishedSeconds": 0.065950319, - "uploadSeconds": 0.12884674, - "downloadSeconds": 0.000076522 + "connectionEstablishedSeconds": 0.062842189, + "uploadSeconds": 0.061268217, + "downloadSeconds": 0.000140209 }, { - "connectionEstablishedSeconds": 0.066415156, - "uploadSeconds": 0.129229438, - "downloadSeconds": 0.000043872 + "connectionEstablishedSeconds": 0.064342747, + "uploadSeconds": 0.062794978, + "downloadSeconds": 0.000169127 }, { - "connectionEstablishedSeconds": 0.063556269, - "uploadSeconds": 0.123945344, - "downloadSeconds": 0.000042911 + "connectionEstablishedSeconds": 0.061011587, + "uploadSeconds": 0.059615142, + "downloadSeconds": 0.000149046 }, { - "connectionEstablishedSeconds": 0.064390956, - "uploadSeconds": 0.125738658, - "downloadSeconds": 0.000045942 + "connectionEstablishedSeconds": 0.065921747, + "uploadSeconds": 0.064430406, + "downloadSeconds": 0.000143303 }, { - "connectionEstablishedSeconds": 0.063954564, - "uploadSeconds": 0.124624473, - "downloadSeconds": 0.000064727 + "connectionEstablishedSeconds": 0.063510553, + "uploadSeconds": 0.061998882, + "downloadSeconds": 0.000157823 }, { - "connectionEstablishedSeconds": 0.06528402, - "uploadSeconds": 0.127312275, - "downloadSeconds": 0.00005077 + "connectionEstablishedSeconds": 0.063149193, + "uploadSeconds": 0.06153678, + "downloadSeconds": 0.000195232 }, { - "connectionEstablishedSeconds": 0.060914492, - "uploadSeconds": 0.118802532, - "downloadSeconds": 0.000050276 + "connectionEstablishedSeconds": 0.065333281, + "uploadSeconds": 0.063768413, + "downloadSeconds": 0.000138238 }, { - "connectionEstablishedSeconds": 0.064429579, - "uploadSeconds": 0.125557722, - "downloadSeconds": 0.000050261 + "connectionEstablishedSeconds": 0.063494629, + "uploadSeconds": 0.06188941, + "downloadSeconds": 0.00013304 }, { - "connectionEstablishedSeconds": 0.061555485, - "uploadSeconds": 0.120310524, - "downloadSeconds": 0.000047265 + "connectionEstablishedSeconds": 0.063584879, + "uploadSeconds": 0.062079006, + "downloadSeconds": 0.000142998 }, { - "connectionEstablishedSeconds": 0.06409562, - "uploadSeconds": 0.12501898, - "downloadSeconds": 0.000043125 + "connectionEstablishedSeconds": 0.063410663, + "uploadSeconds": 0.061943761, + "downloadSeconds": 0.000192115 }, { - "connectionEstablishedSeconds": 0.065945492, - "uploadSeconds": 0.12862795, - "downloadSeconds": 0.000058074 + "connectionEstablishedSeconds": 0.063587159, + "uploadSeconds": 0.06201826, + "downloadSeconds": 0.000188674 }, { - "connectionEstablishedSeconds": 0.063566291, - "uploadSeconds": 0.123841265, - "downloadSeconds": 0.000086991 + "connectionEstablishedSeconds": 0.064053963, + "uploadSeconds": 0.062598114, + "downloadSeconds": 0.000170024 }, { - "connectionEstablishedSeconds": 0.06396013, - "uploadSeconds": 0.124567615, - "downloadSeconds": 0.000046787 + "connectionEstablishedSeconds": 0.065139922, + "uploadSeconds": 0.063679983, + "downloadSeconds": 0.000198472 }, { - "connectionEstablishedSeconds": 0.064704388, - "uploadSeconds": 0.126210911, - "downloadSeconds": 0.000043862 + "connectionEstablishedSeconds": 0.063830091, + "uploadSeconds": 0.062462481, + "downloadSeconds": 0.000155749 }, { - "connectionEstablishedSeconds": 0.065603676, - "uploadSeconds": 0.127953971, - "downloadSeconds": 0.000046123 + "connectionEstablishedSeconds": 0.063675635, + "uploadSeconds": 0.061992486, + "downloadSeconds": 0.000156188 }, { - "connectionEstablishedSeconds": 0.063338141, - "uploadSeconds": 0.123503336, - "downloadSeconds": 0.000072595 + "connectionEstablishedSeconds": 0.064332267, + "uploadSeconds": 0.062826303, + "downloadSeconds": 0.000153613 }, { - "connectionEstablishedSeconds": 0.061068522, - "uploadSeconds": 0.118627679, - "downloadSeconds": 0.000045601 + "connectionEstablishedSeconds": 0.061139596, + "uploadSeconds": 0.059570272, + "downloadSeconds": 0.000182183 }, { - "connectionEstablishedSeconds": 0.065999822, - "uploadSeconds": 0.128847246, - "downloadSeconds": 0.000045366 + "connectionEstablishedSeconds": 0.064116394, + "uploadSeconds": 0.062665011, + "downloadSeconds": 0.000106613 }, { - "connectionEstablishedSeconds": 0.06565487, - "uploadSeconds": 0.124021885, - "downloadSeconds": 0.00004433 + "connectionEstablishedSeconds": 0.063876504, + "uploadSeconds": 0.062264445, + "downloadSeconds": 0.00016349 }, { - "connectionEstablishedSeconds": 0.06358014, - "uploadSeconds": 0.123966016, - "downloadSeconds": 0.000044329 + "connectionEstablishedSeconds": 0.064945211, + "uploadSeconds": 0.063608162, + "downloadSeconds": 0.000044057 }, { - "connectionEstablishedSeconds": 0.064945395, - "uploadSeconds": 0.126818384, - "downloadSeconds": 0.00009595 + "connectionEstablishedSeconds": 0.065405409, + "uploadSeconds": 0.063705801, + "downloadSeconds": 0.000156554 }, { - "connectionEstablishedSeconds": 0.065370762, - "uploadSeconds": 0.127670679, - "downloadSeconds": 0.000044455 + "connectionEstablishedSeconds": 0.062415533, + "uploadSeconds": 0.060870429, + "downloadSeconds": 0.00017677 }, { - "connectionEstablishedSeconds": 0.066651519, - "uploadSeconds": 0.13026552, - "downloadSeconds": 0.000048681 + "connectionEstablishedSeconds": 0.062252289, + "uploadSeconds": 0.060461649, + "downloadSeconds": 0.000188838 }, { - "connectionEstablishedSeconds": 0.065453225, - "uploadSeconds": 0.127765453, - "downloadSeconds": 0.00007099 + "connectionEstablishedSeconds": 0.06478975, + "uploadSeconds": 0.063334313, + "downloadSeconds": 0.000167166 }, { - "connectionEstablishedSeconds": 0.064952824, - "uploadSeconds": 0.126515726, - "downloadSeconds": 0.000046547 + "connectionEstablishedSeconds": 0.06580532, + "uploadSeconds": 0.064226485, + "downloadSeconds": 0.000140424 }, { - "connectionEstablishedSeconds": 0.064761833, - "uploadSeconds": 0.126296185, - "downloadSeconds": 0.00005516 + "connectionEstablishedSeconds": 0.065578657, + "uploadSeconds": 0.063908026, + "downloadSeconds": 0.000133025 }, { - "connectionEstablishedSeconds": 0.065274445, - "uploadSeconds": 0.127332678, - "downloadSeconds": 0.000077114 + "connectionEstablishedSeconds": 0.063384419, + "uploadSeconds": 0.061659255, + "downloadSeconds": 0.000207453 }, { - "connectionEstablishedSeconds": 0.065084284, - "uploadSeconds": 0.126512934, - "downloadSeconds": 0.000083062 + "connectionEstablishedSeconds": 0.062019391, + "uploadSeconds": 0.06052803, + "downloadSeconds": 0.000148008 }, { - "connectionEstablishedSeconds": 0.064347611, - "uploadSeconds": 0.125467059, - "downloadSeconds": 0.000044846 + "connectionEstablishedSeconds": 0.064412886, + "uploadSeconds": 0.062348585, + "downloadSeconds": 0.000200061 }, { - "connectionEstablishedSeconds": 0.06547493, - "uploadSeconds": 0.127802231, - "downloadSeconds": 0.000056509 + "connectionEstablishedSeconds": 0.062383672, + "uploadSeconds": 0.0608591, + "downloadSeconds": 0.000151223 }, { - "connectionEstablishedSeconds": 0.062503736, - "uploadSeconds": 0.121880331, - "downloadSeconds": 0.000052613 + "connectionEstablishedSeconds": 0.062229359, + "uploadSeconds": 0.060693929, + "downloadSeconds": 0.000266067 }, { - "connectionEstablishedSeconds": 0.06395318, - "uploadSeconds": 0.124689129, - "downloadSeconds": 0.000063323 + "connectionEstablishedSeconds": 0.066155593, + "uploadSeconds": 0.06469022, + "downloadSeconds": 0.000149392 }, { - "connectionEstablishedSeconds": 0.061711421, - "uploadSeconds": 0.120229173, - "downloadSeconds": 0.000044942 + "connectionEstablishedSeconds": 0.061927544, + "uploadSeconds": 0.060453514, + "downloadSeconds": 0.000166042 }, { - "connectionEstablishedSeconds": 0.066054783, - "uploadSeconds": 0.128740808, - "downloadSeconds": 0.000059915 + "connectionEstablishedSeconds": 0.064392619, + "uploadSeconds": 0.062834625, + "downloadSeconds": 0.000163313 }, { - "connectionEstablishedSeconds": 0.065170274, - "uploadSeconds": 0.126444731, - "downloadSeconds": 0.000046612 + "connectionEstablishedSeconds": 0.06363491, + "uploadSeconds": 0.062031709, + "downloadSeconds": 0.000169466 }, { - "connectionEstablishedSeconds": 0.063112, - "uploadSeconds": 0.123124184, - "downloadSeconds": 0.000044343 + "connectionEstablishedSeconds": 0.065715527, + "uploadSeconds": 0.064028257, + "downloadSeconds": 0.000170167 }, { - "connectionEstablishedSeconds": 0.063827286, - "uploadSeconds": 0.123313061, - "downloadSeconds": 0.000058335 + "connectionEstablishedSeconds": 0.065430993, + "uploadSeconds": 0.063782408, + "downloadSeconds": 0.000153003 }, { - "connectionEstablishedSeconds": 0.065271355, - "uploadSeconds": 0.126296789, - "downloadSeconds": 0.000052691 + "connectionEstablishedSeconds": 0.064837455, + "uploadSeconds": 0.063317846, + "downloadSeconds": 0.000185559 }, { - "connectionEstablishedSeconds": 0.065771643, - "uploadSeconds": 0.127354604, - "downloadSeconds": 0.000043724 + "connectionEstablishedSeconds": 0.065423878, + "uploadSeconds": 0.06386626, + "downloadSeconds": 0.000185411 }, { - "connectionEstablishedSeconds": 0.06394245, - "uploadSeconds": 0.124651981, - "downloadSeconds": 0.000059016 + "connectionEstablishedSeconds": 0.065318743, + "uploadSeconds": 0.06373493, + "downloadSeconds": 0.00015588 }, { - "connectionEstablishedSeconds": 0.062731271, - "uploadSeconds": 0.122359724, - "downloadSeconds": 0.000044793 + "connectionEstablishedSeconds": 0.064360091, + "uploadSeconds": 0.062866748, + "downloadSeconds": 0.000257644 }, { - "connectionEstablishedSeconds": 0.062771161, - "uploadSeconds": 0.122219529, - "downloadSeconds": 0.00004256 + "connectionEstablishedSeconds": 0.06367472, + "uploadSeconds": 0.062337607, + "downloadSeconds": 0.000153402 }, { - "connectionEstablishedSeconds": 0.064469366, - "uploadSeconds": 0.125827086, - "downloadSeconds": 0.000063902 + "connectionEstablishedSeconds": 0.064380433, + "uploadSeconds": 0.063038081, + "downloadSeconds": 0.000225022 }, { - "connectionEstablishedSeconds": 0.062417903, - "uploadSeconds": 0.121725202, - "downloadSeconds": 0.000042352 + "connectionEstablishedSeconds": 0.066053901, + "uploadSeconds": 0.06449941, + "downloadSeconds": 0.000160304 }, { - "connectionEstablishedSeconds": 0.064515496, - "uploadSeconds": 0.125827421, - "downloadSeconds": 0.000046047 + "connectionEstablishedSeconds": 0.063154586, + "uploadSeconds": 0.061631422, + "downloadSeconds": 0.000172446 }, { - "connectionEstablishedSeconds": 0.065949198, - "uploadSeconds": 0.128662241, - "downloadSeconds": 0.000046049 + "connectionEstablishedSeconds": 0.06499621, + "uploadSeconds": 0.063311063, + "downloadSeconds": 0.000165749 }, { - "connectionEstablishedSeconds": 0.064630197, - "uploadSeconds": 0.12592958, - "downloadSeconds": 0.00007051 + "connectionEstablishedSeconds": 0.063910172, + "uploadSeconds": 0.062317545, + "downloadSeconds": 0.000189055 }, { - "connectionEstablishedSeconds": 0.063468384, - "uploadSeconds": 0.123866641, - "downloadSeconds": 0.000043237 + "connectionEstablishedSeconds": 0.06436598, + "uploadSeconds": 0.062870002, + "downloadSeconds": 0.000168184 }, { - "connectionEstablishedSeconds": 0.063773005, - "uploadSeconds": 0.124486821, - "downloadSeconds": 0.000043579 + "connectionEstablishedSeconds": 0.063392951, + "uploadSeconds": 0.061844931, + "downloadSeconds": 0.000165364 }, { - "connectionEstablishedSeconds": 0.063834463, - "uploadSeconds": 0.124810566, - "downloadSeconds": 0.000044652 + "connectionEstablishedSeconds": 0.061985709, + "uploadSeconds": 0.060598584, + "downloadSeconds": 0.000218111 }, { - "connectionEstablishedSeconds": 0.065495272, - "uploadSeconds": 0.125848225, - "downloadSeconds": 0.000053273 + "connectionEstablishedSeconds": 0.064346848, + "uploadSeconds": 0.062938265, + "downloadSeconds": 0.000256958 }, { - "connectionEstablishedSeconds": 0.06621194, - "uploadSeconds": 0.128738202, - "downloadSeconds": 0.000043982 + "connectionEstablishedSeconds": 0.064263518, + "uploadSeconds": 0.062823943, + "downloadSeconds": 0.00025926 }, { - "connectionEstablishedSeconds": 0.061972145, - "uploadSeconds": 0.120902655, - "downloadSeconds": 0.000044809 + "connectionEstablishedSeconds": 0.066052094, + "uploadSeconds": 0.064392861, + "downloadSeconds": 0.000170086 }, { - "connectionEstablishedSeconds": 0.063632943, - "uploadSeconds": 0.124133569, - "downloadSeconds": 0.000072365 + "connectionEstablishedSeconds": 0.06331788, + "uploadSeconds": 0.061739656, + "downloadSeconds": 0.000180556 }, { - "connectionEstablishedSeconds": 0.064791542, - "uploadSeconds": 0.126365102, - "downloadSeconds": 0.000056162 + "connectionEstablishedSeconds": 0.063193286, + "uploadSeconds": 0.061630239, + "downloadSeconds": 0.00020334 }, { - "connectionEstablishedSeconds": 0.066517947, - "uploadSeconds": 0.129490792, - "downloadSeconds": 0.000064983 + "connectionEstablishedSeconds": 0.063009214, + "uploadSeconds": 0.061338967, + "downloadSeconds": 0.000214098 }, { - "connectionEstablishedSeconds": 0.065478186, - "uploadSeconds": 0.127995501, - "downloadSeconds": 0.000045633 + "connectionEstablishedSeconds": 0.062486331, + "uploadSeconds": 0.060927867, + "downloadSeconds": 0.000147766 }, { - "connectionEstablishedSeconds": 0.06283253, - "uploadSeconds": 0.122619861, - "downloadSeconds": 0.000049629 + "connectionEstablishedSeconds": 0.0642498, + "uploadSeconds": 0.062711091, + "downloadSeconds": 0.000167692 }, { - "connectionEstablishedSeconds": 0.065423127, - "uploadSeconds": 0.127431685, - "downloadSeconds": 0.000066335 + "connectionEstablishedSeconds": 0.066161763, + "uploadSeconds": 0.064561553, + "downloadSeconds": 0.000212031 }, { - "connectionEstablishedSeconds": 0.063486091, - "uploadSeconds": 0.123786664, - "downloadSeconds": 0.000064869 + "connectionEstablishedSeconds": 0.062971593, + "uploadSeconds": 0.06133007, + "downloadSeconds": 0.000178885 }, { - "connectionEstablishedSeconds": 0.065313009, - "uploadSeconds": 0.127496203, - "downloadSeconds": 0.000047152 + "connectionEstablishedSeconds": 0.063930412, + "uploadSeconds": 0.062351155, + "downloadSeconds": 0.000273277 }, { - "connectionEstablishedSeconds": 0.064726366, - "uploadSeconds": 0.126332969, - "downloadSeconds": 0.000038565 + "connectionEstablishedSeconds": 0.063897111, + "uploadSeconds": 0.062327708, + "downloadSeconds": 0.000181038 }, { - "connectionEstablishedSeconds": 0.06622344, - "uploadSeconds": 0.129419106, - "downloadSeconds": 0.000044283 + "connectionEstablishedSeconds": 0.065484587, + "uploadSeconds": 0.063968885, + "downloadSeconds": 0.000181512 }, { - "connectionEstablishedSeconds": 0.063535445, - "uploadSeconds": 0.123994324, - "downloadSeconds": 0.000069228 + "connectionEstablishedSeconds": 0.063676238, + "uploadSeconds": 0.062083047, + "downloadSeconds": 0.000183354 }, { - "connectionEstablishedSeconds": 0.063562961, - "uploadSeconds": 0.123834119, - "downloadSeconds": 0.000059735 + "connectionEstablishedSeconds": 0.063393622, + "uploadSeconds": 0.061798, + "downloadSeconds": 0.00016845 }, { - "connectionEstablishedSeconds": 0.064182398, - "uploadSeconds": 0.125322493, - "downloadSeconds": 0.000042194 + "connectionEstablishedSeconds": 0.061601649, + "uploadSeconds": 0.059992503, + "downloadSeconds": 0.000145892 }, { - "connectionEstablishedSeconds": 0.063652315, - "uploadSeconds": 0.124026321, - "downloadSeconds": 0.000045113 + "connectionEstablishedSeconds": 0.064719805, + "uploadSeconds": 0.063186084, + "downloadSeconds": 0.000155291 }, { - "connectionEstablishedSeconds": 0.061893428, - "uploadSeconds": 0.120831043, - "downloadSeconds": 0.000045085 + "connectionEstablishedSeconds": 0.063868917, + "uploadSeconds": 0.062377201, + "downloadSeconds": 0.000158219 }, { - "connectionEstablishedSeconds": 0.061594396, - "uploadSeconds": 0.119906316, - "downloadSeconds": 0.000057942 + "connectionEstablishedSeconds": 0.065255762, + "uploadSeconds": 0.063695216, + "downloadSeconds": 0.000207425 }, { - "connectionEstablishedSeconds": 0.063097354, - "uploadSeconds": 0.123129569, - "downloadSeconds": 0.000044125 + "connectionEstablishedSeconds": 0.06289086, + "uploadSeconds": 0.061307413, + "downloadSeconds": 0.000176603 }, { - "connectionEstablishedSeconds": 0.064726062, - "uploadSeconds": 0.12618174, - "downloadSeconds": 0.000089514 + "connectionEstablishedSeconds": 0.06599775, + "uploadSeconds": 0.064373628, + "downloadSeconds": 0.000158283 }, { - "connectionEstablishedSeconds": 0.061963248, - "uploadSeconds": 0.120682982, - "downloadSeconds": 0.000081561 + "connectionEstablishedSeconds": 0.064462208, + "uploadSeconds": 0.062851861, + "downloadSeconds": 0.000189597 }, { - "connectionEstablishedSeconds": 0.062831478, - "uploadSeconds": 0.122302397, - "downloadSeconds": 0.00004533 + "connectionEstablishedSeconds": 0.061042882, + "uploadSeconds": 0.059434473, + "downloadSeconds": 0.000152928 }, { - "connectionEstablishedSeconds": 0.064657911, - "uploadSeconds": 0.126325536, - "downloadSeconds": 0.00007649 + "connectionEstablishedSeconds": 0.063415706, + "uploadSeconds": 0.061892795, + "downloadSeconds": 0.000160173 }, { - "connectionEstablishedSeconds": 0.063226904, - "uploadSeconds": 0.12336988, - "downloadSeconds": 0.000077946 + "connectionEstablishedSeconds": 0.066115631, + "uploadSeconds": 0.064567743, + "downloadSeconds": 0.000153889 }, { - "connectionEstablishedSeconds": 0.064407685, - "uploadSeconds": 0.125550312, - "downloadSeconds": 0.000066191 + "connectionEstablishedSeconds": 0.064119783, + "uploadSeconds": 0.062440057, + "downloadSeconds": 0.000208393 }, { - "connectionEstablishedSeconds": 0.065448969, - "uploadSeconds": 0.126620456, - "downloadSeconds": 0.000044801 + "connectionEstablishedSeconds": 0.060624918, + "uploadSeconds": 0.059081435, + "downloadSeconds": 0.000133408 }, { - "connectionEstablishedSeconds": 0.06512996, - "uploadSeconds": 0.126012246, - "downloadSeconds": 0.000055354 + "connectionEstablishedSeconds": 0.060192516, + "uploadSeconds": 0.058567176, + "downloadSeconds": 0.000157839 }, { - "connectionEstablishedSeconds": 0.06321954, - "uploadSeconds": 0.12325113, - "downloadSeconds": 0.000057514 + "connectionEstablishedSeconds": 0.06293136, + "uploadSeconds": 0.061378694, + "downloadSeconds": 0.000154808 }, { - "connectionEstablishedSeconds": 0.0636593, - "uploadSeconds": 0.124350779, - "downloadSeconds": 0.000047263 + "connectionEstablishedSeconds": 0.063664462, + "uploadSeconds": 0.062046277, + "downloadSeconds": 0.000169954 }, { - "connectionEstablishedSeconds": 0.06608048, - "uploadSeconds": 0.128730179, - "downloadSeconds": 0.000067914 + "connectionEstablishedSeconds": 0.064070503, + "uploadSeconds": 0.062581995, + "downloadSeconds": 0.000162214 } ], "implementation": "rust-libp2p-quinn", @@ -2504,503 +2504,503 @@ "result": [ { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189267147, - "downloadSeconds": 0.000023118 + "uploadSeconds": 0.185466195, + "downloadSeconds": 0.000028973 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184763191, - "downloadSeconds": 0.000019722 + "uploadSeconds": 0.188167615, + "downloadSeconds": 0.000026885 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184888519, - "downloadSeconds": 0.00002075 + "uploadSeconds": 0.189657173, + "downloadSeconds": 0.0000224 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187164931, - "downloadSeconds": 0.000019868 + "uploadSeconds": 0.1914844, + "downloadSeconds": 0.000023593 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191404983, - "downloadSeconds": 0.000021542 + "uploadSeconds": 0.190712437, + "downloadSeconds": 0.000019196 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191564605, - "downloadSeconds": 0.000021492 + "uploadSeconds": 0.185987718, + "downloadSeconds": 0.000018985 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191431829, - "downloadSeconds": 0.000023755 + "uploadSeconds": 0.190361234, + "downloadSeconds": 0.000017103 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188935634, - "downloadSeconds": 0.000019982 + "uploadSeconds": 0.19417555, + "downloadSeconds": 0.000022034 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183258271, - "downloadSeconds": 0.00001929 + "uploadSeconds": 0.177455235, + "downloadSeconds": 0.000022084 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191659424, - "downloadSeconds": 0.000029746 + "uploadSeconds": 0.180973425, + "downloadSeconds": 0.000029995 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.194543249, - "downloadSeconds": 0.000020293 + "uploadSeconds": 0.184024317, + "downloadSeconds": 0.000022856 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192386457, - "downloadSeconds": 0.000020272 + "uploadSeconds": 0.185067106, + "downloadSeconds": 0.000024826 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184510661, - "downloadSeconds": 0.000017055 + "uploadSeconds": 0.187909478, + "downloadSeconds": 0.000022872 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191485559, - "downloadSeconds": 0.000026189 + "uploadSeconds": 0.187869896, + "downloadSeconds": 0.00002523 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189345722, - "downloadSeconds": 0.000020576 + "uploadSeconds": 0.183236675, + "downloadSeconds": 0.000022337 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189079938, - "downloadSeconds": 0.000016478 + "uploadSeconds": 0.19073786, + "downloadSeconds": 0.000023225 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183037247, - "downloadSeconds": 0.000026998 + "uploadSeconds": 0.185987622, + "downloadSeconds": 0.000021541 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189148633, - "downloadSeconds": 0.000020164 + "uploadSeconds": 0.188877463, + "downloadSeconds": 0.000026001 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186289142, - "downloadSeconds": 0.000014269 + "uploadSeconds": 0.184597348, + "downloadSeconds": 0.000023436 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187123218, - "downloadSeconds": 0.000021729 + "uploadSeconds": 0.190118563, + "downloadSeconds": 0.000031345 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182348165, - "downloadSeconds": 0.000016478 + "uploadSeconds": 0.191294216, + "downloadSeconds": 0.000022381 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186190262, - "downloadSeconds": 0.000016799 + "uploadSeconds": 0.188355639, + "downloadSeconds": 0.000023247 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191954535, - "downloadSeconds": 0.000020295 + "uploadSeconds": 0.182059486, + "downloadSeconds": 0.000022545 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185084289, - "downloadSeconds": 0.000021399 + "uploadSeconds": 0.191320708, + "downloadSeconds": 0.000019166 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.19662104, - "downloadSeconds": 0.000021309 + "uploadSeconds": 0.197074208, + "downloadSeconds": 0.000024354 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190851966, - "downloadSeconds": 0.000022305 + "uploadSeconds": 0.193975081, + "downloadSeconds": 0.000023361 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190039613, - "downloadSeconds": 0.000017184 + "uploadSeconds": 0.180626937, + "downloadSeconds": 0.000025197 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193494836, - "downloadSeconds": 0.000022197 + "uploadSeconds": 0.18515676, + "downloadSeconds": 0.000024164 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.195363583, - "downloadSeconds": 0.000019441 + "uploadSeconds": 0.189746973, + "downloadSeconds": 0.000020334 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193577147, - "downloadSeconds": 0.00002684 + "uploadSeconds": 0.188753218, + "downloadSeconds": 0.000023442 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193039679, - "downloadSeconds": 0.000020139 + "uploadSeconds": 0.188519146, + "downloadSeconds": 0.000029249 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193534393, - "downloadSeconds": 0.000020874 + "uploadSeconds": 0.195113813, + "downloadSeconds": 0.000022034 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189257972, - "downloadSeconds": 0.000020494 + "uploadSeconds": 0.191347911, + "downloadSeconds": 0.00002188 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193975312, - "downloadSeconds": 0.000020359 + "uploadSeconds": 0.19072678, + "downloadSeconds": 0.000023573 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182411806, - "downloadSeconds": 0.000026956 + "uploadSeconds": 0.185937226, + "downloadSeconds": 0.000023743 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184638929, - "downloadSeconds": 0.000026197 + "uploadSeconds": 0.186246626, + "downloadSeconds": 0.000021958 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190320061, - "downloadSeconds": 0.000028195 + "uploadSeconds": 0.182687681, + "downloadSeconds": 0.000022469 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188202659, - "downloadSeconds": 0.000020412 + "uploadSeconds": 0.188083785, + "downloadSeconds": 0.000030745 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187990159, - "downloadSeconds": 0.000017974 + "uploadSeconds": 0.188695463, + "downloadSeconds": 0.000018686 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190462373, - "downloadSeconds": 0.000020444 + "uploadSeconds": 0.18321574, + "downloadSeconds": 0.000020842 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188917162, - "downloadSeconds": 0.000015894 + "uploadSeconds": 0.185121417, + "downloadSeconds": 0.000019424 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.180019634, - "downloadSeconds": 0.000020097 + "uploadSeconds": 0.185989645, + "downloadSeconds": 0.000022148 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.181175045, - "downloadSeconds": 0.000026061 + "uploadSeconds": 0.191170819, + "downloadSeconds": 0.000020297 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.181380335, - "downloadSeconds": 0.000019573 + "uploadSeconds": 0.192768313, + "downloadSeconds": 0.000018066 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189190864, - "downloadSeconds": 0.000027496 + "uploadSeconds": 0.191133207, + "downloadSeconds": 0.00002331 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191000274, - "downloadSeconds": 0.000020337 + "uploadSeconds": 0.190073364, + "downloadSeconds": 0.00002801 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191000864, - "downloadSeconds": 0.000021126 + "uploadSeconds": 0.193934004, + "downloadSeconds": 0.00003159 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192291796, - "downloadSeconds": 0.000027606 + "uploadSeconds": 0.18655496, + "downloadSeconds": 0.000023379 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.194502125, - "downloadSeconds": 0.000026952 + "uploadSeconds": 0.182640886, + "downloadSeconds": 0.000024312 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191148976, - "downloadSeconds": 0.00002249 + "uploadSeconds": 0.188961494, + "downloadSeconds": 0.000024203 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184539258, - "downloadSeconds": 0.000022786 + "uploadSeconds": 0.188919597, + "downloadSeconds": 0.000024438 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189964347, - "downloadSeconds": 0.000023144 + "uploadSeconds": 0.194657477, + "downloadSeconds": 0.000035893 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190095005, - "downloadSeconds": 0.00002704 + "uploadSeconds": 0.185927951, + "downloadSeconds": 0.000032053 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183948838, - "downloadSeconds": 0.00002712 + "uploadSeconds": 0.188830225, + "downloadSeconds": 0.000019392 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191614718, - "downloadSeconds": 0.000030041 + "uploadSeconds": 0.19531115, + "downloadSeconds": 0.000024389 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191666532, - "downloadSeconds": 0.000026662 + "uploadSeconds": 0.191638504, + "downloadSeconds": 0.000016993 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191578559, - "downloadSeconds": 0.000026833 + "uploadSeconds": 0.187389522, + "downloadSeconds": 0.000024754 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.19594538, - "downloadSeconds": 0.000026989 + "uploadSeconds": 0.192026792, + "downloadSeconds": 0.000035117 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18409524, - "downloadSeconds": 0.000018636 + "uploadSeconds": 0.17826352, + "downloadSeconds": 0.00002312 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183135021, - "downloadSeconds": 0.00002243 + "uploadSeconds": 0.191410046, + "downloadSeconds": 0.000022467 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184593702, - "downloadSeconds": 0.000016374 + "uploadSeconds": 0.181756981, + "downloadSeconds": 0.000030718 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.194286742, - "downloadSeconds": 0.000026169 + "uploadSeconds": 0.190102492, + "downloadSeconds": 0.000018664 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183960499, - "downloadSeconds": 0.000020744 + "uploadSeconds": 0.185195341, + "downloadSeconds": 0.000031132 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182023084, - "downloadSeconds": 0.000016307 + "uploadSeconds": 0.184418977, + "downloadSeconds": 0.000020783 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187481049, - "downloadSeconds": 0.000020307 + "uploadSeconds": 0.195258365, + "downloadSeconds": 0.000022216 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.196164422, - "downloadSeconds": 0.000020252 + "uploadSeconds": 0.181766645, + "downloadSeconds": 0.000022292 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183049657, - "downloadSeconds": 0.000016652 + "uploadSeconds": 0.187170682, + "downloadSeconds": 0.000030948 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186614428, - "downloadSeconds": 0.000021321 + "uploadSeconds": 0.190429722, + "downloadSeconds": 0.000022862 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193611179, - "downloadSeconds": 0.00002088 + "uploadSeconds": 0.193348038, + "downloadSeconds": 0.000019371 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188991353, - "downloadSeconds": 0.000026263 + "uploadSeconds": 0.191331539, + "downloadSeconds": 0.000021627 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18446024, - "downloadSeconds": 0.000025945 + "uploadSeconds": 0.186167144, + "downloadSeconds": 0.00002376 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192896099, - "downloadSeconds": 0.000026597 + "uploadSeconds": 0.196234728, + "downloadSeconds": 0.000030467 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189832501, - "downloadSeconds": 0.000019777 + "uploadSeconds": 0.18808328, + "downloadSeconds": 0.000021504 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188400091, - "downloadSeconds": 0.000025209 + "uploadSeconds": 0.18607591, + "downloadSeconds": 0.000023552 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184789988, - "downloadSeconds": 0.000025622 + "uploadSeconds": 0.180858708, + "downloadSeconds": 0.000026443 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.19162245, - "downloadSeconds": 0.000025873 + "uploadSeconds": 0.179141662, + "downloadSeconds": 0.000023808 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190383583, - "downloadSeconds": 0.000022718 + "uploadSeconds": 0.191035732, + "downloadSeconds": 0.00003011 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185777002, - "downloadSeconds": 0.000020386 + "uploadSeconds": 0.189584074, + "downloadSeconds": 0.000026627 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192800999, - "downloadSeconds": 0.000020362 + "uploadSeconds": 0.187374884, + "downloadSeconds": 0.000026684 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191621888, - "downloadSeconds": 0.000019744 + "uploadSeconds": 0.182904768, + "downloadSeconds": 0.000023694 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189799668, - "downloadSeconds": 0.000026076 + "uploadSeconds": 0.182699949, + "downloadSeconds": 0.000023934 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190284254, - "downloadSeconds": 0.000025595 + "uploadSeconds": 0.189432817, + "downloadSeconds": 0.000024894 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187427433, - "downloadSeconds": 0.00001935 + "uploadSeconds": 0.182236827, + "downloadSeconds": 0.000024763 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183066846, - "downloadSeconds": 0.000024408 + "uploadSeconds": 0.188724716, + "downloadSeconds": 0.000022915 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183763717, - "downloadSeconds": 0.000023137 + "uploadSeconds": 0.182773081, + "downloadSeconds": 0.000016451 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191519447, - "downloadSeconds": 0.000031777 + "uploadSeconds": 0.194139646, + "downloadSeconds": 0.000027428 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185958147, - "downloadSeconds": 0.000020353 + "uploadSeconds": 0.185553274, + "downloadSeconds": 0.000033572 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191672227, - "downloadSeconds": 0.00002107 + "uploadSeconds": 0.183168063, + "downloadSeconds": 0.000031478 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193992936, - "downloadSeconds": 0.000023003 + "uploadSeconds": 0.188165033, + "downloadSeconds": 0.000019116 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188363887, - "downloadSeconds": 0.000017526 + "uploadSeconds": 0.19286371, + "downloadSeconds": 0.000035591 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185904391, - "downloadSeconds": 0.000036649 + "uploadSeconds": 0.18864507, + "downloadSeconds": 0.000022744 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182140279, - "downloadSeconds": 0.000019992 + "uploadSeconds": 0.194011906, + "downloadSeconds": 0.000031063 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187772286, - "downloadSeconds": 0.000027301 + "uploadSeconds": 0.187725364, + "downloadSeconds": 0.000030093 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18482486, - "downloadSeconds": 0.000017292 + "uploadSeconds": 0.19052036, + "downloadSeconds": 0.000023455 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191987011, - "downloadSeconds": 0.000015975 + "uploadSeconds": 0.190076522, + "downloadSeconds": 0.000017861 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187062789, - "downloadSeconds": 0.000019881 + "uploadSeconds": 0.184588879, + "downloadSeconds": 0.000016617 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.196147068, - "downloadSeconds": 0.000026193 + "uploadSeconds": 0.185671064, + "downloadSeconds": 0.000015912 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185321644, - "downloadSeconds": 0.000020158 + "uploadSeconds": 0.190963829, + "downloadSeconds": 0.000021779 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.181423631, - "downloadSeconds": 0.000020315 + "uploadSeconds": 0.186081129, + "downloadSeconds": 0.000022259 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185474012, - "downloadSeconds": 0.000027516 + "uploadSeconds": 0.182875807, + "downloadSeconds": 0.000021124 } ], "implementation": "https", @@ -3010,504 +3010,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.256319993, - "uploadSeconds": 0.000047984, - "downloadSeconds": 0.125203567 + "connectionEstablishedSeconds": 0.247633172, + "uploadSeconds": 0.000047226, + "downloadSeconds": 0.060733193 }, { - "connectionEstablishedSeconds": 0.26011794, - "uploadSeconds": 0.000049981, - "downloadSeconds": 0.0640433 + "connectionEstablishedSeconds": 0.242786263, + "uploadSeconds": 0.000035639, + "downloadSeconds": 0.059834953 }, { - "connectionEstablishedSeconds": 0.238145162, - "uploadSeconds": 0.00003084, - "downloadSeconds": 0.058628427 + "connectionEstablishedSeconds": 0.24719471, + "uploadSeconds": 0.000051374, + "downloadSeconds": 0.121123808 }, { - "connectionEstablishedSeconds": 0.247161065, - "uploadSeconds": 0.00003178, - "downloadSeconds": 0.060937482 + "connectionEstablishedSeconds": 0.256818583, + "uploadSeconds": 0.000031892, + "downloadSeconds": 0.063129956 }, { - "connectionEstablishedSeconds": 0.250174636, - "uploadSeconds": 0.000054242, - "downloadSeconds": 0.061592374 + "connectionEstablishedSeconds": 0.262699576, + "uploadSeconds": 0.000069193, + "downloadSeconds": 0.064672821 }, { - "connectionEstablishedSeconds": 0.246869611, - "uploadSeconds": 0.00003407, - "downloadSeconds": 0.061178141 + "connectionEstablishedSeconds": 0.25781321, + "uploadSeconds": 0.000059397, + "downloadSeconds": 0.063356876 }, { - "connectionEstablishedSeconds": 0.251099399, - "uploadSeconds": 0.000064801, - "downloadSeconds": 0.062280095 + "connectionEstablishedSeconds": 0.257435989, + "uploadSeconds": 0.000030584, + "downloadSeconds": 0.063365745 }, { - "connectionEstablishedSeconds": 0.257778069, - "uploadSeconds": 0.000032702, - "downloadSeconds": 0.063586207 + "connectionEstablishedSeconds": 0.247573047, + "uploadSeconds": 0.000030945, + "downloadSeconds": 0.060855505 }, { - "connectionEstablishedSeconds": 0.253540087, - "uploadSeconds": 0.000031149, - "downloadSeconds": 0.124866694 + "connectionEstablishedSeconds": 0.244996354, + "uploadSeconds": 0.000049056, + "downloadSeconds": 0.120857093 }, { - "connectionEstablishedSeconds": 0.248484254, - "uploadSeconds": 0.000030364, - "downloadSeconds": 0.061302807 + "connectionEstablishedSeconds": 0.252465601, + "uploadSeconds": 0.000031319, + "downloadSeconds": 0.062137944 }, { - "connectionEstablishedSeconds": 0.242615189, - "uploadSeconds": 0.000056092, - "downloadSeconds": 0.060161978 + "connectionEstablishedSeconds": 0.250177921, + "uploadSeconds": 0.00006055, + "downloadSeconds": 0.061493112 }, { - "connectionEstablishedSeconds": 0.251453045, - "uploadSeconds": 0.000054791, - "downloadSeconds": 0.061898466 + "connectionEstablishedSeconds": 0.253108555, + "uploadSeconds": 0.000034955, + "downloadSeconds": 0.062220747 }, { - "connectionEstablishedSeconds": 0.249655031, - "uploadSeconds": 0.000030891, - "downloadSeconds": 0.123379222 + "connectionEstablishedSeconds": 0.246540961, + "uploadSeconds": 0.00003332, + "downloadSeconds": 0.06055015 }, { - "connectionEstablishedSeconds": 0.253996564, - "uploadSeconds": 0.000048189, - "downloadSeconds": 0.063398707 + "connectionEstablishedSeconds": 0.249746475, + "uploadSeconds": 0.000052303, + "downloadSeconds": 0.061921936 }, { - "connectionEstablishedSeconds": 0.258959438, - "uploadSeconds": 0.000033505, - "downloadSeconds": 0.064162684 + "connectionEstablishedSeconds": 0.252633741, + "uploadSeconds": 0.000037496, + "downloadSeconds": 0.124623798 }, { - "connectionEstablishedSeconds": 0.256679477, - "uploadSeconds": 0.000049404, - "downloadSeconds": 0.063350389 + "connectionEstablishedSeconds": 0.260703467, + "uploadSeconds": 0.000037847, + "downloadSeconds": 0.064068832 }, { - "connectionEstablishedSeconds": 0.243726925, - "uploadSeconds": 0.000027676, - "downloadSeconds": 0.059960918 + "connectionEstablishedSeconds": 0.263230978, + "uploadSeconds": 0.000038283, + "downloadSeconds": 0.064910657 }, { - "connectionEstablishedSeconds": 0.247914925, - "uploadSeconds": 0.000032532, - "downloadSeconds": 0.061055126 + "connectionEstablishedSeconds": 0.256052028, + "uploadSeconds": 0.000032064, + "downloadSeconds": 0.125214983 }, { - "connectionEstablishedSeconds": 0.248590749, - "uploadSeconds": 0.000051774, - "downloadSeconds": 0.121905796 + "connectionEstablishedSeconds": 0.248953661, + "uploadSeconds": 0.000035306, + "downloadSeconds": 0.061284171 }, { - "connectionEstablishedSeconds": 0.252480238, - "uploadSeconds": 0.000035087, - "downloadSeconds": 0.06267783 + "connectionEstablishedSeconds": 0.248765623, + "uploadSeconds": 0.000059677, + "downloadSeconds": 0.061044759 }, { - "connectionEstablishedSeconds": 0.253326074, - "uploadSeconds": 0.000028785, - "downloadSeconds": 0.062475809 + "connectionEstablishedSeconds": 0.255385695, + "uploadSeconds": 0.000064673, + "downloadSeconds": 0.124810443 }, { - "connectionEstablishedSeconds": 0.25855489, - "uploadSeconds": 0.000048855, - "downloadSeconds": 0.127678353 + "connectionEstablishedSeconds": 0.248002294, + "uploadSeconds": 0.000030666, + "downloadSeconds": 0.061475677 }, { - "connectionEstablishedSeconds": 0.257452377, - "uploadSeconds": 0.00003393, - "downloadSeconds": 0.063456048 + "connectionEstablishedSeconds": 0.250686788, + "uploadSeconds": 0.000042418, + "downloadSeconds": 0.062015659 }, { - "connectionEstablishedSeconds": 0.257838064, - "uploadSeconds": 0.000020589, - "downloadSeconds": 0.127401195 + "connectionEstablishedSeconds": 0.253740912, + "uploadSeconds": 0.000031168, + "downloadSeconds": 0.12436603 }, { - "connectionEstablishedSeconds": 0.257968545, - "uploadSeconds": 0.000021808, - "downloadSeconds": 0.064215353 + "connectionEstablishedSeconds": 0.254459113, + "uploadSeconds": 0.000061631, + "downloadSeconds": 0.125782727 }, { - "connectionEstablishedSeconds": 0.236236414, - "uploadSeconds": 0.00003058, - "downloadSeconds": 0.115828759 + "connectionEstablishedSeconds": 0.259931869, + "uploadSeconds": 0.000054035, + "downloadSeconds": 0.127223133 }, { - "connectionEstablishedSeconds": 0.253718395, - "uploadSeconds": 0.00002821, - "downloadSeconds": 0.062983137 + "connectionEstablishedSeconds": 0.244439104, + "uploadSeconds": 0.000055638, + "downloadSeconds": 0.060137507 }, { - "connectionEstablishedSeconds": 0.256885038, - "uploadSeconds": 0.000030515, - "downloadSeconds": 0.063400044 + "connectionEstablishedSeconds": 0.257333682, + "uploadSeconds": 0.000032334, + "downloadSeconds": 0.063821865 }, { - "connectionEstablishedSeconds": 0.25335717, - "uploadSeconds": 0.00005035, - "downloadSeconds": 0.125017792 + "connectionEstablishedSeconds": 0.245249155, + "uploadSeconds": 0.000061903, + "downloadSeconds": 0.060225827 }, { - "connectionEstablishedSeconds": 0.25202324, - "uploadSeconds": 0.000030034, - "downloadSeconds": 0.123716371 + "connectionEstablishedSeconds": 0.255122907, + "uploadSeconds": 0.000053703, + "downloadSeconds": 0.124678181 }, { - "connectionEstablishedSeconds": 0.255615485, - "uploadSeconds": 0.000030887, - "downloadSeconds": 0.063468488 + "connectionEstablishedSeconds": 0.247267332, + "uploadSeconds": 0.000029257, + "downloadSeconds": 0.060787319 }, { - "connectionEstablishedSeconds": 0.246457235, - "uploadSeconds": 0.0000341, - "downloadSeconds": 0.061175681 + "connectionEstablishedSeconds": 0.256396495, + "uploadSeconds": 0.00004401, + "downloadSeconds": 0.062969389 }, { - "connectionEstablishedSeconds": 0.246728016, - "uploadSeconds": 0.000052148, - "downloadSeconds": 0.061215407 + "connectionEstablishedSeconds": 0.263733983, + "uploadSeconds": 0.000045547, + "downloadSeconds": 0.064963552 }, { - "connectionEstablishedSeconds": 0.258042591, - "uploadSeconds": 0.000051413, - "downloadSeconds": 0.064014784 + "connectionEstablishedSeconds": 0.246786595, + "uploadSeconds": 0.000031668, + "downloadSeconds": 0.060731283 }, { - "connectionEstablishedSeconds": 0.252486402, - "uploadSeconds": 0.000029743, - "downloadSeconds": 0.06271285 + "connectionEstablishedSeconds": 0.250686644, + "uploadSeconds": 0.00003696, + "downloadSeconds": 0.061633761 }, { - "connectionEstablishedSeconds": 0.262881587, - "uploadSeconds": 0.000050906, - "downloadSeconds": 0.129047822 + "connectionEstablishedSeconds": 0.253685744, + "uploadSeconds": 0.00005584, + "downloadSeconds": 0.125266152 }, { - "connectionEstablishedSeconds": 0.261647157, - "uploadSeconds": 0.000027078, - "downloadSeconds": 0.065049406 + "connectionEstablishedSeconds": 0.252262766, + "uploadSeconds": 0.000034493, + "downloadSeconds": 0.062056355 }, { - "connectionEstablishedSeconds": 0.246188697, - "uploadSeconds": 0.000055479, - "downloadSeconds": 0.120586801 + "connectionEstablishedSeconds": 0.258377765, + "uploadSeconds": 0.000029077, + "downloadSeconds": 0.126434098 }, { - "connectionEstablishedSeconds": 0.258424654, - "uploadSeconds": 0.000045915, - "downloadSeconds": 0.064133503 + "connectionEstablishedSeconds": 0.257459515, + "uploadSeconds": 0.000030892, + "downloadSeconds": 0.126056492 }, { - "connectionEstablishedSeconds": 0.258470198, - "uploadSeconds": 0.000053064, - "downloadSeconds": 0.126843822 + "connectionEstablishedSeconds": 0.238138173, + "uploadSeconds": 0.000037807, + "downloadSeconds": 0.117119422 }, { - "connectionEstablishedSeconds": 0.247970244, - "uploadSeconds": 0.000026312, - "downloadSeconds": 0.121542143 + "connectionEstablishedSeconds": 0.263541809, + "uploadSeconds": 0.000061142, + "downloadSeconds": 0.064934108 }, { - "connectionEstablishedSeconds": 0.252805263, - "uploadSeconds": 0.000024202, - "downloadSeconds": 0.062806906 + "connectionEstablishedSeconds": 0.250547323, + "uploadSeconds": 0.000042574, + "downloadSeconds": 0.122577453 }, { - "connectionEstablishedSeconds": 0.248680613, - "uploadSeconds": 0.00002521, - "downloadSeconds": 0.061309824 + "connectionEstablishedSeconds": 0.256691736, + "uploadSeconds": 0.000036323, + "downloadSeconds": 0.125531362 }, { - "connectionEstablishedSeconds": 0.246677129, - "uploadSeconds": 0.000035229, - "downloadSeconds": 0.061179173 + "connectionEstablishedSeconds": 0.253319339, + "uploadSeconds": 0.000048773, + "downloadSeconds": 0.062276849 }, { - "connectionEstablishedSeconds": 0.242483853, - "uploadSeconds": 0.000019519, - "downloadSeconds": 0.06017204 + "connectionEstablishedSeconds": 0.245871485, + "uploadSeconds": 0.000033422, + "downloadSeconds": 0.060491261 }, { - "connectionEstablishedSeconds": 0.25525089, - "uploadSeconds": 0.000049177, - "downloadSeconds": 0.063111446 + "connectionEstablishedSeconds": 0.2562416, + "uploadSeconds": 0.000052404, + "downloadSeconds": 0.063052909 }, { - "connectionEstablishedSeconds": 0.257686356, - "uploadSeconds": 0.000032478, - "downloadSeconds": 0.126418083 + "connectionEstablishedSeconds": 0.253488411, + "uploadSeconds": 0.000046944, + "downloadSeconds": 0.124612818 }, { - "connectionEstablishedSeconds": 0.257095885, - "uploadSeconds": 0.000047791, - "downloadSeconds": 0.063795086 + "connectionEstablishedSeconds": 0.258393302, + "uploadSeconds": 0.000025223, + "downloadSeconds": 0.126307301 }, { - "connectionEstablishedSeconds": 0.243729188, - "uploadSeconds": 0.000035532, - "downloadSeconds": 0.059996409 + "connectionEstablishedSeconds": 0.248980895, + "uploadSeconds": 0.000029851, + "downloadSeconds": 0.122897907 }, { - "connectionEstablishedSeconds": 0.262009218, - "uploadSeconds": 0.000047254, - "downloadSeconds": 0.065003282 + "connectionEstablishedSeconds": 0.253480785, + "uploadSeconds": 0.000053282, + "downloadSeconds": 0.062796387 }, { - "connectionEstablishedSeconds": 0.258401414, - "uploadSeconds": 0.00006994, - "downloadSeconds": 0.063684563 + "connectionEstablishedSeconds": 0.256810772, + "uploadSeconds": 0.000060179, + "downloadSeconds": 0.063701329 }, { - "connectionEstablishedSeconds": 0.252884323, - "uploadSeconds": 0.000050269, - "downloadSeconds": 0.062709839 + "connectionEstablishedSeconds": 0.259421074, + "uploadSeconds": 0.000036958, + "downloadSeconds": 0.064295854 }, { - "connectionEstablishedSeconds": 0.250485298, - "uploadSeconds": 0.00005337, - "downloadSeconds": 0.062170847 + "connectionEstablishedSeconds": 0.243486987, + "uploadSeconds": 0.000033804, + "downloadSeconds": 0.060014276 }, { - "connectionEstablishedSeconds": 0.254718934, - "uploadSeconds": 0.000050676, - "downloadSeconds": 0.062783841 + "connectionEstablishedSeconds": 0.247819188, + "uploadSeconds": 0.000046398, + "downloadSeconds": 0.060938885 }, { - "connectionEstablishedSeconds": 0.256479592, - "uploadSeconds": 0.000033173, - "downloadSeconds": 0.063716853 + "connectionEstablishedSeconds": 0.248013934, + "uploadSeconds": 0.000031431, + "downloadSeconds": 0.061530422 }, { - "connectionEstablishedSeconds": 0.250940902, - "uploadSeconds": 0.000032112, - "downloadSeconds": 0.061864679 + "connectionEstablishedSeconds": 0.2595116, + "uploadSeconds": 0.000032824, + "downloadSeconds": 0.063944393 }, { - "connectionEstablishedSeconds": 0.25601928, - "uploadSeconds": 0.000054211, - "downloadSeconds": 0.126404654 + "connectionEstablishedSeconds": 0.250039888, + "uploadSeconds": 0.000060663, + "downloadSeconds": 0.061927306 }, { - "connectionEstablishedSeconds": 0.251294714, - "uploadSeconds": 0.000033635, - "downloadSeconds": 0.124203533 + "connectionEstablishedSeconds": 0.244788595, + "uploadSeconds": 0.000029038, + "downloadSeconds": 0.120857474 }, { - "connectionEstablishedSeconds": 0.247495048, - "uploadSeconds": 0.000027803, - "downloadSeconds": 0.060974013 + "connectionEstablishedSeconds": 0.258180251, + "uploadSeconds": 0.000040333, + "downloadSeconds": 0.064058316 }, { - "connectionEstablishedSeconds": 0.246995791, - "uploadSeconds": 0.00004461, - "downloadSeconds": 0.12115156 + "connectionEstablishedSeconds": 0.245910382, + "uploadSeconds": 0.000030679, + "downloadSeconds": 0.061040166 }, { - "connectionEstablishedSeconds": 0.260059075, - "uploadSeconds": 0.000027943, - "downloadSeconds": 0.064163736 + "connectionEstablishedSeconds": 0.257307203, + "uploadSeconds": 0.000031204, + "downloadSeconds": 0.127299195 }, { - "connectionEstablishedSeconds": 0.258560162, - "uploadSeconds": 0.000047971, - "downloadSeconds": 0.064208141 + "connectionEstablishedSeconds": 0.248040721, + "uploadSeconds": 0.000049844, + "downloadSeconds": 0.061485938 }, { - "connectionEstablishedSeconds": 0.235908966, - "uploadSeconds": 0.000030916, - "downloadSeconds": 0.058548782 + "connectionEstablishedSeconds": 0.249007397, + "uploadSeconds": 0.00003222, + "downloadSeconds": 0.061257481 }, { - "connectionEstablishedSeconds": 0.261513272, - "uploadSeconds": 0.000048246, - "downloadSeconds": 0.064925108 + "connectionEstablishedSeconds": 0.245806631, + "uploadSeconds": 0.000036446, + "downloadSeconds": 0.060356244 }, { - "connectionEstablishedSeconds": 0.246711037, - "uploadSeconds": 0.000051645, - "downloadSeconds": 0.121876968 + "connectionEstablishedSeconds": 0.255881613, + "uploadSeconds": 0.000071009, + "downloadSeconds": 0.125190472 }, { - "connectionEstablishedSeconds": 0.241043815, - "uploadSeconds": 0.000032014, - "downloadSeconds": 0.118162864 + "connectionEstablishedSeconds": 0.251087517, + "uploadSeconds": 0.000030239, + "downloadSeconds": 0.123309353 }, { - "connectionEstablishedSeconds": 0.247259731, - "uploadSeconds": 0.000028639, - "downloadSeconds": 0.06137501 + "connectionEstablishedSeconds": 0.255774479, + "uploadSeconds": 0.000018813, + "downloadSeconds": 0.063407206 }, { - "connectionEstablishedSeconds": 0.25145911, - "uploadSeconds": 0.000051156, - "downloadSeconds": 0.062975407 + "connectionEstablishedSeconds": 0.240186702, + "uploadSeconds": 0.000031017, + "downloadSeconds": 0.059020412 }, { - "connectionEstablishedSeconds": 0.252888039, - "uploadSeconds": 0.000055034, - "downloadSeconds": 0.062725867 + "connectionEstablishedSeconds": 0.258338219, + "uploadSeconds": 0.000038978, + "downloadSeconds": 0.063518659 }, { - "connectionEstablishedSeconds": 0.260055251, - "uploadSeconds": 0.000049014, - "downloadSeconds": 0.127488692 + "connectionEstablishedSeconds": 0.254330908, + "uploadSeconds": 0.00005115, + "downloadSeconds": 0.124556109 }, { - "connectionEstablishedSeconds": 0.249378367, - "uploadSeconds": 0.000046993, - "downloadSeconds": 0.061853686 + "connectionEstablishedSeconds": 0.255549164, + "uploadSeconds": 0.000038764, + "downloadSeconds": 0.125864847 }, { - "connectionEstablishedSeconds": 0.24229299, - "uploadSeconds": 0.00004729, - "downloadSeconds": 0.059681849 + "connectionEstablishedSeconds": 0.244775667, + "uploadSeconds": 0.000036068, + "downloadSeconds": 0.120818107 }, { - "connectionEstablishedSeconds": 0.257501975, - "uploadSeconds": 0.00002631, - "downloadSeconds": 0.063461289 + "connectionEstablishedSeconds": 0.248194019, + "uploadSeconds": 0.000029409, + "downloadSeconds": 0.12144253 }, { - "connectionEstablishedSeconds": 0.247062015, - "uploadSeconds": 0.000027788, - "downloadSeconds": 0.122050433 + "connectionEstablishedSeconds": 0.25050954, + "uploadSeconds": 0.000049332, + "downloadSeconds": 0.061606219 }, { - "connectionEstablishedSeconds": 0.254054719, - "uploadSeconds": 0.00005408, - "downloadSeconds": 0.125497284 + "connectionEstablishedSeconds": 0.248166177, + "uploadSeconds": 0.000054135, + "downloadSeconds": 0.121390881 }, { - "connectionEstablishedSeconds": 0.252972942, - "uploadSeconds": 0.00002877, - "downloadSeconds": 0.062740292 + "connectionEstablishedSeconds": 0.251431684, + "uploadSeconds": 0.000032071, + "downloadSeconds": 0.12292473 }, { - "connectionEstablishedSeconds": 0.248875061, - "uploadSeconds": 0.00005126, - "downloadSeconds": 0.061469229 + "connectionEstablishedSeconds": 0.256428378, + "uploadSeconds": 0.000035453, + "downloadSeconds": 0.125460234 }, { - "connectionEstablishedSeconds": 0.246679671, - "uploadSeconds": 0.000066637, - "downloadSeconds": 0.060802934 + "connectionEstablishedSeconds": 0.251432484, + "uploadSeconds": 0.000038484, + "downloadSeconds": 0.061767724 }, { - "connectionEstablishedSeconds": 0.248438836, - "uploadSeconds": 0.00003783, - "downloadSeconds": 0.061584904 + "connectionEstablishedSeconds": 0.236465168, + "uploadSeconds": 0.00003008, + "downloadSeconds": 0.058646323 }, { - "connectionEstablishedSeconds": 0.245100346, - "uploadSeconds": 0.000044784, - "downloadSeconds": 0.06083217 + "connectionEstablishedSeconds": 0.2533658, + "uploadSeconds": 0.000031414, + "downloadSeconds": 0.062273044 }, { - "connectionEstablishedSeconds": 0.255532684, - "uploadSeconds": 0.000028128, - "downloadSeconds": 0.125393184 + "connectionEstablishedSeconds": 0.256265774, + "uploadSeconds": 0.000063815, + "downloadSeconds": 0.126025432 }, { - "connectionEstablishedSeconds": 0.257547206, - "uploadSeconds": 0.00001332, - "downloadSeconds": 0.063877457 + "connectionEstablishedSeconds": 0.262934696, + "uploadSeconds": 0.000056961, + "downloadSeconds": 0.12787418 }, { - "connectionEstablishedSeconds": 0.259499304, - "uploadSeconds": 0.000053521, - "downloadSeconds": 0.064441891 + "connectionEstablishedSeconds": 0.260702207, + "uploadSeconds": 0.00002991, + "downloadSeconds": 0.127715478 }, { - "connectionEstablishedSeconds": 0.255541556, - "uploadSeconds": 0.000048818, - "downloadSeconds": 0.12613515 + "connectionEstablishedSeconds": 0.2542543, + "uploadSeconds": 0.000047501, + "downloadSeconds": 0.062561124 }, { - "connectionEstablishedSeconds": 0.254467048, - "uploadSeconds": 0.00006023, - "downloadSeconds": 0.062601345 + "connectionEstablishedSeconds": 0.246747829, + "uploadSeconds": 0.0000454, + "downloadSeconds": 0.121664356 }, { - "connectionEstablishedSeconds": 0.242995937, - "uploadSeconds": 0.000050785, - "downloadSeconds": 0.060241221 + "connectionEstablishedSeconds": 0.257204534, + "uploadSeconds": 0.000056092, + "downloadSeconds": 0.063265621 }, { - "connectionEstablishedSeconds": 0.245555077, - "uploadSeconds": 0.000025996, - "downloadSeconds": 0.060494489 + "connectionEstablishedSeconds": 0.254791321, + "uploadSeconds": 0.0000539, + "downloadSeconds": 0.063171153 }, { - "connectionEstablishedSeconds": 0.244138963, - "uploadSeconds": 0.000054065, - "downloadSeconds": 0.060587146 + "connectionEstablishedSeconds": 0.249696054, + "uploadSeconds": 0.000026689, + "downloadSeconds": 0.062077654 }, { - "connectionEstablishedSeconds": 0.252880764, - "uploadSeconds": 0.000049297, - "downloadSeconds": 0.06279983 + "connectionEstablishedSeconds": 0.259142697, + "uploadSeconds": 0.000027951, + "downloadSeconds": 0.064016731 }, { - "connectionEstablishedSeconds": 0.258505699, - "uploadSeconds": 0.000024994, - "downloadSeconds": 0.06373 + "connectionEstablishedSeconds": 0.247494446, + "uploadSeconds": 0.000032764, + "downloadSeconds": 0.060895142 }, { - "connectionEstablishedSeconds": 0.250093086, - "uploadSeconds": 0.000032901, - "downloadSeconds": 0.061627601 + "connectionEstablishedSeconds": 0.258448383, + "uploadSeconds": 0.000037325, + "downloadSeconds": 0.12651902 }, { - "connectionEstablishedSeconds": 0.247269086, - "uploadSeconds": 0.000015822, - "downloadSeconds": 0.061264311 + "connectionEstablishedSeconds": 0.240312158, + "uploadSeconds": 0.00003653, + "downloadSeconds": 0.059058432 }, { - "connectionEstablishedSeconds": 0.254753101, - "uploadSeconds": 0.00002955, - "downloadSeconds": 0.063289311 + "connectionEstablishedSeconds": 0.257068109, + "uploadSeconds": 0.000054198, + "downloadSeconds": 0.0637476 }, { - "connectionEstablishedSeconds": 0.249847556, - "uploadSeconds": 0.000026385, - "downloadSeconds": 0.122550669 + "connectionEstablishedSeconds": 0.252150823, + "uploadSeconds": 0.000049411, + "downloadSeconds": 0.061961738 }, { - "connectionEstablishedSeconds": 0.243353911, - "uploadSeconds": 0.000049805, - "downloadSeconds": 0.120007018 + "connectionEstablishedSeconds": 0.256703705, + "uploadSeconds": 0.000043236, + "downloadSeconds": 0.125576763 }, { - "connectionEstablishedSeconds": 0.243254754, - "uploadSeconds": 0.000031893, - "downloadSeconds": 0.059928958 + "connectionEstablishedSeconds": 0.254224735, + "uploadSeconds": 0.000054644, + "downloadSeconds": 0.124372668 }, { - "connectionEstablishedSeconds": 0.263284906, - "uploadSeconds": 0.000030528, - "downloadSeconds": 0.128646855 + "connectionEstablishedSeconds": 0.250801254, + "uploadSeconds": 0.0000571, + "downloadSeconds": 0.061655942 }, { - "connectionEstablishedSeconds": 0.243387739, - "uploadSeconds": 0.00003132, - "downloadSeconds": 0.119271677 + "connectionEstablishedSeconds": 0.241329876, + "uploadSeconds": 0.000030166, + "downloadSeconds": 0.118055148 }, { - "connectionEstablishedSeconds": 0.254152271, - "uploadSeconds": 0.000051641, - "downloadSeconds": 0.062526913 + "connectionEstablishedSeconds": 0.258444794, + "uploadSeconds": 0.000030955, + "downloadSeconds": 0.126566266 }, { - "connectionEstablishedSeconds": 0.260916495, - "uploadSeconds": 0.000031368, - "downloadSeconds": 0.064320832 + "connectionEstablishedSeconds": 0.256761543, + "uploadSeconds": 0.000056752, + "downloadSeconds": 0.12561952 } ], "implementation": "go-libp2p", @@ -3517,504 +3517,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.129254463, - "uploadSeconds": 0.000049725, - "downloadSeconds": 0.061846977 + "connectionEstablishedSeconds": 0.134224184, + "uploadSeconds": 0.00003929, + "downloadSeconds": 0.064172953 }, { - "connectionEstablishedSeconds": 0.130316177, - "uploadSeconds": 0.000047676, - "downloadSeconds": 0.062767513 + "connectionEstablishedSeconds": 0.13050743, + "uploadSeconds": 0.000033234, + "downloadSeconds": 0.06257745 }, { - "connectionEstablishedSeconds": 0.126589883, - "uploadSeconds": 0.000032542, - "downloadSeconds": 0.060271958 + "connectionEstablishedSeconds": 0.133420565, + "uploadSeconds": 0.00003593, + "downloadSeconds": 0.064070546 }, { - "connectionEstablishedSeconds": 0.132256276, - "uploadSeconds": 0.000054845, - "downloadSeconds": 0.063596991 + "connectionEstablishedSeconds": 0.126871561, + "uploadSeconds": 0.000035805, + "downloadSeconds": 0.061795113 }, { - "connectionEstablishedSeconds": 0.126574061, - "uploadSeconds": 0.000052384, - "downloadSeconds": 0.060770083 + "connectionEstablishedSeconds": 0.129296059, + "uploadSeconds": 0.000027585, + "downloadSeconds": 0.061930386 }, { - "connectionEstablishedSeconds": 0.123489062, - "uploadSeconds": 0.000048841, - "downloadSeconds": 0.059230188 + "connectionEstablishedSeconds": 0.126541624, + "uploadSeconds": 0.000030401, + "downloadSeconds": 0.06068271 }, { - "connectionEstablishedSeconds": 0.132815025, - "uploadSeconds": 0.000034575, - "downloadSeconds": 0.063881482 + "connectionEstablishedSeconds": 0.127633773, + "uploadSeconds": 0.00004125, + "downloadSeconds": 0.061234836 }, { - "connectionEstablishedSeconds": 0.128407809, - "uploadSeconds": 0.000052665, - "downloadSeconds": 0.061677283 + "connectionEstablishedSeconds": 0.130518101, + "uploadSeconds": 0.000050862, + "downloadSeconds": 0.062758006 }, { - "connectionEstablishedSeconds": 0.129413817, - "uploadSeconds": 0.000031544, - "downloadSeconds": 0.063156417 + "connectionEstablishedSeconds": 0.128556276, + "uploadSeconds": 0.000047331, + "downloadSeconds": 0.061830595 }, { - "connectionEstablishedSeconds": 0.12959371, - "uploadSeconds": 0.000029927, - "downloadSeconds": 0.063277751 + "connectionEstablishedSeconds": 0.133049236, + "uploadSeconds": 0.000030715, + "downloadSeconds": 0.064038846 }, { - "connectionEstablishedSeconds": 0.131892389, - "uploadSeconds": 0.000031865, - "downloadSeconds": 0.063457006 + "connectionEstablishedSeconds": 0.125639902, + "uploadSeconds": 0.000047732, + "downloadSeconds": 0.060738425 }, { - "connectionEstablishedSeconds": 0.124958862, - "uploadSeconds": 0.000048609, - "downloadSeconds": 0.060004363 + "connectionEstablishedSeconds": 0.131442751, + "uploadSeconds": 0.000022481, + "downloadSeconds": 0.063343125 }, { - "connectionEstablishedSeconds": 0.130880916, - "uploadSeconds": 0.00004977, - "downloadSeconds": 0.063000308 + "connectionEstablishedSeconds": 0.133516087, + "uploadSeconds": 0.000049445, + "downloadSeconds": 0.064225565 }, { - "connectionEstablishedSeconds": 0.129500785, - "uploadSeconds": 0.000029957, - "downloadSeconds": 0.062914406 + "connectionEstablishedSeconds": 0.127331445, + "uploadSeconds": 0.000030124, + "downloadSeconds": 0.061111611 }, { - "connectionEstablishedSeconds": 0.130903159, - "uploadSeconds": 0.000049696, - "downloadSeconds": 0.063005622 + "connectionEstablishedSeconds": 0.130305176, + "uploadSeconds": 0.000055092, + "downloadSeconds": 0.063616436 }, { - "connectionEstablishedSeconds": 0.124117181, - "uploadSeconds": 0.000029737, - "downloadSeconds": 0.059640918 + "connectionEstablishedSeconds": 0.130484307, + "uploadSeconds": 0.000038077, + "downloadSeconds": 0.063612504 }, { - "connectionEstablishedSeconds": 0.130397756, - "uploadSeconds": 0.000043317, - "downloadSeconds": 0.062713708 + "connectionEstablishedSeconds": 0.12675591, + "uploadSeconds": 0.000038685, + "downloadSeconds": 0.061681428 }, { - "connectionEstablishedSeconds": 0.12638938, - "uploadSeconds": 0.000025987, - "downloadSeconds": 0.06072112 + "connectionEstablishedSeconds": 0.128375446, + "uploadSeconds": 0.000034111, + "downloadSeconds": 0.062623468 }, { - "connectionEstablishedSeconds": 0.129288895, - "uploadSeconds": 0.000031794, - "downloadSeconds": 0.062449124 + "connectionEstablishedSeconds": 0.123072581, + "uploadSeconds": 0.000032348, + "downloadSeconds": 0.058458393 }, { - "connectionEstablishedSeconds": 0.13388669, - "uploadSeconds": 0.000026924, - "downloadSeconds": 0.065007704 + "connectionEstablishedSeconds": 0.12442569, + "uploadSeconds": 0.000029424, + "downloadSeconds": 0.059515701 }, { - "connectionEstablishedSeconds": 0.121311206, - "uploadSeconds": 0.000050372, - "downloadSeconds": 0.059203885 + "connectionEstablishedSeconds": 0.130102897, + "uploadSeconds": 0.0000285, + "downloadSeconds": 0.063459964 }, { - "connectionEstablishedSeconds": 0.130775663, - "uploadSeconds": 0.000027556, - "downloadSeconds": 0.062691752 + "connectionEstablishedSeconds": 0.128708127, + "uploadSeconds": 0.000066292, + "downloadSeconds": 0.061698705 }, { - "connectionEstablishedSeconds": 0.128908072, - "uploadSeconds": 0.00002597, - "downloadSeconds": 0.062005463 + "connectionEstablishedSeconds": 0.130869052, + "uploadSeconds": 0.000059325, + "downloadSeconds": 0.062657177 }, { - "connectionEstablishedSeconds": 0.129656787, - "uploadSeconds": 0.000052805, - "downloadSeconds": 0.06237751 + "connectionEstablishedSeconds": 0.130471707, + "uploadSeconds": 0.000031285, + "downloadSeconds": 0.063587523 }, { - "connectionEstablishedSeconds": 0.127277437, - "uploadSeconds": 0.000012249, - "downloadSeconds": 0.061080051 + "connectionEstablishedSeconds": 0.128991069, + "uploadSeconds": 0.000050006, + "downloadSeconds": 0.061878382 }, { - "connectionEstablishedSeconds": 0.130034948, - "uploadSeconds": 0.000050341, - "downloadSeconds": 0.06304521 + "connectionEstablishedSeconds": 0.125196458, + "uploadSeconds": 0.000056241, + "downloadSeconds": 0.059881894 }, { - "connectionEstablishedSeconds": 0.129751215, - "uploadSeconds": 0.000027788, - "downloadSeconds": 0.063169058 + "connectionEstablishedSeconds": 0.132304969, + "uploadSeconds": 0.000052072, + "downloadSeconds": 0.063464154 }, { - "connectionEstablishedSeconds": 0.12084432, - "uploadSeconds": 0.000032037, - "downloadSeconds": 0.058148912 + "connectionEstablishedSeconds": 0.127777844, + "uploadSeconds": 0.000050365, + "downloadSeconds": 0.061143304 }, { - "connectionEstablishedSeconds": 0.128661937, - "uploadSeconds": 0.000057283, - "downloadSeconds": 0.061943933 + "connectionEstablishedSeconds": 0.131174511, + "uploadSeconds": 0.000055867, + "downloadSeconds": 0.063550392 }, { - "connectionEstablishedSeconds": 0.131446332, - "uploadSeconds": 0.000030493, - "downloadSeconds": 0.064105135 + "connectionEstablishedSeconds": 0.134078949, + "uploadSeconds": 0.000049654, + "downloadSeconds": 0.064394644 }, { - "connectionEstablishedSeconds": 0.124816197, - "uploadSeconds": 0.000031692, - "downloadSeconds": 0.060856795 + "connectionEstablishedSeconds": 0.132494099, + "uploadSeconds": 0.000061081, + "downloadSeconds": 0.063457695 }, { - "connectionEstablishedSeconds": 0.129928676, - "uploadSeconds": 0.000051053, - "downloadSeconds": 0.06304851 + "connectionEstablishedSeconds": 0.131523147, + "uploadSeconds": 0.000051302, + "downloadSeconds": 0.063014602 }, { - "connectionEstablishedSeconds": 0.125660228, - "uploadSeconds": 0.000050083, - "downloadSeconds": 0.060358488 + "connectionEstablishedSeconds": 0.130777914, + "uploadSeconds": 0.000046878, + "downloadSeconds": 0.063788593 }, { - "connectionEstablishedSeconds": 0.133714288, - "uploadSeconds": 0.000053368, - "downloadSeconds": 0.064398007 + "connectionEstablishedSeconds": 0.135368846, + "uploadSeconds": 0.000053288, + "downloadSeconds": 0.065038924 }, { - "connectionEstablishedSeconds": 0.125712875, - "uploadSeconds": 0.000052731, - "downloadSeconds": 0.061397797 + "connectionEstablishedSeconds": 0.123134592, + "uploadSeconds": 0.000035466, + "downloadSeconds": 0.058830233 }, { - "connectionEstablishedSeconds": 0.128668103, - "uploadSeconds": 0.000033243, - "downloadSeconds": 0.061858803 + "connectionEstablishedSeconds": 0.132775551, + "uploadSeconds": 0.000046401, + "downloadSeconds": 0.063618925 }, { - "connectionEstablishedSeconds": 0.122160333, - "uploadSeconds": 0.000038451, - "downloadSeconds": 0.059563458 + "connectionEstablishedSeconds": 0.119880923, + "uploadSeconds": 0.000047932, + "downloadSeconds": 0.058430898 }, { - "connectionEstablishedSeconds": 0.130131619, - "uploadSeconds": 0.000027621, - "downloadSeconds": 0.063514417 + "connectionEstablishedSeconds": 0.133127108, + "uploadSeconds": 0.000056093, + "downloadSeconds": 0.064921538 }, { - "connectionEstablishedSeconds": 0.131818764, - "uploadSeconds": 0.00005014, - "downloadSeconds": 0.063434126 + "connectionEstablishedSeconds": 0.135100822, + "uploadSeconds": 0.000051466, + "downloadSeconds": 0.064822855 }, { - "connectionEstablishedSeconds": 0.126106281, - "uploadSeconds": 0.000051341, - "downloadSeconds": 0.061519447 + "connectionEstablishedSeconds": 0.133608492, + "uploadSeconds": 0.00005241, + "downloadSeconds": 0.064130045 }, { - "connectionEstablishedSeconds": 0.126493559, - "uploadSeconds": 0.000068396, - "downloadSeconds": 0.060872719 + "connectionEstablishedSeconds": 0.133422729, + "uploadSeconds": 0.000030801, + "downloadSeconds": 0.063743542 }, { - "connectionEstablishedSeconds": 0.131254471, - "uploadSeconds": 0.000020387, - "downloadSeconds": 0.063200881 + "connectionEstablishedSeconds": 0.129946042, + "uploadSeconds": 0.000053686, + "downloadSeconds": 0.062668107 }, { - "connectionEstablishedSeconds": 0.131170736, - "uploadSeconds": 0.000029471, - "downloadSeconds": 0.06404072 + "connectionEstablishedSeconds": 0.131982773, + "uploadSeconds": 0.000035312, + "downloadSeconds": 0.063342901 }, { - "connectionEstablishedSeconds": 0.127364639, - "uploadSeconds": 0.000030475, - "downloadSeconds": 0.062236295 + "connectionEstablishedSeconds": 0.132866172, + "uploadSeconds": 0.000047985, + "downloadSeconds": 0.063722535 }, { - "connectionEstablishedSeconds": 0.132147797, - "uploadSeconds": 0.00004878, - "downloadSeconds": 0.063601618 + "connectionEstablishedSeconds": 0.133501944, + "uploadSeconds": 0.000056226, + "downloadSeconds": 0.064022563 }, { - "connectionEstablishedSeconds": 0.125832835, - "uploadSeconds": 0.000047051, - "downloadSeconds": 0.061379845 + "connectionEstablishedSeconds": 0.132495546, + "uploadSeconds": 0.000033023, + "downloadSeconds": 0.063559919 }, { - "connectionEstablishedSeconds": 0.131311656, - "uploadSeconds": 0.000049971, - "downloadSeconds": 0.064149678 + "connectionEstablishedSeconds": 0.125002072, + "uploadSeconds": 0.000036955, + "downloadSeconds": 0.061121845 }, { - "connectionEstablishedSeconds": 0.130336844, - "uploadSeconds": 0.000027102, - "downloadSeconds": 0.062714438 + "connectionEstablishedSeconds": 0.130358324, + "uploadSeconds": 0.000036967, + "downloadSeconds": 0.063531756 }, { - "connectionEstablishedSeconds": 0.127369116, - "uploadSeconds": 0.000047084, - "downloadSeconds": 0.060521436 + "connectionEstablishedSeconds": 0.12759991, + "uploadSeconds": 0.000035958, + "downloadSeconds": 0.061163195 }, { - "connectionEstablishedSeconds": 0.12445821, - "uploadSeconds": 0.00002759, - "downloadSeconds": 0.060734411 + "connectionEstablishedSeconds": 0.131901337, + "uploadSeconds": 0.000059658, + "downloadSeconds": 0.063329874 }, { - "connectionEstablishedSeconds": 0.130233205, - "uploadSeconds": 0.000027831, - "downloadSeconds": 0.063465522 + "connectionEstablishedSeconds": 0.131886274, + "uploadSeconds": 0.000054095, + "downloadSeconds": 0.064197116 }, { - "connectionEstablishedSeconds": 0.127668324, - "uploadSeconds": 0.000049029, - "downloadSeconds": 0.062179704 + "connectionEstablishedSeconds": 0.13406387, + "uploadSeconds": 0.000034637, + "downloadSeconds": 0.064374704 }, { - "connectionEstablishedSeconds": 0.122521976, - "uploadSeconds": 0.000028991, - "downloadSeconds": 0.059701973 + "connectionEstablishedSeconds": 0.128627705, + "uploadSeconds": 0.000035012, + "downloadSeconds": 0.062721167 }, { - "connectionEstablishedSeconds": 0.123943877, - "uploadSeconds": 0.000050212, - "downloadSeconds": 0.059482846 + "connectionEstablishedSeconds": 0.13355983, + "uploadSeconds": 0.00002951, + "downloadSeconds": 0.06400737 }, { - "connectionEstablishedSeconds": 0.125569846, - "uploadSeconds": 0.000025321, - "downloadSeconds": 0.060361071 + "connectionEstablishedSeconds": 0.12713177, + "uploadSeconds": 0.000035821, + "downloadSeconds": 0.060845695 }, { - "connectionEstablishedSeconds": 0.129304233, - "uploadSeconds": 0.000054485, - "downloadSeconds": 0.063103082 + "connectionEstablishedSeconds": 0.127842958, + "uploadSeconds": 0.000060011, + "downloadSeconds": 0.061181136 }, { - "connectionEstablishedSeconds": 0.12621692, - "uploadSeconds": 0.000032376, - "downloadSeconds": 0.061601783 + "connectionEstablishedSeconds": 0.12656173, + "uploadSeconds": 0.000037278, + "downloadSeconds": 0.061673467 }, { - "connectionEstablishedSeconds": 0.129265321, - "uploadSeconds": 0.000014157, - "downloadSeconds": 0.062883207 + "connectionEstablishedSeconds": 0.132311301, + "uploadSeconds": 0.000058896, + "downloadSeconds": 0.063449834 }, { - "connectionEstablishedSeconds": 0.125303603, - "uploadSeconds": 0.00003077, - "downloadSeconds": 0.061074498 + "connectionEstablishedSeconds": 0.133545969, + "uploadSeconds": 0.000046466, + "downloadSeconds": 0.064096002 }, { - "connectionEstablishedSeconds": 0.126343004, - "uploadSeconds": 0.00005128, - "downloadSeconds": 0.060759626 + "connectionEstablishedSeconds": 0.128829574, + "uploadSeconds": 0.000049012, + "downloadSeconds": 0.062076091 }, { - "connectionEstablishedSeconds": 0.130076212, - "uploadSeconds": 0.000028613, - "downloadSeconds": 0.062465879 + "connectionEstablishedSeconds": 0.131448133, + "uploadSeconds": 0.000022286, + "downloadSeconds": 0.06336117 }, { - "connectionEstablishedSeconds": 0.129852872, - "uploadSeconds": 0.000027143, - "downloadSeconds": 0.06261124 + "connectionEstablishedSeconds": 0.129443632, + "uploadSeconds": 0.000056209, + "downloadSeconds": 0.062180284 }, { - "connectionEstablishedSeconds": 0.1257118, - "uploadSeconds": 0.000028156, - "downloadSeconds": 0.061306291 + "connectionEstablishedSeconds": 0.12710126, + "uploadSeconds": 0.000033212, + "downloadSeconds": 0.061873802 }, { - "connectionEstablishedSeconds": 0.123838934, - "uploadSeconds": 0.000050165, - "downloadSeconds": 0.059417837 + "connectionEstablishedSeconds": 0.132666678, + "uploadSeconds": 0.000017503, + "downloadSeconds": 0.063665547 }, { - "connectionEstablishedSeconds": 0.130434207, - "uploadSeconds": 0.000029177, - "downloadSeconds": 0.063710401 + "connectionEstablishedSeconds": 0.12702185, + "uploadSeconds": 0.000029085, + "downloadSeconds": 0.060797793 }, { - "connectionEstablishedSeconds": 0.132712967, - "uploadSeconds": 0.000029904, - "downloadSeconds": 0.063906555 + "connectionEstablishedSeconds": 0.126592433, + "uploadSeconds": 0.000032669, + "downloadSeconds": 0.060591474 }, { - "connectionEstablishedSeconds": 0.131206059, - "uploadSeconds": 0.000048957, - "downloadSeconds": 0.064120677 + "connectionEstablishedSeconds": 0.133810155, + "uploadSeconds": 0.000058363, + "downloadSeconds": 0.064123074 }, { - "connectionEstablishedSeconds": 0.128576055, - "uploadSeconds": 0.00003434, - "downloadSeconds": 0.061779704 + "connectionEstablishedSeconds": 0.127770397, + "uploadSeconds": 0.000034984, + "downloadSeconds": 0.061166624 }, { - "connectionEstablishedSeconds": 0.128580244, - "uploadSeconds": 0.000051578, - "downloadSeconds": 0.061882697 + "connectionEstablishedSeconds": 0.127923376, + "uploadSeconds": 0.000049608, + "downloadSeconds": 0.062294327 }, { - "connectionEstablishedSeconds": 0.124619768, - "uploadSeconds": 0.000025594, - "downloadSeconds": 0.060795325 + "connectionEstablishedSeconds": 0.130198247, + "uploadSeconds": 0.000057625, + "downloadSeconds": 0.062466531 }, { - "connectionEstablishedSeconds": 0.124690448, - "uploadSeconds": 0.000049657, - "downloadSeconds": 0.060330452 + "connectionEstablishedSeconds": 0.121655797, + "uploadSeconds": 0.000060271, + "downloadSeconds": 0.059115247 }, { - "connectionEstablishedSeconds": 0.128483308, - "uploadSeconds": 0.00002808, - "downloadSeconds": 0.062744568 + "connectionEstablishedSeconds": 0.128051974, + "uploadSeconds": 0.000026237, + "downloadSeconds": 0.06123807 }, { - "connectionEstablishedSeconds": 0.124403868, - "uploadSeconds": 0.000046402, - "downloadSeconds": 0.0598167 + "connectionEstablishedSeconds": 0.130745102, + "uploadSeconds": 0.000070401, + "downloadSeconds": 0.062675744 }, { - "connectionEstablishedSeconds": 0.133384103, - "uploadSeconds": 0.000026993, - "downloadSeconds": 0.065154195 + "connectionEstablishedSeconds": 0.124027635, + "uploadSeconds": 0.000048983, + "downloadSeconds": 0.059388268 }, { - "connectionEstablishedSeconds": 0.130978927, - "uploadSeconds": 0.000027785, - "downloadSeconds": 0.063917872 + "connectionEstablishedSeconds": 0.12918062, + "uploadSeconds": 0.000051018, + "downloadSeconds": 0.062686453 }, { - "connectionEstablishedSeconds": 0.130336726, - "uploadSeconds": 0.000028152, - "downloadSeconds": 0.062205661 + "connectionEstablishedSeconds": 0.131975464, + "uploadSeconds": 0.000071127, + "downloadSeconds": 0.063246978 }, { - "connectionEstablishedSeconds": 0.13025496, - "uploadSeconds": 0.000028512, - "downloadSeconds": 0.062731493 + "connectionEstablishedSeconds": 0.132715494, + "uploadSeconds": 0.000028712, + "downloadSeconds": 0.063708049 }, { - "connectionEstablishedSeconds": 0.124000878, - "uploadSeconds": 0.000052929, - "downloadSeconds": 0.059636921 + "connectionEstablishedSeconds": 0.129787806, + "uploadSeconds": 0.000046083, + "downloadSeconds": 0.062132216 }, { - "connectionEstablishedSeconds": 0.128280078, - "uploadSeconds": 0.000048424, - "downloadSeconds": 0.062651944 + "connectionEstablishedSeconds": 0.129494969, + "uploadSeconds": 0.00005722, + "downloadSeconds": 0.06210649 }, { - "connectionEstablishedSeconds": 0.128797227, - "uploadSeconds": 0.000028539, - "downloadSeconds": 0.062063901 + "connectionEstablishedSeconds": 0.129482041, + "uploadSeconds": 0.000066519, + "downloadSeconds": 0.062735254 }, { - "connectionEstablishedSeconds": 0.130458011, - "uploadSeconds": 0.000046817, - "downloadSeconds": 0.062750738 + "connectionEstablishedSeconds": 0.129608133, + "uploadSeconds": 0.000033545, + "downloadSeconds": 0.062285586 }, { - "connectionEstablishedSeconds": 0.131126223, - "uploadSeconds": 0.000045723, - "downloadSeconds": 0.064068823 + "connectionEstablishedSeconds": 0.132186822, + "uploadSeconds": 0.000059521, + "downloadSeconds": 0.063327314 }, { - "connectionEstablishedSeconds": 0.12173857, - "uploadSeconds": 0.000026984, - "downloadSeconds": 0.059374912 + "connectionEstablishedSeconds": 0.124038949, + "uploadSeconds": 0.000053674, + "downloadSeconds": 0.059442535 }, { - "connectionEstablishedSeconds": 0.127766225, - "uploadSeconds": 0.000050603, - "downloadSeconds": 0.062380402 + "connectionEstablishedSeconds": 0.127967746, + "uploadSeconds": 0.000048651, + "downloadSeconds": 0.061859962 }, { - "connectionEstablishedSeconds": 0.132994131, - "uploadSeconds": 0.00005055, - "downloadSeconds": 0.064044932 + "connectionEstablishedSeconds": 0.125237348, + "uploadSeconds": 0.000030156, + "downloadSeconds": 0.061025882 }, { - "connectionEstablishedSeconds": 0.129118858, - "uploadSeconds": 0.000029905, - "downloadSeconds": 0.062115488 + "connectionEstablishedSeconds": 0.127170783, + "uploadSeconds": 0.000029284, + "downloadSeconds": 0.060979754 }, { - "connectionEstablishedSeconds": 0.124208781, - "uploadSeconds": 0.000048165, - "downloadSeconds": 0.0597049 + "connectionEstablishedSeconds": 0.127096476, + "uploadSeconds": 0.000033483, + "downloadSeconds": 0.061771748 }, { - "connectionEstablishedSeconds": 0.130495854, - "uploadSeconds": 0.000034704, - "downloadSeconds": 0.062834117 + "connectionEstablishedSeconds": 0.129432665, + "uploadSeconds": 0.00002477, + "downloadSeconds": 0.063025942 }, { - "connectionEstablishedSeconds": 0.130016672, - "uploadSeconds": 0.00004834, - "downloadSeconds": 0.063432322 + "connectionEstablishedSeconds": 0.128634491, + "uploadSeconds": 0.000039642, + "downloadSeconds": 0.062656228 }, { - "connectionEstablishedSeconds": 0.127844687, - "uploadSeconds": 0.000040963, - "downloadSeconds": 0.061609953 + "connectionEstablishedSeconds": 0.127825999, + "uploadSeconds": 0.00002997, + "downloadSeconds": 0.06120179 }, { - "connectionEstablishedSeconds": 0.127280829, - "uploadSeconds": 0.00002944, - "downloadSeconds": 0.062150441 + "connectionEstablishedSeconds": 0.13097903, + "uploadSeconds": 0.000028754, + "downloadSeconds": 0.062822509 }, { - "connectionEstablishedSeconds": 0.129465704, - "uploadSeconds": 0.000048457, - "downloadSeconds": 0.06313407 + "connectionEstablishedSeconds": 0.131206176, + "uploadSeconds": 0.000033096, + "downloadSeconds": 0.062630138 }, { - "connectionEstablishedSeconds": 0.12538187, - "uploadSeconds": 0.000044295, - "downloadSeconds": 0.06029626 + "connectionEstablishedSeconds": 0.128890985, + "uploadSeconds": 0.000056209, + "downloadSeconds": 0.06179308 }, { - "connectionEstablishedSeconds": 0.127666754, - "uploadSeconds": 0.000029005, - "downloadSeconds": 0.062383045 + "connectionEstablishedSeconds": 0.128788414, + "uploadSeconds": 0.000060265, + "downloadSeconds": 0.061543991 }, { - "connectionEstablishedSeconds": 0.123429586, - "uploadSeconds": 0.000044525, - "downloadSeconds": 0.060214148 + "connectionEstablishedSeconds": 0.129813621, + "uploadSeconds": 0.00005445, + "downloadSeconds": 0.063264928 }, { - "connectionEstablishedSeconds": 0.127534946, - "uploadSeconds": 0.000031261, - "downloadSeconds": 0.062193506 + "connectionEstablishedSeconds": 0.132773119, + "uploadSeconds": 0.000059918, + "downloadSeconds": 0.063684971 }, { - "connectionEstablishedSeconds": 0.126543214, - "uploadSeconds": 0.000053436, - "downloadSeconds": 0.061766702 + "connectionEstablishedSeconds": 0.13095356, + "uploadSeconds": 0.000029186, + "downloadSeconds": 0.062635078 }, { - "connectionEstablishedSeconds": 0.132090294, - "uploadSeconds": 0.000032864, - "downloadSeconds": 0.063654394 + "connectionEstablishedSeconds": 0.12755183, + "uploadSeconds": 0.000035829, + "downloadSeconds": 0.062184685 }, { - "connectionEstablishedSeconds": 0.128190835, - "uploadSeconds": 0.000031634, - "downloadSeconds": 0.062072127 + "connectionEstablishedSeconds": 0.128512692, + "uploadSeconds": 0.000033311, + "downloadSeconds": 0.062553737 }, { - "connectionEstablishedSeconds": 0.124651849, - "uploadSeconds": 0.000044168, - "downloadSeconds": 0.059888498 + "connectionEstablishedSeconds": 0.130148545, + "uploadSeconds": 0.000043772, + "downloadSeconds": 0.063324922 } ], "implementation": "go-libp2p", @@ -4031,173 +4031,173 @@ "pings": { "unit": "s", "results": [ - 0.0631, - 0.063, - 0.063, - 0.063, - 0.0631, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.0631, - 0.063, - 0.063, - 0.063, - 0.063, - 0.0631, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.0631, - 0.063, - 0.0631, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.0631, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063, - 0.063 + 0.0616, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.061700000000000005, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.0615, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061, + 0.061 ] }, "iperf": { "unit": "bit/s", "results": [ - 3270000000, - 3270000000, - 3270000000, - 3270000000, - 3260000000, - 3260000000, - 3270000000, - 3270000000, - 3260000000, - 3270000000, - 3270000000, - 3270000000, - 3260000000, - 3260000000, - 3270000000, - 3260000000, - 3260000000, - 3240000000, 3210000000, - 3200000000, - 3200000000, - 3200000000, + 3220000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, 3210000000, - 3250000000, - 3250000000, - 3250000000, - 3260000000, - 3260000000, - 3260000000, - 3260000000, - 3250000000, - 3250000000, - 3260000000, - 3260000000, - 3260000000, - 3250000000, - 3260000000, - 3250000000, - 3260000000, - 3250000000, - 3240000000, - 3200000000, 3210000000, 3210000000, - 3200000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, + 3190000000, + 3170000000, + 3160000000, + 3160000000, + 3160000000, + 3190000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, + 3210000000, + 3220000000, + 3220000000, + 3220000000, + 3220000000, 3220000000, - 3260000000, - 3260000000, - 3260000000, - 3260000000, - 3260000000, - 3270000000, - 3260000000, - 3260000000, - 3250000000, - 3250000000, - 3250000000, - 3250000000, - 3250000000, - 3250000000, - 3250000000, - 3180000000 + 3220000000, + 3220000000, + 3220000000, + 3210000000, + 3210000000, + 3220000000, + 3220000000, + 3220000000, + 3220000000, + 3210000000, + 3020000000 ] } } \ No newline at end of file From bdefcbc5d05253137a57ae9cd2f127a2c9996362 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Tue, 20 Jun 2023 10:07:02 +0200 Subject: [PATCH 128/143] Update perf/README.md Co-authored-by: Marco Munizaga --- perf/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/README.md b/perf/README.md index ed891f38d..c1c60b58c 100644 --- a/perf/README.md +++ b/perf/README.md @@ -3,7 +3,7 @@ This project includes the following components: - `terraform/`: a Terraform scripts to provision infrastructure -- `impl/`: implementations of the [libp2p perf protocol](https://github.com/libp2p/specs/pull/478) running on top of e.g. go-libp2p, rust-libp2p or Go's std-library https stack +- `impl/`: implementations of the [libp2p perf protocol](https://github.com/libp2p/specs/blob/master/perf/perf.md) running on top of e.g. go-libp2p, rust-libp2p or Go's std-library https stack - `runner/`: a set of scripts building and running the above implementations on the above infrastructure, reporting the results in `benchmark-results.json` Benchmark results can be visualized with https://observablehq.com/@mxinden-workspace/libp2p-performance-dashboard. From d13d054536572c756efa71d8832b8d941479f2da Mon Sep 17 00:00:00 2001 From: Max Inden Date: Tue, 20 Jun 2023 17:08:44 +0900 Subject: [PATCH 129/143] fix: replace let with const --- perf/runner/src/index.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/perf/runner/src/index.ts b/perf/runner/src/index.ts index 43a2077e1..83be24c9f 100644 --- a/perf/runner/src/index.ts +++ b/perf/runner/src/index.ts @@ -56,7 +56,7 @@ async function main(clientPublicIP: string, serverPublicIP: string) { function runPing(clientPublicIP: string, serverPublicIP: string): PingResults { console.error(`= run 100 pings from client to server`); - let cmd = `ssh -o StrictHostKeyChecking=no ec2-user@${clientPublicIP} 'ping -c 100 ${serverPublicIP}'`; + const cmd = `ssh -o StrictHostKeyChecking=no ec2-user@${clientPublicIP} 'ping -c 100 ${serverPublicIP}'`; const stdout = execCommand(cmd).toString(); // Extract the time from each ping @@ -74,15 +74,15 @@ function runPing(clientPublicIP: string, serverPublicIP: string): PingResults { function runIPerf(clientPublicIP: string, serverPublicIP: string): IperfResults { console.error(`= run 60 iPerf UDP from client to server`); - let killCMD = `ssh -o StrictHostKeyChecking=no ec2-user@${serverPublicIP} 'kill $(cat pidfile); rm pidfile; rm server.log || true'`; + const killCMD = `ssh -o StrictHostKeyChecking=no ec2-user@${serverPublicIP} 'kill $(cat pidfile); rm pidfile; rm server.log || true'`; const killSTDOUT = execCommand(killCMD); console.error(killSTDOUT); - let serverCMD = `ssh -o StrictHostKeyChecking=no ec2-user@${serverPublicIP} 'nohup iperf3 -s > server.log 2>&1 & echo \$! > pidfile '`; + const serverCMD = `ssh -o StrictHostKeyChecking=no ec2-user@${serverPublicIP} 'nohup iperf3 -s > server.log 2>&1 & echo \$! > pidfile '`; const serverSTDOUT = execCommand(serverCMD); console.error(serverSTDOUT); - let cmd = `ssh -o StrictHostKeyChecking=no ec2-user@${clientPublicIP} 'iperf3 -c ${serverPublicIP} -u -b 25g -t 60'`; + const cmd = `ssh -o StrictHostKeyChecking=no ec2-user@${clientPublicIP} 'iperf3 -c ${serverPublicIP} -u -b 25g -t 60'`; const stdout = execSync(cmd).toString(); // Extract the bitrate from each relevant line @@ -124,11 +124,11 @@ function runBenchmarkAcrossVersions(args: ArgsRunBenchmarkAcrossVersions): Bench console.error(`=== Starting server ${version.implementation}/${version.id}`); - let killCMD = `ssh -o StrictHostKeyChecking=no ec2-user@${args.serverPublicIP} 'kill $(cat pidfile); rm pidfile; rm server.log || true'`; + const killCMD = `ssh -o StrictHostKeyChecking=no ec2-user@${args.serverPublicIP} 'kill $(cat pidfile); rm pidfile; rm server.log || true'`; const killSTDOUT = execCommand(killCMD); console.error(killSTDOUT); - let serverCMD = `ssh -o StrictHostKeyChecking=no ec2-user@${args.serverPublicIP} 'nohup ./impl/${version.implementation}/${version.id}/perf --run-server --server-address 0.0.0.0:4001 > server.log 2>&1 & echo \$! > pidfile '`; + const serverCMD = `ssh -o StrictHostKeyChecking=no ec2-user@${args.serverPublicIP} 'nohup ./impl/${version.implementation}/${version.id}/perf --run-server --server-address 0.0.0.0:4001 > server.log 2>&1 & echo \$! > pidfile '`; const serverSTDOUT = execCommand(serverCMD); console.error(serverSTDOUT); From c0c34f45eadce9427687dae9834058b2b6765e01 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 21 Jun 2023 11:17:02 +0900 Subject: [PATCH 130/143] fix(https): don't allocate entire req and resp in client --- perf/impl/https/v0.1/main.go | 64 ++++++++++++++++++++++++++++++------ 1 file changed, 54 insertions(+), 10 deletions(-) diff --git a/perf/impl/https/v0.1/main.go b/perf/impl/https/v0.1/main.go index 000e08724..30f64a5a3 100644 --- a/perf/impl/https/v0.1/main.go +++ b/perf/impl/https/v0.1/main.go @@ -1,7 +1,6 @@ package main import ( - "bytes" "crypto/ecdsa" "crypto/elliptic" "crypto/rand" @@ -14,11 +13,11 @@ import ( "flag" "fmt" "io" - "io/ioutil" "log" "math/big" "net" "net/http" + "strconv" "time" ) @@ -37,6 +36,13 @@ func handleRequest(w http.ResponseWriter, r *http.Request) { // Read and discard the remaining bytes in the request io.Copy(io.Discard, r.Body) + // Set content type and length headers + w.Header().Set("Content-Type", "application/octet-stream") + w.Header().Set("Content-Length", strconv.FormatUint(bytesToSend, 10)) + + // Write the status code explicitly + w.WriteHeader(http.StatusOK) + buf := make([]byte, BlockSize) for bytesToSend > 0 { @@ -54,6 +60,37 @@ func handleRequest(w http.ResponseWriter, r *http.Request) { } } +var zeroSlice = make([]byte, BlockSize) // Pre-made zero-filled slice + +type customReader struct { + downloadBytes uint64 + uploadBytes uint64 + position uint64 +} + +func (c *customReader) Read(p []byte) (int, error) { + if c.position < 8 { + binary.BigEndian.PutUint64(p, c.downloadBytes) + c.position += 8 + return 8, nil + } else if c.position-8 < c.uploadBytes { + bytesToWrite := min(len(p), int(c.uploadBytes-(c.position-8))) + copy(p[:bytesToWrite], zeroSlice[:bytesToWrite]) // zero the slice + c.position += uint64(bytesToWrite) + return bytesToWrite, nil + } + + return 0, io.EOF +} + +// Helper function to get minimum of two integers +func min(a, b int) int { + if a < b { + return a + } + return b +} + func runClient(serverAddr string, uploadBytes, downloadBytes uint64) (time.Duration, time.Duration, error) { client := &http.Client{ Transport: &http.Transport{ @@ -63,23 +100,30 @@ func runClient(serverAddr string, uploadBytes, downloadBytes uint64) (time.Durat }, } - reqBody := make([]byte, 8+uploadBytes) - binary.BigEndian.PutUint64(reqBody, uint64(downloadBytes)) + reqBody := &customReader{downloadBytes: downloadBytes, uploadBytes: uploadBytes} + + req, err := http.NewRequest("POST", fmt.Sprintf("https://%s/", serverAddr), reqBody) + if err != nil { + return 0, 0, err + } + + req.Header.Set("Content-Type", "application/octet-stream") + req.Header.Set("Content-Length", strconv.FormatUint(uploadBytes + 8, 10)) startTime := time.Now() - resp, err := client.Post(fmt.Sprintf("https://%s/", serverAddr), "application/octet-stream", bytes.NewReader(reqBody)) + resp, err := client.Do(req) if err != nil { return 0, 0, err } uploadDoneTime := time.Now() + defer resp.Body.Close() - respBody, err := ioutil.ReadAll(resp.Body) + n, err := io.Copy(io.Discard, resp.Body) if err != nil { - return 0, 0, fmt.Errorf("error reading response: %w\n", err) + return 0, 0, fmt.Errorf("error reading response: %w", err) } - defer resp.Body.Close() - if uint64(len(respBody)) != downloadBytes { - return 0, 0, fmt.Errorf("expected %d bytes in response, but received %d\n", downloadBytes, len(respBody)) + if n != int64(downloadBytes) { + return 0, 0, fmt.Errorf("expected %d bytes in response, but received %d", downloadBytes, n) } return uploadDoneTime.Sub(startTime), time.Since(uploadDoneTime), nil From e2e7fcd60c0d4ffa39a6ba0939b3c3fba0ea6607 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 21 Jun 2023 11:21:54 +0900 Subject: [PATCH 131/143] fix(https): use server port --- perf/impl/https/v0.1/main.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/perf/impl/https/v0.1/main.go b/perf/impl/https/v0.1/main.go index 30f64a5a3..d3740ac1e 100644 --- a/perf/impl/https/v0.1/main.go +++ b/perf/impl/https/v0.1/main.go @@ -201,17 +201,23 @@ func main() { log.Fatalf("Error generating ephemeral certificate: %v\n", err) } + // Parse the server address + _, port, err := net.SplitHostPort(*serverAddr) + if err != nil { + log.Fatalf("Invalid server address: %v\n", err) + } + // Create a new HTTPS server with the ephemeral certificate tlsConfig := &tls.Config{Certificates: []tls.Certificate{cert}} server := &http.Server{ - Addr: ":4001", + Addr: ":" + port, TLSConfig: tlsConfig, } http.HandleFunc("/", handleRequest) // Start the HTTPS server - fmt.Println("Starting HTTPS server on port 4001") + fmt.Printf("Starting HTTPS server on port %s\n", port) err = server.ListenAndServeTLS("", "") if err != nil { fmt.Printf("Error starting HTTPS server: %v\n", err) From 28b4d49a38a31486403292c4997ca8386cdddef1 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 21 Jun 2023 11:22:08 +0900 Subject: [PATCH 132/143] fix(https): go fmt --- perf/impl/https/v0.1/main.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/perf/impl/https/v0.1/main.go b/perf/impl/https/v0.1/main.go index d3740ac1e..e643a2c40 100644 --- a/perf/impl/https/v0.1/main.go +++ b/perf/impl/https/v0.1/main.go @@ -75,7 +75,7 @@ func (c *customReader) Read(p []byte) (int, error) { return 8, nil } else if c.position-8 < c.uploadBytes { bytesToWrite := min(len(p), int(c.uploadBytes-(c.position-8))) - copy(p[:bytesToWrite], zeroSlice[:bytesToWrite]) // zero the slice + copy(p[:bytesToWrite], zeroSlice[:bytesToWrite]) // zero the slice c.position += uint64(bytesToWrite) return bytesToWrite, nil } @@ -108,7 +108,7 @@ func runClient(serverAddr string, uploadBytes, downloadBytes uint64) (time.Durat } req.Header.Set("Content-Type", "application/octet-stream") - req.Header.Set("Content-Length", strconv.FormatUint(uploadBytes + 8, 10)) + req.Header.Set("Content-Length", strconv.FormatUint(uploadBytes+8, 10)) startTime := time.Now() resp, err := client.Do(req) From 3c1a909b3e8fae8e08b7c6bda7b379efe758b80c Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 21 Jun 2023 11:26:18 +0900 Subject: [PATCH 133/143] fix(https): check for http status OK --- perf/impl/https/v0.1/main.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/perf/impl/https/v0.1/main.go b/perf/impl/https/v0.1/main.go index e643a2c40..8a00226a3 100644 --- a/perf/impl/https/v0.1/main.go +++ b/perf/impl/https/v0.1/main.go @@ -115,6 +115,9 @@ func runClient(serverAddr string, uploadBytes, downloadBytes uint64) (time.Durat if err != nil { return 0, 0, err } + if resp.StatusCode != http.StatusOK { + return 0, 0, fmt.Errorf("server returned non-OK status: %d %s", resp.StatusCode, resp.Status) + } uploadDoneTime := time.Now() defer resp.Body.Close() From 74fdac645bb4cc32d557cc125e62bbf6847d673e Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 21 Jun 2023 11:34:08 +0900 Subject: [PATCH 134/143] docs(readme): extend new implementation section --- perf/README.md | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/perf/README.md b/perf/README.md index c1c60b58c..112f7c142 100644 --- a/perf/README.md +++ b/perf/README.md @@ -34,21 +34,24 @@ _WARNING_: Running the perf tests might take a while. ## Adding a new implementation -1. Add implementation to `impl/`. Requirements for the binary: - - Running as a libp2p-perf server - - Command line flags - - `--run-server` - - Running as a libp2p-perf client - - Input via command line - - `--server-ip-address` - - `--transport` (see `runner/versions.ts` for possible variants) - - `--upload-bytes` number of bytes to upload per stream. - - `--download-bytes` number of bytes to download per stream. - - Output - - Logging MUST go to stderr. - - Measurement output is printed to stdout as JSON in the form of: - ```json - {"connectionEstablishedSeconds":0.246442851,"uploadSeconds":0.000002077,"downloadSeconds":0.060712241} - ``` - -2. Reference implementation in `runner/src/versions.ts`. +1. Add implementation to `impl/`. + - Create a folder `impl//`. + - In that folder include a `Makefile` that builds an executable and stores it next to the `Makefile` under the name `perf`. + - Requirements for the executable: + - Running as a libp2p-perf server + - Command line flags + - `--run-server` + - Running as a libp2p-perf client + - Input via command line + - `--server-ip-address` + - `--transport` (see `runner/versions.ts` for possible variants) + - `--upload-bytes` number of bytes to upload per stream. + - `--download-bytes` number of bytes to download per stream. + - Output + - Logging MUST go to stderr. + - Measurement output is printed to stdout as JSON in the form of: + ```json + {"connectionEstablishedSeconds":0.246442851,"uploadSeconds":0.000002077,"downloadSeconds":0.060712241} + ``` +2. In `impl/Makefile` include your implementation in the `all` target. +3. Reference implementation in `runner/src/versions.ts`. From 3b9fafa49adc75d018afdfbcb4dfc494a53fdf4d Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 21 Jun 2023 11:41:36 +0900 Subject: [PATCH 135/143] fix(rust-libp2p): remove obsolete phony target --- perf/impl/rust-libp2p/v0.52/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/perf/impl/rust-libp2p/v0.52/Makefile b/perf/impl/rust-libp2p/v0.52/Makefile index 888185ee9..ad2b0df5e 100644 --- a/perf/impl/rust-libp2p/v0.52/Makefile +++ b/perf/impl/rust-libp2p/v0.52/Makefile @@ -17,5 +17,6 @@ rust-libp2p-${commitSha}.zip: clean: rm rust-libp2p-*.zip rm -rf rust-libp2p-* + rm perf -.PHONY: all clean run +.PHONY: all clean From c1bbebab05ff72ddd61398a41f2456da5309d7d9 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 21 Jun 2023 12:42:29 +0900 Subject: [PATCH 136/143] Update benchmark results --- perf/runner/benchmark-results.json | 4692 ++++++++++++++-------------- 1 file changed, 2346 insertions(+), 2346 deletions(-) diff --git a/perf/runner/benchmark-results.json b/perf/runner/benchmark-results.json index fa49d3dd8..367cfba89 100644 --- a/perf/runner/benchmark-results.json +++ b/perf/runner/benchmark-results.json @@ -7,29 +7,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.072591701, - "uploadSeconds": 0.993513826, - "downloadSeconds": 5.4e-8 + "connectionEstablishedSeconds": 0.068123765, + "uploadSeconds": 0.970456932, + "downloadSeconds": 5.3e-8 }, { - "connectionEstablishedSeconds": 0.063965486, - "uploadSeconds": 0.996597075, - "downloadSeconds": 5.4e-8 + "connectionEstablishedSeconds": 0.062713554, + "uploadSeconds": 0.975849906, + "downloadSeconds": 6.8e-8 }, { - "connectionEstablishedSeconds": 0.064042522, - "uploadSeconds": 0.996267952, - "downloadSeconds": 5.5e-8 + "connectionEstablishedSeconds": 0.065501309, + "uploadSeconds": 1.022005129, + "downloadSeconds": 6e-8 }, { - "connectionEstablishedSeconds": 0.061183387, - "uploadSeconds": 0.949102156, - "downloadSeconds": 5.5e-8 + "connectionEstablishedSeconds": 0.066928483, + "uploadSeconds": 1.041319663, + "downloadSeconds": 5.3e-8 }, { - "connectionEstablishedSeconds": 0.064004874, - "uploadSeconds": 0.997215029, - "downloadSeconds": 6e-8 + "connectionEstablishedSeconds": 0.064004129, + "uploadSeconds": 0.996991871, + "downloadSeconds": 5.3e-8 } ], "implementation": "quic-go", @@ -39,29 +39,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.128149901, - "uploadSeconds": 44.471423935, - "downloadSeconds": 0.062837393 + "connectionEstablishedSeconds": 0.131599504, + "uploadSeconds": 47.63213805, + "downloadSeconds": 0.064913485 }, { - "connectionEstablishedSeconds": 0.12713727, - "uploadSeconds": 46.601514089, - "downloadSeconds": 0.063317674 + "connectionEstablishedSeconds": 0.127136394, + "uploadSeconds": 43.618970957, + "downloadSeconds": 0.063410859 }, { - "connectionEstablishedSeconds": 0.124852152, - "uploadSeconds": 46.419787687, - "downloadSeconds": 0.061992227 + "connectionEstablishedSeconds": 0.127686874, + "uploadSeconds": 44.623888682, + "downloadSeconds": 0.063648489 }, { - "connectionEstablishedSeconds": 0.127609022, - "uploadSeconds": 47.341400335, - "downloadSeconds": 0.06342464 + "connectionEstablishedSeconds": 0.128835409, + "uploadSeconds": 46.479589264, + "downloadSeconds": 0.065293635 }, { - "connectionEstablishedSeconds": 0.129867078, - "uploadSeconds": 46.542449905, - "downloadSeconds": 0.064421677 + "connectionEstablishedSeconds": 0.128399353, + "uploadSeconds": 45.799956017, + "downloadSeconds": 0.063969977 } ], "implementation": "rust-libp2p", @@ -71,29 +71,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.065010881, - "uploadSeconds": 11.94366409, - "downloadSeconds": 0.000143572 + "connectionEstablishedSeconds": 0.064484261, + "uploadSeconds": 30.439845709, + "downloadSeconds": 0.000163488 }, { - "connectionEstablishedSeconds": 0.064449364, - "uploadSeconds": 11.390967295, - "downloadSeconds": 0.000117889 + "connectionEstablishedSeconds": 0.06265785, + "uploadSeconds": 11.516149765, + "downloadSeconds": 0.000129193 }, { - "connectionEstablishedSeconds": 0.065164769, - "uploadSeconds": 7.893909053, - "downloadSeconds": 0.000145492 + "connectionEstablishedSeconds": 0.065870575, + "uploadSeconds": 16.945701847, + "downloadSeconds": 0.000083312 }, { - "connectionEstablishedSeconds": 0.065442849, - "uploadSeconds": 13.051619447, - "downloadSeconds": 0.000053836 + "connectionEstablishedSeconds": 0.066685308, + "uploadSeconds": 17.157438746, + "downloadSeconds": 0.000134467 }, { - "connectionEstablishedSeconds": 0.065312358, - "uploadSeconds": 13.784292966, - "downloadSeconds": 0.000106632 + "connectionEstablishedSeconds": 0.06508686, + "uploadSeconds": 20.362663014, + "downloadSeconds": 0.00021038 } ], "implementation": "rust-libp2p", @@ -103,29 +103,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.067412293, - "uploadSeconds": 1.398169302, - "downloadSeconds": 0.000042912 + "connectionEstablishedSeconds": 0.068856644, + "uploadSeconds": 1.402213112, + "downloadSeconds": 0.000085133 }, { - "connectionEstablishedSeconds": 0.064441856, - "uploadSeconds": 1.410075391, - "downloadSeconds": 0.000140306 + "connectionEstablishedSeconds": 0.065518432, + "uploadSeconds": 1.445110638, + "downloadSeconds": 0.000089192 }, { - "connectionEstablishedSeconds": 0.064378594, - "uploadSeconds": 1.418547115, - "downloadSeconds": 0.000044114 + "connectionEstablishedSeconds": 0.061399509, + "uploadSeconds": 1.347394456, + "downloadSeconds": 0.000055885 }, { - "connectionEstablishedSeconds": 0.060640084, - "uploadSeconds": 1.340897619, - "downloadSeconds": 0.000050086 + "connectionEstablishedSeconds": 0.063340799, + "uploadSeconds": 1.3995380339999999, + "downloadSeconds": 0.000043643 }, { - "connectionEstablishedSeconds": 0.066580562, - "uploadSeconds": 1.469474944, - "downloadSeconds": 0.000090476 + "connectionEstablishedSeconds": 0.063240204, + "uploadSeconds": 1.393610506, + "downloadSeconds": 0.000126388 } ], "implementation": "rust-libp2p-quinn", @@ -136,28 +136,28 @@ "result": [ { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.546361149, - "downloadSeconds": 0.00000428 + "uploadSeconds": 2.79994608, + "downloadSeconds": 0.000001624 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.745976453, - "downloadSeconds": 0.000005038 + "uploadSeconds": 2.712869064, + "downloadSeconds": 0.000004425 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.713599509, - "downloadSeconds": 0.000010715 + "uploadSeconds": 2.7989140260000003, + "downloadSeconds": 0.000001659 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.788424409, - "downloadSeconds": 0.000004897 + "uploadSeconds": 2.797738943, + "downloadSeconds": 0.000003846 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 2.78340292, - "downloadSeconds": 0.000004612 + "uploadSeconds": 2.710649859, + "downloadSeconds": 0.000004266 } ], "implementation": "https", @@ -167,29 +167,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.258152878, - "uploadSeconds": 2.903089138, - "downloadSeconds": 0.125816766 + "connectionEstablishedSeconds": 0.257897112, + "uploadSeconds": 2.898714608, + "downloadSeconds": 0.125947478 }, { - "connectionEstablishedSeconds": 0.247534233, - "uploadSeconds": 2.793107729, - "downloadSeconds": 0.120786085 + "connectionEstablishedSeconds": 0.253306448, + "uploadSeconds": 2.935159906, + "downloadSeconds": 0.124808834 }, { - "connectionEstablishedSeconds": 0.255590806, - "uploadSeconds": 2.900955997, - "downloadSeconds": 0.125743498 + "connectionEstablishedSeconds": 0.257107718, + "uploadSeconds": 2.956579177, + "downloadSeconds": 0.125826729 }, { - "connectionEstablishedSeconds": 0.256080872, - "uploadSeconds": 2.827943514, - "downloadSeconds": 0.125073074 + "connectionEstablishedSeconds": 0.261447279, + "uploadSeconds": 3.073232105, + "downloadSeconds": 0.128016533 }, { - "connectionEstablishedSeconds": 0.251226622, - "uploadSeconds": 3.014206189, - "downloadSeconds": 0.122625333 + "connectionEstablishedSeconds": 0.256173976, + "uploadSeconds": 3.094974155, + "downloadSeconds": 0.126269123 } ], "implementation": "go-libp2p", @@ -199,29 +199,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.136354261, - "uploadSeconds": 1.34037684, - "downloadSeconds": 0.065016578 + "connectionEstablishedSeconds": 0.132941292, + "uploadSeconds": 1.3138654889999999, + "downloadSeconds": 0.063525917 }, { - "connectionEstablishedSeconds": 0.125638465, - "uploadSeconds": 1.236551464, - "downloadSeconds": 0.059771373 + "connectionEstablishedSeconds": 0.130994117, + "uploadSeconds": 1.480872529, + "downloadSeconds": 0.063031466 }, { - "connectionEstablishedSeconds": 0.130059099, - "uploadSeconds": 1.3015519709999999, - "downloadSeconds": 0.063095418 + "connectionEstablishedSeconds": 0.131776023, + "uploadSeconds": 1.303614286, + "downloadSeconds": 0.063162675 }, { - "connectionEstablishedSeconds": 0.123634505, - "uploadSeconds": 1.240844318, - "downloadSeconds": 0.060056167 + "connectionEstablishedSeconds": 0.127950072, + "uploadSeconds": 1.282649997, + "downloadSeconds": 0.062072209 }, { - "connectionEstablishedSeconds": 0.130523277, - "uploadSeconds": 1.29241932, - "downloadSeconds": 0.062617775 + "connectionEstablishedSeconds": 0.132015753, + "uploadSeconds": 1.308251399, + "downloadSeconds": 0.063331159 } ], "implementation": "go-libp2p", @@ -241,29 +241,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.065881341, - "uploadSeconds": 7.2e-7, - "downloadSeconds": 1.147514299 + "connectionEstablishedSeconds": 0.066565584, + "uploadSeconds": 4.14e-7, + "downloadSeconds": 1.156675842 }, { - "connectionEstablishedSeconds": 0.063107207, - "uploadSeconds": 5.21e-7, - "downloadSeconds": 1.022722282 + "connectionEstablishedSeconds": 0.064892061, + "uploadSeconds": 4.79e-7, + "downloadSeconds": 1.069297593 }, { - "connectionEstablishedSeconds": 0.063938955, - "uploadSeconds": 5.68e-7, - "downloadSeconds": 1.047213785 + "connectionEstablishedSeconds": 0.065190888, + "uploadSeconds": 5.41e-7, + "downloadSeconds": 1.597194709 }, { - "connectionEstablishedSeconds": 0.063826013, - "uploadSeconds": 4.93e-7, - "downloadSeconds": 1.049769468 + "connectionEstablishedSeconds": 0.063803854, + "uploadSeconds": 6.02e-7, + "downloadSeconds": 1.263743063 }, { - "connectionEstablishedSeconds": 0.066356304, - "uploadSeconds": 4.31e-7, - "downloadSeconds": 1.094437064 + "connectionEstablishedSeconds": 0.064557168, + "uploadSeconds": 5.93e-7, + "downloadSeconds": 1.063204626 } ], "implementation": "quic-go", @@ -273,29 +273,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.124415501, - "uploadSeconds": 0.000013356, - "downloadSeconds": 44.214361619 + "connectionEstablishedSeconds": 0.118973999, + "uploadSeconds": 0.00000237, + "downloadSeconds": 43.097832521 }, { - "connectionEstablishedSeconds": 0.126392148, - "uploadSeconds": 0.00000904, - "downloadSeconds": 46.405967084 + "connectionEstablishedSeconds": 0.127215353, + "uploadSeconds": 0.000002032, + "downloadSeconds": 45.641765158 }, { - "connectionEstablishedSeconds": 0.119310633, - "uploadSeconds": 0.000002357, - "downloadSeconds": 43.149841696 + "connectionEstablishedSeconds": 0.124596278, + "uploadSeconds": 0.000002028, + "downloadSeconds": 46.368505073 }, { - "connectionEstablishedSeconds": 0.120753583, - "uploadSeconds": 0.000001923, - "downloadSeconds": 43.327216629 + "connectionEstablishedSeconds": 0.128120916, + "uploadSeconds": 0.000002222, + "downloadSeconds": 47.874739863 }, { - "connectionEstablishedSeconds": 0.128662408, - "uploadSeconds": 0.000001849, - "downloadSeconds": 46.204564851 + "connectionEstablishedSeconds": 0.124931603, + "uploadSeconds": 0.000001954, + "downloadSeconds": 44.744356376 } ], "implementation": "rust-libp2p", @@ -305,29 +305,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.063281293, - "uploadSeconds": 0.061164751, - "downloadSeconds": 12.644189355 + "connectionEstablishedSeconds": 0.064101794, + "uploadSeconds": 0.062433886, + "downloadSeconds": 14.226532904 }, { - "connectionEstablishedSeconds": 0.064788451, - "uploadSeconds": 0.063338964, - "downloadSeconds": 11.958387377 + "connectionEstablishedSeconds": 0.064768482, + "uploadSeconds": 0.063380472, + "downloadSeconds": 9.652918476 }, { - "connectionEstablishedSeconds": 0.064816461, - "uploadSeconds": 0.06356285, - "downloadSeconds": 12.735303433 + "connectionEstablishedSeconds": 0.063089269, + "uploadSeconds": 0.061641026, + "downloadSeconds": 44.248097576 }, { - "connectionEstablishedSeconds": 0.063857438, - "uploadSeconds": 0.062527125, - "downloadSeconds": 19.320648685 + "connectionEstablishedSeconds": 0.065786917, + "uploadSeconds": 0.064454129, + "downloadSeconds": 7.935120556 }, { - "connectionEstablishedSeconds": 0.064983316, - "uploadSeconds": 0.063643688, - "downloadSeconds": 11.610833824 + "connectionEstablishedSeconds": 0.065490198, + "uploadSeconds": 0.064216836, + "downloadSeconds": 12.013647805 } ], "implementation": "rust-libp2p", @@ -337,29 +337,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.065331777, - "uploadSeconds": 0.063431292, - "downloadSeconds": 1.348242627 + "connectionEstablishedSeconds": 0.065718437, + "uploadSeconds": 0.063958589, + "downloadSeconds": 1.5755928510000001 }, { - "connectionEstablishedSeconds": 0.064813525, - "uploadSeconds": 0.06326287, - "downloadSeconds": 1.391417955 + "connectionEstablishedSeconds": 0.065243916, + "uploadSeconds": 0.063788174, + "downloadSeconds": 1.374596511 }, { - "connectionEstablishedSeconds": 0.064060896, - "uploadSeconds": 0.062629754, - "downloadSeconds": 1.332309391 + "connectionEstablishedSeconds": 0.065815979, + "uploadSeconds": 0.064431818, + "downloadSeconds": 1.406562029 }, { - "connectionEstablishedSeconds": 0.062360534, - "uploadSeconds": 0.061023163, - "downloadSeconds": 1.311276099 + "connectionEstablishedSeconds": 0.064376266, + "uploadSeconds": 0.062916412, + "downloadSeconds": 1.395864717 }, { - "connectionEstablishedSeconds": 0.061915192, - "uploadSeconds": 0.060483361, - "downloadSeconds": 1.305479673 + "connectionEstablishedSeconds": 0.065978775, + "uploadSeconds": 0.064501789, + "downloadSeconds": 1.412157431 } ], "implementation": "rust-libp2p-quinn", @@ -370,28 +370,28 @@ "result": [ { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184612887, - "downloadSeconds": 2.68305372 + "uploadSeconds": 0.188128181, + "downloadSeconds": 2.674302866 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193841282, - "downloadSeconds": 2.755002394 + "uploadSeconds": 0.191556654, + "downloadSeconds": 2.862983464 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186032876, - "downloadSeconds": 2.694924255 + "uploadSeconds": 0.1892993, + "downloadSeconds": 2.526412433 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186131234, - "downloadSeconds": 2.6360130010000002 + "uploadSeconds": 0.19302405, + "downloadSeconds": 3.278985925 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187341762, - "downloadSeconds": 2.935211637 + "uploadSeconds": 0.184218404, + "downloadSeconds": 2.509003996 } ], "implementation": "https", @@ -401,29 +401,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.243756729, - "uploadSeconds": 0.000032644, - "downloadSeconds": 3.06384402 + "connectionEstablishedSeconds": 0.25935759, + "uploadSeconds": 0.000044908, + "downloadSeconds": 3.076994748 }, { - "connectionEstablishedSeconds": 0.256124405, - "uploadSeconds": 0.000062869, - "downloadSeconds": 2.944698752 + "connectionEstablishedSeconds": 0.252395091, + "uploadSeconds": 0.000023151, + "downloadSeconds": 5.499522915 }, { - "connectionEstablishedSeconds": 0.254493128, - "uploadSeconds": 0.000063636, - "downloadSeconds": 3.000653302 + "connectionEstablishedSeconds": 0.247996802, + "uploadSeconds": 0.000049357, + "downloadSeconds": 3.000616134 }, { - "connectionEstablishedSeconds": 0.239470705, - "uploadSeconds": 0.000033936, - "downloadSeconds": 2.876978406 + "connectionEstablishedSeconds": 0.254360687, + "uploadSeconds": 0.000014436, + "downloadSeconds": 2.998061834 }, { - "connectionEstablishedSeconds": 0.256640393, - "uploadSeconds": 0.000034404, - "downloadSeconds": 3.034295351 + "connectionEstablishedSeconds": 0.248067035, + "uploadSeconds": 0.00002827, + "downloadSeconds": 8.412003512 } ], "implementation": "go-libp2p", @@ -433,29 +433,29 @@ { "result": [ { - "connectionEstablishedSeconds": 0.127539224, - "uploadSeconds": 0.000047314, - "downloadSeconds": 1.311046681 + "connectionEstablishedSeconds": 0.129844268, + "uploadSeconds": 0.000028622, + "downloadSeconds": 17.731692926 }, { - "connectionEstablishedSeconds": 0.122236166, - "uploadSeconds": 0.000043592, - "downloadSeconds": 1.284734337 + "connectionEstablishedSeconds": 0.126124365, + "uploadSeconds": 0.000011456, + "downloadSeconds": 33.438663611 }, { - "connectionEstablishedSeconds": 0.131773275, - "uploadSeconds": 0.00004765, - "downloadSeconds": 1.366333423 + "connectionEstablishedSeconds": 0.125621003, + "uploadSeconds": 0.000052524, + "downloadSeconds": 1.303201594 }, { - "connectionEstablishedSeconds": 0.12741056, - "uploadSeconds": 0.000028269, - "downloadSeconds": 1.3108902439999999 + "connectionEstablishedSeconds": 0.127493675, + "uploadSeconds": 0.000047776, + "downloadSeconds": 1.375030162 }, { - "connectionEstablishedSeconds": 0.130194803, - "uploadSeconds": 0.000031287, - "downloadSeconds": 1.368411917 + "connectionEstablishedSeconds": 0.126735688, + "uploadSeconds": 0.000032102, + "downloadSeconds": 1.33293199 } ], "implementation": "go-libp2p", @@ -475,504 +475,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.063757277, - "uploadSeconds": 0.000002098, - "downloadSeconds": 0.06153352 + "connectionEstablishedSeconds": 0.065960652, + "uploadSeconds": 0.000002015, + "downloadSeconds": 0.063855438 }, { - "connectionEstablishedSeconds": 0.064406775, - "uploadSeconds": 0.00000206, - "downloadSeconds": 0.062344916 + "connectionEstablishedSeconds": 0.065796591, + "uploadSeconds": 7.76e-7, + "downloadSeconds": 0.06396702 }, { - "connectionEstablishedSeconds": 0.060652722, - "uploadSeconds": 0.000002053, - "downloadSeconds": 0.058777561 + "connectionEstablishedSeconds": 0.063741155, + "uploadSeconds": 7.26e-7, + "downloadSeconds": 0.061985858 }, { - "connectionEstablishedSeconds": 0.064089096, - "uploadSeconds": 9.1e-7, - "downloadSeconds": 0.062302712 + "connectionEstablishedSeconds": 0.063623635, + "uploadSeconds": 8.74e-7, + "downloadSeconds": 0.061928483 }, { - "connectionEstablishedSeconds": 0.060688795, - "uploadSeconds": 0.000001958, - "downloadSeconds": 0.058708819 + "connectionEstablishedSeconds": 0.065022228, + "uploadSeconds": 8.35e-7, + "downloadSeconds": 0.063295054 }, { - "connectionEstablishedSeconds": 0.064872545, - "uploadSeconds": 9.1e-7, - "downloadSeconds": 0.063219675 + "connectionEstablishedSeconds": 0.063489342, + "uploadSeconds": 8.91e-7, + "downloadSeconds": 0.061834942 }, { - "connectionEstablishedSeconds": 0.062259234, - "uploadSeconds": 8.11e-7, - "downloadSeconds": 0.060382555 + "connectionEstablishedSeconds": 0.063839197, + "uploadSeconds": 0.000001813, + "downloadSeconds": 0.062152462 }, { - "connectionEstablishedSeconds": 0.061013804, - "uploadSeconds": 0.000001942, - "downloadSeconds": 0.059175199 + "connectionEstablishedSeconds": 0.062052708, + "uploadSeconds": 0.00000184, + "downloadSeconds": 0.060337044 }, { - "connectionEstablishedSeconds": 0.062391085, - "uploadSeconds": 8.27e-7, - "downloadSeconds": 0.060469457 + "connectionEstablishedSeconds": 0.06652303, + "uploadSeconds": 0.000001925, + "downloadSeconds": 0.06475633 }, { - "connectionEstablishedSeconds": 0.06363342, - "uploadSeconds": 0.000002082, - "downloadSeconds": 0.061803819 + "connectionEstablishedSeconds": 0.064486313, + "uploadSeconds": 0.000001878, + "downloadSeconds": 0.062974785 }, { - "connectionEstablishedSeconds": 0.064986752, - "uploadSeconds": 0.000002243, - "downloadSeconds": 0.063115395 + "connectionEstablishedSeconds": 0.06602361, + "uploadSeconds": 0.000001897, + "downloadSeconds": 0.064166513 }, { - "connectionEstablishedSeconds": 0.063943816, - "uploadSeconds": 8.16e-7, - "downloadSeconds": 0.062153642 + "connectionEstablishedSeconds": 0.065900274, + "uploadSeconds": 0.00000199, + "downloadSeconds": 0.064157587 }, { - "connectionEstablishedSeconds": 0.065112835, - "uploadSeconds": 0.000001882, - "downloadSeconds": 0.063280987 + "connectionEstablishedSeconds": 0.065483286, + "uploadSeconds": 0.000001814, + "downloadSeconds": 0.06382869 }, { - "connectionEstablishedSeconds": 0.065172953, - "uploadSeconds": 0.000001997, - "downloadSeconds": 0.063402952 + "connectionEstablishedSeconds": 0.065826406, + "uploadSeconds": 7.81e-7, + "downloadSeconds": 0.064117447 }, { - "connectionEstablishedSeconds": 0.063957018, - "uploadSeconds": 8.14e-7, - "downloadSeconds": 0.062247777 + "connectionEstablishedSeconds": 0.063089169, + "uploadSeconds": 0.00000184, + "downloadSeconds": 0.061341493 }, { - "connectionEstablishedSeconds": 0.060415915, - "uploadSeconds": 0.000001923, - "downloadSeconds": 0.058581677 + "connectionEstablishedSeconds": 0.063718383, + "uploadSeconds": 0.000001888, + "downloadSeconds": 0.063655426 }, { - "connectionEstablishedSeconds": 0.065567543, - "uploadSeconds": 8.44e-7, - "downloadSeconds": 0.061890709 + "connectionEstablishedSeconds": 0.066834037, + "uploadSeconds": 7.83e-7, + "downloadSeconds": 0.065118068 }, { - "connectionEstablishedSeconds": 0.063604336, - "uploadSeconds": 0.00000192, - "downloadSeconds": 0.061730741 + "connectionEstablishedSeconds": 0.066410017, + "uploadSeconds": 7.09e-7, + "downloadSeconds": 0.064750831 }, { - "connectionEstablishedSeconds": 0.065028989, - "uploadSeconds": 0.000002068, - "downloadSeconds": 0.062569353 + "connectionEstablishedSeconds": 0.062099751, + "uploadSeconds": 0.000001848, + "downloadSeconds": 0.060406111 }, { - "connectionEstablishedSeconds": 0.064165452, - "uploadSeconds": 0.000001881, - "downloadSeconds": 0.062379744 + "connectionEstablishedSeconds": 0.064540611, + "uploadSeconds": 7.44e-7, + "downloadSeconds": 0.063029603 }, { - "connectionEstablishedSeconds": 0.064301036, - "uploadSeconds": 0.000001922, - "downloadSeconds": 0.062620702 + "connectionEstablishedSeconds": 0.062104416, + "uploadSeconds": 0.000001775, + "downloadSeconds": 0.060452269 }, { - "connectionEstablishedSeconds": 0.063747948, - "uploadSeconds": 9.67e-7, - "downloadSeconds": 0.061884871 + "connectionEstablishedSeconds": 0.065979366, + "uploadSeconds": 0.000001828, + "downloadSeconds": 0.064631635 }, { - "connectionEstablishedSeconds": 0.065926167, - "uploadSeconds": 0.000001789, - "downloadSeconds": 0.064170849 + "connectionEstablishedSeconds": 0.064317867, + "uploadSeconds": 0.000001728, + "downloadSeconds": 0.062680971 }, { - "connectionEstablishedSeconds": 0.06364864, - "uploadSeconds": 0.000001778, - "downloadSeconds": 0.061967574 + "connectionEstablishedSeconds": 0.066068105, + "uploadSeconds": 0.000001847, + "downloadSeconds": 0.064407149 }, { - "connectionEstablishedSeconds": 0.063607643, - "uploadSeconds": 6.99e-7, - "downloadSeconds": 0.062030139 + "connectionEstablishedSeconds": 0.066437507, + "uploadSeconds": 0.000001732, + "downloadSeconds": 0.064739867 }, { - "connectionEstablishedSeconds": 0.066298775, - "uploadSeconds": 0.000001964, - "downloadSeconds": 0.064447687 + "connectionEstablishedSeconds": 0.063907597, + "uploadSeconds": 0.000001816, + "downloadSeconds": 0.062924509 }, { - "connectionEstablishedSeconds": 0.061143207, - "uploadSeconds": 7.76e-7, - "downloadSeconds": 0.05951208 + "connectionEstablishedSeconds": 0.064049647, + "uploadSeconds": 0.000001732, + "downloadSeconds": 0.06234967 }, { - "connectionEstablishedSeconds": 0.064052036, - "uploadSeconds": 0.000001939, - "downloadSeconds": 0.062408256 + "connectionEstablishedSeconds": 0.063910531, + "uploadSeconds": 0.00000186, + "downloadSeconds": 0.062329574 }, { - "connectionEstablishedSeconds": 0.065916615, - "uploadSeconds": 0.000001948, - "downloadSeconds": 0.064179809 + "connectionEstablishedSeconds": 0.065968402, + "uploadSeconds": 0.000001923, + "downloadSeconds": 0.064255131 }, { - "connectionEstablishedSeconds": 0.060758193, - "uploadSeconds": 7.97e-7, - "downloadSeconds": 0.058960356 + "connectionEstablishedSeconds": 0.063100228, + "uploadSeconds": 0.000001812, + "downloadSeconds": 0.061423418 }, { - "connectionEstablishedSeconds": 0.065566506, - "uploadSeconds": 0.000001898, - "downloadSeconds": 0.063721724 + "connectionEstablishedSeconds": 0.066908387, + "uploadSeconds": 0.000001842, + "downloadSeconds": 0.065233548 }, { - "connectionEstablishedSeconds": 0.063050603, - "uploadSeconds": 7.68e-7, - "downloadSeconds": 0.061291676 + "connectionEstablishedSeconds": 0.066429964, + "uploadSeconds": 0.00000185, + "downloadSeconds": 0.064721823 }, { - "connectionEstablishedSeconds": 0.064640847, - "uploadSeconds": 0.000001889, - "downloadSeconds": 0.063094597 + "connectionEstablishedSeconds": 0.064623603, + "uploadSeconds": 0.000001847, + "downloadSeconds": 0.063768799 }, { - "connectionEstablishedSeconds": 0.067286727, - "uploadSeconds": 0.00000185, - "downloadSeconds": 0.064225539 + "connectionEstablishedSeconds": 0.064637046, + "uploadSeconds": 0.000001848, + "downloadSeconds": 0.062864239 }, { - "connectionEstablishedSeconds": 0.065344644, - "uploadSeconds": 0.000001833, - "downloadSeconds": 0.063530664 + "connectionEstablishedSeconds": 0.066364894, + "uploadSeconds": 0.000001886, + "downloadSeconds": 0.064992379 }, { - "connectionEstablishedSeconds": 0.0650521, - "uploadSeconds": 0.000001809, - "downloadSeconds": 0.06329072 + "connectionEstablishedSeconds": 0.066949464, + "uploadSeconds": 0.000001917, + "downloadSeconds": 0.065019192 }, { - "connectionEstablishedSeconds": 0.064894472, - "uploadSeconds": 0.000001806, - "downloadSeconds": 0.063028643 + "connectionEstablishedSeconds": 0.064527955, + "uploadSeconds": 0.00000189, + "downloadSeconds": 0.062822321 }, { - "connectionEstablishedSeconds": 0.063594258, - "uploadSeconds": 0.000001939, - "downloadSeconds": 0.06187519 + "connectionEstablishedSeconds": 0.065350527, + "uploadSeconds": 7.2e-7, + "downloadSeconds": 0.063855509 }, { - "connectionEstablishedSeconds": 0.065571442, - "uploadSeconds": 7.23e-7, - "downloadSeconds": 0.063898123 + "connectionEstablishedSeconds": 0.063090567, + "uploadSeconds": 0.000001824, + "downloadSeconds": 0.061434879 }, { - "connectionEstablishedSeconds": 0.062127089, - "uploadSeconds": 0.000001843, - "downloadSeconds": 0.060323751 + "connectionEstablishedSeconds": 0.065239703, + "uploadSeconds": 0.00000196, + "downloadSeconds": 0.063566127 }, { - "connectionEstablishedSeconds": 0.064335301, - "uploadSeconds": 8.06e-7, - "downloadSeconds": 0.062641153 + "connectionEstablishedSeconds": 0.063867134, + "uploadSeconds": 0.000001787, + "downloadSeconds": 0.062171417 }, { - "connectionEstablishedSeconds": 0.06524518, - "uploadSeconds": 0.000001965, - "downloadSeconds": 0.063493729 + "connectionEstablishedSeconds": 0.064744197, + "uploadSeconds": 0.000001909, + "downloadSeconds": 0.063078302 }, { - "connectionEstablishedSeconds": 0.064888498, - "uploadSeconds": 0.00000186, - "downloadSeconds": 0.062888329 + "connectionEstablishedSeconds": 0.063921323, + "uploadSeconds": 0.000001774, + "downloadSeconds": 0.062253087 }, { - "connectionEstablishedSeconds": 0.065954304, - "uploadSeconds": 0.000002015, - "downloadSeconds": 0.064085454 + "connectionEstablishedSeconds": 0.065797461, + "uploadSeconds": 0.000001763, + "downloadSeconds": 0.064141632 }, { - "connectionEstablishedSeconds": 0.064389544, - "uploadSeconds": 0.000001811, - "downloadSeconds": 0.062455711 + "connectionEstablishedSeconds": 0.063432254, + "uploadSeconds": 7.52e-7, + "downloadSeconds": 0.063523257 }, { - "connectionEstablishedSeconds": 0.063702299, - "uploadSeconds": 0.000001964, - "downloadSeconds": 0.062057032 + "connectionEstablishedSeconds": 0.063448576, + "uploadSeconds": 0.000001847, + "downloadSeconds": 0.061447665 }, { - "connectionEstablishedSeconds": 0.065016817, - "uploadSeconds": 0.00000184, - "downloadSeconds": 0.062188923 + "connectionEstablishedSeconds": 0.064840213, + "uploadSeconds": 0.000001799, + "downloadSeconds": 0.063268648 }, { - "connectionEstablishedSeconds": 0.065035619, - "uploadSeconds": 0.000002058, - "downloadSeconds": 0.063274735 + "connectionEstablishedSeconds": 0.062984093, + "uploadSeconds": 0.000001873, + "downloadSeconds": 0.061266251 }, { - "connectionEstablishedSeconds": 0.062839818, - "uploadSeconds": 7.8e-7, - "downloadSeconds": 0.061082748 + "connectionEstablishedSeconds": 0.063835431, + "uploadSeconds": 0.000001041, + "downloadSeconds": 0.062294655 }, { - "connectionEstablishedSeconds": 0.065934434, - "uploadSeconds": 0.000001841, - "downloadSeconds": 0.064131774 + "connectionEstablishedSeconds": 0.066513465, + "uploadSeconds": 0.000001802, + "downloadSeconds": 0.06479643 }, { - "connectionEstablishedSeconds": 0.063607034, - "uploadSeconds": 0.000001785, - "downloadSeconds": 0.061900905 + "connectionEstablishedSeconds": 0.064597329, + "uploadSeconds": 0.000001768, + "downloadSeconds": 0.062962919 }, { - "connectionEstablishedSeconds": 0.065002741, - "uploadSeconds": 0.000001909, - "downloadSeconds": 0.063153422 + "connectionEstablishedSeconds": 0.065778361, + "uploadSeconds": 0.00000186, + "downloadSeconds": 0.06410771 }, { - "connectionEstablishedSeconds": 0.063872327, - "uploadSeconds": 0.000001816, - "downloadSeconds": 0.062116588 + "connectionEstablishedSeconds": 0.065951503, + "uploadSeconds": 0.000001775, + "downloadSeconds": 0.063964319 }, { - "connectionEstablishedSeconds": 0.063131908, - "uploadSeconds": 0.000001942, - "downloadSeconds": 0.061296468 + "connectionEstablishedSeconds": 0.065201946, + "uploadSeconds": 0.000001795, + "downloadSeconds": 0.063643639 }, { - "connectionEstablishedSeconds": 0.065480669, - "uploadSeconds": 0.000001939, - "downloadSeconds": 0.063691877 + "connectionEstablishedSeconds": 0.066076218, + "uploadSeconds": 0.000001848, + "downloadSeconds": 0.064510646 }, { - "connectionEstablishedSeconds": 0.063079263, - "uploadSeconds": 0.000001809, - "downloadSeconds": 0.060947198 + "connectionEstablishedSeconds": 0.060682481, + "uploadSeconds": 0.000002, + "downloadSeconds": 0.059199478 }, { - "connectionEstablishedSeconds": 0.063233424, - "uploadSeconds": 7.83e-7, - "downloadSeconds": 0.061441264 + "connectionEstablishedSeconds": 0.065554049, + "uploadSeconds": 0.000001739, + "downloadSeconds": 0.06377536 }, { - "connectionEstablishedSeconds": 0.061935685, - "uploadSeconds": 0.000001885, - "downloadSeconds": 0.060381149 + "connectionEstablishedSeconds": 0.061208203, + "uploadSeconds": 0.00000177, + "downloadSeconds": 0.059550325 }, { - "connectionEstablishedSeconds": 0.064600406, - "uploadSeconds": 0.00000186, - "downloadSeconds": 0.062839281 + "connectionEstablishedSeconds": 0.067027502, + "uploadSeconds": 0.000001823, + "downloadSeconds": 0.065262971 }, { - "connectionEstablishedSeconds": 0.065516104, - "uploadSeconds": 0.000001893, - "downloadSeconds": 0.06374047 + "connectionEstablishedSeconds": 0.066147698, + "uploadSeconds": 0.000001906, + "downloadSeconds": 0.064408233 }, { - "connectionEstablishedSeconds": 0.065938802, - "uploadSeconds": 8.05e-7, - "downloadSeconds": 0.064165922 + "connectionEstablishedSeconds": 0.066192563, + "uploadSeconds": 0.000001711, + "downloadSeconds": 0.064853112 }, { - "connectionEstablishedSeconds": 0.063539109, - "uploadSeconds": 0.000001893, - "downloadSeconds": 0.061812606 + "connectionEstablishedSeconds": 0.065939828, + "uploadSeconds": 0.000001766, + "downloadSeconds": 0.064260021 }, { - "connectionEstablishedSeconds": 0.065168095, - "uploadSeconds": 0.000001865, - "downloadSeconds": 0.0633188 + "connectionEstablishedSeconds": 0.06487606, + "uploadSeconds": 0.000001916, + "downloadSeconds": 0.063237738 }, { - "connectionEstablishedSeconds": 0.06577026, - "uploadSeconds": 0.000001815, - "downloadSeconds": 0.064091842 + "connectionEstablishedSeconds": 0.064049202, + "uploadSeconds": 0.000001889, + "downloadSeconds": 0.062357129 }, { - "connectionEstablishedSeconds": 0.065306406, - "uploadSeconds": 0.000001872, - "downloadSeconds": 0.06367882 + "connectionEstablishedSeconds": 0.065536679, + "uploadSeconds": 0.000001785, + "downloadSeconds": 0.064333056 }, { - "connectionEstablishedSeconds": 0.065652041, - "uploadSeconds": 0.0000019, - "downloadSeconds": 0.063729744 + "connectionEstablishedSeconds": 0.063045093, + "uploadSeconds": 0.000001888, + "downloadSeconds": 0.061440221 }, { - "connectionEstablishedSeconds": 0.064137435, - "uploadSeconds": 0.000001868, - "downloadSeconds": 0.061969207 + "connectionEstablishedSeconds": 0.06322189, + "uploadSeconds": 0.00000193, + "downloadSeconds": 0.06153135 }, { - "connectionEstablishedSeconds": 0.062031377, - "uploadSeconds": 7.9e-7, - "downloadSeconds": 0.060253354 + "connectionEstablishedSeconds": 0.06471423, + "uploadSeconds": 0.000001819, + "downloadSeconds": 0.063194954 }, { - "connectionEstablishedSeconds": 0.060716153, - "uploadSeconds": 0.000001926, - "downloadSeconds": 0.058806477 + "connectionEstablishedSeconds": 0.065249297, + "uploadSeconds": 0.00000169, + "downloadSeconds": 0.064097755 }, { - "connectionEstablishedSeconds": 0.063125529, - "uploadSeconds": 0.000001932, - "downloadSeconds": 0.061343725 + "connectionEstablishedSeconds": 0.064081193, + "uploadSeconds": 7.64e-7, + "downloadSeconds": 0.062326683 }, { - "connectionEstablishedSeconds": 0.066066193, - "uploadSeconds": 7.26e-7, - "downloadSeconds": 0.064173226 + "connectionEstablishedSeconds": 0.063041856, + "uploadSeconds": 0.000001814, + "downloadSeconds": 0.061309187 }, { - "connectionEstablishedSeconds": 0.06159283, - "uploadSeconds": 0.000001958, - "downloadSeconds": 0.059657058 + "connectionEstablishedSeconds": 0.063910362, + "uploadSeconds": 0.00000181, + "downloadSeconds": 0.062275784 }, { - "connectionEstablishedSeconds": 0.064424025, - "uploadSeconds": 0.000001854, - "downloadSeconds": 0.062721436 + "connectionEstablishedSeconds": 0.063506594, + "uploadSeconds": 0.000001843, + "downloadSeconds": 0.061753042 }, { - "connectionEstablishedSeconds": 0.063076884, - "uploadSeconds": 0.000002037, - "downloadSeconds": 0.061361962 + "connectionEstablishedSeconds": 0.066419848, + "uploadSeconds": 0.000001996, + "downloadSeconds": 0.064808717 }, { - "connectionEstablishedSeconds": 0.063058517, - "uploadSeconds": 0.000001907, - "downloadSeconds": 0.061255644 + "connectionEstablishedSeconds": 0.062470426, + "uploadSeconds": 0.000001741, + "downloadSeconds": 0.06096953 }, { - "connectionEstablishedSeconds": 0.06353501, - "uploadSeconds": 0.000001928, - "downloadSeconds": 0.061832511 + "connectionEstablishedSeconds": 0.064943312, + "uploadSeconds": 0.000001849, + "downloadSeconds": 0.063242568 }, { - "connectionEstablishedSeconds": 0.062446208, - "uploadSeconds": 0.000001795, - "downloadSeconds": 0.060607468 + "connectionEstablishedSeconds": 0.064688986, + "uploadSeconds": 0.000001694, + "downloadSeconds": 0.06291107 }, { - "connectionEstablishedSeconds": 0.063028233, - "uploadSeconds": 0.000001805, - "downloadSeconds": 0.061393389 + "connectionEstablishedSeconds": 0.064706476, + "uploadSeconds": 0.00000183, + "downloadSeconds": 0.06321239 }, { - "connectionEstablishedSeconds": 0.065519134, - "uploadSeconds": 0.000001893, - "downloadSeconds": 0.063771924 + "connectionEstablishedSeconds": 0.060864393, + "uploadSeconds": 7.13e-7, + "downloadSeconds": 0.059260479 }, { - "connectionEstablishedSeconds": 0.065050952, - "uploadSeconds": 0.000001859, - "downloadSeconds": 0.063266079 + "connectionEstablishedSeconds": 0.064634663, + "uploadSeconds": 0.00000181, + "downloadSeconds": 0.062899306 }, { - "connectionEstablishedSeconds": 0.063151649, - "uploadSeconds": 9.45e-7, - "downloadSeconds": 0.061509409 + "connectionEstablishedSeconds": 0.062740938, + "uploadSeconds": 0.000001724, + "downloadSeconds": 0.061089935 }, { - "connectionEstablishedSeconds": 0.066890052, - "uploadSeconds": 8.07e-7, - "downloadSeconds": 0.064313572 + "connectionEstablishedSeconds": 0.06110142, + "uploadSeconds": 0.000001824, + "downloadSeconds": 0.059406993 }, { - "connectionEstablishedSeconds": 0.062557685, - "uploadSeconds": 7.68e-7, - "downloadSeconds": 0.06071643 + "connectionEstablishedSeconds": 0.065856369, + "uploadSeconds": 0.000001818, + "downloadSeconds": 0.064210017 }, { - "connectionEstablishedSeconds": 0.062681991, - "uploadSeconds": 7.47e-7, - "downloadSeconds": 0.060954772 + "connectionEstablishedSeconds": 0.063945114, + "uploadSeconds": 7.78e-7, + "downloadSeconds": 0.06232278 }, { - "connectionEstablishedSeconds": 0.065464435, - "uploadSeconds": 0.000002008, - "downloadSeconds": 0.063787028 + "connectionEstablishedSeconds": 0.06562598, + "uploadSeconds": 0.000001739, + "downloadSeconds": 0.063622294 }, { - "connectionEstablishedSeconds": 0.0650721, - "uploadSeconds": 8.46e-7, - "downloadSeconds": 0.063374466 + "connectionEstablishedSeconds": 0.066873176, + "uploadSeconds": 0.000001773, + "downloadSeconds": 0.065124502 }, { - "connectionEstablishedSeconds": 0.06236308, - "uploadSeconds": 7.63e-7, - "downloadSeconds": 0.060511654 + "connectionEstablishedSeconds": 0.063249351, + "uploadSeconds": 0.000002101, + "downloadSeconds": 0.061409982 }, { - "connectionEstablishedSeconds": 0.064055201, - "uploadSeconds": 0.000001856, - "downloadSeconds": 0.062257626 + "connectionEstablishedSeconds": 0.063833002, + "uploadSeconds": 7.34e-7, + "downloadSeconds": 0.062095569 }, { - "connectionEstablishedSeconds": 0.065790258, - "uploadSeconds": 7.58e-7, - "downloadSeconds": 0.063898247 + "connectionEstablishedSeconds": 0.064269477, + "uploadSeconds": 7.34e-7, + "downloadSeconds": 0.062764291 }, { - "connectionEstablishedSeconds": 0.065136061, - "uploadSeconds": 7.02e-7, - "downloadSeconds": 0.063434263 + "connectionEstablishedSeconds": 0.063465935, + "uploadSeconds": 7.32e-7, + "downloadSeconds": 0.061807299 }, { - "connectionEstablishedSeconds": 0.065803846, - "uploadSeconds": 7.47e-7, - "downloadSeconds": 0.064150481 + "connectionEstablishedSeconds": 0.0637097, + "uploadSeconds": 0.00000172, + "downloadSeconds": 0.062126378 }, { - "connectionEstablishedSeconds": 0.062675967, - "uploadSeconds": 0.000001845, - "downloadSeconds": 0.060784967 + "connectionEstablishedSeconds": 0.065199418, + "uploadSeconds": 0.000001855, + "downloadSeconds": 0.063405634 }, { - "connectionEstablishedSeconds": 0.064472683, - "uploadSeconds": 0.000001787, - "downloadSeconds": 0.062740857 + "connectionEstablishedSeconds": 0.063962776, + "uploadSeconds": 0.000001932, + "downloadSeconds": 0.062353148 }, { - "connectionEstablishedSeconds": 0.063671819, - "uploadSeconds": 7.71e-7, - "downloadSeconds": 0.062013449 + "connectionEstablishedSeconds": 0.065688074, + "uploadSeconds": 7.1e-7, + "downloadSeconds": 0.064095358 }, { - "connectionEstablishedSeconds": 0.061282091, - "uploadSeconds": 0.000001734, - "downloadSeconds": 0.059847642 + "connectionEstablishedSeconds": 0.065177434, + "uploadSeconds": 0.000001761, + "downloadSeconds": 0.06355402 }, { - "connectionEstablishedSeconds": 0.064330656, - "uploadSeconds": 0.000001733, - "downloadSeconds": 0.062694559 + "connectionEstablishedSeconds": 0.065289624, + "uploadSeconds": 0.000001871, + "downloadSeconds": 0.063665141 }, { - "connectionEstablishedSeconds": 0.063130422, - "uploadSeconds": 7.14e-7, - "downloadSeconds": 0.061544387 + "connectionEstablishedSeconds": 0.06637104, + "uploadSeconds": 0.000001787, + "downloadSeconds": 0.064671943 }, { - "connectionEstablishedSeconds": 0.064130587, - "uploadSeconds": 0.000001914, - "downloadSeconds": 0.06243757 + "connectionEstablishedSeconds": 0.062665683, + "uploadSeconds": 0.000001973, + "downloadSeconds": 0.06036064 }, { - "connectionEstablishedSeconds": 0.065096218, - "uploadSeconds": 0.000001875, - "downloadSeconds": 0.063410501 + "connectionEstablishedSeconds": 0.065424972, + "uploadSeconds": 0.000001703, + "downloadSeconds": 0.063783958 }, { - "connectionEstablishedSeconds": 0.065573584, - "uploadSeconds": 0.000001824, - "downloadSeconds": 0.063904533 + "connectionEstablishedSeconds": 0.064705635, + "uploadSeconds": 7.31e-7, + "downloadSeconds": 0.063094454 } ], "implementation": "quic-go", @@ -982,504 +982,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.125877279, - "uploadSeconds": 0.000002929, - "downloadSeconds": 0.06297867 + "connectionEstablishedSeconds": 0.126942223, + "uploadSeconds": 0.000002365, + "downloadSeconds": 0.063743985 }, { - "connectionEstablishedSeconds": 0.123321532, - "uploadSeconds": 0.000001979, - "downloadSeconds": 0.061585527 + "connectionEstablishedSeconds": 0.129295372, + "uploadSeconds": 0.00000192, + "downloadSeconds": 0.064682509 }, { - "connectionEstablishedSeconds": 0.127756342, - "uploadSeconds": 0.000002075, - "downloadSeconds": 0.063745801 + "connectionEstablishedSeconds": 0.129768923, + "uploadSeconds": 0.000001704, + "downloadSeconds": 0.065037798 }, { - "connectionEstablishedSeconds": 0.124496431, - "uploadSeconds": 0.000001844, - "downloadSeconds": 0.062165728 + "connectionEstablishedSeconds": 0.123600152, + "uploadSeconds": 0.000001813, + "downloadSeconds": 0.061774496 }, { - "connectionEstablishedSeconds": 0.125871154, - "uploadSeconds": 0.000001836, - "downloadSeconds": 0.062815767 + "connectionEstablishedSeconds": 0.128035321, + "uploadSeconds": 0.000001702, + "downloadSeconds": 0.064082694 }, { - "connectionEstablishedSeconds": 0.124661338, - "uploadSeconds": 0.000001963, - "downloadSeconds": 0.062177125 + "connectionEstablishedSeconds": 0.121026518, + "uploadSeconds": 0.000001726, + "downloadSeconds": 0.060509221 }, { - "connectionEstablishedSeconds": 0.127367264, - "uploadSeconds": 0.00000224, - "downloadSeconds": 0.063558113 + "connectionEstablishedSeconds": 0.126800344, + "uploadSeconds": 0.000002242, + "downloadSeconds": 0.063314286 }, { - "connectionEstablishedSeconds": 0.127989448, - "uploadSeconds": 0.000001884, - "downloadSeconds": 0.06383298 + "connectionEstablishedSeconds": 0.129647161, + "uploadSeconds": 0.000002486, + "downloadSeconds": 0.064824471 }, { - "connectionEstablishedSeconds": 0.129170232, - "uploadSeconds": 0.000001974, - "downloadSeconds": 0.064357442 + "connectionEstablishedSeconds": 0.123199402, + "uploadSeconds": 0.000001661, + "downloadSeconds": 0.061598863 }, { - "connectionEstablishedSeconds": 0.122479616, - "uploadSeconds": 0.000001955, - "downloadSeconds": 0.061105045 + "connectionEstablishedSeconds": 0.127989193, + "uploadSeconds": 0.000001733, + "downloadSeconds": 0.063972541 }, { - "connectionEstablishedSeconds": 0.126765475, - "uploadSeconds": 0.000002041, - "downloadSeconds": 0.063167918 + "connectionEstablishedSeconds": 0.126010653, + "uploadSeconds": 0.000001798, + "downloadSeconds": 0.062962346 }, { - "connectionEstablishedSeconds": 0.123803367, - "uploadSeconds": 0.000001752, - "downloadSeconds": 0.061801678 + "connectionEstablishedSeconds": 0.129831981, + "uploadSeconds": 0.000001649, + "downloadSeconds": 0.064948712 }, { - "connectionEstablishedSeconds": 0.123552454, - "uploadSeconds": 0.00000165, - "downloadSeconds": 0.061673279 + "connectionEstablishedSeconds": 0.125489475, + "uploadSeconds": 0.000001669, + "downloadSeconds": 0.062847671 }, { - "connectionEstablishedSeconds": 0.120917013, - "uploadSeconds": 0.000001843, - "downloadSeconds": 0.060503667 + "connectionEstablishedSeconds": 0.126238218, + "uploadSeconds": 0.000001634, + "downloadSeconds": 0.063051357 }, { - "connectionEstablishedSeconds": 0.127367328, - "uploadSeconds": 0.00000168, - "downloadSeconds": 0.063582061 + "connectionEstablishedSeconds": 0.129056283, + "uploadSeconds": 0.000001871, + "downloadSeconds": 0.064548455 }, { - "connectionEstablishedSeconds": 0.127843871, - "uploadSeconds": 0.00000184, - "downloadSeconds": 0.06376099 + "connectionEstablishedSeconds": 0.122463576, + "uploadSeconds": 0.000001873, + "downloadSeconds": 0.061220602 }, { - "connectionEstablishedSeconds": 0.126403859, - "uploadSeconds": 0.000001954, - "downloadSeconds": 0.063040867 + "connectionEstablishedSeconds": 0.129516166, + "uploadSeconds": 0.000002036, + "downloadSeconds": 0.064762367 }, { - "connectionEstablishedSeconds": 0.123660718, - "uploadSeconds": 0.000002042, - "downloadSeconds": 0.06170693 + "connectionEstablishedSeconds": 0.116596929, + "uploadSeconds": 0.000001673, + "downloadSeconds": 0.058290019 }, { - "connectionEstablishedSeconds": 0.126043984, - "uploadSeconds": 0.000002, - "downloadSeconds": 0.06283842 + "connectionEstablishedSeconds": 0.141630184, + "uploadSeconds": 0.000001947, + "downloadSeconds": 0.063497261 }, { - "connectionEstablishedSeconds": 0.121012885, - "uploadSeconds": 0.00000178, - "downloadSeconds": 0.060430934 + "connectionEstablishedSeconds": 0.12986187, + "uploadSeconds": 0.000001712, + "downloadSeconds": 0.06490279 }, { - "connectionEstablishedSeconds": 0.120402559, - "uploadSeconds": 0.000002079, - "downloadSeconds": 0.060088674 + "connectionEstablishedSeconds": 0.128644074, + "uploadSeconds": 0.000001685, + "downloadSeconds": 0.064237667 }, { - "connectionEstablishedSeconds": 0.125819714, - "uploadSeconds": 0.000002017, - "downloadSeconds": 0.062758625 + "connectionEstablishedSeconds": 0.122887001, + "uploadSeconds": 0.000001889, + "downloadSeconds": 0.061421422 }, { - "connectionEstablishedSeconds": 0.121830498, - "uploadSeconds": 0.000001973, - "downloadSeconds": 0.060716951 + "connectionEstablishedSeconds": 0.127039579, + "uploadSeconds": 0.000001885, + "downloadSeconds": 0.063494302 }, { - "connectionEstablishedSeconds": 0.125600081, - "uploadSeconds": 0.00000208, - "downloadSeconds": 0.062676203 + "connectionEstablishedSeconds": 0.128683913, + "uploadSeconds": 0.000002124, + "downloadSeconds": 0.064358518 }, { - "connectionEstablishedSeconds": 0.123366678, - "uploadSeconds": 0.000001864, - "downloadSeconds": 0.061586898 + "connectionEstablishedSeconds": 0.128384975, + "uploadSeconds": 0.000001659, + "downloadSeconds": 0.064129054 }, { - "connectionEstablishedSeconds": 0.118127185, - "uploadSeconds": 0.000002, - "downloadSeconds": 0.05898421 + "connectionEstablishedSeconds": 0.128997139, + "uploadSeconds": 0.000001702, + "downloadSeconds": 0.06447986 }, { - "connectionEstablishedSeconds": 0.120584284, - "uploadSeconds": 0.000002113, - "downloadSeconds": 0.060024327 + "connectionEstablishedSeconds": 0.12793287, + "uploadSeconds": 0.000001869, + "downloadSeconds": 0.06396775 }, { - "connectionEstablishedSeconds": 0.122644564, - "uploadSeconds": 0.000001774, - "downloadSeconds": 0.061300817 + "connectionEstablishedSeconds": 0.124082763, + "uploadSeconds": 0.000001698, + "downloadSeconds": 0.062029126 }, { - "connectionEstablishedSeconds": 0.125063431, - "uploadSeconds": 0.000001783, - "downloadSeconds": 0.062469481 + "connectionEstablishedSeconds": 0.126708355, + "uploadSeconds": 0.000001748, + "downloadSeconds": 0.063323382 }, { - "connectionEstablishedSeconds": 0.120490954, - "uploadSeconds": 0.000001961, - "downloadSeconds": 0.060145176 + "connectionEstablishedSeconds": 0.128975799, + "uploadSeconds": 0.000001654, + "downloadSeconds": 0.064501399 }, { - "connectionEstablishedSeconds": 0.125387112, - "uploadSeconds": 0.00000187, - "downloadSeconds": 0.062572652 + "connectionEstablishedSeconds": 0.1292131, + "uploadSeconds": 0.000001705, + "downloadSeconds": 0.064638372 }, { - "connectionEstablishedSeconds": 0.125841897, - "uploadSeconds": 0.00000196, - "downloadSeconds": 0.062712834 + "connectionEstablishedSeconds": 0.125226977, + "uploadSeconds": 0.000001689, + "downloadSeconds": 0.062704776 }, { - "connectionEstablishedSeconds": 0.125229269, - "uploadSeconds": 0.000002044, - "downloadSeconds": 0.06242992 + "connectionEstablishedSeconds": 0.130452951, + "uploadSeconds": 0.000001922, + "downloadSeconds": 0.065206671 }, { - "connectionEstablishedSeconds": 0.124481006, - "uploadSeconds": 0.000001927, - "downloadSeconds": 0.06204001 + "connectionEstablishedSeconds": 0.126270836, + "uploadSeconds": 0.000001778, + "downloadSeconds": 0.063104478 }, { - "connectionEstablishedSeconds": 0.123964164, - "uploadSeconds": 0.0000019, - "downloadSeconds": 0.061908244 + "connectionEstablishedSeconds": 0.126167525, + "uploadSeconds": 0.000001616, + "downloadSeconds": 0.063098974 }, { - "connectionEstablishedSeconds": 0.124079589, - "uploadSeconds": 0.000002121, - "downloadSeconds": 0.061963061 + "connectionEstablishedSeconds": 0.127841453, + "uploadSeconds": 0.000001811, + "downloadSeconds": 0.063930787 }, { - "connectionEstablishedSeconds": 0.125630943, - "uploadSeconds": 0.000001899, - "downloadSeconds": 0.062740017 + "connectionEstablishedSeconds": 0.128939264, + "uploadSeconds": 0.000002076, + "downloadSeconds": 0.064470581 }, { - "connectionEstablishedSeconds": 0.120700277, - "uploadSeconds": 0.000002214, - "downloadSeconds": 0.060194727 + "connectionEstablishedSeconds": 0.124303772, + "uploadSeconds": 0.000001842, + "downloadSeconds": 0.062183724 }, { - "connectionEstablishedSeconds": 0.12406812, - "uploadSeconds": 0.000002027, - "downloadSeconds": 0.06188395 + "connectionEstablishedSeconds": 0.126348586, + "uploadSeconds": 0.000001791, + "downloadSeconds": 0.063154844 }, { - "connectionEstablishedSeconds": 0.130521979, - "uploadSeconds": 0.000001801, - "downloadSeconds": 0.065201309 + "connectionEstablishedSeconds": 0.127755758, + "uploadSeconds": 0.000001785, + "downloadSeconds": 0.063894459 }, { - "connectionEstablishedSeconds": 0.1280132, - "uploadSeconds": 0.00000204, - "downloadSeconds": 0.063880448 + "connectionEstablishedSeconds": 0.129457672, + "uploadSeconds": 0.000002391, + "downloadSeconds": 0.064700609 }, { - "connectionEstablishedSeconds": 0.126892964, - "uploadSeconds": 0.000002045, - "downloadSeconds": 0.063337609 + "connectionEstablishedSeconds": 0.122909898, + "uploadSeconds": 0.000001746, + "downloadSeconds": 0.061491456 }, { - "connectionEstablishedSeconds": 0.121141013, - "uploadSeconds": 0.000001881, - "downloadSeconds": 0.060402652 + "connectionEstablishedSeconds": 0.123784186, + "uploadSeconds": 0.000001784, + "downloadSeconds": 0.061999664 }, { - "connectionEstablishedSeconds": 0.125250104, - "uploadSeconds": 0.000002132, - "downloadSeconds": 0.062431249 + "connectionEstablishedSeconds": 0.127851629, + "uploadSeconds": 0.000001679, + "downloadSeconds": 0.063985385 }, { - "connectionEstablishedSeconds": 0.121159017, - "uploadSeconds": 0.000002044, - "downloadSeconds": 0.060452408 + "connectionEstablishedSeconds": 0.12932324, + "uploadSeconds": 0.000001827, + "downloadSeconds": 0.064679131 }, { - "connectionEstablishedSeconds": 0.126694711, - "uploadSeconds": 0.000002031, - "downloadSeconds": 0.063237758 + "connectionEstablishedSeconds": 0.12660816, + "uploadSeconds": 0.000001793, + "downloadSeconds": 0.06332388 }, { - "connectionEstablishedSeconds": 0.123084698, - "uploadSeconds": 0.000001837, - "downloadSeconds": 0.061382054 + "connectionEstablishedSeconds": 0.120871705, + "uploadSeconds": 0.00000179, + "downloadSeconds": 0.060446085 }, { - "connectionEstablishedSeconds": 0.127244033, - "uploadSeconds": 0.000002114, - "downloadSeconds": 0.063492354 + "connectionEstablishedSeconds": 0.118100529, + "uploadSeconds": 0.00000173, + "downloadSeconds": 0.059087264 }, { - "connectionEstablishedSeconds": 0.125894284, - "uploadSeconds": 0.000002149, - "downloadSeconds": 0.062775668 + "connectionEstablishedSeconds": 0.126572056, + "uploadSeconds": 0.000001956, + "downloadSeconds": 0.063274223 }, { - "connectionEstablishedSeconds": 0.127178195, - "uploadSeconds": 0.000001918, - "downloadSeconds": 0.063437603 + "connectionEstablishedSeconds": 0.123841295, + "uploadSeconds": 0.000001938, + "downloadSeconds": 0.061978309 }, { - "connectionEstablishedSeconds": 0.128176387, - "uploadSeconds": 0.000001704, - "downloadSeconds": 0.063964426 + "connectionEstablishedSeconds": 0.127973095, + "uploadSeconds": 0.000001851, + "downloadSeconds": 0.064008529 }, { - "connectionEstablishedSeconds": 0.128963986, - "uploadSeconds": 0.000002146, - "downloadSeconds": 0.064336002 + "connectionEstablishedSeconds": 0.130283019, + "uploadSeconds": 0.000001647, + "downloadSeconds": 0.065152012 }, { - "connectionEstablishedSeconds": 0.126871082, - "uploadSeconds": 0.000001989, - "downloadSeconds": 0.063348218 + "connectionEstablishedSeconds": 0.128841959, + "uploadSeconds": 0.000001844, + "downloadSeconds": 0.064416521 }, { - "connectionEstablishedSeconds": 0.126857157, - "uploadSeconds": 0.000002087, - "downloadSeconds": 0.063245194 + "connectionEstablishedSeconds": 0.128233111, + "uploadSeconds": 0.000001944, + "downloadSeconds": 0.064136145 }, { - "connectionEstablishedSeconds": 0.128080959, - "uploadSeconds": 0.00000182, - "downloadSeconds": 0.063950897 + "connectionEstablishedSeconds": 0.12914781, + "uploadSeconds": 0.000001634, + "downloadSeconds": 0.064601974 }, { - "connectionEstablishedSeconds": 0.120202774, - "uploadSeconds": 0.000002155, - "downloadSeconds": 0.059949375 + "connectionEstablishedSeconds": 0.126026333, + "uploadSeconds": 0.000001726, + "downloadSeconds": 0.063072496 }, { - "connectionEstablishedSeconds": 0.123289177, - "uploadSeconds": 0.000001739, - "downloadSeconds": 0.061597593 + "connectionEstablishedSeconds": 0.125242444, + "uploadSeconds": 0.000001771, + "downloadSeconds": 0.06265885 }, { - "connectionEstablishedSeconds": 0.121420988, - "uploadSeconds": 0.00000162, - "downloadSeconds": 0.060609643 + "connectionEstablishedSeconds": 0.119356822, + "uploadSeconds": 0.00000268, + "downloadSeconds": 0.059637042 }, { - "connectionEstablishedSeconds": 0.121140081, - "uploadSeconds": 0.000001649, - "downloadSeconds": 0.060475418 + "connectionEstablishedSeconds": 0.121396427, + "uploadSeconds": 0.000002106, + "downloadSeconds": 0.060649707 }, { - "connectionEstablishedSeconds": 0.125000042, - "uploadSeconds": 0.000001666, - "downloadSeconds": 0.062430941 + "connectionEstablishedSeconds": 0.122918326, + "uploadSeconds": 0.000001778, + "downloadSeconds": 0.061468633 }, { - "connectionEstablishedSeconds": 0.128665627, - "uploadSeconds": 0.000001714, - "downloadSeconds": 0.064227713 + "connectionEstablishedSeconds": 0.130501829, + "uploadSeconds": 0.000001736, + "downloadSeconds": 0.064908113 }, { - "connectionEstablishedSeconds": 0.120995827, - "uploadSeconds": 0.000001868, - "downloadSeconds": 0.060445289 + "connectionEstablishedSeconds": 0.125249582, + "uploadSeconds": 0.000001861, + "downloadSeconds": 0.062594996 }, { - "connectionEstablishedSeconds": 0.128091503, - "uploadSeconds": 0.000001563, - "downloadSeconds": 0.064019287 + "connectionEstablishedSeconds": 0.123120777, + "uploadSeconds": 0.000002164, + "downloadSeconds": 0.061578881 }, { - "connectionEstablishedSeconds": 0.12399953, - "uploadSeconds": 0.000001642, - "downloadSeconds": 0.061783456 + "connectionEstablishedSeconds": 0.124396915, + "uploadSeconds": 0.000001703, + "downloadSeconds": 0.062208624 }, { - "connectionEstablishedSeconds": 0.126914857, - "uploadSeconds": 0.000001781, - "downloadSeconds": 0.063383754 + "connectionEstablishedSeconds": 0.126273983, + "uploadSeconds": 0.000001813, + "downloadSeconds": 0.063130063 }, { - "connectionEstablishedSeconds": 0.122261894, - "uploadSeconds": 0.000001747, - "downloadSeconds": 0.061220394 + "connectionEstablishedSeconds": 0.124430086, + "uploadSeconds": 0.000001687, + "downloadSeconds": 0.062228188 }, { - "connectionEstablishedSeconds": 0.126204658, - "uploadSeconds": 0.000001679, - "downloadSeconds": 0.06306565 + "connectionEstablishedSeconds": 0.132043221, + "uploadSeconds": 0.000001811, + "downloadSeconds": 0.065423374 }, { - "connectionEstablishedSeconds": 0.127764665, - "uploadSeconds": 0.000001659, - "downloadSeconds": 0.063836994 + "connectionEstablishedSeconds": 0.12127598, + "uploadSeconds": 0.000001624, + "downloadSeconds": 0.060656771 }, { - "connectionEstablishedSeconds": 0.123105508, - "uploadSeconds": 0.000001715, - "downloadSeconds": 0.061462164 + "connectionEstablishedSeconds": 0.127779055, + "uploadSeconds": 0.000001697, + "downloadSeconds": 0.063860988 }, { - "connectionEstablishedSeconds": 0.129600918, - "uploadSeconds": 0.000001709, - "downloadSeconds": 0.064838782 + "connectionEstablishedSeconds": 0.122487726, + "uploadSeconds": 0.000001862, + "downloadSeconds": 0.06127068 }, { - "connectionEstablishedSeconds": 0.128904266, - "uploadSeconds": 0.000001822, - "downloadSeconds": 0.064360487 + "connectionEstablishedSeconds": 0.126731134, + "uploadSeconds": 0.000001728, + "downloadSeconds": 0.063326428 }, { - "connectionEstablishedSeconds": 0.126457766, - "uploadSeconds": 0.000001787, - "downloadSeconds": 0.063273887 + "connectionEstablishedSeconds": 0.126230747, + "uploadSeconds": 0.00000168, + "downloadSeconds": 0.063123085 }, { - "connectionEstablishedSeconds": 0.121326161, - "uploadSeconds": 0.000001728, - "downloadSeconds": 0.060589902 + "connectionEstablishedSeconds": 0.128350478, + "uploadSeconds": 0.000001922, + "downloadSeconds": 0.064083463 }, { - "connectionEstablishedSeconds": 0.121900959, - "uploadSeconds": 0.00000164, - "downloadSeconds": 0.060873223 + "connectionEstablishedSeconds": 0.129744746, + "uploadSeconds": 0.000001907, + "downloadSeconds": 0.064915135 }, { - "connectionEstablishedSeconds": 0.124135491, - "uploadSeconds": 0.000001691, - "downloadSeconds": 0.062049444 + "connectionEstablishedSeconds": 0.126254335, + "uploadSeconds": 0.000001588, + "downloadSeconds": 0.063117523 }, { - "connectionEstablishedSeconds": 0.125248622, - "uploadSeconds": 0.000001633, - "downloadSeconds": 0.062534825 + "connectionEstablishedSeconds": 0.127972742, + "uploadSeconds": 0.000001828, + "downloadSeconds": 0.063975961 }, { - "connectionEstablishedSeconds": 0.127479585, - "uploadSeconds": 0.000001606, - "downloadSeconds": 0.063652465 + "connectionEstablishedSeconds": 0.121895822, + "uploadSeconds": 0.000001712, + "downloadSeconds": 0.060978954 }, { - "connectionEstablishedSeconds": 0.120972738, - "uploadSeconds": 0.000001586, - "downloadSeconds": 0.060487395 + "connectionEstablishedSeconds": 0.123748227, + "uploadSeconds": 0.000001643, + "downloadSeconds": 0.061931251 }, { - "connectionEstablishedSeconds": 0.129764869, - "uploadSeconds": 0.00000159, - "downloadSeconds": 0.06481786 + "connectionEstablishedSeconds": 0.127796747, + "uploadSeconds": 0.000001828, + "downloadSeconds": 0.063901984 }, { - "connectionEstablishedSeconds": 0.121692305, - "uploadSeconds": 0.000001717, - "downloadSeconds": 0.060804818 + "connectionEstablishedSeconds": 0.124894315, + "uploadSeconds": 0.000001677, + "downloadSeconds": 0.062428592 }, { - "connectionEstablishedSeconds": 0.126831081, - "uploadSeconds": 0.000001729, - "downloadSeconds": 0.063355652 + "connectionEstablishedSeconds": 0.12745025, + "uploadSeconds": 0.000002009, + "downloadSeconds": 0.06369987 }, { - "connectionEstablishedSeconds": 0.127416961, - "uploadSeconds": 0.000001597, - "downloadSeconds": 0.063671584 + "connectionEstablishedSeconds": 0.124998457, + "uploadSeconds": 0.000001752, + "downloadSeconds": 0.062803771 }, { - "connectionEstablishedSeconds": 0.12808303, - "uploadSeconds": 0.000001724, - "downloadSeconds": 0.064026252 + "connectionEstablishedSeconds": 0.129756553, + "uploadSeconds": 0.000001712, + "downloadSeconds": 0.064856409 }, { - "connectionEstablishedSeconds": 0.123178631, - "uploadSeconds": 0.000001912, - "downloadSeconds": 0.061405582 + "connectionEstablishedSeconds": 0.125216956, + "uploadSeconds": 0.000002201, + "downloadSeconds": 0.062558495 }, { - "connectionEstablishedSeconds": 0.124060605, - "uploadSeconds": 0.00000233, - "downloadSeconds": 0.06191592 + "connectionEstablishedSeconds": 0.122515436, + "uploadSeconds": 0.000002016, + "downloadSeconds": 0.061251861 }, { - "connectionEstablishedSeconds": 0.121853909, - "uploadSeconds": 0.000001827, - "downloadSeconds": 0.060771816 + "connectionEstablishedSeconds": 0.127974467, + "uploadSeconds": 0.000001656, + "downloadSeconds": 0.063976319 }, { - "connectionEstablishedSeconds": 0.12484952, - "uploadSeconds": 0.000001897, - "downloadSeconds": 0.062289093 + "connectionEstablishedSeconds": 0.127917455, + "uploadSeconds": 0.000001672, + "downloadSeconds": 0.063897681 }, { - "connectionEstablishedSeconds": 0.127326742, - "uploadSeconds": 0.000001945, - "downloadSeconds": 0.063561913 + "connectionEstablishedSeconds": 0.128319597, + "uploadSeconds": 0.000001954, + "downloadSeconds": 0.064106765 }, { - "connectionEstablishedSeconds": 0.120865873, - "uploadSeconds": 0.000001997, - "downloadSeconds": 0.060261041 + "connectionEstablishedSeconds": 0.128624204, + "uploadSeconds": 0.000001899, + "downloadSeconds": 0.064251524 }, { - "connectionEstablishedSeconds": 0.122282942, - "uploadSeconds": 0.00000248, - "downloadSeconds": 0.061036943 + "connectionEstablishedSeconds": 0.126486446, + "uploadSeconds": 0.000001841, + "downloadSeconds": 0.063203465 }, { - "connectionEstablishedSeconds": 0.120202428, - "uploadSeconds": 0.000002037, - "downloadSeconds": 0.059941472 + "connectionEstablishedSeconds": 0.129833791, + "uploadSeconds": 0.000001733, + "downloadSeconds": 0.064937319 }, { - "connectionEstablishedSeconds": 0.12213982, - "uploadSeconds": 0.000001951, - "downloadSeconds": 0.060941954 + "connectionEstablishedSeconds": 0.124898357, + "uploadSeconds": 0.000001724, + "downloadSeconds": 0.062520609 }, { - "connectionEstablishedSeconds": 0.121626216, - "uploadSeconds": 0.000001936, - "downloadSeconds": 0.060661243 + "connectionEstablishedSeconds": 0.12929984, + "uploadSeconds": 0.000001888, + "downloadSeconds": 0.064618047 }, { - "connectionEstablishedSeconds": 0.127699298, - "uploadSeconds": 0.000001743, - "downloadSeconds": 0.063679197 + "connectionEstablishedSeconds": 0.127874998, + "uploadSeconds": 0.000002, + "downloadSeconds": 0.063890819 }, { - "connectionEstablishedSeconds": 0.123009071, - "uploadSeconds": 0.000001915, - "downloadSeconds": 0.061372332 + "connectionEstablishedSeconds": 0.128142932, + "uploadSeconds": 0.000001718, + "downloadSeconds": 0.06405662 }, { - "connectionEstablishedSeconds": 0.122107169, - "uploadSeconds": 0.000001999, - "downloadSeconds": 0.060918777 + "connectionEstablishedSeconds": 0.124047196, + "uploadSeconds": 0.000001717, + "downloadSeconds": 0.062216621 }, { - "connectionEstablishedSeconds": 0.129022815, - "uploadSeconds": 0.000002242, - "downloadSeconds": 0.064376219 + "connectionEstablishedSeconds": 0.1249445, + "uploadSeconds": 0.000001788, + "downloadSeconds": 0.062462759 }, { - "connectionEstablishedSeconds": 0.128917551, - "uploadSeconds": 0.000001854, - "downloadSeconds": 0.064375063 + "connectionEstablishedSeconds": 0.126187799, + "uploadSeconds": 0.000001825, + "downloadSeconds": 0.063085401 }, { - "connectionEstablishedSeconds": 0.125109078, - "uploadSeconds": 0.000001944, - "downloadSeconds": 0.062407769 + "connectionEstablishedSeconds": 0.125372997, + "uploadSeconds": 0.000001757, + "downloadSeconds": 0.062630744 }, { - "connectionEstablishedSeconds": 0.125290466, - "uploadSeconds": 0.000002176, - "downloadSeconds": 0.062541654 + "connectionEstablishedSeconds": 0.124622638, + "uploadSeconds": 0.000001808, + "downloadSeconds": 0.061894104 } ], "implementation": "rust-libp2p", @@ -1489,504 +1489,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.062865436, - "uploadSeconds": 0.061487851, - "downloadSeconds": 0.000077862 + "connectionEstablishedSeconds": 0.062492165, + "uploadSeconds": 0.061112326, + "downloadSeconds": 0.000116715 }, { - "connectionEstablishedSeconds": 0.064871544, - "uploadSeconds": 0.063420631, - "downloadSeconds": 0.000084243 + "connectionEstablishedSeconds": 0.062649228, + "uploadSeconds": 0.061280622, + "downloadSeconds": 0.000080394 }, { - "connectionEstablishedSeconds": 0.064947981, - "uploadSeconds": 0.063496596, - "downloadSeconds": 0.000079279 + "connectionEstablishedSeconds": 0.064760828, + "uploadSeconds": 0.063351283, + "downloadSeconds": 0.000075496 }, { - "connectionEstablishedSeconds": 0.064753685, - "uploadSeconds": 0.063147444, - "downloadSeconds": 0.000075299 + "connectionEstablishedSeconds": 0.066180837, + "uploadSeconds": 0.064932222, + "downloadSeconds": 0.00008116 }, { - "connectionEstablishedSeconds": 0.063949209, - "uploadSeconds": 0.062408882, - "downloadSeconds": 0.000081667 + "connectionEstablishedSeconds": 0.065053382, + "uploadSeconds": 0.063823422, + "downloadSeconds": 0.000091261 }, { - "connectionEstablishedSeconds": 0.063854523, - "uploadSeconds": 0.062367597, - "downloadSeconds": 0.000091979 + "connectionEstablishedSeconds": 0.065101606, + "uploadSeconds": 0.063815129, + "downloadSeconds": 0.000092607 }, { - "connectionEstablishedSeconds": 0.066615921, - "uploadSeconds": 0.065045476, - "downloadSeconds": 0.000042544 + "connectionEstablishedSeconds": 0.062689717, + "uploadSeconds": 0.061288942, + "downloadSeconds": 0.000093534 }, { - "connectionEstablishedSeconds": 0.059508581, - "uploadSeconds": 0.058020007, - "downloadSeconds": 0.00009674 + "connectionEstablishedSeconds": 0.065046629, + "uploadSeconds": 0.063763816, + "downloadSeconds": 0.000081756 }, { - "connectionEstablishedSeconds": 0.061656679, - "uploadSeconds": 0.060028485, - "downloadSeconds": 0.00007702 + "connectionEstablishedSeconds": 0.062314766, + "uploadSeconds": 0.061037749, + "downloadSeconds": 0.000046607 }, { - "connectionEstablishedSeconds": 0.062431924, - "uploadSeconds": 0.060952973, - "downloadSeconds": 0.000079764 + "connectionEstablishedSeconds": 0.064858603, + "uploadSeconds": 0.063540237, + "downloadSeconds": 0.000079145 }, { - "connectionEstablishedSeconds": 0.065163809, - "uploadSeconds": 0.063583002, - "downloadSeconds": 0.000056389 + "connectionEstablishedSeconds": 0.064348321, + "uploadSeconds": 0.063027289, + "downloadSeconds": 0.000077306 }, { - "connectionEstablishedSeconds": 0.066080324, - "uploadSeconds": 0.064495727, - "downloadSeconds": 0.000084783 + "connectionEstablishedSeconds": 0.064959839, + "uploadSeconds": 0.063622551, + "downloadSeconds": 0.00004905 }, { - "connectionEstablishedSeconds": 0.065379927, - "uploadSeconds": 0.063796307, - "downloadSeconds": 0.000083215 + "connectionEstablishedSeconds": 0.063707615, + "uploadSeconds": 0.062420537, + "downloadSeconds": 0.000102342 }, { - "connectionEstablishedSeconds": 0.062499836, - "uploadSeconds": 0.060962733, - "downloadSeconds": 0.000080674 + "connectionEstablishedSeconds": 0.065048512, + "uploadSeconds": 0.063737865, + "downloadSeconds": 0.000118632 }, { - "connectionEstablishedSeconds": 0.065112372, - "uploadSeconds": 0.063614107, - "downloadSeconds": 0.000077436 + "connectionEstablishedSeconds": 0.064274475, + "uploadSeconds": 0.062903113, + "downloadSeconds": 0.000085883 }, { - "connectionEstablishedSeconds": 0.063911254, - "uploadSeconds": 0.062373491, - "downloadSeconds": 0.000090998 + "connectionEstablishedSeconds": 0.064577741, + "uploadSeconds": 0.063251792, + "downloadSeconds": 0.000076561 }, { - "connectionEstablishedSeconds": 0.066593574, - "uploadSeconds": 0.064997773, - "downloadSeconds": 0.00004441 + "connectionEstablishedSeconds": 0.065925377, + "uploadSeconds": 0.064583722, + "downloadSeconds": 0.000090743 }, { - "connectionEstablishedSeconds": 0.066388651, - "uploadSeconds": 0.064938244, - "downloadSeconds": 0.000086998 + "connectionEstablishedSeconds": 0.062300157, + "uploadSeconds": 0.06105258, + "downloadSeconds": 0.000135368 }, { - "connectionEstablishedSeconds": 0.06543506, - "uploadSeconds": 0.063801276, - "downloadSeconds": 0.000094974 + "connectionEstablishedSeconds": 0.064730107, + "uploadSeconds": 0.063349915, + "downloadSeconds": 0.000085658 }, { - "connectionEstablishedSeconds": 0.060545275, - "uploadSeconds": 0.059119123, - "downloadSeconds": 0.000152499 + "connectionEstablishedSeconds": 0.06515572, + "uploadSeconds": 0.063910665, + "downloadSeconds": 0.000090313 }, { - "connectionEstablishedSeconds": 0.064548419, - "uploadSeconds": 0.062972754, - "downloadSeconds": 0.00008001 + "connectionEstablishedSeconds": 0.065108686, + "uploadSeconds": 0.063750982, + "downloadSeconds": 0.000067266 }, { - "connectionEstablishedSeconds": 0.064446347, - "uploadSeconds": 0.062956684, - "downloadSeconds": 0.000089736 + "connectionEstablishedSeconds": 0.062007928, + "uploadSeconds": 0.060723595, + "downloadSeconds": 0.000072241 }, { - "connectionEstablishedSeconds": 0.065574345, - "uploadSeconds": 0.064160318, - "downloadSeconds": 0.0000807 + "connectionEstablishedSeconds": 0.065888524, + "uploadSeconds": 0.064580981, + "downloadSeconds": 0.000090292 }, { - "connectionEstablishedSeconds": 0.062409014, - "uploadSeconds": 0.060846554, - "downloadSeconds": 0.000088735 + "connectionEstablishedSeconds": 0.065236289, + "uploadSeconds": 0.063932549, + "downloadSeconds": 0.000089596 }, { - "connectionEstablishedSeconds": 0.062886788, - "uploadSeconds": 0.061462396, - "downloadSeconds": 0.000079566 + "connectionEstablishedSeconds": 0.065947026, + "uploadSeconds": 0.064630887, + "downloadSeconds": 0.000095345 }, { - "connectionEstablishedSeconds": 0.064775674, - "uploadSeconds": 0.063408894, - "downloadSeconds": 0.000077097 + "connectionEstablishedSeconds": 0.064336634, + "uploadSeconds": 0.062985158, + "downloadSeconds": 0.000074183 }, { - "connectionEstablishedSeconds": 0.062797464, - "uploadSeconds": 0.061316846, - "downloadSeconds": 0.000076055 + "connectionEstablishedSeconds": 0.062948996, + "uploadSeconds": 0.061767861, + "downloadSeconds": 0.000075181 }, { - "connectionEstablishedSeconds": 0.062601891, - "uploadSeconds": 0.061019989, - "downloadSeconds": 0.000089602 + "connectionEstablishedSeconds": 0.06109396, + "uploadSeconds": 0.059701938, + "downloadSeconds": 0.000071589 }, { - "connectionEstablishedSeconds": 0.063701816, - "uploadSeconds": 0.06223561, - "downloadSeconds": 0.000089269 + "connectionEstablishedSeconds": 0.064372236, + "uploadSeconds": 0.062974949, + "downloadSeconds": 0.000079756 }, { - "connectionEstablishedSeconds": 0.064377978, - "uploadSeconds": 0.062992878, - "downloadSeconds": 0.000104794 + "connectionEstablishedSeconds": 0.064453895, + "uploadSeconds": 0.063101378, + "downloadSeconds": 0.00009592 }, { - "connectionEstablishedSeconds": 0.062320894, - "uploadSeconds": 0.060919413, - "downloadSeconds": 0.000084472 + "connectionEstablishedSeconds": 0.06549708, + "uploadSeconds": 0.06415425, + "downloadSeconds": 0.000098662 }, { - "connectionEstablishedSeconds": 0.062763381, - "uploadSeconds": 0.061275513, - "downloadSeconds": 0.000099264 + "connectionEstablishedSeconds": 0.061722141, + "uploadSeconds": 0.060439927, + "downloadSeconds": 0.000067907 }, { - "connectionEstablishedSeconds": 0.065130202, - "uploadSeconds": 0.06371407, - "downloadSeconds": 0.000084153 + "connectionEstablishedSeconds": 0.062618168, + "uploadSeconds": 0.061334678, + "downloadSeconds": 0.000077256 }, { - "connectionEstablishedSeconds": 0.064644192, - "uploadSeconds": 0.063106814, - "downloadSeconds": 0.000095594 + "connectionEstablishedSeconds": 0.065047814, + "uploadSeconds": 0.06367261, + "downloadSeconds": 0.000091801 }, { - "connectionEstablishedSeconds": 0.063155975, - "uploadSeconds": 0.06161484, - "downloadSeconds": 0.000091456 + "connectionEstablishedSeconds": 0.063579779, + "uploadSeconds": 0.062226479, + "downloadSeconds": 0.000082145 }, { - "connectionEstablishedSeconds": 0.062708923, - "uploadSeconds": 0.061213453, - "downloadSeconds": 0.000069646 + "connectionEstablishedSeconds": 0.063011302, + "uploadSeconds": 0.061565533, + "downloadSeconds": 0.000086583 }, { - "connectionEstablishedSeconds": 0.065082593, - "uploadSeconds": 0.063685833, - "downloadSeconds": 0.000080667 + "connectionEstablishedSeconds": 0.065309634, + "uploadSeconds": 0.064046614, + "downloadSeconds": 0.000085699 }, { - "connectionEstablishedSeconds": 0.064759421, - "uploadSeconds": 0.063291331, - "downloadSeconds": 0.00011043 + "connectionEstablishedSeconds": 0.063779301, + "uploadSeconds": 0.063372405, + "downloadSeconds": 0.000136163 }, { - "connectionEstablishedSeconds": 0.065720272, - "uploadSeconds": 0.064282579, - "downloadSeconds": 0.000021286 + "connectionEstablishedSeconds": 0.064275774, + "uploadSeconds": 0.062967983, + "downloadSeconds": 0.000111519 }, { - "connectionEstablishedSeconds": 0.066243799, - "uploadSeconds": 0.064676631, - "downloadSeconds": 0.00007533 + "connectionEstablishedSeconds": 0.062869924, + "uploadSeconds": 0.061522136, + "downloadSeconds": 0.000099826 }, { - "connectionEstablishedSeconds": 0.065104578, - "uploadSeconds": 0.063679467, - "downloadSeconds": 0.000067506 + "connectionEstablishedSeconds": 0.065951048, + "uploadSeconds": 0.064701169, + "downloadSeconds": 0.000078351 }, { - "connectionEstablishedSeconds": 0.063477089, - "uploadSeconds": 0.061886515, - "downloadSeconds": 0.000084135 + "connectionEstablishedSeconds": 0.066478972, + "uploadSeconds": 0.065097486, + "downloadSeconds": 0.000082354 }, { - "connectionEstablishedSeconds": 0.064291074, - "uploadSeconds": 0.062884761, - "downloadSeconds": 0.000091725 + "connectionEstablishedSeconds": 0.065269249, + "uploadSeconds": 0.063912204, + "downloadSeconds": 0.000104537 }, { - "connectionEstablishedSeconds": 0.062949803, - "uploadSeconds": 0.061656209, - "downloadSeconds": 0.00016127 + "connectionEstablishedSeconds": 0.065817256, + "uploadSeconds": 0.06446906, + "downloadSeconds": 0.00007819 }, { - "connectionEstablishedSeconds": 0.065944203, - "uploadSeconds": 0.064454213, - "downloadSeconds": 0.00010313 + "connectionEstablishedSeconds": 0.064223987, + "uploadSeconds": 0.062801823, + "downloadSeconds": 0.000078383 }, { - "connectionEstablishedSeconds": 0.062548381, - "uploadSeconds": 0.061041945, - "downloadSeconds": 0.000086047 + "connectionEstablishedSeconds": 0.06476724, + "uploadSeconds": 0.063393313, + "downloadSeconds": 0.000099092 }, { - "connectionEstablishedSeconds": 0.064373075, - "uploadSeconds": 0.062766749, - "downloadSeconds": 0.000086884 + "connectionEstablishedSeconds": 0.063259049, + "uploadSeconds": 0.061967122, + "downloadSeconds": 0.000078373 }, { - "connectionEstablishedSeconds": 0.065442864, - "uploadSeconds": 0.063965697, - "downloadSeconds": 0.000078508 + "connectionEstablishedSeconds": 0.062528862, + "uploadSeconds": 0.06046343, + "downloadSeconds": 0.000076467 }, { - "connectionEstablishedSeconds": 0.064090366, - "uploadSeconds": 0.062611861, - "downloadSeconds": 0.000094339 + "connectionEstablishedSeconds": 0.066188334, + "uploadSeconds": 0.064863762, + "downloadSeconds": 0.000079565 }, { - "connectionEstablishedSeconds": 0.062328414, - "uploadSeconds": 0.060780703, - "downloadSeconds": 0.000093392 + "connectionEstablishedSeconds": 0.062887682, + "uploadSeconds": 0.061551332, + "downloadSeconds": 0.000076819 }, { - "connectionEstablishedSeconds": 0.065521301, - "uploadSeconds": 0.0639605, - "downloadSeconds": 0.00009032 + "connectionEstablishedSeconds": 0.066111253, + "uploadSeconds": 0.064702484, + "downloadSeconds": 0.000066659 }, { - "connectionEstablishedSeconds": 0.063330097, - "uploadSeconds": 0.061861947, - "downloadSeconds": 0.000085189 + "connectionEstablishedSeconds": 0.063300491, + "uploadSeconds": 0.061926982, + "downloadSeconds": 0.000083907 }, { - "connectionEstablishedSeconds": 0.062504607, - "uploadSeconds": 0.061069542, - "downloadSeconds": 0.000093704 + "connectionEstablishedSeconds": 0.06449862, + "uploadSeconds": 0.063121687, + "downloadSeconds": 0.000093747 }, { - "connectionEstablishedSeconds": 0.065428798, - "uploadSeconds": 0.063930396, - "downloadSeconds": 0.000090345 + "connectionEstablishedSeconds": 0.064823713, + "uploadSeconds": 0.063492443, + "downloadSeconds": 0.000084742 }, { - "connectionEstablishedSeconds": 0.066120899, - "uploadSeconds": 0.064635411, - "downloadSeconds": 0.000101006 + "connectionEstablishedSeconds": 0.065926331, + "uploadSeconds": 0.06454414, + "downloadSeconds": 0.000098276 }, { - "connectionEstablishedSeconds": 0.063441654, - "uploadSeconds": 0.061950059, - "downloadSeconds": 0.000085507 + "connectionEstablishedSeconds": 0.065139319, + "uploadSeconds": 0.063690364, + "downloadSeconds": 0.000077539 }, { - "connectionEstablishedSeconds": 0.06192081, - "uploadSeconds": 0.060446516, - "downloadSeconds": 0.000086801 + "connectionEstablishedSeconds": 0.065358817, + "uploadSeconds": 0.06400259, + "downloadSeconds": 0.00003313 }, { - "connectionEstablishedSeconds": 0.064780798, - "uploadSeconds": 0.06328297, - "downloadSeconds": 0.000082797 + "connectionEstablishedSeconds": 0.065301446, + "uploadSeconds": 0.064061379, + "downloadSeconds": 0.000077036 }, { - "connectionEstablishedSeconds": 0.065230626, - "uploadSeconds": 0.063956107, - "downloadSeconds": 0.000087041 + "connectionEstablishedSeconds": 0.063128633, + "uploadSeconds": 0.061784849, + "downloadSeconds": 0.000066813 }, { - "connectionEstablishedSeconds": 0.064336733, - "uploadSeconds": 0.062975047, - "downloadSeconds": 0.000057564 + "connectionEstablishedSeconds": 0.063143836, + "uploadSeconds": 0.061849758, + "downloadSeconds": 0.00007549 }, { - "connectionEstablishedSeconds": 0.063940465, - "uploadSeconds": 0.062386775, - "downloadSeconds": 0.000056524 + "connectionEstablishedSeconds": 0.062985418, + "uploadSeconds": 0.061620493, + "downloadSeconds": 0.000077547 }, { - "connectionEstablishedSeconds": 0.063153397, - "uploadSeconds": 0.061634663, - "downloadSeconds": 0.000089378 + "connectionEstablishedSeconds": 0.066465888, + "uploadSeconds": 0.064557997, + "downloadSeconds": 0.000080725 }, { - "connectionEstablishedSeconds": 0.062881309, - "uploadSeconds": 0.061372944, - "downloadSeconds": 0.000014302 + "connectionEstablishedSeconds": 0.063822981, + "uploadSeconds": 0.0624959, + "downloadSeconds": 0.000076361 }, { - "connectionEstablishedSeconds": 0.065793862, - "uploadSeconds": 0.064378747, - "downloadSeconds": 0.000092222 + "connectionEstablishedSeconds": 0.066168641, + "uploadSeconds": 0.064885029, + "downloadSeconds": 0.000082184 }, { - "connectionEstablishedSeconds": 0.062229183, - "uploadSeconds": 0.060670133, - "downloadSeconds": 0.000079002 + "connectionEstablishedSeconds": 0.065318529, + "uploadSeconds": 0.063980222, + "downloadSeconds": 0.000075709 }, { - "connectionEstablishedSeconds": 0.064045912, - "uploadSeconds": 0.062547321, - "downloadSeconds": 0.000068752 + "connectionEstablishedSeconds": 0.063808287, + "uploadSeconds": 0.062508188, + "downloadSeconds": 0.00007488 }, { - "connectionEstablishedSeconds": 0.065267324, - "uploadSeconds": 0.063865416, - "downloadSeconds": 0.000074088 + "connectionEstablishedSeconds": 0.063995944, + "uploadSeconds": 0.0627541, + "downloadSeconds": 0.000072214 }, { - "connectionEstablishedSeconds": 0.064339884, - "uploadSeconds": 0.062948599, - "downloadSeconds": 0.000073878 + "connectionEstablishedSeconds": 0.06397866, + "uploadSeconds": 0.062611512, + "downloadSeconds": 0.00006927 }, { - "connectionEstablishedSeconds": 0.066475572, - "uploadSeconds": 0.065188484, - "downloadSeconds": 0.00008183 + "connectionEstablishedSeconds": 0.065037845, + "uploadSeconds": 0.063947489, + "downloadSeconds": 0.000080016 }, { - "connectionEstablishedSeconds": 0.065496292, - "uploadSeconds": 0.064038299, - "downloadSeconds": 0.000054166 + "connectionEstablishedSeconds": 0.066120082, + "uploadSeconds": 0.064685778, + "downloadSeconds": 0.000082905 }, { - "connectionEstablishedSeconds": 0.063902925, - "uploadSeconds": 0.062423837, - "downloadSeconds": 0.000080288 + "connectionEstablishedSeconds": 0.062625315, + "uploadSeconds": 0.061221872, + "downloadSeconds": 0.000031938 }, { - "connectionEstablishedSeconds": 0.06604371, - "uploadSeconds": 0.064533194, - "downloadSeconds": 0.000049286 + "connectionEstablishedSeconds": 0.065900539, + "uploadSeconds": 0.06464932, + "downloadSeconds": 0.000077138 }, { - "connectionEstablishedSeconds": 0.062986941, - "uploadSeconds": 0.06151522, - "downloadSeconds": 0.000072148 + "connectionEstablishedSeconds": 0.064467677, + "uploadSeconds": 0.0630704, + "downloadSeconds": 0.000087459 }, { - "connectionEstablishedSeconds": 0.064172058, - "uploadSeconds": 0.062834729, - "downloadSeconds": 0.000081714 + "connectionEstablishedSeconds": 0.065558181, + "uploadSeconds": 0.064390576, + "downloadSeconds": 0.000088838 }, { - "connectionEstablishedSeconds": 0.063963896, - "uploadSeconds": 0.062563989, - "downloadSeconds": 0.000080245 + "connectionEstablishedSeconds": 0.064554054, + "uploadSeconds": 0.063124382, + "downloadSeconds": 0.000086044 }, { - "connectionEstablishedSeconds": 0.063585543, - "uploadSeconds": 0.062314249, - "downloadSeconds": 0.000076655 + "connectionEstablishedSeconds": 0.065518499, + "uploadSeconds": 0.0642783, + "downloadSeconds": 0.000069911 }, { - "connectionEstablishedSeconds": 0.062428317, - "uploadSeconds": 0.060851752, - "downloadSeconds": 0.00010259 + "connectionEstablishedSeconds": 0.066629516, + "uploadSeconds": 0.065206442, + "downloadSeconds": 0.000081926 }, { - "connectionEstablishedSeconds": 0.065131812, - "uploadSeconds": 0.063703607, - "downloadSeconds": 0.000085953 + "connectionEstablishedSeconds": 0.065656045, + "uploadSeconds": 0.064359504, + "downloadSeconds": 0.000044615 }, { - "connectionEstablishedSeconds": 0.064109898, - "uploadSeconds": 0.062582567, - "downloadSeconds": 0.000091137 + "connectionEstablishedSeconds": 0.063976017, + "uploadSeconds": 0.062635566, + "downloadSeconds": 0.000071372 }, { - "connectionEstablishedSeconds": 0.064474127, - "uploadSeconds": 0.062859402, - "downloadSeconds": 0.00009084 + "connectionEstablishedSeconds": 0.062951525, + "uploadSeconds": 0.061702677, + "downloadSeconds": 0.000078439 }, { - "connectionEstablishedSeconds": 0.063433636, - "uploadSeconds": 0.062060815, - "downloadSeconds": 0.000081587 + "connectionEstablishedSeconds": 0.063737264, + "uploadSeconds": 0.06236826, + "downloadSeconds": 0.00006622 }, { - "connectionEstablishedSeconds": 0.062763514, - "uploadSeconds": 0.06099925, - "downloadSeconds": 0.000089892 + "connectionEstablishedSeconds": 0.065378439, + "uploadSeconds": 0.064143514, + "downloadSeconds": 0.000085874 }, { - "connectionEstablishedSeconds": 0.063113345, - "uploadSeconds": 0.061645392, - "downloadSeconds": 0.000092456 + "connectionEstablishedSeconds": 0.063799799, + "uploadSeconds": 0.062465944, + "downloadSeconds": 0.000076315 }, { - "connectionEstablishedSeconds": 0.061861478, - "uploadSeconds": 0.060287224, - "downloadSeconds": 0.000079209 + "connectionEstablishedSeconds": 0.064016785, + "uploadSeconds": 0.062693022, + "downloadSeconds": 0.000073532 }, { - "connectionEstablishedSeconds": 0.064934032, - "uploadSeconds": 0.063540396, - "downloadSeconds": 0.000103942 + "connectionEstablishedSeconds": 0.066494306, + "uploadSeconds": 0.065370658, + "downloadSeconds": 0.000110275 }, { - "connectionEstablishedSeconds": 0.062558493, - "uploadSeconds": 0.061039599, - "downloadSeconds": 0.000105559 + "connectionEstablishedSeconds": 0.063535833, + "uploadSeconds": 0.062204885, + "downloadSeconds": 0.000096163 }, { - "connectionEstablishedSeconds": 0.062461342, - "uploadSeconds": 0.060998026, - "downloadSeconds": 0.000079211 + "connectionEstablishedSeconds": 0.060309504, + "uploadSeconds": 0.058998211, + "downloadSeconds": 0.000076909 }, { - "connectionEstablishedSeconds": 0.064963148, - "uploadSeconds": 0.063440355, - "downloadSeconds": 0.000128379 + "connectionEstablishedSeconds": 0.062002445, + "uploadSeconds": 0.060868854, + "downloadSeconds": 0.000067506 }, { - "connectionEstablishedSeconds": 0.064086958, - "uploadSeconds": 0.06267439, - "downloadSeconds": 0.000055328 + "connectionEstablishedSeconds": 0.06525739, + "uploadSeconds": 0.063977881, + "downloadSeconds": 0.000079046 }, { - "connectionEstablishedSeconds": 0.063558149, - "uploadSeconds": 0.062030811, - "downloadSeconds": 0.000092141 + "connectionEstablishedSeconds": 0.063392018, + "uploadSeconds": 0.062113137, + "downloadSeconds": 0.000079119 }, { - "connectionEstablishedSeconds": 0.063304619, - "uploadSeconds": 0.061878132, - "downloadSeconds": 0.000047941 + "connectionEstablishedSeconds": 0.065732927, + "uploadSeconds": 0.064370846, + "downloadSeconds": 0.000066241 }, { - "connectionEstablishedSeconds": 0.063461437, - "uploadSeconds": 0.062010201, - "downloadSeconds": 0.000097417 + "connectionEstablishedSeconds": 0.06651007, + "uploadSeconds": 0.065177715, + "downloadSeconds": 0.000134526 }, { - "connectionEstablishedSeconds": 0.065196537, - "uploadSeconds": 0.063593816, - "downloadSeconds": 0.000101259 + "connectionEstablishedSeconds": 0.064256641, + "uploadSeconds": 0.063039581, + "downloadSeconds": 0.000073272 }, { - "connectionEstablishedSeconds": 0.064749236, - "uploadSeconds": 0.063287594, - "downloadSeconds": 0.000074502 + "connectionEstablishedSeconds": 0.065119473, + "uploadSeconds": 0.06376839, + "downloadSeconds": 0.000074958 }, { - "connectionEstablishedSeconds": 0.06230025, - "uploadSeconds": 0.060811088, - "downloadSeconds": 0.000094483 + "connectionEstablishedSeconds": 0.062175277, + "uploadSeconds": 0.061104338, + "downloadSeconds": 0.000087541 }, { - "connectionEstablishedSeconds": 0.061935574, - "uploadSeconds": 0.060392553, - "downloadSeconds": 0.000104253 + "connectionEstablishedSeconds": 0.063139385, + "uploadSeconds": 0.06214719, + "downloadSeconds": 0.000078032 }, { - "connectionEstablishedSeconds": 0.065362872, - "uploadSeconds": 0.063935425, - "downloadSeconds": 0.000056902 + "connectionEstablishedSeconds": 0.064046091, + "uploadSeconds": 0.06271439, + "downloadSeconds": 0.000068561 }, { - "connectionEstablishedSeconds": 0.064596605, - "uploadSeconds": 0.063039911, - "downloadSeconds": 0.000090452 + "connectionEstablishedSeconds": 0.063052851, + "uploadSeconds": 0.062245386, + "downloadSeconds": 0.000045205 }, { - "connectionEstablishedSeconds": 0.062109338, - "uploadSeconds": 0.060577921, - "downloadSeconds": 0.000104947 + "connectionEstablishedSeconds": 0.064833757, + "uploadSeconds": 0.063268495, + "downloadSeconds": 0.000300286 }, { - "connectionEstablishedSeconds": 0.063893395, - "uploadSeconds": 0.062458605, - "downloadSeconds": 0.000073112 + "connectionEstablishedSeconds": 0.065363519, + "uploadSeconds": 0.064063992, + "downloadSeconds": 0.00007668 } ], "implementation": "rust-libp2p", @@ -1996,504 +1996,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.06277137, - "uploadSeconds": 0.060733951, - "downloadSeconds": 0.000306909 + "connectionEstablishedSeconds": 0.064520194, + "uploadSeconds": 0.062763047, + "downloadSeconds": 0.000311714 }, { - "connectionEstablishedSeconds": 0.062512019, - "uploadSeconds": 0.060731917, - "downloadSeconds": 0.000238689 + "connectionEstablishedSeconds": 0.061672534, + "uploadSeconds": 0.060131542, + "downloadSeconds": 0.000290564 }, { - "connectionEstablishedSeconds": 0.06625714, - "uploadSeconds": 0.064595448, - "downloadSeconds": 0.000166766 + "connectionEstablishedSeconds": 0.06559133, + "uploadSeconds": 0.064091439, + "downloadSeconds": 0.000220565 }, { - "connectionEstablishedSeconds": 0.064197297, - "uploadSeconds": 0.062478119, - "downloadSeconds": 0.000170833 + "connectionEstablishedSeconds": 0.06509549, + "uploadSeconds": 0.063602653, + "downloadSeconds": 0.000232934 }, { - "connectionEstablishedSeconds": 0.065478954, - "uploadSeconds": 0.063751405, - "downloadSeconds": 0.000152644 + "connectionEstablishedSeconds": 0.066234416, + "uploadSeconds": 0.064778126, + "downloadSeconds": 0.000224712 }, { - "connectionEstablishedSeconds": 0.063550367, - "uploadSeconds": 0.061830897, - "downloadSeconds": 0.000188575 + "connectionEstablishedSeconds": 0.063305258, + "uploadSeconds": 0.061815194, + "downloadSeconds": 0.000211531 }, { - "connectionEstablishedSeconds": 0.063527744, - "uploadSeconds": 0.06182121, - "downloadSeconds": 0.00015224 + "connectionEstablishedSeconds": 0.065295876, + "uploadSeconds": 0.063799653, + "downloadSeconds": 0.000215023 }, { - "connectionEstablishedSeconds": 0.065661804, - "uploadSeconds": 0.063940506, - "downloadSeconds": 0.000172961 + "connectionEstablishedSeconds": 0.066643606, + "uploadSeconds": 0.065195529, + "downloadSeconds": 0.000278385 }, { - "connectionEstablishedSeconds": 0.065612578, - "uploadSeconds": 0.064047862, - "downloadSeconds": 0.000143857 + "connectionEstablishedSeconds": 0.063005459, + "uploadSeconds": 0.061678785, + "downloadSeconds": 0.000260314 }, { - "connectionEstablishedSeconds": 0.064190099, - "uploadSeconds": 0.062550382, - "downloadSeconds": 0.000147368 + "connectionEstablishedSeconds": 0.065838078, + "uploadSeconds": 0.064328347, + "downloadSeconds": 0.000289925 }, { - "connectionEstablishedSeconds": 0.065222385, - "uploadSeconds": 0.063589251, - "downloadSeconds": 0.000212523 + "connectionEstablishedSeconds": 0.06564289, + "uploadSeconds": 0.064197027, + "downloadSeconds": 0.000239059 }, { - "connectionEstablishedSeconds": 0.065577328, - "uploadSeconds": 0.063807502, - "downloadSeconds": 0.000153616 + "connectionEstablishedSeconds": 0.064409611, + "uploadSeconds": 0.062990114, + "downloadSeconds": 0.000220292 }, { - "connectionEstablishedSeconds": 0.06500279, - "uploadSeconds": 0.063196092, - "downloadSeconds": 0.000162335 + "connectionEstablishedSeconds": 0.062809421, + "uploadSeconds": 0.061497011, + "downloadSeconds": 0.000217806 }, { - "connectionEstablishedSeconds": 0.066048987, - "uploadSeconds": 0.064452324, - "downloadSeconds": 0.00017652 + "connectionEstablishedSeconds": 0.063838736, + "uploadSeconds": 0.062350353, + "downloadSeconds": 0.000285214 }, { - "connectionEstablishedSeconds": 0.065267424, - "uploadSeconds": 0.06371593, - "downloadSeconds": 0.000176883 + "connectionEstablishedSeconds": 0.064723174, + "uploadSeconds": 0.063331722, + "downloadSeconds": 0.00020302 }, { - "connectionEstablishedSeconds": 0.062768405, - "uploadSeconds": 0.061265934, - "downloadSeconds": 0.000176763 + "connectionEstablishedSeconds": 0.064209506, + "uploadSeconds": 0.062743849, + "downloadSeconds": 0.000228847 }, { - "connectionEstablishedSeconds": 0.06080528, - "uploadSeconds": 0.059229335, - "downloadSeconds": 0.000182631 + "connectionEstablishedSeconds": 0.065077603, + "uploadSeconds": 0.063613483, + "downloadSeconds": 0.00028078 }, { - "connectionEstablishedSeconds": 0.0639676, - "uploadSeconds": 0.062350412, - "downloadSeconds": 0.000205363 + "connectionEstablishedSeconds": 0.062394046, + "uploadSeconds": 0.061067573, + "downloadSeconds": 0.000201108 }, { - "connectionEstablishedSeconds": 0.065227945, - "uploadSeconds": 0.063733038, - "downloadSeconds": 0.000208994 + "connectionEstablishedSeconds": 0.065299326, + "uploadSeconds": 0.063748553, + "downloadSeconds": 0.000242959 }, { - "connectionEstablishedSeconds": 0.062842189, - "uploadSeconds": 0.061268217, - "downloadSeconds": 0.000140209 + "connectionEstablishedSeconds": 0.064665813, + "uploadSeconds": 0.063258611, + "downloadSeconds": 0.000290005 }, { - "connectionEstablishedSeconds": 0.064342747, - "uploadSeconds": 0.062794978, - "downloadSeconds": 0.000169127 + "connectionEstablishedSeconds": 0.063905388, + "uploadSeconds": 0.062530847, + "downloadSeconds": 0.000234923 }, { - "connectionEstablishedSeconds": 0.061011587, - "uploadSeconds": 0.059615142, - "downloadSeconds": 0.000149046 + "connectionEstablishedSeconds": 0.06432057, + "uploadSeconds": 0.062942497, + "downloadSeconds": 0.000227728 }, { - "connectionEstablishedSeconds": 0.065921747, - "uploadSeconds": 0.064430406, - "downloadSeconds": 0.000143303 + "connectionEstablishedSeconds": 0.065251547, + "uploadSeconds": 0.063915261, + "downloadSeconds": 0.000286787 }, { - "connectionEstablishedSeconds": 0.063510553, - "uploadSeconds": 0.061998882, - "downloadSeconds": 0.000157823 + "connectionEstablishedSeconds": 0.065145683, + "uploadSeconds": 0.063710432, + "downloadSeconds": 0.00019077 }, { - "connectionEstablishedSeconds": 0.063149193, - "uploadSeconds": 0.06153678, - "downloadSeconds": 0.000195232 + "connectionEstablishedSeconds": 0.066127095, + "uploadSeconds": 0.064834648, + "downloadSeconds": 0.000209692 }, { - "connectionEstablishedSeconds": 0.065333281, - "uploadSeconds": 0.063768413, - "downloadSeconds": 0.000138238 + "connectionEstablishedSeconds": 0.062005086, + "uploadSeconds": 0.060587007, + "downloadSeconds": 0.000143414 }, { - "connectionEstablishedSeconds": 0.063494629, - "uploadSeconds": 0.06188941, - "downloadSeconds": 0.00013304 + "connectionEstablishedSeconds": 0.064123733, + "uploadSeconds": 0.062807069, + "downloadSeconds": 0.000197959 }, { - "connectionEstablishedSeconds": 0.063584879, - "uploadSeconds": 0.062079006, - "downloadSeconds": 0.000142998 + "connectionEstablishedSeconds": 0.062011479, + "uploadSeconds": 0.060655504, + "downloadSeconds": 0.000273931 }, { - "connectionEstablishedSeconds": 0.063410663, - "uploadSeconds": 0.061943761, - "downloadSeconds": 0.000192115 + "connectionEstablishedSeconds": 0.063505832, + "uploadSeconds": 0.062131307, + "downloadSeconds": 0.000204597 }, { - "connectionEstablishedSeconds": 0.063587159, - "uploadSeconds": 0.06201826, - "downloadSeconds": 0.000188674 + "connectionEstablishedSeconds": 0.063511408, + "uploadSeconds": 0.062059862, + "downloadSeconds": 0.000246621 }, { - "connectionEstablishedSeconds": 0.064053963, - "uploadSeconds": 0.062598114, - "downloadSeconds": 0.000170024 + "connectionEstablishedSeconds": 0.06440964, + "uploadSeconds": 0.062882752, + "downloadSeconds": 0.000228304 }, { - "connectionEstablishedSeconds": 0.065139922, - "uploadSeconds": 0.063679983, - "downloadSeconds": 0.000198472 + "connectionEstablishedSeconds": 0.060028443, + "uploadSeconds": 0.058494391, + "downloadSeconds": 0.00028323 }, { - "connectionEstablishedSeconds": 0.063830091, - "uploadSeconds": 0.062462481, - "downloadSeconds": 0.000155749 + "connectionEstablishedSeconds": 0.066110257, + "uploadSeconds": 0.064746388, + "downloadSeconds": 0.00023999 }, { - "connectionEstablishedSeconds": 0.063675635, - "uploadSeconds": 0.061992486, - "downloadSeconds": 0.000156188 + "connectionEstablishedSeconds": 0.065221789, + "uploadSeconds": 0.06388649, + "downloadSeconds": 0.000282664 }, { - "connectionEstablishedSeconds": 0.064332267, - "uploadSeconds": 0.062826303, - "downloadSeconds": 0.000153613 + "connectionEstablishedSeconds": 0.064010908, + "uploadSeconds": 0.062539179, + "downloadSeconds": 0.000293821 }, { - "connectionEstablishedSeconds": 0.061139596, - "uploadSeconds": 0.059570272, - "downloadSeconds": 0.000182183 + "connectionEstablishedSeconds": 0.066279266, + "uploadSeconds": 0.06482569, + "downloadSeconds": 0.000189668 }, { - "connectionEstablishedSeconds": 0.064116394, - "uploadSeconds": 0.062665011, - "downloadSeconds": 0.000106613 + "connectionEstablishedSeconds": 0.064467997, + "uploadSeconds": 0.062964242, + "downloadSeconds": 0.000205917 }, { - "connectionEstablishedSeconds": 0.063876504, - "uploadSeconds": 0.062264445, - "downloadSeconds": 0.00016349 + "connectionEstablishedSeconds": 0.063683088, + "uploadSeconds": 0.062621114, + "downloadSeconds": 0.000225339 }, { - "connectionEstablishedSeconds": 0.064945211, - "uploadSeconds": 0.063608162, - "downloadSeconds": 0.000044057 + "connectionEstablishedSeconds": 0.065295598, + "uploadSeconds": 0.063874133, + "downloadSeconds": 0.000301366 }, { - "connectionEstablishedSeconds": 0.065405409, - "uploadSeconds": 0.063705801, - "downloadSeconds": 0.000156554 + "connectionEstablishedSeconds": 0.066577362, + "uploadSeconds": 0.065280399, + "downloadSeconds": 0.000195606 }, { - "connectionEstablishedSeconds": 0.062415533, - "uploadSeconds": 0.060870429, - "downloadSeconds": 0.00017677 + "connectionEstablishedSeconds": 0.063268171, + "uploadSeconds": 0.061804848, + "downloadSeconds": 0.000296705 }, { - "connectionEstablishedSeconds": 0.062252289, - "uploadSeconds": 0.060461649, - "downloadSeconds": 0.000188838 + "connectionEstablishedSeconds": 0.065474833, + "uploadSeconds": 0.064150838, + "downloadSeconds": 0.000243106 }, { - "connectionEstablishedSeconds": 0.06478975, - "uploadSeconds": 0.063334313, - "downloadSeconds": 0.000167166 + "connectionEstablishedSeconds": 0.064503497, + "uploadSeconds": 0.063037301, + "downloadSeconds": 0.000240357 }, { - "connectionEstablishedSeconds": 0.06580532, - "uploadSeconds": 0.064226485, - "downloadSeconds": 0.000140424 + "connectionEstablishedSeconds": 0.063228496, + "uploadSeconds": 0.061711898, + "downloadSeconds": 0.0002308 }, { - "connectionEstablishedSeconds": 0.065578657, - "uploadSeconds": 0.063908026, - "downloadSeconds": 0.000133025 + "connectionEstablishedSeconds": 0.065222472, + "uploadSeconds": 0.063772095, + "downloadSeconds": 0.000225858 }, { - "connectionEstablishedSeconds": 0.063384419, - "uploadSeconds": 0.061659255, - "downloadSeconds": 0.000207453 + "connectionEstablishedSeconds": 0.064831753, + "uploadSeconds": 0.063397533, + "downloadSeconds": 0.000249322 }, { - "connectionEstablishedSeconds": 0.062019391, - "uploadSeconds": 0.06052803, - "downloadSeconds": 0.000148008 + "connectionEstablishedSeconds": 0.064904029, + "uploadSeconds": 0.063438406, + "downloadSeconds": 0.000198988 }, { - "connectionEstablishedSeconds": 0.064412886, - "uploadSeconds": 0.062348585, - "downloadSeconds": 0.000200061 + "connectionEstablishedSeconds": 0.064007547, + "uploadSeconds": 0.062655107, + "downloadSeconds": 0.000226498 }, { - "connectionEstablishedSeconds": 0.062383672, - "uploadSeconds": 0.0608591, - "downloadSeconds": 0.000151223 + "connectionEstablishedSeconds": 0.06389538, + "uploadSeconds": 0.062495956, + "downloadSeconds": 0.000296354 }, { - "connectionEstablishedSeconds": 0.062229359, - "uploadSeconds": 0.060693929, - "downloadSeconds": 0.000266067 + "connectionEstablishedSeconds": 0.065208755, + "uploadSeconds": 0.063847459, + "downloadSeconds": 0.000176159 }, { - "connectionEstablishedSeconds": 0.066155593, - "uploadSeconds": 0.06469022, - "downloadSeconds": 0.000149392 + "connectionEstablishedSeconds": 0.06254477, + "uploadSeconds": 0.061182311, + "downloadSeconds": 0.000191264 }, { - "connectionEstablishedSeconds": 0.061927544, - "uploadSeconds": 0.060453514, - "downloadSeconds": 0.000166042 + "connectionEstablishedSeconds": 0.065895003, + "uploadSeconds": 0.064422187, + "downloadSeconds": 0.000201304 }, { - "connectionEstablishedSeconds": 0.064392619, - "uploadSeconds": 0.062834625, - "downloadSeconds": 0.000163313 + "connectionEstablishedSeconds": 0.066959431, + "uploadSeconds": 0.06549081, + "downloadSeconds": 0.000201391 }, { - "connectionEstablishedSeconds": 0.06363491, - "uploadSeconds": 0.062031709, - "downloadSeconds": 0.000169466 + "connectionEstablishedSeconds": 0.065483631, + "uploadSeconds": 0.064122764, + "downloadSeconds": 0.000199658 }, { - "connectionEstablishedSeconds": 0.065715527, - "uploadSeconds": 0.064028257, - "downloadSeconds": 0.000170167 + "connectionEstablishedSeconds": 0.065869684, + "uploadSeconds": 0.064596755, + "downloadSeconds": 0.000252607 }, { - "connectionEstablishedSeconds": 0.065430993, - "uploadSeconds": 0.063782408, - "downloadSeconds": 0.000153003 + "connectionEstablishedSeconds": 0.065208161, + "uploadSeconds": 0.063724092, + "downloadSeconds": 0.000326259 }, { - "connectionEstablishedSeconds": 0.064837455, - "uploadSeconds": 0.063317846, - "downloadSeconds": 0.000185559 + "connectionEstablishedSeconds": 0.063874435, + "uploadSeconds": 0.062467287, + "downloadSeconds": 0.000189696 }, { - "connectionEstablishedSeconds": 0.065423878, - "uploadSeconds": 0.06386626, - "downloadSeconds": 0.000185411 + "connectionEstablishedSeconds": 0.062529457, + "uploadSeconds": 0.061205657, + "downloadSeconds": 0.000263333 }, { - "connectionEstablishedSeconds": 0.065318743, - "uploadSeconds": 0.06373493, - "downloadSeconds": 0.00015588 + "connectionEstablishedSeconds": 0.065449242, + "uploadSeconds": 0.064066552, + "downloadSeconds": 0.000276344 }, { - "connectionEstablishedSeconds": 0.064360091, - "uploadSeconds": 0.062866748, - "downloadSeconds": 0.000257644 + "connectionEstablishedSeconds": 0.064139182, + "uploadSeconds": 0.06264439, + "downloadSeconds": 0.000202631 }, { - "connectionEstablishedSeconds": 0.06367472, - "uploadSeconds": 0.062337607, - "downloadSeconds": 0.000153402 + "connectionEstablishedSeconds": 0.061921946, + "uploadSeconds": 0.060384157, + "downloadSeconds": 0.000226218 }, { - "connectionEstablishedSeconds": 0.064380433, - "uploadSeconds": 0.063038081, - "downloadSeconds": 0.000225022 + "connectionEstablishedSeconds": 0.066197629, + "uploadSeconds": 0.06483258, + "downloadSeconds": 0.000237098 }, { - "connectionEstablishedSeconds": 0.066053901, - "uploadSeconds": 0.06449941, - "downloadSeconds": 0.000160304 + "connectionEstablishedSeconds": 0.064473701, + "uploadSeconds": 0.063108909, + "downloadSeconds": 0.000208065 }, { - "connectionEstablishedSeconds": 0.063154586, - "uploadSeconds": 0.061631422, - "downloadSeconds": 0.000172446 + "connectionEstablishedSeconds": 0.06539491, + "uploadSeconds": 0.063917182, + "downloadSeconds": 0.00027215 }, { - "connectionEstablishedSeconds": 0.06499621, - "uploadSeconds": 0.063311063, - "downloadSeconds": 0.000165749 + "connectionEstablishedSeconds": 0.065071228, + "uploadSeconds": 0.063778824, + "downloadSeconds": 0.000238865 }, { - "connectionEstablishedSeconds": 0.063910172, - "uploadSeconds": 0.062317545, - "downloadSeconds": 0.000189055 + "connectionEstablishedSeconds": 0.064651975, + "uploadSeconds": 0.063283752, + "downloadSeconds": 0.000156891 }, { - "connectionEstablishedSeconds": 0.06436598, - "uploadSeconds": 0.062870002, - "downloadSeconds": 0.000168184 + "connectionEstablishedSeconds": 0.064982133, + "uploadSeconds": 0.063516095, + "downloadSeconds": 0.000200867 }, { - "connectionEstablishedSeconds": 0.063392951, - "uploadSeconds": 0.061844931, - "downloadSeconds": 0.000165364 + "connectionEstablishedSeconds": 0.062978826, + "uploadSeconds": 0.061688863, + "downloadSeconds": 0.000188278 }, { - "connectionEstablishedSeconds": 0.061985709, - "uploadSeconds": 0.060598584, - "downloadSeconds": 0.000218111 + "connectionEstablishedSeconds": 0.062295427, + "uploadSeconds": 0.060913366, + "downloadSeconds": 0.000255438 }, { - "connectionEstablishedSeconds": 0.064346848, - "uploadSeconds": 0.062938265, - "downloadSeconds": 0.000256958 + "connectionEstablishedSeconds": 0.064525031, + "uploadSeconds": 0.063123822, + "downloadSeconds": 0.000226088 }, { - "connectionEstablishedSeconds": 0.064263518, - "uploadSeconds": 0.062823943, - "downloadSeconds": 0.00025926 + "connectionEstablishedSeconds": 0.062325794, + "uploadSeconds": 0.061063754, + "downloadSeconds": 0.000218165 }, { - "connectionEstablishedSeconds": 0.066052094, - "uploadSeconds": 0.064392861, - "downloadSeconds": 0.000170086 + "connectionEstablishedSeconds": 0.064822543, + "uploadSeconds": 0.063304121, + "downloadSeconds": 0.000251781 }, { - "connectionEstablishedSeconds": 0.06331788, - "uploadSeconds": 0.061739656, - "downloadSeconds": 0.000180556 + "connectionEstablishedSeconds": 0.061440857, + "uploadSeconds": 0.059937803, + "downloadSeconds": 0.000269138 }, { - "connectionEstablishedSeconds": 0.063193286, - "uploadSeconds": 0.061630239, - "downloadSeconds": 0.00020334 + "connectionEstablishedSeconds": 0.065088219, + "uploadSeconds": 0.063709099, + "downloadSeconds": 0.00022092 }, { - "connectionEstablishedSeconds": 0.063009214, - "uploadSeconds": 0.061338967, - "downloadSeconds": 0.000214098 + "connectionEstablishedSeconds": 0.062920135, + "uploadSeconds": 0.061504746, + "downloadSeconds": 0.000207534 }, { - "connectionEstablishedSeconds": 0.062486331, - "uploadSeconds": 0.060927867, - "downloadSeconds": 0.000147766 + "connectionEstablishedSeconds": 0.065019389, + "uploadSeconds": 0.063622874, + "downloadSeconds": 0.000219459 }, { - "connectionEstablishedSeconds": 0.0642498, - "uploadSeconds": 0.062711091, - "downloadSeconds": 0.000167692 + "connectionEstablishedSeconds": 0.065977009, + "uploadSeconds": 0.064597124, + "downloadSeconds": 0.000250198 }, { - "connectionEstablishedSeconds": 0.066161763, - "uploadSeconds": 0.064561553, - "downloadSeconds": 0.000212031 + "connectionEstablishedSeconds": 0.062422976, + "uploadSeconds": 0.060975136, + "downloadSeconds": 0.000214674 }, { - "connectionEstablishedSeconds": 0.062971593, - "uploadSeconds": 0.06133007, - "downloadSeconds": 0.000178885 + "connectionEstablishedSeconds": 0.064642922, + "uploadSeconds": 0.063189755, + "downloadSeconds": 0.00029799 }, { - "connectionEstablishedSeconds": 0.063930412, - "uploadSeconds": 0.062351155, - "downloadSeconds": 0.000273277 + "connectionEstablishedSeconds": 0.065682327, + "uploadSeconds": 0.064287936, + "downloadSeconds": 0.000292814 }, { - "connectionEstablishedSeconds": 0.063897111, - "uploadSeconds": 0.062327708, - "downloadSeconds": 0.000181038 + "connectionEstablishedSeconds": 0.063473996, + "uploadSeconds": 0.062029369, + "downloadSeconds": 0.000231583 }, { - "connectionEstablishedSeconds": 0.065484587, - "uploadSeconds": 0.063968885, - "downloadSeconds": 0.000181512 + "connectionEstablishedSeconds": 0.063469822, + "uploadSeconds": 0.061954741, + "downloadSeconds": 0.000246131 }, { - "connectionEstablishedSeconds": 0.063676238, - "uploadSeconds": 0.062083047, - "downloadSeconds": 0.000183354 + "connectionEstablishedSeconds": 0.064851128, + "uploadSeconds": 0.063434178, + "downloadSeconds": 0.000213867 }, { - "connectionEstablishedSeconds": 0.063393622, - "uploadSeconds": 0.061798, - "downloadSeconds": 0.00016845 + "connectionEstablishedSeconds": 0.062144428, + "uploadSeconds": 0.060606703, + "downloadSeconds": 0.000217533 }, { - "connectionEstablishedSeconds": 0.061601649, - "uploadSeconds": 0.059992503, - "downloadSeconds": 0.000145892 + "connectionEstablishedSeconds": 0.065986455, + "uploadSeconds": 0.064577873, + "downloadSeconds": 0.000206804 }, { - "connectionEstablishedSeconds": 0.064719805, - "uploadSeconds": 0.063186084, - "downloadSeconds": 0.000155291 + "connectionEstablishedSeconds": 0.064726192, + "uploadSeconds": 0.063332243, + "downloadSeconds": 0.000239735 }, { - "connectionEstablishedSeconds": 0.063868917, - "uploadSeconds": 0.062377201, - "downloadSeconds": 0.000158219 + "connectionEstablishedSeconds": 0.064632716, + "uploadSeconds": 0.063309348, + "downloadSeconds": 0.000265871 }, { - "connectionEstablishedSeconds": 0.065255762, - "uploadSeconds": 0.063695216, - "downloadSeconds": 0.000207425 + "connectionEstablishedSeconds": 0.066051432, + "uploadSeconds": 0.064603075, + "downloadSeconds": 0.000279868 }, { - "connectionEstablishedSeconds": 0.06289086, - "uploadSeconds": 0.061307413, - "downloadSeconds": 0.000176603 + "connectionEstablishedSeconds": 0.064319152, + "uploadSeconds": 0.062978197, + "downloadSeconds": 0.000267011 }, { - "connectionEstablishedSeconds": 0.06599775, - "uploadSeconds": 0.064373628, - "downloadSeconds": 0.000158283 + "connectionEstablishedSeconds": 0.065578875, + "uploadSeconds": 0.064210311, + "downloadSeconds": 0.000312327 }, { - "connectionEstablishedSeconds": 0.064462208, - "uploadSeconds": 0.062851861, - "downloadSeconds": 0.000189597 + "connectionEstablishedSeconds": 0.06249902, + "uploadSeconds": 0.061115234, + "downloadSeconds": 0.000208288 }, { - "connectionEstablishedSeconds": 0.061042882, - "uploadSeconds": 0.059434473, - "downloadSeconds": 0.000152928 + "connectionEstablishedSeconds": 0.064433692, + "uploadSeconds": 0.063065887, + "downloadSeconds": 0.000199075 }, { - "connectionEstablishedSeconds": 0.063415706, - "uploadSeconds": 0.061892795, - "downloadSeconds": 0.000160173 + "connectionEstablishedSeconds": 0.063908527, + "uploadSeconds": 0.062421652, + "downloadSeconds": 0.000192921 }, { - "connectionEstablishedSeconds": 0.066115631, - "uploadSeconds": 0.064567743, - "downloadSeconds": 0.000153889 + "connectionEstablishedSeconds": 0.065314004, + "uploadSeconds": 0.063971269, + "downloadSeconds": 0.000224887 }, { - "connectionEstablishedSeconds": 0.064119783, - "uploadSeconds": 0.062440057, - "downloadSeconds": 0.000208393 + "connectionEstablishedSeconds": 0.066661819, + "uploadSeconds": 0.065122878, + "downloadSeconds": 0.000303099 }, { - "connectionEstablishedSeconds": 0.060624918, - "uploadSeconds": 0.059081435, - "downloadSeconds": 0.000133408 + "connectionEstablishedSeconds": 0.062946918, + "uploadSeconds": 0.061544363, + "downloadSeconds": 0.000211652 }, { - "connectionEstablishedSeconds": 0.060192516, - "uploadSeconds": 0.058567176, - "downloadSeconds": 0.000157839 + "connectionEstablishedSeconds": 0.061860653, + "uploadSeconds": 0.060460049, + "downloadSeconds": 0.000195749 }, { - "connectionEstablishedSeconds": 0.06293136, - "uploadSeconds": 0.061378694, - "downloadSeconds": 0.000154808 + "connectionEstablishedSeconds": 0.065215099, + "uploadSeconds": 0.063931388, + "downloadSeconds": 0.000234829 }, { - "connectionEstablishedSeconds": 0.063664462, - "uploadSeconds": 0.062046277, - "downloadSeconds": 0.000169954 + "connectionEstablishedSeconds": 0.06453588, + "uploadSeconds": 0.06308244, + "downloadSeconds": 0.000227521 }, { - "connectionEstablishedSeconds": 0.064070503, - "uploadSeconds": 0.062581995, - "downloadSeconds": 0.000162214 + "connectionEstablishedSeconds": 0.06571602, + "uploadSeconds": 0.064277054, + "downloadSeconds": 0.000233697 } ], "implementation": "rust-libp2p-quinn", @@ -2504,503 +2504,503 @@ "result": [ { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185466195, - "downloadSeconds": 0.000028973 + "uploadSeconds": 0.185053145, + "downloadSeconds": 0.000042529 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188167615, - "downloadSeconds": 0.000026885 + "uploadSeconds": 0.186749887, + "downloadSeconds": 0.000034788 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189657173, - "downloadSeconds": 0.0000224 + "uploadSeconds": 0.177589981, + "downloadSeconds": 0.000034141 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.1914844, - "downloadSeconds": 0.000023593 + "uploadSeconds": 0.186222307, + "downloadSeconds": 0.000023625 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190712437, - "downloadSeconds": 0.000019196 + "uploadSeconds": 0.190720809, + "downloadSeconds": 0.000035193 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185987718, - "downloadSeconds": 0.000018985 + "uploadSeconds": 0.193406136, + "downloadSeconds": 0.000035356 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190361234, - "downloadSeconds": 0.000017103 + "uploadSeconds": 0.192963271, + "downloadSeconds": 0.00003445 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.19417555, - "downloadSeconds": 0.000022034 + "uploadSeconds": 0.195476643, + "downloadSeconds": 0.000036906 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.177455235, - "downloadSeconds": 0.000022084 + "uploadSeconds": 0.187020122, + "downloadSeconds": 0.000030902 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.180973425, - "downloadSeconds": 0.000029995 + "uploadSeconds": 0.190978917, + "downloadSeconds": 0.000035416 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184024317, - "downloadSeconds": 0.000022856 + "uploadSeconds": 0.18895168, + "downloadSeconds": 0.000030577 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185067106, - "downloadSeconds": 0.000024826 + "uploadSeconds": 0.19280074, + "downloadSeconds": 0.000034784 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187909478, - "downloadSeconds": 0.000022872 + "uploadSeconds": 0.194281643, + "downloadSeconds": 0.00003553 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187869896, - "downloadSeconds": 0.00002523 + "uploadSeconds": 0.188287778, + "downloadSeconds": 0.000037338 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183236675, - "downloadSeconds": 0.000022337 + "uploadSeconds": 0.195430346, + "downloadSeconds": 0.000037072 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.19073786, - "downloadSeconds": 0.000023225 + "uploadSeconds": 0.194384239, + "downloadSeconds": 0.000034565 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185987622, - "downloadSeconds": 0.000021541 + "uploadSeconds": 0.191915218, + "downloadSeconds": 0.000031388 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188877463, - "downloadSeconds": 0.000026001 + "uploadSeconds": 0.190814481, + "downloadSeconds": 0.000033409 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184597348, - "downloadSeconds": 0.000023436 + "uploadSeconds": 0.188226132, + "downloadSeconds": 0.000031379 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190118563, - "downloadSeconds": 0.000031345 + "uploadSeconds": 0.188944544, + "downloadSeconds": 0.000037297 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191294216, - "downloadSeconds": 0.000022381 + "uploadSeconds": 0.192830669, + "downloadSeconds": 0.000031164 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188355639, - "downloadSeconds": 0.000023247 + "uploadSeconds": 0.191889106, + "downloadSeconds": 0.00003192 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182059486, - "downloadSeconds": 0.000022545 + "uploadSeconds": 0.184959513, + "downloadSeconds": 0.000032864 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191320708, - "downloadSeconds": 0.000019166 + "uploadSeconds": 0.19342802, + "downloadSeconds": 0.000032484 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.197074208, - "downloadSeconds": 0.000024354 + "uploadSeconds": 0.193531339, + "downloadSeconds": 0.000024694 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193975081, - "downloadSeconds": 0.000023361 + "uploadSeconds": 0.191605955, + "downloadSeconds": 0.000039426 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.180626937, - "downloadSeconds": 0.000025197 + "uploadSeconds": 0.188998617, + "downloadSeconds": 0.000031029 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18515676, - "downloadSeconds": 0.000024164 + "uploadSeconds": 0.188507885, + "downloadSeconds": 0.00002276 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189746973, - "downloadSeconds": 0.000020334 + "uploadSeconds": 0.196444295, + "downloadSeconds": 0.000025062 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188753218, - "downloadSeconds": 0.000023442 + "uploadSeconds": 0.193288603, + "downloadSeconds": 0.000022276 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188519146, - "downloadSeconds": 0.000029249 + "uploadSeconds": 0.190196478, + "downloadSeconds": 0.000035304 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.195113813, - "downloadSeconds": 0.000022034 + "uploadSeconds": 0.19101996, + "downloadSeconds": 0.000031468 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191347911, - "downloadSeconds": 0.00002188 + "uploadSeconds": 0.18771346, + "downloadSeconds": 0.000034425 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.19072678, - "downloadSeconds": 0.000023573 + "uploadSeconds": 0.192304997, + "downloadSeconds": 0.000033108 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185937226, - "downloadSeconds": 0.000023743 + "uploadSeconds": 0.182804295, + "downloadSeconds": 0.000034492 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186246626, - "downloadSeconds": 0.000021958 + "uploadSeconds": 0.191296398, + "downloadSeconds": 0.000035555 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182687681, - "downloadSeconds": 0.000022469 + "uploadSeconds": 0.183664688, + "downloadSeconds": 0.000034473 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188083785, - "downloadSeconds": 0.000030745 + "uploadSeconds": 0.192932606, + "downloadSeconds": 0.000034101 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188695463, - "downloadSeconds": 0.000018686 + "uploadSeconds": 0.191965651, + "downloadSeconds": 0.00004048 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18321574, - "downloadSeconds": 0.000020842 + "uploadSeconds": 0.193361465, + "downloadSeconds": 0.000037094 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185121417, - "downloadSeconds": 0.000019424 + "uploadSeconds": 0.182595081, + "downloadSeconds": 0.000026521 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185989645, - "downloadSeconds": 0.000022148 + "uploadSeconds": 0.193753749, + "downloadSeconds": 0.000031588 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191170819, - "downloadSeconds": 0.000020297 + "uploadSeconds": 0.191619186, + "downloadSeconds": 0.000034298 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192768313, - "downloadSeconds": 0.000018066 + "uploadSeconds": 0.186816459, + "downloadSeconds": 0.00003413 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191133207, - "downloadSeconds": 0.00002331 + "uploadSeconds": 0.19257261, + "downloadSeconds": 0.000033194 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190073364, - "downloadSeconds": 0.00002801 + "uploadSeconds": 0.189630143, + "downloadSeconds": 0.000025527 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193934004, - "downloadSeconds": 0.00003159 + "uploadSeconds": 0.182871119, + "downloadSeconds": 0.000035417 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18655496, - "downloadSeconds": 0.000023379 + "uploadSeconds": 0.187070763, + "downloadSeconds": 0.000039682 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182640886, - "downloadSeconds": 0.000024312 + "uploadSeconds": 0.182966939, + "downloadSeconds": 0.000034868 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188961494, - "downloadSeconds": 0.000024203 + "uploadSeconds": 0.19029279, + "downloadSeconds": 0.000032821 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188919597, - "downloadSeconds": 0.000024438 + "uploadSeconds": 0.189312151, + "downloadSeconds": 0.000023169 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.194657477, - "downloadSeconds": 0.000035893 + "uploadSeconds": 0.191229498, + "downloadSeconds": 0.000030995 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185927951, - "downloadSeconds": 0.000032053 + "uploadSeconds": 0.18908621, + "downloadSeconds": 0.000024805 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188830225, - "downloadSeconds": 0.000019392 + "uploadSeconds": 0.190969054, + "downloadSeconds": 0.000035044 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.19531115, - "downloadSeconds": 0.000024389 + "uploadSeconds": 0.182805951, + "downloadSeconds": 0.000035045 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191638504, - "downloadSeconds": 0.000016993 + "uploadSeconds": 0.184211676, + "downloadSeconds": 0.00003118 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187389522, - "downloadSeconds": 0.000024754 + "uploadSeconds": 0.190939334, + "downloadSeconds": 0.00003687 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.192026792, - "downloadSeconds": 0.000035117 + "uploadSeconds": 0.190777691, + "downloadSeconds": 0.000035732 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.17826352, - "downloadSeconds": 0.00002312 + "uploadSeconds": 0.187917115, + "downloadSeconds": 0.000034899 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191410046, - "downloadSeconds": 0.000022467 + "uploadSeconds": 0.190072014, + "downloadSeconds": 0.000039331 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.181756981, - "downloadSeconds": 0.000030718 + "uploadSeconds": 0.191356984, + "downloadSeconds": 0.000036338 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190102492, - "downloadSeconds": 0.000018664 + "uploadSeconds": 0.191103454, + "downloadSeconds": 0.000035841 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185195341, - "downloadSeconds": 0.000031132 + "uploadSeconds": 0.176751719, + "downloadSeconds": 0.000034908 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184418977, - "downloadSeconds": 0.000020783 + "uploadSeconds": 0.19357032, + "downloadSeconds": 0.000027657 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.195258365, - "downloadSeconds": 0.000022216 + "uploadSeconds": 0.185481567, + "downloadSeconds": 0.000034332 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.181766645, - "downloadSeconds": 0.000022292 + "uploadSeconds": 0.190641535, + "downloadSeconds": 0.000033533 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187170682, - "downloadSeconds": 0.000030948 + "uploadSeconds": 0.191202351, + "downloadSeconds": 0.000034829 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190429722, - "downloadSeconds": 0.000022862 + "uploadSeconds": 0.186108976, + "downloadSeconds": 0.000023441 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.193348038, - "downloadSeconds": 0.000019371 + "uploadSeconds": 0.191705913, + "downloadSeconds": 0.000023135 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191331539, - "downloadSeconds": 0.000021627 + "uploadSeconds": 0.186858248, + "downloadSeconds": 0.000033264 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186167144, - "downloadSeconds": 0.00002376 + "uploadSeconds": 0.186761576, + "downloadSeconds": 0.000037166 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.196234728, - "downloadSeconds": 0.000030467 + "uploadSeconds": 0.191750803, + "downloadSeconds": 0.000025621 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18808328, - "downloadSeconds": 0.000021504 + "uploadSeconds": 0.186545117, + "downloadSeconds": 0.000035984 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18607591, - "downloadSeconds": 0.000023552 + "uploadSeconds": 0.182424793, + "downloadSeconds": 0.00003531 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.180858708, - "downloadSeconds": 0.000026443 + "uploadSeconds": 0.19095818, + "downloadSeconds": 0.00003541 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.179141662, - "downloadSeconds": 0.000023808 + "uploadSeconds": 0.193940523, + "downloadSeconds": 0.000034823 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.191035732, - "downloadSeconds": 0.00003011 + "uploadSeconds": 0.19126552, + "downloadSeconds": 0.000030258 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189584074, - "downloadSeconds": 0.000026627 + "uploadSeconds": 0.192959396, + "downloadSeconds": 0.00003533 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187374884, - "downloadSeconds": 0.000026684 + "uploadSeconds": 0.191230252, + "downloadSeconds": 0.00003462 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182904768, - "downloadSeconds": 0.000023694 + "uploadSeconds": 0.191606432, + "downloadSeconds": 0.000035102 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182699949, - "downloadSeconds": 0.000023934 + "uploadSeconds": 0.190014888, + "downloadSeconds": 0.000029117 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.189432817, - "downloadSeconds": 0.000024894 + "uploadSeconds": 0.190648226, + "downloadSeconds": 0.000025677 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182236827, - "downloadSeconds": 0.000024763 + "uploadSeconds": 0.189448378, + "downloadSeconds": 0.000033677 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188724716, - "downloadSeconds": 0.000022915 + "uploadSeconds": 0.195077934, + "downloadSeconds": 0.000034017 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182773081, - "downloadSeconds": 0.000016451 + "uploadSeconds": 0.181657919, + "downloadSeconds": 0.000034153 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.194139646, - "downloadSeconds": 0.000027428 + "uploadSeconds": 0.189491676, + "downloadSeconds": 0.000027625 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185553274, - "downloadSeconds": 0.000033572 + "uploadSeconds": 0.191770687, + "downloadSeconds": 0.000031336 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.183168063, - "downloadSeconds": 0.000031478 + "uploadSeconds": 0.189495974, + "downloadSeconds": 0.000034939 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.188165033, - "downloadSeconds": 0.000019116 + "uploadSeconds": 0.190744158, + "downloadSeconds": 0.000036604 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.19286371, - "downloadSeconds": 0.000035591 + "uploadSeconds": 0.188132312, + "downloadSeconds": 0.000034402 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.18864507, - "downloadSeconds": 0.000022744 + "uploadSeconds": 0.177152609, + "downloadSeconds": 0.000035554 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.194011906, - "downloadSeconds": 0.000031063 + "uploadSeconds": 0.180191044, + "downloadSeconds": 0.000027139 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.187725364, - "downloadSeconds": 0.000030093 + "uploadSeconds": 0.188539768, + "downloadSeconds": 0.000035181 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.19052036, - "downloadSeconds": 0.000023455 + "uploadSeconds": 0.188009218, + "downloadSeconds": 0.000028091 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190076522, - "downloadSeconds": 0.000017861 + "uploadSeconds": 0.190402823, + "downloadSeconds": 0.000034882 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.184588879, - "downloadSeconds": 0.000016617 + "uploadSeconds": 0.176183458, + "downloadSeconds": 0.000027937 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.185671064, - "downloadSeconds": 0.000015912 + "uploadSeconds": 0.185653132, + "downloadSeconds": 0.000035795 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.190963829, - "downloadSeconds": 0.000021779 + "uploadSeconds": 0.19374182, + "downloadSeconds": 0.000035146 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.186081129, - "downloadSeconds": 0.000022259 + "uploadSeconds": 0.180572218, + "downloadSeconds": 0.00003475 }, { "connectionEstablishedSeconds": 0, - "uploadSeconds": 0.182875807, - "downloadSeconds": 0.000021124 + "uploadSeconds": 0.192778229, + "downloadSeconds": 0.00002868 } ], "implementation": "https", @@ -3010,504 +3010,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.247633172, - "uploadSeconds": 0.000047226, - "downloadSeconds": 0.060733193 + "connectionEstablishedSeconds": 0.255564771, + "uploadSeconds": 0.000058962, + "downloadSeconds": 0.124655922 }, { - "connectionEstablishedSeconds": 0.242786263, - "uploadSeconds": 0.000035639, - "downloadSeconds": 0.059834953 + "connectionEstablishedSeconds": 0.240628743, + "uploadSeconds": 0.000031327, + "downloadSeconds": 0.059283787 }, { - "connectionEstablishedSeconds": 0.24719471, - "uploadSeconds": 0.000051374, - "downloadSeconds": 0.121123808 + "connectionEstablishedSeconds": 0.246060026, + "uploadSeconds": 0.000032811, + "downloadSeconds": 0.120545382 }, { - "connectionEstablishedSeconds": 0.256818583, - "uploadSeconds": 0.000031892, - "downloadSeconds": 0.063129956 + "connectionEstablishedSeconds": 0.257898273, + "uploadSeconds": 0.000061307, + "downloadSeconds": 0.063628717 }, { - "connectionEstablishedSeconds": 0.262699576, - "uploadSeconds": 0.000069193, - "downloadSeconds": 0.064672821 + "connectionEstablishedSeconds": 0.256797484, + "uploadSeconds": 0.000015293, + "downloadSeconds": 0.126097157 }, { - "connectionEstablishedSeconds": 0.25781321, - "uploadSeconds": 0.000059397, - "downloadSeconds": 0.063356876 + "connectionEstablishedSeconds": 0.257655875, + "uploadSeconds": 0.000031895, + "downloadSeconds": 0.063533893 }, { - "connectionEstablishedSeconds": 0.257435989, - "uploadSeconds": 0.000030584, - "downloadSeconds": 0.063365745 + "connectionEstablishedSeconds": 0.256532527, + "uploadSeconds": 0.000034072, + "downloadSeconds": 0.063442454 }, { - "connectionEstablishedSeconds": 0.247573047, - "uploadSeconds": 0.000030945, - "downloadSeconds": 0.060855505 + "connectionEstablishedSeconds": 0.256347155, + "uploadSeconds": 0.000047138, + "downloadSeconds": 0.125774714 }, { - "connectionEstablishedSeconds": 0.244996354, - "uploadSeconds": 0.000049056, - "downloadSeconds": 0.120857093 + "connectionEstablishedSeconds": 0.259335178, + "uploadSeconds": 0.000049483, + "downloadSeconds": 0.063913947 }, { - "connectionEstablishedSeconds": 0.252465601, - "uploadSeconds": 0.000031319, - "downloadSeconds": 0.062137944 + "connectionEstablishedSeconds": 0.233717447, + "uploadSeconds": 0.00002658, + "downloadSeconds": 0.058006432 }, { - "connectionEstablishedSeconds": 0.250177921, - "uploadSeconds": 0.00006055, - "downloadSeconds": 0.061493112 + "connectionEstablishedSeconds": 0.258911012, + "uploadSeconds": 0.000050582, + "downloadSeconds": 0.126864314 }, { - "connectionEstablishedSeconds": 0.253108555, - "uploadSeconds": 0.000034955, - "downloadSeconds": 0.062220747 + "connectionEstablishedSeconds": 0.256092791, + "uploadSeconds": 0.00005145, + "downloadSeconds": 0.063076668 }, { - "connectionEstablishedSeconds": 0.246540961, - "uploadSeconds": 0.00003332, - "downloadSeconds": 0.06055015 + "connectionEstablishedSeconds": 0.253528586, + "uploadSeconds": 0.000035863, + "downloadSeconds": 0.12516235 }, { - "connectionEstablishedSeconds": 0.249746475, - "uploadSeconds": 0.000052303, - "downloadSeconds": 0.061921936 + "connectionEstablishedSeconds": 0.250931815, + "uploadSeconds": 0.000048435, + "downloadSeconds": 0.061765651 }, { - "connectionEstablishedSeconds": 0.252633741, - "uploadSeconds": 0.000037496, - "downloadSeconds": 0.124623798 + "connectionEstablishedSeconds": 0.258632992, + "uploadSeconds": 0.000051462, + "downloadSeconds": 0.126959835 }, { - "connectionEstablishedSeconds": 0.260703467, - "uploadSeconds": 0.000037847, - "downloadSeconds": 0.064068832 + "connectionEstablishedSeconds": 0.257017873, + "uploadSeconds": 0.000049839, + "downloadSeconds": 0.126077058 }, { - "connectionEstablishedSeconds": 0.263230978, - "uploadSeconds": 0.000038283, - "downloadSeconds": 0.064910657 + "connectionEstablishedSeconds": 0.259292194, + "uploadSeconds": 0.000050133, + "downloadSeconds": 0.127185628 }, { - "connectionEstablishedSeconds": 0.256052028, - "uploadSeconds": 0.000032064, - "downloadSeconds": 0.125214983 + "connectionEstablishedSeconds": 0.240883048, + "uploadSeconds": 0.000029202, + "downloadSeconds": 0.117895391 }, { - "connectionEstablishedSeconds": 0.248953661, - "uploadSeconds": 0.000035306, - "downloadSeconds": 0.061284171 + "connectionEstablishedSeconds": 0.238878753, + "uploadSeconds": 0.000055267, + "downloadSeconds": 0.116871413 }, { - "connectionEstablishedSeconds": 0.248765623, - "uploadSeconds": 0.000059677, - "downloadSeconds": 0.061044759 + "connectionEstablishedSeconds": 0.252530614, + "uploadSeconds": 0.000053341, + "downloadSeconds": 0.124574708 }, { - "connectionEstablishedSeconds": 0.255385695, - "uploadSeconds": 0.000064673, - "downloadSeconds": 0.124810443 + "connectionEstablishedSeconds": 0.248543388, + "uploadSeconds": 0.000035107, + "downloadSeconds": 0.061000007 }, { - "connectionEstablishedSeconds": 0.248002294, - "uploadSeconds": 0.000030666, - "downloadSeconds": 0.061475677 + "connectionEstablishedSeconds": 0.252642228, + "uploadSeconds": 0.000022627, + "downloadSeconds": 0.062691633 }, { - "connectionEstablishedSeconds": 0.250686788, - "uploadSeconds": 0.000042418, - "downloadSeconds": 0.062015659 + "connectionEstablishedSeconds": 0.244578188, + "uploadSeconds": 0.000031248, + "downloadSeconds": 0.120452768 }, { - "connectionEstablishedSeconds": 0.253740912, - "uploadSeconds": 0.000031168, - "downloadSeconds": 0.12436603 + "connectionEstablishedSeconds": 0.255823597, + "uploadSeconds": 0.000045341, + "downloadSeconds": 0.125369052 }, { - "connectionEstablishedSeconds": 0.254459113, - "uploadSeconds": 0.000061631, - "downloadSeconds": 0.125782727 + "connectionEstablishedSeconds": 0.255313133, + "uploadSeconds": 0.000054953, + "downloadSeconds": 0.123889423 }, { - "connectionEstablishedSeconds": 0.259931869, - "uploadSeconds": 0.000054035, - "downloadSeconds": 0.127223133 + "connectionEstablishedSeconds": 0.25583746, + "uploadSeconds": 0.000049329, + "downloadSeconds": 0.06339297 }, { - "connectionEstablishedSeconds": 0.244439104, - "uploadSeconds": 0.000055638, - "downloadSeconds": 0.060137507 + "connectionEstablishedSeconds": 0.256002126, + "uploadSeconds": 0.000057044, + "downloadSeconds": 0.126471927 }, { - "connectionEstablishedSeconds": 0.257333682, - "uploadSeconds": 0.000032334, - "downloadSeconds": 0.063821865 + "connectionEstablishedSeconds": 0.252109507, + "uploadSeconds": 0.00005592, + "downloadSeconds": 0.062519518 }, { - "connectionEstablishedSeconds": 0.245249155, - "uploadSeconds": 0.000061903, - "downloadSeconds": 0.060225827 + "connectionEstablishedSeconds": 0.251913238, + "uploadSeconds": 0.000028096, + "downloadSeconds": 0.123525763 }, { - "connectionEstablishedSeconds": 0.255122907, - "uploadSeconds": 0.000053703, - "downloadSeconds": 0.124678181 + "connectionEstablishedSeconds": 0.254943314, + "uploadSeconds": 0.000027106, + "downloadSeconds": 0.12496839 }, { - "connectionEstablishedSeconds": 0.247267332, - "uploadSeconds": 0.000029257, - "downloadSeconds": 0.060787319 + "connectionEstablishedSeconds": 0.247363092, + "uploadSeconds": 0.000046956, + "downloadSeconds": 0.122142147 }, { - "connectionEstablishedSeconds": 0.256396495, - "uploadSeconds": 0.00004401, - "downloadSeconds": 0.062969389 + "connectionEstablishedSeconds": 0.252327697, + "uploadSeconds": 0.000032412, + "downloadSeconds": 0.062109734 }, { - "connectionEstablishedSeconds": 0.263733983, - "uploadSeconds": 0.000045547, - "downloadSeconds": 0.064963552 + "connectionEstablishedSeconds": 0.25467206, + "uploadSeconds": 0.000051041, + "downloadSeconds": 0.062652737 }, { - "connectionEstablishedSeconds": 0.246786595, - "uploadSeconds": 0.000031668, - "downloadSeconds": 0.060731283 + "connectionEstablishedSeconds": 0.252011661, + "uploadSeconds": 0.000028809, + "downloadSeconds": 0.062551701 }, { - "connectionEstablishedSeconds": 0.250686644, - "uploadSeconds": 0.00003696, - "downloadSeconds": 0.061633761 + "connectionEstablishedSeconds": 0.256222493, + "uploadSeconds": 0.000049471, + "downloadSeconds": 0.063473614 }, { - "connectionEstablishedSeconds": 0.253685744, - "uploadSeconds": 0.00005584, - "downloadSeconds": 0.125266152 + "connectionEstablishedSeconds": 0.249629093, + "uploadSeconds": 0.000015106, + "downloadSeconds": 0.061868423 }, { - "connectionEstablishedSeconds": 0.252262766, - "uploadSeconds": 0.000034493, - "downloadSeconds": 0.062056355 + "connectionEstablishedSeconds": 0.256758085, + "uploadSeconds": 0.000046705, + "downloadSeconds": 0.126453964 }, { - "connectionEstablishedSeconds": 0.258377765, - "uploadSeconds": 0.000029077, - "downloadSeconds": 0.126434098 + "connectionEstablishedSeconds": 0.246384913, + "uploadSeconds": 0.000046164, + "downloadSeconds": 0.061167599 }, { - "connectionEstablishedSeconds": 0.257459515, - "uploadSeconds": 0.000030892, - "downloadSeconds": 0.126056492 + "connectionEstablishedSeconds": 0.253809944, + "uploadSeconds": 0.000046954, + "downloadSeconds": 0.06251466 }, { - "connectionEstablishedSeconds": 0.238138173, - "uploadSeconds": 0.000037807, - "downloadSeconds": 0.117119422 + "connectionEstablishedSeconds": 0.252680571, + "uploadSeconds": 0.00004862, + "downloadSeconds": 0.124903987 }, { - "connectionEstablishedSeconds": 0.263541809, - "uploadSeconds": 0.000061142, - "downloadSeconds": 0.064934108 + "connectionEstablishedSeconds": 0.260555268, + "uploadSeconds": 0.000024659, + "downloadSeconds": 0.06422256 }, { - "connectionEstablishedSeconds": 0.250547323, - "uploadSeconds": 0.000042574, - "downloadSeconds": 0.122577453 + "connectionEstablishedSeconds": 0.253972966, + "uploadSeconds": 0.000030325, + "downloadSeconds": 0.062968215 }, { - "connectionEstablishedSeconds": 0.256691736, - "uploadSeconds": 0.000036323, - "downloadSeconds": 0.125531362 + "connectionEstablishedSeconds": 0.251677426, + "uploadSeconds": 0.000058083, + "downloadSeconds": 0.123469886 }, { - "connectionEstablishedSeconds": 0.253319339, - "uploadSeconds": 0.000048773, - "downloadSeconds": 0.062276849 + "connectionEstablishedSeconds": 0.255464321, + "uploadSeconds": 0.000030361, + "downloadSeconds": 0.063452473 }, { - "connectionEstablishedSeconds": 0.245871485, - "uploadSeconds": 0.000033422, - "downloadSeconds": 0.060491261 + "connectionEstablishedSeconds": 0.257554731, + "uploadSeconds": 0.000047156, + "downloadSeconds": 0.126325713 }, { - "connectionEstablishedSeconds": 0.2562416, - "uploadSeconds": 0.000052404, - "downloadSeconds": 0.063052909 + "connectionEstablishedSeconds": 0.254332788, + "uploadSeconds": 0.000053547, + "downloadSeconds": 0.062627469 }, { - "connectionEstablishedSeconds": 0.253488411, - "uploadSeconds": 0.000046944, - "downloadSeconds": 0.124612818 + "connectionEstablishedSeconds": 0.24463752, + "uploadSeconds": 0.000029926, + "downloadSeconds": 0.060626808 }, { - "connectionEstablishedSeconds": 0.258393302, - "uploadSeconds": 0.000025223, - "downloadSeconds": 0.126307301 + "connectionEstablishedSeconds": 0.251500685, + "uploadSeconds": 0.000034964, + "downloadSeconds": 0.062436547 }, { - "connectionEstablishedSeconds": 0.248980895, - "uploadSeconds": 0.000029851, - "downloadSeconds": 0.122897907 + "connectionEstablishedSeconds": 0.248732914, + "uploadSeconds": 0.000031966, + "downloadSeconds": 0.061784867 }, { - "connectionEstablishedSeconds": 0.253480785, - "uploadSeconds": 0.000053282, - "downloadSeconds": 0.062796387 + "connectionEstablishedSeconds": 0.254063006, + "uploadSeconds": 0.000060283, + "downloadSeconds": 0.124453353 }, { - "connectionEstablishedSeconds": 0.256810772, - "uploadSeconds": 0.000060179, - "downloadSeconds": 0.063701329 + "connectionEstablishedSeconds": 0.254678345, + "uploadSeconds": 0.000029515, + "downloadSeconds": 0.063197481 }, { - "connectionEstablishedSeconds": 0.259421074, - "uploadSeconds": 0.000036958, - "downloadSeconds": 0.064295854 + "connectionEstablishedSeconds": 0.256487616, + "uploadSeconds": 0.000028327, + "downloadSeconds": 0.063529376 }, { - "connectionEstablishedSeconds": 0.243486987, - "uploadSeconds": 0.000033804, - "downloadSeconds": 0.060014276 + "connectionEstablishedSeconds": 0.254123118, + "uploadSeconds": 0.000030113, + "downloadSeconds": 0.124538531 }, { - "connectionEstablishedSeconds": 0.247819188, - "uploadSeconds": 0.000046398, - "downloadSeconds": 0.060938885 + "connectionEstablishedSeconds": 0.25159968, + "uploadSeconds": 0.000030301, + "downloadSeconds": 0.061926504 }, { - "connectionEstablishedSeconds": 0.248013934, - "uploadSeconds": 0.000031431, - "downloadSeconds": 0.061530422 + "connectionEstablishedSeconds": 0.25943308, + "uploadSeconds": 0.00002747, + "downloadSeconds": 0.064337808 }, { - "connectionEstablishedSeconds": 0.2595116, - "uploadSeconds": 0.000032824, - "downloadSeconds": 0.063944393 + "connectionEstablishedSeconds": 0.256212381, + "uploadSeconds": 0.000051275, + "downloadSeconds": 0.063474669 }, { - "connectionEstablishedSeconds": 0.250039888, - "uploadSeconds": 0.000060663, - "downloadSeconds": 0.061927306 + "connectionEstablishedSeconds": 0.253068728, + "uploadSeconds": 0.000031105, + "downloadSeconds": 0.062774459 }, { - "connectionEstablishedSeconds": 0.244788595, - "uploadSeconds": 0.000029038, - "downloadSeconds": 0.120857474 + "connectionEstablishedSeconds": 0.25281207, + "uploadSeconds": 0.000032473, + "downloadSeconds": 0.062257546 }, { - "connectionEstablishedSeconds": 0.258180251, - "uploadSeconds": 0.000040333, - "downloadSeconds": 0.064058316 + "connectionEstablishedSeconds": 0.245992583, + "uploadSeconds": 0.000047141, + "downloadSeconds": 0.060600227 }, { - "connectionEstablishedSeconds": 0.245910382, - "uploadSeconds": 0.000030679, - "downloadSeconds": 0.061040166 + "connectionEstablishedSeconds": 0.248401528, + "uploadSeconds": 0.000051407, + "downloadSeconds": 0.061628242 }, { - "connectionEstablishedSeconds": 0.257307203, - "uploadSeconds": 0.000031204, - "downloadSeconds": 0.127299195 + "connectionEstablishedSeconds": 0.254361874, + "uploadSeconds": 0.000032809, + "downloadSeconds": 0.063058271 }, { - "connectionEstablishedSeconds": 0.248040721, - "uploadSeconds": 0.000049844, - "downloadSeconds": 0.061485938 + "connectionEstablishedSeconds": 0.25985272, + "uploadSeconds": 0.000048011, + "downloadSeconds": 0.064490936 }, { - "connectionEstablishedSeconds": 0.249007397, - "uploadSeconds": 0.00003222, - "downloadSeconds": 0.061257481 + "connectionEstablishedSeconds": 0.251897611, + "uploadSeconds": 0.000045946, + "downloadSeconds": 0.062066764 }, { - "connectionEstablishedSeconds": 0.245806631, - "uploadSeconds": 0.000036446, - "downloadSeconds": 0.060356244 + "connectionEstablishedSeconds": 0.248299434, + "uploadSeconds": 0.000042741, + "downloadSeconds": 0.061555421 }, { - "connectionEstablishedSeconds": 0.255881613, - "uploadSeconds": 0.000071009, - "downloadSeconds": 0.125190472 + "connectionEstablishedSeconds": 0.240883312, + "uploadSeconds": 0.000043219, + "downloadSeconds": 0.117887156 }, { - "connectionEstablishedSeconds": 0.251087517, - "uploadSeconds": 0.000030239, - "downloadSeconds": 0.123309353 + "connectionEstablishedSeconds": 0.253741863, + "uploadSeconds": 0.00004853, + "downloadSeconds": 0.125259598 }, { - "connectionEstablishedSeconds": 0.255774479, - "uploadSeconds": 0.000018813, - "downloadSeconds": 0.063407206 + "connectionEstablishedSeconds": 0.259493548, + "uploadSeconds": 0.000050997, + "downloadSeconds": 0.064455196 }, { - "connectionEstablishedSeconds": 0.240186702, - "uploadSeconds": 0.000031017, - "downloadSeconds": 0.059020412 + "connectionEstablishedSeconds": 0.257220143, + "uploadSeconds": 0.000030118, + "downloadSeconds": 0.063426681 }, { - "connectionEstablishedSeconds": 0.258338219, - "uploadSeconds": 0.000038978, - "downloadSeconds": 0.063518659 + "connectionEstablishedSeconds": 0.246216063, + "uploadSeconds": 0.000028691, + "downloadSeconds": 0.060675077 }, { - "connectionEstablishedSeconds": 0.254330908, - "uploadSeconds": 0.00005115, - "downloadSeconds": 0.124556109 + "connectionEstablishedSeconds": 0.246821242, + "uploadSeconds": 0.000028037, + "downloadSeconds": 0.061043753 }, { - "connectionEstablishedSeconds": 0.255549164, - "uploadSeconds": 0.000038764, - "downloadSeconds": 0.125864847 + "connectionEstablishedSeconds": 0.249273925, + "uploadSeconds": 0.000046106, + "downloadSeconds": 0.061133894 }, { - "connectionEstablishedSeconds": 0.244775667, - "uploadSeconds": 0.000036068, - "downloadSeconds": 0.120818107 + "connectionEstablishedSeconds": 0.246100615, + "uploadSeconds": 0.000027492, + "downloadSeconds": 0.060683507 }, { - "connectionEstablishedSeconds": 0.248194019, - "uploadSeconds": 0.000029409, - "downloadSeconds": 0.12144253 + "connectionEstablishedSeconds": 0.254584769, + "uploadSeconds": 0.000029223, + "downloadSeconds": 0.063075631 }, { - "connectionEstablishedSeconds": 0.25050954, - "uploadSeconds": 0.000049332, - "downloadSeconds": 0.061606219 + "connectionEstablishedSeconds": 0.251221668, + "uploadSeconds": 0.000019521, + "downloadSeconds": 0.061797471 }, { - "connectionEstablishedSeconds": 0.248166177, - "uploadSeconds": 0.000054135, - "downloadSeconds": 0.121390881 + "connectionEstablishedSeconds": 0.261594006, + "uploadSeconds": 0.000047526, + "downloadSeconds": 0.064500959 }, { - "connectionEstablishedSeconds": 0.251431684, - "uploadSeconds": 0.000032071, - "downloadSeconds": 0.12292473 + "connectionEstablishedSeconds": 0.255117473, + "uploadSeconds": 0.000034003, + "downloadSeconds": 0.062865607 }, { - "connectionEstablishedSeconds": 0.256428378, - "uploadSeconds": 0.000035453, - "downloadSeconds": 0.125460234 + "connectionEstablishedSeconds": 0.259363593, + "uploadSeconds": 0.000025603, + "downloadSeconds": 0.064428592 }, { - "connectionEstablishedSeconds": 0.251432484, - "uploadSeconds": 0.000038484, - "downloadSeconds": 0.061767724 + "connectionEstablishedSeconds": 0.256991666, + "uploadSeconds": 0.000038121, + "downloadSeconds": 0.126587719 }, { - "connectionEstablishedSeconds": 0.236465168, - "uploadSeconds": 0.00003008, - "downloadSeconds": 0.058646323 + "connectionEstablishedSeconds": 0.256222985, + "uploadSeconds": 0.000034028, + "downloadSeconds": 0.063668828 }, { - "connectionEstablishedSeconds": 0.2533658, - "uploadSeconds": 0.000031414, - "downloadSeconds": 0.062273044 + "connectionEstablishedSeconds": 0.246441053, + "uploadSeconds": 0.000054022, + "downloadSeconds": 0.060693367 }, { - "connectionEstablishedSeconds": 0.256265774, - "uploadSeconds": 0.000063815, - "downloadSeconds": 0.126025432 + "connectionEstablishedSeconds": 0.250188094, + "uploadSeconds": 0.000047133, + "downloadSeconds": 0.122659442 }, { - "connectionEstablishedSeconds": 0.262934696, - "uploadSeconds": 0.000056961, - "downloadSeconds": 0.12787418 + "connectionEstablishedSeconds": 0.250006049, + "uploadSeconds": 0.000029392, + "downloadSeconds": 0.061585645 }, { - "connectionEstablishedSeconds": 0.260702207, - "uploadSeconds": 0.00002991, - "downloadSeconds": 0.127715478 + "connectionEstablishedSeconds": 0.257920889, + "uploadSeconds": 0.000032591, + "downloadSeconds": 0.063517178 }, { - "connectionEstablishedSeconds": 0.2542543, - "uploadSeconds": 0.000047501, - "downloadSeconds": 0.062561124 + "connectionEstablishedSeconds": 0.250465138, + "uploadSeconds": 0.000029506, + "downloadSeconds": 0.061617335 }, { - "connectionEstablishedSeconds": 0.246747829, - "uploadSeconds": 0.0000454, - "downloadSeconds": 0.121664356 + "connectionEstablishedSeconds": 0.245868712, + "uploadSeconds": 0.000027911, + "downloadSeconds": 0.060637803 }, { - "connectionEstablishedSeconds": 0.257204534, - "uploadSeconds": 0.000056092, - "downloadSeconds": 0.063265621 + "connectionEstablishedSeconds": 0.25524009, + "uploadSeconds": 0.000035514, + "downloadSeconds": 0.125044365 }, { - "connectionEstablishedSeconds": 0.254791321, - "uploadSeconds": 0.0000539, - "downloadSeconds": 0.063171153 + "connectionEstablishedSeconds": 0.261456952, + "uploadSeconds": 0.00005156, + "downloadSeconds": 0.064948587 }, { - "connectionEstablishedSeconds": 0.249696054, - "uploadSeconds": 0.000026689, - "downloadSeconds": 0.062077654 + "connectionEstablishedSeconds": 0.238494124, + "uploadSeconds": 0.000055281, + "downloadSeconds": 0.117753391 }, { - "connectionEstablishedSeconds": 0.259142697, - "uploadSeconds": 0.000027951, - "downloadSeconds": 0.064016731 + "connectionEstablishedSeconds": 0.254645427, + "uploadSeconds": 0.000029023, + "downloadSeconds": 0.063098551 }, { - "connectionEstablishedSeconds": 0.247494446, - "uploadSeconds": 0.000032764, - "downloadSeconds": 0.060895142 + "connectionEstablishedSeconds": 0.260883166, + "uploadSeconds": 0.000030938, + "downloadSeconds": 0.06422298 }, { - "connectionEstablishedSeconds": 0.258448383, - "uploadSeconds": 0.000037325, - "downloadSeconds": 0.12651902 + "connectionEstablishedSeconds": 0.245937147, + "uploadSeconds": 0.000052181, + "downloadSeconds": 0.120588066 }, { - "connectionEstablishedSeconds": 0.240312158, - "uploadSeconds": 0.00003653, - "downloadSeconds": 0.059058432 + "connectionEstablishedSeconds": 0.246092408, + "uploadSeconds": 0.000043654, + "downloadSeconds": 0.060575934 }, { - "connectionEstablishedSeconds": 0.257068109, - "uploadSeconds": 0.000054198, - "downloadSeconds": 0.0637476 + "connectionEstablishedSeconds": 0.252276353, + "uploadSeconds": 0.000052674, + "downloadSeconds": 0.062225078 }, { - "connectionEstablishedSeconds": 0.252150823, - "uploadSeconds": 0.000049411, - "downloadSeconds": 0.061961738 + "connectionEstablishedSeconds": 0.254035258, + "uploadSeconds": 0.000029773, + "downloadSeconds": 0.063026433 }, { - "connectionEstablishedSeconds": 0.256703705, - "uploadSeconds": 0.000043236, - "downloadSeconds": 0.125576763 + "connectionEstablishedSeconds": 0.244492974, + "uploadSeconds": 0.000048903, + "downloadSeconds": 0.060129062 }, { - "connectionEstablishedSeconds": 0.254224735, - "uploadSeconds": 0.000054644, - "downloadSeconds": 0.124372668 + "connectionEstablishedSeconds": 0.248731287, + "uploadSeconds": 0.000054764, + "downloadSeconds": 0.061207054 }, { - "connectionEstablishedSeconds": 0.250801254, - "uploadSeconds": 0.0000571, - "downloadSeconds": 0.061655942 + "connectionEstablishedSeconds": 0.25220207, + "uploadSeconds": 0.00002132, + "downloadSeconds": 0.062101733 }, { - "connectionEstablishedSeconds": 0.241329876, - "uploadSeconds": 0.000030166, - "downloadSeconds": 0.118055148 + "connectionEstablishedSeconds": 0.259540618, + "uploadSeconds": 0.000029737, + "downloadSeconds": 0.06402198 }, { - "connectionEstablishedSeconds": 0.258444794, - "uploadSeconds": 0.000030955, - "downloadSeconds": 0.126566266 + "connectionEstablishedSeconds": 0.259530792, + "uploadSeconds": 0.000036374, + "downloadSeconds": 0.064350389 }, { - "connectionEstablishedSeconds": 0.256761543, - "uploadSeconds": 0.000056752, - "downloadSeconds": 0.12561952 + "connectionEstablishedSeconds": 0.256305199, + "uploadSeconds": 0.000032371, + "downloadSeconds": 0.063607602 } ], "implementation": "go-libp2p", @@ -3517,504 +3517,504 @@ { "result": [ { - "connectionEstablishedSeconds": 0.134224184, - "uploadSeconds": 0.00003929, - "downloadSeconds": 0.064172953 + "connectionEstablishedSeconds": 0.127014114, + "uploadSeconds": 0.0000599, + "downloadSeconds": 0.061673031 }, { - "connectionEstablishedSeconds": 0.13050743, - "uploadSeconds": 0.000033234, - "downloadSeconds": 0.06257745 + "connectionEstablishedSeconds": 0.131064058, + "uploadSeconds": 0.000050908, + "downloadSeconds": 0.062537019 }, { - "connectionEstablishedSeconds": 0.133420565, - "uploadSeconds": 0.00003593, - "downloadSeconds": 0.064070546 + "connectionEstablishedSeconds": 0.135060958, + "uploadSeconds": 0.000017065, + "downloadSeconds": 0.064952383 }, { - "connectionEstablishedSeconds": 0.126871561, - "uploadSeconds": 0.000035805, - "downloadSeconds": 0.061795113 + "connectionEstablishedSeconds": 0.130469846, + "uploadSeconds": 0.000049737, + "downloadSeconds": 0.063554424 }, { - "connectionEstablishedSeconds": 0.129296059, - "uploadSeconds": 0.000027585, - "downloadSeconds": 0.061930386 + "connectionEstablishedSeconds": 0.131299513, + "uploadSeconds": 0.000026493, + "downloadSeconds": 0.063977902 }, { - "connectionEstablishedSeconds": 0.126541624, - "uploadSeconds": 0.000030401, - "downloadSeconds": 0.06068271 + "connectionEstablishedSeconds": 0.130389784, + "uploadSeconds": 0.000040725, + "downloadSeconds": 0.063581044 }, { - "connectionEstablishedSeconds": 0.127633773, - "uploadSeconds": 0.00004125, - "downloadSeconds": 0.061234836 + "connectionEstablishedSeconds": 0.129796216, + "uploadSeconds": 0.000051097, + "downloadSeconds": 0.06321556 }, { - "connectionEstablishedSeconds": 0.130518101, - "uploadSeconds": 0.000050862, - "downloadSeconds": 0.062758006 + "connectionEstablishedSeconds": 0.124704159, + "uploadSeconds": 0.000049439, + "downloadSeconds": 0.059809119 }, { - "connectionEstablishedSeconds": 0.128556276, - "uploadSeconds": 0.000047331, - "downloadSeconds": 0.061830595 + "connectionEstablishedSeconds": 0.132066235, + "uploadSeconds": 0.000055003, + "downloadSeconds": 0.063481356 }, { - "connectionEstablishedSeconds": 0.133049236, - "uploadSeconds": 0.000030715, - "downloadSeconds": 0.064038846 + "connectionEstablishedSeconds": 0.131711288, + "uploadSeconds": 0.000027967, + "downloadSeconds": 0.06333515 }, { - "connectionEstablishedSeconds": 0.125639902, - "uploadSeconds": 0.000047732, - "downloadSeconds": 0.060738425 + "connectionEstablishedSeconds": 0.127610138, + "uploadSeconds": 0.000027948, + "downloadSeconds": 0.061228341 }, { - "connectionEstablishedSeconds": 0.131442751, - "uploadSeconds": 0.000022481, - "downloadSeconds": 0.063343125 + "connectionEstablishedSeconds": 0.126055326, + "uploadSeconds": 0.000021998, + "downloadSeconds": 0.06142716 }, { - "connectionEstablishedSeconds": 0.133516087, - "uploadSeconds": 0.000049445, - "downloadSeconds": 0.064225565 + "connectionEstablishedSeconds": 0.123515801, + "uploadSeconds": 0.000009845, + "downloadSeconds": 0.060132657 }, { - "connectionEstablishedSeconds": 0.127331445, - "uploadSeconds": 0.000030124, - "downloadSeconds": 0.061111611 + "connectionEstablishedSeconds": 0.124995443, + "uploadSeconds": 0.000030619, + "downloadSeconds": 0.060910578 }, { - "connectionEstablishedSeconds": 0.130305176, - "uploadSeconds": 0.000055092, - "downloadSeconds": 0.063616436 + "connectionEstablishedSeconds": 0.131803299, + "uploadSeconds": 0.00004698, + "downloadSeconds": 0.064321877 }, { - "connectionEstablishedSeconds": 0.130484307, - "uploadSeconds": 0.000038077, - "downloadSeconds": 0.063612504 + "connectionEstablishedSeconds": 0.132100006, + "uploadSeconds": 0.000031614, + "downloadSeconds": 0.064446827 }, { - "connectionEstablishedSeconds": 0.12675591, - "uploadSeconds": 0.000038685, - "downloadSeconds": 0.061681428 + "connectionEstablishedSeconds": 0.131765427, + "uploadSeconds": 0.000031545, + "downloadSeconds": 0.064305327 }, { - "connectionEstablishedSeconds": 0.128375446, - "uploadSeconds": 0.000034111, - "downloadSeconds": 0.062623468 + "connectionEstablishedSeconds": 0.131987682, + "uploadSeconds": 0.000047611, + "downloadSeconds": 0.063545341 }, { - "connectionEstablishedSeconds": 0.123072581, - "uploadSeconds": 0.000032348, - "downloadSeconds": 0.058458393 + "connectionEstablishedSeconds": 0.13084145, + "uploadSeconds": 0.000031347, + "downloadSeconds": 0.064606754 }, { - "connectionEstablishedSeconds": 0.12442569, - "uploadSeconds": 0.000029424, - "downloadSeconds": 0.059515701 + "connectionEstablishedSeconds": 0.126397034, + "uploadSeconds": 0.000055546, + "downloadSeconds": 0.060616997 }, { - "connectionEstablishedSeconds": 0.130102897, - "uploadSeconds": 0.0000285, - "downloadSeconds": 0.063459964 + "connectionEstablishedSeconds": 0.133111555, + "uploadSeconds": 0.000027453, + "downloadSeconds": 0.064002229 }, { - "connectionEstablishedSeconds": 0.128708127, - "uploadSeconds": 0.000066292, - "downloadSeconds": 0.061698705 + "connectionEstablishedSeconds": 0.130509598, + "uploadSeconds": 0.000024595, + "downloadSeconds": 0.063286999 }, { - "connectionEstablishedSeconds": 0.130869052, - "uploadSeconds": 0.000059325, - "downloadSeconds": 0.062657177 + "connectionEstablishedSeconds": 0.124489373, + "uploadSeconds": 0.000020358, + "downloadSeconds": 0.060647534 }, { - "connectionEstablishedSeconds": 0.130471707, - "uploadSeconds": 0.000031285, - "downloadSeconds": 0.063587523 + "connectionEstablishedSeconds": 0.130411284, + "uploadSeconds": 0.000032773, + "downloadSeconds": 0.063491236 }, { - "connectionEstablishedSeconds": 0.128991069, - "uploadSeconds": 0.000050006, - "downloadSeconds": 0.061878382 + "connectionEstablishedSeconds": 0.128244464, + "uploadSeconds": 0.000031167, + "downloadSeconds": 0.061581905 }, { - "connectionEstablishedSeconds": 0.125196458, - "uploadSeconds": 0.000056241, - "downloadSeconds": 0.059881894 + "connectionEstablishedSeconds": 0.134535364, + "uploadSeconds": 0.0000261, + "downloadSeconds": 0.064805122 }, { - "connectionEstablishedSeconds": 0.132304969, - "uploadSeconds": 0.000052072, - "downloadSeconds": 0.063464154 + "connectionEstablishedSeconds": 0.13128741, + "uploadSeconds": 0.000050089, + "downloadSeconds": 0.063958387 }, { - "connectionEstablishedSeconds": 0.127777844, - "uploadSeconds": 0.000050365, - "downloadSeconds": 0.061143304 + "connectionEstablishedSeconds": 0.131984212, + "uploadSeconds": 0.000048742, + "downloadSeconds": 0.063452836 }, { - "connectionEstablishedSeconds": 0.131174511, - "uploadSeconds": 0.000055867, - "downloadSeconds": 0.063550392 + "connectionEstablishedSeconds": 0.130849195, + "uploadSeconds": 0.000027516, + "downloadSeconds": 0.062873869 }, { - "connectionEstablishedSeconds": 0.134078949, - "uploadSeconds": 0.000049654, - "downloadSeconds": 0.064394644 + "connectionEstablishedSeconds": 0.132367723, + "uploadSeconds": 0.000028605, + "downloadSeconds": 0.063657122 }, { - "connectionEstablishedSeconds": 0.132494099, - "uploadSeconds": 0.000061081, - "downloadSeconds": 0.063457695 + "connectionEstablishedSeconds": 0.131658661, + "uploadSeconds": 0.000033672, + "downloadSeconds": 0.064163204 }, { - "connectionEstablishedSeconds": 0.131523147, - "uploadSeconds": 0.000051302, - "downloadSeconds": 0.063014602 + "connectionEstablishedSeconds": 0.12824671, + "uploadSeconds": 0.000054562, + "downloadSeconds": 0.061647757 }, { - "connectionEstablishedSeconds": 0.130777914, - "uploadSeconds": 0.000046878, - "downloadSeconds": 0.063788593 + "connectionEstablishedSeconds": 0.126312532, + "uploadSeconds": 0.000048885, + "downloadSeconds": 0.0607011 }, { - "connectionEstablishedSeconds": 0.135368846, - "uploadSeconds": 0.000053288, - "downloadSeconds": 0.065038924 + "connectionEstablishedSeconds": 0.131843825, + "uploadSeconds": 0.000051974, + "downloadSeconds": 0.063365075 }, { - "connectionEstablishedSeconds": 0.123134592, - "uploadSeconds": 0.000035466, - "downloadSeconds": 0.058830233 + "connectionEstablishedSeconds": 0.134680989, + "uploadSeconds": 0.00005269, + "downloadSeconds": 0.064523439 }, { - "connectionEstablishedSeconds": 0.132775551, - "uploadSeconds": 0.000046401, - "downloadSeconds": 0.063618925 + "connectionEstablishedSeconds": 0.131149962, + "uploadSeconds": 0.00002484, + "downloadSeconds": 0.063040136 }, { - "connectionEstablishedSeconds": 0.119880923, - "uploadSeconds": 0.000047932, - "downloadSeconds": 0.058430898 + "connectionEstablishedSeconds": 0.131163906, + "uploadSeconds": 0.00002525, + "downloadSeconds": 0.062826936 }, { - "connectionEstablishedSeconds": 0.133127108, - "uploadSeconds": 0.000056093, - "downloadSeconds": 0.064921538 + "connectionEstablishedSeconds": 0.131417191, + "uploadSeconds": 0.000033475, + "downloadSeconds": 0.063211569 }, { - "connectionEstablishedSeconds": 0.135100822, - "uploadSeconds": 0.000051466, - "downloadSeconds": 0.064822855 + "connectionEstablishedSeconds": 0.129321818, + "uploadSeconds": 0.000021761, + "downloadSeconds": 0.062047175 }, { - "connectionEstablishedSeconds": 0.133608492, - "uploadSeconds": 0.00005241, - "downloadSeconds": 0.064130045 + "connectionEstablishedSeconds": 0.133113708, + "uploadSeconds": 0.000042621, + "downloadSeconds": 0.064113658 }, { - "connectionEstablishedSeconds": 0.133422729, - "uploadSeconds": 0.000030801, - "downloadSeconds": 0.063743542 + "connectionEstablishedSeconds": 0.13301228, + "uploadSeconds": 0.000047067, + "downloadSeconds": 0.063916395 }, { - "connectionEstablishedSeconds": 0.129946042, - "uploadSeconds": 0.000053686, - "downloadSeconds": 0.062668107 + "connectionEstablishedSeconds": 0.12935223, + "uploadSeconds": 0.000055131, + "downloadSeconds": 0.06210632 }, { - "connectionEstablishedSeconds": 0.131982773, - "uploadSeconds": 0.000035312, - "downloadSeconds": 0.063342901 + "connectionEstablishedSeconds": 0.127551422, + "uploadSeconds": 0.000028851, + "downloadSeconds": 0.062295024 }, { - "connectionEstablishedSeconds": 0.132866172, - "uploadSeconds": 0.000047985, - "downloadSeconds": 0.063722535 + "connectionEstablishedSeconds": 0.126331834, + "uploadSeconds": 0.000045101, + "downloadSeconds": 0.061509655 }, { - "connectionEstablishedSeconds": 0.133501944, - "uploadSeconds": 0.000056226, - "downloadSeconds": 0.064022563 + "connectionEstablishedSeconds": 0.131532682, + "uploadSeconds": 0.000052301, + "downloadSeconds": 0.062588573 }, { - "connectionEstablishedSeconds": 0.132495546, - "uploadSeconds": 0.000033023, - "downloadSeconds": 0.063559919 + "connectionEstablishedSeconds": 0.127919054, + "uploadSeconds": 0.000026387, + "downloadSeconds": 0.062280304 }, { - "connectionEstablishedSeconds": 0.125002072, - "uploadSeconds": 0.000036955, - "downloadSeconds": 0.061121845 + "connectionEstablishedSeconds": 0.129176435, + "uploadSeconds": 0.000052084, + "downloadSeconds": 0.062872466 }, { - "connectionEstablishedSeconds": 0.130358324, - "uploadSeconds": 0.000036967, - "downloadSeconds": 0.063531756 + "connectionEstablishedSeconds": 0.128833594, + "uploadSeconds": 0.000031408, + "downloadSeconds": 0.06280984 }, { - "connectionEstablishedSeconds": 0.12759991, - "uploadSeconds": 0.000035958, - "downloadSeconds": 0.061163195 + "connectionEstablishedSeconds": 0.131885794, + "uploadSeconds": 0.000048593, + "downloadSeconds": 0.063311591 }, { - "connectionEstablishedSeconds": 0.131901337, - "uploadSeconds": 0.000059658, - "downloadSeconds": 0.063329874 + "connectionEstablishedSeconds": 0.127375808, + "uploadSeconds": 0.000049019, + "downloadSeconds": 0.061146478 }, { - "connectionEstablishedSeconds": 0.131886274, - "uploadSeconds": 0.000054095, - "downloadSeconds": 0.064197116 + "connectionEstablishedSeconds": 0.12153029, + "uploadSeconds": 0.0000186, + "downloadSeconds": 0.059066564 }, { - "connectionEstablishedSeconds": 0.13406387, - "uploadSeconds": 0.000034637, - "downloadSeconds": 0.064374704 + "connectionEstablishedSeconds": 0.126343007, + "uploadSeconds": 0.000023853, + "downloadSeconds": 0.061518531 }, { - "connectionEstablishedSeconds": 0.128627705, - "uploadSeconds": 0.000035012, - "downloadSeconds": 0.062721167 + "connectionEstablishedSeconds": 0.130463081, + "uploadSeconds": 0.000024353, + "downloadSeconds": 0.062718483 }, { - "connectionEstablishedSeconds": 0.13355983, - "uploadSeconds": 0.00002951, - "downloadSeconds": 0.06400737 + "connectionEstablishedSeconds": 0.130155148, + "uploadSeconds": 0.00003375, + "downloadSeconds": 0.062584006 }, { - "connectionEstablishedSeconds": 0.12713177, - "uploadSeconds": 0.000035821, - "downloadSeconds": 0.060845695 + "connectionEstablishedSeconds": 0.127377421, + "uploadSeconds": 0.000050033, + "downloadSeconds": 0.061144804 }, { - "connectionEstablishedSeconds": 0.127842958, - "uploadSeconds": 0.000060011, - "downloadSeconds": 0.061181136 + "connectionEstablishedSeconds": 0.132263716, + "uploadSeconds": 0.000053572, + "downloadSeconds": 0.064441815 }, { - "connectionEstablishedSeconds": 0.12656173, - "uploadSeconds": 0.000037278, - "downloadSeconds": 0.061673467 + "connectionEstablishedSeconds": 0.130906676, + "uploadSeconds": 0.000050526, + "downloadSeconds": 0.062900437 }, { - "connectionEstablishedSeconds": 0.132311301, - "uploadSeconds": 0.000058896, - "downloadSeconds": 0.063449834 + "connectionEstablishedSeconds": 0.132053669, + "uploadSeconds": 0.000020333, + "downloadSeconds": 0.063625907 }, { - "connectionEstablishedSeconds": 0.133545969, - "uploadSeconds": 0.000046466, - "downloadSeconds": 0.064096002 + "connectionEstablishedSeconds": 0.126343969, + "uploadSeconds": 0.000048602, + "downloadSeconds": 0.061562747 }, { - "connectionEstablishedSeconds": 0.128829574, - "uploadSeconds": 0.000049012, - "downloadSeconds": 0.062076091 + "connectionEstablishedSeconds": 0.13059195, + "uploadSeconds": 0.000038032, + "downloadSeconds": 0.06359932 }, { - "connectionEstablishedSeconds": 0.131448133, - "uploadSeconds": 0.000022286, - "downloadSeconds": 0.06336117 + "connectionEstablishedSeconds": 0.125306765, + "uploadSeconds": 0.000025331, + "downloadSeconds": 0.06024974 }, { - "connectionEstablishedSeconds": 0.129443632, - "uploadSeconds": 0.000056209, - "downloadSeconds": 0.062180284 + "connectionEstablishedSeconds": 0.131732246, + "uploadSeconds": 0.000054432, + "downloadSeconds": 0.063232591 }, { - "connectionEstablishedSeconds": 0.12710126, - "uploadSeconds": 0.000033212, - "downloadSeconds": 0.061873802 + "connectionEstablishedSeconds": 0.135945769, + "uploadSeconds": 0.000030859, + "downloadSeconds": 0.064563121 }, { - "connectionEstablishedSeconds": 0.132666678, - "uploadSeconds": 0.000017503, - "downloadSeconds": 0.063665547 + "connectionEstablishedSeconds": 0.130211557, + "uploadSeconds": 0.000045455, + "downloadSeconds": 0.063471773 }, { - "connectionEstablishedSeconds": 0.12702185, - "uploadSeconds": 0.000029085, - "downloadSeconds": 0.060797793 + "connectionEstablishedSeconds": 0.131806838, + "uploadSeconds": 0.00004764, + "downloadSeconds": 0.063356395 }, { - "connectionEstablishedSeconds": 0.126592433, - "uploadSeconds": 0.000032669, - "downloadSeconds": 0.060591474 + "connectionEstablishedSeconds": 0.126735568, + "uploadSeconds": 0.000050096, + "downloadSeconds": 0.060697868 }, { - "connectionEstablishedSeconds": 0.133810155, - "uploadSeconds": 0.000058363, - "downloadSeconds": 0.064123074 + "connectionEstablishedSeconds": 0.131880335, + "uploadSeconds": 0.000049507, + "downloadSeconds": 0.064224812 }, { - "connectionEstablishedSeconds": 0.127770397, - "uploadSeconds": 0.000034984, - "downloadSeconds": 0.061166624 + "connectionEstablishedSeconds": 0.128441843, + "uploadSeconds": 0.000047943, + "downloadSeconds": 0.06163169 }, { - "connectionEstablishedSeconds": 0.127923376, - "uploadSeconds": 0.000049608, - "downloadSeconds": 0.062294327 + "connectionEstablishedSeconds": 0.132509961, + "uploadSeconds": 0.000028055, + "downloadSeconds": 0.06452755 }, { - "connectionEstablishedSeconds": 0.130198247, - "uploadSeconds": 0.000057625, - "downloadSeconds": 0.062466531 + "connectionEstablishedSeconds": 0.125300073, + "uploadSeconds": 0.000028357, + "downloadSeconds": 0.060982066 }, { - "connectionEstablishedSeconds": 0.121655797, - "uploadSeconds": 0.000060271, - "downloadSeconds": 0.059115247 + "connectionEstablishedSeconds": 0.128716768, + "uploadSeconds": 0.00004992, + "downloadSeconds": 0.061736618 }, { - "connectionEstablishedSeconds": 0.128051974, - "uploadSeconds": 0.000026237, - "downloadSeconds": 0.06123807 + "connectionEstablishedSeconds": 0.129722375, + "uploadSeconds": 0.000027386, + "downloadSeconds": 0.063147505 }, { - "connectionEstablishedSeconds": 0.130745102, - "uploadSeconds": 0.000070401, - "downloadSeconds": 0.062675744 + "connectionEstablishedSeconds": 0.132837561, + "uploadSeconds": 0.000049241, + "downloadSeconds": 0.063550104 }, { - "connectionEstablishedSeconds": 0.124027635, - "uploadSeconds": 0.000048983, - "downloadSeconds": 0.059388268 + "connectionEstablishedSeconds": 0.133588995, + "uploadSeconds": 0.00003146, + "downloadSeconds": 0.065113178 }, { - "connectionEstablishedSeconds": 0.12918062, - "uploadSeconds": 0.000051018, - "downloadSeconds": 0.062686453 + "connectionEstablishedSeconds": 0.125069476, + "uploadSeconds": 0.000043879, + "downloadSeconds": 0.060026593 }, { - "connectionEstablishedSeconds": 0.131975464, - "uploadSeconds": 0.000071127, - "downloadSeconds": 0.063246978 + "connectionEstablishedSeconds": 0.128337827, + "uploadSeconds": 0.000030024, + "downloadSeconds": 0.062603579 }, { - "connectionEstablishedSeconds": 0.132715494, - "uploadSeconds": 0.000028712, - "downloadSeconds": 0.063708049 + "connectionEstablishedSeconds": 0.129434388, + "uploadSeconds": 0.00002842, + "downloadSeconds": 0.062977058 }, { - "connectionEstablishedSeconds": 0.129787806, - "uploadSeconds": 0.000046083, - "downloadSeconds": 0.062132216 + "connectionEstablishedSeconds": 0.131637561, + "uploadSeconds": 0.000052806, + "downloadSeconds": 0.064200689 }, { - "connectionEstablishedSeconds": 0.129494969, - "uploadSeconds": 0.00005722, - "downloadSeconds": 0.06210649 + "connectionEstablishedSeconds": 0.128330334, + "uploadSeconds": 0.000027132, + "downloadSeconds": 0.061569876 }, { - "connectionEstablishedSeconds": 0.129482041, - "uploadSeconds": 0.000066519, - "downloadSeconds": 0.062735254 + "connectionEstablishedSeconds": 0.130216018, + "uploadSeconds": 0.000029266, + "downloadSeconds": 0.063386904 }, { - "connectionEstablishedSeconds": 0.129608133, - "uploadSeconds": 0.000033545, - "downloadSeconds": 0.062285586 + "connectionEstablishedSeconds": 0.127663856, + "uploadSeconds": 0.000025337, + "downloadSeconds": 0.062249422 }, { - "connectionEstablishedSeconds": 0.132186822, - "uploadSeconds": 0.000059521, - "downloadSeconds": 0.063327314 + "connectionEstablishedSeconds": 0.130767875, + "uploadSeconds": 0.000048326, + "downloadSeconds": 0.062960272 }, { - "connectionEstablishedSeconds": 0.124038949, - "uploadSeconds": 0.000053674, - "downloadSeconds": 0.059442535 + "connectionEstablishedSeconds": 0.13139533, + "uploadSeconds": 0.000045884, + "downloadSeconds": 0.063091639 }, { - "connectionEstablishedSeconds": 0.127967746, - "uploadSeconds": 0.000048651, - "downloadSeconds": 0.061859962 + "connectionEstablishedSeconds": 0.132284539, + "uploadSeconds": 0.000046307, + "downloadSeconds": 0.064433543 }, { - "connectionEstablishedSeconds": 0.125237348, - "uploadSeconds": 0.000030156, - "downloadSeconds": 0.061025882 + "connectionEstablishedSeconds": 0.128954497, + "uploadSeconds": 0.000046395, + "downloadSeconds": 0.061946524 }, { - "connectionEstablishedSeconds": 0.127170783, - "uploadSeconds": 0.000029284, - "downloadSeconds": 0.060979754 + "connectionEstablishedSeconds": 0.13195501, + "uploadSeconds": 0.000028593, + "downloadSeconds": 0.064321822 }, { - "connectionEstablishedSeconds": 0.127096476, - "uploadSeconds": 0.000033483, - "downloadSeconds": 0.061771748 + "connectionEstablishedSeconds": 0.129169046, + "uploadSeconds": 0.000051974, + "downloadSeconds": 0.062097421 }, { - "connectionEstablishedSeconds": 0.129432665, - "uploadSeconds": 0.00002477, - "downloadSeconds": 0.063025942 + "connectionEstablishedSeconds": 0.131516378, + "uploadSeconds": 0.000018617, + "downloadSeconds": 0.064170442 }, { - "connectionEstablishedSeconds": 0.128634491, - "uploadSeconds": 0.000039642, - "downloadSeconds": 0.062656228 + "connectionEstablishedSeconds": 0.126709992, + "uploadSeconds": 0.000047803, + "downloadSeconds": 0.061721005 }, { - "connectionEstablishedSeconds": 0.127825999, - "uploadSeconds": 0.00002997, - "downloadSeconds": 0.06120179 + "connectionEstablishedSeconds": 0.134914003, + "uploadSeconds": 0.000027086, + "downloadSeconds": 0.064980719 }, { - "connectionEstablishedSeconds": 0.13097903, - "uploadSeconds": 0.000028754, - "downloadSeconds": 0.062822509 + "connectionEstablishedSeconds": 0.130706472, + "uploadSeconds": 0.000028876, + "downloadSeconds": 0.062787784 }, { - "connectionEstablishedSeconds": 0.131206176, - "uploadSeconds": 0.000033096, - "downloadSeconds": 0.062630138 + "connectionEstablishedSeconds": 0.132152472, + "uploadSeconds": 0.000058598, + "downloadSeconds": 0.063518087 }, { - "connectionEstablishedSeconds": 0.128890985, - "uploadSeconds": 0.000056209, - "downloadSeconds": 0.06179308 + "connectionEstablishedSeconds": 0.132736855, + "uploadSeconds": 0.000040063, + "downloadSeconds": 0.06371304 }, { - "connectionEstablishedSeconds": 0.128788414, - "uploadSeconds": 0.000060265, - "downloadSeconds": 0.061543991 + "connectionEstablishedSeconds": 0.125053099, + "uploadSeconds": 0.000049355, + "downloadSeconds": 0.060821904 }, { - "connectionEstablishedSeconds": 0.129813621, - "uploadSeconds": 0.00005445, - "downloadSeconds": 0.063264928 + "connectionEstablishedSeconds": 0.130546318, + "uploadSeconds": 0.000049924, + "downloadSeconds": 0.062680299 }, { - "connectionEstablishedSeconds": 0.132773119, - "uploadSeconds": 0.000059918, - "downloadSeconds": 0.063684971 + "connectionEstablishedSeconds": 0.119719828, + "uploadSeconds": 0.0000306, + "downloadSeconds": 0.058134544 }, { - "connectionEstablishedSeconds": 0.13095356, - "uploadSeconds": 0.000029186, - "downloadSeconds": 0.062635078 + "connectionEstablishedSeconds": 0.126296963, + "uploadSeconds": 0.000025112, + "downloadSeconds": 0.060554586 }, { - "connectionEstablishedSeconds": 0.12755183, - "uploadSeconds": 0.000035829, - "downloadSeconds": 0.062184685 + "connectionEstablishedSeconds": 0.128162133, + "uploadSeconds": 0.000048249, + "downloadSeconds": 0.061574806 }, { - "connectionEstablishedSeconds": 0.128512692, - "uploadSeconds": 0.000033311, - "downloadSeconds": 0.062553737 + "connectionEstablishedSeconds": 0.13229105, + "uploadSeconds": 0.00005374, + "downloadSeconds": 0.063552066 }, { - "connectionEstablishedSeconds": 0.130148545, - "uploadSeconds": 0.000043772, - "downloadSeconds": 0.063324922 + "connectionEstablishedSeconds": 0.129765991, + "uploadSeconds": 0.000046291, + "downloadSeconds": 0.063203821 } ], "implementation": "go-libp2p", @@ -4031,173 +4031,173 @@ "pings": { "unit": "s", "results": [ - 0.0616, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, 0.0615, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, 0.0615, + 0.061399999999999996, + 0.0616, 0.0615, + 0.061399999999999996, + 0.061799999999999994, 0.0615, + 0.061399999999999996, 0.0615, + 0.061399999999999996, + 0.061399999999999996, + 0.0616, + 0.061399999999999996, + 0.061399999999999996, + 0.0616, + 0.061399999999999996, 0.0615, + 0.062, + 0.061399999999999996, + 0.0625, + 0.061399999999999996, + 0.061399999999999996, + 0.0616, + 0.061799999999999994, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.062200000000000005, + 0.061399999999999996, 0.0615, + 0.0627, + 0.062200000000000005, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, 0.0615, + 0.061399999999999996, 0.0615, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.0619, + 0.061399999999999996, + 0.061399999999999996, 0.0615, + 0.061399999999999996, 0.0615, + 0.061799999999999994, 0.0615, + 0.061399999999999996, + 0.062299999999999994, + 0.061399999999999996, 0.061700000000000005, + 0.061399999999999996, + 0.062, + 0.0616, + 0.061399999999999996, + 0.061399999999999996, 0.0615, + 0.061399999999999996, + 0.0616, 0.0615, + 0.061399999999999996, + 0.0616, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.0615, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061, - 0.061 + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996, + 0.061399999999999996 ] }, "iperf": { "unit": "bit/s", "results": [ - 3210000000, - 3220000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3190000000, - 3170000000, - 3160000000, - 3160000000, - 3160000000, - 3190000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3210000000, - 3220000000, - 3220000000, - 3220000000, - 3220000000, - 3220000000, - 3220000000, - 3220000000, - 3220000000, - 3210000000, - 3210000000, - 3220000000, - 3220000000, - 3220000000, - 3220000000, - 3210000000, - 3020000000 + 3330000000, + 3340000000, + 3330000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3330000000, + 3330000000, + 3330000000, + 3330000000, + 3330000000, + 3330000000, + 3340000000, + 3330000000, + 3340000000, + 3340000000, + 3330000000, + 3330000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3340000000, + 3300000000, + 3290000000, + 3280000000, + 3280000000, + 3280000000, + 3320000000, + 3290000000, + 3350000000, + 3350000000, + 3350000000, + 3350000000, + 3350000000, + 3350000000, + 3350000000, + 3350000000, + 3350000000, + 3350000000, + 3350000000, + 3350000000, + 3350000000, + 3330000000, + 2830000000 ] } } \ No newline at end of file From 900de9a1b862ebd46f2f785dc8c5b1c1bc13cbe3 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Wed, 21 Jun 2023 12:51:16 +0900 Subject: [PATCH 137/143] fix(https): handle large io.Reader p buffer --- perf/impl/https/v0.1/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/impl/https/v0.1/main.go b/perf/impl/https/v0.1/main.go index 8a00226a3..24ed4befb 100644 --- a/perf/impl/https/v0.1/main.go +++ b/perf/impl/https/v0.1/main.go @@ -74,7 +74,7 @@ func (c *customReader) Read(p []byte) (int, error) { c.position += 8 return 8, nil } else if c.position-8 < c.uploadBytes { - bytesToWrite := min(len(p), int(c.uploadBytes-(c.position-8))) + bytesToWrite := min(min(len(p), int(c.uploadBytes-(c.position-8))), len(zeroSlice)) copy(p[:bytesToWrite], zeroSlice[:bytesToWrite]) // zero the slice c.position += uint64(bytesToWrite) return bytesToWrite, nil From 0305a00f2e46072eb8d55c207653be3107a1248a Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Wed, 21 Jun 2023 19:52:21 +0200 Subject: [PATCH 138/143] perf/go-libp2p: minor simplifications --- perf/impl/go-libp2p/v0.27/perf.go | 80 ++++++++++++++----------------- 1 file changed, 36 insertions(+), 44 deletions(-) diff --git a/perf/impl/go-libp2p/v0.27/perf.go b/perf/impl/go-libp2p/v0.27/perf.go index c748dda4a..33d89835d 100644 --- a/perf/impl/go-libp2p/v0.27/perf.go +++ b/perf/impl/go-libp2p/v0.27/perf.go @@ -17,9 +17,8 @@ import ( var log = logging.Logger("perf") const ( - BlockSize = 64 << 10 - - ID = "/perf/1.0.0" + ID = "/perf/1.0.0" + blockSize = 64 << 10 ) type PerfService struct { @@ -32,10 +31,9 @@ func NewPerfService(h host.Host) *PerfService { return ps } -func (p *PerfService) PerfHandler(s network.Stream) { +func (ps *PerfService) PerfHandler(s network.Stream) { u64Buf := make([]byte, 8) - _, err := io.ReadFull(s, u64Buf) - if err != nil { + if _, err := io.ReadFull(s, u64Buf); err != nil { log.Errorw("err", err) s.Reset() return @@ -43,51 +41,18 @@ func (p *PerfService) PerfHandler(s network.Stream) { bytesToSend := binary.BigEndian.Uint64(u64Buf) - _, err = p.drainStream(context.Background(), s) - if err != nil { + if _, err := drainStream(s); err != nil { log.Errorw("err", err) s.Reset() return } - err = p.sendBytes(context.Background(), s, bytesToSend) - if err != nil { + if err := sendBytes(s, bytesToSend); err != nil { log.Errorw("err", err) s.Reset() return } - -} - -func (ps *PerfService) sendBytes(ctx context.Context, s network.Stream, bytesToSend uint64) error { - buf := pool.Get(BlockSize) - defer pool.Put(buf) - - for bytesToSend > 0 { - toSend := buf - if bytesToSend < BlockSize { - toSend = buf[:bytesToSend] - } - - n, err := s.Write(toSend) - if err != nil { - return err - } - bytesToSend -= uint64(n) - } s.CloseWrite() - - return nil -} - -func (ps *PerfService) drainStream(ctx context.Context, s network.Stream) (uint64, error) { - var recvd int64 - recvd, err := io.Copy(io.Discard, s) - if err != nil && err != io.EOF { - s.Reset() - return uint64(recvd), err - } - return uint64(recvd), nil } func (ps *PerfService) RunPerf(ctx context.Context, p peer.ID, bytesToSend uint64, bytesToRecv uint64) (time.Duration, time.Duration, error) { @@ -105,14 +70,13 @@ func (ps *PerfService) RunPerf(ctx context.Context, p peer.ID, bytesToSend uint6 } sendStart := time.Now() - err = ps.sendBytes(ctx, s, bytesToSend) - if err != nil { + if err := sendBytes(s, bytesToSend); err != nil { return 0, 0, err } sendDuration := time.Since(sendStart) recvStart := time.Now() - recvd, err := ps.drainStream(ctx, s) + recvd, err := drainStream(s) if err != nil { return sendDuration, 0, err } @@ -124,3 +88,31 @@ func (ps *PerfService) RunPerf(ctx context.Context, p peer.ID, bytesToSend uint6 return sendDuration, recvDuration, nil } + +func sendBytes(s io.Writer, bytesToSend uint64) error { + buf := pool.Get(blockSize) + defer pool.Put(buf) + + for bytesToSend > 0 { + toSend := buf + if bytesToSend < blockSize { + toSend = buf[:bytesToSend] + } + + n, err := s.Write(toSend) + if err != nil { + return err + } + bytesToSend -= uint64(n) + } + return nil +} + +func drainStream(s io.Reader) (uint64, error) { + var recvd int64 + recvd, err := io.Copy(io.Discard, s) + if err != nil && err != io.EOF { + return uint64(recvd), err + } + return uint64(recvd), nil +} From 92c9d078a39eea88cf6658e795dc7c3f25abaa37 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Wed, 21 Jun 2023 21:02:46 +0200 Subject: [PATCH 139/143] perf/https: simplifications --- perf/impl/https/v0.1/main.go | 133 +++++++++++++++++++---------------- 1 file changed, 72 insertions(+), 61 deletions(-) diff --git a/perf/impl/https/v0.1/main.go b/perf/impl/https/v0.1/main.go index 24ed4befb..30373b75a 100644 --- a/perf/impl/https/v0.1/main.go +++ b/perf/impl/https/v0.1/main.go @@ -1,6 +1,7 @@ package main import ( + "bytes" "crypto/ecdsa" "crypto/elliptic" "crypto/rand" @@ -21,88 +22,71 @@ import ( "time" ) -const ( - BlockSize = 64 << 10 -) +const blockSize = 64 << 10 func handleRequest(w http.ResponseWriter, r *http.Request) { - // Read the big-endian bytesToSend value - var bytesToSend uint64 - if err := binary.Read(r.Body, binary.BigEndian, &bytesToSend); err != nil { - http.Error(w, "failed to read uint64 value", http.StatusBadRequest) + u64Buf := make([]byte, 8) + if _, err := io.ReadFull(r.Body, u64Buf); err != nil { + log.Printf("reading upload size failed: %s", err) + w.WriteHeader(http.StatusBadRequest) return } - // Read and discard the remaining bytes in the request - io.Copy(io.Discard, r.Body) - - // Set content type and length headers - w.Header().Set("Content-Type", "application/octet-stream") - w.Header().Set("Content-Length", strconv.FormatUint(bytesToSend, 10)) - - // Write the status code explicitly - w.WriteHeader(http.StatusOK) + bytesToSend := binary.BigEndian.Uint64(u64Buf) - buf := make([]byte, BlockSize) + if _, err := drainStream(r.Body); err != nil { + log.Printf("draining stream failed: %s", err) + w.WriteHeader(http.StatusBadRequest) + return + } - for bytesToSend > 0 { - toSend := buf - if bytesToSend < BlockSize { - toSend = buf[:bytesToSend] - } + r.Header.Set("Content-Type", "application/octet-stream") + r.Header.Set("Content-Length", strconv.FormatUint(bytesToSend, 10)) - n, err := w.Write(toSend) - if err != nil { - http.Error(w, "Failed write", http.StatusInternalServerError) - return - } - bytesToSend -= uint64(n) + if err := sendBytes(w, bytesToSend); err != nil { + log.Printf("sending response failed: %s", err) + return } } -var zeroSlice = make([]byte, BlockSize) // Pre-made zero-filled slice - -type customReader struct { - downloadBytes uint64 - uploadBytes uint64 - position uint64 +type nullReader struct { + N uint64 + read uint64 } -func (c *customReader) Read(p []byte) (int, error) { - if c.position < 8 { - binary.BigEndian.PutUint64(p, c.downloadBytes) - c.position += 8 - return 8, nil - } else if c.position-8 < c.uploadBytes { - bytesToWrite := min(min(len(p), int(c.uploadBytes-(c.position-8))), len(zeroSlice)) - copy(p[:bytesToWrite], zeroSlice[:bytesToWrite]) // zero the slice - c.position += uint64(bytesToWrite) - return bytesToWrite, nil - } - - return 0, io.EOF -} +var _ io.Reader = &nullReader{} -// Helper function to get minimum of two integers -func min(a, b int) int { - if a < b { - return a +func (r *nullReader) Read(b []byte) (int, error) { + remaining := r.N - r.read + l := uint64(len(b)) + if uint64(len(b)) > remaining { + l = remaining } - return b + r.read += l + if r.read == r.N { + return int(l), io.EOF + } + return int(l), nil } func runClient(serverAddr string, uploadBytes, downloadBytes uint64) (time.Duration, time.Duration, error) { client := &http.Client{ Transport: &http.Transport{ - TLSClientConfig: &tls.Config{ - InsecureSkipVerify: true, - }, + TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, }, } - reqBody := &customReader{downloadBytes: downloadBytes, uploadBytes: uploadBytes} - - req, err := http.NewRequest("POST", fmt.Sprintf("https://%s/", serverAddr), reqBody) + b := make([]byte, 8) + binary.BigEndian.PutUint64(b, uploadBytes) + + req, err := http.NewRequest( + http.MethodPost, + fmt.Sprintf("https://%s/", serverAddr), + io.MultiReader( + bytes.NewReader(b), + &nullReader{N: uploadBytes}, + ), + ) if err != nil { return 0, 0, err } @@ -121,11 +105,11 @@ func runClient(serverAddr string, uploadBytes, downloadBytes uint64) (time.Durat uploadDoneTime := time.Now() defer resp.Body.Close() - n, err := io.Copy(io.Discard, resp.Body) + n, err := drainStream(resp.Body) if err != nil { return 0, 0, fmt.Errorf("error reading response: %w", err) } - if n != int64(downloadBytes) { + if n != downloadBytes { return 0, 0, fmt.Errorf("expected %d bytes in response, but received %d", downloadBytes, n) } @@ -250,3 +234,30 @@ func main() { fmt.Println(string(jsonB)) } } + +func sendBytes(s io.Writer, bytesToSend uint64) error { + buf := make([]byte, blockSize) + + for bytesToSend > 0 { + toSend := buf + if bytesToSend < blockSize { + toSend = buf[:bytesToSend] + } + + n, err := s.Write(toSend) + if err != nil { + return err + } + bytesToSend -= uint64(n) + } + return nil +} + +func drainStream(s io.Reader) (uint64, error) { + var recvd int64 + recvd, err := io.Copy(io.Discard, s) + if err != nil && err != io.EOF { + return uint64(recvd), err + } + return uint64(recvd), nil +} From 2296d8c1c8501bebe7a0f5f56379d6374245ebc6 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 22 Jun 2023 11:52:05 +0900 Subject: [PATCH 140/143] fix(https): use multireader and add quickcheck tests - Combine bytes.NewReader and zeroReader via io.MultiReader. - Add test for `len(p) == 0`. - Add quickcheck test for `NewRequestReader`. --- perf/impl/https/v0.1/main.go | 55 ++++++++++++++++------------- perf/impl/https/v0.1/main_test.go | 57 +++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+), 23 deletions(-) create mode 100644 perf/impl/https/v0.1/main_test.go diff --git a/perf/impl/https/v0.1/main.go b/perf/impl/https/v0.1/main.go index 24ed4befb..368d04419 100644 --- a/perf/impl/https/v0.1/main.go +++ b/perf/impl/https/v0.1/main.go @@ -1,6 +1,7 @@ package main import ( + "bytes" "crypto/ecdsa" "crypto/elliptic" "crypto/rand" @@ -60,35 +61,43 @@ func handleRequest(w http.ResponseWriter, r *http.Request) { } } -var zeroSlice = make([]byte, BlockSize) // Pre-made zero-filled slice +func newRequestReader(downloadBytes uint64, uploadBytes uint64) io.Reader { + p := make([]byte, 8) + binary.BigEndian.PutUint64(p, downloadBytes) -type customReader struct { - downloadBytes uint64 - uploadBytes uint64 - position uint64 + return io.MultiReader(bytes.NewReader(p), &zeroReader{n: int(uploadBytes)}) } -func (c *customReader) Read(p []byte) (int, error) { - if c.position < 8 { - binary.BigEndian.PutUint64(p, c.downloadBytes) - c.position += 8 - return 8, nil - } else if c.position-8 < c.uploadBytes { - bytesToWrite := min(min(len(p), int(c.uploadBytes-(c.position-8))), len(zeroSlice)) - copy(p[:bytesToWrite], zeroSlice[:bytesToWrite]) // zero the slice - c.position += uint64(bytesToWrite) - return bytesToWrite, nil - } +var zeroSlice = make([]byte, BlockSize) - return 0, io.EOF +type zeroReader struct { + n int } -// Helper function to get minimum of two integers -func min(a, b int) int { - if a < b { - return a +func (z *zeroReader) Read(p []byte) (n int, err error) { + if z.n <= 0 { + return 0, io.EOF + } + + // calculate the number of zeros to write + n = len(p) + if n > z.n { + n = int(z.n) } - return b + if n > len(zeroSlice) { + n = len(zeroSlice) + } + + // set the necessary bytes to zero + copy(p, zeroSlice[:n]) + + z.n -= n + + if z.n == 0 { + err = io.EOF + } + + return n, err } func runClient(serverAddr string, uploadBytes, downloadBytes uint64) (time.Duration, time.Duration, error) { @@ -100,7 +109,7 @@ func runClient(serverAddr string, uploadBytes, downloadBytes uint64) (time.Durat }, } - reqBody := &customReader{downloadBytes: downloadBytes, uploadBytes: uploadBytes} + reqBody := newRequestReader(downloadBytes, uploadBytes) req, err := http.NewRequest("POST", fmt.Sprintf("https://%s/", serverAddr), reqBody) if err != nil { diff --git a/perf/impl/https/v0.1/main_test.go b/perf/impl/https/v0.1/main_test.go new file mode 100644 index 000000000..d284282df --- /dev/null +++ b/perf/impl/https/v0.1/main_test.go @@ -0,0 +1,57 @@ +package main + +import ( + "encoding/binary" + "io/ioutil" + "testing" + "testing/quick" +) + +func TestNewRequestReaderSmallP(t *testing.T) { + reader := newRequestReader(0, 0) + reader.Read([]byte{}) +} + +func TestNewRequestReader(t *testing.T) { + f := func(downloadBytes uint64, uploadBytes uint64) bool { + const MaxUploadBytes = 64 * 1024 * 1024 // 64 megabytes + + // Skip if uploadBytes is too large + if uploadBytes > MaxUploadBytes { + return true + } + + // Create a new reader + r := newRequestReader(downloadBytes, uploadBytes) + + // Read everything from the reader + data, err := ioutil.ReadAll(r) + if err != nil { + t.Fatalf("Failed to read from the reader: %v", err) + } + + // The length of data should be 8 (for downloadBytes) + uploadBytes + if len(data) != int(8+uploadBytes) { + return false + } + + // The first 8 bytes should represent downloadBytes + readDownloadBytes := binary.BigEndian.Uint64(data[:8]) + if readDownloadBytes != downloadBytes { + return false + } + + // The rest of the bytes should all be zero + for i := 8; i < len(data); i++ { + if data[i] != 0 { + return false + } + } + + return true + } + + if err := quick.Check(f, nil); err != nil { + t.Error(err) + } +} From 171394a7d0d133b9e45b95693cfca22cf04b2fff Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 22 Jun 2023 12:02:28 +0900 Subject: [PATCH 141/143] fix(https): remove obsolete int(z.n) conversion --- perf/impl/https/v0.1/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/impl/https/v0.1/main.go b/perf/impl/https/v0.1/main.go index 368d04419..3ee3589e2 100644 --- a/perf/impl/https/v0.1/main.go +++ b/perf/impl/https/v0.1/main.go @@ -82,7 +82,7 @@ func (z *zeroReader) Read(p []byte) (n int, err error) { // calculate the number of zeros to write n = len(p) if n > z.n { - n = int(z.n) + n = z.n } if n > len(zeroSlice) { n = len(zeroSlice) From b7f406546ada9179289236b349653b8c66818662 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 22 Jun 2023 12:18:42 +0900 Subject: [PATCH 142/143] Revert "fix(https): remove obsolete int(z.n) conversion" This reverts commit 171394a7d0d133b9e45b95693cfca22cf04b2fff. --- perf/impl/https/v0.1/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf/impl/https/v0.1/main.go b/perf/impl/https/v0.1/main.go index 3ee3589e2..368d04419 100644 --- a/perf/impl/https/v0.1/main.go +++ b/perf/impl/https/v0.1/main.go @@ -82,7 +82,7 @@ func (z *zeroReader) Read(p []byte) (n int, err error) { // calculate the number of zeros to write n = len(p) if n > z.n { - n = z.n + n = int(z.n) } if n > len(zeroSlice) { n = len(zeroSlice) From fb23e701dbfbe22b16ba8e372b79a753a717d720 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Thu, 22 Jun 2023 12:18:55 +0900 Subject: [PATCH 143/143] Revert "fix(https): use multireader and add quickcheck tests" This reverts commit 2296d8c1c8501bebe7a0f5f56379d6374245ebc6. --- perf/impl/https/v0.1/main.go | 55 +++++++++++++---------------- perf/impl/https/v0.1/main_test.go | 57 ------------------------------- 2 files changed, 23 insertions(+), 89 deletions(-) delete mode 100644 perf/impl/https/v0.1/main_test.go diff --git a/perf/impl/https/v0.1/main.go b/perf/impl/https/v0.1/main.go index 368d04419..24ed4befb 100644 --- a/perf/impl/https/v0.1/main.go +++ b/perf/impl/https/v0.1/main.go @@ -1,7 +1,6 @@ package main import ( - "bytes" "crypto/ecdsa" "crypto/elliptic" "crypto/rand" @@ -61,43 +60,35 @@ func handleRequest(w http.ResponseWriter, r *http.Request) { } } -func newRequestReader(downloadBytes uint64, uploadBytes uint64) io.Reader { - p := make([]byte, 8) - binary.BigEndian.PutUint64(p, downloadBytes) +var zeroSlice = make([]byte, BlockSize) // Pre-made zero-filled slice - return io.MultiReader(bytes.NewReader(p), &zeroReader{n: int(uploadBytes)}) +type customReader struct { + downloadBytes uint64 + uploadBytes uint64 + position uint64 } -var zeroSlice = make([]byte, BlockSize) - -type zeroReader struct { - n int -} - -func (z *zeroReader) Read(p []byte) (n int, err error) { - if z.n <= 0 { - return 0, io.EOF +func (c *customReader) Read(p []byte) (int, error) { + if c.position < 8 { + binary.BigEndian.PutUint64(p, c.downloadBytes) + c.position += 8 + return 8, nil + } else if c.position-8 < c.uploadBytes { + bytesToWrite := min(min(len(p), int(c.uploadBytes-(c.position-8))), len(zeroSlice)) + copy(p[:bytesToWrite], zeroSlice[:bytesToWrite]) // zero the slice + c.position += uint64(bytesToWrite) + return bytesToWrite, nil } - // calculate the number of zeros to write - n = len(p) - if n > z.n { - n = int(z.n) - } - if n > len(zeroSlice) { - n = len(zeroSlice) - } - - // set the necessary bytes to zero - copy(p, zeroSlice[:n]) - - z.n -= n + return 0, io.EOF +} - if z.n == 0 { - err = io.EOF +// Helper function to get minimum of two integers +func min(a, b int) int { + if a < b { + return a } - - return n, err + return b } func runClient(serverAddr string, uploadBytes, downloadBytes uint64) (time.Duration, time.Duration, error) { @@ -109,7 +100,7 @@ func runClient(serverAddr string, uploadBytes, downloadBytes uint64) (time.Durat }, } - reqBody := newRequestReader(downloadBytes, uploadBytes) + reqBody := &customReader{downloadBytes: downloadBytes, uploadBytes: uploadBytes} req, err := http.NewRequest("POST", fmt.Sprintf("https://%s/", serverAddr), reqBody) if err != nil { diff --git a/perf/impl/https/v0.1/main_test.go b/perf/impl/https/v0.1/main_test.go deleted file mode 100644 index d284282df..000000000 --- a/perf/impl/https/v0.1/main_test.go +++ /dev/null @@ -1,57 +0,0 @@ -package main - -import ( - "encoding/binary" - "io/ioutil" - "testing" - "testing/quick" -) - -func TestNewRequestReaderSmallP(t *testing.T) { - reader := newRequestReader(0, 0) - reader.Read([]byte{}) -} - -func TestNewRequestReader(t *testing.T) { - f := func(downloadBytes uint64, uploadBytes uint64) bool { - const MaxUploadBytes = 64 * 1024 * 1024 // 64 megabytes - - // Skip if uploadBytes is too large - if uploadBytes > MaxUploadBytes { - return true - } - - // Create a new reader - r := newRequestReader(downloadBytes, uploadBytes) - - // Read everything from the reader - data, err := ioutil.ReadAll(r) - if err != nil { - t.Fatalf("Failed to read from the reader: %v", err) - } - - // The length of data should be 8 (for downloadBytes) + uploadBytes - if len(data) != int(8+uploadBytes) { - return false - } - - // The first 8 bytes should represent downloadBytes - readDownloadBytes := binary.BigEndian.Uint64(data[:8]) - if readDownloadBytes != downloadBytes { - return false - } - - // The rest of the bytes should all be zero - for i := 8; i < len(data); i++ { - if data[i] != 0 { - return false - } - } - - return true - } - - if err := quick.Check(f, nil); err != nil { - t.Error(err) - } -}