From 9de8c064bd88fba3ca2fde6684506cfa8960ff26 Mon Sep 17 00:00:00 2001 From: Ishan Date: Wed, 27 May 2020 15:42:14 +0200 Subject: [PATCH 1/7] Add common prefix suffix func and optimise calculateDiff --- .../lisk-chain/benchmark/calculate_diff.js | 4 +- elements/lisk-chain/src/diff.ts | 99 ++++++++++++++++++- 2 files changed, 97 insertions(+), 6 deletions(-) diff --git a/elements/lisk-chain/benchmark/calculate_diff.js b/elements/lisk-chain/benchmark/calculate_diff.js index 6504be053b0..6aed06e5187 100644 --- a/elements/lisk-chain/benchmark/calculate_diff.js +++ b/elements/lisk-chain/benchmark/calculate_diff.js @@ -55,8 +55,8 @@ const diff = calculateDiff( ); /** - * calculateDiff x 13.38 ops/sec ±1.96% (38 runs sampled) - * undo x 50,023 ops/sec ±0.52% (89 runs sampled) + * calculateDiff x 102,134 ops/sec ±0.99% (84 runs sampled) + * undo x 50,906 ops/sec ±0.80% (91 runs sampled) */ suite .add('calculateDiff', () => { diff --git a/elements/lisk-chain/src/diff.ts b/elements/lisk-chain/src/diff.ts index 0ee946ec22b..662adfbf141 100644 --- a/elements/lisk-chain/src/diff.ts +++ b/elements/lisk-chain/src/diff.ts @@ -130,6 +130,75 @@ const diffAlgo = (initial: Buffer, final: Buffer): HistoryType[] => { return []; }; +/** + * This function returns the length of common prefix between two buffers + */ +const diffCommonPrefix = (buffer1: Buffer, buffer2: Buffer): number => { + // Quick check for common null cases. + if (buffer1[0] !== buffer2[0]) { + return 0; + } + // Binary search. + // Performance analysis: http://neil.fraser.name/news/2007/10/09/ + let pointerMin = 0; + let pointerMax = Math.min(buffer1.length, buffer2.length); + let pointerMid = pointerMax; + let pointerstart = 0; + + while (pointerMin < pointerMid) { + if ( + buffer1 + .slice(pointerstart, pointerMid) + .equals(buffer2.slice(pointerstart, pointerMid)) + ) { + pointerMin = pointerMid; + pointerstart = pointerMin; + } else { + pointerMax = pointerMid; + } + pointerMid = Math.floor((pointerMax - pointerMin) / 2 + pointerMin); + } + + return pointerMid; +}; + +/** + * This function returns the length of common suffix between two buffers + */ +const diffCommonSuffix = (buffer1: Buffer, buffer2: Buffer): number => { + // Quick check for common null cases. + if (!buffer1.slice(-1).equals(buffer2.slice(-1))) { + return 0; + } + // Binary search. + // Performance analysis: http://neil.fraser.name/news/2007/10/09/ + let pointerMin = 0; + let pointerMax = Math.min(buffer1.length, buffer2.length); + let pointerMid = pointerMax; + let pointerEnd = 0; + + while (pointerMin < pointerMid) { + if ( + buffer1 + .slice(buffer1.length - pointerMid, buffer1.length - pointerEnd) + .equals( + buffer2.slice( + buffer2.length - pointerMid, + buffer2.length - pointerEnd, + ), + ) + ) { + pointerMin = pointerMid; + pointerEnd = pointerMin; + } else { + pointerMax = pointerMid; + } + pointerMid = Math.floor((pointerMax - pointerMin) / 2 + pointerMin); + } + + return pointerMid; +}; + /** * This function reduces the diff generated by the diff algorithm based on unchanged bytes */ @@ -137,8 +206,28 @@ export const calculateDiff = ( initial: Buffer, final: Buffer, ): HistoryType[] => { - const longDiff = diffAlgo(initial, final); - const reducedDiff = []; + // When both the buffers are equal then return all '=' history + if (initial.equals(final)) { + return [['=', initial.length]]; + } + const commonPrefix = diffCommonPrefix(initial, final); + const commonSuffix = diffCommonSuffix(initial, final); + + const strippedPrefixInitial = initial.slice(commonPrefix, initial.length); + const strippedPrefixFinal = final.slice(commonPrefix, final.length); + + const strippedInitial = strippedPrefixInitial.slice( + 0, + strippedPrefixInitial.length - commonSuffix, + ); + const strippedFinal = strippedPrefixFinal.slice( + 0, + strippedPrefixFinal.length - commonSuffix, + ); + const longDiff = diffAlgo(strippedInitial, strippedFinal); + + // Add common prefix to the reduced array in the start + const reducedDiff = commonPrefix > 0 ? [['=', commonPrefix]] : []; let count = 0; for (const b of longDiff) { @@ -152,9 +241,11 @@ export const calculateDiff = ( count += 1; } } - if (count > 0) { - reducedDiff.push(['=', count]); + // When commonSuffix or last counts are greater zero then combine them + if (count > 0 || commonSuffix > 0) { + reducedDiff.push(['=', count + commonSuffix]); } + return reducedDiff as HistoryType[]; }; From b9726ebf29fe5c31cb91a22a756631baeeeb1081 Mon Sep 17 00:00:00 2001 From: Ishan Date: Wed, 27 May 2020 17:08:13 +0200 Subject: [PATCH 2/7] Improve buffer compare condition --- elements/lisk-chain/src/diff.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/elements/lisk-chain/src/diff.ts b/elements/lisk-chain/src/diff.ts index 662adfbf141..7fe8489741e 100644 --- a/elements/lisk-chain/src/diff.ts +++ b/elements/lisk-chain/src/diff.ts @@ -167,7 +167,7 @@ const diffCommonPrefix = (buffer1: Buffer, buffer2: Buffer): number => { */ const diffCommonSuffix = (buffer1: Buffer, buffer2: Buffer): number => { // Quick check for common null cases. - if (!buffer1.slice(-1).equals(buffer2.slice(-1))) { + if (buffer1[buffer1.length - 1] !== buffer2[buffer2.length - 1]) { return 0; } // Binary search. From 78f41d22e6a0864d6b90091a1cd475d16712ff21 Mon Sep 17 00:00:00 2001 From: ishantiw Date: Thu, 28 May 2020 15:57:18 +0200 Subject: [PATCH 3/7] Use stripped buffer for suffix calculation --- elements/lisk-chain/src/diff.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/elements/lisk-chain/src/diff.ts b/elements/lisk-chain/src/diff.ts index 7fe8489741e..c7f15fbbb94 100644 --- a/elements/lisk-chain/src/diff.ts +++ b/elements/lisk-chain/src/diff.ts @@ -211,11 +211,13 @@ export const calculateDiff = ( return [['=', initial.length]]; } const commonPrefix = diffCommonPrefix(initial, final); - const commonSuffix = diffCommonSuffix(initial, final); - const strippedPrefixInitial = initial.slice(commonPrefix, initial.length); const strippedPrefixFinal = final.slice(commonPrefix, final.length); + const commonSuffix = diffCommonSuffix( + strippedPrefixInitial, + strippedPrefixFinal, + ); const strippedInitial = strippedPrefixInitial.slice( 0, strippedPrefixInitial.length - commonSuffix, From 4bde38ceef1a7034752c90a660adf39607c8527c Mon Sep 17 00:00:00 2001 From: Pablo Vicente Date: Fri, 29 May 2020 12:41:19 +0200 Subject: [PATCH 4/7] Add benchmarks for lisk-codec for big and small transactions and for account --- .../benchmark/encode_decode_account.js | 178 +++++ .../encode_decode_biggest_lisk_transaction.js | 613 ++++++++++++++++++ .../encode_decode_small_lisk_transaction.js | 100 +++ 3 files changed, 891 insertions(+) create mode 100644 elements/lisk-codec/benchmark/encode_decode_account.js create mode 100644 elements/lisk-codec/benchmark/encode_decode_biggest_lisk_transaction.js create mode 100644 elements/lisk-codec/benchmark/encode_decode_small_lisk_transaction.js diff --git a/elements/lisk-codec/benchmark/encode_decode_account.js b/elements/lisk-codec/benchmark/encode_decode_account.js new file mode 100644 index 00000000000..39400beae88 --- /dev/null +++ b/elements/lisk-codec/benchmark/encode_decode_account.js @@ -0,0 +1,178 @@ +/* + * Copyright © 2020 Lisk Foundation + * + * See the LICENSE file at the top-level directory of this distribution + * for licensing information. + * + * Unless otherwise agreed in a custom licensing agreement with the Lisk Foundation, + * no part of this software, including this file, may be copied, modified, + * propagated, or distributed except according to the terms contained in the + * LICENSE file. + * + * Removal or modification of this copyright notice is prohibited. + */ +// writeBoolean x 3,543,238 ops/sec ±1.59% (89 runs sampled) + +const { Suite } = require('benchmark'); +const { codec } = require('../dist-node/codec'); + +const suite = new Suite(); + +const account = { + address: Buffer.from('e11a11364738225813f86ea85214400e5db08d6e', 'hex'), + balance: BigInt(10), + publicKey: Buffer.from( + '0fd3c50a6d3bd17ea806c0566cf6cf10f6e3697d9bda1820b00cb14746bcccef', + 'hex', + ), + nonce: 5, + keys: { + numberOfSignatures: 2, + mandatoryKeys: [ + Buffer.from( + 'c8b8fbe474a2b63ccb9744a409569b0a465ee1803f80435aec1c5e7fc2d4ee18', + 'hex', + ), + Buffer.from( + '6115424fec0ce9c3bac5a81b5c782827d1f956fb95f1ccfa36c566d04e4d7267', + 'hex', + ), + ], + optionalKeys: [], + }, + asset: { + delegate: { + username: 'DelegateA', + pomHeights: [85], + consecutiveMissedBlocks: 32, + lastForgedHeight: 64, + isBanned: false, + totalVotesReceived: BigInt(300000000), + }, + sentVotes: [ + { + delegateAddress: Buffer.from( + 'cd32c73e9851c7137980063b8af64aa5a31651f8dcad258b682d2ddf091029e4', + 'hex', + ), + amount: BigInt(100000000), + }, + { + delegateAddress: Buffer.from( + '9d86ad24a3f030e5522b6598115bb4d70c1692c9d8995ddfccb377379a2d86c6', + 'hex', + ), + amount: BigInt(250000000), + }, + ], + unlocking: [ + { + delegateAddress: Buffer.from( + '655e665765e3c42712d9a425b5b720d10457a5e45de0d4420e7c53ad73b02ef5', + 'hex', + ), + amount: BigInt(400000000), + unvoteHeight: 128, + }, + ], + }, +}; + +const testSchema = { + $id: 'accountSchema', + type: 'object', + properties: { + address: { dataType: 'bytes', fieldNumber: 1 }, + balance: { dataType: 'uint64', fieldNumber: 2 }, + publicKey: { dataType: 'bytes', fieldNumber: 3 }, + nonce: { dataType: 'uint64', fieldNumber: 4 }, + keys: { + fieldNumber: 5, + type: 'object', + properties: { + numberOfSignatures: { dataType: 'uint32', fieldNumber: 1 }, + mandatoryKeys: { + type: 'array', + items: { dataType: 'bytes' }, + fieldNumber: 2, + }, + optionalKeys: { + type: 'array', + items: { dataType: 'bytes' }, + fieldNumber: 3, + }, + }, + required: ['numberOfSignatures', 'mandatoryKeys', 'optionalKeys'], + }, + asset: { + type: 'object', + fieldNumber: 6, + properties: { + delegate: { + type: 'object', + fieldNumber: 1, + properties: { + username: { dataType: 'string', fieldNumber: 1 }, + pomHeights: { + type: 'array', + items: { dataType: 'uint32' }, + fieldNumber: 2, + }, + consecutiveMissedBlocks: { dataType: 'uint32', fieldNumber: 3 }, + lastForgedHeight: { dataType: 'uint32', fieldNumber: 4 }, + isBanned: { dataType: 'boolean', fieldNumber: 5 }, + totalVotesReceived: { dataType: 'uint64', fieldNumber: 6 }, + }, + required: [ + 'username', + 'pomHeights', + 'consecutiveMissedBlocks', + 'lastForgedHeight', + 'isBanned', + 'totalVotesReceived', + ], + }, + sentVotes: { + type: 'array', + fieldNumber: 2, + items: { + type: 'object', + properties: { + delegateAddress: { dataType: 'bytes', fieldNumber: 1 }, + amount: { dataType: 'uint64', fieldNumber: 2 }, + }, + required: ['delegateAddress', 'amount'], + }, + }, + unlocking: { + type: 'array', + fieldNumber: 3, + items: { + type: 'object', + properties: { + delegateAddress: { dataType: 'bytes', fieldNumber: 1 }, + amount: { dataType: 'uint64', fieldNumber: 2 }, + unvoteHeight: { dataType: 'uint32', fieldNumber: 3 }, + }, + required: ['delegateAddress', 'amount', 'unvoteHeight'], + }, + }, + }, + }, + }, + required: ['address', 'balance', 'publicKey', 'nonce', 'keys', 'asset'], +}; + +const accountEncoded = codec.encode(testSchema, account); + +suite + .add('Encode Lisk account', () => { + codec.encode(testSchema, account); + }) + .add('Decode Lisk account', () => { + codec.decode(testSchema, accountEncoded); + }) + .on('cycle', function(event) { + console.log(String(event.target)); + }) + .run({ async: false }); diff --git a/elements/lisk-codec/benchmark/encode_decode_biggest_lisk_transaction.js b/elements/lisk-codec/benchmark/encode_decode_biggest_lisk_transaction.js new file mode 100644 index 00000000000..5f8ea6e3dee --- /dev/null +++ b/elements/lisk-codec/benchmark/encode_decode_biggest_lisk_transaction.js @@ -0,0 +1,613 @@ +/* + * Copyright © 2020 Lisk Foundation + * + * See the LICENSE file at the top-level directory of this distribution + * for licensing information. + * + * Unless otherwise agreed in a custom licensing agreement with the Lisk Foundation, + * no part of this software, including this file, may be copied, modified, + * propagated, or distributed except according to the terms contained in the + * LICENSE file. + * + * Removal or modification of this copyright notice is prohibited. + */ +// writeBoolean x 3,543,238 ops/sec ±1.59% (89 runs sampled) + +const { Suite } = require('benchmark'); +const { codec } = require('../dist-node/codec'); + +const suite = new Suite(); + +const biggestMultisigTransactionRegistration = { + senderPublicKey: Buffer.from( + '0b211fce4b615083701cb8a8c99407e464b2f9aa4f367095322de1b77e5fcfbe', + 'hex', + ), + nonce: 1, + fee: BigInt(1500000000), + type: 12, + asset: { + mandatoryKeys: [ + Buffer.from( + 'd0d49f8798675bd47e959f6bf82b6d06c7c65079282eaa5e48e3f97272444dad', + 'hex', + ), + Buffer.from( + '843fc4a097049ef5495b98886f3d49e2c7af6da7997cee1fb0924c7eeffd659b', + 'hex', + ), + Buffer.from( + '8397fb0c9f925f05611a0761a86a1d1cc94aa6e5042188b28a86797ef98aa570', + 'hex', + ), + Buffer.from( + '037793853578dc22ac0300fcaf6f6a48f9b7756acda9f72968703d9d85e0cbd9', + 'hex', + ), + Buffer.from( + 'eb5d59d05437b4769cc5dddfa2905407be5ba407681582d8d83f59e7a41e3b5f', + 'hex', + ), + Buffer.from( + '90d8491360b7756098d4f3c9f7e57eb610dce829a9139ea674e41626bffbea96', + 'hex', + ), + Buffer.from( + '914d2fa3422d7ba3231238e858d6fc1a3912152ef315d22d455deb7b87bbe7e6', + 'hex', + ), + Buffer.from( + '8d8eabce4592f213635201442a4966c263a38f919816fc1b779e3dcbcc4f2107', + 'hex', + ), + Buffer.from( + 'e1c65a5329806611f19a201469f3030f713f4affdb215d2d8b830e654177a275', + 'hex', + ), + Buffer.from( + '1d7e27f168266f86193ea0d68d1aec723e936934aae527bce0624984690232e3', + 'hex', + ), + Buffer.from( + '9e006c0cb22ccca0ecad7ec880edb8301b7533af19dcc1b708ac7e5496e82dc3', + 'hex', + ), + Buffer.from( + '0c38d9e4776e6eabff0107694bd4628c066589d2264733fe0db30e205ac03904', + 'hex', + ), + Buffer.from( + '2cdc2e19b23662cf971b4508eeeef0dd98b4bffd76ad0adeab5ab2b94a77f257', + 'hex', + ), + Buffer.from( + '1685b48cf0b3f22a32f6222c79d8d540ef67260f93896065a9894f1a550e566a', + 'hex', + ), + Buffer.from( + 'ffc83fd966e4f0107bad200f417f5baa6e2659045f45f9472c030937f08f265c', + 'hex', + ), + Buffer.from( + '176437bac61be4418c7810a84f800602db77984321b36e6813b3437d37528fff', + 'hex', + ), + Buffer.from( + '28c5dba745e9710d6c3d6c644a1f757750c605ee17e335642d6069010d02511c', + 'hex', + ), + Buffer.from( + 'e8208a3a2d0620b9c0544c50e1923c7c8adb6e0b8b769a74a4d0beea28a8686f', + 'hex', + ), + Buffer.from( + '11f4f7b1bc570ac00275917741a99c6a001afa098ac99f8de5496c5d52d10727', + 'hex', + ), + Buffer.from( + '8437c477831b2426bcf074efa91910e89496465e33a33e180e768a8295bd9423', + 'hex', + ), + Buffer.from( + '97e9d7c6854a3181205547ca6167ee687407f524a802250016166008c31b48ed', + 'hex', + ), + Buffer.from( + '0867e919b7d413210062cff39910532cf6f52b006b94af7feafec058065222d8', + 'hex', + ), + Buffer.from( + 'fe264b878064a19867b7a1776f78414e130bf9982adb7aaeef239cf9ef014c0c', + 'hex', + ), + Buffer.from( + '3e9e4adb6d9916431e0018da806b35c8e42a02c9d2932b1bcc846a46fa2c1404', + 'hex', + ), + Buffer.from( + '3c8c889775c3f7a55c2830167a1f333d02f0b5a703de80dc009d1fc70da163bf', + 'hex', + ), + Buffer.from( + 'c8a7b274ca0e72e61afac372dc4af12a536635432fe3f689e3b2e09cfe06a3b7', + 'hex', + ), + Buffer.from( + 'fd7b26b20d3bf421dde39cd2b682a1173484ae45d273983e21bd52f56ac8a67f', + 'hex', + ), + Buffer.from( + 'f71b71985e6fa9338cca8af3214f05a33978a7e5e87d3c696e604c4ef51f1ef4', + 'hex', + ), + Buffer.from( + '3e2e19504e34d5403b7773756a7ffcdd72e1fd7877f3900becd5773dae721372', + 'hex', + ), + Buffer.from( + '69c6cc198981daf7d045b1a859c14b2df84ccb5abbaaab1786ac34f01fdf783b', + 'hex', + ), + Buffer.from( + '9bc2203f976cc165b4f683afbc337aa5bbb117ae5471716ca5d2a2d6ed15f85c', + 'hex', + ), + Buffer.from( + '7c2ad0b0a2b278a4f359ed0bc25ea1c3bb573974e3a8a8624cb4c0e1a312d20e', + 'hex', + ), + Buffer.from( + '3c025e87660fb9399411bb6738a673a11ae881c9508cc5abc1552fba54e8ae6e', + 'hex', + ), + Buffer.from( + 'a853a32f8695e15879fbdb6a9a440966cf71525a91df7b4ffd869ff850be1d03', + 'hex', + ), + Buffer.from( + '931332e31786a72c43821d7217b476199d503f35e9fee9bf9ef8b5190269b475', + 'hex', + ), + Buffer.from( + 'b34e268fc98b657f74796adcb74c75b624ff1c261ff68a818ecf29839ba55e50', + 'hex', + ), + Buffer.from( + '7644124c92dd945ba9b41db4f97144a966ea4b996940357c40416cdca265cbd5', + 'hex', + ), + Buffer.from( + '212f62dc3a75e70154b4ce2a23567b162b750dcc0503872117fda7c0a5a99926', + 'hex', + ), + Buffer.from( + '1ef8b3df2b2fb109341a6120a0811a2a08bb7dc1bc78ab1eaeeba81957cb2868', + 'hex', + ), + Buffer.from( + '90b3382069e4217c8278feb60499746983939d093cc3b3671b51686926657596', + 'hex', + ), + Buffer.from( + '8ba33a1bc313aec22962b057db5d5481cf66b046a8f5c9f0e9a2b01c718c891b', + 'hex', + ), + Buffer.from( + '669e5afa09862e11307d1cae4825b5ecd7446ca3b74692a25bd2058661ed3868', + 'hex', + ), + Buffer.from( + '6e7e4443d5a1ab2a1b21d540c503a6ff0410b6e8496b88d3af1eee30f701207c', + 'hex', + ), + Buffer.from( + '7853117e2d3bee9be19cb202441709e2d39920704d3829aff15c8bb147792187', + 'hex', + ), + ], + optionalKeys: [ + Buffer.from( + '2be7ef46cfc5d52e6b667b069767c694b3f59fb5b8c4a4418c7d025b582fdc0d', + 'hex', + ), + Buffer.from( + '62128ce026e15852a196e5e96257030577e22c66882377b880e552626c467a2d', + 'hex', + ), + Buffer.from( + '08c0e1522a5d83d8cfd51111b14f58a38aa8e74dad55bd6d93d16f8cda3c3f48', + 'hex', + ), + Buffer.from( + '162641bf4eec471b3d51d9413c3aaa00db03186a19326cfc6e94ae9ce67c6a3a', + 'hex', + ), + Buffer.from( + 'f9e8c74b0a3c91350ed38d2095455bb65599dde5f5ee2e540e1976c6c28330b9', + 'hex', + ), + Buffer.from( + 'f0038c89ff1471381f76ea18da48ab2fd5b89d59e780d8417a00882545368f96', + 'hex', + ), + Buffer.from( + '7e06428cd4c340388eecec1ee9c9f06b9150845ad8cae7937dbb89acc78e9e93', + 'hex', + ), + Buffer.from( + '110cd994c2e9f6bfe47499966a63a6f2a428dd8a18ff45825e6d89fb540d793b', + 'hex', + ), + Buffer.from( + 'd3729facd6f4f66fc76ba9b92fe99b12b9b2a1e758fa775fdb37a3a00c9c6797', + 'hex', + ), + Buffer.from( + '004f1eae8f8c04ff24e1c06f611af862316d75f9bf0aed7b324ee56d60dc92f2', + 'hex', + ), + Buffer.from( + '53e87ba6b15c8ae227155651093a71456ea5a1ca1cea02d7b88d5f04e2aa93e2', + 'hex', + ), + Buffer.from( + '8e46dfc184b95e73b1c327d9f4d36bbac3c9f9d2d9ce0339180dcfcdac08cf5c', + 'hex', + ), + Buffer.from( + '92eaaa35e74c4ef7f8057ac58611acddaa76ba2c33fb23207b4f435e41ef6824', + 'hex', + ), + Buffer.from( + '29e1f34c3df087f02da1384fac0e15b102f6010ccd960eeb61d886ea734242d1', + 'hex', + ), + Buffer.from( + '1ee4f9954c1ea6121229a1e30931fb246d7d822d4a3522f0e70b87e93627ac4f', + 'hex', + ), + Buffer.from( + '0336c0724d450d99274f2402a6410a9afc5dc4dafa87ed6086a321ac5c82bf90', + 'hex', + ), + Buffer.from( + '4ceafc674628d10aae232c03b0229191e3a45ae0d31dd6568b8c2cda27b9d0df', + 'hex', + ), + Buffer.from( + 'f38076b123cc23269b1328af476365f8ade009ebe99f1e106c6aa1208eb269bd', + 'hex', + ), + Buffer.from( + '77246733b377f919ce048a282a5d715016c7d4cdb514ecf088571f777838f34e', + 'hex', + ), + Buffer.from( + '7d1655ab4fa2d828b7656162c46b2c7d251dede5e3c36c68d31e309cd896e00d', + 'hex', + ), + ], + numberOfSignatures: 44, + }, + signatures: [ + Buffer.from( + '4d38666425327e3c950cef3d5d6bed86b7a32e32002651a49ed5dbd0143d9b2fe94d1aa970ff6492da8e174f844d3c4736f980b322d35b76903969c48375ad8a', + 'hex', + ), + Buffer.from( + '644abb27920144bb4e4a5030e77cbdc53ea03fb9dd4ecd9abb8a5653c581f766b4ca6f33ce5f603330959e2f8263ae187c35b1840a840107cb42899bf854db01', + 'hex', + ), + Buffer.from( + 'a20859fecfbd7a4a8172fc740e69abda576d508b41c5a952a5c545e0d8cd2625f22a1b1b16e8eea3ce6694e409c7ee36e94c9cc08127ea5a83745af0a06cc576', + 'hex', + ), + Buffer.from( + 'd4c0eb97d2df39576e95b8c12cc6883d0e71d7e792c054d7150bcca061061b8e19cb9ef0a90d694eec17cecb8bf33e1b514cda2478298f6d09489f8fefe0ced6', + 'hex', + ), + Buffer.from( + '630755a2fb1cf34f308a6ddc6866da2a9ae4a57b13b11a1ce4990e289f3b4ffb4cbf0363ab3c5f539c167b236be4ceef4daff86be833ad76079853d4934a035e', + 'hex', + ), + Buffer.from( + '8347b0c139071fe4ce90ca53b83d557522bd3384ebc918afb45e9895800ab269e6bc4ae4390222d28a05c2a1b00d3dc55b81b8db85741d9d321c71189a1a4f87', + 'hex', + ), + Buffer.from( + 'f378fff268a79c98ae946304469e8c69d26c342665b07873a6cb4042489431ada8c3ba81b847fad6cd4443f604d71ee371a53ab2c9500bc7df7667207d96a373', + 'hex', + ), + Buffer.from( + 'bd4d1ea1384317f8977de741bbd54229728a06d7259cbf45800d309e5ee8bfcf3c85f7c19afaeedfe6efb70311c79a7570fe6a14a37c5316fdf7fb95fbdd5e3a', + 'hex', + ), + Buffer.from( + '82fbaca37405db859bff461fe8ee5184ca327b55d590b4b8db0e89f51c545d281d0affb7f6bb6ea9552026f7b1ca858337eb1dd322b1ba1b533bbb58c3565eca', + 'hex', + ), + Buffer.from( + 'ea3f88fb092982051bf3ef6a35771278ff33855a1a5632561bd6b8d70ca8717d59c2beff5cb3c99bc85b0e59f149bbef96a23eb1d30298c656824c46bf899e40', + 'hex', + ), + Buffer.from( + '1652e7d595d7a200cc465371ec6c9ed21b301ee2ba127d8e09fc7d83189ee8daa856c25ee4309bb2304a37645752840b90e064ee0948b1752cc9b6e4c1560a07', + 'hex', + ), + Buffer.from( + '834c25f2f69b861bbaa3a88f34f91515ef338583cd5b88230c2d3746eef14991e4495878d3ce61800db4a5fcad07f84a132f081a297641470e3b42a7a28d9e04', + 'hex', + ), + Buffer.from( + '32cebb9e67128017f4521e620d4921bd777314eb06d8f64bde43a2701d7988c413d49907b7cd947823eb9b352fe31e45077287925036aab8fcc84c7fe96956cc', + 'hex', + ), + Buffer.from( + '0be3fc36853786b88384d941f2cdb83e435b7254268c2465171f9d3c46f76014e9d3445b27b64359ad80e7bd80874fd91e3dc1cd24d5320944ce0db9373dcfb9', + 'hex', + ), + Buffer.from( + 'a3319caf35e22c0ef4d5024ad32d7276dfb0fe51699167c5cab7b6ba658b2ebd2316c86213dd8410b9fb280eae57d38283344ac5301d89561767c01fa71025b4', + 'hex', + ), + Buffer.from( + '5b0e07fdfb5ff042a64fdc51971bef02314990a665b6635d8188220d688dda617b5b88a45961050462ad513b7b343f0d436c206434cba6f57670180e3bef1891', + 'hex', + ), + Buffer.from( + '95df2e48ad98f68dd3a5d3750af788db3713448579a2ed05ef382ab2f66e247827d73b927d9fa7dfd41306c311ed19c7d9df9912d183bccca4aabf20f7f24b12', + 'hex', + ), + Buffer.from( + '1346923d836f51177ba3fe31c051ee4f1e9d9d49461359d9dac1d8228614ac4695fa9f3e33329cbe6431e1c8bb5153263cd702d55528cd7a5a4493cf820c5e6f', + 'hex', + ), + Buffer.from( + 'b2016c73eb8a7b38643957f2d10a991ffd8a2f99ef656fc27ce94ffb858756e9f83954e5282ff69bdddff381e28fe7e86fc6fd8a4781d97198a25288d466b1d4', + 'hex', + ), + Buffer.from( + '8efc83f30d2fddf992c37b1defb478cb595dc3d0eae005028a4e3e872678e6d2a1bd176763fba1d2dfdf6d86549bad391e6f70bfccf6660c11f85daa02a4d227', + 'hex', + ), + Buffer.from( + '04ebe5fca3871f5cd3c815d9cde5bf5519d9d0489688eb716a7af6863fe2f8986d0d7702922aaeeb48f5c25328a405419037a1974b0e2292a3825d1d48b60158', + 'hex', + ), + Buffer.from( + '025ce3ecf8f221d3b3ae644c6750cf6c35c6defc3b07ba45b5f91a52e636cce4570bbf2cbbc0f0891dea955c67c41c2608ae2b083ddf8cde3ffc38fd3f902f6c', + 'hex', + ), + Buffer.from( + 'd2abbd95622d749ac0408c9e767e713e8015717c43472c728034bde5cba4df2186e81d638782a674175d3a93b64214cbda38f64c65ee99d9ffd4c543bd6a7fde', + 'hex', + ), + Buffer.from( + 'ed91971a73654b6cbc66501cf345a81e0b5714c4328311bf03dcde18dc14e5b37b7c3714034b2110b6fed25da9d1bbcc5ca3f0ed51f45b08cf4e3bd2ae1ea2df', + 'hex', + ), + Buffer.from( + '5dc7e31663527c56aef69f1addbec15fd73ee8ff93718194492a16987f822e3ac51d9b2095b01cf25752a2cffc7009fd02fcf950257ed115a423f4811de06be1', + 'hex', + ), + Buffer.from( + '1f075ecf558912babdd29e4551aeaafcb714dc53344b6cfd1ef90163bdb328ef248d22b3a6ca98686fb37d3b038823f76e0df22f500f2372077b6be9539a0a63', + 'hex', + ), + Buffer.from( + '033b9956a0d60a861705eafab08209156286bc6a5e0e2d1eef3692781bfc33ae6428b8c8b193af81098ac47799d88d32ee8128d16e085208966e18fc375a6e54', + 'hex', + ), + Buffer.from( + 'ed6109ab65df3d4d5fefadd0268ba22e65da15d6cee5c19a26fd5c8a4f20aa4fd1ad6f8a8d2cdd97d78908efcb08bd1765be7364cf4eb6c1b872c7e41fb499dc', + 'hex', + ), + Buffer.from( + '8d15945b5d3cfb055026eab29c6776939f12aac5c51224159513af27e22beeed50c046c9071cce59ec0f6fc5576604468cf66e0ceb033c91ae1164a494bbb2b5', + 'hex', + ), + Buffer.from( + '1a0cc21131ba0b46871c5f963d6d8389019fe8254dff2b6f8a18ad96a81c7e3084677a345eb0125a5ce77d27ffec4279183aa874da466625ba5f8466fa950364', + 'hex', + ), + Buffer.from( + '526612cabb51b33ac478af96a5af368c68983592a046c5b2e4d8d856d6f1e18ecb76aaf9c337ceaf88f83607f20ec899a44d16377c6bfa2f4378a582d0883542', + 'hex', + ), + Buffer.from( + '5a01d7f9d1ed2456578feeacd619c9b4ad9a6cc7d5aca108f15549ffd55a06f9ecbbd289c041be04056085926216a337b4c9fd6734f066a16d84aa7f9506aa8a', + 'hex', + ), + Buffer.from( + 'd9c13fa100a2b51b3b588fdfc096ff90acffe86acfaa6085c725a38a2ae2fbce318354d3d4aa0948f94538351976cd3e40e6e339d6dcad8a435d292eee35176c', + 'hex', + ), + Buffer.from( + '21526e4124db054803e0095f8fb90c07bdf875f389d7f3a36d36f8d734fe4ca1c3bc9d2658f66b50c3845996cd7b097a6181ab0bc6b64873e86101ca667a9a48', + 'hex', + ), + Buffer.from( + '46230cf1b3eeca92e57c99c3f8769e0362ced3cefdb01519ce64f6a624667d6b208b17b2250873c405d3bfca42153148e90c390f00534b404a763b14b501b7ce', + 'hex', + ), + Buffer.from( + 'a35be608a26e0379281783b7a11ed337e41036b703f3de136dfc40261802a4187ec83fe958a6ec10de40592537368be2f283560ed768c92021482208c70f11c6', + 'hex', + ), + Buffer.from( + 'bef33369256747cbde6b227dae9153edc8c5beb4776183acf654e8b1ac1029f6f342d69f0c4b1f177e201601b1a10044cd30a3af8388452cc6ad78461814b02a', + 'hex', + ), + Buffer.from( + '4b9316f65da34a4f005562ee50a33f11fed4846e35f0e889afecc7c8cc7a6d6afcd35afba1ca02ff722b9eb3886ccf485901bfec465fb0756b2d00ef10bceee0', + 'hex', + ), + Buffer.from( + '41ee69e8eb4b3b90c3f7f342ee01f31259895340df0005fdc15c9a549e54d4e54ac1407f0e921633e26dc85849e6733620f02b849f6814b075ebaba5a19962bd', + 'hex', + ), + Buffer.from( + '6330f1d37ea07a81d0a214108b61cfa74ffa5cce227488315fb2ca7b279332e6e411fb494d9f7acd82546e7851417373385a38f8c6360be3a074a955692d66f9', + 'hex', + ), + Buffer.from( + '239dd74b1872d11a94a836ed37eae165d18b0e664ce773041751048afb235d6075248169f953c50d86c70c9bf9833f186cdbb254feb4cf2098f2e28ca1841bb9', + 'hex', + ), + Buffer.from( + 'bfceade223b4b23fac1fb997be13c7c20e8b5d860302d690a37c57594a67f1311fb0c88e9b5c9a1756a015b1bcd21a6c4042b7d8292a989774c2260ac6f9ad18', + 'hex', + ), + Buffer.from( + 'a344dacae58477f5c73ad691370cc361df8b45bbd20b629efe44e815f7b5773e061624c29eaac1af4ba95f8d9a0d4925ba6cfc699cf9eb145d186a439d580912', + 'hex', + ), + Buffer.from( + 'fc966f32f7ecc239a05d4d31cffca5365ff8d005988cbd5ab13b7eab551f9d27291c34a58b15ffb45980a825f16d3762e3bddad62948e5f32e7f0fa40eb4d5d3', + 'hex', + ), + Buffer.from( + '339fd39a1929f18747b89ce2ee9f0c8e8d1b0f6b61a380e79301a6f93770a61a9a2870510bb317fcd477d57e8516bb7ea9e0ba22a2dd902f08dbce63c63bc7d7', + 'hex', + ), + Buffer.from( + 'd4e9414e748d208296d80f64c8a8d6fb01d9fe17b93c59fa683bbb3b5feec82e85142500dd3540fdce4ab8d3e2d768abb53c284f8ad1fc77020f26f2707ab055', + 'hex', + ), + Buffer.from( + '8adbfc2da88207b88b18a4412a1f17535156d5c0c7d2678dc60e884490a05c7ff089cc596438069c73d81ba65a7ae3932c375d4a35041da873b0f8f9ba235150', + 'hex', + ), + Buffer.from( + '254d189743e032dc8eb3f144ff3e8a68993473f0a98775cd3c6c4c1108c5febfa529663fa4267b65b85b3a2ff7ae3debd1dcdc58ee7ed591a51da253a26f139d', + 'hex', + ), + Buffer.from( + '11e0e4ec0b42c4d6f00aeb8c99d4f5789b30284b008f135c082a6e0216a61ce48e75d12c4c636d3428debaca56e25b7766f6a2defa2737b085be9a98676b4c9c', + 'hex', + ), + Buffer.from( + '1b2f2ed578b50c7193dc5d1bc75fbd71524b8152ba538e06e8343a5a9379f4e2afcdff17a69c9c5d47f7c38713578eb74c441a5d656e14ee3e32fb2c7b04ff05', + 'hex', + ), + Buffer.from( + '42e0a76a67f95d88e81ffce5a37718029b4a14beaf8a22dc2463128668496a6bfd0a4b6b4b13a763d1ba4a1038cd3471570dd777088c444a94d66e5445b4e7e6', + 'hex', + ), + Buffer.from( + '46ffd403c97042657da30a37b263e90549bbb72925c79aeaf42ee12df88888874d4ddbceec3c217cf822708ddfaa96d76a6feb46750bd6c43d9ec5721a2aa185', + 'hex', + ), + Buffer.from( + '5aa6a290e9d49d3d7def1b560d64d8179214cbf2b5836b45b8f699ac62f40489661a7c204f03bbcbacc54ef636d5e0847acb36b6f84bc4d0e0d6dff7a9c6c46b', + 'hex', + ), + Buffer.from( + '2a42c9ce8012cd01d158c8af64470bb647ea3b9361096f5074bfc7e2db29210ad86fb3e4b411acd4b75d1f2960691f019dcc960eecb79b23a14d9142e853c516', + 'hex', + ), + Buffer.from( + '87776e14ff3e4e994047f693b936e1ebeec36491b47174cf9a7014276e1b75c28485184eb8a3838677155276a9ca800afc1d3a9091a03143722da3bbaf41b2da', + 'hex', + ), + Buffer.from( + '4018d0738454e693db76b840b10ee38414522454581f5920b657df1f0093cfc3076aeb322715f025573e6a070a4f99b8618e31f3990fafe4ed78762ffbbcd10d', + 'hex', + ), + Buffer.from( + 'c37964cb9f9fb03ab4a8752b6901f5a770b3b24f96a4b80f53442d9b0657d93560821d5654f8831fa04581d604f80a5dba483d521dd71457b8099f15d5f3a9bd', + 'hex', + ), + Buffer.from( + '1606c663aa513213f6f0a7a3801cc94b426e2180df616e8759f68f87c65c8cf6eb3023fd03f12051ccd2ce1b1aeab59a12f790c45f49eff06cca4b31760fbc05', + 'hex', + ), + Buffer.from( + 'f8fc1d2873498ca388b6c112da61af7a536150edd59ea806529e2938f913aa051702979f022a5080d629d516d92832f0cb1a5423e87e0c3e98dc08214c82a50d', + 'hex', + ), + Buffer.from( + '279e1a639e7818800ed3254d69accc3fd4b0af98cb787aa6e187d67428af583c3e160325bb9062f3bc6569a2f67a146d97b815c95932b9bf93b1bbfd310b05ab', + 'hex', + ), + Buffer.from( + 'e2a5c3009c679d72b906272bcd23638467d14e3fe63d32779c4dcd59a560c6e9befa06df0884fefd43675438ef7b193bff169724fcbaaffe13abc68bc6eac3b8', + 'hex', + ), + Buffer.from( + 'f3e206f0c8c7401d16e3dd7b93142443d75ed03daf7cc29c1c72675db6dcf3b4ba08c376dc169501561478cf5b31768d27ef5a83ff1fa8659516957470026e72', + 'hex', + ), + Buffer.from( + '0c9a00a2b34a0d09417c0e1bacb0b2faaa2e4ef73ff700f6c7417e859c1df029d8b5992a04e1f336361b3ae63af523544e596b0f7465ff28bc7de08da63833e1', + 'hex', + ), + Buffer.from( + 'a58c7e915da617cad5b1ba6c1848a6306baa404de32f96e607302f4121d4e97fe9467bef991b7a9afce3a0315347182cc555f4b75127bf46154f894dd4e398f4', + 'hex', + ), + Buffer.from( + '3d3a436f93834b78a1fe6487fa45c4e51dd051a986be943b700d9fe49282438beb2e7aefe8e19161f84a1306acc0baa2107f6817f5c6bc261146dfc52f6b51fd', + 'hex', + ), + ], +}; + +const testSchema = { + $id: 'testSchema', + type: 'object', + properties: { + senderPublicKey: { fieldNumber: 1, dataType: 'bytes' }, + nonce: { fieldNumber: 2, dataType: 'uint32' }, + free: { fieldNumber: 3, dataType: 'uint64' }, + type: { fieldNumber: 4, dataType: 'uint32' }, + asset: { + type: 'object', + fieldNumber: 5, + properties: { + numberOfSignatures: { + dataType: 'uint32', + fieldNumber: 1, + }, + mandatoryKeys: { + fieldNumber: 2, + type: 'array', + items: { + dataType: 'bytes', + }, + }, + optionalKeys: { + fieldNumber: 3, + type: 'array', + items: { + dataType: 'bytes', + }, + }, + }, + }, + signatures: { + fieldNumber: 6, + type: 'array', + items: { + dataType: 'bytes', + }, + }, + }, +}; + +const biggestMultisigTransactionRegistrationEncoded = codec.encode( + testSchema, + biggestMultisigTransactionRegistration, +); + +suite + .add('Encode biggest possible Lisk transaction', () => { + codec.encode(testSchema, biggestMultisigTransactionRegistration); + }) + .add('Decode biggest possible Lisk transaction', () => { + codec.decode(testSchema, biggestMultisigTransactionRegistrationEncoded); + }) + .on('cycle', function(event) { + console.log(String(event.target)); + }) + .run({ async: false }); diff --git a/elements/lisk-codec/benchmark/encode_decode_small_lisk_transaction.js b/elements/lisk-codec/benchmark/encode_decode_small_lisk_transaction.js new file mode 100644 index 00000000000..24f61eec545 --- /dev/null +++ b/elements/lisk-codec/benchmark/encode_decode_small_lisk_transaction.js @@ -0,0 +1,100 @@ +/* + * Copyright © 2020 Lisk Foundation + * + * See the LICENSE file at the top-level directory of this distribution + * for licensing information. + * + * Unless otherwise agreed in a custom licensing agreement with the Lisk Foundation, + * no part of this software, including this file, may be copied, modified, + * propagated, or distributed except according to the terms contained in the + * LICENSE file. + * + * Removal or modification of this copyright notice is prohibited. + */ +// writeBoolean x 3,543,238 ops/sec ±1.59% (89 runs sampled) + +const { Suite } = require('benchmark'); +const { codec } = require('../dist-node/codec'); + +const suite = new Suite(); + +const transferLikeLiskTransaction = { + senderPublicKey: Buffer.from( + '0b211fce4b615083701cb8a8c99407e464b2f9aa4f367095322de1b77e5fcfbe', + 'hex', + ), + nonce: 1, + fee: BigInt(1500000000), + type: 8, + asset: { + amount: BigInt(15000000000), + recipientAddress: Buffer.from( + '0b811fce4b615883709cb8a8c99407e464b2f9aa4f367095322de1b87g5fdfb1', + 'hex', + ), + data: 'Test data', + }, + signatures: [ + Buffer.from( + '4d38666425327e3c950cef3d5d6bed86b7a32e32002651a49ed5dbd0143d9b2fe94d1aa970ff6492da8e174f844d3c4736f980b322d35b76903969c48375ad8a', + 'hex', + ), + Buffer.from( + '644abb27920144bb4e4a5030e77cbdc53ea03fb9dd4ecd9abb8a5653c581f766b4ca6f33ce5f603330959e2f8263ae187c35b1840a840107cb42899bf854db01', + 'hex', + ), + ], +}; + +const testSchema = { + $id: 'testSchema', + type: 'object', + properties: { + senderPublicKey: { fieldNumber: 1, dataType: 'bytes' }, + nonce: { fieldNumber: 2, dataType: 'uint32' }, + free: { fieldNumber: 3, dataType: 'uint64' }, + type: { fieldNumber: 4, dataType: 'uint32' }, + asset: { + type: 'object', + fieldNumber: 5, + properties: { + amount: { + fieldNumber: 1, + dataType: 'uint64', + }, + recipientAddress: { + fieldNumber: 2, + dataType: 'bytes', + }, + data: { + fieldNumber: 3, + dataType: 'string', + }, + }, + }, + signatures: { + fieldNumber: 6, + type: 'array', + items: { + dataType: 'bytes', + }, + }, + }, +}; + +const transferLikeLiskTransactionEncoded = codec.encode( + testSchema, + transferLikeLiskTransaction, +); + +suite + .add('Encode transfer like Lisk transaction', () => { + codec.encode(testSchema, transferLikeLiskTransaction); + }) + .add('Decode transfer like Lisk transaction', () => { + codec.decode(testSchema, transferLikeLiskTransactionEncoded); + }) + .on('cycle', function(event) { + console.log(String(event.target)); + }) + .run({ async: false }); From a9c1236ceafe25b4ad0cef79e4374e9ab1c20a85 Mon Sep 17 00:00:00 2001 From: Pablo Vicente Date: Fri, 29 May 2020 13:45:11 +0200 Subject: [PATCH 5/7] Add benchmark for block encoding/decoding --- .../benchmark/encode_decode_full_block.js | 312 ++++++++++++++++++ 1 file changed, 312 insertions(+) create mode 100644 elements/lisk-codec/benchmark/encode_decode_full_block.js diff --git a/elements/lisk-codec/benchmark/encode_decode_full_block.js b/elements/lisk-codec/benchmark/encode_decode_full_block.js new file mode 100644 index 00000000000..70b25c1036b --- /dev/null +++ b/elements/lisk-codec/benchmark/encode_decode_full_block.js @@ -0,0 +1,312 @@ +/* + * Copyright © 2020 Lisk Foundation + * + * See the LICENSE file at the top-level directory of this distribution + * for licensing information. + * + * Unless otherwise agreed in a custom licensing agreement with the Lisk Foundation, + * no part of this software, including this file, may be copied, modified, + * propagated, or distributed except according to the terms contained in the + * LICENSE file. + * + * Removal or modification of this copyright notice is prohibited. + */ +// writeBoolean x 3,543,238 ops/sec ±1.59% (89 runs sampled) + +const { Suite } = require('benchmark'); +const { codec } = require('../dist-node/codec'); + +const suite = new Suite(); + +const block = { + header: Buffer.from( + 'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad', + 'hex', + ), + payload: [ + Buffer.from( + '5d35f7abde893bd14e7f8e100309dc14c055eff356bfd659e61edc404a495767c867aac867a1e55a71a14881d4ae9e5402e00ebcf781f39a1f548f3ea6c7e46cb3db4721e4e6226bf2ec1f52ddc3a007f6e83effe63ff2689bbed81784a9bdc17ec78df698b0ecfe348c9ac174ab1161eb407168a19d3c880deaeb974369ec6abfdd5a784934aed67d3cd6f1cd0486d2f3e09a916b10d51c56cf670a6b1fca14acfaf3f44e6f963197a21005eb7996e8cefdc08f4b6b05ceefb9908758b22f26cc65ccdf32dc7846bd059f0cecd9acf5fdc8ab0de93a419ec6701d41', + 'hex', + ), + Buffer.from( + '206e5c7c7574cfc21bd89dcb04d3e64636e786e5a02df2c98cd83bbc7b6a2bdfa426c606affedc8ce7c2cf4e1e160e830efea6a053150c202c6eedb46fa23cdb4e5bf57b037a29882f36f3c13062d30de0711ace4d0b3aaabcdd5d3360bbc93b4e46ee01e29367c61f008fb3f7d5ca832c843c3601f1ebefd5e0fcb1cf69f626d2453ed815894c23cae8b0768f98a1ba160092d9efa10af6e20dbd7a2877a52eb78b0bbc44a68178ea35ef2b4c451a58e3de8c210ac1bc8ed2cb909d8564baf11db6b1511b5d027c7eee409e15bbfdb011b715c915963621807a130e', + 'hex', + ), + Buffer.from( + '747dc6343afa60ced1393e1668a4783a7379da0b2bfc8333d3effddb3360140e04c381bc18c82f3d8f7612ad7e818749ee574d657b95dc3f9bd82c30d033f79dacd581abb89b7f2de0fa13d957ee6a21d760c8e7fc0cde55dfb9547e7d97c8caf1b102357d2ae37ab4f1f1bbdbc035c8f66882436321fd264e00c7b02870a75f76ebde22f237795ff2cf43360db1baa29211e101814cd05ea065277c658ff57ccb7003875ba699f10e57b1778cf1c3c0a9fadbeecc3975f39c3e9ff7de2c60da0fa9b7a0d61623a3f83ca81a73ad7b008bf6ea79aac58694c6a5c737', + 'hex', + ), + Buffer.from( + 'c2aeb4a00512b8b83027bdd9f8451698c798661f5ced8e2ddc02bb90cce7c2fc0cefe9b34b0b8129cd27ba4060c3354ac2b66932af2abbd08ccf5945cfc7ae99b071cd38867ca660b2a4c41fbed8616e4de265555f5e68aa451a6ad55c9e48a3b4d65e6dba13cb2cd574808b7d5619f5222dd9bf16e3f732ee18547b3520c1e15db94b868fa6c99bd42f398a75c788c75b54cd049a537a37c7dbf0acdbffa3de4396238a547298b54d8091e58fd4514a00b1086a5d91bdcf552f55fbe3cb94ea15b02729d0535ff457816629a4fad4e42511b3cab7ed34bea4c57e1b', + 'hex', + ), + Buffer.from( + 'c5d493de0895741ab7c76ba38a3e06152a1df475a7bff6054b3087606c74d48aa53925ae580fe3beeefa1d380cbbc42fd16e233d535c957c50a73f589eca676c8f493ee7607ce084168d161e3dc7ad79d2ce86dd35fc291c1ff3a96acc89f2b747855e92c6cef18c4a10f040bfe856ea899477eecb956498beb8c1d6fa3e9122fccf14dc543c09add76cf64b66b3fc384b30cc3c45d26b9a02e7a2db50a0451904beeefd0098b036402b33ab82a1b63f4b38b0e8b9643b9897edf0b36a1b4edbb9aaeb967609b79ff547c4a6d809f21e129ac19f557418c9a454b61f', + 'hex', + ), + Buffer.from( + '48cbb4079dddd5d0eaf43fb785f2473c4a091bfc6fe3e5b5c71e36c64802bc86308338d9727624eabdfa2084c7b0ee817f697fa360d4568a0f192dfbf3d9673d75310b7992c63e90ec47f636899d48420839aa32ffe5dad07e92e4c3560698630f7775ee6cf9afb2f9db2a163489c959f77b6598cb4df0fdf31e13f1f3c9a01f2fedc5eca899b0c7f3b7841c9e96022f05e269768d4cbb8b336a1133d15b41cc461db26206db2f13922ae1924035912140544e8d50ad98d48742ee95cd3b894ecf8339c1a80ddc788add9072db803c4bde05c1d1c230c4086f2b2295', + 'hex', + ), + Buffer.from( + 'b97993ee9b05089775e0cc5b17b27933b0ba1d145cce174057daacbc5346d9d3b25f7bcc51786cb84d09b5d4e91a78ea97d2e873ebdf8c1004ebe57361e31228917acd127d0de0398b0add0aa85e9786e91e9b1ad53aefa85752563fdfacba6482ae4d29b41a613432756a85d97e45fe8ee8e310d500a688bdf8b70886586e09582df44ca7368d6044a0aa0a3167545dbf849de23806ce4cab4f782c04dafac073efd20a464501ebfb2e99223dad48870a2bd367a28ec47851c3a9d62fd6b6ef1d2d9c51d085b57e51a75d33a28fcea4ddccad3a60843a3e9ed21f09', + 'hex', + ), + Buffer.from( + '96b90d49575de0a3777edb487a8b93697e0dbefb07aac605252e28ccefaae7770f372b5129f7e23e4e76058495222a185f833e49354ccb78c80d6db08b2e4a543a1cec111e39175433b1d8a2d0157685f7b39ce467b280caee67be127583c6ec9e65b2913b513dabf28df35cb17cd4169038afb7803d77f0e62079b7078d1d73800111879daf9ece5c5157d64064df6d3bcaf48e5d1c040c7ab20abf45dd024844fe12e98d2d0008f8bf89d824919bce019301f3431cb20e8080b2f00ddfd01a0bd0568b255bc4fd930e79d06d8d1b67df1e6bb4c0257df1032e001d', + 'hex', + ), + Buffer.from( + '8c47f5ebbc9f4731a55a1990fcb91d9c979cbc5f5b4380f7b74b65efc833870ab0af7e00afef5ff72e9b2aa13c75c2daade17f64a7f62e32e25ad2dd8170053a8d36c0b0d4578af0e8bc0bacc9e7dd91925d0829c22288b06b8f45b4d6c243c09cfafd8cca4d0be2cf3f1b60c7c4d9be47269f73f4033ecaca76b392dc812f9c10c1dbb098c25c522261abe3fcc8f316481846d8d53149091da1c0707f9dcd01663aed6adf5fdd3f8089b5b6dc3fe46abb772b3812257ac994c6134fdcf262735e85b2db99fd2b48c8eff2bf1dadbb17251ce2cf7c6cc1ed537e31b6', + 'hex', + ), + Buffer.from( + 'bb0dad5012d868c118df990de212559ea19c480b87d78ff4573d8cee9a5855d6a3de23bb171766b80858be5a26e8dd4aa9ad2a11eaa836788f519ead946e386a43ef3457e21f81ef6cf2488bc465e3e7bbb19584addf264fe92f54ebe859fcd88bde0af7f9eb661c17f046938b1a1d892d197e7fce687f27f47a372fbc129dab786181082eb0a48c867fae23628edb06345db44439f03afd84a07597ca8be8947e6b110c06a9ac6653a60d6b201452677cfc211d13e0eea15000d5a5354d94f3c5fffe4130aa731e2bd5be524b2820a762cd6e85746483d53d4c9686', + 'hex', + ), + Buffer.from( + '20dd9c09f9bbb331fb9ad7438f61aa359ced865cc2fa1bacbd4a202141f81d9b35cf4bc991f63d088d152c1812b4e20826088f3e521537fcf6ce0067b2d8ff26f0e1993a6b50e1114601c78846dc97da33cf2aca1e75d8a3a9b662a3481923ab7ff025d72c1de95e8681cd80d5a98da6c4ca8fff6598b235f8169be4bfaec9150997762c073416ddc4047a35450489f8732f50ac5fe70bf193cfc62e967e2c7721afc1baadbe9c3eae985ea8c69d5725b5fe9d25b97e3f258616564e45718fd7659adce49b4d37ec68462b8f8f0a36b36bc3dad37e85473478c255e0', + 'hex', + ), + Buffer.from( + 'cd9234b01b9ac25a3dcd0924e37ab3ef6823086880edc6927460db81bd139e7a3a80fee02464d70f7a3fab9a8a04f7a8997e27d4ea74f7db18b035e33561c267dd48a9d01d8943fd6614fc61036d260b80c7ea030b0096d5125d930d00d6ee530f4c63a4777e019629ac4b2d831b90067e2ad614269d36cdc0c8b6fc6098c969bcb28106fdcdead88c7aec04d862c616d7664056e133a47934b030fafd79510f82768c751cc808222508613c2a72649d9c14c9b7d06aa17c5829941d43ec77ee2bc6435d8deb80070cdebc86f1332fcd35306c163cfe6bab96542ca1', + 'hex', + ), + Buffer.from( + '533638c656c926991b444e2dd8a56d04dfceacd56816fa051f6559c61024c6b3ac71497fcb5403036d99b0e5624d3c9a6588fb23b46657963a712dcc02218d38734fb26427a6aa9aad9bacef54a85c6fee05754687b4d25a1bc5f3b73b861d804b4459123af41a15f1e2a7debb96694f9a431902f9eee79cc0ffb6f545678e808dc420c45875077d2c0ce52340276c5b44ad1cd2d717bbd36ea77fe98850683bfe274dc2552b0c3aa77b858b6c11f4d52f8236993503a837db122bb0c0a80218792c4019cfdaae41ed7a346744bfb1932a83c97fa302024c546670e5', + 'hex', + ), + Buffer.from( + '48a9df330e6c34a3e184d4fda8f6a7e391242cd5388777180c143ab0178b7d0bde88e68075896747351feeb0224b1bf3753aca4fb8db1e1a6df141d39d1c9900654a6861e7a8644a2879935636957fc9b38eeee45cf553ecbeff222fe13a1768d3f5bf2c831dbdc7fcd339753e4faef9111cebb50430e65a28c8dc1acadc81c0434ee1144085759344e10bff7e490a56f632ccfa530b136f2b217c96ac1dac0404084738bfcb3e20db517ee81af006a58ed60b0364f8ec753c69f64fec4e6757f082528102f0f5168ee52408959e779472a06e8a86b2091fc32994d6', + 'hex', + ), + Buffer.from( + '9983b1afbdb3a18ac75f668f03e837b3b4fd06dacf15ffa5528fb87d5cf10285f708e3bc181655823a86f44dcab695bb9a2ba6f978d4bc370506368aa4dd3391fe54b4fe727a62242f1f725bc5fcb82f6197db5cee606500ba468057cc8c36732055705dc9a2d5b451062ef8e03f029a28ff17db2104adc21b5ce2cd8e8ee9ffd259950ebeec844634647d6fbb6caa40fd1cf9fa2a94c284660c2e72c0ad976ee4be96e1bda2321aa8952e27c4b177ce68b065b8da9a9268802ef95241a2a9d07c6053e0b7565cfc092bcb8ffd3fe0f998e76048d862520e1ebe83dc', + 'hex', + ), + Buffer.from( + '9222e8a04b98234a5d7b7051e7bcee36c86dd9f1658db82d38ac2bd0510088e5214b88b0041c2a59578320c1686b0fb618ebbb6a65db1cd9ee38e7dc9dca455c8a63eb3a42319e769fc0bcd58a362988170f9cb57cf6df6cf0b40ae4ad578dce24756e0b26fd784ac1d7786cfae92ea6274c37c3c0059148d261882a17c39a493e514fb912d42bfbdc3e98921ead0772add433b4c52dc5d716329ca4c5a6319e47cdbabeea1e646dc60b516bbeb04828dcfcb447174651654725552b63e660c7b8a1392aeab0a9439abd6ca1bed6c5b8346fa0abc456c6eaa78890f3', + 'hex', + ), + Buffer.from( + '2e85ecedbac55682798efe85869d24b4add23f06f1752d48c5fda9fffc516bbb54223ecea92adf4abc69ce5c3584218acf8d92efbdc34c42de55aa4c441c91ced9ae0da39aaeafc97a3ee70cb78c90dc2fd5279d0f89f953a4a52b6084a5860cbe2ac6b898b06daf2e7004f06a6bd43531f0e824acb0d62aed7f28a7fc973b40ddc29bb458f68acfc5d8baca2594c1e954497c0f9fb1a845aa405cc298c614e1af93def7d583ea4d8fd2b4d108c44fd6a79aa61b83b59abd722328bca03f5011b434cd76f2fa8e3d68e35d0c2a94c9c65cdbab29d7825e2352ede1e1', + 'hex', + ), + Buffer.from( + '5b1a7f06d9e2550cb768d13f1b38c1fc5b8191e749e2d50aef5158cc850646ef43c43107e87c5110f5d8259262157b4685c70b13b1f7254b45b9b6a397bb36965856e5aaae5dee3c693f471d9c1bdfb97785daf877e4e2097b7b5e674f46c5e4a7debc8e4dd8122aa0a794352717b1d268760b7ee1e05464aa40263de2ace068857f0b62d3e3fcb3308b686583a591a219b2e87ceccb553cdd8311a68f30720db86bfcc38236b8f626eaf9dc7768635761358943673c1d6d7a2c459943e7ef43acb340a2f146abc4ff2d873aa1ff785a6a0673e794a56d99369e9815', + 'hex', + ), + Buffer.from( + 'c5a9a56adb0581f6c6c636ba152bafa2c6055b966db21fab324e273c5e32ea05b962952e5438f38bf1a8c7420174a9c633af899c56a631aedf33323dff7f0f1fe4efd2ba2663d72f754fc4f7492f3ec892369f904782e58ae04ae9edf257cc2393d2164dc64d6ce1b5c4d60b7bea1e6cf2b142c3d24dac607dddbf5105b3c69d05c4a2f3b5c195f4599d3e8e37203bae1de9fd0e9f60a72cda450baaf590a18bf5bf9c8c21460c00a701b81a67915c92b8d85110eb2847c36732e55adc3a0c9070c1463fd9d8374b4e088b73519b3c7624b7071e1b514a3c072f13c8', + 'hex', + ), + Buffer.from( + '99e703d16d94867263bdade307f438a5ff5846866bc98797b6a4e8ff01b8d9bf74c89a13e6430095105b451c7100801df781824d71f9bf93963033ff4480c0ee8de27349e86efc480e3396b12b6c62e31c75ee3fece797d4fdd282c5cf7fcb5b34fa8d2cf51130f8cc72ba4bd28c87e6f344518a01448b68c4d06cb387d1be55f7a10d587167fda7e5fb105ba711bf83d3dfbd7d5db31f7b342583f72a1d918632b7735e3b29f57a870dfe41c1ec8901f30ec9aea6cf1fce15c2e776fea32e56379f19cf3822df40af7d4354e774e1d133b524c8d9037cf161559179', + 'hex', + ), + Buffer.from( + 'e886f33a32d365f4a8845c4aead6fe0a75531774267a8b78b24f5cec987becb7fe090b8046a0169f2caab28804fec68a763adb06546763b28fe54c5d8b3eaed26b40d677409087d2bc098d787741959f8af4d98c188859ca6292702646f3222bf051b746dba956e13ba1846fe428365e20571f879073c08a4627f19e17a9cd5e9a7599e3fb85e18fa06dde2d0121c73b3b1cafb071c5aa468d286cde785fba5b92f249c774eabff6cdca0756c641425e369eea241a5de05cdb0930dc72beae5d353eec741c67870d8d7dd2587f5fca9040bf1f0231cbda03c16f13e3', + 'hex', + ), + Buffer.from( + '3b482227295262a7548e6cbdb913fb1a71c1ce5bfb0582685d3331376c1fba97570ebca267e0c059c478abd8db13c0fde456e8623e5fa5fc86675178fae206b8e1b375c19bbc9ed126cd87ea6c868089c91c581b31d5088ff8e4cb6b10275a2a5c980ae0d58d2ac052d29de53837cbef80ff6466d63d30a739ccbc010cc2189051c5f0e7f24abefa758b79b35a4971672132f92f5a94c8381e06dde97a4527dd71e156d44657365ae6a708e4c726a35ea6ddba2f90f65e197898beae014632df555f2fdd286ec4f2811e9a040893691f21efc29f87e88552a1d5e962', + 'hex', + ), + Buffer.from( + 'c88f59bd08501e127bd4505ceffa5338020aacc2bc907f66dc918c1a2f6598ea9dfb8c486427d412cb19ebebc3c2242234061b6ddea54940532ef6350cd35076f641e29423bf752e342c04f0a9ad5e7d02d4e1a3af2f39ede8f352edfeba03e4f3fc43b33147984d518a98026d72e7d9126ac0dddda02234a6a5980cfe6ce4941eebb6d41844e32d8fac62cc3f608564063116190d3126cd2430b227a9c1335f61bd7eb2b259e5933d8c86a2ca3e5c9406631ba0bf04f6475580e8a259f9ceb66dc5c73386c22511b096f05d3a2247063f36fb6c1a4f621fe18ecfe7', + 'hex', + ), + Buffer.from( + '0ba9d2febc31189e7478a751d3f59739cff38a1562dd892c2ae4c9f470f83e7574c09077bbf3ddf535cf7f0af33005ce6d9700b72621c0f808387a3f4ff0f36e423367f0c3e96984720f73eb3226f32891fb9aa0c62ffd4cce81a233923e6bc3c981e668d88be80718ca522906ba3a82bf066366086d77c76d7931742e8e2559f1649f1125e26b805ca96ec0258479701b88df1cd486c3d534656cf018c137d3ed4c6559d106953f61cd1c97701bf3c9ccb4ae060671ad48feecbed2024296b77a81849c86f93015f0e6d7f7919257d7f09a38573ff9df646db1fd41', + 'hex', + ), + Buffer.from( + '41fe4e52239cec15bc83a429ee32e8b3661939677e0d39efd11bb3f636f7c4b5ae7eafbd974ed8e6e95df9f3419f4746e8a939eac1d20ccec4e332ecfe0281d54cf427bd881a8df0d03a1d6d3599100cee3de08743400b9877f3a323e874ee0b726f8d0d81943b5f03c524458177e0b8610e202d4bbc8880aa664a12523fc2ab0bb96858b9b02781d031e2c8715bb79e12be9b6e42089bd565d2e723eb566c58c1accd9b3a5b901b75fc92e1a92c164e6d7be4e746093d16e91f7d3cb4c3cd53571a51cf631e3207206a56013ae152da428f9a6446f168703f324279', + 'hex', + ), + Buffer.from( + '8749b22a6f19a39d347ac7b4028c835a7f7e8b6b862f1aab6f68030fb6e5792f7cdd7068e9821b64a30a84cc10a9bbd7acd78091188978f9c2bbb90c4161302e3504d8a71bdd014e4932cd93f7a3e51a5884c3511370adef94bd5ea208fad9bac0cae4b5ae3bbfa17033a7c9c24e2049464b618beca166594ea1642a487e88e4dd97891e2d0ee033c14a1acee8f16eee49a9e38a42ce2184028f74b464739b9dfd73eb440cf13d145985944c789fb8351efbf7038815e69e339b0200256eba5183e43b412a85fb4acd06b97fb40480b50b261f26e217b16d4b579719', + 'hex', + ), + Buffer.from( + 'd3cad92f75914eef754711288d526ebc4ce3778be7224bb43555fbd8fff8b099b8efab06bf66fd1bc4cd8fd93e8b3f5aedd96419b728bf9941afb2f8a46da8308fc970b98756fa2ae10a08ff5c0222fad8f902d0119ff4e7a0579f7c2979f0e2b31105770ba513abfcaebfd577dc640cde09074d3ff1e0798a34416e47221677bb64840c3d9c5bfd5d1fc17168f50ee9be1d23b45044bf2975bf7e1a69e1f3c8cc506c256e88142ca66a7dfb88b94aba5d9bd57966c38dff14d9b1f3e4d32b3cfa6b5b2278aef86cd1594a444a13906b85c6ca5a49d4ec4b7d0c0386', + 'hex', + ), + Buffer.from( + 'a653f367cd5a79cf01191c3bc13002f278999786e13aa073109597438b7a9f856776afe72cdc8bf317d523a9956d66aa0bcf458ba44457120c0dbce48214a2c047014ad75af0de705d51ffa49074386cdc6fe027a547b55877776ce07497315c36f7b3d3011a783aed2aa7293fb116a5896a94deb5bd095fb3190ea195758973b0c3aabdb9d5a4de356a38307b2c71bddb2e9b6af3555952e2753c78ae40d3f28972ac7252f06e202683a6f0fe3d3c6bfbe3df9e11aa8fe82131dfd0c7f7e502988c1d61b681704d95e0fa7ecc12ea879bc9eb8489c9110c816c3652', + 'hex', + ), + Buffer.from( + 'abce8d3ed563b5cd075eef4ea0b982a735ce46eafccefe1a80493b9c0df32ac471067cb101288f6bb372ab6cc2dfdf49216e77410a7943fa1306451ba6c560992987652bf47593a24c0e1500cf48006fcbe09439cca8542427e26457044e44b1e9945ff75f9e8f049c6fc797fcacb64eb46fdff190f91805b81809217e9ba74e067c26def5a8223055ea3ac5be22214ee6091f4c0536f19d5a17d6ba0506af12c6579613f2b4584db1506c939c3ce3a94ecaf6c1a2912e3ec229feda66711ade05936d55f4de0d74f90b9260c76f105d196bf3b5247261947c128f4a', + 'hex', + ), + Buffer.from( + 'e72a2d5407c03d19501bf49ba25c7b74a60c2f3bc353805b5b29a3b26f26695f9da20cd3e27d640c9875b3ac21b928bdf7acbbdd8db0b0c937f6a6b50cdcda4a6f4d1e4d5cfb4e9876d7d89fa7efe61950365be055c4b26642b34d07d402c0779a9006ccc64f3e3fa69e2b7b2e5b0168809d6809c43eadc7f7360e7bd6ac778d724fa88bf225d12fd7b7dbef6347dc59919bf988b29fe9b006edc993b7d03aade4a301461f456e70d77ca7674829c88ab2d96676080ad4d65fbcebd8816dcd765d2eb5261c7e65574ee3040af095a0937537542eb70f2a347a0184f7', + 'hex', + ), + Buffer.from( + 'a100affd17b26347126481a0046cc544e1112c613fc6691a1cfec5c50a96de9a189ee3274859047203c8380fcb0b93898239e367fdfb5e7ab4852fccd26c44d3f171289e27720298b73f23a1aa3af2f0332b46fbc02b4cfdb8d7d2a7ad0a7851dc0c6ffdd12b11c094adfb47af232aeb55108b1418869d3ccafe85350254e802f50e57f7a6d7f25b98a9cd2e824b8daeaa2d9b6e0572d81c8b0830d6484f1cca7756506da273f9923eff590a4dca168ad9c7a14a0cd996b8e4222a932963d271ea6590c8f17a17505b0f963da5e78a4ecdd5876aedae7ce16c62033f', + 'hex', + ), + Buffer.from( + '6c121ae5f14669476a75dc3eef962c840ffcd7eb0f8ef3fe758a79ea859ad5b076832a4cab8099437f838e130412fc578c90c698f257194919d5f08e2e1fef7233a80b56c3e342addffc19203953e3ed1e2d1c69104b2ea624eecf622c8ca22533cb90302f40fa70dd5e0d1daab342b560e7ba6adcd3548e4b731cadec7268ad82f666e72dafe91b8d5c41e870e6bba947eb096be513af7fc8f8a3b7d9c315a10faceaca0c3303061260bf8f7f8f35c492a4cab138412d7bf306f73533ff4cea9d7f0294582d9703ed99fcaa01a97e46e27f57fe6ae69454f7f440ce', + 'hex', + ), + Buffer.from( + '14bd3dd12cc831e23f52cfcd4c159ff82a92b57da59d58d850fa8e104cda36810821555e5e74c4ab74516ca31a4052d42d2e7cfbb11a986ebbba6862cc77080ca62b8ce5c9296ccf2d0dffcde8dd3554754325c2921895d59583914967b0829fca787238ad4b5f07f4586a57052ad525232094496339e87b2a40b30ffdc2aa66ad93275978f06520c70796e1ba940263fd07a7fbdcc773431efbf81596182612bbbc50ed62f90330ea85d67bcc51346b599224ead652211f9a2e83800ce33693a0acc9049845f48b86ea42f098e9908b0bd41e563eae5e65b0c55275', + 'hex', + ), + Buffer.from( + '723f42e495b705ecfcf0517ab9fa961030e498222ad37dcbe5a131d1012034509d2effcb91f1ef95d28f2085a07922fab6d6d824884def91ac3c7cae4e3c641c39a44fe042cfd46b46dcdcb30a413b699bc4a2520ae458c9c0313a4728e7917c883ab3c768439980ebb7921317d120e7b0e6d2216c08260f753bde008bae21467eb9dd448b990ce8d3ddaff42b528f7fd150f299efca1dc03848c75b3a306e21871ac0e23f7ae41c8140d8e2009996568e270909e58b9a1c5953a947fcf4af27783b453adc17929b5134bc3ca9e362d7175169a970b07c265a8f2594', + 'hex', + ), + Buffer.from( + '2060cd8057b34ce7dd05a50ed64f55305e60bdb8720bc2776ac4ff6f7e09190451f8c11aa65aa4a2c476d3946a04d5a0c5cda788723edb0fd6fcee8552954478acc0332a08dfa1ba05c6febb313d88988513d26177fff840155745f2a2b6024bc9601a5e964fcb8d0811e756cf47c3fd146a7d3552a33eee6ae879868a27dc85fa6f95f14ddb7ab7aacac70637e26ea37c3e0c0bc18799c113ce829bcacff3b4a5b404df984cffe5c7c9ffe2e4378b4070097e66a4f9fd55adf357c2edb620e7bcc5303a676ef399b070e55c101b7e98e3659c52d7589b2ac533d638', + 'hex', + ), + Buffer.from( + '163d211f75ab6cf701d2ca57893c351b0a1298d1f16eac95d0fba5b9ae8f2bbed545237796d863451e717e436f1021d869b2479a90f93d68f154de9ef71615623643eda36c71c32d2f2257e5d72eecefab6e8ad116d60bcbc53d88d2c7d1c78a41e6d26a3036a7acbe8b8425d21aa9383fbaf3a10d1edd5657d812d07c816c9b42ea6c8de6699d96266be801f0d3c50ffadc46bf873220a1157f3200932e6176b1d37e80e92893674913d276b1569a7063bb822104f4dea54e8080c3d2e2160bad13a8832fae7d07ebf1ede73d0b636060e27a579450a43b49bb5c77', + 'hex', + ), + Buffer.from( + '1288ccd8b7d28bc1e90bbcd7eaee2993584179e80b238659800db4443b96cf49ffa20a434d1f55bcc20197323638fd310bb1118aa05b80c3291ceca499c572315853e588b536abe6d7c6c26fb02d721f571d2e3bc6fdbcb1b644e5e0e8733513e6632e85acbac74b27d4c75404a02e25901a9e42af78cc315878ec364ecb6c16060624d1b60da3fca8233086d0e9db5a8e21d2e0d0027b223b39a401e54710537d55765cacf4db8b143735182d2620b6dc7de11532cab1206055c341dc6bbdbc77e826d2c3e8773115c72de8ab03d3c31ef9c86f290cc1d689a5ab2d', + 'hex', + ), + Buffer.from( + 'e416ac0b2132e58c4dcea414db42984013c8cebcebfb6175945eba575a56161bc1fd03109b70511bc0651eea00367078b48285b1aa78aef6c900309f4523e7dbf21412863702735c1eecf6a8c0284d909c170e956df0c36062bb8876f3514a207a5c057692d48ad21964498f674d00ede03c175dbee81ec2328e2474f63b7e4c72e8dbd3c6ce4fabed3bf27673404885b6113d4c041a11d50647e2118cee1cb4115a6d6fb4df400b6921efd0f1029a2585e4655dce65636c3d0522bbc1d5ecfccb8e2f5480786699e2beba43a8001fe028798505d4e6e5ec43e139f5', + 'hex', + ), + Buffer.from( + '4cb93b3f52c9c12fba141696efb10428e33a1eeb4dfc7e2480e758470e974aa8e238fb7a938dc77d6ba0f50f660cfcdc134548ecd55acc772bfe64a77b96c030f4e36e69b57c55b5d8da69985ff897b9714bc1f924357440a7ad5e6307c2502a27cb12fa92ebed17dae391840af8ef3edf0bd0c2d50c80552de7d7c50b884868e9cc7479130ba22e523fbe290d0b197072a99a880c2c1496fee5bc4d090fae2b256af5fb1bcaa37092b6ab1d433d0d25c2c4e008341e523bda1209c311d6568ec6a676c66b5107aee038c71a12d1ea6fc1065deb81dce441e6356fc3', + 'hex', + ), + Buffer.from( + 'edd84153994bda0a64b3940baeea493448578e4b2f9f50c028269c0fa7e6af3bbe626cafa5bc6ad1ca498e1123a5e11853280a2f57d3c771ca932b0296524fd1d9ea298c77bb1e432b106f378b67cfe857681c10f9aa9a7e3dda7fa9f7ceef54b6e6c5d5042d6ecba995991173b0e1e67715a6f4a5a860e0b381c70e7ddfeb26aa55723e68d84491caf5a25eb7989abbd8e6f288c0316ee8c9da761b0379fc7bfbef7a9dfdf985bffe44c17d545ff10ae41ba45763e89ce5383c283da1d1ce367916d48545f83c10c3a09ae33b37902d85fdaf76f22ac63d7b7e8a69', + 'hex', + ), + Buffer.from( + '0273adedb36ecc738180c99014866840fb66b17af445d428166504c87762b82c8910490e409bdc2ab6aad7aff4829677b8a94d2241b4690392e7a30c8741e0741d5eaa8797bf7bb27123c540f7b01341c89c6c4d3dc5502f8de34a61d4659c4f8b8982fd3dc41e9c82c1909c8955d5054d2bcfb89ab50aa0fca4a3e6a76a02c5e0d8b42b27768f502de45de91d23311b2dad29a2e83c29577e2b625f9c05119bfa3231541b0e2a0abc9c368bb04558d3c16ac2d3805aab0190d4681235a5ac32de323e7ca165eefd7ecd3c04c8b4cbf75e2f926403fb19a8ea19b914', + 'hex', + ), + Buffer.from( + '8a48d80d0a156788d23be90e387ea9563afd112b4793288b32a1884b161f417f1c5df180af1f4cd2036b0f8306c2e20e3439cce2922ce6617625a26d2537363b8bcfd3c651da5fcab1be3cddbab7e44e6d530bd64407df5d22390f479d2e68194688225108c3111fd07d81f5781e85a8972cdcf31a5cd83f8e6a7e0369b490c8d2d756858f37484677e6a9f77e0144e828e9cecdd989e5d0d646c4f518a861b093a616bafccbef698583502bd652194be0c06808c79366ca559957ad5acdc798d0e32078764322cdc2b01bd4cd16b8056b2bacc382eed99289cc3297', + 'hex', + ), + Buffer.from( + '2f5e5057ce502ba17b58d533c6fcb63296d2d50b6aeaa5eb2f9bc5720870c8e20ebb1137ab00db686840d358184edce8e753e7cb7c8455a25c5b4655680ce6a6a54f5664c80a890d5c2f7cc4e56c1c871180ab05f23c7492afc0630fdf3c74c5986572cef3e2e6f5dde371131d36b39bb4dea5f5cbb61e229ba2c4d53d47c25458060f925d45da9ebdcf280640f3a7346c643397866bdf1b1af7a54c6fdfbddc8fdfd572144f00a8993ef53229b5fc3cce62fdb7a1d60ffec20e60660100020f1b42ff7803a149192d5d3c86c94e625eff8d215d556ae2fe6d215e76', + 'hex', + ), + Buffer.from( + 'aa74ecbb8cf1a92dcc686d6d2c2559bdb40a255ed359ffaa2ead37c925f1996b549cddb358c4ded4cfda1e314091ef0bc2af4e0bcca806f63a7a6552980aea4ba81b560b65b32e64ecf7be80e3cc6ef0b0b7dedc3b61e083ed29fdb8b7534f84165f4e48e32f6084177584a4bf8df9751f2712fda1ccbf2e77142e216b6cd6646343ecbb5423952475b703a339b38747f37ff21f17ee1e6fa83844069c5c4730e1750583e9b7e0a6774b0ae1d066e9ff8a0a56f922ef625a3cdfc563f9f58a68015a07491e8271e26f08f0d1614691fc654977acd3a50551c1e696ce', + 'hex', + ), + Buffer.from( + 'a70cf070d196242cd5438e8aeb56fe4b869a4fd0ee469d345756032229835832c0493cae079ea5d18eeb39cd63f68f3c134a6672c96dfa4ec8ce0dba1262f86e5f88aa60be5690f92b37baabb0fc5a05f6223f1fb8519269397d90d3613153e13cb31e5c2c273342e736ad66b2249947a309a2ea6e36b31513b16794079b2acbdba5579d03aec3e2c8462d76716131d8581a86f658743dd30cf1176fc8ad37ef746e951d11bf27eaa21bff18762e567c80cf965eeb2eaf264d509cfa580bc9484549b306a7be56d7a4179f9abe747d310534854158e7451536012419', + 'hex', + ), + Buffer.from( + 'af0b6b09fea3aefbb60086d77225ed73ee9e2f461faa9ab65621eeb78e9458962271313a803a93e3af7ba92ecff911a00469e9a0d6cfabf899d74297fe4356ca14f8cc4fe0e0ef5785ce5ebac48bc57f75767d0bd02483878d5c8910bc99a1937f55e8ab0774232fdb51208a2088669b768b116eef3745a06ec11194b333a6378cde181e866949080f343a221a838a3a638dc15dc0ff12b36c62c5a887fd52f6dd5bf9554d38c588cd4d8f06bf154f512f23f779169ac6fc0b6752fe24b0c420f412c3b52ddaacdb4d1fb13eb6870d7b67d398b583a464f4da2a9c16', + 'hex', + ), + Buffer.from( + 'b7cba38870befa9b19e535e5209eb2f8720e933402e195633fa94908f0f88ffa376804704967bb2ad794da475b3b472bd1bcde933300d24aefafc16ecf20598711aa6fd748a824e71bd9678c0db46badc2cbde1d981cb570a239c9df85175e53c9313b1d911482fbc3a822b1bd17a3ab7b660491e3cfc87f6c1849f6b4889a6ebfbbc91833cd24b61062abb5b963e388726474a5c9880bb5e36c4126b017de751eedfd357289f8d2f75272aa45d362acc48c76a3bea5aecbda2a85aab55ba8db9eb300371aef870738cba8f63599fab0ec2e0fe3c9c78addfd939f44', + 'hex', + ), + Buffer.from( + 'c63b37284fe99fc7834e80c032ec6a693d4bec98b78f8bac93c5bef7cf2e7febf7984e65728920a8ab78805834cbd1fb422acfe87183e605a04767f242de0dce3a710730d66b22406f9344f414f2ac495cecb640387a40ae16339ccd761fead45ce9628446a8f69aa0c2a40dc73438b39b82a3f5406616c7bbe1b0b73fa7aa09b4a118de3d7f6e7f936e2bc89738728fc257b2f40b38763b95a801cae58e049f7168e7929c430a921ec701348f6efffa14f9e578152367a5badf4d4f98bc35e06ff14d4e12e693b0a0ca3b015b2169dea2aa2b0aa99ba68e860ef1ab', + 'hex', + ), + Buffer.from( + '2de01e1cdc603fac0ae24bafa8f8fb60f8f1141efe4818856173d644ea427a668d6c7a7247aaf43e3760c607304ee2eeb93814f7a9843ac40ead62893706e37c7ed804b3c4e9a1e9a4509c757259eca18886010b052a23a4ea1a6eae535bbe503c7181ccbc473a6e796d59b60f4167aa62202b3108a690b380387d553cbcfda87e201240e35467362bb79611ee3283224d7d94939cd878f6e8d2629e6671f641d74af147b4ecc3f66d19fd17e61993a3615b42261b186125777b088d430c1ad3ac3959a54ba1c8c03d1a99a537474b1430641a5f6a5507d4c058332b', + 'hex', + ), + Buffer.from( + 'c64bc5e31f80688f1ab1baeebfe763de46d47e4b7c1fa3d37ccc84011755801a6e24ab05cb344d571cba0b7b12b96980f5dd358b18cbc21c7aebc9de49cfdac877b5673e45934cd25b95ae9dd04f123929f2135c58cca32a81144292f2cca8ada0f2a9877d16adf5bb3dddbd5a0cea9d28a8274d79756f6b8ccc0a3852fbba2e46bdfa7a1307ff413a17841029d4df85a157c59e62137746225ce0beba8b1d4c1f8bec7320cbc39c9ad8cedf6cf76f8201df5d054b569b5a86ae098f7f7fc2c087e34f85912dd069f6e31d62f502517b1bfc19c7cec430cef9843fc6', + 'hex', + ), + Buffer.from( + 'fc65f435c11a5a7197b8341c58d60cec3ed0d016ead18b7f74ca88c4254167d525ec9e9763496b34d57cb89dcf5d8756074cdddc02543a3f570eb23752b08eba939d1c57fa3aad144a68c953727aebd5b529b6906e28578ec863acece973c5c72f33e80e89da64d1999642cb69d8fb33be2683a03d007a5e9299c8337f7f6531b459e9801d44740711d930439efaa8bbc5bb6d61980818bacfc92138cb4c018b4f015771043edaf2a8eda69bba78007bd4b64fef24c64fa9b3a03a7d5d2c9c5eb9f71b1ad7fa9a00d7a1c62563bf983b64f3ecbf34464516b364dc69', + 'hex', + ), + Buffer.from( + '7d32c9d5670665624be1869c0cd45ab2139caa1a6bb9f83c6ad8136b3a62aca431ebaf5e3a3b0b8af8200cc8efc0b3b563e25f9daa20d2f7712952a0841650a1ad1f61eb3d8248f345cae9a7138687b3378dd439d0f29f60558215e5500c55d438a7db848186d0b49803094686578d96d78aa9920b5b6fe1459385c4bea2c1ea7ace03e4ceb46add37a1e4ae17b7940d429ad2e0aec862319a3fd38363d6d0ef1250b6755d923c045b0989bb8fbda5532a9c9cf9d002ef35cdc915727c3753b729041f9dcd446cd69298a46d83c2c662539808893fddc55435d44431', + 'hex', + ), + Buffer.from( + 'd3a45d1ad64eb50993cb298f9d947b4bc39bee0ccbc6ca242ee15ad8501e68988d8600fe32e81a458cd8e56022e662e9ee2ec804ae8eda8fa512365a6e36e06ab9c6d7a28880348888c06f0ac15e86ad20836f951aaac187c0a115536ea2edc3e76c1dcef2b2f1e8caca7d6836300c53e0de1a1363e90294111ca4c108f851672c754d2bbef6ee48e9ee07ccdf1c14e6a5a403b18c571dee950073875a330a9555e983be6b4c8de22c39a9bcd2c861ddb15924a270f5fdd27ece928a83afdeccc494600672fd1efa988dceba8aa1dbf9101c1e97fdb880dcca9c124f', + 'hex', + ), + Buffer.from( + '9fcef13cb8944812936630b86e5f55b8be13bd613f12eed04219d1b5039c4403a61f80a72be1bbd67bc2321b80f5d98cbf2fce791f42fc5f22f07c9d52429f9dc588232e9e5fcd382959ec5526b54f78cd985290b89cd636445c08e47d29fa34e286a2e95848a4b8277e89cbcd5da1ab6040014b2c2f4c0a08fe15bb7bb900f02b2306b00aa94f1a6b3aac91fc8746357d12ceebdc61db6d246558a15d69207b6de58c2fbd3c2bb55f9cf83c7f43f40383bd23226e5902e618d548d6351a589ff3484c1561375a87e407f1d7e8bc3c2fcae51de9d5991c90c57e0da4', + 'hex', + ), + Buffer.from( + 'e4b367a40f26f5061e2ac8bbd2c014828add68785f0b7fb1dc392c554f8cb9f298bcfc866e3e4cef388b4e4e4e7cbd89a4f4ab8363f07290606b746d081846b742984d9f3a9304f1ac4c4ba609c2e67ef77faee389f7ae9b3a2f0366da1fa9eea431f33cc6e67b2edb2cbc337a5c2d2a1cc1dc173ba5da1a043983b75b60ebfd14a17e351cf98e516f057f9394408da480a1927d6a702145f34403a42b7fe423e4b74c6a9cc98874ef4db440602c89fcca36779461ebae2b2faa6e0e4df3d7d19021f10487dd8ddf80926c6cc1a64d9de1d8129eedf22d9767263d45', + 'hex', + ), + Buffer.from( + '7b0601fed398c16f4290d11c00409448164e29bd004bac559f216a88e1bd9d9a0f4ffb9b94f8e31f9287a20d4cee6abb51c4eae1367e22c07c45508df56e9f10495fb568b11b099a9a989ffdabf650b7b5ce33e3824eedcd3c0a264cef390457c24029eef090caa543ad205d36db22560ade92ce9e0d748ce9fe3a41a3c7593d180e439622c6625edf77d74f777d4b160f497f244e531e3ad060921264737329c502cf7f26c0c5642c95dcad2fa1d00d3add28835ab8e4ef8210c4d3ff61a1d41e6d7849e5dfb0abdbaf1097b7e1a6a35afe4de31b5975bbc6197ccc', + 'hex', + ), + Buffer.from( + '8847d625ff8ba774ba4d67aef3b12d95a03436baf6f916b3638ab615db22cfe50bb8c5e1b3a54dea969600ee7ff2eb8f92da7c24824c3adc21c0f446375f7ff5859063c5ef199cc0a024e1cdb240405e732d711f4481ae6c511bb1690a2892880030d39a567874019d4891412db59436382b2f723001648b2afec6b1c219153a70ed0bb21c3fdaf2949d9f396d147bccad65ed2e4b392ac559c5602a88b4743f2ed98f6dc2cd886e10a8509897cdb4b932a55971397b9d36869f77f93f15c8d86fa567cf7e2a69723e7fe3c1718907a4368d21854d6151d563fb1326', + 'hex', + ), + Buffer.from( + 'ef7e45ec3f63a4009e0ff95c02ca80808fe41a8484592680205a6a6a7c3e4d8f65efe1e83122ce921ddf20da0cd721979842b1d1a87dc66a63d2fc4fa4fba228a4cbd30f4fde546051a69cd280cd7faf1168eebed6ce26f8bb81b8eb91975457a7886fc39f5f1040af6409feba031bb68c23c9e6944b957ff096bf1bc84d7ec7746224eac805b3ad38c83c1953d54eef09ceac492f2bbbb268f566d7e5a9abf992812db86765087f5aaffd447a8b5984ca11dbac5ed793a6aa3abdc4ce938c4fd297291d525ee5d4da0702de39ba544f659bea19685bfc841203e5cc', + 'hex', + ), + Buffer.from( + '3db1ef5aa843f1d9c67efff078bd514745a27244df5948acd035d1dfc5b4e89bba560520dee41a92ed58837f49ab45bfaa51f7b45401bf8b71c160eea64dc27c78a9b9eab33eacb29a6058313b888588487d9312d826f518b3eac8e9caf62c9b2c44874f319aa3fd7c3b3c83129ec3e117bb77e8b6fe4e9bcfd172af0e08369fe6939f1581acb7158355b48b6238276145705c8f506fe9f50596d215967549528f965fe9b82a0d75cf940a05ef215748b781c4b902ab6df312a95bb8a986375acdac658e48c118c498eada44083038bdf393603de881f5f17b98ef23', + 'hex', + ), + Buffer.from( + 'cee95fbc3f3b18dfc4af2687c34199073cf664738d5a1de71a88f43a9f5022ced5cbb47ff4639f1de9c7f86c8974590b4fcac06181e9feaf85079f50fa5e512952e2fa3d9e941860bfb62db8ae74e561527253f820a9c06bc911c35d692e169c4a7e98544d44cab7970b65e0057dc6f57ed88e2ae100fcaf48c8a08a5eefdd7a2b3523c03eba0d31ed2ce65ccce70bc465f4fcccb3d3adca948d5275fdfddce8ec3b583514a8f0b6b5fe15ebd69ff325a655c2583ef5ebe1a773f293c36afb21aef778203b715fea6e67f514b074bd9ff988a1492b9a4540fa520bc5', + 'hex', + ), + Buffer.from( + '8c426e50842a288d5fee2cdf0071fd04208f4218abb0a3363e9202c3452a799e8b65b90d9bdf7c21ae794f570ac3c15c21456ac8bc4ae90189ff940a979a3643f340b4c4c670837f860df492c26c608899488368b6cfc11354f7e27e837c6303565eeac2295de26212b41ccef5ca6913741ee84885d1bb26a9ec9b5e702024e3cc1c1f9b6e48407563bc2501afbd51db9029a122d9002357148417f6dc024c359f185f108c519eeb24b33d9467ba7a65ea1196623919eec10bce8fe758a3c556bbc8a0efe1d2817aef24a9a757e9f0b538107243006125f9a10a64f9', + 'hex', + ), + Buffer.from( + 'ad46bec72ea6178264464bad465446b56dc2b06bbca038cac084e7201af8c3de6be655236bf1729c149ecd3a6b7a035d0c2bcce63827e8ddc788e348ef5cc1fb484a0ed2292307c40d2b7ae3f2b624b0c734256379d6165d0135bceb95429ffda4c47af340b341b8202117009f6efc7a519129f99f238405a4314831a7bd0a874307aacbeee31f9ae088d8de2ab0a5016fca3a822f2123ada9eb236169b8e721bb7472fc4f5762771d318446db8c6d86bc1fcfce42a68d6465482e8713d43ab2aa00b032c907683709fc69b7c2330d0512cb436ca0e907f7a594b330', + 'hex', + ), + Buffer.from( + 'c67f2c22ec2925d8289a5b2ba652118aadaec4463b8c7cbdd37e36312691111284e37e4c9a26f3d8f23f32fe69b6d9128f0c3e3c94b816703ac3413994d84beeaf6a268b2f035e72d742be05cb9e874e995c76c7f564a5feebd52afe2555300f90ab7fcbe8c020d506d4dcd21af31756be3ac31af65fd7954d984ba346748e7238759a10d2c2d54a7f23637bbab71f95e8287d25c161bc7fd8d0554d2c7979461623b83b64206e296d7e209999819ce183eb28963486d883f6810afcb3fbe7b02f40a4b81f32cb83377685bef001feebc3932004fe5bdbca597bb166', + 'hex', + ), + Buffer.from( + 'b5a688296108fe49b6b4dbdc55ade7d914746f76efc0b30047e7a2f5aedaa7d6d482539e6ba70a4f0f0594259e10f4a8837dfed71b02cd076ac41d2da85af4a42cbfca06654af08c574ba2df883a4237a9bb945999d312295b026deba1333798aa34cd1cb5d534c80d9ccc4e9c0f93c17609e6e6ee88b35eab38e0b904b23447b8f261235aeb70dadaf44abf967f2389226f118631d6ebf572898a69ff5f0811af76f41c132f5fee823b6c18c711dcd8508ea8b93a2d31f11ca527ea373f94de7bd04bde926866a2afda8cfb8aa179f62ff44c47db0968eff13e681f', + 'hex', + ), + Buffer.from( + '2c37423d953dbeaa1f7bccd9e2bc8e9f819cd4ddbc70fa5df8519d786f2b875f6736df9f29473ea72aadfd5d6156e53675d10519cf6ac55e99f5c14dae6cd0f5eb1a788216857ac71d90bfc6b127a6750b5dcdae99787d63224dcf14482c6fd06a9d4a2b74e01d580fa71b1823b29d2a2a75e4ad2e12e754550d1e766b3b29855c6e3f0986b16986348d46035adb14e5bafb217ba7d393c2614fcfb995380123653b943fecc454d40ae162ceb26435d20a68e928a2a7835c8b1bab4046fdf44452e7f4e4343f8236d4bd42a218c2fa0d93fbea79c336ccd477acd2a9', + 'hex', + ), + ], +}; + +const testSchema = { + $id: 'blockSchema', + type: 'object', + properties: { + header: { dataType: 'bytes', fieldNumber: 1 }, + payload: { type: 'array', items: { dataType: 'bytes' }, fieldNumber: 2 }, + }, + required: ['header', 'payload'], +}; + +const blockEncoded = codec.encode(testSchema, block); + +suite + .add('Encode Lisk block', () => { + codec.encode(testSchema, block); + }) + .add('Decode Lisk block', () => { + codec.decode(testSchema, blockEncoded); + }) + .on('cycle', function(event) { + console.log(String(event.target)); + }) + .run({ async: false }); From 170a168eadd2055ff7cd36c73c5813c39d5e49b1 Mon Sep 17 00:00:00 2001 From: Pablo Vicente Date: Fri, 29 May 2020 14:20:51 +0200 Subject: [PATCH 6/7] Add benchmarks to Readme for lisk-codec --- elements/lisk-codec/README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/elements/lisk-codec/README.md b/elements/lisk-codec/README.md index 0adebb7c432..ce2d2bdb187 100644 --- a/elements/lisk-codec/README.md +++ b/elements/lisk-codec/README.md @@ -8,6 +8,21 @@ $ npm install --save @liskhq/lisk-codec ``` +## Benchmarks + +The following are some benchmarks for version 0.1 of this library used for encoding and decoding different objects both generic and objects similar to the ones in the Lisk networks. + +Node version used: v12.17.0. Computer Spec: SSD, 6 Core, 16 GB RAM. No special configuration for Node. + +| Object Type | Encode (ops/sec) | Decode (ops/sec) | +| ------------- |:-------------:| -----:| +| Account | 75,081 | 86,908 | +| Transfer Transaction |225,229| 276,184 | +| Multi-signature registration (64 Members)| 23,539 | 44,231 | +| Block (15 KB payload)| 42,349 | 91,180 | + +This and additional benchmarks can be found in the `benchmarks` folder + ## License Copyright 2016-2019 Lisk Foundation From 1eab815bd19e39928c56cd6b9457d8362406c315 Mon Sep 17 00:00:00 2001 From: Pablo Vicente Date: Fri, 29 May 2020 16:13:43 +0200 Subject: [PATCH 7/7] Use crypto module to generate random hex values --- .../benchmark/encode_decode_account.js | 1 - .../encode_decode_biggest_lisk_transaction.js | 533 +----------------- .../benchmark/encode_decode_full_block.js | 267 +-------- .../encode_decode_small_lisk_transaction.js | 1 - 4 files changed, 14 insertions(+), 788 deletions(-) diff --git a/elements/lisk-codec/benchmark/encode_decode_account.js b/elements/lisk-codec/benchmark/encode_decode_account.js index 39400beae88..aca9c0d3da5 100644 --- a/elements/lisk-codec/benchmark/encode_decode_account.js +++ b/elements/lisk-codec/benchmark/encode_decode_account.js @@ -11,7 +11,6 @@ * * Removal or modification of this copyright notice is prohibited. */ -// writeBoolean x 3,543,238 ops/sec ±1.59% (89 runs sampled) const { Suite } = require('benchmark'); const { codec } = require('../dist-node/codec'); diff --git a/elements/lisk-codec/benchmark/encode_decode_biggest_lisk_transaction.js b/elements/lisk-codec/benchmark/encode_decode_biggest_lisk_transaction.js index 5f8ea6e3dee..5f74dd58f3d 100644 --- a/elements/lisk-codec/benchmark/encode_decode_biggest_lisk_transaction.js +++ b/elements/lisk-codec/benchmark/encode_decode_biggest_lisk_transaction.js @@ -11,13 +11,19 @@ * * Removal or modification of this copyright notice is prohibited. */ -// writeBoolean x 3,543,238 ops/sec ±1.59% (89 runs sampled) +const crypto = require('crypto'); const { Suite } = require('benchmark'); const { codec } = require('../dist-node/codec'); const suite = new Suite(); + +const mandatoryKeys = [...Array(44).keys()].map(() => crypto.randomBytes(32)); +const optionalKeys = [...Array(20).keys()].map(() => crypto.randomBytes(32)); +const signatures = [...Array(65).keys()].map(() => crypto.randomBytes(64)); + + const biggestMultisigTransactionRegistration = { senderPublicKey: Buffer.from( '0b211fce4b615083701cb8a8c99407e464b2f9aa4f367095322de1b77e5fcfbe', @@ -27,530 +33,11 @@ const biggestMultisigTransactionRegistration = { fee: BigInt(1500000000), type: 12, asset: { - mandatoryKeys: [ - Buffer.from( - 'd0d49f8798675bd47e959f6bf82b6d06c7c65079282eaa5e48e3f97272444dad', - 'hex', - ), - Buffer.from( - '843fc4a097049ef5495b98886f3d49e2c7af6da7997cee1fb0924c7eeffd659b', - 'hex', - ), - Buffer.from( - '8397fb0c9f925f05611a0761a86a1d1cc94aa6e5042188b28a86797ef98aa570', - 'hex', - ), - Buffer.from( - '037793853578dc22ac0300fcaf6f6a48f9b7756acda9f72968703d9d85e0cbd9', - 'hex', - ), - Buffer.from( - 'eb5d59d05437b4769cc5dddfa2905407be5ba407681582d8d83f59e7a41e3b5f', - 'hex', - ), - Buffer.from( - '90d8491360b7756098d4f3c9f7e57eb610dce829a9139ea674e41626bffbea96', - 'hex', - ), - Buffer.from( - '914d2fa3422d7ba3231238e858d6fc1a3912152ef315d22d455deb7b87bbe7e6', - 'hex', - ), - Buffer.from( - '8d8eabce4592f213635201442a4966c263a38f919816fc1b779e3dcbcc4f2107', - 'hex', - ), - Buffer.from( - 'e1c65a5329806611f19a201469f3030f713f4affdb215d2d8b830e654177a275', - 'hex', - ), - Buffer.from( - '1d7e27f168266f86193ea0d68d1aec723e936934aae527bce0624984690232e3', - 'hex', - ), - Buffer.from( - '9e006c0cb22ccca0ecad7ec880edb8301b7533af19dcc1b708ac7e5496e82dc3', - 'hex', - ), - Buffer.from( - '0c38d9e4776e6eabff0107694bd4628c066589d2264733fe0db30e205ac03904', - 'hex', - ), - Buffer.from( - '2cdc2e19b23662cf971b4508eeeef0dd98b4bffd76ad0adeab5ab2b94a77f257', - 'hex', - ), - Buffer.from( - '1685b48cf0b3f22a32f6222c79d8d540ef67260f93896065a9894f1a550e566a', - 'hex', - ), - Buffer.from( - 'ffc83fd966e4f0107bad200f417f5baa6e2659045f45f9472c030937f08f265c', - 'hex', - ), - Buffer.from( - '176437bac61be4418c7810a84f800602db77984321b36e6813b3437d37528fff', - 'hex', - ), - Buffer.from( - '28c5dba745e9710d6c3d6c644a1f757750c605ee17e335642d6069010d02511c', - 'hex', - ), - Buffer.from( - 'e8208a3a2d0620b9c0544c50e1923c7c8adb6e0b8b769a74a4d0beea28a8686f', - 'hex', - ), - Buffer.from( - '11f4f7b1bc570ac00275917741a99c6a001afa098ac99f8de5496c5d52d10727', - 'hex', - ), - Buffer.from( - '8437c477831b2426bcf074efa91910e89496465e33a33e180e768a8295bd9423', - 'hex', - ), - Buffer.from( - '97e9d7c6854a3181205547ca6167ee687407f524a802250016166008c31b48ed', - 'hex', - ), - Buffer.from( - '0867e919b7d413210062cff39910532cf6f52b006b94af7feafec058065222d8', - 'hex', - ), - Buffer.from( - 'fe264b878064a19867b7a1776f78414e130bf9982adb7aaeef239cf9ef014c0c', - 'hex', - ), - Buffer.from( - '3e9e4adb6d9916431e0018da806b35c8e42a02c9d2932b1bcc846a46fa2c1404', - 'hex', - ), - Buffer.from( - '3c8c889775c3f7a55c2830167a1f333d02f0b5a703de80dc009d1fc70da163bf', - 'hex', - ), - Buffer.from( - 'c8a7b274ca0e72e61afac372dc4af12a536635432fe3f689e3b2e09cfe06a3b7', - 'hex', - ), - Buffer.from( - 'fd7b26b20d3bf421dde39cd2b682a1173484ae45d273983e21bd52f56ac8a67f', - 'hex', - ), - Buffer.from( - 'f71b71985e6fa9338cca8af3214f05a33978a7e5e87d3c696e604c4ef51f1ef4', - 'hex', - ), - Buffer.from( - '3e2e19504e34d5403b7773756a7ffcdd72e1fd7877f3900becd5773dae721372', - 'hex', - ), - Buffer.from( - '69c6cc198981daf7d045b1a859c14b2df84ccb5abbaaab1786ac34f01fdf783b', - 'hex', - ), - Buffer.from( - '9bc2203f976cc165b4f683afbc337aa5bbb117ae5471716ca5d2a2d6ed15f85c', - 'hex', - ), - Buffer.from( - '7c2ad0b0a2b278a4f359ed0bc25ea1c3bb573974e3a8a8624cb4c0e1a312d20e', - 'hex', - ), - Buffer.from( - '3c025e87660fb9399411bb6738a673a11ae881c9508cc5abc1552fba54e8ae6e', - 'hex', - ), - Buffer.from( - 'a853a32f8695e15879fbdb6a9a440966cf71525a91df7b4ffd869ff850be1d03', - 'hex', - ), - Buffer.from( - '931332e31786a72c43821d7217b476199d503f35e9fee9bf9ef8b5190269b475', - 'hex', - ), - Buffer.from( - 'b34e268fc98b657f74796adcb74c75b624ff1c261ff68a818ecf29839ba55e50', - 'hex', - ), - Buffer.from( - '7644124c92dd945ba9b41db4f97144a966ea4b996940357c40416cdca265cbd5', - 'hex', - ), - Buffer.from( - '212f62dc3a75e70154b4ce2a23567b162b750dcc0503872117fda7c0a5a99926', - 'hex', - ), - Buffer.from( - '1ef8b3df2b2fb109341a6120a0811a2a08bb7dc1bc78ab1eaeeba81957cb2868', - 'hex', - ), - Buffer.from( - '90b3382069e4217c8278feb60499746983939d093cc3b3671b51686926657596', - 'hex', - ), - Buffer.from( - '8ba33a1bc313aec22962b057db5d5481cf66b046a8f5c9f0e9a2b01c718c891b', - 'hex', - ), - Buffer.from( - '669e5afa09862e11307d1cae4825b5ecd7446ca3b74692a25bd2058661ed3868', - 'hex', - ), - Buffer.from( - '6e7e4443d5a1ab2a1b21d540c503a6ff0410b6e8496b88d3af1eee30f701207c', - 'hex', - ), - Buffer.from( - '7853117e2d3bee9be19cb202441709e2d39920704d3829aff15c8bb147792187', - 'hex', - ), - ], - optionalKeys: [ - Buffer.from( - '2be7ef46cfc5d52e6b667b069767c694b3f59fb5b8c4a4418c7d025b582fdc0d', - 'hex', - ), - Buffer.from( - '62128ce026e15852a196e5e96257030577e22c66882377b880e552626c467a2d', - 'hex', - ), - Buffer.from( - '08c0e1522a5d83d8cfd51111b14f58a38aa8e74dad55bd6d93d16f8cda3c3f48', - 'hex', - ), - Buffer.from( - '162641bf4eec471b3d51d9413c3aaa00db03186a19326cfc6e94ae9ce67c6a3a', - 'hex', - ), - Buffer.from( - 'f9e8c74b0a3c91350ed38d2095455bb65599dde5f5ee2e540e1976c6c28330b9', - 'hex', - ), - Buffer.from( - 'f0038c89ff1471381f76ea18da48ab2fd5b89d59e780d8417a00882545368f96', - 'hex', - ), - Buffer.from( - '7e06428cd4c340388eecec1ee9c9f06b9150845ad8cae7937dbb89acc78e9e93', - 'hex', - ), - Buffer.from( - '110cd994c2e9f6bfe47499966a63a6f2a428dd8a18ff45825e6d89fb540d793b', - 'hex', - ), - Buffer.from( - 'd3729facd6f4f66fc76ba9b92fe99b12b9b2a1e758fa775fdb37a3a00c9c6797', - 'hex', - ), - Buffer.from( - '004f1eae8f8c04ff24e1c06f611af862316d75f9bf0aed7b324ee56d60dc92f2', - 'hex', - ), - Buffer.from( - '53e87ba6b15c8ae227155651093a71456ea5a1ca1cea02d7b88d5f04e2aa93e2', - 'hex', - ), - Buffer.from( - '8e46dfc184b95e73b1c327d9f4d36bbac3c9f9d2d9ce0339180dcfcdac08cf5c', - 'hex', - ), - Buffer.from( - '92eaaa35e74c4ef7f8057ac58611acddaa76ba2c33fb23207b4f435e41ef6824', - 'hex', - ), - Buffer.from( - '29e1f34c3df087f02da1384fac0e15b102f6010ccd960eeb61d886ea734242d1', - 'hex', - ), - Buffer.from( - '1ee4f9954c1ea6121229a1e30931fb246d7d822d4a3522f0e70b87e93627ac4f', - 'hex', - ), - Buffer.from( - '0336c0724d450d99274f2402a6410a9afc5dc4dafa87ed6086a321ac5c82bf90', - 'hex', - ), - Buffer.from( - '4ceafc674628d10aae232c03b0229191e3a45ae0d31dd6568b8c2cda27b9d0df', - 'hex', - ), - Buffer.from( - 'f38076b123cc23269b1328af476365f8ade009ebe99f1e106c6aa1208eb269bd', - 'hex', - ), - Buffer.from( - '77246733b377f919ce048a282a5d715016c7d4cdb514ecf088571f777838f34e', - 'hex', - ), - Buffer.from( - '7d1655ab4fa2d828b7656162c46b2c7d251dede5e3c36c68d31e309cd896e00d', - 'hex', - ), - ], + mandatoryKeys, + optionalKeys, numberOfSignatures: 44, }, - signatures: [ - Buffer.from( - '4d38666425327e3c950cef3d5d6bed86b7a32e32002651a49ed5dbd0143d9b2fe94d1aa970ff6492da8e174f844d3c4736f980b322d35b76903969c48375ad8a', - 'hex', - ), - Buffer.from( - '644abb27920144bb4e4a5030e77cbdc53ea03fb9dd4ecd9abb8a5653c581f766b4ca6f33ce5f603330959e2f8263ae187c35b1840a840107cb42899bf854db01', - 'hex', - ), - Buffer.from( - 'a20859fecfbd7a4a8172fc740e69abda576d508b41c5a952a5c545e0d8cd2625f22a1b1b16e8eea3ce6694e409c7ee36e94c9cc08127ea5a83745af0a06cc576', - 'hex', - ), - Buffer.from( - 'd4c0eb97d2df39576e95b8c12cc6883d0e71d7e792c054d7150bcca061061b8e19cb9ef0a90d694eec17cecb8bf33e1b514cda2478298f6d09489f8fefe0ced6', - 'hex', - ), - Buffer.from( - '630755a2fb1cf34f308a6ddc6866da2a9ae4a57b13b11a1ce4990e289f3b4ffb4cbf0363ab3c5f539c167b236be4ceef4daff86be833ad76079853d4934a035e', - 'hex', - ), - Buffer.from( - '8347b0c139071fe4ce90ca53b83d557522bd3384ebc918afb45e9895800ab269e6bc4ae4390222d28a05c2a1b00d3dc55b81b8db85741d9d321c71189a1a4f87', - 'hex', - ), - Buffer.from( - 'f378fff268a79c98ae946304469e8c69d26c342665b07873a6cb4042489431ada8c3ba81b847fad6cd4443f604d71ee371a53ab2c9500bc7df7667207d96a373', - 'hex', - ), - Buffer.from( - 'bd4d1ea1384317f8977de741bbd54229728a06d7259cbf45800d309e5ee8bfcf3c85f7c19afaeedfe6efb70311c79a7570fe6a14a37c5316fdf7fb95fbdd5e3a', - 'hex', - ), - Buffer.from( - '82fbaca37405db859bff461fe8ee5184ca327b55d590b4b8db0e89f51c545d281d0affb7f6bb6ea9552026f7b1ca858337eb1dd322b1ba1b533bbb58c3565eca', - 'hex', - ), - Buffer.from( - 'ea3f88fb092982051bf3ef6a35771278ff33855a1a5632561bd6b8d70ca8717d59c2beff5cb3c99bc85b0e59f149bbef96a23eb1d30298c656824c46bf899e40', - 'hex', - ), - Buffer.from( - '1652e7d595d7a200cc465371ec6c9ed21b301ee2ba127d8e09fc7d83189ee8daa856c25ee4309bb2304a37645752840b90e064ee0948b1752cc9b6e4c1560a07', - 'hex', - ), - Buffer.from( - '834c25f2f69b861bbaa3a88f34f91515ef338583cd5b88230c2d3746eef14991e4495878d3ce61800db4a5fcad07f84a132f081a297641470e3b42a7a28d9e04', - 'hex', - ), - Buffer.from( - '32cebb9e67128017f4521e620d4921bd777314eb06d8f64bde43a2701d7988c413d49907b7cd947823eb9b352fe31e45077287925036aab8fcc84c7fe96956cc', - 'hex', - ), - Buffer.from( - '0be3fc36853786b88384d941f2cdb83e435b7254268c2465171f9d3c46f76014e9d3445b27b64359ad80e7bd80874fd91e3dc1cd24d5320944ce0db9373dcfb9', - 'hex', - ), - Buffer.from( - 'a3319caf35e22c0ef4d5024ad32d7276dfb0fe51699167c5cab7b6ba658b2ebd2316c86213dd8410b9fb280eae57d38283344ac5301d89561767c01fa71025b4', - 'hex', - ), - Buffer.from( - '5b0e07fdfb5ff042a64fdc51971bef02314990a665b6635d8188220d688dda617b5b88a45961050462ad513b7b343f0d436c206434cba6f57670180e3bef1891', - 'hex', - ), - Buffer.from( - '95df2e48ad98f68dd3a5d3750af788db3713448579a2ed05ef382ab2f66e247827d73b927d9fa7dfd41306c311ed19c7d9df9912d183bccca4aabf20f7f24b12', - 'hex', - ), - Buffer.from( - '1346923d836f51177ba3fe31c051ee4f1e9d9d49461359d9dac1d8228614ac4695fa9f3e33329cbe6431e1c8bb5153263cd702d55528cd7a5a4493cf820c5e6f', - 'hex', - ), - Buffer.from( - 'b2016c73eb8a7b38643957f2d10a991ffd8a2f99ef656fc27ce94ffb858756e9f83954e5282ff69bdddff381e28fe7e86fc6fd8a4781d97198a25288d466b1d4', - 'hex', - ), - Buffer.from( - '8efc83f30d2fddf992c37b1defb478cb595dc3d0eae005028a4e3e872678e6d2a1bd176763fba1d2dfdf6d86549bad391e6f70bfccf6660c11f85daa02a4d227', - 'hex', - ), - Buffer.from( - '04ebe5fca3871f5cd3c815d9cde5bf5519d9d0489688eb716a7af6863fe2f8986d0d7702922aaeeb48f5c25328a405419037a1974b0e2292a3825d1d48b60158', - 'hex', - ), - Buffer.from( - '025ce3ecf8f221d3b3ae644c6750cf6c35c6defc3b07ba45b5f91a52e636cce4570bbf2cbbc0f0891dea955c67c41c2608ae2b083ddf8cde3ffc38fd3f902f6c', - 'hex', - ), - Buffer.from( - 'd2abbd95622d749ac0408c9e767e713e8015717c43472c728034bde5cba4df2186e81d638782a674175d3a93b64214cbda38f64c65ee99d9ffd4c543bd6a7fde', - 'hex', - ), - Buffer.from( - 'ed91971a73654b6cbc66501cf345a81e0b5714c4328311bf03dcde18dc14e5b37b7c3714034b2110b6fed25da9d1bbcc5ca3f0ed51f45b08cf4e3bd2ae1ea2df', - 'hex', - ), - Buffer.from( - '5dc7e31663527c56aef69f1addbec15fd73ee8ff93718194492a16987f822e3ac51d9b2095b01cf25752a2cffc7009fd02fcf950257ed115a423f4811de06be1', - 'hex', - ), - Buffer.from( - '1f075ecf558912babdd29e4551aeaafcb714dc53344b6cfd1ef90163bdb328ef248d22b3a6ca98686fb37d3b038823f76e0df22f500f2372077b6be9539a0a63', - 'hex', - ), - Buffer.from( - '033b9956a0d60a861705eafab08209156286bc6a5e0e2d1eef3692781bfc33ae6428b8c8b193af81098ac47799d88d32ee8128d16e085208966e18fc375a6e54', - 'hex', - ), - Buffer.from( - 'ed6109ab65df3d4d5fefadd0268ba22e65da15d6cee5c19a26fd5c8a4f20aa4fd1ad6f8a8d2cdd97d78908efcb08bd1765be7364cf4eb6c1b872c7e41fb499dc', - 'hex', - ), - Buffer.from( - '8d15945b5d3cfb055026eab29c6776939f12aac5c51224159513af27e22beeed50c046c9071cce59ec0f6fc5576604468cf66e0ceb033c91ae1164a494bbb2b5', - 'hex', - ), - Buffer.from( - '1a0cc21131ba0b46871c5f963d6d8389019fe8254dff2b6f8a18ad96a81c7e3084677a345eb0125a5ce77d27ffec4279183aa874da466625ba5f8466fa950364', - 'hex', - ), - Buffer.from( - '526612cabb51b33ac478af96a5af368c68983592a046c5b2e4d8d856d6f1e18ecb76aaf9c337ceaf88f83607f20ec899a44d16377c6bfa2f4378a582d0883542', - 'hex', - ), - Buffer.from( - '5a01d7f9d1ed2456578feeacd619c9b4ad9a6cc7d5aca108f15549ffd55a06f9ecbbd289c041be04056085926216a337b4c9fd6734f066a16d84aa7f9506aa8a', - 'hex', - ), - Buffer.from( - 'd9c13fa100a2b51b3b588fdfc096ff90acffe86acfaa6085c725a38a2ae2fbce318354d3d4aa0948f94538351976cd3e40e6e339d6dcad8a435d292eee35176c', - 'hex', - ), - Buffer.from( - '21526e4124db054803e0095f8fb90c07bdf875f389d7f3a36d36f8d734fe4ca1c3bc9d2658f66b50c3845996cd7b097a6181ab0bc6b64873e86101ca667a9a48', - 'hex', - ), - Buffer.from( - '46230cf1b3eeca92e57c99c3f8769e0362ced3cefdb01519ce64f6a624667d6b208b17b2250873c405d3bfca42153148e90c390f00534b404a763b14b501b7ce', - 'hex', - ), - Buffer.from( - 'a35be608a26e0379281783b7a11ed337e41036b703f3de136dfc40261802a4187ec83fe958a6ec10de40592537368be2f283560ed768c92021482208c70f11c6', - 'hex', - ), - Buffer.from( - 'bef33369256747cbde6b227dae9153edc8c5beb4776183acf654e8b1ac1029f6f342d69f0c4b1f177e201601b1a10044cd30a3af8388452cc6ad78461814b02a', - 'hex', - ), - Buffer.from( - '4b9316f65da34a4f005562ee50a33f11fed4846e35f0e889afecc7c8cc7a6d6afcd35afba1ca02ff722b9eb3886ccf485901bfec465fb0756b2d00ef10bceee0', - 'hex', - ), - Buffer.from( - '41ee69e8eb4b3b90c3f7f342ee01f31259895340df0005fdc15c9a549e54d4e54ac1407f0e921633e26dc85849e6733620f02b849f6814b075ebaba5a19962bd', - 'hex', - ), - Buffer.from( - '6330f1d37ea07a81d0a214108b61cfa74ffa5cce227488315fb2ca7b279332e6e411fb494d9f7acd82546e7851417373385a38f8c6360be3a074a955692d66f9', - 'hex', - ), - Buffer.from( - '239dd74b1872d11a94a836ed37eae165d18b0e664ce773041751048afb235d6075248169f953c50d86c70c9bf9833f186cdbb254feb4cf2098f2e28ca1841bb9', - 'hex', - ), - Buffer.from( - 'bfceade223b4b23fac1fb997be13c7c20e8b5d860302d690a37c57594a67f1311fb0c88e9b5c9a1756a015b1bcd21a6c4042b7d8292a989774c2260ac6f9ad18', - 'hex', - ), - Buffer.from( - 'a344dacae58477f5c73ad691370cc361df8b45bbd20b629efe44e815f7b5773e061624c29eaac1af4ba95f8d9a0d4925ba6cfc699cf9eb145d186a439d580912', - 'hex', - ), - Buffer.from( - 'fc966f32f7ecc239a05d4d31cffca5365ff8d005988cbd5ab13b7eab551f9d27291c34a58b15ffb45980a825f16d3762e3bddad62948e5f32e7f0fa40eb4d5d3', - 'hex', - ), - Buffer.from( - '339fd39a1929f18747b89ce2ee9f0c8e8d1b0f6b61a380e79301a6f93770a61a9a2870510bb317fcd477d57e8516bb7ea9e0ba22a2dd902f08dbce63c63bc7d7', - 'hex', - ), - Buffer.from( - 'd4e9414e748d208296d80f64c8a8d6fb01d9fe17b93c59fa683bbb3b5feec82e85142500dd3540fdce4ab8d3e2d768abb53c284f8ad1fc77020f26f2707ab055', - 'hex', - ), - Buffer.from( - '8adbfc2da88207b88b18a4412a1f17535156d5c0c7d2678dc60e884490a05c7ff089cc596438069c73d81ba65a7ae3932c375d4a35041da873b0f8f9ba235150', - 'hex', - ), - Buffer.from( - '254d189743e032dc8eb3f144ff3e8a68993473f0a98775cd3c6c4c1108c5febfa529663fa4267b65b85b3a2ff7ae3debd1dcdc58ee7ed591a51da253a26f139d', - 'hex', - ), - Buffer.from( - '11e0e4ec0b42c4d6f00aeb8c99d4f5789b30284b008f135c082a6e0216a61ce48e75d12c4c636d3428debaca56e25b7766f6a2defa2737b085be9a98676b4c9c', - 'hex', - ), - Buffer.from( - '1b2f2ed578b50c7193dc5d1bc75fbd71524b8152ba538e06e8343a5a9379f4e2afcdff17a69c9c5d47f7c38713578eb74c441a5d656e14ee3e32fb2c7b04ff05', - 'hex', - ), - Buffer.from( - '42e0a76a67f95d88e81ffce5a37718029b4a14beaf8a22dc2463128668496a6bfd0a4b6b4b13a763d1ba4a1038cd3471570dd777088c444a94d66e5445b4e7e6', - 'hex', - ), - Buffer.from( - '46ffd403c97042657da30a37b263e90549bbb72925c79aeaf42ee12df88888874d4ddbceec3c217cf822708ddfaa96d76a6feb46750bd6c43d9ec5721a2aa185', - 'hex', - ), - Buffer.from( - '5aa6a290e9d49d3d7def1b560d64d8179214cbf2b5836b45b8f699ac62f40489661a7c204f03bbcbacc54ef636d5e0847acb36b6f84bc4d0e0d6dff7a9c6c46b', - 'hex', - ), - Buffer.from( - '2a42c9ce8012cd01d158c8af64470bb647ea3b9361096f5074bfc7e2db29210ad86fb3e4b411acd4b75d1f2960691f019dcc960eecb79b23a14d9142e853c516', - 'hex', - ), - Buffer.from( - '87776e14ff3e4e994047f693b936e1ebeec36491b47174cf9a7014276e1b75c28485184eb8a3838677155276a9ca800afc1d3a9091a03143722da3bbaf41b2da', - 'hex', - ), - Buffer.from( - '4018d0738454e693db76b840b10ee38414522454581f5920b657df1f0093cfc3076aeb322715f025573e6a070a4f99b8618e31f3990fafe4ed78762ffbbcd10d', - 'hex', - ), - Buffer.from( - 'c37964cb9f9fb03ab4a8752b6901f5a770b3b24f96a4b80f53442d9b0657d93560821d5654f8831fa04581d604f80a5dba483d521dd71457b8099f15d5f3a9bd', - 'hex', - ), - Buffer.from( - '1606c663aa513213f6f0a7a3801cc94b426e2180df616e8759f68f87c65c8cf6eb3023fd03f12051ccd2ce1b1aeab59a12f790c45f49eff06cca4b31760fbc05', - 'hex', - ), - Buffer.from( - 'f8fc1d2873498ca388b6c112da61af7a536150edd59ea806529e2938f913aa051702979f022a5080d629d516d92832f0cb1a5423e87e0c3e98dc08214c82a50d', - 'hex', - ), - Buffer.from( - '279e1a639e7818800ed3254d69accc3fd4b0af98cb787aa6e187d67428af583c3e160325bb9062f3bc6569a2f67a146d97b815c95932b9bf93b1bbfd310b05ab', - 'hex', - ), - Buffer.from( - 'e2a5c3009c679d72b906272bcd23638467d14e3fe63d32779c4dcd59a560c6e9befa06df0884fefd43675438ef7b193bff169724fcbaaffe13abc68bc6eac3b8', - 'hex', - ), - Buffer.from( - 'f3e206f0c8c7401d16e3dd7b93142443d75ed03daf7cc29c1c72675db6dcf3b4ba08c376dc169501561478cf5b31768d27ef5a83ff1fa8659516957470026e72', - 'hex', - ), - Buffer.from( - '0c9a00a2b34a0d09417c0e1bacb0b2faaa2e4ef73ff700f6c7417e859c1df029d8b5992a04e1f336361b3ae63af523544e596b0f7465ff28bc7de08da63833e1', - 'hex', - ), - Buffer.from( - 'a58c7e915da617cad5b1ba6c1848a6306baa404de32f96e607302f4121d4e97fe9467bef991b7a9afce3a0315347182cc555f4b75127bf46154f894dd4e398f4', - 'hex', - ), - Buffer.from( - '3d3a436f93834b78a1fe6487fa45c4e51dd051a986be943b700d9fe49282438beb2e7aefe8e19161f84a1306acc0baa2107f6817f5c6bc261146dfc52f6b51fd', - 'hex', - ), - ], + signatures, }; const testSchema = { diff --git a/elements/lisk-codec/benchmark/encode_decode_full_block.js b/elements/lisk-codec/benchmark/encode_decode_full_block.js index 70b25c1036b..9b87007dd2b 100644 --- a/elements/lisk-codec/benchmark/encode_decode_full_block.js +++ b/elements/lisk-codec/benchmark/encode_decode_full_block.js @@ -11,11 +11,13 @@ * * Removal or modification of this copyright notice is prohibited. */ -// writeBoolean x 3,543,238 ops/sec ±1.59% (89 runs sampled) +const crypto = require('crypto'); const { Suite } = require('benchmark'); const { codec } = require('../dist-node/codec'); +const payload = [...Array(65).keys()].map(() => crypto.randomBytes(220)); + const suite = new Suite(); const block = { @@ -23,268 +25,7 @@ const block = { 'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad', 'hex', ), - payload: [ - Buffer.from( - '5d35f7abde893bd14e7f8e100309dc14c055eff356bfd659e61edc404a495767c867aac867a1e55a71a14881d4ae9e5402e00ebcf781f39a1f548f3ea6c7e46cb3db4721e4e6226bf2ec1f52ddc3a007f6e83effe63ff2689bbed81784a9bdc17ec78df698b0ecfe348c9ac174ab1161eb407168a19d3c880deaeb974369ec6abfdd5a784934aed67d3cd6f1cd0486d2f3e09a916b10d51c56cf670a6b1fca14acfaf3f44e6f963197a21005eb7996e8cefdc08f4b6b05ceefb9908758b22f26cc65ccdf32dc7846bd059f0cecd9acf5fdc8ab0de93a419ec6701d41', - 'hex', - ), - Buffer.from( - '206e5c7c7574cfc21bd89dcb04d3e64636e786e5a02df2c98cd83bbc7b6a2bdfa426c606affedc8ce7c2cf4e1e160e830efea6a053150c202c6eedb46fa23cdb4e5bf57b037a29882f36f3c13062d30de0711ace4d0b3aaabcdd5d3360bbc93b4e46ee01e29367c61f008fb3f7d5ca832c843c3601f1ebefd5e0fcb1cf69f626d2453ed815894c23cae8b0768f98a1ba160092d9efa10af6e20dbd7a2877a52eb78b0bbc44a68178ea35ef2b4c451a58e3de8c210ac1bc8ed2cb909d8564baf11db6b1511b5d027c7eee409e15bbfdb011b715c915963621807a130e', - 'hex', - ), - Buffer.from( - '747dc6343afa60ced1393e1668a4783a7379da0b2bfc8333d3effddb3360140e04c381bc18c82f3d8f7612ad7e818749ee574d657b95dc3f9bd82c30d033f79dacd581abb89b7f2de0fa13d957ee6a21d760c8e7fc0cde55dfb9547e7d97c8caf1b102357d2ae37ab4f1f1bbdbc035c8f66882436321fd264e00c7b02870a75f76ebde22f237795ff2cf43360db1baa29211e101814cd05ea065277c658ff57ccb7003875ba699f10e57b1778cf1c3c0a9fadbeecc3975f39c3e9ff7de2c60da0fa9b7a0d61623a3f83ca81a73ad7b008bf6ea79aac58694c6a5c737', - 'hex', - ), - Buffer.from( - 'c2aeb4a00512b8b83027bdd9f8451698c798661f5ced8e2ddc02bb90cce7c2fc0cefe9b34b0b8129cd27ba4060c3354ac2b66932af2abbd08ccf5945cfc7ae99b071cd38867ca660b2a4c41fbed8616e4de265555f5e68aa451a6ad55c9e48a3b4d65e6dba13cb2cd574808b7d5619f5222dd9bf16e3f732ee18547b3520c1e15db94b868fa6c99bd42f398a75c788c75b54cd049a537a37c7dbf0acdbffa3de4396238a547298b54d8091e58fd4514a00b1086a5d91bdcf552f55fbe3cb94ea15b02729d0535ff457816629a4fad4e42511b3cab7ed34bea4c57e1b', - 'hex', - ), - Buffer.from( - 'c5d493de0895741ab7c76ba38a3e06152a1df475a7bff6054b3087606c74d48aa53925ae580fe3beeefa1d380cbbc42fd16e233d535c957c50a73f589eca676c8f493ee7607ce084168d161e3dc7ad79d2ce86dd35fc291c1ff3a96acc89f2b747855e92c6cef18c4a10f040bfe856ea899477eecb956498beb8c1d6fa3e9122fccf14dc543c09add76cf64b66b3fc384b30cc3c45d26b9a02e7a2db50a0451904beeefd0098b036402b33ab82a1b63f4b38b0e8b9643b9897edf0b36a1b4edbb9aaeb967609b79ff547c4a6d809f21e129ac19f557418c9a454b61f', - 'hex', - ), - Buffer.from( - '48cbb4079dddd5d0eaf43fb785f2473c4a091bfc6fe3e5b5c71e36c64802bc86308338d9727624eabdfa2084c7b0ee817f697fa360d4568a0f192dfbf3d9673d75310b7992c63e90ec47f636899d48420839aa32ffe5dad07e92e4c3560698630f7775ee6cf9afb2f9db2a163489c959f77b6598cb4df0fdf31e13f1f3c9a01f2fedc5eca899b0c7f3b7841c9e96022f05e269768d4cbb8b336a1133d15b41cc461db26206db2f13922ae1924035912140544e8d50ad98d48742ee95cd3b894ecf8339c1a80ddc788add9072db803c4bde05c1d1c230c4086f2b2295', - 'hex', - ), - Buffer.from( - 'b97993ee9b05089775e0cc5b17b27933b0ba1d145cce174057daacbc5346d9d3b25f7bcc51786cb84d09b5d4e91a78ea97d2e873ebdf8c1004ebe57361e31228917acd127d0de0398b0add0aa85e9786e91e9b1ad53aefa85752563fdfacba6482ae4d29b41a613432756a85d97e45fe8ee8e310d500a688bdf8b70886586e09582df44ca7368d6044a0aa0a3167545dbf849de23806ce4cab4f782c04dafac073efd20a464501ebfb2e99223dad48870a2bd367a28ec47851c3a9d62fd6b6ef1d2d9c51d085b57e51a75d33a28fcea4ddccad3a60843a3e9ed21f09', - 'hex', - ), - Buffer.from( - '96b90d49575de0a3777edb487a8b93697e0dbefb07aac605252e28ccefaae7770f372b5129f7e23e4e76058495222a185f833e49354ccb78c80d6db08b2e4a543a1cec111e39175433b1d8a2d0157685f7b39ce467b280caee67be127583c6ec9e65b2913b513dabf28df35cb17cd4169038afb7803d77f0e62079b7078d1d73800111879daf9ece5c5157d64064df6d3bcaf48e5d1c040c7ab20abf45dd024844fe12e98d2d0008f8bf89d824919bce019301f3431cb20e8080b2f00ddfd01a0bd0568b255bc4fd930e79d06d8d1b67df1e6bb4c0257df1032e001d', - 'hex', - ), - Buffer.from( - '8c47f5ebbc9f4731a55a1990fcb91d9c979cbc5f5b4380f7b74b65efc833870ab0af7e00afef5ff72e9b2aa13c75c2daade17f64a7f62e32e25ad2dd8170053a8d36c0b0d4578af0e8bc0bacc9e7dd91925d0829c22288b06b8f45b4d6c243c09cfafd8cca4d0be2cf3f1b60c7c4d9be47269f73f4033ecaca76b392dc812f9c10c1dbb098c25c522261abe3fcc8f316481846d8d53149091da1c0707f9dcd01663aed6adf5fdd3f8089b5b6dc3fe46abb772b3812257ac994c6134fdcf262735e85b2db99fd2b48c8eff2bf1dadbb17251ce2cf7c6cc1ed537e31b6', - 'hex', - ), - Buffer.from( - 'bb0dad5012d868c118df990de212559ea19c480b87d78ff4573d8cee9a5855d6a3de23bb171766b80858be5a26e8dd4aa9ad2a11eaa836788f519ead946e386a43ef3457e21f81ef6cf2488bc465e3e7bbb19584addf264fe92f54ebe859fcd88bde0af7f9eb661c17f046938b1a1d892d197e7fce687f27f47a372fbc129dab786181082eb0a48c867fae23628edb06345db44439f03afd84a07597ca8be8947e6b110c06a9ac6653a60d6b201452677cfc211d13e0eea15000d5a5354d94f3c5fffe4130aa731e2bd5be524b2820a762cd6e85746483d53d4c9686', - 'hex', - ), - Buffer.from( - '20dd9c09f9bbb331fb9ad7438f61aa359ced865cc2fa1bacbd4a202141f81d9b35cf4bc991f63d088d152c1812b4e20826088f3e521537fcf6ce0067b2d8ff26f0e1993a6b50e1114601c78846dc97da33cf2aca1e75d8a3a9b662a3481923ab7ff025d72c1de95e8681cd80d5a98da6c4ca8fff6598b235f8169be4bfaec9150997762c073416ddc4047a35450489f8732f50ac5fe70bf193cfc62e967e2c7721afc1baadbe9c3eae985ea8c69d5725b5fe9d25b97e3f258616564e45718fd7659adce49b4d37ec68462b8f8f0a36b36bc3dad37e85473478c255e0', - 'hex', - ), - Buffer.from( - 'cd9234b01b9ac25a3dcd0924e37ab3ef6823086880edc6927460db81bd139e7a3a80fee02464d70f7a3fab9a8a04f7a8997e27d4ea74f7db18b035e33561c267dd48a9d01d8943fd6614fc61036d260b80c7ea030b0096d5125d930d00d6ee530f4c63a4777e019629ac4b2d831b90067e2ad614269d36cdc0c8b6fc6098c969bcb28106fdcdead88c7aec04d862c616d7664056e133a47934b030fafd79510f82768c751cc808222508613c2a72649d9c14c9b7d06aa17c5829941d43ec77ee2bc6435d8deb80070cdebc86f1332fcd35306c163cfe6bab96542ca1', - 'hex', - ), - Buffer.from( - '533638c656c926991b444e2dd8a56d04dfceacd56816fa051f6559c61024c6b3ac71497fcb5403036d99b0e5624d3c9a6588fb23b46657963a712dcc02218d38734fb26427a6aa9aad9bacef54a85c6fee05754687b4d25a1bc5f3b73b861d804b4459123af41a15f1e2a7debb96694f9a431902f9eee79cc0ffb6f545678e808dc420c45875077d2c0ce52340276c5b44ad1cd2d717bbd36ea77fe98850683bfe274dc2552b0c3aa77b858b6c11f4d52f8236993503a837db122bb0c0a80218792c4019cfdaae41ed7a346744bfb1932a83c97fa302024c546670e5', - 'hex', - ), - Buffer.from( - '48a9df330e6c34a3e184d4fda8f6a7e391242cd5388777180c143ab0178b7d0bde88e68075896747351feeb0224b1bf3753aca4fb8db1e1a6df141d39d1c9900654a6861e7a8644a2879935636957fc9b38eeee45cf553ecbeff222fe13a1768d3f5bf2c831dbdc7fcd339753e4faef9111cebb50430e65a28c8dc1acadc81c0434ee1144085759344e10bff7e490a56f632ccfa530b136f2b217c96ac1dac0404084738bfcb3e20db517ee81af006a58ed60b0364f8ec753c69f64fec4e6757f082528102f0f5168ee52408959e779472a06e8a86b2091fc32994d6', - 'hex', - ), - Buffer.from( - '9983b1afbdb3a18ac75f668f03e837b3b4fd06dacf15ffa5528fb87d5cf10285f708e3bc181655823a86f44dcab695bb9a2ba6f978d4bc370506368aa4dd3391fe54b4fe727a62242f1f725bc5fcb82f6197db5cee606500ba468057cc8c36732055705dc9a2d5b451062ef8e03f029a28ff17db2104adc21b5ce2cd8e8ee9ffd259950ebeec844634647d6fbb6caa40fd1cf9fa2a94c284660c2e72c0ad976ee4be96e1bda2321aa8952e27c4b177ce68b065b8da9a9268802ef95241a2a9d07c6053e0b7565cfc092bcb8ffd3fe0f998e76048d862520e1ebe83dc', - 'hex', - ), - Buffer.from( - '9222e8a04b98234a5d7b7051e7bcee36c86dd9f1658db82d38ac2bd0510088e5214b88b0041c2a59578320c1686b0fb618ebbb6a65db1cd9ee38e7dc9dca455c8a63eb3a42319e769fc0bcd58a362988170f9cb57cf6df6cf0b40ae4ad578dce24756e0b26fd784ac1d7786cfae92ea6274c37c3c0059148d261882a17c39a493e514fb912d42bfbdc3e98921ead0772add433b4c52dc5d716329ca4c5a6319e47cdbabeea1e646dc60b516bbeb04828dcfcb447174651654725552b63e660c7b8a1392aeab0a9439abd6ca1bed6c5b8346fa0abc456c6eaa78890f3', - 'hex', - ), - Buffer.from( - '2e85ecedbac55682798efe85869d24b4add23f06f1752d48c5fda9fffc516bbb54223ecea92adf4abc69ce5c3584218acf8d92efbdc34c42de55aa4c441c91ced9ae0da39aaeafc97a3ee70cb78c90dc2fd5279d0f89f953a4a52b6084a5860cbe2ac6b898b06daf2e7004f06a6bd43531f0e824acb0d62aed7f28a7fc973b40ddc29bb458f68acfc5d8baca2594c1e954497c0f9fb1a845aa405cc298c614e1af93def7d583ea4d8fd2b4d108c44fd6a79aa61b83b59abd722328bca03f5011b434cd76f2fa8e3d68e35d0c2a94c9c65cdbab29d7825e2352ede1e1', - 'hex', - ), - Buffer.from( - '5b1a7f06d9e2550cb768d13f1b38c1fc5b8191e749e2d50aef5158cc850646ef43c43107e87c5110f5d8259262157b4685c70b13b1f7254b45b9b6a397bb36965856e5aaae5dee3c693f471d9c1bdfb97785daf877e4e2097b7b5e674f46c5e4a7debc8e4dd8122aa0a794352717b1d268760b7ee1e05464aa40263de2ace068857f0b62d3e3fcb3308b686583a591a219b2e87ceccb553cdd8311a68f30720db86bfcc38236b8f626eaf9dc7768635761358943673c1d6d7a2c459943e7ef43acb340a2f146abc4ff2d873aa1ff785a6a0673e794a56d99369e9815', - 'hex', - ), - Buffer.from( - 'c5a9a56adb0581f6c6c636ba152bafa2c6055b966db21fab324e273c5e32ea05b962952e5438f38bf1a8c7420174a9c633af899c56a631aedf33323dff7f0f1fe4efd2ba2663d72f754fc4f7492f3ec892369f904782e58ae04ae9edf257cc2393d2164dc64d6ce1b5c4d60b7bea1e6cf2b142c3d24dac607dddbf5105b3c69d05c4a2f3b5c195f4599d3e8e37203bae1de9fd0e9f60a72cda450baaf590a18bf5bf9c8c21460c00a701b81a67915c92b8d85110eb2847c36732e55adc3a0c9070c1463fd9d8374b4e088b73519b3c7624b7071e1b514a3c072f13c8', - 'hex', - ), - Buffer.from( - '99e703d16d94867263bdade307f438a5ff5846866bc98797b6a4e8ff01b8d9bf74c89a13e6430095105b451c7100801df781824d71f9bf93963033ff4480c0ee8de27349e86efc480e3396b12b6c62e31c75ee3fece797d4fdd282c5cf7fcb5b34fa8d2cf51130f8cc72ba4bd28c87e6f344518a01448b68c4d06cb387d1be55f7a10d587167fda7e5fb105ba711bf83d3dfbd7d5db31f7b342583f72a1d918632b7735e3b29f57a870dfe41c1ec8901f30ec9aea6cf1fce15c2e776fea32e56379f19cf3822df40af7d4354e774e1d133b524c8d9037cf161559179', - 'hex', - ), - Buffer.from( - 'e886f33a32d365f4a8845c4aead6fe0a75531774267a8b78b24f5cec987becb7fe090b8046a0169f2caab28804fec68a763adb06546763b28fe54c5d8b3eaed26b40d677409087d2bc098d787741959f8af4d98c188859ca6292702646f3222bf051b746dba956e13ba1846fe428365e20571f879073c08a4627f19e17a9cd5e9a7599e3fb85e18fa06dde2d0121c73b3b1cafb071c5aa468d286cde785fba5b92f249c774eabff6cdca0756c641425e369eea241a5de05cdb0930dc72beae5d353eec741c67870d8d7dd2587f5fca9040bf1f0231cbda03c16f13e3', - 'hex', - ), - Buffer.from( - '3b482227295262a7548e6cbdb913fb1a71c1ce5bfb0582685d3331376c1fba97570ebca267e0c059c478abd8db13c0fde456e8623e5fa5fc86675178fae206b8e1b375c19bbc9ed126cd87ea6c868089c91c581b31d5088ff8e4cb6b10275a2a5c980ae0d58d2ac052d29de53837cbef80ff6466d63d30a739ccbc010cc2189051c5f0e7f24abefa758b79b35a4971672132f92f5a94c8381e06dde97a4527dd71e156d44657365ae6a708e4c726a35ea6ddba2f90f65e197898beae014632df555f2fdd286ec4f2811e9a040893691f21efc29f87e88552a1d5e962', - 'hex', - ), - Buffer.from( - 'c88f59bd08501e127bd4505ceffa5338020aacc2bc907f66dc918c1a2f6598ea9dfb8c486427d412cb19ebebc3c2242234061b6ddea54940532ef6350cd35076f641e29423bf752e342c04f0a9ad5e7d02d4e1a3af2f39ede8f352edfeba03e4f3fc43b33147984d518a98026d72e7d9126ac0dddda02234a6a5980cfe6ce4941eebb6d41844e32d8fac62cc3f608564063116190d3126cd2430b227a9c1335f61bd7eb2b259e5933d8c86a2ca3e5c9406631ba0bf04f6475580e8a259f9ceb66dc5c73386c22511b096f05d3a2247063f36fb6c1a4f621fe18ecfe7', - 'hex', - ), - Buffer.from( - '0ba9d2febc31189e7478a751d3f59739cff38a1562dd892c2ae4c9f470f83e7574c09077bbf3ddf535cf7f0af33005ce6d9700b72621c0f808387a3f4ff0f36e423367f0c3e96984720f73eb3226f32891fb9aa0c62ffd4cce81a233923e6bc3c981e668d88be80718ca522906ba3a82bf066366086d77c76d7931742e8e2559f1649f1125e26b805ca96ec0258479701b88df1cd486c3d534656cf018c137d3ed4c6559d106953f61cd1c97701bf3c9ccb4ae060671ad48feecbed2024296b77a81849c86f93015f0e6d7f7919257d7f09a38573ff9df646db1fd41', - 'hex', - ), - Buffer.from( - '41fe4e52239cec15bc83a429ee32e8b3661939677e0d39efd11bb3f636f7c4b5ae7eafbd974ed8e6e95df9f3419f4746e8a939eac1d20ccec4e332ecfe0281d54cf427bd881a8df0d03a1d6d3599100cee3de08743400b9877f3a323e874ee0b726f8d0d81943b5f03c524458177e0b8610e202d4bbc8880aa664a12523fc2ab0bb96858b9b02781d031e2c8715bb79e12be9b6e42089bd565d2e723eb566c58c1accd9b3a5b901b75fc92e1a92c164e6d7be4e746093d16e91f7d3cb4c3cd53571a51cf631e3207206a56013ae152da428f9a6446f168703f324279', - 'hex', - ), - Buffer.from( - '8749b22a6f19a39d347ac7b4028c835a7f7e8b6b862f1aab6f68030fb6e5792f7cdd7068e9821b64a30a84cc10a9bbd7acd78091188978f9c2bbb90c4161302e3504d8a71bdd014e4932cd93f7a3e51a5884c3511370adef94bd5ea208fad9bac0cae4b5ae3bbfa17033a7c9c24e2049464b618beca166594ea1642a487e88e4dd97891e2d0ee033c14a1acee8f16eee49a9e38a42ce2184028f74b464739b9dfd73eb440cf13d145985944c789fb8351efbf7038815e69e339b0200256eba5183e43b412a85fb4acd06b97fb40480b50b261f26e217b16d4b579719', - 'hex', - ), - Buffer.from( - 'd3cad92f75914eef754711288d526ebc4ce3778be7224bb43555fbd8fff8b099b8efab06bf66fd1bc4cd8fd93e8b3f5aedd96419b728bf9941afb2f8a46da8308fc970b98756fa2ae10a08ff5c0222fad8f902d0119ff4e7a0579f7c2979f0e2b31105770ba513abfcaebfd577dc640cde09074d3ff1e0798a34416e47221677bb64840c3d9c5bfd5d1fc17168f50ee9be1d23b45044bf2975bf7e1a69e1f3c8cc506c256e88142ca66a7dfb88b94aba5d9bd57966c38dff14d9b1f3e4d32b3cfa6b5b2278aef86cd1594a444a13906b85c6ca5a49d4ec4b7d0c0386', - 'hex', - ), - Buffer.from( - 'a653f367cd5a79cf01191c3bc13002f278999786e13aa073109597438b7a9f856776afe72cdc8bf317d523a9956d66aa0bcf458ba44457120c0dbce48214a2c047014ad75af0de705d51ffa49074386cdc6fe027a547b55877776ce07497315c36f7b3d3011a783aed2aa7293fb116a5896a94deb5bd095fb3190ea195758973b0c3aabdb9d5a4de356a38307b2c71bddb2e9b6af3555952e2753c78ae40d3f28972ac7252f06e202683a6f0fe3d3c6bfbe3df9e11aa8fe82131dfd0c7f7e502988c1d61b681704d95e0fa7ecc12ea879bc9eb8489c9110c816c3652', - 'hex', - ), - Buffer.from( - 'abce8d3ed563b5cd075eef4ea0b982a735ce46eafccefe1a80493b9c0df32ac471067cb101288f6bb372ab6cc2dfdf49216e77410a7943fa1306451ba6c560992987652bf47593a24c0e1500cf48006fcbe09439cca8542427e26457044e44b1e9945ff75f9e8f049c6fc797fcacb64eb46fdff190f91805b81809217e9ba74e067c26def5a8223055ea3ac5be22214ee6091f4c0536f19d5a17d6ba0506af12c6579613f2b4584db1506c939c3ce3a94ecaf6c1a2912e3ec229feda66711ade05936d55f4de0d74f90b9260c76f105d196bf3b5247261947c128f4a', - 'hex', - ), - Buffer.from( - 'e72a2d5407c03d19501bf49ba25c7b74a60c2f3bc353805b5b29a3b26f26695f9da20cd3e27d640c9875b3ac21b928bdf7acbbdd8db0b0c937f6a6b50cdcda4a6f4d1e4d5cfb4e9876d7d89fa7efe61950365be055c4b26642b34d07d402c0779a9006ccc64f3e3fa69e2b7b2e5b0168809d6809c43eadc7f7360e7bd6ac778d724fa88bf225d12fd7b7dbef6347dc59919bf988b29fe9b006edc993b7d03aade4a301461f456e70d77ca7674829c88ab2d96676080ad4d65fbcebd8816dcd765d2eb5261c7e65574ee3040af095a0937537542eb70f2a347a0184f7', - 'hex', - ), - Buffer.from( - 'a100affd17b26347126481a0046cc544e1112c613fc6691a1cfec5c50a96de9a189ee3274859047203c8380fcb0b93898239e367fdfb5e7ab4852fccd26c44d3f171289e27720298b73f23a1aa3af2f0332b46fbc02b4cfdb8d7d2a7ad0a7851dc0c6ffdd12b11c094adfb47af232aeb55108b1418869d3ccafe85350254e802f50e57f7a6d7f25b98a9cd2e824b8daeaa2d9b6e0572d81c8b0830d6484f1cca7756506da273f9923eff590a4dca168ad9c7a14a0cd996b8e4222a932963d271ea6590c8f17a17505b0f963da5e78a4ecdd5876aedae7ce16c62033f', - 'hex', - ), - Buffer.from( - '6c121ae5f14669476a75dc3eef962c840ffcd7eb0f8ef3fe758a79ea859ad5b076832a4cab8099437f838e130412fc578c90c698f257194919d5f08e2e1fef7233a80b56c3e342addffc19203953e3ed1e2d1c69104b2ea624eecf622c8ca22533cb90302f40fa70dd5e0d1daab342b560e7ba6adcd3548e4b731cadec7268ad82f666e72dafe91b8d5c41e870e6bba947eb096be513af7fc8f8a3b7d9c315a10faceaca0c3303061260bf8f7f8f35c492a4cab138412d7bf306f73533ff4cea9d7f0294582d9703ed99fcaa01a97e46e27f57fe6ae69454f7f440ce', - 'hex', - ), - Buffer.from( - '14bd3dd12cc831e23f52cfcd4c159ff82a92b57da59d58d850fa8e104cda36810821555e5e74c4ab74516ca31a4052d42d2e7cfbb11a986ebbba6862cc77080ca62b8ce5c9296ccf2d0dffcde8dd3554754325c2921895d59583914967b0829fca787238ad4b5f07f4586a57052ad525232094496339e87b2a40b30ffdc2aa66ad93275978f06520c70796e1ba940263fd07a7fbdcc773431efbf81596182612bbbc50ed62f90330ea85d67bcc51346b599224ead652211f9a2e83800ce33693a0acc9049845f48b86ea42f098e9908b0bd41e563eae5e65b0c55275', - 'hex', - ), - Buffer.from( - '723f42e495b705ecfcf0517ab9fa961030e498222ad37dcbe5a131d1012034509d2effcb91f1ef95d28f2085a07922fab6d6d824884def91ac3c7cae4e3c641c39a44fe042cfd46b46dcdcb30a413b699bc4a2520ae458c9c0313a4728e7917c883ab3c768439980ebb7921317d120e7b0e6d2216c08260f753bde008bae21467eb9dd448b990ce8d3ddaff42b528f7fd150f299efca1dc03848c75b3a306e21871ac0e23f7ae41c8140d8e2009996568e270909e58b9a1c5953a947fcf4af27783b453adc17929b5134bc3ca9e362d7175169a970b07c265a8f2594', - 'hex', - ), - Buffer.from( - '2060cd8057b34ce7dd05a50ed64f55305e60bdb8720bc2776ac4ff6f7e09190451f8c11aa65aa4a2c476d3946a04d5a0c5cda788723edb0fd6fcee8552954478acc0332a08dfa1ba05c6febb313d88988513d26177fff840155745f2a2b6024bc9601a5e964fcb8d0811e756cf47c3fd146a7d3552a33eee6ae879868a27dc85fa6f95f14ddb7ab7aacac70637e26ea37c3e0c0bc18799c113ce829bcacff3b4a5b404df984cffe5c7c9ffe2e4378b4070097e66a4f9fd55adf357c2edb620e7bcc5303a676ef399b070e55c101b7e98e3659c52d7589b2ac533d638', - 'hex', - ), - Buffer.from( - '163d211f75ab6cf701d2ca57893c351b0a1298d1f16eac95d0fba5b9ae8f2bbed545237796d863451e717e436f1021d869b2479a90f93d68f154de9ef71615623643eda36c71c32d2f2257e5d72eecefab6e8ad116d60bcbc53d88d2c7d1c78a41e6d26a3036a7acbe8b8425d21aa9383fbaf3a10d1edd5657d812d07c816c9b42ea6c8de6699d96266be801f0d3c50ffadc46bf873220a1157f3200932e6176b1d37e80e92893674913d276b1569a7063bb822104f4dea54e8080c3d2e2160bad13a8832fae7d07ebf1ede73d0b636060e27a579450a43b49bb5c77', - 'hex', - ), - Buffer.from( - '1288ccd8b7d28bc1e90bbcd7eaee2993584179e80b238659800db4443b96cf49ffa20a434d1f55bcc20197323638fd310bb1118aa05b80c3291ceca499c572315853e588b536abe6d7c6c26fb02d721f571d2e3bc6fdbcb1b644e5e0e8733513e6632e85acbac74b27d4c75404a02e25901a9e42af78cc315878ec364ecb6c16060624d1b60da3fca8233086d0e9db5a8e21d2e0d0027b223b39a401e54710537d55765cacf4db8b143735182d2620b6dc7de11532cab1206055c341dc6bbdbc77e826d2c3e8773115c72de8ab03d3c31ef9c86f290cc1d689a5ab2d', - 'hex', - ), - Buffer.from( - 'e416ac0b2132e58c4dcea414db42984013c8cebcebfb6175945eba575a56161bc1fd03109b70511bc0651eea00367078b48285b1aa78aef6c900309f4523e7dbf21412863702735c1eecf6a8c0284d909c170e956df0c36062bb8876f3514a207a5c057692d48ad21964498f674d00ede03c175dbee81ec2328e2474f63b7e4c72e8dbd3c6ce4fabed3bf27673404885b6113d4c041a11d50647e2118cee1cb4115a6d6fb4df400b6921efd0f1029a2585e4655dce65636c3d0522bbc1d5ecfccb8e2f5480786699e2beba43a8001fe028798505d4e6e5ec43e139f5', - 'hex', - ), - Buffer.from( - '4cb93b3f52c9c12fba141696efb10428e33a1eeb4dfc7e2480e758470e974aa8e238fb7a938dc77d6ba0f50f660cfcdc134548ecd55acc772bfe64a77b96c030f4e36e69b57c55b5d8da69985ff897b9714bc1f924357440a7ad5e6307c2502a27cb12fa92ebed17dae391840af8ef3edf0bd0c2d50c80552de7d7c50b884868e9cc7479130ba22e523fbe290d0b197072a99a880c2c1496fee5bc4d090fae2b256af5fb1bcaa37092b6ab1d433d0d25c2c4e008341e523bda1209c311d6568ec6a676c66b5107aee038c71a12d1ea6fc1065deb81dce441e6356fc3', - 'hex', - ), - Buffer.from( - 'edd84153994bda0a64b3940baeea493448578e4b2f9f50c028269c0fa7e6af3bbe626cafa5bc6ad1ca498e1123a5e11853280a2f57d3c771ca932b0296524fd1d9ea298c77bb1e432b106f378b67cfe857681c10f9aa9a7e3dda7fa9f7ceef54b6e6c5d5042d6ecba995991173b0e1e67715a6f4a5a860e0b381c70e7ddfeb26aa55723e68d84491caf5a25eb7989abbd8e6f288c0316ee8c9da761b0379fc7bfbef7a9dfdf985bffe44c17d545ff10ae41ba45763e89ce5383c283da1d1ce367916d48545f83c10c3a09ae33b37902d85fdaf76f22ac63d7b7e8a69', - 'hex', - ), - Buffer.from( - '0273adedb36ecc738180c99014866840fb66b17af445d428166504c87762b82c8910490e409bdc2ab6aad7aff4829677b8a94d2241b4690392e7a30c8741e0741d5eaa8797bf7bb27123c540f7b01341c89c6c4d3dc5502f8de34a61d4659c4f8b8982fd3dc41e9c82c1909c8955d5054d2bcfb89ab50aa0fca4a3e6a76a02c5e0d8b42b27768f502de45de91d23311b2dad29a2e83c29577e2b625f9c05119bfa3231541b0e2a0abc9c368bb04558d3c16ac2d3805aab0190d4681235a5ac32de323e7ca165eefd7ecd3c04c8b4cbf75e2f926403fb19a8ea19b914', - 'hex', - ), - Buffer.from( - '8a48d80d0a156788d23be90e387ea9563afd112b4793288b32a1884b161f417f1c5df180af1f4cd2036b0f8306c2e20e3439cce2922ce6617625a26d2537363b8bcfd3c651da5fcab1be3cddbab7e44e6d530bd64407df5d22390f479d2e68194688225108c3111fd07d81f5781e85a8972cdcf31a5cd83f8e6a7e0369b490c8d2d756858f37484677e6a9f77e0144e828e9cecdd989e5d0d646c4f518a861b093a616bafccbef698583502bd652194be0c06808c79366ca559957ad5acdc798d0e32078764322cdc2b01bd4cd16b8056b2bacc382eed99289cc3297', - 'hex', - ), - Buffer.from( - '2f5e5057ce502ba17b58d533c6fcb63296d2d50b6aeaa5eb2f9bc5720870c8e20ebb1137ab00db686840d358184edce8e753e7cb7c8455a25c5b4655680ce6a6a54f5664c80a890d5c2f7cc4e56c1c871180ab05f23c7492afc0630fdf3c74c5986572cef3e2e6f5dde371131d36b39bb4dea5f5cbb61e229ba2c4d53d47c25458060f925d45da9ebdcf280640f3a7346c643397866bdf1b1af7a54c6fdfbddc8fdfd572144f00a8993ef53229b5fc3cce62fdb7a1d60ffec20e60660100020f1b42ff7803a149192d5d3c86c94e625eff8d215d556ae2fe6d215e76', - 'hex', - ), - Buffer.from( - 'aa74ecbb8cf1a92dcc686d6d2c2559bdb40a255ed359ffaa2ead37c925f1996b549cddb358c4ded4cfda1e314091ef0bc2af4e0bcca806f63a7a6552980aea4ba81b560b65b32e64ecf7be80e3cc6ef0b0b7dedc3b61e083ed29fdb8b7534f84165f4e48e32f6084177584a4bf8df9751f2712fda1ccbf2e77142e216b6cd6646343ecbb5423952475b703a339b38747f37ff21f17ee1e6fa83844069c5c4730e1750583e9b7e0a6774b0ae1d066e9ff8a0a56f922ef625a3cdfc563f9f58a68015a07491e8271e26f08f0d1614691fc654977acd3a50551c1e696ce', - 'hex', - ), - Buffer.from( - 'a70cf070d196242cd5438e8aeb56fe4b869a4fd0ee469d345756032229835832c0493cae079ea5d18eeb39cd63f68f3c134a6672c96dfa4ec8ce0dba1262f86e5f88aa60be5690f92b37baabb0fc5a05f6223f1fb8519269397d90d3613153e13cb31e5c2c273342e736ad66b2249947a309a2ea6e36b31513b16794079b2acbdba5579d03aec3e2c8462d76716131d8581a86f658743dd30cf1176fc8ad37ef746e951d11bf27eaa21bff18762e567c80cf965eeb2eaf264d509cfa580bc9484549b306a7be56d7a4179f9abe747d310534854158e7451536012419', - 'hex', - ), - Buffer.from( - 'af0b6b09fea3aefbb60086d77225ed73ee9e2f461faa9ab65621eeb78e9458962271313a803a93e3af7ba92ecff911a00469e9a0d6cfabf899d74297fe4356ca14f8cc4fe0e0ef5785ce5ebac48bc57f75767d0bd02483878d5c8910bc99a1937f55e8ab0774232fdb51208a2088669b768b116eef3745a06ec11194b333a6378cde181e866949080f343a221a838a3a638dc15dc0ff12b36c62c5a887fd52f6dd5bf9554d38c588cd4d8f06bf154f512f23f779169ac6fc0b6752fe24b0c420f412c3b52ddaacdb4d1fb13eb6870d7b67d398b583a464f4da2a9c16', - 'hex', - ), - Buffer.from( - 'b7cba38870befa9b19e535e5209eb2f8720e933402e195633fa94908f0f88ffa376804704967bb2ad794da475b3b472bd1bcde933300d24aefafc16ecf20598711aa6fd748a824e71bd9678c0db46badc2cbde1d981cb570a239c9df85175e53c9313b1d911482fbc3a822b1bd17a3ab7b660491e3cfc87f6c1849f6b4889a6ebfbbc91833cd24b61062abb5b963e388726474a5c9880bb5e36c4126b017de751eedfd357289f8d2f75272aa45d362acc48c76a3bea5aecbda2a85aab55ba8db9eb300371aef870738cba8f63599fab0ec2e0fe3c9c78addfd939f44', - 'hex', - ), - Buffer.from( - 'c63b37284fe99fc7834e80c032ec6a693d4bec98b78f8bac93c5bef7cf2e7febf7984e65728920a8ab78805834cbd1fb422acfe87183e605a04767f242de0dce3a710730d66b22406f9344f414f2ac495cecb640387a40ae16339ccd761fead45ce9628446a8f69aa0c2a40dc73438b39b82a3f5406616c7bbe1b0b73fa7aa09b4a118de3d7f6e7f936e2bc89738728fc257b2f40b38763b95a801cae58e049f7168e7929c430a921ec701348f6efffa14f9e578152367a5badf4d4f98bc35e06ff14d4e12e693b0a0ca3b015b2169dea2aa2b0aa99ba68e860ef1ab', - 'hex', - ), - Buffer.from( - '2de01e1cdc603fac0ae24bafa8f8fb60f8f1141efe4818856173d644ea427a668d6c7a7247aaf43e3760c607304ee2eeb93814f7a9843ac40ead62893706e37c7ed804b3c4e9a1e9a4509c757259eca18886010b052a23a4ea1a6eae535bbe503c7181ccbc473a6e796d59b60f4167aa62202b3108a690b380387d553cbcfda87e201240e35467362bb79611ee3283224d7d94939cd878f6e8d2629e6671f641d74af147b4ecc3f66d19fd17e61993a3615b42261b186125777b088d430c1ad3ac3959a54ba1c8c03d1a99a537474b1430641a5f6a5507d4c058332b', - 'hex', - ), - Buffer.from( - 'c64bc5e31f80688f1ab1baeebfe763de46d47e4b7c1fa3d37ccc84011755801a6e24ab05cb344d571cba0b7b12b96980f5dd358b18cbc21c7aebc9de49cfdac877b5673e45934cd25b95ae9dd04f123929f2135c58cca32a81144292f2cca8ada0f2a9877d16adf5bb3dddbd5a0cea9d28a8274d79756f6b8ccc0a3852fbba2e46bdfa7a1307ff413a17841029d4df85a157c59e62137746225ce0beba8b1d4c1f8bec7320cbc39c9ad8cedf6cf76f8201df5d054b569b5a86ae098f7f7fc2c087e34f85912dd069f6e31d62f502517b1bfc19c7cec430cef9843fc6', - 'hex', - ), - Buffer.from( - 'fc65f435c11a5a7197b8341c58d60cec3ed0d016ead18b7f74ca88c4254167d525ec9e9763496b34d57cb89dcf5d8756074cdddc02543a3f570eb23752b08eba939d1c57fa3aad144a68c953727aebd5b529b6906e28578ec863acece973c5c72f33e80e89da64d1999642cb69d8fb33be2683a03d007a5e9299c8337f7f6531b459e9801d44740711d930439efaa8bbc5bb6d61980818bacfc92138cb4c018b4f015771043edaf2a8eda69bba78007bd4b64fef24c64fa9b3a03a7d5d2c9c5eb9f71b1ad7fa9a00d7a1c62563bf983b64f3ecbf34464516b364dc69', - 'hex', - ), - Buffer.from( - '7d32c9d5670665624be1869c0cd45ab2139caa1a6bb9f83c6ad8136b3a62aca431ebaf5e3a3b0b8af8200cc8efc0b3b563e25f9daa20d2f7712952a0841650a1ad1f61eb3d8248f345cae9a7138687b3378dd439d0f29f60558215e5500c55d438a7db848186d0b49803094686578d96d78aa9920b5b6fe1459385c4bea2c1ea7ace03e4ceb46add37a1e4ae17b7940d429ad2e0aec862319a3fd38363d6d0ef1250b6755d923c045b0989bb8fbda5532a9c9cf9d002ef35cdc915727c3753b729041f9dcd446cd69298a46d83c2c662539808893fddc55435d44431', - 'hex', - ), - Buffer.from( - 'd3a45d1ad64eb50993cb298f9d947b4bc39bee0ccbc6ca242ee15ad8501e68988d8600fe32e81a458cd8e56022e662e9ee2ec804ae8eda8fa512365a6e36e06ab9c6d7a28880348888c06f0ac15e86ad20836f951aaac187c0a115536ea2edc3e76c1dcef2b2f1e8caca7d6836300c53e0de1a1363e90294111ca4c108f851672c754d2bbef6ee48e9ee07ccdf1c14e6a5a403b18c571dee950073875a330a9555e983be6b4c8de22c39a9bcd2c861ddb15924a270f5fdd27ece928a83afdeccc494600672fd1efa988dceba8aa1dbf9101c1e97fdb880dcca9c124f', - 'hex', - ), - Buffer.from( - '9fcef13cb8944812936630b86e5f55b8be13bd613f12eed04219d1b5039c4403a61f80a72be1bbd67bc2321b80f5d98cbf2fce791f42fc5f22f07c9d52429f9dc588232e9e5fcd382959ec5526b54f78cd985290b89cd636445c08e47d29fa34e286a2e95848a4b8277e89cbcd5da1ab6040014b2c2f4c0a08fe15bb7bb900f02b2306b00aa94f1a6b3aac91fc8746357d12ceebdc61db6d246558a15d69207b6de58c2fbd3c2bb55f9cf83c7f43f40383bd23226e5902e618d548d6351a589ff3484c1561375a87e407f1d7e8bc3c2fcae51de9d5991c90c57e0da4', - 'hex', - ), - Buffer.from( - 'e4b367a40f26f5061e2ac8bbd2c014828add68785f0b7fb1dc392c554f8cb9f298bcfc866e3e4cef388b4e4e4e7cbd89a4f4ab8363f07290606b746d081846b742984d9f3a9304f1ac4c4ba609c2e67ef77faee389f7ae9b3a2f0366da1fa9eea431f33cc6e67b2edb2cbc337a5c2d2a1cc1dc173ba5da1a043983b75b60ebfd14a17e351cf98e516f057f9394408da480a1927d6a702145f34403a42b7fe423e4b74c6a9cc98874ef4db440602c89fcca36779461ebae2b2faa6e0e4df3d7d19021f10487dd8ddf80926c6cc1a64d9de1d8129eedf22d9767263d45', - 'hex', - ), - Buffer.from( - '7b0601fed398c16f4290d11c00409448164e29bd004bac559f216a88e1bd9d9a0f4ffb9b94f8e31f9287a20d4cee6abb51c4eae1367e22c07c45508df56e9f10495fb568b11b099a9a989ffdabf650b7b5ce33e3824eedcd3c0a264cef390457c24029eef090caa543ad205d36db22560ade92ce9e0d748ce9fe3a41a3c7593d180e439622c6625edf77d74f777d4b160f497f244e531e3ad060921264737329c502cf7f26c0c5642c95dcad2fa1d00d3add28835ab8e4ef8210c4d3ff61a1d41e6d7849e5dfb0abdbaf1097b7e1a6a35afe4de31b5975bbc6197ccc', - 'hex', - ), - Buffer.from( - '8847d625ff8ba774ba4d67aef3b12d95a03436baf6f916b3638ab615db22cfe50bb8c5e1b3a54dea969600ee7ff2eb8f92da7c24824c3adc21c0f446375f7ff5859063c5ef199cc0a024e1cdb240405e732d711f4481ae6c511bb1690a2892880030d39a567874019d4891412db59436382b2f723001648b2afec6b1c219153a70ed0bb21c3fdaf2949d9f396d147bccad65ed2e4b392ac559c5602a88b4743f2ed98f6dc2cd886e10a8509897cdb4b932a55971397b9d36869f77f93f15c8d86fa567cf7e2a69723e7fe3c1718907a4368d21854d6151d563fb1326', - 'hex', - ), - Buffer.from( - 'ef7e45ec3f63a4009e0ff95c02ca80808fe41a8484592680205a6a6a7c3e4d8f65efe1e83122ce921ddf20da0cd721979842b1d1a87dc66a63d2fc4fa4fba228a4cbd30f4fde546051a69cd280cd7faf1168eebed6ce26f8bb81b8eb91975457a7886fc39f5f1040af6409feba031bb68c23c9e6944b957ff096bf1bc84d7ec7746224eac805b3ad38c83c1953d54eef09ceac492f2bbbb268f566d7e5a9abf992812db86765087f5aaffd447a8b5984ca11dbac5ed793a6aa3abdc4ce938c4fd297291d525ee5d4da0702de39ba544f659bea19685bfc841203e5cc', - 'hex', - ), - Buffer.from( - '3db1ef5aa843f1d9c67efff078bd514745a27244df5948acd035d1dfc5b4e89bba560520dee41a92ed58837f49ab45bfaa51f7b45401bf8b71c160eea64dc27c78a9b9eab33eacb29a6058313b888588487d9312d826f518b3eac8e9caf62c9b2c44874f319aa3fd7c3b3c83129ec3e117bb77e8b6fe4e9bcfd172af0e08369fe6939f1581acb7158355b48b6238276145705c8f506fe9f50596d215967549528f965fe9b82a0d75cf940a05ef215748b781c4b902ab6df312a95bb8a986375acdac658e48c118c498eada44083038bdf393603de881f5f17b98ef23', - 'hex', - ), - Buffer.from( - 'cee95fbc3f3b18dfc4af2687c34199073cf664738d5a1de71a88f43a9f5022ced5cbb47ff4639f1de9c7f86c8974590b4fcac06181e9feaf85079f50fa5e512952e2fa3d9e941860bfb62db8ae74e561527253f820a9c06bc911c35d692e169c4a7e98544d44cab7970b65e0057dc6f57ed88e2ae100fcaf48c8a08a5eefdd7a2b3523c03eba0d31ed2ce65ccce70bc465f4fcccb3d3adca948d5275fdfddce8ec3b583514a8f0b6b5fe15ebd69ff325a655c2583ef5ebe1a773f293c36afb21aef778203b715fea6e67f514b074bd9ff988a1492b9a4540fa520bc5', - 'hex', - ), - Buffer.from( - '8c426e50842a288d5fee2cdf0071fd04208f4218abb0a3363e9202c3452a799e8b65b90d9bdf7c21ae794f570ac3c15c21456ac8bc4ae90189ff940a979a3643f340b4c4c670837f860df492c26c608899488368b6cfc11354f7e27e837c6303565eeac2295de26212b41ccef5ca6913741ee84885d1bb26a9ec9b5e702024e3cc1c1f9b6e48407563bc2501afbd51db9029a122d9002357148417f6dc024c359f185f108c519eeb24b33d9467ba7a65ea1196623919eec10bce8fe758a3c556bbc8a0efe1d2817aef24a9a757e9f0b538107243006125f9a10a64f9', - 'hex', - ), - Buffer.from( - 'ad46bec72ea6178264464bad465446b56dc2b06bbca038cac084e7201af8c3de6be655236bf1729c149ecd3a6b7a035d0c2bcce63827e8ddc788e348ef5cc1fb484a0ed2292307c40d2b7ae3f2b624b0c734256379d6165d0135bceb95429ffda4c47af340b341b8202117009f6efc7a519129f99f238405a4314831a7bd0a874307aacbeee31f9ae088d8de2ab0a5016fca3a822f2123ada9eb236169b8e721bb7472fc4f5762771d318446db8c6d86bc1fcfce42a68d6465482e8713d43ab2aa00b032c907683709fc69b7c2330d0512cb436ca0e907f7a594b330', - 'hex', - ), - Buffer.from( - 'c67f2c22ec2925d8289a5b2ba652118aadaec4463b8c7cbdd37e36312691111284e37e4c9a26f3d8f23f32fe69b6d9128f0c3e3c94b816703ac3413994d84beeaf6a268b2f035e72d742be05cb9e874e995c76c7f564a5feebd52afe2555300f90ab7fcbe8c020d506d4dcd21af31756be3ac31af65fd7954d984ba346748e7238759a10d2c2d54a7f23637bbab71f95e8287d25c161bc7fd8d0554d2c7979461623b83b64206e296d7e209999819ce183eb28963486d883f6810afcb3fbe7b02f40a4b81f32cb83377685bef001feebc3932004fe5bdbca597bb166', - 'hex', - ), - Buffer.from( - 'b5a688296108fe49b6b4dbdc55ade7d914746f76efc0b30047e7a2f5aedaa7d6d482539e6ba70a4f0f0594259e10f4a8837dfed71b02cd076ac41d2da85af4a42cbfca06654af08c574ba2df883a4237a9bb945999d312295b026deba1333798aa34cd1cb5d534c80d9ccc4e9c0f93c17609e6e6ee88b35eab38e0b904b23447b8f261235aeb70dadaf44abf967f2389226f118631d6ebf572898a69ff5f0811af76f41c132f5fee823b6c18c711dcd8508ea8b93a2d31f11ca527ea373f94de7bd04bde926866a2afda8cfb8aa179f62ff44c47db0968eff13e681f', - 'hex', - ), - Buffer.from( - '2c37423d953dbeaa1f7bccd9e2bc8e9f819cd4ddbc70fa5df8519d786f2b875f6736df9f29473ea72aadfd5d6156e53675d10519cf6ac55e99f5c14dae6cd0f5eb1a788216857ac71d90bfc6b127a6750b5dcdae99787d63224dcf14482c6fd06a9d4a2b74e01d580fa71b1823b29d2a2a75e4ad2e12e754550d1e766b3b29855c6e3f0986b16986348d46035adb14e5bafb217ba7d393c2614fcfb995380123653b943fecc454d40ae162ceb26435d20a68e928a2a7835c8b1bab4046fdf44452e7f4e4343f8236d4bd42a218c2fa0d93fbea79c336ccd477acd2a9', - 'hex', - ), - ], + payload, }; const testSchema = { diff --git a/elements/lisk-codec/benchmark/encode_decode_small_lisk_transaction.js b/elements/lisk-codec/benchmark/encode_decode_small_lisk_transaction.js index 24f61eec545..feb628b9623 100644 --- a/elements/lisk-codec/benchmark/encode_decode_small_lisk_transaction.js +++ b/elements/lisk-codec/benchmark/encode_decode_small_lisk_transaction.js @@ -11,7 +11,6 @@ * * Removal or modification of this copyright notice is prohibited. */ -// writeBoolean x 3,543,238 ops/sec ±1.59% (89 runs sampled) const { Suite } = require('benchmark'); const { codec } = require('../dist-node/codec');