diff --git a/.pnp.cjs b/.pnp.cjs index c6426203740..0c1e79b0daa 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -2556,7 +2556,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./packages/bench-suite/",\ "packageDependencies": [\ ["@dashevo/bench-suite", "workspace:packages/bench-suite"],\ - ["@dashevo/dashcore-lib", "npm:0.22.0"],\ + ["@dashevo/dashcore-lib", "https://github.com/dashpay/dashcore-lib.git#commit=a61df6ae212647a31b3d58fd78bdf544abc5743a"],\ ["@dashevo/dpns-contract", "workspace:packages/dpns-contract"],\ ["@dashevo/wallet-lib", "workspace:packages/wallet-lib"],\ ["@dashevo/wasm-dpp", "workspace:packages/wasm-dpp"],\ @@ -2594,7 +2594,7 @@ const RAW_RUNTIME_STATE = ["@dashevo/bls", "npm:1.2.9"],\ ["@dashevo/dapi-client", "workspace:packages/js-dapi-client"],\ ["@dashevo/dapi-grpc", "workspace:packages/dapi-grpc"],\ - ["@dashevo/dashcore-lib", "npm:0.22.0"],\ + ["@dashevo/dashcore-lib", "https://github.com/dashpay/dashcore-lib.git#commit=a61df6ae212647a31b3d58fd78bdf544abc5743a"],\ ["@dashevo/dashd-rpc", "npm:19.0.0"],\ ["@dashevo/dp-services-ctl", "https://github.com/dashevo/js-dp-services-ctl.git#commit=3976076b0018c5b4632ceda4c752fc597f27a640"],\ ["@dashevo/grpc-common", "workspace:packages/js-grpc-common"],\ @@ -2639,7 +2639,7 @@ const RAW_RUNTIME_STATE = ["@babel/core", "npm:7.23.3"],\ ["@dashevo/dapi-grpc", "workspace:packages/dapi-grpc"],\ ["@dashevo/dash-spv", "workspace:packages/dash-spv"],\ - ["@dashevo/dashcore-lib", "npm:0.22.0"],\ + ["@dashevo/dashcore-lib", "https://github.com/dashpay/dashcore-lib.git#commit=a61df6ae212647a31b3d58fd78bdf544abc5743a"],\ ["@dashevo/grpc-common", "workspace:packages/js-grpc-common"],\ ["@dashevo/wasm-dpp", "workspace:packages/wasm-dpp"],\ ["assert-browserify", "npm:2.0.0"],\ @@ -2731,7 +2731,7 @@ const RAW_RUNTIME_STATE = ["@dashevo/dash-spv", "workspace:packages/dash-spv"],\ ["@dashevo/dark-gravity-wave", "npm:1.1.1"],\ ["@dashevo/dash-util", "npm:2.0.3"],\ - ["@dashevo/dashcore-lib", "npm:0.22.0"],\ + ["@dashevo/dashcore-lib", "https://github.com/dashpay/dashcore-lib.git#commit=a61df6ae212647a31b3d58fd78bdf544abc5743a"],\ ["chai", "npm:4.3.10"],\ ["eslint", "npm:8.53.0"],\ ["eslint-config-airbnb-base", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:15.0.0"],\ @@ -2758,10 +2758,10 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["@dashevo/dashcore-lib", [\ - ["npm:0.22.0", {\ - "packageLocation": "./.yarn/cache/@dashevo-dashcore-lib-npm-0.22.0-9a6dd273b9-ac9e268f6e.zip/node_modules/@dashevo/dashcore-lib/",\ + ["https://github.com/dashpay/dashcore-lib.git#commit=a61df6ae212647a31b3d58fd78bdf544abc5743a", {\ + "packageLocation": "./.yarn/cache/@dashevo-dashcore-lib-https-ae0d28c593-be3f570988.zip/node_modules/@dashevo/dashcore-lib/",\ "packageDependencies": [\ - ["@dashevo/dashcore-lib", "npm:0.22.0"],\ + ["@dashevo/dashcore-lib", "https://github.com/dashpay/dashcore-lib.git#commit=a61df6ae212647a31b3d58fd78bdf544abc5743a"],\ ["@dashevo/bls", "npm:1.2.9"],\ ["@dashevo/x11-hash-js", "npm:1.0.2"],\ ["@types/node", "npm:12.20.37"],\ @@ -2944,7 +2944,7 @@ const RAW_RUNTIME_STATE = "packageDependencies": [\ ["@dashevo/platform-test-suite", "workspace:packages/platform-test-suite"],\ ["@dashevo/dapi-client", "workspace:packages/js-dapi-client"],\ - ["@dashevo/dashcore-lib", "npm:0.22.0"],\ + ["@dashevo/dashcore-lib", "https://github.com/dashpay/dashcore-lib.git#commit=a61df6ae212647a31b3d58fd78bdf544abc5743a"],\ ["@dashevo/dpns-contract", "workspace:packages/dpns-contract"],\ ["@dashevo/feature-flags-contract", "workspace:packages/feature-flags-contract"],\ ["@dashevo/grpc-common", "workspace:packages/js-grpc-common"],\ @@ -3039,7 +3039,7 @@ const RAW_RUNTIME_STATE = ["@dashevo/wallet-lib", "workspace:packages/wallet-lib"],\ ["@dashevo/dapi-client", "workspace:packages/js-dapi-client"],\ ["@dashevo/dash-spv", "workspace:packages/dash-spv"],\ - ["@dashevo/dashcore-lib", "npm:0.22.0"],\ + ["@dashevo/dashcore-lib", "https://github.com/dashpay/dashcore-lib.git#commit=a61df6ae212647a31b3d58fd78bdf544abc5743a"],\ ["@dashevo/grpc-common", "workspace:packages/js-grpc-common"],\ ["@dashevo/wasm-dpp", "workspace:packages/wasm-dpp"],\ ["@yarnpkg/pnpify", "npm:4.0.0-rc.42"],\ @@ -3119,7 +3119,7 @@ const RAW_RUNTIME_STATE = ["@babel/core", "npm:7.23.3"],\ ["@babel/preset-env", "virtual:e2d057e7cc143d3cb9bec864f4a2d862441b5a09f81f8e6c46e7a098cbc89e4d07017cc6e2e2142d5704bb55da853cbec2d025ebc0b30e8696c31380c00f2c7d#npm:7.23.3"],\ ["@dashevo/bls", "npm:1.2.9"],\ - ["@dashevo/dashcore-lib", "npm:0.22.0"],\ + ["@dashevo/dashcore-lib", "https://github.com/dashpay/dashcore-lib.git#commit=a61df6ae212647a31b3d58fd78bdf544abc5743a"],\ ["@dashevo/dpns-contract", "workspace:packages/dpns-contract"],\ ["@types/bs58", "npm:4.0.1"],\ ["@types/node", "npm:14.17.34"],\ @@ -8484,7 +8484,7 @@ const RAW_RUNTIME_STATE = ["@dashevo/bls", "npm:1.2.9"],\ ["@dashevo/dapi-client", "workspace:packages/js-dapi-client"],\ ["@dashevo/dapi-grpc", "workspace:packages/dapi-grpc"],\ - ["@dashevo/dashcore-lib", "npm:0.22.0"],\ + ["@dashevo/dashcore-lib", "https://github.com/dashpay/dashcore-lib.git#commit=a61df6ae212647a31b3d58fd78bdf544abc5743a"],\ ["@dashevo/dashpay-contract", "workspace:packages/dashpay-contract"],\ ["@dashevo/dpns-contract", "workspace:packages/dpns-contract"],\ ["@dashevo/grpc-common", "workspace:packages/js-grpc-common"],\ @@ -8563,7 +8563,7 @@ const RAW_RUNTIME_STATE = ["@babel/eslint-parser", "virtual:6c6296bde00603e266f7d80babe1e01aa0c19f626934f58fe08f890a291bb1a38fcee25bf30c24857d5cfba290f01209decc48384318fd6815c5a514cb48be25#npm:7.23.3"],\ ["@dashevo/bls", "npm:1.2.9"],\ ["@dashevo/dapi-client", "workspace:packages/js-dapi-client"],\ - ["@dashevo/dashcore-lib", "npm:0.22.0"],\ + ["@dashevo/dashcore-lib", "https://github.com/dashpay/dashcore-lib.git#commit=a61df6ae212647a31b3d58fd78bdf544abc5743a"],\ ["@dashevo/dashd-rpc", "npm:19.0.0"],\ ["@dashevo/docker-compose", "npm:0.24.4"],\ ["@dashevo/wallet-lib", "workspace:packages/wallet-lib"],\ diff --git a/.yarn/cache/@dashevo-dashcore-lib-https-ae0d28c593-be3f570988.zip b/.yarn/cache/@dashevo-dashcore-lib-https-ae0d28c593-be3f570988.zip new file mode 100644 index 00000000000..61694d34b9c Binary files /dev/null and b/.yarn/cache/@dashevo-dashcore-lib-https-ae0d28c593-be3f570988.zip differ diff --git a/.yarn/cache/@dashevo-dashcore-lib-npm-0.22.0-9a6dd273b9-ac9e268f6e.zip b/.yarn/cache/@dashevo-dashcore-lib-npm-0.22.0-9a6dd273b9-ac9e268f6e.zip deleted file mode 100644 index 909a68aca0e..00000000000 Binary files a/.yarn/cache/@dashevo-dashcore-lib-npm-0.22.0-9a6dd273b9-ac9e268f6e.zip and /dev/null differ diff --git a/Cargo.lock b/Cargo.lock index c2e23dbcde3..ba81c0f8626 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1260,7 +1260,7 @@ source = "git+https://github.com/dashpay/rust-dashcore?tag=0.34.0#4c61ab617ca9f8 [[package]] name = "dashcore-rpc" version = "0.15.13" -source = "git+https://github.com/dashpay/rust-dashcore-rpc?tag=v0.15.13#88dfef0dc04cbe8f4b0d24e9aabfae8ca126c74a" +source = "git+https://github.com/dashpay/rust-dashcore-rpc?rev=f14bd9048cbc1767541f25b28db5c9ad1236d0da#f14bd9048cbc1767541f25b28db5c9ad1236d0da" dependencies = [ "dashcore-private", "dashcore-rpc-json", @@ -1275,7 +1275,7 @@ dependencies = [ [[package]] name = "dashcore-rpc-json" version = "0.15.13" -source = "git+https://github.com/dashpay/rust-dashcore-rpc?tag=v0.15.13#88dfef0dc04cbe8f4b0d24e9aabfae8ca126c74a" +source = "git+https://github.com/dashpay/rust-dashcore-rpc?rev=f14bd9048cbc1767541f25b28db5c9ad1236d0da#f14bd9048cbc1767541f25b28db5c9ad1236d0da" dependencies = [ "bincode", "dashcore", diff --git a/packages/bench-suite/package.json b/packages/bench-suite/package.json index b5925ae9248..b81c0a4d952 100644 --- a/packages/bench-suite/package.json +++ b/packages/bench-suite/package.json @@ -8,7 +8,7 @@ "lint": "" }, "dependencies": { - "@dashevo/dashcore-lib": "~0.22.0", + "@dashevo/dashcore-lib": "github:dashpay/dashcore-lib#feat/add-quourm-111", "@dashevo/dpns-contract": "workspace:*", "@dashevo/wallet-lib": "workspace:*", "@dashevo/wasm-dpp": "workspace:*", diff --git a/packages/dapi/package.json b/packages/dapi/package.json index 3eb0e558340..67ee346228c 100644 --- a/packages/dapi/package.json +++ b/packages/dapi/package.json @@ -35,7 +35,7 @@ "dependencies": { "@dashevo/bls": "~1.2.9", "@dashevo/dapi-grpc": "workspace:*", - "@dashevo/dashcore-lib": "~0.22.0", + "@dashevo/dashcore-lib": "github:dashpay/dashcore-lib#feat/add-quourm-111", "@dashevo/dashd-rpc": "^19.0.0", "@dashevo/grpc-common": "workspace:*", "@dashevo/wasm-dpp": "workspace:*", diff --git a/packages/dash-spv/package.json b/packages/dash-spv/package.json index 961a3cdae24..31153bcdad5 100644 --- a/packages/dash-spv/package.json +++ b/packages/dash-spv/package.json @@ -14,7 +14,7 @@ "dependencies": { "@dashevo/dark-gravity-wave": "^1.1.1", "@dashevo/dash-util": "^2.0.3", - "@dashevo/dashcore-lib": "~0.22.0", + "@dashevo/dashcore-lib": "github:dashpay/dashcore-lib#feat/add-quourm-111", "levelup": "^4.4.0", "memdown": "^5.1.0", "wasm-x11-hash": "~0.0.2" diff --git a/packages/dashmate/configs/defaults/getBaseConfigFactory.js b/packages/dashmate/configs/defaults/getBaseConfigFactory.js index 1614216ad2a..8682510cd0a 100644 --- a/packages/dashmate/configs/defaults/getBaseConfigFactory.js +++ b/packages/dashmate/configs/defaults/getBaseConfigFactory.js @@ -53,7 +53,7 @@ export default function getBaseConfigFactory() { port: 3001, }, docker: { - image: 'dashpay/dashd:22', + image: 'dashpay/dashd:22.1.0-devpr6437.c09090bf', commandArgs: [], }, p2p: { @@ -140,7 +140,7 @@ export default function getBaseConfigFactory() { threadNames: false, timeMicros: false, includeOnly: [], - exclude: [], + exclude: ['libevent', 'leveldb'], }, }, indexes: [], @@ -309,7 +309,7 @@ export default function getBaseConfigFactory() { tenderdash: { mode: 'full', docker: { - image: 'dashpay/tenderdash:1', + image: 'dashpay/tenderdash:feat-support-quorum-111', }, p2p: { host: '0.0.0.0', diff --git a/packages/dashmate/configs/defaults/getLocalConfigFactory.js b/packages/dashmate/configs/defaults/getLocalConfigFactory.js index 42254deb5de..438f4e189db 100644 --- a/packages/dashmate/configs/defaults/getLocalConfigFactory.js +++ b/packages/dashmate/configs/defaults/getLocalConfigFactory.js @@ -68,7 +68,7 @@ export default function getLocalConfigFactory(getBaseConfig) { epochTime: 1200, validatorSet: { quorum: { - llmqType: 106, + llmqType: 111, dkgInterval: 24, activeSigners: 2, rotation: false, @@ -76,7 +76,7 @@ export default function getLocalConfigFactory(getBaseConfig) { }, chainLock: { quorum: { - llmqType: 100, + llmqType: 111, dkgInterval: 24, activeSigners: 2, rotation: false, @@ -84,7 +84,7 @@ export default function getLocalConfigFactory(getBaseConfig) { }, instantLock: { quorum: { - llmqType: 104, + llmqType: 111, dkgInterval: 24, activeSigners: 2, rotation: false, diff --git a/packages/dashmate/package.json b/packages/dashmate/package.json index d4ce27e6737..418bf416dfa 100644 --- a/packages/dashmate/package.json +++ b/packages/dashmate/package.json @@ -56,7 +56,7 @@ "dependencies": { "@dashevo/bls": "~1.2.9", "@dashevo/dapi-client": "workspace:*", - "@dashevo/dashcore-lib": "~0.22.0", + "@dashevo/dashcore-lib": "github:dashpay/dashcore-lib#feat/add-quourm-111", "@dashevo/dashd-rpc": "^19.0.0", "@dashevo/docker-compose": "^0.24.4", "@dashevo/wallet-lib": "workspace:*", diff --git a/packages/dashmate/src/commands/setup.js b/packages/dashmate/src/commands/setup.js index f9e1465a226..3cc334eb12c 100644 --- a/packages/dashmate/src/commands/setup.js +++ b/packages/dashmate/src/commands/setup.js @@ -60,8 +60,8 @@ export default class SetupCommand extends BaseCommand { dockerCompose, defaultConfigs, ) { - if (nodeCount !== null && (nodeCount < 3)) { - throw new Error('node-count flag should be not less than 3'); + if (nodeCount !== null && (nodeCount < 1)) { + throw new Error('node-count flag should be not less than 1'); } const tasks = new Listr( diff --git a/packages/dashmate/src/config/configJsonSchema.js b/packages/dashmate/src/config/configJsonSchema.js index 0f57fbbf50d..0a99465e105 100644 --- a/packages/dashmate/src/config/configJsonSchema.js +++ b/packages/dashmate/src/config/configJsonSchema.js @@ -110,7 +110,7 @@ export default { properties: { llmqType: { type: 'integer', - enum: [1, 2, 3, 4, 5, 6, 100, 101, 102, 103, 104, 105, 106, 107], + enum: [1, 2, 3, 4, 5, 6, 100, 101, 102, 103, 104, 105, 106, 107, 111], }, dkgInterval: { type: 'integer', diff --git a/packages/dashmate/src/constants.js b/packages/dashmate/src/constants.js index e6338f61876..170d0731311 100644 --- a/packages/dashmate/src/constants.js +++ b/packages/dashmate/src/constants.js @@ -29,6 +29,7 @@ export const NODE_TYPE_FULLNODE = 'fullnode'; export const LLMQ_TYPE_TEST = 'llmq_test'; export const LLMQ_TYPE_TEST_PLATFORM = 'llmq_test_platform'; +export const LLMQ_TYPE_1 = 'llmq_1_100'; export const QUORUM_TYPES = { LLMQ_TYPE_TEST: 100, diff --git a/packages/dashmate/src/core/waitForCorePeersConnected.js b/packages/dashmate/src/core/waitForCorePeersConnected.js index 85a2fd28d2d..1883a51b107 100644 --- a/packages/dashmate/src/core/waitForCorePeersConnected.js +++ b/packages/dashmate/src/core/waitForCorePeersConnected.js @@ -16,7 +16,7 @@ export default async function waitForCorePeersConnected(rpcClient) { hasPeers = peers && peers.length > 0; if (!hasPeers) { - await wait(10000); + await wait(1000); } } while (!hasPeers); } diff --git a/packages/dashmate/src/createDIContainer.js b/packages/dashmate/src/createDIContainer.js index 3b2e657d2b9..382f0abdcb0 100644 --- a/packages/dashmate/src/createDIContainer.js +++ b/packages/dashmate/src/createDIContainer.js @@ -78,7 +78,8 @@ import configureCoreTaskFactory from './listr/tasks/setup/local/configureCoreTas import configureTenderdashTaskFactory from './listr/tasks/setup/local/configureTenderdashTaskFactory.js'; import obtainSelfSignedCertificateTaskFactory from './listr/tasks/ssl/selfSigned/obtainSelfSignedCertificateTaskFactory.js'; import waitForNodeToBeReadyTaskFactory from './listr/tasks/platform/waitForNodeToBeReadyTaskFactory.js'; -import enableCoreQuorumsTaskFactory from './listr/tasks/setup/local/enableCoreQuorumsTaskFactory.js'; +import enableMultiCoreQuorumsTaskFactory from './listr/tasks/setup/local/enableMultiCoreQuorumsTaskFactory.js'; +import enableSingleCoreQuorumTaskFactory from './listr/tasks/setup/local/enableSingleCoreQuorumTaskFactory.js'; import startGroupNodesTaskFactory from './listr/tasks/startGroupNodesTaskFactory.js'; import buildServicesTaskFactory from './listr/tasks/buildServicesTaskFactory.js'; import reindexNodeTaskFactory from './listr/tasks/reindexNodeTaskFactory.js'; @@ -300,7 +301,8 @@ export default async function createDIContainer(options = {}) { configureCoreTask: asFunction(configureCoreTaskFactory).singleton(), configureTenderdashTask: asFunction(configureTenderdashTaskFactory).singleton(), waitForNodeToBeReadyTask: asFunction(waitForNodeToBeReadyTaskFactory).singleton(), - enableCoreQuorumsTask: asFunction(enableCoreQuorumsTaskFactory).singleton(), + enableMultiCoreQuorumsTask: asFunction(enableMultiCoreQuorumsTaskFactory).singleton(), + enableSingleCoreQuorumTask: asFunction(enableSingleCoreQuorumTaskFactory).singleton(), registerMasternodeGuideTask: asFunction(registerMasternodeGuideTaskFactory).singleton(), obtainZeroSSLCertificateTask: asFunction(obtainZeroSSLCertificateTaskFactory).singleton(), cleanupZeroSSLCertificatesTask: asFunction(cleanupZeroSSLCertificatesTaskFactory).singleton(), diff --git a/packages/dashmate/src/listr/tasks/setup/local/configureCoreTaskFactory.js b/packages/dashmate/src/listr/tasks/setup/local/configureCoreTaskFactory.js index 0ba938c2c14..7002f354bad 100644 --- a/packages/dashmate/src/listr/tasks/setup/local/configureCoreTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/setup/local/configureCoreTaskFactory.js @@ -16,7 +16,8 @@ const { PrivateKey } = DashCoreLib; * @param {generateToAddressTask} generateToAddressTask * @param {registerMasternodeTask} registerMasternodeTask * @param {generateBlsKeys} generateBlsKeys - * @param {enableCoreQuorumsTask} enableCoreQuorumsTask + * @param {enableMultiCoreQuorumsTask} enableMultiCoreQuorumsTask + * @param {enableSingleCoreQuorumTask} enableSingleCoreQuorumTask * @param {waitForMasternodesSync} waitForMasternodesSync * @param {ConfigFile} configFile * @return {configureCoreTask} @@ -30,7 +31,8 @@ export default function configureCoreTaskFactory( generateToAddressTask, registerMasternodeTask, generateBlsKeys, - enableCoreQuorumsTask, + enableMultiCoreQuorumsTask, + enableSingleCoreQuorumTask, waitForMasternodesSync, configFile, ) { @@ -115,7 +117,8 @@ export default function configureCoreTaskFactory( { title: 'Generating funds to use as a collateral for masternodes', task: () => { - const amount = HPMN_COLLATERAL_AMOUNT * configGroup.length; + // Generate for evnodes (- a seed node) + some cash for fees + const amount = HPMN_COLLATERAL_AMOUNT * (configGroup.length - 1) + 100; return generateToAddressTask( configGroup.find((c) => c.getName() === 'local_seed'), amount, @@ -125,7 +128,7 @@ export default function configureCoreTaskFactory( { title: 'Activating v19 and v20', task: () => new Observable(async (observer) => { - const dip3ActivationHeight = 901; + const activationHeight = 901; const blocksToGenerateInOneStep = 10; let blocksGenerated = 0; @@ -149,7 +152,7 @@ export default function configureCoreTaskFactory( observer.next(`${blocksGenerated} blocks generated`); }, ); - } while (dip3ActivationHeight > currentBlockHeight); + } while (activationHeight > currentBlockHeight); observer.complete(); @@ -269,9 +272,15 @@ export default function configureCoreTaskFactory( } }, }, + { + title: 'Wait for quorum to be enabled', + enabled: configGroup.length - 1 === 1, + task: () => enableSingleCoreQuorumTask(), + }, { title: 'Wait for quorums to be enabled', - task: () => enableCoreQuorumsTask(), + enabled: configGroup.length - 1 > 1, + task: () => enableMultiCoreQuorumsTask(), }, { title: 'Wait for nodes to have the same height', @@ -283,7 +292,10 @@ export default function configureCoreTaskFactory( { title: 'Activating v21 fork', task: () => new Observable(async (observer) => { - const dip3ActivationHeight = 1001; + // Drive expect all quorums available when we activate mn_rr (activation of + // Evolution) + // We activate v21 at block 1000 when we expect all quorums already formed + const activationHeight = 1001; const blocksToGenerateInOneStep = 10; let blocksGenerated = 0; @@ -307,7 +319,7 @@ export default function configureCoreTaskFactory( observer.next(`${blocksGenerated} blocks generated`); }, ); - } while (dip3ActivationHeight > currentBlockHeight); + } while (activationHeight > currentBlockHeight); observer.complete(); diff --git a/packages/dashmate/src/listr/tasks/setup/local/enableCoreQuorumsTaskFactory.js b/packages/dashmate/src/listr/tasks/setup/local/enableMultiCoreQuorumsTaskFactory.js similarity index 94% rename from packages/dashmate/src/listr/tasks/setup/local/enableCoreQuorumsTaskFactory.js rename to packages/dashmate/src/listr/tasks/setup/local/enableMultiCoreQuorumsTaskFactory.js index a7036cbacfb..91ddbbfacac 100644 --- a/packages/dashmate/src/listr/tasks/setup/local/enableCoreQuorumsTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/setup/local/enableMultiCoreQuorumsTaskFactory.js @@ -10,32 +10,32 @@ import waitForMasternodeProbes from '../../../../core/quorum/waitForMasternodePr * @param {generateBlocks} generateBlocks * @return {enableCoreQuorumsTask} */ -export default function enableCoreQuorumsTaskFactory(generateBlocks) { +export default function enableMultiCoreQuorumsTaskFactory(generateBlocks) { /** * @typedef {enableCoreQuorumsTask} * @return {Listr} */ - function enableCoreQuorumsTask() { + function enableMultiCoreQuorumsTask() { const WAIT_FOR_NODES_TIMEOUT = 60 * 5 * 1000; return new Listr([ { task: (ctx) => { - // Those are default values for the quorum size 3 with all nodes - // behaving correctly with "llmq_test" quorum - ctx.expectedMembers = 3; - ctx.expectedCommitments = 3; - ctx.expectedConnections = 2; - - ctx.expectedContributions = 3; - ctx.expectedJustifications = 0; - ctx.expectedComplaints = 0; - ctx.masternodeCoreServices = ctx.coreServices .filter((coreService) => coreService.getConfig().getName() !== 'local_seed'); ctx.masternodeRpcClients = ctx.masternodeCoreServices .map((coreService) => coreService.getRpcClient()); + + // Those are default values for the quorum size 3 with all nodes + // behaving correctly with "llmq_test" quorum + ctx.expectedMembers = Math.min(ctx.masternodeCoreServices.length, 3); + ctx.expectedCommitments = Math.min(ctx.masternodeCoreServices.length, 3); + ctx.expectedConnections = Math.min(ctx.masternodeCoreServices.length, 3) - 1; + + ctx.expectedContributions = Math.min(ctx.masternodeCoreServices.length, 3); + ctx.expectedJustifications = 0; + ctx.expectedComplaints = 0; }, }, { @@ -274,5 +274,5 @@ export default function enableCoreQuorumsTaskFactory(generateBlocks) { ]); } - return enableCoreQuorumsTask; + return enableMultiCoreQuorumsTask; } diff --git a/packages/dashmate/src/listr/tasks/setup/local/enableSingleCoreQuorumTaskFactory.js b/packages/dashmate/src/listr/tasks/setup/local/enableSingleCoreQuorumTaskFactory.js new file mode 100644 index 00000000000..9a764bc4aa3 --- /dev/null +++ b/packages/dashmate/src/listr/tasks/setup/local/enableSingleCoreQuorumTaskFactory.js @@ -0,0 +1,41 @@ +import { Listr } from 'listr2'; +import { LLMQ_TYPE_1, NETWORK_LOCAL } from '../../../../constants.js'; +import wait from '../../../../util/wait.js'; +/** + * @param {generateBlocks} generateBlocks + * @return {enableSingleCoreQuorumTask} + */ +export default function enableSingleCoreQuorumTaskFactory(generateBlocks) { + /** + * @typedef {enableSingleCoreQuorumTask} + * @return {Listr} + */ + function enableSingleCoreQuorumTask() { + return new Listr([ + { + title: 'Wait for quorum', + task: async (ctx) => { + const seedCoreService = ctx.coreServices + .filter((coreService) => coreService.getConfig().getName() === 'local_seed')[0]; + + const seedRpcClient = seedCoreService.getRpcClient(); + + let llmq1 = []; + do { + ({ result: { [LLMQ_TYPE_1]: llmq1 } } = await seedRpcClient.quorum('list')); + + await generateBlocks( + seedCoreService, + 2, + NETWORK_LOCAL, + ); + + await wait(300); + } while (llmq1.length === 0); + }, + }, + ]); + } + + return enableSingleCoreQuorumTask; +} diff --git a/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js b/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js index 270bcda5bb6..f8cdb128fd3 100644 --- a/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js +++ b/packages/dashmate/src/listr/tasks/setup/setupLocalPresetTaskFactory.js @@ -53,8 +53,8 @@ export default function setupLocalPresetTaskFactory( return 'Must be an integer'; } - if (+state < 3) { - return 'You must set not less than 3'; + if (+state < 1) { + return 'You must set not less than 1'; } return true; @@ -145,6 +145,31 @@ export default function setupLocalPresetTaskFactory( config.set('dashmate.helper.api.port', config.get('dashmate.helper.api.port') + (i * 100)); + // We use single node quorums by default + // Set multi node quorums if we have more than 1 node + if (ctx.nodeCount > 1) { + config.set('platform.drive.abci.validatorSet.quorum', { + llmqType: 106, + dkgInterval: 24, + activeSigners: 2, + rotation: false, + }); + + config.set('platform.drive.abci.chainLock.quorum', { + llmqType: 100, + dkgInterval: 24, + activeSigners: 2, + rotation: false, + }); + + config.set('platform.drive.abci.instantLock.quorum', { + llmqType: 104, + dkgInterval: 24, + activeSigners: 2, + rotation: false, + }); + } + if (config.getName() === 'local_seed') { config.set('core.miner.interval', ctx.minerInterval); diff --git a/packages/dashmate/templates/core/dash.conf.dot b/packages/dashmate/templates/core/dash.conf.dot index 5e5729de132..35531e5568a 100644 --- a/packages/dashmate/templates/core/dash.conf.dot +++ b/packages/dashmate/templates/core/dash.conf.dot @@ -95,7 +95,17 @@ regtest=1 testactivationheight=mn_rr@1000 {{? it.core.spork.address}}sporkaddr={{=it.core.spork.address}}{{?}} {{? it.core.spork.privateKey}}sporkkey={{=it.core.spork.privateKey}}{{?}} +{{? it.platform.drive.abci.instantLock.quorum.llmqType == 111 }} +llmqtestinstantsenddip0024=llmq_1_100 +{{??}} llmqtestinstantsenddip0024=llmq_test_instantsend +{{?}} +{{? it.platform.drive.abci.validatorSet.quorum.llmqType == 111 }} +llmqtestplatform=llmq_1_100 +{{?}} +{{? it.platform.drive.abci.chainLock.quorum.llmqType == 111 }} +llmqtestchainlocks=llmq_1_100 +{{?}} {{?? it.network === 'devnet'}} devnet={{=it.core.devnet.name}} diff --git a/packages/dashmate/templates/platform/drive/tenderdash/config.toml.dot b/packages/dashmate/templates/platform/drive/tenderdash/config.toml.dot index a818a356409..bdfa1484da0 100644 --- a/packages/dashmate/templates/platform/drive/tenderdash/config.toml.dot +++ b/packages/dashmate/templates/platform/drive/tenderdash/config.toml.dot @@ -71,6 +71,14 @@ node-key-file = "config/node_key.json" # so the app can decide if we should keep the connection or not filter-peers = false +# Timeout for the initial sync process, before switching to consensus. +# If zero or empty, the default value is used. +# +# Default: 60s +{{? it.platform.drive.abci.validatorSet.quorum.llmqType == 111 }} +sync-timeout = "1s" +{{?}} + ####################################################### ### ABCI App Connection Options ### ####################################################### @@ -414,6 +422,7 @@ ttl-num-blocks = {{=it.platform.drive.tenderdash.mempool.ttlNumBlocks}} # the network to take and serve state machine snapshots. State sync is not attempted if the node # has any local state (LastBlockHeight > 0). The node will have a truncated block history, # starting from the height of the snapshot. +# TODO: must be disabled for single node setup enable = false # State sync uses light client verification to verify state. This can be done either through the diff --git a/packages/js-dapi-client/package.json b/packages/js-dapi-client/package.json index f6e303f37e3..6b337165bf5 100644 --- a/packages/js-dapi-client/package.json +++ b/packages/js-dapi-client/package.json @@ -28,7 +28,7 @@ "dependencies": { "@dashevo/dapi-grpc": "workspace:*", "@dashevo/dash-spv": "workspace:*", - "@dashevo/dashcore-lib": "~0.22.0", + "@dashevo/dashcore-lib": "github:dashpay/dashcore-lib#feat/add-quourm-111", "@dashevo/grpc-common": "workspace:*", "@dashevo/wasm-dpp": "workspace:*", "bs58": "^4.0.1", diff --git a/packages/js-dash-sdk/package.json b/packages/js-dash-sdk/package.json index e59d6e1b8d9..1c0988b2a18 100644 --- a/packages/js-dash-sdk/package.json +++ b/packages/js-dash-sdk/package.json @@ -41,7 +41,7 @@ "@dashevo/bls": "~1.2.9", "@dashevo/dapi-client": "workspace:*", "@dashevo/dapi-grpc": "workspace:*", - "@dashevo/dashcore-lib": "~0.22.0", + "@dashevo/dashcore-lib": "github:dashpay/dashcore-lib#feat/add-quourm-111", "@dashevo/dashpay-contract": "workspace:*", "@dashevo/dpns-contract": "workspace:*", "@dashevo/grpc-common": "workspace:*", diff --git a/packages/platform-test-suite/package.json b/packages/platform-test-suite/package.json index c67709fe4de..2385c353446 100644 --- a/packages/platform-test-suite/package.json +++ b/packages/platform-test-suite/package.json @@ -24,7 +24,7 @@ "homepage": "https://github.com/dashevo/platform-test-suite#readme", "dependencies": { "@dashevo/dapi-client": "workspace:*", - "@dashevo/dashcore-lib": "~0.22.0", + "@dashevo/dashcore-lib": "github:dashpay/dashcore-lib#feat/add-quourm-111", "@dashevo/dpns-contract": "workspace:*", "@dashevo/feature-flags-contract": "workspace:*", "@dashevo/grpc-common": "workspace:*", diff --git a/packages/rs-dpp/schema/meta_schemas/document/v0/document-meta.json b/packages/rs-dpp/schema/meta_schemas/document/v0/document-meta.json index 80d20a3f775..7bce81a8bed 100644 --- a/packages/rs-dpp/schema/meta_schemas/document/v0/document-meta.json +++ b/packages/rs-dpp/schema/meta_schemas/document/v0/document-meta.json @@ -1,526 +1,24 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/dashpay/platform/blob/master/packages/rs-dpp/schema/meta_schemas/document/v0/document-meta.json", - "type": "object", "$defs": { - "documentProperties": { - "type": "object", - "patternProperties": { - "^[a-zA-Z0-9-_]{1,64}$": { - "type": "object", - "allOf": [ - { - "$ref": "#/$defs/documentSchema" - } - ], - "unevaluatedProperties": false - } - }, - "propertyNames": { - "pattern": "^[a-zA-Z0-9-_]{1,64}$" - }, - "minProperties": 1, - "maxProperties": 100 - }, - "documentSchemaArray": { - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "allOf": [ - { - "$ref": "#/$defs/documentSchema" - } - ], - "unevaluatedProperties": false - } - }, - "documentSchema": { - "type": "object", - "properties": { - "$id": { - "type": "string", - "pattern": "^#", - "minLength": 1 - }, - "$ref": { - "type": "string", - "pattern": "^#", - "minLength": 1 - }, - "$comment": { - "$ref": "https://json-schema.org/draft/2020-12/meta/core#/properties/$comment" - }, - "description": { - "$ref": "https://json-schema.org/draft/2020-12/meta/meta-data#/properties/description" - }, - "examples": { - "$ref": "https://json-schema.org/draft/2020-12/meta/meta-data#/properties/examples" - }, - "multipleOf": { - "$ref": "https://json-schema.org/draft/2020-12/meta/validation#/properties/multipleOf" - }, - "maximum": { - "$ref": "https://json-schema.org/draft/2020-12/meta/validation#/properties/maximum" - }, - "exclusiveMaximum": { - "$ref": "https://json-schema.org/draft/2020-12/meta/validation#/properties/exclusiveMaximum" - }, - "minimum": { - "$ref": "https://json-schema.org/draft/2020-12/meta/validation#/properties/minimum" - }, - "exclusiveMinimum": { - "$ref": "https://json-schema.org/draft/2020-12/meta/validation#/properties/exclusiveMinimum" - }, - "maxLength": { - "$ref": "https://json-schema.org/draft/2020-12/meta/validation#/properties/maxLength" - }, - "minLength": { - "$ref": "https://json-schema.org/draft/2020-12/meta/validation#/properties/minLength" - }, - "pattern": { - "$ref": "https://json-schema.org/draft/2020-12/meta/validation#/properties/pattern" - }, - "maxItems": { - "$ref": "https://json-schema.org/draft/2020-12/meta/validation#/properties/maxItems" - }, - "minItems": { - "$ref": "https://json-schema.org/draft/2020-12/meta/validation#/properties/minItems" - }, - "uniqueItems": { - "$ref": "https://json-schema.org/draft/2020-12/meta/validation#/properties/uniqueItems" - }, - "contains": { - "$ref": "https://json-schema.org/draft/2020-12/meta/applicator#/properties/contains" - }, - "maxProperties": { - "$ref": "https://json-schema.org/draft/2020-12/meta/validation#/properties/maxProperties" - }, - "minProperties": { - "$ref": "https://json-schema.org/draft/2020-12/meta/validation#/properties/minProperties" - }, - "required": { - "$ref": "https://json-schema.org/draft/2020-12/meta/validation#/properties/required" - }, - "additionalProperties": { - "type": "boolean", - "const": false - }, - "properties": { - "$ref": "#/$defs/documentProperties" - }, - "dependentRequired": { - "type": "object", - "minProperties": 1, - "additionalProperties": { - "$ref": "https://json-schema.org/draft/2020-12/meta/validation#/$defs/stringArray" - } - }, - "const": true, - "enum": { - "type": "array", - "items": true, - "minItems": 1, - "uniqueItems": true - }, - "type": { - "$ref": "https://json-schema.org/draft/2020-12/meta/validation#/properties/type" - }, - "format": { - "$ref": "https://json-schema.org/draft/2020-12/meta/format-annotation#/properties/format" - }, - "contentMediaType": { - "$ref": "https://json-schema.org/draft/2020-12/meta/content#/properties/contentMediaType" - }, - "byteArray": { - "type": "boolean", - "const": true - }, - "position": { - "type": "integer", - "minimum": 0 - } - }, - "dependentSchemas": { - "byteArray": { - "description": "should be used only with array type", - "properties": { - "type": { - "type": "string", - "const": "array" - } - } - }, - "contentMediaType": { - "if": { - "properties": { - "contentMediaType": { - "const": "application/x.dash.dpp.identifier" - } - } - }, - "then": { - "properties": { - "byteArray": { - "const": true - }, - "minItems": { - "const": 32 - }, - "maxItems": { - "const": 32 - } - }, - "required": [ - "byteArray", - "minItems", - "maxItems" - ] - } - }, - "pattern": { - "description": "prevent slow pattern matching of large strings", - "properties": { - "maxLength": { - "type": "integer", - "minimum": 0, - "maximum": 50000 - } - }, - "required": [ - "maxLength" - ] - }, - "format": { - "description": "prevent slow format validation of large strings", - "properties": { - "maxLength": { - "type": "integer", - "minimum": 0, - "maximum": 50000 - } - }, - "required": [ - "maxLength" - ] - } - }, - "allOf": [ - { - "$comment": "require index for object properties", - "if": { - "properties": { - "type": { - "const": "object" - } - }, - "required": [ - "type" - ] - }, - "then": { - "properties": { - "properties": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "position": true - }, - "required": ["position"] - } - } - } - } - }, - { - "$comment": "allow only byte arrays", - "if": { - "properties": { - "type": { - "const": "array" - } - }, - "required": [ - "type" - ] - }, - "then": { - "properties": { - "byteArray": true - }, - "required": [ - "byteArray" - ] - } - }, - { - "$comment": "all object properties must be defined", - "if": { - "properties": { - "type": { - "const": "object" - } - }, - "not": { - "properties": { - "$ref": true - }, - "required": [ - "$ref" - ] - } - }, - "then": { - "properties": { - "properties": { - "$ref": "#/$defs/documentProperties" - }, - "additionalProperties": { - "$ref": "#/$defs/documentSchema/properties/additionalProperties" - } - }, - "required": [ - "properties", - "additionalProperties" - ] - } - } - ] + "property1": { + "type": "object" } }, - "properties": { - "type": { - "type": "string", - "const": "object" - }, - "$schema": { - "type": "string", - "const": "https://github.com/dashpay/platform/blob/master/packages/rs-dpp/schema/meta_schemas/document/v0/document-meta.json" - }, - "$defs": { - "$ref": "#/$defs/documentProperties" - }, - "indices": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1, - "maxLength": 32 - }, - "properties": { - "type": "array", - "items": { - "type": "object", - "propertyNames": { - "maxLength": 256 - }, - "additionalProperties": { - "type": "string", - "enum": [ - "asc" - ] - }, - "minProperties": 1, - "maxProperties": 1 - }, - "minItems": 1, - "maxItems": 10 - }, - "unique": { - "type": "boolean" - }, - "nullSearchable": { - "type": "boolean" - }, - "contested": { - "type": "object", - "properties": { - "fieldMatches": { - "type": "array", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string", - "minLength": 1, - "maxLength": 256 - }, - "regexPattern": { - "type": "string", - "minLength": 1, - "maxLength": 256 - } - }, - "additionalProperties": false, - "required": [ - "field", - "regexPattern" - ] - }, - "minItems": 1 - }, - "resolution": { - "type": "integer", - "enum": [ - 0 - ], - "description": "Resolution. 0 - Masternode Vote" - }, - "description": { - "type": "string", - "minLength": 1, - "maxLength": 256 - } - }, - "required": ["resolution"], - "additionalProperties": false - } - }, - "required": [ - "properties", - "name" - ], - "additionalProperties": false - }, - "minItems": 1, - "maxItems": 10 - }, - "signatureSecurityLevelRequirement": { - "type": "integer", - "enum": [ - 1, - 2, - 3 - ], - "description": "Public key security level. 1 - Critical, 2 - High, 3 - Medium. If none specified, High level is used" - }, - "documentsKeepHistory": { - "type": "boolean", - "description": "True if the documents keep all their history, default is false" - }, - "documentsMutable": { - "type": "boolean", - "description": "True if the documents are mutable, default is true" - }, - "canBeDeleted": { - "type": "boolean", - "description": "True if the documents can be deleted, default is true" - }, - "transferable": { - "type": "integer", - "enum": [ - 0, - 1 - ], - "description": "Transferable without a marketplace sell. 0 - Never, 1 - Always" - }, - "tradeMode": { - "type": "integer", - "enum": [ - 0, - 1 - ], - "description": "Built in marketplace system. 0 - None, 1 - Direct purchase (The user can buy the item without the need for an approval)" - }, - "creationRestrictionMode": { - "type": "integer", - "enum": [ - 0, - 1, - 2 - ], - "description": "Restrictions of document creation. 0 - No restrictions, 1 - Owner only, 2 - No creation (System Only)" - }, - "requiresIdentityEncryptionBoundedKey": { - "type": "integer", - "enum": [ - 0, - 1, - 2 - ], - "description": "Key requirements. 0 - Unique Non Replaceable, 1 - Multiple, 2 - Multiple with reference to latest key." - }, - "requiresIdentityDecryptionBoundedKey": { - "type": "integer", - "enum": [ - 0, - 1, - 2 - ], - "description": "Key requirements. 0 - Unique Non Replaceable, 1 - Multiple, 2 - Multiple with reference to latest key." - }, + "post": { + "type": "object", "properties": { - "type": "object", - "additionalProperties": { - "type": "object", - "allOf": [ - { - "$ref": "#/$defs/documentSchema" - } - ], - "unevaluatedProperties": false - }, - "properties": { - "$id": true, - "$ownerId": true, - "$revision": true, - "$createdAt": true, - "$updatedAt": true, - "$transferredAt": true, - "$createdAtBlockHeight": true, - "$updatedAtBlockHeight": true, - "$transferredAtBlockHeight": true, - "$createdAtCoreBlockHeight": true, - "$updatedAtCoreBlockHeight": true, - "$transferredAtCoreBlockHeight": true - }, - "propertyNames": { - "oneOf": [ - { - "type": "string", - "pattern": "^[a-zA-Z0-9-_]{1,64}$" - }, - { - "type": "string", - "enum": [ - "$id", - "$ownerId", - "$revision", - "$createdAt", - "$updatedAt", - "$transferredAt", - "$createdAtBlockHeight", - "$updatedAtBlockHeight", - "$transferredAtBlockHeight", - "$createdAtCoreBlockHeight", - "$updatedAtCoreBlockHeight", - "$transferredAtCoreBlockHeight" - ] - } - ] - }, - "minProperties": 1, - "maxProperties": 100 - }, - "transient": { - "type": "array", - "items": { - "type": "string" + "property1": { + "$ref": "#/$defs/property1" } - }, - "additionalProperties": { - "type": "boolean", - "const": false } }, - "required": [ - "$schema", - "type", - "properties", - "additionalProperties" - ] + "comment": { + "type": "object", + "properties": { + "property1": { + "$ref": "#/$defs/property1" + } + } + } } diff --git a/packages/rs-drive-abci/Cargo.toml b/packages/rs-drive-abci/Cargo.toml index 3a74c364001..20d5c6c33bc 100644 --- a/packages/rs-drive-abci/Cargo.toml +++ b/packages/rs-drive-abci/Cargo.toml @@ -28,7 +28,7 @@ rand = "0.8.5" tempfile = "3.3.0" hex = "0.4.3" indexmap = { version = "2.2.6", features = ["serde"] } -dashcore-rpc = { git = "https://github.com/dashpay/rust-dashcore-rpc", tag = "v0.15.13" } +dashcore-rpc = { git = "https://github.com/dashpay/rust-dashcore-rpc", rev = "f14bd9048cbc1767541f25b28db5c9ad1236d0da" } dpp = { path = "../rs-dpp", features = ["abci"] } simple-signer = { path = "../simple-signer" } rust_decimal = "1.2.5" diff --git a/packages/rs-sdk/Cargo.toml b/packages/rs-sdk/Cargo.toml index 9efb674ccc7..f1d0d0376e4 100644 --- a/packages/rs-sdk/Cargo.toml +++ b/packages/rs-sdk/Cargo.toml @@ -36,7 +36,7 @@ envy = { version = "0.4.2", optional = true } futures = { version = "0.3.30" } derive_more = { version = "1.0", features = ["from"] } # dashcore-rpc is only needed for core rpc; TODO remove once we have correct core rpc impl -dashcore-rpc = { git = "https://github.com/dashpay/rust-dashcore-rpc", tag = "v0.15.13" } +dashcore-rpc = { git = "https://github.com/dashpay/rust-dashcore-rpc", rev = "f14bd9048cbc1767541f25b28db5c9ad1236d0da" } lru = { version = "0.12.5", optional = true } bip37-bloom-filter = { git = "https://github.com/dashpay/rs-bip37-bloom-filter", branch = "develop" } zeroize = { version = "1.8", features = ["derive"] } diff --git a/packages/simple-signer/Cargo.toml b/packages/simple-signer/Cargo.toml index ed99f9add46..f1f061023eb 100644 --- a/packages/simple-signer/Cargo.toml +++ b/packages/simple-signer/Cargo.toml @@ -8,6 +8,6 @@ rust-version.workspace = true [dependencies] bincode = { version = "2.0.0-rc.3", features = ["serde"] } -dashcore-rpc = { git = "https://github.com/dashpay/rust-dashcore-rpc", tag = "v0.15.13" } +dashcore-rpc = { git = "https://github.com/dashpay/rust-dashcore-rpc", rev = "f14bd9048cbc1767541f25b28db5c9ad1236d0da" } dpp = { path = "../rs-dpp", features = ["abci"] } base64 = { version = "0.22.1" } diff --git a/packages/wallet-lib/package.json b/packages/wallet-lib/package.json index eb82b5d6b17..f5457f7d0c6 100644 --- a/packages/wallet-lib/package.json +++ b/packages/wallet-lib/package.json @@ -46,7 +46,7 @@ "homepage": "https://github.com/dashevo/wallet-lib#readme", "dependencies": { "@dashevo/dapi-client": "workspace:*", - "@dashevo/dashcore-lib": "~0.22.0", + "@dashevo/dashcore-lib": "github:dashpay/dashcore-lib#feat/add-quourm-111", "@dashevo/grpc-common": "workspace:*", "@dashevo/wasm-dpp": "workspace:*", "@yarnpkg/pnpify": "^4.0.0-rc.42", diff --git a/packages/wasm-dpp/package.json b/packages/wasm-dpp/package.json index f40d49bfaaf..f08423df8e6 100644 --- a/packages/wasm-dpp/package.json +++ b/packages/wasm-dpp/package.json @@ -43,7 +43,7 @@ "@babel/cli": "^7.23.0", "@babel/core": "^7.23.3", "@babel/preset-env": "^7.23.3", - "@dashevo/dashcore-lib": "~0.22.0", + "@dashevo/dashcore-lib": "github:dashpay/dashcore-lib#feat/add-quourm-111", "@dashevo/dpns-contract": "workspace:*", "@types/bs58": "^4.0.1", "@types/node": "^14.6.0", diff --git a/scripts/setup_local_network.sh b/scripts/setup_local_network.sh index 543262b3ab2..0525992789b 100755 --- a/scripts/setup_local_network.sh +++ b/scripts/setup_local_network.sh @@ -3,7 +3,7 @@ set -e MINING_INTERVAL_IN_SECONDS=60 -MASTERNODES_COUNT=3 +MASTERNODES_COUNT=1 FULL_PATH=$(realpath $0) DIR_PATH=$(dirname $FULL_PATH) diff --git a/yarn.lock b/yarn.lock index 0119fa898d7..8b50623b304 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1436,7 +1436,7 @@ __metadata: version: 0.0.0-use.local resolution: "@dashevo/bench-suite@workspace:packages/bench-suite" dependencies: - "@dashevo/dashcore-lib": "npm:~0.22.0" + "@dashevo/dashcore-lib": "github:dashpay/dashcore-lib#feat/add-quourm-111" "@dashevo/dpns-contract": "workspace:*" "@dashevo/wallet-lib": "workspace:*" "@dashevo/wasm-dpp": "workspace:*" @@ -1469,7 +1469,7 @@ __metadata: "@babel/core": "npm:^7.23.3" "@dashevo/dapi-grpc": "workspace:*" "@dashevo/dash-spv": "workspace:*" - "@dashevo/dashcore-lib": "npm:~0.22.0" + "@dashevo/dashcore-lib": "github:dashpay/dashcore-lib#feat/add-quourm-111" "@dashevo/grpc-common": "workspace:*" "@dashevo/wasm-dpp": "workspace:*" assert-browserify: "npm:^2.0.0" @@ -1551,7 +1551,7 @@ __metadata: "@dashevo/bls": "npm:~1.2.9" "@dashevo/dapi-client": "workspace:*" "@dashevo/dapi-grpc": "workspace:*" - "@dashevo/dashcore-lib": "npm:~0.22.0" + "@dashevo/dashcore-lib": "github:dashpay/dashcore-lib#feat/add-quourm-111" "@dashevo/dashd-rpc": "npm:^19.0.0" "@dashevo/dp-services-ctl": "github:dashevo/js-dp-services-ctl#v0.19-dev" "@dashevo/grpc-common": "workspace:*" @@ -1600,7 +1600,7 @@ __metadata: dependencies: "@dashevo/dark-gravity-wave": "npm:^1.1.1" "@dashevo/dash-util": "npm:^2.0.3" - "@dashevo/dashcore-lib": "npm:~0.22.0" + "@dashevo/dashcore-lib": "github:dashpay/dashcore-lib#feat/add-quourm-111" chai: "npm:^4.3.10" eslint: "npm:^8.53.0" eslint-config-airbnb-base: "npm:^15.0.0" @@ -1624,9 +1624,9 @@ __metadata: languageName: node linkType: hard -"@dashevo/dashcore-lib@npm:~0.22.0": - version: 0.22.0 - resolution: "@dashevo/dashcore-lib@npm:0.22.0" +"@dashevo/dashcore-lib@github:dashpay/dashcore-lib#feat/add-quourm-111": + version: 0.21.3 + resolution: "@dashevo/dashcore-lib@https://github.com/dashpay/dashcore-lib.git#commit=a61df6ae212647a31b3d58fd78bdf544abc5743a" dependencies: "@dashevo/bls": "npm:~1.2.9" "@dashevo/x11-hash-js": "npm:^1.0.2" @@ -1640,7 +1640,7 @@ __metadata: ripemd160: "npm:^2.0.2" tsd: "npm:^0.28.1" unorm: "npm:^1.6.0" - checksum: ac9e268f6ec75f32b2c791f5494ec4a99d67c17ad8f8089d5673b1fd9925ac3f47f4981349f82c30e327aa77ee3c2b935dcad154d215f98c72636800030a0994 + checksum: be3f570988f091c5fe69584cc976726e73664e10e95d2171cde0000e326867d8a24c21581929d7fe77c213b256ab8789d3eb41459e18f664d73ffca8e41bcea7 languageName: node linkType: hard @@ -1780,7 +1780,7 @@ __metadata: resolution: "@dashevo/platform-test-suite@workspace:packages/platform-test-suite" dependencies: "@dashevo/dapi-client": "workspace:*" - "@dashevo/dashcore-lib": "npm:~0.22.0" + "@dashevo/dashcore-lib": "github:dashpay/dashcore-lib#feat/add-quourm-111" "@dashevo/dpns-contract": "workspace:*" "@dashevo/feature-flags-contract": "workspace:*" "@dashevo/grpc-common": "workspace:*" @@ -1884,7 +1884,7 @@ __metadata: dependencies: "@dashevo/dapi-client": "workspace:*" "@dashevo/dash-spv": "workspace:*" - "@dashevo/dashcore-lib": "npm:~0.22.0" + "@dashevo/dashcore-lib": "github:dashpay/dashcore-lib#feat/add-quourm-111" "@dashevo/grpc-common": "workspace:*" "@dashevo/wasm-dpp": "workspace:*" "@yarnpkg/pnpify": "npm:^4.0.0-rc.42" @@ -1960,7 +1960,7 @@ __metadata: "@babel/core": "npm:^7.23.3" "@babel/preset-env": "npm:^7.23.3" "@dashevo/bls": "npm:~1.2.9" - "@dashevo/dashcore-lib": "npm:~0.22.0" + "@dashevo/dashcore-lib": "github:dashpay/dashcore-lib#feat/add-quourm-111" "@dashevo/dpns-contract": "workspace:*" "@types/bs58": "npm:^4.0.1" "@types/node": "npm:^14.6.0" @@ -6347,7 +6347,7 @@ __metadata: "@dashevo/bls": "npm:~1.2.9" "@dashevo/dapi-client": "workspace:*" "@dashevo/dapi-grpc": "workspace:*" - "@dashevo/dashcore-lib": "npm:~0.22.0" + "@dashevo/dashcore-lib": "github:dashpay/dashcore-lib#feat/add-quourm-111" "@dashevo/dashpay-contract": "workspace:*" "@dashevo/dpns-contract": "workspace:*" "@dashevo/grpc-common": "workspace:*" @@ -6424,7 +6424,7 @@ __metadata: "@babel/eslint-parser": "npm:^7.23.3" "@dashevo/bls": "npm:~1.2.9" "@dashevo/dapi-client": "workspace:*" - "@dashevo/dashcore-lib": "npm:~0.22.0" + "@dashevo/dashcore-lib": "github:dashpay/dashcore-lib#feat/add-quourm-111" "@dashevo/dashd-rpc": "npm:^19.0.0" "@dashevo/docker-compose": "npm:^0.24.4" "@dashevo/wallet-lib": "workspace:*"