• Forum has been upgraded, all links, images, etc are as they were. Please see Official Announcements for more information

Dash Platform Stability Testing on Testnet

qwizzie

Well-known member
https://www.dash.org/blog/strategy-tests-usage-guide/

https://faucet.testnet.networks.dash.org/ (use promocode 'masternode' to receive 1000 tdash or 'platform' to receive 50 tdash), this faucet works on a 1x per hour basis

http://insight.testnet.networks.dash.org:3001/insight/ (or 3002) : Testnet blockchain explorer
http://metrics.testnet.networks.das...ards/5b1f9fc67dee4cad94a19b3dcbe1d24d?orgId=1 (to see a live Public Testnet status overview, with regards to Platform)

360_F_313424630_Uja1TnjdFhdz0bdbFnhMRuBTSIw25TWQ.jpg
 
Last edited:
I think Paul skipped a few steps for those of us with more limited knowledge of Ubuntu and installing tools like the Platform TUI :

* git clone https://github.com/dashpay/rs-platform-explorer
* sudo apt update
* sudo apt-get install build-essential
* sudo apt install clang
* sudo apt install pkg-config
* sudo apt install libssl-dev
* cd rs-platform-explorer
* do the necessary steps with regards to .env (add EXPLORER_CORE_RPC_USER=***** & EXPLORER_CORE_RPC_PASSWORD=**** to dash.conf and make sure the user and password match with .env)
* check if cargo is installed by issuing 'cargo build', if not then issue 'sudo apt install cargo' (Note : rustc needs to be v1.76 or higher)

To those testnet users on rustc v1.75.0 and looking to update rustc to v1.76 or higher :

sudo apt remove rustc cargo (removes rustc)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh (installs rustc to v1.78)

* cargo build

error : failed to run custom build command for `bls-dash-sys v1.2.5 (https://github.com/dashpay/bls-signatures?tag=v1.3.1#1c2fc79c)`

I stopped after this latest build error, as there could be a lot more dependencies needing to be installed or updated first, before getting a successfull cargo build. There has got to be a better way of installing the Platform TUI for testnet users who want to participate with stress-testing Platform.
 
Last edited:
These are the steps I followed on a clean Ubuntu 22.04 VM. I think the blog didn't mention having a copy of the platform repo alongside the platform explorer one. Also, I had to install cmake in addition to all the other stuff mentioned in the platform repo readme.

Code:
git clone https://github.com/dashpay/platform.git
git clone https://github.com/dashpay/rs-platform-explorer.git
cd rs-platform-explorer/
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup target add wasm32-unknown-unknown
cargo install [email protected]
sudo apt install -y build-essential libssl-dev pkg-config clang
wget https://github.com/protocolbuffers/protobuf/releases/download/v26.1/protoc-26.1-linux-x86_64.zip
sudo apt install unzip
sudo unzip protoc-*-linux-x86_64.zip -d /usr/local
protoc  --version
sudo apt update
sudo apt install cmake
cargo run
 
@thephez

Thank you, much appreciated.

I got a successfull cargo run leading to the start of Platform TUI on Ubuntu 20.04.6 LTS, although with a number of yellow warnings about certain unused imports and a suggestion to apply a cargo fix.

warning: `rs-platform-explorer` (lib) generated 30 warnings (run `cargo fix --lib -p rs-platform-explorer` to apply 9 suggestions)

But before i could do anything, it started Platform TUI.

Knipsel.JPG


Should i do that cargo fix to apply 9 suggestions ? (after pressing q)
And did you also receive 30 yellow warnings during cargo run, before it fires up Platform TUI ?

An example of some of those 30 yellow warnings :

warning: unused import: `consensus::basic::state_transition`
--> src/backend/identities.rs:30:5
|
30 | consensus::basic::state_transition,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default

warning: unused import: `std::cmp::min`
--> src/ui/views/strategies/operations/contract_create.rs:3:5
|
3 | use std::cmp::min;
| ^^^^^^^^^^^^^

warning: unused import: `cmp::min`
--> src/ui/views/strategies/operations/contract_update_doc_types.rs:3:11
|
3 | use std::{cmp::min, collections::BTreeMap};
| ^^^^^^^^

warning: unused import: `rand::Rng`
--> src/ui/views/strategies/operations/contract_update_new_fields.rs:3:5
|
3 | use rand::Rng;
| ^^^^^^^^^
 
Last edited:
I am having difficulty trying to fund 1 dash to my identity through Platform TUI :

>SDK error: broadcasting transaction failed Dapi client error: Transport(Status { code: Unimplemented, message: "The server does not implement the method /org.dash.platform.dapi.v0.Core/getStatus", metadata: │
│ MetadataMap { headers: {"grpc-accept-encoding": "identity", "grpc-encoding": "identity", "content-type": "application/grpc+proto", "date": "Mon, 06 May 2024 22:01:16 GMT", "x-envoy-upstream-service-time": │
│ "2", "server": "envoy"} }, source: None }, Address { ban_count: 0, banned_until: None, uri: https://52.34.144.50:1443/ })


In case its relevant, this is my info in my dash.conf of my Windows Dash Core testnet node :

testnet=1
EXPLORER_CORE_RPC_USER=******
EXPLORER_CORE_RPC_PASSWORD=*******

I am not sure i understand how my Windows Dash Core testnet node & Platform TUI on my server (.env) are suppose to communicate with each other.
 
Last edited:
Hi Qwizzie thanks for all this feedback. I will add those extra steps which I overlooked. Regarding the latest error you’re getting (and Sam already mentioned it on Discord, I’ll just repeat here for anyone else looking for an answer), that’s the result of a new testnet release and the TUI needs to be updated, which I’ll do today.
 
Hi Qwizzie thanks for all this feedback. I will add those extra steps which I overlooked. Regarding the latest error you’re getting (and Sam already mentioned it on Discord, I’ll just repeat here for anyone else looking for an answer), that’s the result of a new testnet release and the TUI needs to be updated, which I’ll do today.
This Platform TUI Github issue also needs some attention : https://github.com/dashpay/rs-platform-explorer/issues/44

There is still a copy and paste problem with TUI, with C to copy the receive address not working (crashing TUI) and copy & paste in general giving problems during wallet setup with private key (a key which needs to be generated outside TUI and pasted into TUI), specifically when using PuTTY. The copy (ctrl+c) and paste functionality (ctrl+v) through mouse selection does work with Solar-PuTTY, bypassing the not working C command. And the paste through a right click of the mouse does work in Solar-PuTTY as well. So i am using Solar-PuTTY instead of PuTTY.

* Paul has updated his Strategy Tests Usage Guide, so there should not be any problems anymore getting to a successfull cargo run of TUI
* Dash Core Testnode (dashd & dash-cli) needs to be running on same server as Platform TUI !!
* 'CMasternodeSync::SwitchToNextAsset -- Sync has finished' indicates the dashd has fully synced, Solar-PuTTY session can be closed

Useful links to monitor Platform activity on Testnet :

http://metrics.testnet.networks.das...ards/5b1f9fc67dee4cad94a19b3dcbe1d24d?orgId=1
https://platform-explorer.com/

Setting up a strategy test

Knipsel.JPG



Knipsel.JPG


Test1
Knipsel.JPG

10 identities with 3 keys each, no transfer key, contracts with 20 variants,1 document per contract, dashpay-variant-5
Outcome : 12% success percentage (had a lot of errors in explorer.log as well). Maybe to do with using dashpay-variant-5 contract ?

Example of error : rs_platform_explorer::backend::strategies: Failed to broadcast transition: DocumentsBatch, Error: Transport(Status { code: InvalidArgument, message: "Identity 5gwt6wPQ7xBR8gthVz4GToTVbywnYEf7gknh7cZ79Ayn is trying to set an invalid identity nonce. The current identity nonce is 0, we are setting 34, error is nonce too far in past", metadata: MetadataMap { headers: {"drive-error-data-bin": "oW9zZXJpYWxpemVkRXJyb3KYJQIRGEUYqhh0FxjdGDwYjBgqGDMYTxg5GKcYuRg5GPYY6xgfGGUYyQgVGMgJGDEY4hjrGJ8YthidGMAYbhiBABgiAg==", "code": "40204", "grpc-accept-encoding": "identity", "grpc-encoding": "identity", "content-type": "application/grpc+proto", "date": "Thu, 09 May 2024 13:09:12 GMT", "x-envoy-upstream-service-time": "14", "server": "envoy"} }, source: None }, Address { ban_count: 0, banned_until: None, uri: https://35.82.49.196:1443/ })

Test2
Knipsel.JPG

10 identities with 3 keys each, no transfer key, contracts with 20 variants, 1 document per contract, dashpay-contract-all-mutable
Outcome : 97% success percentage.

@paul_delucia
This Test2 got stuck on screen, just showing 'strategy is running, pls wait'. A previous Test2 had that same problem, but at some point managed to snap out of it, showing the results. This one did not, i got the results 45 minutes later from the explorer.log

Test2 (checking to see if this strategy test would print the results on screen, it does)
Knipsel.JPG

10 identities with 3 keys each, no transfer key, contracts with 20 variants, 1 document per contract, dashpay-contract-all-mutable
Outcome : 98% success percentage.
 
Last edited:
Test2
Knipsel.JPG

10 identities with 3 keys each, no transfer key, contracts with 20 variants, 1 document per contract, dashpay-variant-5 (the one that previously had such low success percentage of 12%). No problems with having the results printed on screen.
Outcome : 98% success percentage

Knipsel.JPG


Knipsel1.JPG


Knipsel.JPG
 
Last edited:
Useful shell script to fetch the final results of a running strategy test (mode : second / time) from the explorer.log directly into another Solar-PuTTY / PuTTY session :

#!/bin/bash

logfile="/home/USER(change this!!)/rs-platform-explorer/explorer.log"

# Display initial message
echo "Waiting 5 minutes for the test to conclude"

# Sleep for 5 minutes
sleep 300

# Define ANSI color codes
GREEN='\033[0;32m' # ANSI color code for green
ORANGE='\033[0;33m' # ANSI color code for orange
NC='\033[0m' # ANSI color code to reset to default

toggle=0 # Variable to toggle colors

while true; do
# Toggle color between green and orange for each search
if [ $toggle -eq 0 ]; then
echo -e "${GREEN}Searching for results, use q to interrupt ...${NC}"
toggle=1
else
echo -e "${ORANGE}Searching for results, use q to interrupt ...${NC}"
toggle=0
fi

# Get the last 25 lines of the file in reverse order
tail -n 25 "$logfile" | tac | \
# Search for 'Mode: second' within these lines
grep -q 'Mode: second'

if [ $? -eq 0 ]; then
# Display the last 14 lines of the log file
tail -n 14 "$logfile"
break # Exit the loop after finding the pattern
fi

# Check for user input to interrupt the sleep
read -t 30 -n 1 key
if [[ $key == "q" ]]; then
echo "Script stopped by user."
exit 0
fi

sleep 30 # Wait for 30 seconds before searching again
done


Knipsel.JPG
 
Last edited:
Let me remind that all this platform bullshit will run in 150 nodes only (300 at maximum and only after 10 years).
"Decentralization" and "privacy", my ass!!!!!!

In the meantime, Dash fell from rank 6 to rank 210 in coinmarketcap, but the stupid masternodes keep supporting and testing this platform bullshit that cost about 3 million USD from 2022-today, about 15 million USD from 2019-2021, and of course much much more if we calculate the cost of the rich years (2016-2019).

Follows a picture of the average stupid masternode voter/investor (who is not a secret agent financed to destroy the Dash coin):
1*4-D-As-EIQIkNnmsLx7l1w.jpeg

The smart person accepts, the idiot insists .....
 
Last edited:
Let me remind that all this platform bullshit will run in 150 nodes only (300 at maximum and only after 10 years).
"Decentralization" and "privacy", my ass!!!lllll

It's not stupid, it's just a case of poor governance that allowed a cartel to form and take control. Ironically, the same people that said it would of been bad if miners could vote, because then they would simply vote in self-interest and give themselves a pay rise... didn't MNOs and Core do the exact same thing?

I don't think there are any incentives for this cartel to change course, unless LE intervene.. and you never know, they might, because it seems to me there are just a few key coordinators running the show.
 
Back
Top