Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ RUN mkdir -p /var/log/dash \
/var/lib/dash/rs-drive-abci/db

COPY --from=build-drive-abci /artifacts/drive-abci /usr/bin/drive-abci
COPY --from=build-drive-abci /platform/packages/rs-drive-abci/.env.example /var/lib/dash/rs-drive-abci/.env
COPY --from=build-drive-abci /platform/packages/rs-drive-abci/.env.mainnet /var/lib/dash/rs-drive-abci/.env

# Create a volume
VOLUME /var/lib/dash/rs-drive-abci/db
Expand Down
4 changes: 4 additions & 0 deletions packages/dashmate/configs/defaults/getBaseConfigFactory.js
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,10 @@ export default function getBaseConfigFactory(homeDir) {
validatorSet: {
llmqType: 4,
},
chainLock: {
llmqType: 2,
dkgInterval: 288,
},
epochTime: 788400,
},
tenderdash: {
Expand Down
4 changes: 4 additions & 0 deletions packages/dashmate/configs/defaults/getLocalConfigFactory.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,10 @@ export default function getLocalConfigFactory(getBaseConfig) {
validatorSet: {
llmqType: 106,
},
chainLock: {
llmqType: 100,
dkgInterval: 24,
},
},
},
},
Expand Down
4 changes: 4 additions & 0 deletions packages/dashmate/configs/defaults/getTestnetConfigFactory.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,10 @@ export default function getTestnetConfigFactory(homeDir, getBaseConfig) {
validatorSet: {
llmqType: 6,
},
chainLock: {
llmqType: 1,
dkgInterval: 24,
},
},
tenderdash: {
p2p: {
Expand Down
16 changes: 16 additions & 0 deletions packages/dashmate/configs/getConfigFileMigrationsFactory.js
Original file line number Diff line number Diff line change
Expand Up @@ -406,6 +406,22 @@ export default function getConfigFileMigrationsFactory(homeDir, defaultConfigs)

return configFile;
},
'1.0.0-dev.1': (configFile) => {
Object.entries(configFile.configs)
.forEach(([name, options]) => {

let baseConfigName = name;
if (options.group !== null && defaultConfigs.has(options.group)) {
baseConfigName = options.group;
} else if (!defaultConfigs.has(baseConfigName)) {
baseConfigName = 'testnet';
}

options.platform.drive.abci.chainLock = defaultConfigs.get(baseConfigName).get('platform.drive.abci.chainLock');
});

return configFile;
},
};
}

Expand Down
10 changes: 3 additions & 7 deletions packages/dashmate/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,14 +47,11 @@ services:
volumes:
- drive_abci_data:/var/lib/dash/rs-drive-abci/db
environment:
- BLOCK_SPACING_MS=3000 # TODO: sync with tenderdash
- CHAIN_ID=${PLATFORM_DRIVE_TENDERDASH_GENESIS_CHAIN_ID:-devnet}
- CORE_JSON_RPC_USERNAME=${CORE_RPC_USER:?err}
- CORE_JSON_RPC_PASSWORD=${CORE_RPC_PASSWORD:?err}
- CORE_JSON_RPC_HOST=core
- CORE_JSON_RPC_PORT=${CORE_RPC_PORT:?err}
- CORE_ZMQ_HOST=core
- CORE_ZMQ_PORT=29998
- DPNS_MASTER_PUBLIC_KEY=${PLATFORM_DPNS_MASTER_PUBLIC_KEY}
- DPNS_SECOND_PUBLIC_KEY=${PLATFORM_DPNS_SECOND_PUBLIC_KEY}
- DASHPAY_MASTER_PUBLIC_KEY=${PLATFORM_DASHPAY_MASTER_PUBLIC_KEY}
Expand All @@ -66,10 +63,9 @@ services:
- MASTERNODE_REWARD_SHARES_SECOND_PUBLIC_KEY=${PLATFORM_MASTERNODE_REWARD_SHARES_SECOND_PUBLIC_KEY}
- WITHDRAWALS_MASTER_PUBLIC_KEY=${PLATFORM_WITHDRAWALS_MASTER_PUBLIC_KEY}
- WITHDRAWALS_SECOND_PUBLIC_KEY=${PLATFORM_WITHDRAWALS_SECOND_PUBLIC_KEY}
- QUORUM_SIZE=5 # TODO: sync with Tenderdash
- QUORUM_TYPE=${PLATFORM_DRIVE_ABCI_VALIDATOR_SET_LLMQ_TYPE:?err}
- NETWORK=${NETWORK:?err}
- TENDERDASH_P2P_PORT=${PLATFORM_DRIVE_TENDERDASH_P2P_PORT:?err}
- VALIDATOR_SET_QUORUM_TYPE=${PLATFORM_DRIVE_ABCI_VALIDATOR_SET_LLMQ_TYPE:?err}
- CHAIN_LOCK_QUORUM_TYPE=${PLATFORM_DRIVE_ABCI_CHAIN_LOCK_LLMQ_TYPE:?err}
- CHAIN_LOCK_QUORUM_WINDOW=${PLATFORM_DRIVE_ABCI_CHAIN_LOCK_DKG_INTERVAL:?err}
stop_grace_period: 30s
env_file:
# Logger settings
Expand Down
18 changes: 17 additions & 1 deletion packages/dashmate/src/config/configJsonSchema.js
Original file line number Diff line number Diff line change
Expand Up @@ -503,13 +503,29 @@ export default {
additionalProperties: false,
required: ['llmqType'],
},
chainLock: {
type: 'object',
properties: {
llmqType: {
type: 'number',
// https://github.com/dashpay/dashcore-lib/blob/843176fed9fc81feae43ccf319d99e2dd942fe1f/lib/constants/index.js#L50-L99
enum: [1, 2, 3, 4, 5, 6, 100, 101, 102, 103, 104, 105, 106, 107],
},
dkgInterval: {
type: 'integer',
minimum: 0,
},
},
additionalProperties: false,
required: ['llmqType', 'dkgInterval'],
},
epochTime: {
type: 'integer',
minimum: 180,
},
},
additionalProperties: false,
required: ['docker', 'logs', 'validatorSet', 'epochTime'],
required: ['docker', 'logs', 'validatorSet', 'chainLock', 'epochTime'],
},
tenderdash: {
type: 'object',
Expand Down
62 changes: 62 additions & 0 deletions packages/rs-drive-abci/.env.local
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# ABCI host and port to listen
ABCI_BIND_ADDRESS="tcp://0.0.0.0:26658"
ABCI_PROMETHEUS_BIND_ADDRESS="http://0.0.0.0:29090"

# stderr logging for humans
ABCI_LOG_STDOUT_DESTINATION=stdout
ABCI_LOG_STDOUT_LEVEL=info
ABCI_LOG_STDOUT_FORMAT=pretty
ABCI_LOG_STDOUT_COLOR=true

DB_PATH=/tmp/db

# Cache size for Data Contracts
DATA_CONTRACTS_GLOBAL_CACHE_SIZE=500
DATA_CONTRACTS_BLOCK_CACHE_SIZE=200

# DashCore JSON-RPC host, port and credentials
# Read more: https://dashcore.readme.io/docs/core-api-ref-remote-procedure-calls
CORE_JSON_RPC_HOST=127.0.0.1
CORE_JSON_RPC_PORT=9998
CORE_JSON_RPC_USERNAME=dashrpc
CORE_JSON_RPC_PASSWORD=password

INITIAL_CORE_CHAINLOCKED_HEIGHT=1243

# https://github.com/dashevo/dashcore-lib/blob/286c33a9d29d33f05d874c47a9b33764a0be0cf1/lib/constants/index.js#L42-L57
VALIDATOR_SET_LLMQ_TYPE=llmq_test
VALIDATOR_SET_QUORUM_SIZE=3
VALIDATOR_SET_ROTATION_BLOCK_COUNT=64

CHAIN_LOCK_QUORUM_TYPE=llmq_test
CHAIN_LOCK_QUORUM_WINDOW=24

# DPNS Contract

DPNS_MASTER_PUBLIC_KEY=02649a81b760e8635dd3a4fad8911388ed09d7c1680558a890180d4edc8bcece7e
DPNS_SECOND_PUBLIC_KEY=03f5ea3ab4bf594c28997eb8f83873532275ac2edd36e586b137ed42d15d510948

# Dashpay Contract

DASHPAY_MASTER_PUBLIC_KEY=022d6d70c9d24d03904713db17fb74c9201801ba0e3aed0f5d91e89df388e94aa6
DASHPAY_SECOND_PUBLIC_KEY=028c0a26c87b2e7f1aebbbeace9e687d774e037f5b50a6905b5f6fa24495b502cd

# Feature flags contract

FEATURE_FLAGS_MASTER_PUBLIC_KEY=034ee04c509083ecd09e76fa53e0b5331b39120c19607cd04c4f167707dbb42302
FEATURE_FLAGS_SECOND_PUBLIC_KEY=03c755ae1b79dbcc79020aad3ccdfcb142fc6e74f1afc220fca1e275a87aa12cf8

# Masternode reward shares contract

MASTERNODE_REWARD_SHARES_MASTER_PUBLIC_KEY=02099cc210c7b6c7f566099046ddc92615342db326184940bf3811026ea328c85e
MASTERNODE_REWARD_SHARES_SECOND_PUBLIC_KEY=02bf55f97f189895da29824781053140ee66b2bf47760246504fbe502985096af5

# Withdrawals contract

WITHDRAWALS_MASTER_PUBLIC_KEY=027057cdf58628635ef7b75e6b6c90dd996a16929cd68130e16b9328d429e5e03a
WITHDRAWALS_SECOND_PUBLIC_KEY=022084d827fea4823a69aa7c8d3e02fe780eaa0ef1e5e9841af395ba7e40465ab6

EPOCH_TIME_LENGTH_S=788400

CHAIN_ID=devnet
BLOCK_SPACING_MS=5000
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,6 @@ ABCI_LOG_STDOUT_COLOR=true

DB_PATH=/tmp/db

# GroveDB database file
GROVEDB_LATEST_FILE=${DB_PATH}/latest_state

# Cache size for Data Contracts
DATA_CONTRACTS_GLOBAL_CACHE_SIZE=500
DATA_CONTRACTS_BLOCK_CACHE_SIZE=200
Expand All @@ -29,18 +26,15 @@ CORE_ZMQ_HOST=127.0.0.1
CORE_ZMQ_PORT=29998
CORE_ZMQ_CONNECTION_RETRIES=16

NETWORK=testnet

INITIAL_CORE_CHAINLOCKED_HEIGHT=1243

# https://github.com/dashevo/dashcore-lib/blob/286c33a9d29d33f05d874c47a9b33764a0be0cf1/lib/constants/index.js#L42-L57
VALIDATOR_SET_QUORUM_TYPE=100
CHAIN_LOCK_QUORUM_TYPE=100
CHAIN_LOCK_QUORUM_WINDOW=24
VALIDATOR_SET_QUORUM_ROTATION_BLOCK_COUNT=64
VALIDATOR_SET_LLMQ_TYPE=llmq_100_67
VALIDATOR_SET_QUORUM_SIZE=100
VALIDATOR_SET_ROTATION_BLOCK_COUNT=64

DKG_INTERVAL=24
MIN_QUORUM_VALID_MEMBERS=3
CHAIN_LOCK_QUORUM_TYPE=llmq_400_60
CHAIN_LOCK_QUORUM_WINDOW=288

# DPNS Contract

Expand All @@ -67,10 +61,7 @@ MASTERNODE_REWARD_SHARES_SECOND_PUBLIC_KEY=02bf55f97f189895da29824781053140ee66b
WITHDRAWALS_MASTER_PUBLIC_KEY=027057cdf58628635ef7b75e6b6c90dd996a16929cd68130e16b9328d429e5e03a
WITHDRAWALS_SECOND_PUBLIC_KEY=022084d827fea4823a69aa7c8d3e02fe780eaa0ef1e5e9841af395ba7e40465ab6

TENDERDASH_P2P_PORT=26656

EPOCH_TIME_LENGTH_S=788400
QUORUM_SIZE=5
QUORUM_TYPE=llmq_25_67

CHAIN_ID=devnet
BLOCK_SPACING_MS=3000
BLOCK_SPACING_MS=5000
62 changes: 62 additions & 0 deletions packages/rs-drive-abci/.env.testnet
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# ABCI host and port to listen
ABCI_BIND_ADDRESS="tcp://0.0.0.0:26658"
ABCI_PROMETHEUS_BIND_ADDRESS="http://0.0.0.0:29090"

# stderr logging for humans
ABCI_LOG_STDOUT_DESTINATION=stdout
ABCI_LOG_STDOUT_LEVEL=info
ABCI_LOG_STDOUT_FORMAT=pretty
ABCI_LOG_STDOUT_COLOR=true

DB_PATH=/tmp/db

# Cache size for Data Contracts
DATA_CONTRACTS_GLOBAL_CACHE_SIZE=500
DATA_CONTRACTS_BLOCK_CACHE_SIZE=200

# DashCore JSON-RPC host, port and credentials
# Read more: https://dashcore.readme.io/docs/core-api-ref-remote-procedure-calls
CORE_JSON_RPC_HOST=127.0.0.1
CORE_JSON_RPC_PORT=9998
CORE_JSON_RPC_USERNAME=dashrpc
CORE_JSON_RPC_PASSWORD=password

INITIAL_CORE_CHAINLOCKED_HEIGHT=1243

# https://github.com/dashevo/dashcore-lib/blob/286c33a9d29d33f05d874c47a9b33764a0be0cf1/lib/constants/index.js#L42-L57
VALIDATOR_SET_LLMQ_TYPE=llmq_25_67
VALIDATOR_SET_QUORUM_SIZE=25
VALIDATOR_SET_ROTATION_BLOCK_COUNT=64

CHAIN_LOCK_QUORUM_TYPE=llmq_50_60
CHAIN_LOCK_QUORUM_WINDOW=24

# DPNS Contract

DPNS_MASTER_PUBLIC_KEY=02649a81b760e8635dd3a4fad8911388ed09d7c1680558a890180d4edc8bcece7e
DPNS_SECOND_PUBLIC_KEY=03f5ea3ab4bf594c28997eb8f83873532275ac2edd36e586b137ed42d15d510948

# Dashpay Contract

DASHPAY_MASTER_PUBLIC_KEY=022d6d70c9d24d03904713db17fb74c9201801ba0e3aed0f5d91e89df388e94aa6
DASHPAY_SECOND_PUBLIC_KEY=028c0a26c87b2e7f1aebbbeace9e687d774e037f5b50a6905b5f6fa24495b502cd

# Feature flags contract

FEATURE_FLAGS_MASTER_PUBLIC_KEY=034ee04c509083ecd09e76fa53e0b5331b39120c19607cd04c4f167707dbb42302
FEATURE_FLAGS_SECOND_PUBLIC_KEY=03c755ae1b79dbcc79020aad3ccdfcb142fc6e74f1afc220fca1e275a87aa12cf8

# Masternode reward shares contract

MASTERNODE_REWARD_SHARES_MASTER_PUBLIC_KEY=02099cc210c7b6c7f566099046ddc92615342db326184940bf3811026ea328c85e
MASTERNODE_REWARD_SHARES_SECOND_PUBLIC_KEY=02bf55f97f189895da29824781053140ee66b2bf47760246504fbe502985096af5

# Withdrawals contract

WITHDRAWALS_MASTER_PUBLIC_KEY=027057cdf58628635ef7b75e6b6c90dd996a16929cd68130e16b9328d429e5e03a
WITHDRAWALS_SECOND_PUBLIC_KEY=022084d827fea4823a69aa7c8d3e02fe780eaa0ef1e5e9841af395ba7e40465ab6

EPOCH_TIME_LENGTH_S=788400

CHAIN_ID=devnet
BLOCK_SPACING_MS=5000
Loading