Merge pull request #665 from input-output-hk/test/concurrent-users
test: concurrent users metrics
test: concurrent users metrics
"artillery:wallet-restoration": "WORKERS=1 node -r ts-node/register ../../node_modules/.bin/artillery run --dotenv ./.env test/artillery/wallet-restoration/WalletRestoration.yml",
"load-test-custom:stake-pool-query": "ts-node test/load-test-custom/stake-pool-search/stake-pool-search.test.ts",
"load-test-custom:wallet-init": "ts-node test/load-test-custom/wallet-init/wallet-init.test.ts",
"load-test-custom:wallet-restoration": "ts-node test/load-test-custom/wallet-restoration/wallet-restoration.test.ts",
"test": "shx echo 'test' command not implemented yet",
"test:blockfrost": "jest -c jest.config.js --forceExit --selectProjects blockfrost --runInBand --verbose",
"test:utils": "jest -c jest.config.js --forceExit --selectProjects utils --verbose",
import { AddressType, GroupedAddress, util } from '@cardano-sdk/key-management';
import { AddressesModel, WalletVars } from './types';
import { Cardano } from '@cardano-sdk/core';
import { FunctionHook } from '../artillery';
import { Pool } from 'pg';
import { StubKeyAgent, getEnv, getWallet, walletVariables } from '../../../src';
import { findAddressesWithRegisteredStakeKey } from './queries';
import { logger } from '@cardano-sdk/util-dev';
import { waitForWalletStateSettle } from '../../util';
import { mapToGroupedAddress, waitForWalletStateSettle } from '../../util';
import { util } from '@cardano-sdk/key-management';
const env = getEnv([
...walletVariables,
return result;
};
const mapToGroupedAddress = (addrModel: AddressesModel): GroupedAddress => ({
accountIndex: 0,
address: Cardano.PaymentAddress(addrModel.address),
index: 0,
networkId: addrModel.address.startsWith('addr_test') ? Cardano.NetworkId.Testnet : Cardano.NetworkId.Mainnet,
rewardAccount: Cardano.RewardAccount(addrModel.stake_address),
type: AddressType.External
});
export const getAddresses: FunctionHook<WalletVars> = async ({ vars }, _, done) => {
vars.walletLoads = Number(env.VIRTUAL_USERS_COUNT);
const result = await extractAddresses(vars.walletLoads);
/* eslint-disable import/imports-first */
// This line must come before loading the env, to configure the location of the .env file
import * as dotenv from 'dotenv';
import path from 'path';
dotenv.config({ path: path.join(__dirname, '../../../.env') });
import { Cardano } from '@cardano-sdk/core/dist/esm';
import { GroupedAddress, util } from '@cardano-sdk/key-management';
import { Logger } from 'ts-log';
import { MINUTE, StubKeyAgent, getEnv, getWallet, walletVariables } from '../../../src';
import { SingleAddressWallet } from '@cardano-sdk/wallet';
import { logger } from '@cardano-sdk/util-dev';
import { mapToGroupedAddress, waitForWalletStateSettle } from '../../util';
/**
* Env var MAX_USERS sets the maximum number of concurrent users to measure
* default value 100
*/
const RESTORATION_TIMEOUT = process.env.RESTORATION_TIMEOUT
? Number.parseInt(process.env.RESTORATION_TIMEOUT)
: 5 * MINUTE;
const resultsFilePrefix = 'restoration'; // group suffix and extension will be added to file name
// user groups with different numbers of tx in wallet
const groups = [
[1, 10],
[10, 100],
[100, 1000]
];
const fs = require('fs');
const env = getEnv([...walletVariables, 'DB_SYNC_CONNECTION_STRING']);
const testLogger: Logger = console;
const formattedDate = new Date().toISOString().split('T')[0];
const dirName = `./${formattedDate}/`;
const range = (toNum: number) => {
// [1 ... toNum]
const resArr = [...Array.from({ length: toNum + 1 }).keys()];
resArr.shift();
return resArr;
};
const initWallets = async (walletsNum: number, addresses: GroupedAddress[]): Promise<SingleAddressWallet[]> => {
testLogger.info('Number of concurrent users: ', walletsNum);
let currentAddress;
const wallets = [];
for (let i = 0; i < walletsNum; i++) {
currentAddress = addresses[i];
testLogger.info(' address:', currentAddress.address);
const keyAgent = util.createAsyncKeyAgent(new StubKeyAgent(currentAddress));
const { wallet } = await getWallet({
env,
idx: 0,
keyAgent,
logger,
name: 'Test Wallet',
polling: { interval: 50 }
});
wallets.push(wallet);
}
return wallets;
};
const measureRestorationTime = async (maxUsers: number, addresses: GroupedAddress[], resultsFile: string) => {
for (let users = 1; users <= maxUsers; users++) {
const wallets = await initWallets(users, addresses.slice(0, maxUsers));
addresses.splice(0, maxUsers);
try {
const start = Date.now();
const resp = await Promise.all(wallets.map(async (w) => await waitForWalletStateSettle(w, RESTORATION_TIMEOUT)));
if (resp.some((r) => !r)) testLogger.error('Restoration failed');
const stop = Date.now();
const time = (stop - start) / 1000;
testLogger.info('Restoration time - ', time);
await fs.appendFile(resultsFile, `${wallets.length},${time}\n`, { flag: 'a' }, (err: never) => {
if (err) {
testLogger.error(err);
}
});
for (const w of wallets) w.shutdown();
} catch (error) {
testLogger.error(error);
}
}
};
type TestData = {
tx_count: number;
address: Cardano.PaymentAddress;
stake_address: Cardano.RewardAddress;
};
// Test measures response time for increasing number of concurrent users up to MAX-USERS
const runTest = async () => {
if (!fs.existsSync(dirName)) {
fs.mkdirSync(dirName);
}
const maxUsers = process.env.MAX_USERS ? Number.parseInt(process.env.MAX_USERS) : 100;
// calculate number of addresses needed for `maxUsers` measurements
const numAddresses = range(maxUsers).reduce((a, b) => a + b);
const result = require('../../dump/addresses/mainnet.json');
for (const group of groups) {
testLogger.info(`Measurements or addresses with ${group[0]} to ${group[1]} txs`);
const filteredAddr = result.filter((e: TestData) => e.tx_count > group[0] && e.tx_count < group[1]);
if (filteredAddr < numAddresses) throw new Error('Not enough addresses!');
const addresses: GroupedAddress[] = filteredAddr.map(mapToGroupedAddress);
const creationTime = new Date().toISOString().split('T')[1];
const resultsFile = `${dirName}${resultsFilePrefix}-${group[0]}-${group[1]}-${creationTime}.csv`;
await measureRestorationTime(maxUsers, addresses, resultsFile);
testLogger.info('Results appended to file - ', resultsFile);
}
};
runTest().catch(() => {
testLogger.error('Execution failed');
});
/* eslint-disable @typescript-eslint/no-explicit-any */
import * as Crypto from '@cardano-sdk/crypto';
import * as envalid from 'envalid';
import { AddressType, GroupedAddress, InMemoryKeyAgent, TransactionSigner } from '@cardano-sdk/key-management';
import { AddressesModel } from './artillery/wallet-restoration/types';
import { Cardano, createSlotEpochCalc } from '@cardano-sdk/core';
import {
EMPTY,
SingleAddressWallet,
buildTx
} from '@cardano-sdk/wallet';
import { InMemoryKeyAgent, TransactionSigner } from '@cardano-sdk/key-management';
import { assertTxIsValid } from '../../wallet/test/util';
import { logger } from '@cardano-sdk/util-dev';
import sortBy from 'lodash/sortBy';
FAST_OPERATION_TIMEOUT_DEFAULT
);
};
export const mapToGroupedAddress = (addrModel: AddressesModel): GroupedAddress => ({
accountIndex: 0,
address: Cardano.PaymentAddress(addrModel.address),
index: 0,
networkId: addrModel.address.startsWith('addr_test') ? Cardano.NetworkId.Testnet : Cardano.NetworkId.Mainnet,
rewardAccount: Cardano.RewardAccount(addrModel.stake_address),
type: AddressType.External
});
* Change ledger bounds in cardano-api, cardano-cli. * Add Plutus V3 support to cardano-api, only available in the conway ledger era. * PState is now parametric in era, not crypto. * Adjust for new conway era certificates. Note that the certificate design is currently wrong in ledger, making the conway support in cardano-api type-checking but broken. * Ledger UMapCompact is now UMap * Ledger types with names involving DState are renamed to CertState. * Add the new query flag to the CLI ping.
From https://github.com/input-output-hk/cardano-cli at ce0ae2641af406c51ab996f54e43acaf709bf94b
Flake lock file updates: • Updated input 'hackage-nix': 'github:input-output-hk/hackage.nix/f3793d3d9fa159d0f3a652fc4a50b65ed0e86c27' (2023-03-22) → 'github:input-output-hk/hackage.nix/bcf306c274ae25edde69215b07d5559bad5249e3' (2023-05-27) • Updated input 'haskell-nix': 'github:input-output-hk/haskell.nix/02a5acdfc937129e51e41de0eafd0c44f29896b4' (2023-03-03) → 'github:input-output-hk/haskell.nix/6a06f964c84b0b686103fef3e7c9d992f969e687' (2023-05-27) • Updated input 'haskell-nix/flake-utils': 'github:numtide/flake-utils/5aed5285a952e0b949eb3ba02c12fa4fcfef535f' (2022-11-02) → 'github:hamishmack/flake-utils/e1ea268ff47ad475443dbabcd54744b4e5b9d4f5' (2023-03-21) • Added input 'haskell-nix/hls-1.10': 'github:haskell/haskell-language-server/b08691db779f7a35ff322b71e72a12f6e3376fd9' (2023-03-28) • Updated input 'haskell-nix/nixpkgs-2205': 'github:NixOS/nixpkgs/0874168639713f547c05947c76124f78441ea46c' (2023-01-01) → 'github:NixOS/nixpkgs/50fc86b75d2744e1ab3837ef74b53f103a9b55a0' (2023-04-27) • Updated input 'haskell-nix/nixpkgs-2211': 'github:NixOS/nixpkgs/b7ce17b1ebf600a72178f6302c77b6382d09323f' (2023-02-07) → 'github:NixOS/nixpkgs/09f1b33fcc0f59263137e23e935c1bb03ec920e4' (2023-04-28) • Updated input 'haskell-nix/nixpkgs-unstable': 'github:NixOS/nixpkgs/747927516efcb5e31ba03b7ff32f61f6d47e7d87' (2023-02-07) → 'github:NixOS/nixpkgs/6806b63e824f84b0f0e60b6d660d4ae753de0477' (2023-04-28) • Updated input 'haskell-nix/stackage': 'github:input-output-hk/stackage.nix/f4d29fa4403f45541d9f3993523df6027c21fe90' (2023-02-28) → 'github:input-output-hk/stackage.nix/93d43688c3335696e17ce8ceaa9e7170c57b9501' (2023-05-27) • Removed input 'haskell-nix/tullia' • Removed input 'haskell-nix/tullia/nix-nomad' • Removed input 'haskell-nix/tullia/nix-nomad/flake-compat' • Removed input 'haskell-nix/tullia/nix-nomad/flake-utils' • Removed input 'haskell-nix/tullia/nix-nomad/gomod2nix' • Removed input 'haskell-nix/tullia/nix-nomad/gomod2nix/nixpkgs' • Removed input 'haskell-nix/tullia/nix-nomad/gomod2nix/utils' • Removed input 'haskell-nix/tullia/nix-nomad/nixpkgs' • Removed input 'haskell-nix/tullia/nix-nomad/nixpkgs-lib' • Removed input 'haskell-nix/tullia/nix2container' • Removed input 'haskell-nix/tullia/nix2container/flake-utils' • Removed input 'haskell-nix/tullia/nix2container/nixpkgs' • Removed input 'haskell-nix/tullia/nixpkgs' • Removed input 'haskell-nix/tullia/std' • Removed input 'haskell-nix/tullia/std/arion' • Removed input 'haskell-nix/tullia/std/blank' • Removed input 'haskell-nix/tullia/std/devshell' • Removed input 'haskell-nix/tullia/std/devshell/flake-utils' • Removed input 'haskell-nix/tullia/std/devshell/nixpkgs' • Removed input 'haskell-nix/tullia/std/dmerge' • Removed input 'haskell-nix/tullia/std/dmerge/nixlib' • Removed input 'haskell-nix/tullia/std/dmerge/yants' • Removed input 'haskell-nix/tullia/std/flake-utils' • Removed input 'haskell-nix/tullia/std/incl' • Removed input 'haskell-nix/tullia/std/incl/nixlib' • Removed input 'haskell-nix/tullia/std/makes' • Removed input 'haskell-nix/tullia/std/microvm' • Removed input 'haskell-nix/tullia/std/n2c' • Removed input 'haskell-nix/tullia/std/n2c/flake-utils' • Removed input 'haskell-nix/tullia/std/n2c/nixpkgs' • Removed input 'haskell-nix/tullia/std/nixago' • Removed input 'haskell-nix/tullia/std/nixago/flake-utils' • Removed input 'haskell-nix/tullia/std/nixago/nixago-exts' • Removed input 'haskell-nix/tullia/std/nixago/nixpkgs' • Removed input 'haskell-nix/tullia/std/nixpkgs' • Removed input 'haskell-nix/tullia/std/nosys' • Removed input 'haskell-nix/tullia/std/yants' • Removed input 'haskell-nix/tullia/std/yants/nixpkgs'
Flake lock file updates: • Updated input 'auth-keys-hub': 'github:input-output-hk/auth-keys-hub/6b83eb6320ee1d78c46d00803648b6d05f566837' (2023-05-08) → 'github:input-output-hk/auth-keys-hub/9bda910eba9c027dfce1822c2dcc5f4ee75ed697' (2023-05-16) • Updated input 'cicero': 'github:input-output-hk/cicero/c6c187665d2c4fa06ad79a6977ed59e4b8cff394' (2023-04-25) → 'github:input-output-hk/cicero/705f7fad9b816789a07d937341fab595ddc6abf1' (2023-05-15) • Updated input 'darwin': 'github:lnl7/nix-darwin/87b9d090ad39b25b2400029c64825fc2a8868943' (2023-01-09) → 'github:lnl7/nix-darwin/b8c286c82c6b47826a6c0377e7017052ad91353c' (2023-05-22) • Updated input 'deploy-rs': 'github:serokell/deploy-rs/8c9ea9605eed20528bf60fae35a2b613b901fd77' (2023-01-19) → 'github:serokell/deploy-rs/c80189917086e43d49eece2bd86f56813500a0eb' (2023-05-11) • Updated input 'nix': 'github:NixOS/nix/ab14087ea3d96f04e8b0248af2502a8b381d0e23' (2023-04-18) → 'github:NixOS/nix/d609b64bb2c3bc911ffea8f4634ed480e3463ff8' (2023-05-23) • Updated input 'nixpkgs-postgrest': 'github:NixOS/nixpkgs/13d086012159a2c351925e746b083456a7c91636' (2022-12-15) → 'github:NixOS/nixpkgs/53e76520b9706d42e83fd779e67c50e72da40944' (2023-05-28) • Updated input 'openziti': 'github:johnalotoski/openziti-bins/fdc4283ea28c5865fd1d2874a9871cba2392bdb0' (2023-03-10) → 'github:johnalotoski/openziti-bins/d9d132c69e5ea9dc5779c64fbbb84894f3ec31d8' (2023-05-23) • Updated input 'std': 'github:divnix/std/2d3ee4b663ccd7627d0f18a680239f7ffaad83c8' (2023-01-14) → 'github:divnix/std/959f54d6698ff7fea01e4e6d8e5d7d95fcf66844' (2023-05-23) • Updated input 'std/devshell': 'github:numtide/devshell/e3dc3e21594fe07bdb24bdf1c8657acaa4cb8f66' (2022-09-17) → 'github:numtide/devshell/fb6673fe9fe4409e3f43ca86968261e970918a83' (2023-04-28) • Updated input 'std/dmerge': 'github:divnix/data-merge/d160d18ce7b1a45b88344aa3f13ed1163954b497' (2022-08-03) → 'github:divnix/dmerge/ac9932f26325afac5baa59cf6478432d17762a4e' (2023-05-15) • Added input 'std/dmerge/haumea': 'github:nix-community/haumea/b915b66b27da3a595d77b139e945bb0a2fcac926' (2023-04-11) • Added input 'std/dmerge/haumea/nixpkgs': follows 'std/dmerge/nixlib' • Added input 'std/dmerge/namaka': 'github:nix-community/namaka/2deba2f416454aec770bc1cc7365e39c73e6b1d7' (2023-05-02) • Added input 'std/dmerge/namaka/haumea': follows 'std/dmerge/haumea' • Added input 'std/dmerge/namaka/nixpkgs': follows 'std/dmerge/nixlib' • Updated input 'std/n2c': 'github:nlewo/nix2container/b008fe329ffb59b67bf9e7b08ede6ee792f2741a' (2022-10-06) → 'github:nlewo/nix2container/ebca8f58d450cae1a19c07701a5a8ae40afc9efc' (2023-02-25) • Updated input 'std/nixago': 'github:nix-community/nixago/8c1f9e5f1578d4b2ea989f618588d62a335083c3' (2022-08-30) → 'github:nix-community/nixago/1da60ad9412135f9ed7a004669fdcf3d378ec630' (2023-05-04) • Updated input 'std/nixpkgs': 'github:nixos/nixpkgs/95fda953f6db2e9496d2682c4fc7b82f959878f7' (2022-10-06) → 'github:nixos/nixpkgs/6ccc4a59c3f1b56d039d93da52696633e641bc71' (2023-02-09) • Removed input 'std/nosys' • Added input 'std/paisano': 'github:paisano-nix/core/88f2aff10a5064551d1d4cb86800d17084489ce3' (2023-03-16) • Added input 'std/paisano/nixpkgs': follows 'std/nixpkgs' • Added input 'std/paisano/nosys': 'github:divnix/nosys/feade0141487801c71ff55623b421ed535dbdefa' (2022-11-09) • Added input 'std/paisano/yants': follows 'std/yants' • Added input 'std/paisano-mdbook-preprocessor': 'github:paisano-nix/mdbook-paisano-preprocessor/11a8fc47f574f194a7ae7b8b98001f6143ba4cf1' (2023-04-05) • Added input 'std/paisano-mdbook-preprocessor/crane': 'github:ipetkov/crane/6fb400ec631b22ccdbc7090b38207f7fb5cfb5f2' (2023-02-12) • Added input 'std/paisano-mdbook-preprocessor/crane/flake-compat': 'github:edolstra/flake-compat/35bb57c0c8d8b62bbfd284272c928ceb64ddbde9' (2023-01-17) • Added input 'std/paisano-mdbook-preprocessor/crane/flake-utils': 'github:numtide/flake-utils/5aed5285a952e0b949eb3ba02c12fa4fcfef535f' (2022-11-02) • Added input 'std/paisano-mdbook-preprocessor/crane/nixpkgs': follows 'std/paisano-mdbook-preprocessor/nixpkgs' • Added input 'std/paisano-mdbook-preprocessor/crane/rust-overlay': 'github:oxalica/rust-overlay/383a4acfd11d778d5c2efcf28376cbd845eeaedf' (2023-02-03) • Added input 'std/paisano-mdbook-preprocessor/crane/rust-overlay/flake-utils': follows 'std/paisano-mdbook-preprocessor/crane/flake-utils' • Added input 'std/paisano-mdbook-preprocessor/crane/rust-overlay/nixpkgs': follows 'std/paisano-mdbook-preprocessor/crane/nixpkgs' • Added input 'std/paisano-mdbook-preprocessor/fenix': 'github:nix-community/fenix/0923f0c162f65ae40261ec940406049726cfeab4' (2023-02-25) • Added input 'std/paisano-mdbook-preprocessor/fenix/nixpkgs': 'github:nixos/nixpkgs/988cc958c57ce4350ec248d2d53087777f9e1949' (2023-02-22) • Added input 'std/paisano-mdbook-preprocessor/fenix/rust-analyzer-src': 'github:rust-lang/rust-analyzer/f5401f620699b26ed9d47a1d2e838143a18dbe3b' (2023-02-24) • Added input 'std/paisano-mdbook-preprocessor/nixpkgs': follows 'std/nixpkgs' • Added input 'std/paisano-mdbook-preprocessor/paisano-actions': 'github:paisano-nix/actions/65ec4e080b3480167fc1a748c89a05901eea9a9b' (2023-02-25) • Added input 'std/paisano-mdbook-preprocessor/paisano-actions/nixpkgs': follows 'std/paisano-mdbook-preprocessor/nixpkgs' • Added input 'std/paisano-mdbook-preprocessor/std': follows 'std' • Added input 'std/paisano-tui': 'github:paisano-nix/tui/3096bad91cae73ab8ab3367d31f8a143d248a244' (2023-04-18) • Added input 'std/paisano-tui/nixpkgs': follows 'std/blank' • Added input 'std/paisano-tui/std': follows 'std' • Updated input 'tullia': 'github:input-output-hk/tullia/621365f2c725608f381b3ad5b57afef389fd4c31' (2023-02-06) → 'github:input-output-hk/tullia/2964cff1a16eefe301bdddb508c49d94d04603d6' (2023-05-23) • Updated input 'tullia/std': 'github:divnix/std/516387e3d8d059b50e742a2ff1909ed3c8f82826' (2023-01-24) → 'github:divnix/std/490542f624412662e0411d8cb5a9af988ef56633' (2023-02-27) • Updated input 'tullia/std/n2c': 'github:nlewo/nix2container/b008fe329ffb59b67bf9e7b08ede6ee792f2741a' (2022-10-06) → 'github:nlewo/nix2container/ebca8f58d450cae1a19c07701a5a8ae40afc9efc' (2023-02-25) • Updated input 'tullia/std/nixago': 'github:nix-community/nixago/8c1f9e5f1578d4b2ea989f618588d62a335083c3' (2022-08-30) → 'github:nix-community/nixago/9cab4dde31ec2f2c05d702ea8648ce580664e906' (2023-02-11) • Updated input 'tullia/std/nixpkgs': 'github:nixos/nixpkgs/95fda953f6db2e9496d2682c4fc7b82f959878f7' (2022-10-06) → 'github:nixos/nixpkgs/6ccc4a59c3f1b56d039d93da52696633e641bc71' (2023-02-09) • Removed input 'tullia/std/nosys' • Added input 'tullia/std/paisano': 'github:paisano-nix/core/5f2fc05e98e001cb1cf9535ded09e05d90cec131' (2023-02-26) • Added input 'tullia/std/paisano/nixpkgs': follows 'tullia/std/nixpkgs' • Added input 'tullia/std/paisano/nosys': 'github:divnix/nosys/feade0141487801c71ff55623b421ed535dbdefa' (2022-11-09) • Added input 'tullia/std/paisano/yants': follows 'tullia/std/yants' • Added input 'tullia/std/paisano-tui': 'github:paisano-nix/tui/802958d123b0a5437441be0cab1dee487b0ed3eb' (2023-02-27) • Added input 'tullia/std/paisano-tui/nixpkgs': follows 'tullia/std/blank' • Added input 'tullia/std/paisano-tui/std': follows 'tullia/std'
Flake lock file updates: • Updated input 'CHaP': 'github:input-output-hk/cardano-haskell-packages/329015d09ac4dc74a97226d0aa5b1705e2c1d52f' (2023-03-15) → 'github:input-output-hk/cardano-haskell-packages/b798a57da765220a055c9d36beb067bc6be511e3' (2023-05-27)
Flake lock file updates: • Updated input 'flake-compat': 'github:edolstra/flake-compat/b4a34015c698c7793d592d66adbab377907a2be8' (2022-04-19) → 'github:edolstra/flake-compat/35bb57c0c8d8b62bbfd284272c928ceb64ddbde9' (2023-01-17) • Updated input 'flake-utils': 'github:numtide/flake-utils/c0e246b9b83f637f4681389ecabcb2681b4f3af0' (2022-08-07) → 'github:numtide/flake-utils/cfacdce06f30d2b68473a46042957675eebb3401' (2023-04-11) • Added input 'flake-utils/systems': 'github:nix-systems/default/da67096a3b9bf56a91d16901293e51ba5b49a27e' (2023-04-09) • Updated input 'naersk': 'github:nix-community/naersk/6944160c19cb591eb85bbf9b2f2768a935623ed3' (2022-09-03) → 'github:nix-community/naersk/88cd22380154a2c36799fe8098888f0f59861a15' (2023-03-23) • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/c5924154f000e6306030300592f4282949b2db6c' (2022-10-08) → 'github:NixOS/nixpkgs/f91ee3065de91a3531329a674a45ddcb3467a650' (2023-05-24) • Updated input 'pre-commit-hooks': 'github:cachix/pre-commit-hooks.nix/11aff801aa0ea1fb02ae43e61f7cdf610f5fe2e5' (2022-10-10) → 'github:cachix/pre-commit-hooks.nix/61e567d6497bc9556f391faebe5e410e6623217f' (2023-05-23) • Added input 'pre-commit-hooks/flake-compat': 'github:edolstra/flake-compat/35bb57c0c8d8b62bbfd284272c928ceb64ddbde9' (2023-01-17) • Added input 'pre-commit-hooks/gitignore': 'github:hercules-ci/gitignore.nix/a20de23b925fd8264fd7fad6454652e142fd7f73' (2022-08-14) • Added input 'pre-commit-hooks/gitignore/nixpkgs': follows 'pre-commit-hooks/nixpkgs' • Added input 'pre-commit-hooks/nixpkgs-stable': 'github:NixOS/nixpkgs/9b8e5abb18324c7fe9f07cb100c3cd4a29cda8b8' (2023-03-15) • Updated input 'rust-overlay': 'github:oxalica/rust-overlay/af29a900f10dd6e467622202fb4f6d944d72a3a6' (2022-10-10) → 'github:oxalica/rust-overlay/7d196a0e3829f1a150c07a447ed7d2f0b60568bd' (2023-05-27)
Flake lock file updates: • Updated input 'flake-compat': 'github:edolstra/flake-compat/b4a34015c698c7793d592d66adbab377907a2be8' (2022-04-19) → 'github:edolstra/flake-compat/35bb57c0c8d8b62bbfd284272c928ceb64ddbde9' (2023-01-17) • Updated input 'flake-utils': 'github:numtide/flake-utils/c0e246b9b83f637f4681389ecabcb2681b4f3af0' (2022-08-07) → 'github:numtide/flake-utils/cfacdce06f30d2b68473a46042957675eebb3401' (2023-04-11) • Added input 'flake-utils/systems': 'github:nix-systems/default/da67096a3b9bf56a91d16901293e51ba5b49a27e' (2023-04-09) • Updated input 'naersk': 'github:nix-community/naersk/6944160c19cb591eb85bbf9b2f2768a935623ed3' (2022-09-03) → 'github:nix-community/naersk/88cd22380154a2c36799fe8098888f0f59861a15' (2023-03-23) • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/7e52b35fe98481a279d89f9c145f8076d049d2b9' (2022-09-27) → 'github:NixOS/nixpkgs/f91ee3065de91a3531329a674a45ddcb3467a650' (2023-05-24) • Updated input 'pre-commit-hooks': 'github:cachix/pre-commit-hooks.nix/60cad1a326df17a8c6cf2bb23436609fdd83024e' (2022-09-13) → 'github:cachix/pre-commit-hooks.nix/61e567d6497bc9556f391faebe5e410e6623217f' (2023-05-23) • Added input 'pre-commit-hooks/flake-compat': 'github:edolstra/flake-compat/35bb57c0c8d8b62bbfd284272c928ceb64ddbde9' (2023-01-17) • Added input 'pre-commit-hooks/gitignore': 'github:hercules-ci/gitignore.nix/a20de23b925fd8264fd7fad6454652e142fd7f73' (2022-08-14) • Added input 'pre-commit-hooks/gitignore/nixpkgs': follows 'pre-commit-hooks/nixpkgs' • Added input 'pre-commit-hooks/nixpkgs-stable': 'github:NixOS/nixpkgs/9b8e5abb18324c7fe9f07cb100c3cd4a29cda8b8' (2023-03-15) • Updated input 'rust-overlay': 'github:oxalica/rust-overlay/1601b5a28c50fd9d40bd61b8878f3499e09bce7a' (2022-09-29) → 'github:oxalica/rust-overlay/7d196a0e3829f1a150c07a447ed7d2f0b60568bd' (2023-05-27)
Flake lock file updates: • Updated input 'flake-compat': 'github:edolstra/flake-compat/b4a34015c698c7793d592d66adbab377907a2be8' (2022-04-19) → 'github:edolstra/flake-compat/35bb57c0c8d8b62bbfd284272c928ceb64ddbde9' (2023-01-17) • Updated input 'flake-utils': 'github:numtide/flake-utils/c0e246b9b83f637f4681389ecabcb2681b4f3af0' (2022-08-07) → 'github:numtide/flake-utils/cfacdce06f30d2b68473a46042957675eebb3401' (2023-04-11) • Added input 'flake-utils/systems': 'github:nix-systems/default/da67096a3b9bf56a91d16901293e51ba5b49a27e' (2023-04-09) • Updated input 'naersk': 'github:nix-community/naersk/6944160c19cb591eb85bbf9b2f2768a935623ed3' (2022-09-03) → 'github:nix-community/naersk/88cd22380154a2c36799fe8098888f0f59861a15' (2023-03-23) • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/10ecda252ce1b3b1d6403caeadbcc8f30d5ab796' (2022-09-30) → 'github:NixOS/nixpkgs/f91ee3065de91a3531329a674a45ddcb3467a650' (2023-05-24) • Updated input 'pre-commit-hooks': 'github:cachix/pre-commit-hooks.nix/2a4f1cfaa01b8b31edc7d3004454c4a0c38d50d8' (2022-09-30) → 'github:cachix/pre-commit-hooks.nix/61e567d6497bc9556f391faebe5e410e6623217f' (2023-05-23) • Added input 'pre-commit-hooks/flake-compat': 'github:edolstra/flake-compat/35bb57c0c8d8b62bbfd284272c928ceb64ddbde9' (2023-01-17) • Added input 'pre-commit-hooks/gitignore': 'github:hercules-ci/gitignore.nix/a20de23b925fd8264fd7fad6454652e142fd7f73' (2022-08-14) • Added input 'pre-commit-hooks/gitignore/nixpkgs': follows 'pre-commit-hooks/nixpkgs' • Added input 'pre-commit-hooks/nixpkgs-stable': 'github:NixOS/nixpkgs/9b8e5abb18324c7fe9f07cb100c3cd4a29cda8b8' (2023-03-15) • Updated input 'rust-overlay': 'github:oxalica/rust-overlay/f48045bb46f6eef8314b9fe01b7db9dcdbca1e10' (2022-10-01) → 'github:oxalica/rust-overlay/7d196a0e3829f1a150c07a447ed7d2f0b60568bd' (2023-05-27)
Flake lock file updates: • Updated input 'catalyst_toolbox_': 'github:input-output-hk/catalyst-toolbox/93daa65b03a2ae1bf96a2380d3d41dcb5b2c2c0e' (2022-09-22) → 'github:input-output-hk/catalyst-toolbox/c2c7ddbd1b556df09ae43619d23790d97c360d60' (2022-10-03) • Updated input 'catalyst_toolbox_/nixpkgs': 'github:NixOS/nixpkgs/f677051b8dc0b5e2a9348941c99eea8c4b0ff28f' (2022-09-18) → 'github:NixOS/nixpkgs/7e52b35fe98481a279d89f9c145f8076d049d2b9' (2022-09-27) • Updated input 'catalyst_toolbox_/rust-overlay': 'github:oxalica/rust-overlay/0300688a98e053712108d4e22d5bdcf9c9106d8c' (2022-09-21) → 'github:oxalica/rust-overlay/1601b5a28c50fd9d40bd61b8878f3499e09bce7a' (2022-09-29) • Updated input 'flake-compat': 'github:edolstra/flake-compat/b4a34015c698c7793d592d66adbab377907a2be8' (2022-04-19) → 'github:edolstra/flake-compat/35bb57c0c8d8b62bbfd284272c928ceb64ddbde9' (2023-01-17) • Updated input 'flake-utils': 'github:numtide/flake-utils/c0e246b9b83f637f4681389ecabcb2681b4f3af0' (2022-08-07) → 'github:numtide/flake-utils/cfacdce06f30d2b68473a46042957675eebb3401' (2023-04-11) • Added input 'flake-utils/systems': 'github:nix-systems/default/da67096a3b9bf56a91d16901293e51ba5b49a27e' (2023-04-09) • Updated input 'jormungandr_': 'github:input-output-hk/jormungandr/c209655bbc12b6e1fc7027f9166822f67711c1c5' (2022-09-30) → 'github:input-output-hk/jormungandr/65217886ab619d14f8c939901fbf5135ab72184a' (2022-11-06) • Updated input 'jormungandr_/nixpkgs': 'github:NixOS/nixpkgs/ae1dc133ea5f1538d035af41e5ddbc2ebcb67b90' (2022-09-22) → 'github:NixOS/nixpkgs/c5924154f000e6306030300592f4282949b2db6c' (2022-10-08) • Updated input 'jormungandr_/pre-commit-hooks': 'github:cachix/pre-commit-hooks.nix/60cad1a326df17a8c6cf2bb23436609fdd83024e' (2022-09-13) → 'github:cachix/pre-commit-hooks.nix/11aff801aa0ea1fb02ae43e61f7cdf610f5fe2e5' (2022-10-10) • Updated input 'jormungandr_/rust-overlay': 'github:oxalica/rust-overlay/6eb90123f46664ffbb550c527f656ba848718af5' (2022-09-24) → 'github:oxalica/rust-overlay/af29a900f10dd6e467622202fb4f6d944d72a3a6' (2022-10-10) • Updated input 'naersk': 'github:nix-community/naersk/6944160c19cb591eb85bbf9b2f2768a935623ed3' (2022-09-03) → 'github:nix-community/naersk/88cd22380154a2c36799fe8098888f0f59861a15' (2023-03-23) • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/10ecda252ce1b3b1d6403caeadbcc8f30d5ab796' (2022-09-30) → 'github:NixOS/nixpkgs/f91ee3065de91a3531329a674a45ddcb3467a650' (2023-05-24) • Updated input 'pre-commit-hooks': 'github:cachix/pre-commit-hooks.nix/2a4f1cfaa01b8b31edc7d3004454c4a0c38d50d8' (2022-09-30) → 'github:cachix/pre-commit-hooks.nix/61e567d6497bc9556f391faebe5e410e6623217f' (2023-05-23) • Added input 'pre-commit-hooks/flake-compat': 'github:edolstra/flake-compat/35bb57c0c8d8b62bbfd284272c928ceb64ddbde9' (2023-01-17) • Added input 'pre-commit-hooks/gitignore': 'github:hercules-ci/gitignore.nix/a20de23b925fd8264fd7fad6454652e142fd7f73' (2022-08-14) • Added input 'pre-commit-hooks/gitignore/nixpkgs': follows 'pre-commit-hooks/nixpkgs' • Added input 'pre-commit-hooks/nixpkgs-stable': 'github:NixOS/nixpkgs/9b8e5abb18324c7fe9f07cb100c3cd4a29cda8b8' (2023-03-15) • Updated input 'rust-overlay': 'github:oxalica/rust-overlay/f48045bb46f6eef8314b9fe01b7db9dcdbca1e10' (2022-10-01) → 'github:oxalica/rust-overlay/7d196a0e3829f1a150c07a447ed7d2f0b60568bd' (2023-05-27) • Updated input 'vit-servicing-station': 'github:input-output-hk/vit-servicing-station/fa2faa4a576c59d0155a4956e41ac94f9b930674' (2022-09-30) → 'github:input-output-hk/vit-servicing-station/a0583c7b348f194a28565b68ff39a49f04b0cf8e' (2022-10-02) • Updated input 'vit-servicing-station/nixpkgs': 'github:NixOS/nixpkgs/ae1dc133ea5f1538d035af41e5ddbc2ebcb67b90' (2022-09-22) → 'github:NixOS/nixpkgs/10ecda252ce1b3b1d6403caeadbcc8f30d5ab796' (2022-09-30) • Updated input 'vit-servicing-station/pre-commit-hooks': 'github:cachix/pre-commit-hooks.nix/60cad1a326df17a8c6cf2bb23436609fdd83024e' (2022-09-13) → 'github:cachix/pre-commit-hooks.nix/2a4f1cfaa01b8b31edc7d3004454c4a0c38d50d8' (2022-09-30) • Updated input 'vit-servicing-station/rust-overlay': 'github:oxalica/rust-overlay/6eb90123f46664ffbb550c527f656ba848718af5' (2022-09-24) → 'github:oxalica/rust-overlay/f48045bb46f6eef8314b9fe01b7db9dcdbca1e10' (2022-10-01)
A server can apparently decide to respond with the full-duplex flag enabled in the NtN version data even when we had it disabled in the selected version in the handshake request