Skip to content
Open
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
9b552ac
feat(dashmate): single node local network
shumkov Dec 16, 2024
58589e6
chore: update Core
shumkov Dec 17, 2024
a005bc3
chore: update tenderdash
shumkov Dec 17, 2024
705a3c2
Merge branch 'v1.8-dev' into standalone-node
shumkov Dec 18, 2024
6aa8791
fix: unknown quorum 111
shumkov Dec 18, 2024
5230090
Merge branch 'v1.8-dev' into standalone-node
shumkov Dec 18, 2024
e4fbfa7
chore: fixed wait for node delay
shumkov Dec 19, 2024
833ff94
chore: update core
shumkov Dec 20, 2024
5d1c9b7
Merge branch 'v1.8-dev' into standalone-node
shumkov Dec 20, 2024
527e109
chore(dashmate): exclude garbage from core logs
shumkov Dec 20, 2024
e344d6f
chore: decrease peers check delay
shumkov Dec 22, 2024
b61813f
chore: add migration for core debug log excludes
shumkov Jan 13, 2025
a45eb92
ci: temporary enable docker logs for successful runs
shumkov Jan 13, 2025
b61424d
Merge branch 'v2.0-dev' into standalone-node
shumkov Apr 4, 2025
4e9b92a
revert: always show docker logs
shumkov Apr 4, 2025
7667595
chore: switch to parametrized quorums
shumkov Apr 7, 2025
5a08f5f
Update packages/dashmate/src/listr/tasks/setup/local/enableSingleCore…
shumkov Apr 8, 2025
38fc1c5
chore: update config migration
shumkov Apr 8, 2025
402a72a
Merge remote-tracking branch 'origin/standalone-node' into standalone…
shumkov Apr 8, 2025
860c20b
fix(dashmate): fix threshold setting name in genesis
lklimek Apr 8, 2025
e4ea02b
fix: dapi client connectivity
shumkov Apr 12, 2025
e2366cb
chore: remove dapi seed
shumkov Apr 14, 2025
21f24f9
fix: sml provider is not found
shumkov Apr 16, 2025
b7a93cf
style: linter warnings
shumkov Apr 16, 2025
ea9eeae
test: fix wallet functional tests
shumkov Apr 16, 2025
ff638a8
test: fix dapi client tests
shumkov Apr 16, 2025
8dab4ae
test: fix functional tests
shumkov Apr 16, 2025
ff84f53
Merge branch 'v2.0-dev' into standalone-node
shumkov Apr 16, 2025
09df7c8
fix: small fixes
shumkov Apr 16, 2025
7764ac4
fix: getIdentityByPublicKeyHash request timeouts
shumkov Apr 16, 2025
5b436d8
chore: update dashcore lib
shumkov Apr 16, 2025
6b4f777
chore: add max concurrent streams to migrations
shumkov Apr 17, 2025
1228cf7
fix: genesis time in future
shumkov Apr 17, 2025
d362cb5
Merge remote-tracking branch 'origin/v2.0-dev' into standalone-node
lklimek Apr 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions .pnp.cjs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file not shown.
Binary file not shown.
2 changes: 2 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -419,6 +419,7 @@ RUN --mount=type=cache,sharing=shared,id=cargo_registry_index,target=${CARGO_HOM
--mount=type=cache,sharing=shared,id=cargo_git,target=${CARGO_HOME}/git/db \
--mount=type=secret,id=AWS \
set -ex; \
export TENDERDASH_COMMITISH=d67ea304a4cd1364a3e1a1c27602ecc704d32cea; \
source /root/env && \
if [[ "${CARGO_BUILD_PROFILE}" == "release" ]] ; then \
mv .cargo/config-release.toml .cargo/config.toml; \
Expand Down Expand Up @@ -481,6 +482,7 @@ RUN --mount=type=cache,sharing=shared,id=cargo_registry_index,target=${CARGO_HOM
--mount=type=cache,sharing=shared,id=cargo_git,target=${CARGO_HOME}/git/db \
--mount=type=secret,id=AWS \
set -ex; \
export TENDERDASH_COMMITISH=d67ea304a4cd1364a3e1a1c27602ecc704d32cea; \
source /root/env && \
if [[ "${CARGO_BUILD_PROFILE}" == "release" ]] ; then \
mv .cargo/config-release.toml .cargo/config.toml; \
Expand Down
2 changes: 1 addition & 1 deletion packages/bench-suite/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"lint": ""
},
"dependencies": {
"@dashevo/dashcore-lib": "~0.22.0",
"@dashevo/dashcore-lib": "~0.24.0",
"@dashevo/dpns-contract": "workspace:*",
"@dashevo/wallet-lib": "workspace:*",
"@dashevo/wasm-dpp": "workspace:*",
Expand Down
2 changes: 1 addition & 1 deletion packages/dapi/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
"dependencies": {
"@dashevo/bls": "~1.2.9",
"@dashevo/dapi-grpc": "workspace:*",
"@dashevo/dashcore-lib": "~0.22.0",
"@dashevo/dashcore-lib": "~0.24.0",
"@dashevo/dashd-rpc": "^19.0.0",
"@dashevo/grpc-common": "workspace:*",
"@dashevo/token-history-contract": "workspace:*",
Expand Down
2 changes: 1 addition & 1 deletion packages/dash-spv/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "~0.24.0",
"levelup": "^4.4.0",
"memdown": "^5.1.0",
"wasm-x11-hash": "~0.0.2"
Expand Down
6 changes: 3 additions & 3 deletions packages/dashmate/configs/defaults/getBaseConfigFactory.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ export default function getBaseConfigFactory() {
port: 3001,
},
docker: {
image: 'dashpay/dashd:22',
image: 'dashpay/dashd:22.1.0-devpr6533.b0689983',
commandArgs: [],
},
p2p: {
Expand Down Expand Up @@ -140,7 +140,7 @@ export default function getBaseConfigFactory() {
threadNames: false,
timeMicros: false,
includeOnly: [],
exclude: [],
exclude: ['libevent', 'leveldb'],
},
},
indexes: [],
Expand Down Expand Up @@ -309,7 +309,7 @@ export default function getBaseConfigFactory() {
tenderdash: {
mode: 'full',
docker: {
image: 'dashpay/tenderdash:1',
image: 'dashpay/tenderdash:feat-consensus-param-signature-threshold',
},
p2p: {
host: '0.0.0.0',
Expand Down
13 changes: 10 additions & 3 deletions packages/dashmate/configs/defaults/getLocalConfigFactory.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,30 +63,37 @@ export default function getLocalConfigFactory(getBaseConfig) {
metrics: {
port: 46660,
},
genesis: {
consensus_params: {
validator: {
voting_power_threshold: '100',
},
},
},
},
abci: {
epochTime: 1200,
validatorSet: {
quorum: {
llmqType: 106,
dkgInterval: 24,
activeSigners: 2,
activeSigners: 1,
rotation: false,
},
},
chainLock: {
quorum: {
llmqType: 100,
dkgInterval: 24,
activeSigners: 2,
activeSigners: 1,
rotation: false,
},
},
instantLock: {
quorum: {
llmqType: 104,
dkgInterval: 24,
activeSigners: 2,
activeSigners: 1,
rotation: false,
},
},
Expand Down
12 changes: 12 additions & 0 deletions packages/dashmate/configs/getConfigFileMigrationsFactory.js
Original file line number Diff line number Diff line change
Expand Up @@ -1061,6 +1061,8 @@ export default function getConfigFileMigrationsFactory(homeDir, defaultConfigs)
.forEach(([, options]) => {
delete options.core.miner.mediantime;

options.core.log.debug.exclude.push('libevent', 'leveldb');

options.platform.drive.abci.docker.image = 'dashpay/drive:1';
options.platform.dapi.api.docker.image = 'dashpay/dapi:1';
});
Expand All @@ -1076,6 +1078,16 @@ export default function getConfigFileMigrationsFactory(homeDir, defaultConfigs)
});
return configFile;
},
'2.0.0': (configFile) => {
Object.entries(configFile.configs)
.forEach(([, options]) => {
delete options.core.miner.mediantime;

options.platform.drive.abci.docker.image = 'dashpay/drive:2-dev';
options.platform.dapi.api.docker.image = 'dashpay/dapi:2-dev';
});
return configFile;
},
};
}

Expand Down
2 changes: 1 addition & 1 deletion packages/dashmate/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
"dependencies": {
"@dashevo/bls": "~1.2.9",
"@dashevo/dapi-client": "workspace:*",
"@dashevo/dashcore-lib": "~0.22.0",
"@dashevo/dashcore-lib": "~0.24.0",
"@dashevo/dashd-rpc": "^19.0.0",
"@dashevo/docker-compose": "^0.24.4",
"@dashevo/wallet-lib": "workspace:*",
Expand Down
4 changes: 2 additions & 2 deletions packages/dashmate/src/commands/setup.js
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
2 changes: 1 addition & 1 deletion packages/dashmate/src/core/waitForCorePeersConnected.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
6 changes: 4 additions & 2 deletions packages/dashmate/src/createDIContainer.js
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand Down Expand Up @@ -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(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand All @@ -30,7 +31,8 @@ export default function configureCoreTaskFactory(
generateToAddressTask,
registerMasternodeTask,
generateBlsKeys,
enableCoreQuorumsTask,
enableMultiCoreQuorumsTask,
enableSingleCoreQuorumTask,
waitForMasternodesSync,
configFile,
) {
Expand Down Expand Up @@ -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,
Expand All @@ -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;
Expand All @@ -149,7 +152,7 @@ export default function configureCoreTaskFactory(
observer.next(`${blocksGenerated} blocks generated`);
},
);
} while (dip3ActivationHeight > currentBlockHeight);
} while (activationHeight > currentBlockHeight);

observer.complete();

Expand Down Expand Up @@ -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',
Expand All @@ -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;
Expand All @@ -307,7 +319,7 @@ export default function configureCoreTaskFactory(
observer.next(`${blocksGenerated} blocks generated`);
},
);
} while (dip3ActivationHeight > currentBlockHeight);
} while (activationHeight > currentBlockHeight);

observer.complete();

Expand Down
Loading
Loading